Puncte:0

Cheia AES vs Cheia RSA

drapel in

Sunt complet nou în criptografie și recent am încercat să o înțeleg puțin mai bine. Intrebarea mea este: Cum diferă generarea cheilor în cazul AES și RSA. Am înțeles că cheia publică și privată a RSA poate fi derivată direct cu ceva modulo-magie.

Ce am inteles (cel putin sper) este urmatorul:

Perechea de chei (privată și publică) este strâns conectată la algoritmul RSA, adică modul în care lucrurile sunt criptate/decifrate.

Ce nu am inteles este asta:

In cazul AES nu inteleg. Site-urile pe care le-am consultat pentru a studia au explicat doar algoritmul, dar nu chiar cum sunt generate cheile și ce condiție trebuie să se supună pentru a putea fi potrivit pentru AES.

Deci intrebarea mea este:

Sunt cheile/perechile de chei în mod inerent (cum sunt create) cuplate la algoritm sau acesta este doar cazul pentru RSA. Dacă da, ce „formă” trebuie să aibă cheia în cazul AES?

Multumesc deja!

kelalaka avatar
drapel in
Bun venit la Cryptography.SE. Este mai bine să furnizați sursa dvs. de confuzie. AES și RSA sunt lucruri diferite. vezi [RSA key generation](https://crypto.stackexchange.com/search?q=RSA+key+generation) și cheile AES sunt alese uniform aleatoriu ca în toate cifrurile blocurilor.
Puncte:4
drapel gb

AES este un algoritm de cheie simetrică, ceea ce înseamnă că există o singură cheie, folosită atât pentru criptare, cât și pentru decriptare. Acest lucru este diferit de RSA, unde aveți două chei - una privată și una publică, legate într-un mod specific.

Cheile AES sunt pur și simplu octeți aleatori. De exemplu, AES-128 utilizează chei de 128 de biți (16 octeți). Deci, orice 128 de biți aleatoriu poate fi folosit ca o cheie AES-128. Nu trebuie să existe altă formă.

O cheie AES ca aceasta este apoi transformată în mai multe taste rotunde folosind a program cheie, ca parte a algoritmului.

Puncte:1
drapel cn

Algoritmii criptografici sunt împărțiți în două grupe majore: simetrice și asimetrice. Algoritmii din primul grup folosesc o cheie, care trebuie ținută secretă. Algoritmii din al doilea grup folosesc două chei diferite^ una dintre ele trebuie păstrată și ea secretă, dar a doua este publică.

AES este un cifru simetric, adică folosește o singură cheie pentru criptare și decriptare (toată lumea, care cunoaște o cheie, poate decripta un mesaj). În general, în criptografia simetrică (în criptografia modernă) singura restricție pentru cheie este dimensiunea acesteia. AES, de exemplu, acceptă chei pe 128, 192 și 256 de biți. De obicei, cheile trebuie să fie alese uniform dintr-un set de toate valorile posibile*.
NB: set de toate valorile posibile ale cheii definite efectiv de algoritm. Pentru AES-128 este un set de toți vectorii de 128 de biți $\mathbb{F}_2^{128}$, iar pentru cifra Caesar este doar un număr de la 0 la 26 - $\mathbb{F}_{27}$.
Un algoritm simetric concret definește un set de valori cheie posibile.Pentru cifrurile moderne este de obicei un vector binar de o anumită dimensiune**.

RSA este un cifru asimetric, adică folosește o pereche de chei, care constă din chei publice și private. Aceste chei sunt legate între ele într-un anumit mod pentru a permite criptarea cu cheie publică și decriptarea cu una privată (toată lumea, care cunoaște o cheie privată, poate decripta un mesaj). Aici situația devine puțin mai dificilă, deoarece un algoritm definește nu doar un set de valori cheie posibile. De asemenea, definește un algoritm de generare a cheilor pentru a garanta o relație specială între cheile publice și private.


* - potențial algoritmii pot necesita restricții suplimentare privind algoritmul de generare a cheilor pentru a oferi un nivel necesar de securitate (de exemplu, există unii algoritmi, care folosesc două chei diferite și independente), dar în general cheile trebuie să fie alese uniform dintre toate posibilele valorile.

** - există anumite restricții asupra cheilor setate pentru anumiți algoritmi, din cauza existenței unor chei slabe. Aceste taste produc aceeași cheie rotundă pentru fiecare rundă. Dar nu toți algoritmii le au.

Puncte:0
drapel si

Acest răspuns se referă în mod specific la afirmația dvs. „....algoritmul RSA, adică modul în care lucrurile sunt criptate/deciferate.” RSA de obicei nu este folosit pentru criptare, iar atunci când este, nu este niciodată doar algoritmul RSA. Nici AES nu este folosit singur pentru criptare!

AES este un algoritm cu cheie simetrică, în special un cifru bloc. Este nevoie de o cheie și un bloc de intrare și produce un bloc de ieșire. Folosirea aceleiași taste pe blocul de ieșire produce blocul de intrare original. Cu AES, blocurile sunt de 128 de biți (16 octeți). Cheile sunt de 128, 192 sau 256 de biți. Ele trebuie alese uniform la întâmplare, dar în afară de aceasta, nu au nicio restricție.

AES poate fi folosit pentru a construi o schemă de criptare, dar în sine nu este folosit pentru criptare, deoarece poate cripta în siguranță doar un singur bloc de 16 octeți! Trebuie folosit într-un „mod de operare” pentru a cripta util orice lucru mai mare sau mai mic de 16 octeți. AES poate fi folosit și pentru a construi funcții hash criptografice (niciun hash comun nu face acest lucru, dar AES-Hash a fost propus), coduri de autentificare a mesajelor (AES-CMAC), funcții de derivare a cheilor (NIST SP 800-108 descrie cum) și multe altele. Prin urmare, este greșit să considerăm AES (sau orice alt cifr bloc) ca fiind doar o funcție de criptare, în ciuda „criptării” din nume.

RSA este un algoritm cu cheie asimetrică. Are două chei, o cheie „publică” și una „privată”. Se presupune că cheia publică este disponibilă public, iar cheia privată nu va fi partajată niciodată cu nimeni. Operațiunea RSA utilizează una dintre taste și poate fi inversată folosind cealaltă tastă.Cheile RSA au o structură matematică specifică pentru a face acest lucru posibil; cheile private sunt alese mai întâi și cheia publică este derivată din cheia privată. Acest Articolul Wikipedia descrie bine generarea cheilor RSA, dar detaliile nu sunt importante pentru acest răspuns.

La fel ca AES, RSA nu este folosit singur pentru criptare. Trebuie utilizat cu o „schemă de umplutură” pentru criptare. Chiar și cu asta, este destul de lent și limitat la criptarea câtorva sute de octeți la un moment dat pentru dimensiuni practice ale cheilor. RSA este folosit mai frecvent pentru a construi o schemă de semnătură (din nou cu o schemă de umplutură), deși uneori este folosit pentru a construi un mecanism de schimb de chei pentru a schimba chei simetrice (de exemplu, pentru utilizarea cu AES în modul de operare Galois Counter).

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.