Fondamentalmente si. Ecco come funziona RSA, come descritto in lo standard .
On encryption , i dati di input vengono prima "riempiti", ovvero espansi con un po 'di casualità e struttura, e poi trasformati in un grande valore intero m nella 0..n-1 ( n è il modulo). Tale valore viene quindi elevato alla potenza e (l'esponente pubblico) modulo n , producendo un altro intero nell'intervallo 0..n-1 . Il risultato è codificato in byte con ciò che RFC chiama I2OSP (convention non firmata big-endian). Per un modulo RSA a 1024 bit, otterrai sempre un risultato di 128 byte.
Allo stesso modo, una firma RSA , per una chiave a 1024 bit, ha sempre una lunghezza esattamente di 128 byte.
Promemoria obbligatorio: no, non stai "crittografando con la chiave privata". L'intera nozione di "crittografia con la chiave privata" è un'analogia imperfetta, che funziona solo per RSA, e in realtà non funziona per RSA, proprio perché fallisce completamente nel prendere in considerazione il padding. Hai firma . E, in effetti, usi il flag di riga di comando -sign
. RSA è due algoritmi, che capita di condividere alcune strutture matematiche comuni, ma non tutte; le cose saranno più chiare se continui a pensare a RSA encryption e RSA firme come processo distinto.