Passa al contenuto principale

A.1.3. Signature (Firma)

A.1.3. Signature (Firma)

Con la nostra chiave privata e il valore di k che abbiamo appena generato, possiamo ora calcolare la firma utilizzando i meccanismi ECDSA standard. Prima, viene calcolato il punto kG, e la coordinata X di quel punto viene convertita in un intero e quindi ridotta modulo q, producendo la prima metà della firma:

r = 0x113A63990598A3828C407C0F4D2438D990DF99A7F

che utilizziamo, insieme a x (la chiave privata), k (che abbiamo calcolato sopra), e h = bits2int(h1), per calcolare la seconda metà della firma:

s = 0x1313A2E03F5412DDB296A22E2C455335545672D9F

Una firma ECDSA è una coppia di interi. In molti protocolli che richiedono che una firma sia una sequenza di bit (o ottetti), è consuetudine codificare la firma come una SEQUENCE ASN.1 di due valori INTEGER, con regole DER. Questo risulta nella seguente firma di 48 ottetti:

30 2E 02 15 01 13 A6 39 90 59 8A 38 28 C4 07 C0
F4 D2 43 8D 99 0D F9 9A 7F 02 15 01 31 3A 2E 03
F5 41 2D DB 29 6A 22 E2 C4 55 33 55 45 67 2D 9F