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:
- Î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.
- 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.
- 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.