Patent ID: 8634562

Claim:
A method of computing a cryptographic operation on a computing device, the method comprising: i) an application executing on the computing device requesting a private key module of the computing device to divide a secret value into a first part and a second part; ii) the module dividing the secret value into a first part and a second part, and returning one of the first half and the second half and a pointer to a key K comprising the other of the first half and the second half to the application; iii) the application providing a public constant D, a message M and the pointer to the key K as input values to the module, and requesting the module to compute a cryptographic hash function using the input values; iv) the module computing the cryptographic hash function using the input values, and returning a hash value T 1 to the application; v) the application providing a public constant C, the hash value T 1 and the pointer to the key K as second input values to the module, and requesting the module to perform the cryptographic hash function using the second input values; vi) the module computing the cryptographic hash function using the second input values and returning hash function output to the application; and, vii) the application computing an iterative cryptographic function using the one of the first half and the second half and the hash function output to produce a result.