An apparatus for performing an elliptic curve cryptography point doubling operation over a short Weierstrass curve of the form y 2 = x 3 + ax + b where a = -3 using Jacobian coordinates comprising: - a register memory for storing a point in Jacobian coordinates; - a modular multiplier electrically coupled to the register memory; and - an arithmetic processor electrically coupled to the register memory and the modular multiplier, wherein the arithmetic processor is configured to perform modular subtraction, modular addition and modular multiplication by two in support of the point doubling operation, wherein said apparatus is adapted to calculate a result of the elliptic curve cryptography point doubling operation on an input of a point P in Jacobian coordinates X 1, Y 1, Z 1, in a sequence of steps, said result being expressed in Jacobian coordinates X 3, Y 3, Z 3, the sequence comprising the following steps: (i) Z 3 = Z 1 2; (ii) Y 3 = Y 1 2; (iii) α = X 1 * Y 3, wherein α is a temporary variable; (iv) Z 3 = 3(X 1 - Z 3) * (X 1 + Z 3); (v) X 3 = Z 3 2 - 8α; (vi) α = Z 3 * (4α - X 3); (vii) Y 3 = α - 8Y 3 2; (viii) Z 3 = 2Y 1 * Z 1; wherein the apparatus is configured to store the input variables X 1, Y 1, Z 1, the output variables X 3, Y 3, Z 3 and the temporary variable α in corresponding registers in the register memory, wherein the modular multiplier is configured to receive Z 1 and to output the square in step (i); receive Y 1 and to output the square in step (ii); receive X 1 and Y 3 and to output the product in step (iii); receive 3(X 1 - Z 3) and (X 1 + Z 3) and to output the product in step (iv); receive Z 3 and to output the square in step (v); receive Z 3 and (4α - X 3) and to output the product in step (vi); receive Y 3 and to output the square in step (vii) and to receive 2Y 1 and Z 1 and to output the product in step (vii) and wherein the arithmetic processor is configured to accept inputs A and B and produce outputs C and D, and to take, in the respective steps, the following values as inputs and outputs: in step (iv), A = X 1, B = Z 3, C = A + B, D = 3(A-B); in step (v), A = Z 3 2, B = α, D = A - 8B; in step (vi), A = α, B = X 3, D = 4A - B; in step (vii), A = α, B = Y 3 2, D = A - 8B; in step (viii), A = Y 1, D = 2A. - a register memory for storing a point in Jacobian coordinates; - a modular multiplier electrically coupled to the register memory; and - an arithmetic processor electrically coupled to the register memory and the modular multiplier, wherein the arithmetic processor is configured to perform modular subtraction, modular addition and modular multiplication by two in support of the point doubling operation, wherein said apparatus is adapted to calculate a result of the elliptic curve cryptography point doubling operation on an input of a point P in Jacobian coordinates X 1, Y 1, Z 1, in a sequence of steps, said result being expressed in Jacobian coordinates X 3, Y 3, Z 3, the sequence comprising the following steps: (i) Z 3 = Z 1 2; (ii) Y 3 = Y 1 2; (iii) α = X 1 * Y 3, wherein α is a temporary variable; (iv) Z 3 = 3(X 1 - Z 3) * (X 1 + Z 3); (v) X 3 = Z 3 2 - 8α; (vi) α = Z 3 * (4α - X 3); (vii) Y 3 = α - 8Y 3 2; (viii) Z 3 = 2Y 1 * Z 1; (i) Z 3 = Z 1 2; (ii) Y 3 = Y 1 2; (iii) α = X 1 * Y 3, wherein α is a temporary variable; (iv) Z 3 = 3(X 1 - Z 3) * (X 1 + Z 3); (v) X 3 = Z 3 2 - 8α; (vi) α = Z 3 * (4α - X 3); (vii) Y 3 = α - 8Y 3 2; (viii) Z 3 = 2Y 1 * Z 1; in step (iv), A = X 1, B = Z 3, C = A + B, D = 3(A-B); in step (v), A = Z 3 2, B = α, D = A - 8B; in step (vi), A = α, B = X 3, D = 4A - B; in step (vii), A = α, B = Y 3 2, D = A - 8B; in step (viii), A = Y 1, D = 2A.