În timp ce implementați criptarea/decriptarea RSA (folosind python), textul simplu nu se potrivește cu textul cifrat decriptat pentru valori mari de text simplu. Funcționează bine pentru valori mai mici pentru text simplu (valoare numerică).
Intrare: p=53 q=59 e=3 text simplu = 1000 (cheie privată calculată ca 2011)
Aici, decriptarea dă 1000
ca text simplu, care este corect.
Acum dacă
Intrare: p=53 q=59 e=3 text simplu = 10000 (cheie privată calculată ca 2011)
Aici, după decriptare, textul simplu calculat este 619
(care ar trebui să fie 10000
)
Codul pentru același lucru este aici,
def encrypt (text simplu):
ciphertext = (text simplu**publicKey) % (self.n)
returnează text cifrat
def decriptare(text cifrat):
text clar = (text cifrat**privateKey) % (self.n)
returnează text simplu
Având în vedere că algoritmul va fi folosit pentru a cripta/decripta textul alfanumeric, care va produce valori numerice mari, ce modificări sunt necesare sau îmi lipsește ceva?
ps: Verificarea mai multor valori ale textului simplu, se poate întâmpla deoarece n=3127
și orice text clar mai mare decât 3127
nu va produce textul simplu original la decriptare. E posibil sa ma insel.
Cum să funcționeze pentru text simplu mai mare decât n
, Aici 3127
?