SNOW este un cifr de flux sincron orientat pe cuvinte dezvoltat de Universitatea Lund (Suedia). Momentan are 3 modificari: SNOW 2.0, SNOW 3G, SNOW-V. SNOW 3G este utilizat pentru transmisia securizată de date mobile.
SNOW 1.0, inițial doar SNOW [1] , a fost dezvoltat în 2000. Cifrul funcționează cu cuvinte de 32 de biți și acceptă atât chei de 128, cât și 256 de biți. Cifrul constă dintr-o combinație între un registru de deplasare cu feedback liniar (LFSR) și o mașină de stări (FA).
Puncte slabe au fost găsite în prima versiune [2] , și ca urmare, SNOW nu a fost inclus în suita de algoritmi NESSIE . În 2003, autorii au dezvoltat o nouă versiune a cifrului SNOW 2.0 [3] , care a eliminat neajunsurile și a îmbunătățit performanța. În timpul evaluării de către grupul de experți în algoritmi securizați a Institutului European de Standarde de Telecomunicații ( ETSI ) [4] ( ing. SAGE ) [ 4] , algoritmul de criptare a fost modificat în continuare pentru a-și crește rezistența la atacurile algebrice. Rezultatul acestor îmbunătățiri în 2006 a fost modificarea cifrului SNOW 3G [5] [6] .
În 2019, Ericsson Research , împreună cu Universitatea Lund, au revizuit algoritmul SNOW 3G și l-au actualizat la un cifr nou, mai rapid, numit SNOW-V [7] , care poate fi folosit pentru transmisia securizată de date în noua generație de comunicații 5G .
Generatorul constă dintr-un registru de deplasare cu feedback liniar de lungime 16 peste un câmp . Ieșirea registrului este alimentată la intrarea mașinii de stări. KA constă din două registre de 32 de biți numite R1 și R2, precum și unele operații pentru a calcula ieșirea și următoarea stare (următoarea valoare a lui R1 și R2). Cifrul funcționează după cum urmează. În primul rând, cheia este inițializată. Această procedură oferă valori inițiale pentru LFSR, precum și pentru registrele R1, R2 din mașina de stări. Apoi primii 32 de biți ai fluxului de chei sunt calculați prin adăugarea pe biți a ieșirii KA și a ultimei înregistrări LFSR. După aceea, întregul proces este sincronizat, iar următorii 32 de biți ai fluxului de chei sunt calculați adăugând încă o adăugare pe biți a ieșirii mașinii de stări și a ultimei intrări LFSR. Ne sincronizăm din nou și continuăm în același spirit. [2]
La momentul inițial t = 0, registrul de deplasare este inițializat cu valori de 32 de biți , care sunt specificate folosind cheia generată.
Funcția de feedback pentru registru este dată de un polinom:
unde este dat de un polinom ireductibil
,peste si .
Să numim ieșirea KA . Se calculează folosind următoarea formulă:
,unde este adunarea întregului peste .
Ieșirea mașinii de stări este comparată cu modulo 2 pentru a forma o cheie de streaming, adică
,unde se termină adunarea .
În interiorul mașinii de stări, noile valori pentru R1 și R2 sunt atribuite conform următoarelor formule:
,unde este o deplasare ciclică la stânga
În cele din urmă, S-box , notat cu , constă din patru S-box identice de 8x8 biți și o permutare a biților rezultați. Datele de intrare sunt împărțite în 4 octeți, fiecare octet fiind inclus într-o mapare neliniară de la 8 biți la 8 biți. După această mapare, biții din cuvântul rezultat sunt schimbați pentru a forma rezultatul final S-box [1] .
Pentru formarea finală a textului cifrat, cheia fluxului este comparată cu textul simplu modulo 2.
SNOW 2.0 este unul dintre cifrurile de flux incluse în standardul de criptare ISO/IEC ISO/IEC 18033-4 [10] , care definește funcții de inferență pentru concatenarea unui flux de chei cu text simplu, generatoare de flux de chei pentru generarea unui flux de chei și identificatori de obiect alocați celor selectate. generatoare de flux de cheie în conformitate cu ISO/IEC 9834 pentru cifrurile de flux.
SNOW 3G [6] este selectat ca generator de chei de flux pentru algoritmii de criptare 3GPP UEA2 și UIA2 [11] .
Criptosisteme simetrice | |
---|---|
Cifruri în flux | |
Rețeaua Feistel | |
Rețeaua SP | |
Alte |