Sto lavorando su crittografia Java. Ho trovato che RSA / ECB / [somePadding] non è sicuro. Quali modalità possono essere utilizzate rispettivamente per RSA ed Elgamal? Voglio implementare entrambi e analizzare le prestazioni.
Contrariamente a quanto hai letto, e ai commenti che hai ricevuto sulla tua domanda, RSA in qualsiasi "modalità" diversa da ECB è una pessima idea in tutte le situazioni . Se hai bisogno della crittografia a chiave privata e hai bisogno di crittografare più di ~ 240 byte di dati, la crittografia ibrida è la strada da percorrere. Non utilizzare mai RSA come codice a blocchi.
Il motivo per cui ho citato "mode" sopra è perché RSA non usa una modalità di cifratura, semplicemente perché RSA non è un codice a blocchi. Penso che la ragione per cui sei confuso, e la ragione per cui i commentatori precedenti sono confusi, è perché l'API Java Crypto si aspetta il secondo valore se vuoi anche definire il padding, e l'ECB è l'unico che ha senso. Puoi anche utilizzare None
, credo.
Ricorda che questo è specifico per RSA. RSA in "Modalità ECB" è buono . RSA in qualsiasi altra "modalità" è cattiva . La crittografia simmetrica in modalità ECB è non valida .
TL; DR: Quello che stai facendo è sicuro. Quella una parte specifica. Non posso parlare per nessun'altra parte del tuo progetto.
Leggi altre domande sui tag cryptography