A method of establishing trust between a second device and a target device via a first device without revealing the identity of the target device comprising: pre-computing, by the first device, a first proof consisting in a set of values using knowledge of m and c without revealing m and c with m = c e mod n and k = h m mod P where: m is a second private value; c is a first private value; h is a selected value; k is a public value available to the second device via the first device; e is a public exponent of an RSA public/private key pair of the target device; n is a public modulus of said public/private key pair of the target device; and P is a first public cryptographic value, P being a prime number such that the computation of the discrete logarithm is hard; generating, by the first device a second proof consisting in a set of values proving: Z < log h k < Z + W where: Z is a second public cryptographic value; and W is a third public cryptographic value; sending, by the second device, a proof request to the first device; receiving, at the first device, the proof request from the second device; sending, by the first device, in response to the received proof request, the first set of values and the second set of values to the second device; verifying, by the second device, in response to receipt of the first set of values, the validity of the first proof utilising the first set of values received from the first device; and verifying, by the second device, in response to receipt of the second set of values, the validity of the second proof utilising the second set of values received from the first device. pre-computing, by the first device, a first proof consisting in a set of values using knowledge of m and c without revealing m and c with m = c e mod n and k = h m mod P where: m is a second private value; c is a first private value; h is a selected value; k is a public value available to the second device via the first device; e is a public exponent of an RSA public/private key pair of the target device; n is a public modulus of said public/private key pair of the target device; and P is a first public cryptographic value, P being a prime number such that the computation of the discrete logarithm is hard; m is a second private value; c is a first private value; h is a selected value; k is a public value available to the second device via the first device; e is a public exponent of an RSA public/private key pair of the target device; n is a public modulus of said public/private key pair of the target device; and P is a first public cryptographic value, P being a prime number such that the computation of the discrete logarithm is hard; generating, by the first device a second proof consisting in a set of values proving: Z < log h k < Z + W where: Z is a second public cryptographic value; and W is a third public cryptographic value; Z is a second public cryptographic value; and W is a third public cryptographic value; sending, by the second device, a proof request to the first device; receiving, at the first device, the proof request from the second device; sending, by the first device, in response to the received proof request, the first set of values and the second set of values to the second device; verifying, by the second device, in response to receipt of the first set of values, the validity of the first proof utilising the first set of values received from the first device; and verifying, by the second device, in response to receipt of the second set of values, the validity of the second proof utilising the second set of values received from the first device.