
RM0453 Rev 2
711/1454
RM0453
Public key accelerator (PKA)
721
When performing this operation following special cases should be noted:
•
For k = 0, this function returns a point at infinity, that is (0, 0) if curve parameter b is
nonzero and (0, 1) otherwise. For k different from 0 it might happen that a point at
infinity is returned. When the application detects this behavior a new computation
should be carried out.
•
For k < 0 (i.e. a negative scalar multiplication is required) multiplier absolute value
k = |-k| should be provided to the PKA. After the computation completion, the formula
-P = (x, -y) can be used to compute the y coordinate of the effective final result (the x
coordinate remains the same).
24.4.16 ECDSA
sign
ECDSA signing operation (outlined in
(input
parameters) and in
(output parameters).
The application should check if the output error is equal to zero, if it is different from zero a
new k should be generated and the ECDSA sign operation should be repeated.
Table 161. ECC Fp scalar multiplication (Fast Mode)
Parameters with direction
Value (Note)
Storage
Size
IN
MODE
0x22
PKA_CR
6 bits
IN
Scalar multiplier k length
(In bits, not null,
8 < value < 640)
RAM@0x400
32 bits
Modulus length
(In bits, not null,
8 < value < 640)
RAM@0x404
Curve coefficient
a
sign
0x0: positive
0x1: negative
RAM@0x408
IN
Curve coefficient |a|
(Absolute value, |a| < p)
RAM@0x40C
EOS
Curve modulus value
p
(Odd integer prime,
0 < p < 2
640
)
RAM@0x460
Scalar multiplier k
(0
≤
k < 2
640
)
RAM@0x508
Point P coordinate x
P
(x <
p
)
RAM@0x55C
Point P coordinate y
P
(y <
p
)
RAM@0x5B0
IN
Montgomery parameter
R
2
mod
p
(mandatory)
RAM@0x4B4
OUT
Result: k x P coordinate
x
(result <
p
)
RAM@0x55C
Result: k x P coordinate
y
(result <
p
)
RAM@0x5B0