A SNOW egy szóorientált szinkron adatfolyam-rejtjel , amelyet a Lund Egyetem (Svédország) fejlesztett ki. Jelenleg 3 módosítása van: SNOW 2.0, SNOW 3G, SNOW-V. A SNOW 3G biztonságos mobil adatátvitelre szolgál.
A SNOW 1.0, eredetileg csak SNOW [1] , 2000-ben fejlesztették ki. A titkosítás 32 bites szavakkal működik, és támogatja a 128 és 256 bites kulcsokat is. A titkosítás egy lineáris visszacsatolási eltolási regiszter (LFSR) és egy állapotgép (FA) kombinációjából áll.
Az első verzióban gyengeségeket találtak [2] , és ennek eredményeként a SNOW nem került be a NESSIE algoritmuscsomagba . 2003-ban a szerzők kifejlesztették a SNOW cipher 2.0 új verzióját [3] , amely kiküszöbölte a hiányosságokat és javította a teljesítményt. Az Európai Távközlési Szabványügyi Intézet ( ETSI ) [4] biztonságos algoritmusokkal foglalkozó szakértői csoportja ( eng. SAGE ) [ 4] által végzett értékelés során a titkosítási algoritmust tovább módosították, hogy növeljék az algebrai támadásokkal szembeni ellenállását. E fejlesztések eredménye 2006-ban a SNOW 3G titkosító módosítása [5] [6] .
2019-ben az Ericsson Research a Lundi Egyetemmel közösen felülvizsgálta a SNOW 3G algoritmust, és frissítette egy új, gyorsabb titkosításra, a SNOW-V [7] névre , amely biztonságos adatátvitelre használható az 5G kommunikáció új generációjában .
A generátor egy mező feletti 16 hosszúságú lineáris visszacsatoló regiszterből áll . A regiszter kimenete az állapotgép bemenetére kerül. A KA két 32 bites R1 és R2 regiszterből áll, valamint néhány műveletből a kimenet és a következő állapot (R1 és R2 következő értéke) kiszámítására. A titkosítás a következőképpen működik. Először is inicializálják a kulcsot. Ez az eljárás kezdeti értékeket biztosít az LFSR-hez, valamint az állapotgépben az R1, R2 regiszterekhez. Ezután a kulcsfolyam első 32 bitje kiszámításra kerül a KA kimenet és az utolsó LFSR rekord bitenkénti összeadásával. Ezt követően az egész folyamatot szinkronizáljuk, és a kulcsfolyam következő 32 bitjét az állapotgép kimenetének és az utolsó LFSR bejegyzés bitenkénti hozzáadásával számítjuk ki. Ismét szinkronizálunk, és ugyanabban a szellemben folytatjuk. [2]
A t = 0 kezdeti időpontban a shift regiszter 32 bites értékekkel inicializálódik , amelyeket a generált kulccsal adunk meg.
A regiszter visszacsatolási függvényét egy polinom adja meg:
ahol egy irreducibilis polinom adja meg
,át és .
Nevezzük a kimenetet KA -nak . Kiszámítása a következő képlettel történik:
,ahol az egész szám összeadás vége .
Az állapotgép kimenetét a modulo 2- vel összehasonlítva streaming kulcsot alkotunk, azaz.
,hol van az összeadás vége .
Az állapotgépen belül az R1 és R2 új értékei a következő képletek szerint vannak hozzárendelve:
,ahol ciklikus eltolódás balra
Végül az S-box , amelyet jelöl , négy azonos 8x8 bites S-boxból és a kapott bitek permutációjából áll. A bemeneti adatok 4 bájtra vannak osztva, minden bájt egy nemlineáris leképezésben szerepel 8 bittől 8 bitig. A leképezés után az eredményül kapott szó bitjei felcserélődnek, így létrejön a végső S-box [1] eredmény .
A titkosított szöveg végső kialakításához a stream kulcsot összehasonlítjuk a modulo 2 egyszerű szöveggel.
A SNOW 2.0 egyike az ISO/IEC ISO/IEC 18033-4 [10] titkosítási szabványban szereplő adatfolyam-rejtjeleknek , amely következtetési függvényeket határoz meg a kulcsfolyamok egyszerű szöveggel való összekapcsolásához, kulcsfolyam generátorokat a kulcsfolyam generálásához, valamint a kiválasztott objektumazonosítókat. kulcs stream generátorok az ISO/IEC 9834 szabványnak megfelelően az adatfolyam titkosításokhoz.
A SNOW 3G [6] van kiválasztva a 3GPP UEA2 és UIA2 [11] titkosítási algoritmusok adatfolyam-kulcs-generátoraként .
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |