Puncte:8

Pe ce câmp Galois funcționează cu adevărat AES?

drapel tf
Tom

Încerc să înțeleg teoria GF, dar de fiecare dată când dau peste informații despre AES, totul nu are sens.

În opinia mea $GF(2^8)$ definește orice polinom de forma:

$a_{7} x^7 + a_{6} x^6 + a_{5} x^5 + a_{4} x^4 + a_{3} x^3 + a_{2} x^2 + a_ {1} x^1 + a_{0}$

Unde $a_{i}$ poate fi 0 sau 1. Și oriunde dau peste informații în care funcționează AES $GF(2^8)$. Dar în AES $a_{i}$ sunt octeți, nu? Asa de $a_{i}$ poate fi fiecare număr de la 0 la 7. Și asta înseamnă că avem aici $GF(8^8)$. Și nu are nimic de-a face $GF(2^8)$.

Ori eu încă nu înțeleg GF-ul, ori toți fac un fel de simplificare atât de departe de adevăr, încât nu ar trebui făcută. Deci, ce câmp Galois AES folosește cu adevărat?

Puncte:11
drapel ng

Nu, în AES $a_i$ nu sunt octeți. Sunt niște biți. Cei 8 biți $a_i$ împreună formează un octet și sunt considerate un singur element al Câmpului Galois ${\operatorname{GF}\left(2^8\right)}$, a notat de asemenea $\mathbb F_{2^8}$.

Valoarea acelui octet poate fi calculată prin evaluarea polinomului pentru întreg $x=2$, cu adunare și înmulțire obișnuită. În sens invers, biții $a_i$ sunt reprezentarea binară a valorii întregi a octetului, peste 8 cifre binare, cu $a_0$ bitul cel mai puțin semnificativ.

Există 16 octeți într-o cheie AES simplu text, ciphertext sau rotundă. Acestea pot fi privite ca elemente ale setului ${\left({\operatorname{GF}\left(2^8\right)}^{4}\right)}^{4}$. Aceasta reprezintă organizarea celor 16 octeți ca o matrice de 4×4 de elemente ale ${\operatorname{GF}\left(2^8\right)}$. În special, acest set este un grup sub extensia legii de adunare a câmpului ${\operatorname{GF}\left(2^8\right)}$, care atunci când este aplicat octeților este exclusiv-OR pe biți. Acesta este folosit în AddRoundKey.Este posibil să exprimați ShiftRows, SubBytes și chiar MixColumns în acest cadru.

Pentru MixColumns, există o altă vizualizare posibilă, în care coloanele respectivei matrice 4×4 sunt cei 4 coeficienți din ${\operatorname{GF}\left(2^8\right)}$ a unui polinom de grad mai mic decât 4. Astfel de polinoame pot fi înmulțite cu reducerea modulo un polinom de reducere de gradul 4. Nu eram familiarizat cu asta, care este carnea acestui alt raspuns, și din aceasta cometariu. Lectura mea este că această vedere oferă o reducere elegantă unui vector cu 4 elemente de ${\operatorname{GF}\left(2^8\right)}$ a matricei obișnuite 4×4 din MixColumns și simplifică derivarea matricei inversate necesare pentru decriptare, dar nu permite nicio scurtătură de calcul nici în criptare, nici în decriptare.

Ruggero avatar
drapel kr
Mixcolumns încorporează o coloană a stării ca polinom în $GF(2^8)[X]$ și efectuează o înmulțire cu $'03'X^3+'01'X^2+'01'X+'02'$ modulo $X^4+1$. Notația „xx” este codificarea hexadecimală a elementului $GF(2^8)$. Deoarece $X^4+1$ nu este ireductibil, acesta nu este un câmp. Cu toate acestea, este coprim cu $'03'X^3+'01'X^2+'01'X+'02'$, așa că Mixcolumns este inversabil.
Puncte:4
drapel sa

Puteți vedea o vedere algebrică a AES la într-un document scris de H. W. Lenstra.

Există și cel mai detaliat Designul lui Rijndael document al designerilor de la Daemen's pagina principala. Mai exact la pagina 16, există:

acest

Poate că asta te face confuz, deoarece mai mulți octeți sunt priviți ca polinoame $GF(2^8)$ pentru această parte a reprezentării.

drapel ar
Acesta este un punct bun. În special, dacă te gândești la elementele lui ${\rm GF}(2^8)$ ca polinoame peste ${\rm GF}(2)$, așa cum le place multor oameni, atunci AES folosește polinoame ai căror coeficienți sunt _eși înșiși_ polinoame(!).
drapel ar
(FWIW, [în opinia mea](https://crypto.stackexchange.com/a/2718), în timp ce reprezintă elementele ${\rm GF}(p^n)$ ca polinoame peste ${\rm GF}( p)$ este util pentru definirea regulilor de adunare și înmulțire pentru acele câmpuri, odată ce regulile sunt definite, reprezentarea _alternativă_ este cel mai bine lăsată deoparte, iar elementele văzute ca numere într-un tip amuzant de sistem aritmetic, deoarece asta sunt cu adevărat .)
fgrieu avatar
drapel ng
A durat cea mai bună parte a unei zile, dar cel puțin acum înțeleg despre ce vorbește acest răspuns, dacă nu exact unde simplifică lucrurile.

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.