MESH (cifr)

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 15 ianuarie 2019; verificarea necesită 1 editare .
PLASĂ
Creator Nakahara , Raimen , Prenelle , Vandewalle
publicat 2002
Dimensiunea cheii 128, 192, 256 biți
Dimensiunea blocului 64, 96, 128 de biți
Numărul de runde 8,5, 10,5, 12,5
Tip de bazat pe IDEA , o modificare a Rețelei Feistel

În criptografie , MESH  este un cifru bloc care este o modificare a IDEA . Proiectat de Georges Nakahara , Vincent Raimen , Bart Presnel și Joos Vandewalle în 2002. Spre deosebire de IDEA, MESH are o structură rotundă mai complexă. Un algoritm diferit de generare a cheilor permite MESH să evite problema cheilor slabe [1] .

Structura cifrului

Fiecare rundă în IDEA și MESH constă în operații de adunare și înmulțire. Secvența unor astfel de calcule într-o rundă formează caseta MA. Toate casetele MA din MESH folosesc cel puțin trei niveluri alternative de adunări și înmulțiri (conform schemei „zig-zag”), în timp ce în IDEA sunt doar două. Acest lucru face ca MESH să fie mai rezistent împotriva atacurilor cripto diferențiale și liniare . De asemenea, pentru a evita problema cheilor slabe, MESH folosește următoarele două principii:

La fel ca IDEA, MESH folosește următoarele operații:

Operațiunile sunt enumerate în ordinea descrescătoare a priorității. În calcul, o înregistrare reprezintă un cuvânt de 16 biți. Indicii sunt descriși în continuare.

MESH este descris în trei dimensiuni de bloc: 64, 96, 128 de biți. Dimensiunea cheii este luată de două ori mai mare [2] .

MESH-64

În această variantă, dimensiunea blocului este de 64 de biți, cheia este de 128 de biți. Criptarea are loc în 8,5 runde. Jumătate de rundă se referă la transformările de ieșire [3] .

Transformări rotunde

Indicați informațiile de intrare pentru runda -a:

Fiecare rundă constă din două părți: amestecarea datelor de intrare cu subchei și calcule MA. În rundele par și impare, amestecarea are loc diferit:

Transformările efectuate de casetele MA sunt aceleași pentru toate rundele. Datele de intrare pentru acestea se obțin după cum urmează:

Calculele MA sunt descrise prin următoarele formule:


Folosind rezultatele obținute de casetele MA, găsim datele de intrare pentru următoarea rundă:

Conform schemei, pentru a primi un mesaj criptat, după a opta rundă este necesar să se efectueze amestecarea conform unei scheme impare [4]

Generare cheie

Pentru generarea cheilor se folosește o cheie utilizator de 128 de biți, precum și constante de 16 biți : , , acestea sunt calculate în câmpul Galois modulo polinomul . Cheia de utilizator este împărțită în 8 cuvinte de 16 biți .

Subcheile sunt calculate după cum urmează [5] : unde .



Transcriere

Pentru decriptare, MESH, ca IDEA, folosește o schemă existentă, dar cu subchei rotunde modificate. Să desemnăm subcheile utilizate în criptare după cum urmează: - subchei ale rundelor complete; - conversii de ieșire din priză.

Apoi subcheile de decriptare sunt date după cum urmează [6] :

MESH-96

În această variantă, dimensiunea blocului este de 96 de biți, cheia este de 192 de biți. Criptarea are loc în 10,5 runde. Jumătate de rundă se referă la transformările de ieșire [7] .

Transformări rotunde

Indicați informațiile de intrare pentru runda -a:

Fiecare rundă constă din două părți: amestecarea datelor de intrare cu subchei și calcule MA. În rundele par și impare, amestecarea are loc diferit:

Transformările efectuate de casetele MA sunt aceleași pentru toate rundele. Datele de intrare pentru acestea se obțin după cum urmează:

Calculele MA sunt descrise prin următoarele formule:



Folosind rezultatele obținute de casetele MA, găsim datele de intrare pentru următoarea rundă:

Pentru a primi un mesaj criptat, după runda a 10-a este necesar să amestecați după un model ciudat [8]

Generare cheie

O cheie de utilizator de 192 de biți este utilizată pentru a genera chei, precum și constante de 16 biți, la fel ca pentru MESH-64.

Subcheile sunt calculate după cum urmează [9] : unde .





Transcriere

Pentru decriptare, MESH, ca IDEA, folosește o schemă existentă, dar cu subchei rotunde modificate. Să desemnăm subcheile utilizate în criptare după cum urmează:  - subchei ale rundelor complete; - conversii de ieșire din priză.

Apoi subcheile de decriptare sunt date după cum urmează [10] :

MESH-128

În această variantă, dimensiunea blocului este de 128 de biți, cheia este de 256 de biți. Criptarea are loc în 12,5 runde. Jumătate de rundă se referă la transformările de ieșire [11] .

Transformări rotunde

Indicați informațiile de intrare pentru runda -a:

Fiecare rundă constă din două părți: amestecarea datelor de intrare cu subchei și calcule MA. În rundele pare și impare, amestecarea are loc în moduri diferite:



Transformările efectuate de casetele MA sunt aceleași pentru toate rundele. Datele de intrare pentru acestea se obțin după cum urmează:

Calculele MA sunt descrise prin următoarele formule:







Folosind rezultatele obținute de casetele MA, găsim datele de intrare pentru următoarea rundă:

Pentru a primi un mesaj criptat, după runda a 12-a este necesar să amestecați după un model ciudat [12]

Generare cheie

O cheie de utilizator de 256 de biți este utilizată pentru a genera chei, precum și constante de 16 biți, la fel ca pentru MESH-64 și MESH-96.

Subcheile sunt calculate după cum urmează [13] : unde .



Transcriere

Pentru decriptare, MESH, ca IDEA, folosește o schemă existentă, dar cu subchei rotunde modificate. Să desemnăm subcheile utilizate în criptare după cum urmează: - subchei ale rundelor complete;  — conectați transformările de ieșire.

Apoi subcheile de decriptare sunt date după cum urmează [14] :

Criptanaliză

Mai jos este un tabel care conține informații calculate despre posibilele atacuri cripto. Se ocupă de algoritmi trunchiați, numărul de runde poate fi văzut în coloana corespunzătoare. Textele clare selectate sunt luate ca date , este indicat numărul necesar de astfel de texte (în blocuri). Timpul se măsoară în număr de calcule. Memoria reflectă numărul de celule de memorie necesare pentru a stoca orice date în timpul unui atac criptografic. După cum se poate observa din tabel, toate variantele de MESH sunt mai greu de spart cu criptoatacurile prezentate decât IDEA, pe care se bazează [15] [16] .

Tabelul 1. Generalizarea complexităților atacurilor criptografice asupra IDEA și MESH [17]
Cifru Criptanaliză Runde Date Memorie Timp
IDEA
(8,5 runde)
Integral
Dif. trunchiat.
Diferență imposibilă.
Diferență imposibilă.
MESH-64
(8,5 runde)
Integral
Dif. trunchiat.
Diferență imposibilă.
Diferență imposibilă.
MESH-96
(10,5 runde)
Integral
Dif. trunchiat.
Diferență imposibilă.
Diferență imposibilă.
MESH-128
(12,5 runde)
Integral
Dif. trunchiat.
Diferență imposibilă.
Diferență imposibilă.

Note

  1. The MESH Block Ciphers, 2002 , p. 1-2.
  2. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 124.
  3. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 125.
  4. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 125-126.
  5. The MESH Block Ciphers, 2002 , p. 3.
  6. The MESH Block Ciphers, 2002 , p. patru.
  7. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 127.
  8. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 127-129.
  9. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 129.
  10. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 129-130.
  11. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 130.
  12. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 130-132.
  13. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 132.
  14. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 132-133.
  15. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 10-11.
  16. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 178-180.
  17. Cryptanalysis And Design Of Block Ciphers, 2003 , p. 179.

Literatură