Puncte:0

Folosind AES.MODE_EAX pentru criptarea AES

drapel ga

În prezent, încerc să efectuez criptarea AES în Python pe un fișier de dimensiune mai mare în scopuri de simulare. În acest moment, am încercat să folosesc AES.MODE_EAX, așa cum este menționat în documentația pentru AES:

https://pycryptodome.readthedocs.io/en/latest/src/cipher/aes.html

Am vrut să verific care ar fi modul corect de abordare a criptării fișierului.

În acest moment, împart fișierul în bucăți de 16 octeți și folosesc aceeași cheie de 128 de biți pentru a crea un cifr pentru a cripta fiecare bucată. Rulez următoarele comenzi pe fiecare bucată după cum este necesar pentru criptare și efectuez o analiză a rezultatelor criptate:

cifr = AES.new(cheie, AES.MODE_EAX)
nonce = cipher.nonce
ciphertext, tag = cipher.encrypt_and_digest(data_chunk)

Nu sunt sigur dacă înțelegerea mea este completă. Ar fi aceasta o abordare validă pentru criptarea datelor prin AES? Sau există alte moduri sau abordări cu MODE_EAX (cum ar fi utilizarea datelor din fișierul complet?) pe care ar trebui să le iau în considerare în acest caz?

SAI Peregrinus avatar
drapel si
Există un motiv special pentru care utilizați pycryptodome? La fel, de ce EAX? Acesta nu este un mod folosit în mod obișnuit. Este mai lent decât OCB sau GCM și nu rezolvă problemele de non-reutilizare, așa cum o face SIV. Vreau să înțeleg limitările în care lucrați, deoarece răspunsul meu standard pentru modul corect de criptare a unui fișier este „utilizați vârsta (age-encryption.org)”.
Maarten Bodewes avatar
drapel in
Votez închiderea acestei întrebări, deoarece această întrebare a fost postată încrucișată în SO, unde îi aparține.
Puncte:2
drapel ru

Nu trebuie să împărțiți datele în blocuri de 16 octeți și să criptați individual fiecare bloc. Metoda encrypt_and_digest se va ocupa de toată această diviziune pentru dvs. În schimb, ar trebui să apelați metoda pe întreaga matrice de date.

Prin criptarea individuală a fiecărui bloc, creați un nonce și o etichetă pentru fiecare bloc, mai degrabă decât o singură nonce și o etichetă pentru toate datele dvs. Chiar și pentru date de dimensiuni moderate, aceasta va tripla dimensiunea criptogramei. Singurul beneficiu real al producerii unei etichete pe bloc este că, dacă integritatea mesajului este compromisă, puteți restrânge modificarea blocului în care a apărut.

După cum sa menționat în comentarii, AES.GCM este în general preferat față de AES.EAX în implementările moderne.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.