Puncte:0

Care este nevoie de rețele de substituție și permutare în AES?

drapel ec

Am încercat să răspund la această întrebare de ceva timp. Dar o înțelegere intuitivă completă încă îmi scapă.

Luați în considerare o construcție alternativă pentru un cifru bloc fără nicio rețea de substituție și permutare. Acest cifru bloc doar XOR blocurile de mesaje cu chei diferite care sunt derivate dintr-o cheie principală (similar cu modul ECB, dar cu chei diferite pentru fiecare bloc de mesaje). Dacă extensia de chei care generează mai multe chei dintr-o singură cheie principală este sigură criptografic, atunci cifrul bloc rezultat ar trebui să fie, de asemenea, sigur criptografic. Sunt destul de sigur că raționamentul meu este incorect, dar nu pot identifica eroarea.

Orice explicații intuitive despre de ce această construcție nu este bună și de ce avem nevoie de rețele de substituție și permutare în AES sunt binevenite.

fgrieu avatar
drapel ng
Sugestie: luați în considerare funcția de criptare a construcției alternative pentru o cheie secretă fixă. Ce este $E(A\oplus B)$ (unde $\oplus$ este [exclusiv bitwise-OR](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)) w.r.t. $E(A)$ și $E(B)$? Ar fi de așteptat acea proprietate de la o permutare aleatorie? Cum dăunează securității?
Abhisek Dash avatar
drapel ec
Puteți, vă rog, să detaliați ce reprezintă A și B?
fgrieu avatar
drapel ng
În comentariul meu de mai sus, $A$ și $B$ sunt intrări arbitrare ale cifrului bloc luat în considerare (altfel spus: blocuri arbitrare de text simplu). Dacă acesta ar fi AES-192, $A$ și $B$ ar fi șiruri de biți arbitrare pe 128 de biți.
Abhisek Dash avatar
drapel ec
Sugerați să criptați atât A cât și B cu aceeași cheie? Dacă reutilizam cheia, aceasta va cauza o problemă cu tastatura de două ori. Deci, rețeaua de permutare a substituției previne acest lucru prin ofuscarea relației intrare-ieșire. Este corect?
fgrieu avatar
drapel ng
Da, sugerez să examinăm consecințele criptării atât $A$, cât și $B$ cu aceeași cheie. Aceasta face parte din utilizarea intenționată a unui cifru bloc: ar trebui să rămână în siguranță chiar dacă aceeași cheie este utilizată cu multe blocuri diferite. Și într-adevăr, reutilizarea cheii ar fi nesigură cu construcția luată în considerare în întrebare, din motive legate de ceea ce se întâmplă atunci când un tampon este reutilizat în pad-ul One Time.
Puncte:0
drapel vn

Acest cifru bloc doar XOR blocurile de mesaje [...]

Faptul că vorbiți despre „blocuri de mesaje” aici sugerează că lucrați de la una dintre acele definiții îngrozitoare (greșite) pentru începători ale „cifrului bloc” care spun că este un cifr care criptează un mesaj cu lungime variabilă pe rând. . O mulțime de explicații introductive spun asta, dar pur și simplu nu așa este folosit termenul de criptografii actuali, așa că găsesc acea „definiție” prietenoasă (se presupune) pentru începători, pur și simplu greșită și confuză.

Un cifru bloc în criptografia teoretică este un algoritm care este conceput ca o implementare în viața reală a unui familie de permutări pseudoaleatoareâun algoritm cu cheie secretă care implementează o funcție care amestecă blocuri de date cu lungime fixă ​​într-un mod care în practică nu poate fi distins de o permutare aleasă aleatoriu a domeniului său. Acest răspuns de pe acest site este destul de lung despre el.

Ceea ce vrei să spui tocmai prin „cifr de bloc” aici este esențial, deoarece dacă mergi cu „cifrul care criptează mesajele cu lungime variabilă pe rând” pe care îl critic, atunci propunerea ta aici:

Acest cifru bloc doar XOR blocurile de mesaje cu chei diferite care sunt derivate dintr-o cheie principală

... este de fapt o modalitate solidă de a construi un cifr securizat cu lungime variabilă dintr-un cifr bloc (în sensul propriu). Cel utilizat pe scară largă Modul de operare CTR de fapt, funcționează de-a lungul acestor linii – generați fluxul cheie (ceea ce numiți „chei diferite care sunt derivate din cheia principală”) prin aplicarea cifrului bloc la un contor de blocuri de mesaje.

Cu toate acestea, există un decalaj uriaș în propunerea dvs., deoarece nu spuneți cum să derivați subcheile din cheia principală, în afară de a presupune că este „securizată criptografic” – ce înseamnă să fie sigur în această aplicație și cum o obțineți? De fapt, aceasta este o continuare grozavă în mențiunea dvs. despre rețelele de substituție/permutare, pentru că acesta este „sosul special” pe care AES îl folosește pentru a satisface această cerință, pe care nu îl puteți realiza deloc dacă tot ce aveți la dispoziție este un maestru. cheie și XOR.


Deci, pentru a reformula și a rezuma:

  1. În ciuda faptului că o mulțime de materiale pentru începători spun că un „cifr în bloc” este un algoritm care criptează un mesaj cu lungime variabilă bloc la un moment dat, aceasta nu este definiția tehnică reală în criptografie.
  2. Ideea dvs. de a cripta un mesaj de lungime variabilă prin împărțirea lui în blocuri și XOR fiecare independent cu chei generate cu un „key expander” este, în esență, sunet și foarte comun.
  3. Cu toate acestea, treceți peste cum ar funcționa extensia cheii și acea este exact locul în care se încadrează tehnici precum rețelele de substituție/permutare (sau alternative precum rețelele Feistel). Acesta este unul dintre lucrurile care face ca AES să fie potrivit pentru a fi folosit ca „expandator cheie” pentru această aplicație.
Abhisek Dash avatar
drapel ec
Vă mulțumesc pentru răspunsul dumneavoastră detaliat. Bănuiesc că tot ce întreb este dacă cheile generate de „extensorul de chei” nu se pot distinge de aleatorii, atunci mai am nevoie de o rețea de permutare de substituție în cifrul meu bloc? Sau poate cifrul meu bloc poate doar blocuri de mesaje XOR cu chei generate de expanderul de chei (un pic ca un cifru de flux)? Bănuiesc că, dacă mesajul meu trebuie să fie completat, atunci această construcție poate scurge valorile cheii, dar, pentru simplitate, presupunem că nu este nevoie să tampăm.Îmi dau seama că criptografia este complexă și vor fi multe cazuri de colț de care trebuie să țin cont.
Abhisek Dash avatar
drapel ec
Am primit explicația ta acum. Va continua să exploreze în continuare.

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.