SNOW er en ord-orienteret synkron strøm-chiffer udviklet af Lunds Universitet (Sverige). I øjeblikket har den 3 modifikationer: SNOW 2.0, SNOW 3G, SNOW-V. SNOW 3G bruges til sikker mobil datatransmission.
SNOW 1.0, oprindeligt kun SNOW [1] , blev udviklet i 2000. Chifferen fungerer med 32-bit ord og understøtter både 128- og 256-bit nøgler. Chifferen består af en kombination af et lineært feedback-skiftregister (LFSR) og en tilstandsmaskine (FA).
Der blev fundet svagheder i den første version [2] , og som et resultat blev SNOW ikke inkluderet i NESSIE- algoritmepakken . I 2003 udviklede forfatterne en ny version af SNOW cipher 2.0 [3] , som eliminerede mangler og forbedrede ydeevnen. Under evaluering af European Telecommunications Standards Institute ( ETSI ) [4] gruppe af eksperter i sikre algoritmer ( eng. SAGE ) [ 4] blev krypteringsalgoritmen yderligere modificeret for at øge dens modstand mod algebraiske angreb. Resultatet af disse forbedringer i 2006 var ændringen af SNOW 3G-chifferet [5] [6] .
I 2019 reviderede Ericsson Research sammen med Lunds Universitet SNOW 3G-algoritmen og opdaterede den til en ny, hurtigere chiffer kaldet SNOW-V [7] , som kan bruges til sikker datatransmission i den nye generation af 5G -kommunikation .
Generatoren består af et lineært tilbagekoblingsskiftregister med længde 16 over et felt . Outputtet fra registret føres til indgangen på tilstandsmaskinen. KA består af to 32-bit registre kaldet R1 og R2, samt nogle operationer til at beregne output og den næste tilstand (den næste værdi af R1 og R2). Chifferen fungerer som følger. Først initialiseres nøglen. Denne procedure giver startværdier for LFSR såvel som for registre R1, R2 i statsmaskinen. Derefter beregnes de første 32 bit af nøglestrømmen ved bitvis addition af KA-output og den sidste LFSR-record. Derefter synkroniseres hele processen, og de næste 32 bit af nøglestrømmen beregnes ved at tilføje endnu en bitvis tilføjelse af output fra tilstandsmaskinen og den sidste LFSR-indgang. Vi synkroniserer igen og fortsætter i samme ånd. [2]
På det indledende tidspunkt t = 0 initialiseres skiftregisteret med 32-bit værdier , som er specificeret ved hjælp af den genererede nøgle.
Feedbackfunktionen for registret er givet af et polynomium:
hvor er givet ved et irreducerbart polynomium
,over og .
Lad os kalde udgangen KA . Det beregnes ved hjælp af følgende formel:
,hvor er heltalsaddition over .
Statusmaskinens output sammenlignes med modulo 2 for at danne en streamingnøgle, dvs.
,hvor er tilføjelsen slut .
Inde i statsmaskinen er nye værdier for R1 og R2 tildelt i henhold til følgende formler:
,hvor er et cyklisk skift til venstre
Endelig består S-boksen , betegnet med , af fire identiske 8x8 bit S-bokse og en permutation af de resulterende bits. Indgangsdataene er opdelt i 4 bytes, hver byte er inkluderet i en ikke-lineær mapping fra 8 bit til 8 bit. Efter denne kortlægning byttes bitsene i det resulterende ord for at danne det endelige S-boks [1] resultat .
For den endelige dannelse af chifferteksten sammenlignes strømnøglen med klartekst modulo 2.
SNOW 2.0 er en af stream-cifrene inkluderet i ISO/IEC ISO/IEC 18033-4 [10] krypteringsstandarden , som definerer inferensfunktioner til sammenkædning af en nøglestrøm med almindelig tekst, nøglestrømsgeneratorer til generering af en nøglestrøm og objektidentifikatorer tildelt til udvalgte nøglestrømsgeneratorer i overensstemmelse med ISO/IEC 9834 for strømkryptering.
SNOW 3G [6] er valgt som strømnøglegenerator for 3GPP UEA2 og UIA2 [11] krypteringsalgoritmerne .
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |