A method of obtaining a secret value for use in a cryptographic operation, the secret value combining a private key, x, of one computing device with a public key, Y, of another computing device to obtain a secret value xY, the method comprising: the one computing device computing from the private key x a pair of scalars x o, x 1 by using a scaling factor t to divide the private key x into the pair of scalars x o, x 1, x o being the remainder when x is divided by the scaling factor t, such that x = x o + x 1 t, wherein the scaling factor is of the order of n, where n is the order of an elliptic curve group used to compute the public key Y, so that each of the scalars x o, x 1 have a bit string length less than that of the private key x; the one computing device receiving a supplementary public key tY; the one computing device combining the scalars and the public keys to compute the secret value xY as a linear combination of the scalars and the public keys; and the one computing device utilising the secret value as a key in a cryptographic operation wherein the scaling factor is known to both the one computing device and the other computing device; and wherein the linear combination comprising x o Y + x 1 ( tY) is computed using simultaneous multiple point multiplication comprising: writing the scalars x 0 and x 1 as a matrix; selecting a window of width w bits; precomputing values corresponding to iY + j(tY), wherein 0 ≤ i,j < 2 w, and storing the precomputed values on a memory of the one computing device; obtaining w bits of the scalar x 0 and w bits of the scalar x 1 from the matrix as examined by the window; retrieving from the memory the precomputed values corresponding to the w bits of the scalar x 0 and the w bits of the scalar x 1; and storing the retrieved precomputed values in an accumulator on the computing device. the one computing device computing from the private key x a pair of scalars x o, x 1 by using a scaling factor t to divide the private key x into the pair of scalars x o, x 1, x o being the remainder when x is divided by the scaling factor t, such that x = x o + x 1 t, wherein the scaling factor is of the order of n, where n is the order of an elliptic curve group used to compute the public key Y, so that each of the scalars x o, x 1 have a bit string length less than that of the private key x; the one computing device receiving a supplementary public key tY; the one computing device combining the scalars and the public keys to compute the secret value xY as a linear combination of the scalars and the public keys; and the one computing device utilising the secret value as a key in a cryptographic operation wherein the scaling factor is known to both the one computing device and the other computing device; and wherein the linear combination comprising x o Y + x 1 ( tY) is computed using simultaneous multiple point multiplication comprising: writing the scalars x 0 and x 1 as a matrix; selecting a window of width w bits; precomputing values corresponding to iY + j(tY), wherein 0 ≤ i,j < 2 w, and storing the precomputed values on a memory of the one computing device; obtaining w bits of the scalar x 0 and w bits of the scalar x 1 from the matrix as examined by the window; retrieving from the memory the precomputed values corresponding to the w bits of the scalar x 0 and the w bits of the scalar x 1; and storing the retrieved precomputed values in an accumulator on the computing device. writing the scalars x 0 and x 1 as a matrix; selecting a window of width w bits; precomputing values corresponding to iY + j(tY), wherein 0 ≤ i,j < 2 w, and storing the precomputed values on a memory of the one computing device; obtaining w bits of the scalar x 0 and w bits of the scalar x 1 from the matrix as examined by the window; retrieving from the memory the precomputed values corresponding to the w bits of the scalar x 0 and the w bits of the scalar x 1; and storing the retrieved precomputed values in an accumulator on the computing device.