Patent ID: 7359507

Claim:
A method involving a client and a group of one or more servers for deriving a strong secret from a first secret, the method comprising: providing each server of the group with a respective server secret; for each server of the group, participating in a blind function evaluation protocol to generate a respective strong secret component, the blind function evaluation protocol evaluating a function taking as input the respective server secret and client information derived from the first secret, and generating as output the respective strong secret component; generating the strong secret from the strong secret components generated for the group of one or more servers; and using the strong secret to perform a cryptographic function, wherein the blind function evaluation protocol is characterized in that the client cannot determine any of the respective server secrets and in that each server cannot determine the first secret, any other respective strong secret component, or the strong secret, wherein the blind function evaluation protocol is selected from a set of blind function evaluation protocols that excludes any protocol involving: the client computing server request data by exponentiating the client information to a random first integer a, wherein the client information is an element w of a finite group G in which exponentiation is efficient but the discrete logarithm problem is computationally infeasible; the server computing server response data from the server request data and the server secret, wherein the server response data comprises a value c in the group G; and the client computing a strong secret component by exponentiating the value c to a second integer a′, wherein the first and second integers a and a′ are such that x aa′ =x for all x in the group G.