Produktsystemer, substitutions-permutations-net samt lineær og differentiel kryptoanalyse Kryptologi, fredag den 10. februar 2006 Nils Andersen (Stinson 3., afsnit 2.7 3.4 samt side 95) Produkt af kryptosystemer Iteration af et endomorft kryptosystem Nøgleskema og runder Substitutions-permutations-net (SPN) og inversion Eksklusiv disjunktion og dens egenskaber Feistel-net og inversion Skævhed af binær stokastisk variabel Skævhed af sum af uafhængige stokastiske variable Lineær approksimation af S-net Lineær kryptoanalyse af SPN Differentiel kryptoanalyse af SPN 1
Produktsystemer Ud fra S 1 = (P, M, K 1, E 1, D 1 ) og S 2 = (M, C, K 2, E 2, D 2 ) kan man danne deres produkt S 1 S 2, det vil sige systemet S 1 S 2 = (P, C, K 1 K 2, E, D), hvor e (K1,K 2 ) = e K 2 e K1 og d (K1,K 2 ) = d K 1 d K2. Dette produkt behøver ikke at være kommutativt (men det vil altid være associativt). Specielt kan et endomorft system S = (P, C, K, E, D), det vil sige et, hvor P = C, multipliceres med sig selv. Hvis S S = S 2 = S, er systemet idempotent. Additiv kode, substitutionskode, affin kode, Hill-kode, Vigenèrekode og permutationskode er alle idempotente. Men hvis en kode ikke er idempotent, kan man undertiden danne mere sikre koder ved iteration, det vil sige ved at bruge S n (med koder, der er n gange så lange som dem i S) i stedet for S. 2
Itereret kode med runder Lad g være indkodningsfunktion for en ikkeidempotent kode. Et nøgleskema danner Nr rundenøgler (K i ) i=1,...,nr (indeks placeret for oven) ud fra en nøgle K, og den itererede kode indkoder gennem Nr + 1 tilstande: w 0 x w i g K i(w i 1 ), i = 1,..., Nr y w Nr og afkoder på tilsvarende måde: w Nr y w i 1 g 1 K i (wi ), i = Nr,..., 1 x w 0 idet vi går ud fra, at gk 1 (g k(w)) = w for hver delnøgle k og tilstand w. 3
Substitutions-permutations-net, opsætning For positive heltal l og m opdeles et lm-bitord x = (x 1,..., x ml ) i m l-bit-blokke (nummerering af bit og blokke begynder med 1): x = x 1 x m x i = (x (i 1)l+1,..., x il ) Substitution af en l-bit-blok fastlægges af en permutation π S : {0, 1} l {0, 1} l og permutation af et helt lm-bit-ord af en permutation π P : {1,..., lm} {1,..., lm} π P benyttes i kommer fra -notation, hvilket vil sige, at (v πp (1),..., v π P (lm)) afbildes over i (w 1,..., w lm ). Andre muligheder: går til -notation og cykelnotation. 4
Substitutions-permutations-net, kodning Nøgleskemaet antages at skaffe Nr +1 delnøgler (K i ) i=1,...,nr+1. De første Nr 1 runder består af addition af en delnøgle, m (parallelle) substitutioner og en permutation. Den Nr-te runde har kun delnøgleaddition og substitution, og til sidst adderes K Nr+1 : w 0 x for r to Nr 1 do u r w r 1 K r for i to m do v r i π S(u r i ) od w r (v r π P (1),..., vr π P (lm) ) od u Nr w Nr 1 K Nr for i to m do v i Nr y v Nr K Nr+1 π S(u Nr i ) od Afkodning: Løs (Stinson 3.) opgave 3.1. Se eksempel 3.1 og figur 3.1 (Stinson 3., side 75-78). 5
Eksklusiv disjunktion = modulo-to-sum Binær algebra: 0 = falsk, 1 = sand, Inklusiv disjunktion (enten... eller... eller begge dele, (lat.:) vel... vel... ) = = Konjunktion (både... og..., (lat.:)... et... ) = = & = Eksklusiv disjunktion (enten... eller..., men ikke begge dele, (lat.:) aut... aut... ) = ikke-ækvivalens ( ) = sum modulo 2 = 0 1 0 0 1 1 1 0 a (b c) = (a b) c b a = a b a 0 = 0 a = a a a = 0 a (b c) = (a b) (a c) a 1 = 1 a = a a a = 1 a = b c a b c = 0 a b = (a b) ( a b) = (a b) ( a b) 6
Feistel-net Hver tilstand u i deles op i en venstre og en højre halvdel: og hver runde danner hvor u i = L i R i L i R i = g K i(l i 1 R i 1 ) L i = R i 1 R i = L i 1 f(r i 1, K i ) for en funktion f, som ikke behøver at opfylde nogen specielle betingelser! Se (Stinson 3.) figur 3.6. Afkodning? (Opgave (Stinson 3.) 3.2.) Foreslået 1973 af Horst Feistel i IBM s Lucipher. 7
Stokastisk variabel Et diskret udfaldsrum består af endeligt mange elementære udfald a, til hver af hvilke der er knyttet en ikke-negativ sandsynlighed P (a), sådan at summen af alle rummets udfald er 1. En hændelse A er en delmængde af udfald, og dens sandsynlighed Pr[A] er summen af sandsynlighederne for dens elementære udfald: Pr[A] = P (a) a A En stokastisk variabel X kan opfattes som en afbildning fra et udfaldsrum U ind i de reelle tal, og for et reelt tal r taler man om sandsynligheden for X = r : Pr[X = r] = Pr[X 1 ({r})] = a U X(a) = r P (a) To stokastiske variable X og Y er uafhængige, hvis Pr[X = r Y = s] = Pr[X = r]pr[y = s] for alle r og s. 8
Skævhed af binær stokastisk variabel En binær stokastisk variabel X afbilder udfaldsrummet over i {0, 1} og afgrænser blot to sandsynligheder, Pr[X = 0] = p og Pr[X = 1] = 1 p. Skævheden (eng.: bias) af X defineres som Bi[X] = p 1, så at 2 Pr[X = 0] = 1 2 +Bi[X], Pr[X = 1] = 1 2 Bi[X]; X er retfærdig (eng.: fair), hvis Bi[X] = 0. Sætning: For k indbyrdes uafhængige stokastiske variable X 1,..., X k vil Bi[X 1... X k ] = 2 k 1 k i=1 Bi[X i ] Korollar: Hvis blot en af de stokastiske variable X i er retfærdig, vil hele summen X 1... X k også være det. 9
Lineær approksimation af S-net En binær funktion f er lineær, hvis f(x y) = f(x) f(y) for alle x og y. Eksempel: f(x) = x c. For en S kasse π S : {0, 1} m {0, 1} n forsøger man at finde en uretfærdig stokastisk variabel X i1... X ik Y j1... Y jl for 1 i 1 <... < i k m, 1 j 1 <... < j l n, idet (Y 1,..., Y n ) = π S (X 1,..., X m ). Se eksempel 3.2, tabel 3.1 og figur 3.2 (Stinson 3., side 82 84). Repræsentation som tabel vil kræve 2 m n bit. 10
Lineær kryptoanalyse Kombiner skævheder i S-kasserne til en uretfærdig vej gennem hele nettet, det vil sige: Find en ikke-retfærdig sum Z af bit fra klarteksten samt nøglebit (fra delnøglerne K 1,..., K Nr ) og bit fra tilstanden U Nr netop forud for de sidste S-kasser og den afsluttende addition af delnøglen K Nr+1. Antag, man har samlet sig et stort materiale af sammenhørende værdier (x, y) af klartekster og ciffertekster alle for samme nøgle k, og at de bit fra U Nr, der indgår i Z, er funktioner af Y og af m bestemte bit fra K Nr+1. (Husk, at π S og dermed også πs 1 er kendt.) For hver af de 2 m muligheder for de nævnte m nøglebit gennemløbes materialet, og Bi[Z] beregnes. Hvis materialet er stort nok (omvendt proportionalt med kvadratet på skævheden), træder de m rigtige nøglebit frem. Se afsnit 3.3.3, figur 3.3 og algoritme 3.2 (Stinson 3., side 84 88). 11
Differential og overføringsforhold For et m-bitord x skal (x ) betegne de 2 m par (x, x ) med sum (eng.: x-or) x : x x = x. For en S-kasse π S : {0, 1} m {0, 1} n udnyttes uligheder i dens overføring af indgangssummer til udgangssummer: Dan en tabel over de 2 m 2 n værdier N D (x, y ) = {(x, x ) (x ) π S (x) π S (x ) = y } som udtryk for de betingede sandsynligheder eller overføringsforhold (eng.: propagation ratios) Pr[udgangssum = y indgangssum = x ] = N D(x, y ) 2 m Kombiner særligt store overføringsforhold til et differentielt spor gennem nettet fra en bestemt indgangssum x til en bestemt tilstandssum (u Nr ). Under antagelse af, at nettets enkelte lag er uafhængige, dannes overføringsforholdet ε for det differentielle spor ved multiplikation, og det bliver igen større end ved en tilfældig fordeling. 12
Differentiel kryptoanalyse De positioner i u Nr, hvor (u Nr ) har 1-bit, afhænger af k bestemte bit fra K Nr+1. Antag, man har samlet sig et materiale af sammenhørende værdier (x, x, y, y ), det vil sige: cifferteksterne y og y svarer til henholdsvis x og x, alle indkodninger benytter samme (ukendte) nøgle, og hvert kvadrupel har indgangssum x x = x. For hver af de 2 k muligheder for de nævnte delnøglebit gøres da følgende: Materialet løbes igennem; ud fra y og y og de aktuelle delnøglebit regnes tilbage til u Nr og (u Nr ), og brøkdelen med den rigtige sum (u Nr ) tælles op. Hvis materialet er stort nok (omvendt proportionalt med ε), træder de k rigtige nøglebit frem. Se eksempel 3.3, figur 3.4, figur 3.5 og algoritme 3.3 (Stinson 3., side 89 95). 13