Passa al contenuto principale

5.1.5 Key Generation (Generazione delle chiavi)

5.1.5 Key Generation (Generazione delle chiavi)

La chiave privata è di 32 ottetti (256 bit, corrispondenti a b) di dati casuali crittograficamente sicuri. Vedere [RFC4086] per una discussione sulla casualità.

La chiave pubblica di 32 byte è generata con i passi seguenti.

  1. Applicare SHA-512 alla chiave privata di 32 byte, memorizzando il digest in un buffer di 64 ottetti, denotato h. Solo i 32 byte inferiori sono usati per generare la chiave pubblica.

  2. Potare (prune) il buffer: si azzerano i tre bit meno significativi del primo ottetto, si azzera il bit più significativo dell'ultimo ottetto, e si imposta il secondo bit più significativo dell'ultimo ottetto.

  3. Interpretare il buffer come intero little-endian, formando lo scalare segreto s. Eseguire la moltiplicazione scalare a base fissa [s]B.

  4. 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 32 ottetti. Il bit più significativo dell'ultimo ottetto è sempre zero. Per formare la codifica del punto [s]B, copiare il bit meno significativo della coordinata x nel bit più significativo dell'ultimo ottetto. Il risultato è la chiave pubblica.