5.2.5 Key Generation (Generazione delle chiavi)
5.2.5 Key Generation (Generazione delle chiavi)
La chiave privata è di 57 ottetti (456 bit, corrispondenti a b) di dati casuali crittograficamente sicuri. Vedere [RFC4086] per una discussione sulla casualità.
La chiave pubblica di 57 byte è generata con i passi seguenti:
-
Applicare SHAKE256(x, 114) alla chiave privata di 57 byte, memorizzando il digest in un buffer di 114 ottetti denominato h. Solo i 57 byte inferiori sono usati per generare la chiave pubblica.
-
Potare il buffer: si azzerano i due bit meno significativi del primo ottetto, tutti gli otto bit dell'ultimo ottetto, e si imposta il bit più significativo del penultimo ottetto.
-
Interpretare il buffer come intero little-endian, formando lo scalare segreto s. Eseguire la moltiplicazione scalare a base nota [s]B.
-
La chiave pubblica A è la codifica del punto [s]B. Prima codificare la coordinata y (nell'intervallo 0 <= y < p) come stringa little-endian di 57 ottetti. Il bit più significativo dell'ottetto finale è sempre zero. Per formare la codifica del punto [s]B, copiare il bit meno significativo della coordinata x nel bit più significativo dell'ottetto finale. Il risultato è la chiave pubblica.