3.5. Rationale (Motivazione)
3.5. Rationale (Motivazione)
Il processo descritto nelle sezioni precedenti imita il processo di generazione di k "Approved" descritto nell'Appendice D di [X9.62] con il generatore di numeri pseudocasuali "HMAC_DRBG". La differenza principale è che utilizziamo la concatenazione della chiave privata x e del messaggio hash H(m) come seed per il generatore di numeri pseudocasuali (PRNG). Quando si utilizza un "livello di sicurezza" di n bit, HMAC_DRBG dovrebbe essere utilizzato con un'entropia del seed di almeno n+64 bit. Tuttavia, la chiave x dovrebbe anche essere stata generata con altrettanta entropia, e la lunghezza di x è qlen, che è almeno uguale a 2*n, quindi maggiore di n+64 (DSA ed ECDSA, come specificato dagli standard, richiedono qlen >= 160). Si può quindi sostenere che ECDSA deterministico soddisfa i requisiti di entropia dell'Appendice D di [X9.62].
Utilizziamo bits2octets(H(m)) invece di H(m) per facilitare l'integrazione. In effetti, molti sistemi di firma esistenti esternalizzano l'hashing dei messaggi; il motore di firma (che ha accesso alla chiave privata) riceve solo H(m). In alcune applicazioni dove la larghezza di banda dei dati è limitata, solo i primi qlen bit di H(m) vengono trasmessi al motore di firma, sulla base del fatto che la trasformazione bits2int ignorerebbe comunque i bit successivi. Eventualmente, in alcuni sistemi, l'H(m) troncato potrebbe essere ridotto modulo q esternamente, poiché questa è la prima cosa che (EC)DSA fa con il messaggio hash. Con la definizione di bits2octets, (EC)DSA deterministico può essere applicato con lo stesso input.