Inden for kryptografi er Decim en LFSR-baseret stream-chiffer udviklet af Côme Burbain , Oliver Billet, Ann Cantoux, Nicolas Courtois , Blandine Debret, Henry Hilbert, Louis Goubin, Aline Gouget, Louis Grandboulan, Cederic Lardoux, Marin Mignet, Thomas Pornin og Herv Sibe . Specialiseret til hardwareimplementering. Patenteret . Det blev introduceret i eSTREAM- projektet , hvor det ikke gik ud over tredje fase.
Det vigtigste krav til ciphers er modstand mod forskellige typer angreb . Algebraiske angreb er en af de mest alvorlige sikkerhedstrusler mod streaming af chiffer . Hvis forholdet mellem en kombination af hemmelige nøglebits og gammabitten , der genereres af den, er enkel eller let forudsigelig, så er det også en simpel opgave at finde algebraiske sammenhænge mellem en kombination af hemmelige nøglebits og en nøglestrømsbit (gamma). For at komplicere forholdet mellem kombinationen af bits af den hemmelige nøgle (eller kombinationen af bits af den oprindelige tilstand af LFSR genereret af den hemmelige nøgle) og bits af nøglestrømmen (gamma), bruges en ikke- lineær filtreringsfunktion fra kombinationen af bits af den hemmelige nøgle og desynkroniseringsmekanismer mellem kombinationen af bits af den hemmelige nøgle og bits af nøglestrømmen (gamma ). Begge disse mekanismer (den ikke-lineære filtreringsfunktion og desynkroniseringsmekanismen mellem kombinationen af LFSR-bits og keystream -bits ) er grundlaget for driften og det vigtigste middel til at forhindre kryptoanalytiske angreb af Decim -chifferet .
Kom godt i gang med Decim -strømchifferet begynder med at indtaste en 80-bit privat nøgle og en 64-bit offentlig nøgle (initialiseringsvektor). Derefter beregnes starttilstanden af 192-bit LFSR ved hjælp af visse lineære kombinationer af bit og bit , ved brug af en ikke-lineær filterfunktion og anvendelse af ABSG- samplingmekanismen . Efter at have udført alle disse operationer, begynder genereringen af nøglestrømmen [1] , og den fylder en speciel buffer BUFFER , som bruges til at sikre det kontinuerlige output af bit til outputtet af chifferen, hvor de tilføjes modulo to med en binær rækkefølge af almindelige tegn .
Det primitive polynomium forbundet med LFSR har formen:
Angiv med [2] sekvensen af bit modtaget fra LFSR -output , så er reglen for beregning af en bit ved LFSR -output :
For at komplicere afhængighederne mellem LFSR bits og bits bruges en ikke-lineær filtreringsfunktion af syv variabler . I hver cyklus anvendes den to gange - på bits, der er i forskellige positioner i LFSR . Betegn og fungerer sådan, at
og
, hvor
Lade
.
LFSR bitpositioner, der er argumenter til og :
Derefter
.
ABSG- samplingsmekanismen bruges til at forhindre algebraiske angreb og nogle typer hurtige korrelationsangreb ved at desynkronisere de filtrerede LFSR - bits og gamma- bittene . Arbejdet med ABSG- samplingsmekanismen er at opdele sekvensen i undersekvenser af formen , hvor , og output if , og andet.
ABSG algoritme
Input: ( )
Sæt: ,
Gentag følgende trin:
Eksempel:
lad så den tilsvarende sekvens ved udgangen af ABSG har formen .
I gennemsnit svarer en bit ved indgangen til ABSG til en bit ved udgangen, som det kan ses af eksemplet.
Buffer BUFFERDa ABSG-bitoutputtet ikke er konstant ( i gennemsnit bruges tre bit til at generere én bit ), og da strømchifferet skal udsende en gammabit for hver klokcyklus , bruges en BUFFER-buffer til kontinuerligt at udsende gammabits .
Efter initialisering af starttilstanden af RSLOS begynder udfyldningen af BUFFER , og først efter at BUFFER er udfyldt, begynder krypteringen af klarteksten (desuden fungerer BUFFER i henhold til typen af kø - den første bit, der kommer ind i BUFFER er først til at forlade).
Der er en mulighed for, at mens BUFFER skulle have udsendt en smule, viste det sig at være tomt. Denne sandsynlighed er lille, for eksempel for en BUFFER med fire input, er sandsynligheden for, at den er tom, når den skal udsende en bit . Decim - udviklerne foreslår at se bort fra denne mulighed, idet de antager, at dens sandsynlighed er nul.
Den hemmelige nøgle er 80 bit lang, den offentlige nøgle (initialiseringsvektor) er 64 bit lang, men polstret med nuller til 80 bit. Lad biterne af LFSR . Derefter beregnes starttilstanden for LFSR som følger:
Det kan ses, at antallet af mulige begyndelsestilstande af LFSR er .
For at forhindre afvejningsangreb med tidshukommelse skal længden af LFSR være mindst 160 bit. LFSR bør også være enkel i hardwareimplementering . Baseret på disse faktorer blev LFSR- størrelsen valgt til at være 192 bit.
Hamming-vægten af det primitive polynomium bør være stor nok til at forhindre et hurtigt korrelationsangreb , men på den anden side bør Hamming-vægten af det primitive polynomium ikke være for stor, for ikke at øge tiden for chifferen i hardwaren implementering.
Filterfunktionen skal være ligevægt [3] og for at forhindre differentiel kryptoanalyse skal den opfylde udbredelseskriteriet : funktionen skal være ligevægt. For at forenkle hardwareimplementeringen er det også ønskeligt, at funktionen er symmetrisk, det vil sige, at værdien af funktionen kun afhænger af Hamming-vægten af dens argument (sæt x_1,...x_7). Alt dette krav er opfyldt af en kvadratisk funktion af formen:
,
som bruges som filtreringsfunktion for Decim -chifferet .
Med undtagelse af komplekse tilfælde af tidshukommelses-kompromisangreb, er den beregningsmæssige kompleksitet af angreb på Decim -chifferet ifølge forfatterne lig med kompleksiteten af et brute-force- angreb og er ikke mindre end [4] .
Men en uafhængig kryptoanalyse udført af Hongyang Wu og Bart Prenil viste upålideligheden af Decim-chifferet, og den beregningsmæssige kompleksitet af angrebet viste sig ikke at være mere end , hvilket er absolut uacceptabelt [5] .
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |