SNÖ är ett ordorienterat synkront strömchiffer utvecklat av Lunds universitet (Sverige). För närvarande har den 3 modifieringar: SNOW 2.0, SNOW 3G, SNOW-V. SNOW 3G används för säker mobil dataöverföring.
SNOW 1.0, ursprungligen bara SNOW [1] , utvecklades 2000. Chifferet fungerar med 32-bitars ord och stöder både 128- och 256-bitars nycklar. Chifferet består av en kombination av ett linjärt återkopplingsskiftregister (LFSR) och en tillståndsmaskin (FA).
Svagheter hittades i den första versionen [2] och som ett resultat inkluderades inte SNOW i NESSIE- algoritmsviten . År 2003 utvecklade författarna en ny version av SNOW-chifferet 2.0 [3] , som eliminerade brister och förbättrade prestanda. Under utvärdering av European Telecommunications Standards Institute ( ETSI ) [4] expertgrupp för säkra algoritmer ( eng. SAGE ) [ 4] modifierades krypteringsalgoritmen ytterligare för att öka dess motståndskraft mot algebraiska attacker. Resultatet av dessa förbättringar 2006 var modifieringen av SNOW 3G-chifferet [5] [6] .
2019 reviderade Ericsson Research , tillsammans med Lunds universitet, SNOW 3G-algoritmen och uppdaterade den till ett nytt, snabbare chiffer kallat SNOW-V [7] , som kan användas för säker dataöverföring i den nya generationen 5G- kommunikation .
Generatorn består av ett linjärt återkopplingsskiftregister med längden 16 över ett fält . Utsignalen från registret matas till tillståndsmaskinens ingång. KA består av två 32-bitars register som kallas R1 och R2, samt några operationer för att beräkna utsignalen och nästa tillstånd (nästa värde på R1 och R2). Chifferet fungerar enligt följande. Först initieras nyckeln. Denna procedur tillhandahåller initiala värden för LFSR, såväl som för register R1, R2 i tillståndsmaskinen. Sedan beräknas de första 32 bitarna av nyckelströmmen genom bitvis addition av KA-utgången och den sista LFSR-posten. Därefter synkroniseras hela processen, och de nästa 32 bitarna av nyckelströmmen beräknas genom att addera ytterligare en bitvis addition av utmatningen från tillståndsmaskinen och den sista LFSR-posten. Vi synkroniserar igen och fortsätter i samma anda. [2]
Vid den initiala tiden t = 0 initieras skiftregistret med 32-bitars värden , som specificeras med den genererade nyckeln.
Återkopplingsfunktionen för registret ges av ett polynom:
där ges av ett irreducerbart polynom
,över och .
Låt oss kalla utgången KA . Det beräknas med hjälp av följande formel:
,var är heltalstillägg över .
Tillståndsmaskinens utdata jämförs med modulo 2 för att bilda en strömningsnyckel, dvs.
,var är tillägget över .
Inuti tillståndsmaskinen tilldelas nya värden för R1 och R2 enligt följande formler:
,där är en cyklisk förskjutning till vänster
Slutligen består S-boxen , betecknad med , av fyra identiska 8x8 bitars S-boxar och en permutation av de resulterande bitarna. Indata är uppdelad i 4 byte, varje byte ingår i en icke-linjär mappning från 8 bitar till 8 bitar. Efter denna mappning byts bitarna i det resulterande ordet för att bilda det slutliga S-box- resultatet [1] .
För den slutliga bildningen av chiffertexten jämförs strömnyckeln med klartexten modulo 2.
SNOW 2.0 är ett av strömchiffrorna som ingår i krypteringsstandarden ISO/IEC ISO/IEC 18033-4 [10] , som definierar slutledningsfunktioner för att sammanfoga en nyckelström med klartext, nyckelströmsgeneratorer för att generera en nyckelström och objektidentifierare som tilldelas valda nyckelströmsgeneratorer i enlighet med ISO/IEC 9834 för strömchiffer.
SNOW 3G [6] väljs som strömnyckelgenerator för krypteringsalgoritmerna 3GPP UEA2 och UIA2 [11] .
Symmetriska kryptosystem | |
---|---|
Streama chiffer | |
Feistel nätverk | |
SP nätverk | |
Övrig |