30
25 Symmetriska chiffer 2 Symmetriska chiffer E. Hemmingway. Det tar två år för en människa att lära sig tala. Femtio för att lära sig tiga. 2.1 Funktioner för chiffer Antag givet ett chiffersystem S = <M, C, K, E, D>. Antalet möjliga 1-1-funktioner e k E kan beräknas som följer: - Den första symbolen kan avbildas till vilken som helst av de | C | elementen i C. - Den andra symbolen kan avbildas på | C | - 1 olika chiffer. - Den tredje ... etc. - För den sista klartextsymbolen kvarstår | C | - | M | + 1 val. I varje S måste gälla att | C | | M | eftersom varje e k E är injektiv. Det totala antalet möjliga e k blir därför | E | = | C | * (| C | - 1) * ... * (| C | - | M | + 1) = | C | ! / (| C | - | M | ) !. Om antalet nycklar som kan specificeras uppfyller | K | > | C | så följer att det måste inträffa att det finns (minst) två nycklar k 1 k 2 som båda avbildar samma klartexter på samma chiffer. Sådana nycklar kallas ekvivalenta. De kan också förekomma om | K | < | C |. Om | M | = | C | = n bildar E den sk symmetriska gruppen, sym (Z n ), av ordning (d v s kardinalitet, d v s antalet element) n!. Exempel. I fallet DES gäller | M | = | C | = 2 64 men | K | = 2 56 . I teorin finns det alltså totalt 2 64 ! / (2 64 - 2 64 ) ! = 2 64 ! tänkbara blockchiffer. Nyckelmängden i DES begränsar dock dessa till 2 56 , bl a för att undvika ekvivalenser. I detta kapitel behandlas några möjligheter att välja avbildningar som kan framställas algoritmiskt effektivt. Frågan om resistens mot forcering kommer också upp här och i nästa kapitel. En metod att försöka stärka ett chiffer är att utgå från två eller fler "enkla" chiffer och tillämpa dessa i succesion. Ett produktchiffer uppstår: c = e n (e n-1 ( ... e 1 ( m ) ...) = e K (m) m = d 1 (d 2 ( ... d n ( c ) ...) = d K (c). Om det existerar en (1) nyckel som är ekvivalent med n stycken nycklar kallas chiffret idempotent. För att detta skall fungera krävs att M = C. Chiffren kallas då automorfa. Två chiffersystem S 1 och S 2 säges kommutera om S 1 S 2 = S 2 S 1 . Inte alla system är kommutativa. Däremot är produktoperationen alltid associativ. Ett produktchiffer bildas genom upprepad användning av ett (1) chiffer: S n .

2 Symmetriska chiffer

  • Upload
    ledung

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2 Symmetriska chiffer

2 5Symmetriska chiffer

2 Symmetriska chiffer

E. Hemmingway. Det tar två år för en människa att lära sig tala. Femtio för att lära sig tiga.

2.1 Funktioner för chiffer

Antag givet ett chiffersystem S = <M, C, K, E, D>. Antalet möjliga 1-1-funktioner ek ∈ Ekan beräknas som följer:

- Den första symbolen kan avbildas till vilken som helst av de | C | elementen i C.- Den andra symbolen kan avbildas på | C | - 1 olika chiffer.- Den tredje ... etc.- För den sista klartextsymbolen kvarstår | C | - | M | + 1 val.

I varje S måste gälla att | C | ≥ | M | eftersom varje ek ∈ E är injektiv.

Det totala antalet möjliga ek blir därför

| E | = | C | * (| C | - 1) * ... * (| C | - | M | + 1) = | C | ! / (| C | - | M | ) !.

Om antalet nycklar som kan specificeras uppfyller | K | > | C | så följer att det måste inträffaatt det finns (minst) två nycklar k1 ≠ k2 som båda avbildar samma klartexter på sammachiffer. Sådana nycklar kallas ekvivalenta. De kan också förekomma om | K | < | C |. Om| M | = | C | = n bildar E den sk symmetriska gruppen, sym(Zn), av ordning (d v skardinalitet, d v s antalet element) n!.

Exempel. I fallet DES gäller | M | = | C | = 264 men | K | = 256. I teorin finns det alltså totalt

264 ! / (264 - 264) ! = 264 !

tänkbara blockchiffer. Nyckelmängden i DES begränsar dock dessa till 256, bl a för attundvika ekvivalenser.

I detta kapitel behandlas några möjligheter att välja avbildningar som kan framställasalgoritmiskt effektivt. Frågan om resistens mot forcering kommer också upp här och i nästakapitel.

En metod att försöka stärka ett chiffer är att utgå från två eller fler "enkla" chiffer ochtillämpa dessa i succesion.

Ett produktchiffer uppstår:

c = en (en-1 ( ... e1( m ) ...) = eK(m)m = d1 (d2 ( ... dn( c ) ...) = dK(c).

Om det existerar en (1) nyckel som är ekvivalent med n stycken nycklar kallas chiffretidempotent.

För att detta skall fungera krävs att M = C . Chiffren kallas då automorfa.

Två chiffersystem S1 och S2 säges kommutera om S1S2 = S2S1. Inte alla system ärkommutativa. Däremot är produktoperationen alltid associativ.

Ett produktchiffer bildas genom upprepad användning av ett (1) chiffer: Sn.

Page 2: 2 Symmetriska chiffer

2 6Symmetriska chiffer

Ett chiffersystem S = <M, C, K, {ek}, { dk}> kallas idempotent om S2 = S. Skift-,substitutions-affina, Vigenère och permutations- chiffren är alla idempotenta, vilket betyderatt bland de enkla chiffer vi sett tillför produktbildning ingenting i kryptografisk styrka.

Om två chiffersystem båda är idempotenta och om de dessutom kommuterar så är också dessprodukt idempotent.

Däremot är sammansättningen av två involutioner, dvs en funktion f för vilken

f(f(x)) = x,

inte säkert en involution. Nedan är f och g involutioner; g f är det inte.

1 2 3 4 1 2 3 4 1 2 3 42 1 4 3 4 3 2 1 3 1 4 3

f g g f

Idén med tex DES är att bilda ett produktchiffer av icke-idempotenta chiffer.

2.2 Klassiska blockchiffer

Detta avsnitt beskriver några klassiska chiffer varav de flesta lättforcerade.

2.2.1 Caesarchiffer

Redan Caesar visste behovet av kryptografi. Enligt sägnen ska han ha utnyttjat följandeskiftchiffer i sin diskurs med Cicero.

i. Chiffret. Aritmetik sker på bokstävernas kardinalvärden; a ↔ 0, b ↔ 1, ..., z ↔ 25,med nyckel k = 3. Notera att Caesar använde samma k för en sekvens m1m2 ... .

E = {ek} och D = {dk} definieras enligt följande.

ek: ci = (mi + k) mod 26

dk: mi = (ci - k) mod 26

Alfabeten är M = C = K = Z26 = {0, 1, ..., 25}.

ii. Forcering. Med vår insikt om språk och chiffer är naturligtvis detta trivialt att forcera.Antag t ex att klartexten uttrycks på engelska. Statistiska studier visar att meningar omfattaren tämligen likartad fördelning av alfabetets bokstäver.

Tabeller som nedanstående har publicerats på många ställen (eta oin shru ...).

Bokstav a b c d e f g h i j k l mFrekvens 8.0 1.5 3.0 4.0 13. 2.0 1.5 6.0 6.5 0.5 0.5 3.5 3.0Bokstav n o p q r s t u v w x y zFrekvens 7.0 8.0 2.0 0.2 6.5 6.0 9.0 3.0 1.0 1.5 0.5 2.0 0.2

Tabell 2.1. Bokstavsfrekvenser

1. En forcering med endast chiffer tillgängliga utförs genom att leta reda på den symbol ¤som förekommer med frekvens t ex 13.0 och därefter lösa ekvationen

¤ = (e + k) mod 26

för att finna k. För bättre prediktion kan man pröva med fler korrespondenser.

Page 3: 2 Symmetriska chiffer

2 7Symmetriska chiffer

2. En annan metod använder uttömmande nyckelprovning; det finns ju bara 26 att väljamellan.

Denna metod kräver emellertid en viss "intelligens" i så måtto att man bör kunna avgöra vadsom är en rimlig klartext.

2.2.2 Affina chiffer

i. Definition. Dessa är linjära chiffer, som generaliserar skiftchiffren.

Här identifieras åter {a, ..., z } med {0, ..., 25} = Z26, alfabeten väljs som M = C =Z26 och E och D definieras via

ek: c = ek(m) = a m + b mod n

dk: m = dk(c) = αc + βmod n

Som alltid måste ek vara injektiv. Det betyder att nyckeln k = <a, b> måste väljas så attekvationen

c ≡ a m + b (mod n)a m ≡ c - b (mod n)

är entydigt lösbar i Zn med avseende på m. Det är fallet precis då d = gcd (a, n) = 1.

Om d > 1 så har tex ekvationen a m ≡ 0 (mod n) (minst) två lösningar, nämligen

m = 0m = n / d,

vilket betyder att ek inte är injektiv.

Om d = 1 kan vi anta att vi har två lösningar m och m', dvs a m ≡ a m' (mod n). Men då ära(m-m') ≡ 0 (mod n), dvs n delar a (m - m'); n | a (m - m').

Eftersom n | a (m - m') och gcd (a, n) = 1 så följer att n | (m - m') och alltså attm ≡ m' (mod n). Lösningen är alltså entydig om den existerar då d = 1.

Vidare: Om x varierar över Zn så kommer, då d = 1, a x mod n att anta n olika värden ochexakt en gång vardera, vilket betyder att a x ≡ b (mod n) har en lösning för varje b ∈ Zn.

ii. Sats. Kongruensen a x ≡ b (mod n) har en entydig lösning x ∈ Zn för alla b ∈ Znprecis då gcd (a, n) = 1.

Lösningen till ax ≡ 1 (mod n) betecknas x = a-1, x = a' eller x = 1 / a och kallas denmultiplikativa inversen till a modulo n. Dekrypteringsfunktionen kan nu uttryckas i k = <a,b> enligt

dk: m = a-1(c - b) (mod n) = a-1c - a-1b (mod n).

I funktionen ek(m) kan bara väljas sådana a som uppfyller gcd (a, n) = 1 medan godtyckliga b∈ Z26 är möjliga. Följande kallas reducerade mängden av residuer modulo n:

Zn* = {x ∈ Zn - {0} : gcd (x, n) = 1}.

Antalet tal i Zn* eller kardinaliteten av Zn* , | Zn* |, brukar betecknas med φ(n) och φ kallas

Eulers indikatorfunktion. Exempelvis är Z24* = {1, 5, 7, 11, 13, 17, 19, 23} och φ(n) = 8.

Antalet möjliga nycklar i ett affint chiffer blir alltså n * φ(n). För n = 26 fås 26 * 12 = 312möjliga nycklar. Alltså är K = Z26 × Z26* .

Page 4: 2 Symmetriska chiffer

2 8Symmetriska chiffer

Kryptoanalys av ett affint chiffer sker med samma metoder som analys av Caesarchiffer.

Observera dock att när vi väljer att anta att chiffrets mest frekventa symboler svarar motklartextsymbolerna e och t så uppstår ett linjärt ekvationssystem som måste ha en entydiglösning för att nyckeln ska kunna härledas (entydigt).

iii. Involutioner . Om det gäller att ek = dk så kallas chiffret en involution. För ett affintchiffer är detta fallet om

a ≡ a-1 (mod n)b ≡ - a-1b (mod n).

Den andra ekvationen kan med beaktande av den första skrivas

b (1 + a) ≡ 0 (mod n). (1)

Den första ekvationen kan skrivas på den alternativa formen

a2 ≡ 1 (mod n) (2)

Hur många involutioner finns det ? Fallet n = 15 får illustrera.

Ekvationen (2) har lösningarna a = 1, 4, 11 och 14. Detta inses här genom att pröva allavärden a ∈ Z15*. I kapital 4 presenteras den allmänna metoden.

För var och en av dessa a ska sedan b ∈ Z15 sådana att (1) är uppfylld beräknas. Resultatet äratt

a = 1 → b = 0 -- 1 möjligheta = 4 → b = 0, 3, 6, 9, 12 -- 5 möjlighetera = 11 → b = 0, 5, 10 -- 3 möjlighetera = 14 → b = 0, 1, ..., 14 -- 15 möjligheter

Det finns alltså 1 + 5 + 3 + 15 = 24 involutioner i detta fall.

Allmänt kan visas (gör det !) att för n = p q, där p och q är olika udda primtal gäller det attdet finns 1 + p + q + n involutioner för ett affint chiffer.

iv. Kommentarer. Det är naturligtvis möjligt att generalisera de linjära transforma-tionerna till högre ordning och bilda polynomchiffer

c = f(m) = ktmt + kt-1mt-1 + ... + k1m + k0 mod n.

Nyckelrymden blir lite större, men forcering med känd klartext blir ändå enkel.

Ett annat problem som uppstår är att det kan bli svårt att välja nycklar så atttransformationen blir injektiv.

Ett polynom (mod n) kan ju ha n rötter. Detta förhållande kan å andra sidan vändas till enfördel. Polynomchiffer har använts för en-vägs-chiffer; sådana där ingen invers behöverberäknas. I många operativsystem, t ex Unix, en-vägs-chiffreras lösenord innan de lagras ifilsystemet.

Page 5: 2 Symmetriska chiffer

2 9Symmetriska chiffer

2.2.3 Allmänna substitutioner

Både Caesarchiffer och affina chiffer är exempel på enkla substitutionschiffer, som över Znutnyttjar n respektive n φ(n) nycklar. För substitutioner gäller dock allmänt att man kanåstadkomma n! stycken: Exempelvis är 26! ≈ 4.0*1026 ≈ 288 ett STORT tal.

Stirlings formel: n ! ≈ √2π nn+1/2 e-n

kan användas för att uppskatta n !.

En "allmän" substitution definieras av en permutation π över Zn som kan anges som entabell: π(0) = ti, π(1) = tj, ..., π(n-1) = tk, tm ∈ Zn, som tjänar som nyckel för krypteringmedan dekryptering erhålls genom att läsa av tabellen från π-värde till argument.

Uttömmande nyckelsökning är utesluten för rimligt stora n. Däremot är det ganska enkelt attforcera via frekvenstabeller över bokstäver, boktavspar (di-gram), tri-gram, etc.

Några av de vanligaste digrammen, i engelska och i avtagande ordning, är

th, he, in, er, an, re, ed, on, es, st, enat, to, nt, ha, nd, ou, ea, ng, as, ...

De tolv vanligaste trigrammen är

the, ing, and, her, ere, ent, tha, nth, was, eth, for, dth.

Försök att beskriva ett systematiskt tillvägagångssätt för forcering.

2.2.4 Vigenèrechiffer

i. Metoden. För att försvåra forcering kan man använda ett polyalfabetiskt periodisktsubstitutionschiffer, som döljer klartextens frekvensfördelning genom multiplasubstitutioner.

Ett periodiskt substitutionschiffer framställs efter mallen: Givet m = m1 m2 ... definieraschiffret c = c1c2 ... enligt ekvationen

c = ek(m) = f1(m1) ... fd(md) f1(md+1) ... fd(m2d) ... .

Följande metod anges härstamma från 1500-tals kryptologen Blaise de Vigenère.

fi (m)= (m + ki ) mod n,

där antalet nyckelelement ki är begränsade till d stycken och återanvänds efter perioden d.Chiffret är alltså egentligen d stycken oberoende Caesarchiffer.

Om ki ∈ K med | K | = k så blir den totala nyckelrymden av storlek kd.

Ett Vigenèrechiffer kan ses som ett flödeschiffer eller som ett blockchiffer med storlek d.

Om perioden d är känd blir det bara d gånger jobbigare att forcera detta än att forcera ettCaesarchiffer. Metodens eventuella styrka förutsätter att d inte yppas.

Visserligen trodde man felaktigt till nästan in på 1900-talet att chiffret var mycket starkt. Ettsätt att lista ut [en approximation till] perioden är följande.

Låt pi vara sannolikheten att en godtycklig symbol i ett slumpmässigt valt chiffer är den i:tesymbolen i alfabetet. Sannolikheten för a är p1, för ett b är den p2, &c.

Följande mått är grunden för den forceringsmetod som den berömde kryptologen och överstenWilliam Friedman utvecklade på 20-talet.

Page 6: 2 Symmetriska chiffer

3 0Symmetriska chiffer

ii. MR. Definiera MR ('measure of roughness') som

MR = Σ0≤i≤n-1 (pi - 1/n)2. (1)

För n = 26 och t ex engelska, blir

MR = Σ0≤i≤25 pi2 - 0.038. (2)

Vidare kan noteras att 0 ≤ MR ≤ 0.028, där den undre gränsen uppnås om pi = 1/n, dvs attalla alfabetssymboler är lika sannolika.

Detta fall är för handen då chiffret är 'one time pad', då perioden d är oändlig. Om perioden d =1 så gäller å andra sidan enligt (2) och frekvenstabellen (tabell 2.1) ovan att MR = 0.028.

MR kan i allmänhet inte beräknas eftersom vi inte känner perioden, men observera att enligt(2) det gäller att

Σ0≤i≤25 pi2 = MR + 0.038. (3)

och att vänsterledet i (3) kan tolkas som sannolikheten att två godtyckligt valda symboler urett slumpkryptogram är lika.

Betrakta nu det chiffer av längd N som önskas forcerat. I detta finns det N2

= N(N - 1)/2 par

som kan väljas ut. Om Fi är antalet förekomster av den i:te symbolen i alfabetet i dettachiffer så är antalet par som bara innehåller den i:te alfabetssymbolen Fi(Fi - 1)/2.

iii. IC. Koincidensindex som definieras som sannolikheten att två godtyckligt valdasymboler i det givna chiffret är lika är alltså

IC = Σ0≤i≤25 (Fi(Fi - 1 )) / (N(N - 1)) (4)

och kan beräknas.

Notera nu att IC ≈ Σ0≤i≤25 pi2 = MR + 0.038.

Ovanstående angivna variation av MR kan nu användas för att sluta att 0.038 ≤ IC ≤ 0.066.

iv. Sats. Väntevärdet av IC är

E[IC] = κp * (N - d) / (d * (N - 1)) + κr * ((d - 1) / d) * N / (N - 1),

där κp = 0.066 0ch κ r = 0.038. (Friedman benämnde metoden för κ-testen, index p för'plaintext' och index r för 'random'.)

Bevis.

Antag nämligen chiffret av längd N skrivs upp i d kolumner

c1 c2 ... cdcd+1 cd+2 ... c2dc2d+1 c2d+2 ... c3d... ...

Varje kolumn kommer att utgöras av en sekvens framställd med ett monoalfabetisktskiftchiffer. Sannolikheten att två godtyckligt valda symboler är desamma blir då 0.066.

Om å andra sidan två symboler ur olika kolumner väljs så blir sannolikheten 0.038, eftersomde har tagits fram slumpmässigt.

Page 7: 2 Symmetriska chiffer

3 1Symmetriska chiffer

Antalet par som kan väljas ur en godtycklig kolumn blir (ungefär) N (N / d - 1) / 2, eftersomden första symbolen kan väljas på N sätt och nästa bara ur samma kolumn som den förstvalda.

Antalet par som kan väljas ur två olika kolumner blir N (N - N / d) / 2.

Det förväntade antalet (a) par med samma bokstav blir alltså det viktade medelvärdet av dessa.

a = 0.066 * N (N / d - 1) / 2 + 0.038 * N (N - N / d) / 2,

varför sannolikheten att två bokstäver är lika blir

a / (N (N - 1) / 2).

Detta är det förväntade IC-värdet E[IC].

Ekvationen kan lösas med avseende på d för att uttrycka den förväntade periodlängden medhjälp av koincidensindex IC:

d = (0.028 * N) / ((N - 1) * IC - 0.038 * N + 0.066). (5)

Med gränsprocessen N → ∞ erhålls approximationen

E[IC] ≈ 0.038 + 0.028 / d. (6)

Genom att beräkna IC kan en bra approximation till d bestämmas och därmed är chiffretforcerat.

Om detta inte lyckades kan man prova med d + 1, d - 1, d - 2, d + 2, ... .

De statistiska resonemangen ovan bygger på att N är stort och att periodlängden är liten.Skulle så inte vara fallet får man ta till andra metoder (om det går).

v. Kasiskis metod. En annan metod att estimera periodlängden är efter Friedmanspreussiske motsvarighet Kasiski.

Metoden som utvecklades på 1860-talet bygger på att identifiera avstånd mellanåterkommande n-gram, n ≥ 3, i chiffret och att göra hypotesen att periodlängden är en delaretill alla dessa avstånd.

Med n = 1 eller 2 blir koincidenserna många gånger tillfälliga, så använd återkommande 3-gram eller längre.

Exempel. Med m = to be or not to be och k = ham ham ham ham ... erhålls

c = aonloduof aonl

Den återkommande chiffersekvensen har avstånd 9 så Kasiskis metod indikerar att d = 1, 3eller 9. Det rätta d-värdet är ju 3.

De två metoderna kompletterar varandra.

vi. Varianter. Några varianter till Vigenère är följande.

Beaufort: fi (m) = (ki - m) mod n.

En poäng med detta chiffer är att dechiffreringen blir identisk med chiffreringen (Visa detta!).

Beaufortvariant:fi (m)= (m - ki ) mod n.

Detta chiffer är ekvivalent med att använda nyckeln n - ki i Vigenère (Visa detta!).

Page 8: 2 Symmetriska chiffer

3 2Symmetriska chiffer

'Running-key cipher': Ett sådant erhålls om ki-sekvensen tas från [ett specificerat ställe] inågon utpekad text. Nyckelsekvensen blir därför i praktiken oändlig eftersom den angivnatexten förutsätts vara minst lika lång som det meddelande man vill chiffrera.

Metoden ger dock, i motsats till 'one time pad', inte perfekt sekretess. Anledningen är att ennyckelsekvens genererad på detta sätt inte blir slumpmässig. Den innehåller i stället myckenredundans. Detta är tillräckligt för kryptoanalys.

Not. Ett 'running-key'-chiffer kan förstärkas genom succesiva chiffreringar med två eller flernycklar (överlagring). För en typisk engelsk text, med redundans 75%, förefaller fyraupprepningar ge ett närmast oforcerbart chiffer. Idag används dock andra starka flödeschiffer.

Definitioner och kvalitativa resonemang återfinns i nästa kapitel.

2.2.5 Hil lchiffer

i. Definition. En annan möjlighet att framställa ett polyalfabetiskt chiffer består i atttillverka blockchiffer över m-gram tillhörande (Zn)m.

Om exempelvis m = 2 och klartextblocket är x = <x1, x2> så bildas chiffret

y = <y1, y2>

genom systemet (tolkade mod n)

y1 = k11x1 + k12x2y2 = k21x1 + k22x2

vilket med matris/vektornotation kan (med radvektornotation för x och y) skrivas

y = xK.

För dekryptering gäller att

x = yK -1,

där K -1 är inversen till K ; KK -1 = I = enhetsmatrisen.

En känd-klartext-forcering är enkel. Att invertera en matris kräver endast Ordo(me)operationer, där e ≈ 2.718. (Enkel Gausseliminering ger Ordo(m3).)

ii. Noter.

1. Om K är en permutationsmatris (en matris med bara nollor och ettor sådan att det finnsexakt en etta i varje rad och exakt en etta i varje kolumn) erhålls ett permutationschiffer.

2. Lester Hill föreslog detta chiffer år 1929 och han rekommenderade att välja en involutionför K så att K = K -1.

3. Ett Hillchiffer kan generaliseras till ett affint chiffer.

y = xK + k .

4. Observera att K måste vara inverterbar.

- Om n är ett primtal är så fallet om determinanten det (K ) ≠ 0. Gausselimination el dyl kananvändas. I fallet m = 2 är också Cramers regel användbar.

- Om n inte är ett primtal så är inte Zn en talkropp. Matrisen K är inverterbar i detta fallprecis då gcd(det(K ), n) = 1. Cramers regel kan fortfarande användas, men om manGausseliminerar "blint" kan det inträffa fall där ett matriselement saknar invers.

Page 9: 2 Symmetriska chiffer

3 3Symmetriska chiffer

Exempel: Om m = 26 och

K =2 3

13 8

så är det (K ) =3 och gcd (det(K ), n) = 1, så K är inverterbar.

Om man försöker beräkna K -1 genom att multiplicera rad 1 med en konstant för att fåelementet i första kolumnen (tvåan) lika med 1 så går inte detta eftersom gcd (2, 26) ≠ 1.

Man kan dra 6 gånger rad 1 från rad 2, förstås.

2.3 Flödeschiffer

Detta avsnitt innehåller beskrivningar av några flödeschiffer.

2.3.1 Flödeschiffer baserade på LFSR

Ett linjärt återkopplat skiftregister (LFSR) kan användas för att generera slumptal. Ett n-bitsLFSR är otillräckligt som bas för nyckelgenerering för ett flödeschiffer eftersom forceringvia "känd klartext attack" bara kräver 2n par <c, m> för forcering. Detta framgår avnedanstående.

Med en initialnyckel om d bitar i registret R är det möjligt att erhålla en periodlängd 2d - 1.Med d bitar blir antalet möjliga tillstånd 2d. Från detta antal måste vi dock räkna bort 0-tillståndet eftersom detta genererar ki = 0 för alla i.

i. Exempel. Betrakta följande LFSR.

xor

R

ki

Skiftriktning

Figur 2.1. Ett LFSR

Figuren visar hur ett 4-stegs (d = 4) linjärt återkopplat skiftregister (R) kan användas för attgenerera en nyckelsekvens utgående från givet initalvärde ≠ 0. I detta fall enligtiterationsformeln

ki+4 = ki+3 + ki mod 2.

Med initialvärdet (0 0 0 1 ) erhålls nyckelsekvensen

1 0 0 0 1 1 1 1 01 01 1 0 0 ... .

Detta LFSR med d = 4 visar sig alltid ge 2d-1 ettor och 2d-1 - 1 nollor i nyckelsekvensen.

Två på varandra följande registertillstånd relateras på vektor-matris-form med beteckningarna

R = (ki+4, ki+3, ki+2, ki+1)R' = (ki+5, ki+4, ki+3, ki+2)

som

R' = HR mod 2,

Page 10: 2 Symmetriska chiffer

3 4Symmetriska chiffer

där H:s första rad är registrets avtappningssekvens

T = (t4, t3, t2, t1) = (1 0 0 1) -- 4:e och 1:a biten återkopplas

och H innehåller 1-or på subdiagonalen och 0-or för övrigt.

Detta LFSR kan också representeras av polynomet

T(x) = t4x4 + t3x3 + t2x2 + t1x1 + 1 = {här lika med} = x4 + x + 1.

Maximal periodlängd erhålls om T(x) = tnxn + ... + t1x + 1 är ett primitivt polynom, tj ∈{0, 1}.

De primitiva polynomen är den delmängd av de irreducibla polynom motsvarar de primitivaelementen (eller generatorerna) som behandlas i kapitel 4. På samma sätt gäller motsvarigheten:irreducibla polynomen ↔ primtal. Om p(x) är ett primitivt polynom av grad n så är även xnp(1/x)

ett primitivt polynom. Till exempel är både x4 + x + 1 och x4 + x3 + 1 primitiva. Primitivapolynom av olika gradtal brukar tabelleras i referensverk.

ii. Forcering. Eftersom flödeschiffrets definition c = m ⊕ k är ekvivalent med k = m ⊕ c,ger om de 2n första paren <c, m> är kända de 2n första k-bitarna. En förklaring till att detbehövs precis 2n par är att kännedom om n tj-värden och n initialbitar i registret är liktydigtmed att chiffret forcerats.

Inför X = (R1, ..., Rn) och Y = (R2, ..., Rn+1), där

R1 = (kn, ..., k1)T,

R2 = (kn+1,...,k2)T,

och

Rn+1 = (k2n, ..., kn+1)T.

Då gäller

Y = HX mod 2.

X och Y är emellertid kända så H kan lösas ut med mindre än Ordo(n3) operationer varvidchiffret är forcerat: H = YX -1 mod 2.

Exempel. Med m = 100 011 och c = 101 101 erhålls k = 001 110 och ekvationen Y = HXblir

1 1 0 1 1 1 0 1 1

= t3 t2 t1 1 0 0 0 1 0

* 1 1 1 0 1 1 0 0 1

Lösningen är t3 = 1, t2 = 0 t1 = 1.

En lämplig (hyfsat svår) övning är att visa att X alltid är inverterbar. Försök ocksåkonstruera ett LFSR som med ett initialväde ≠ 0 efter skift ger ett 0-tillstånd.

iii. Geffe utgår från tre stycken register vardera bestämda av primitiva polynom av grad 7,5 och 8. Registren kan då ge maximalsekvenser med perioder 127, 31 respektive 255. Låtdessa sekvenser betecknas s(7), s(5) respektive s(8).

I figurform är definitonen som följer.

Page 11: 2 Symmetriska chiffer

3 5Symmetriska chiffer

7 bits LFSR

5 bits LFSR

8 bits LFSR

and

not

and

zxor

Figur 2.2. Geffe-chiffer

Kopplingen kan skrivas

s(k) = ( s(7) and s(5) ) xor ( (not(s(5)) and s(8) )

(successiva bitvisa operationer)

och genererar en nyckelsekvens s(k) med period 127 * 31 * 255 ≈ 1 000 000.

Notera att s(5) agerar som en "vippa" som väljer ut en bit ur endera s(7) eller s(8).

Denna maximala periodlängd kan bevisas erhållas om

a. Ingående LFSR, längd n, genererar sekvenser av maximumlängd 2n - 1.

b. Registrens längder är relativt prima.

c. Genererade sekvenslängder är relativt prima.

Chiffren blir emellertid fortfarande svaga eftersom s(7) och s(8) läcker information till s(k).Man kan visa att, för given bitposition, korrelationssannolikheten är p[s(k) = s(7)] = 3/4 ochanalogt för s(8). För att se detta:

p[z = s(7)] = p[s(5) = 1] + p[s(5) = 0] * p[s(8) = s(7)] = 0.5 + 0.5 * 0.5 = 0.75.

iv. A5. Intressant att veta är möjligen att GSM-telefoni utnyttjar ett flödeskrypto mellantelefonen och basstationen. Systemet kallas A5 och är av franskt ursprung.

Det bygger på tre LFSR av längd 19, 22 respektive 23 vars utdata adderas modulo-2 för attge nyckelsekvensen. A5 har variabel "klockning" av registren baserad på mitt-bitarna.Avtappningssekvenserna definieras av "glesa" polynom.

Varianter med längre register ger mer svårforcerade metoder.

Det radikala greppet består i att konstruera återkopplade skiftregister som inte är linjära.

Dock blir sådana inte så snabba som de linjära.

2.3.2 Några andra flödeschiffer

i. JK-vippa. Två LFSR kan kombineras för att ge indata till en JK-vippa. Med q0 = 0definieras en sådan av utdata givet av

qt = J + qt-1(1 + J + K) mod 2,

där J och K står för indata. En alternativ definition är att qt = J om J ≠ K och qt = J + qt-1annars.

Exempel. Antag LFSR(1) har period m = 7 och inleds med J = 1001 011 ... och LFSR(2)har period n = 15 och inleds med K = 1000 0100 ... .

Page 12: 2 Symmetriska chiffer

3 6Symmetriska chiffer

Då erhålls följande:

t J K qt 0 01 1 1 12 0 0 13 0 0 14 1 0 15 0 1 0

Vippan ger periodlängd (2m - 1)(2n - 1) och en ganska välbalanserad ut-sekvens.

ii. 'Shrinking generator'. Detta är en variant som bygger på två LFSR R1 och R2 ochkan enkelt beskrivas som följer:

1. R1 och R2 klockas.

2. Om utdata från R1 är 1, så bildar utdata från R2 nyckelbiten.

3. Om utdata från R1 är 0, så bortses från utdata från R2.

Om R1 ooch R2 är maximallängds-LFSR med perioder l respektive m och gcd(l, m) = 1 såblir periodlängden för denna generator (2m - 1) 2l - 1.

För tillräckligt långa perioder blir detta chiffer nästan oforcerbart med idag kända metoder.

iii. Rotorsystem. Ett rotorsystem kan ses som en seriekoppling av ett antal sk kodskivormed en anslutning per element i alfabetet.

Varje skiva definierar en (intern) substitution över tex {a, ..., z }. Skivorna kan ställasin oberoende av varandra tex enligt en odometer-algoritm. Nyckeln i ett rotorsystem beståralltså av tre delar;

- De inre transformationerna fi i kodskivorna.- Positionerna j i för skivorna.- Algoritmen för skivornas rotationer.

Enigma (vad betyder ordet?), som är ett klassiskt och mycket omtalat system är ett rotordito.Det består/bestod av (mekaniska komponenter):

- Ett kopplingsbord (IP) som definierar en inledande och avslutande permutation.- Ett antal rotorskivor, vars läge ändras under chiffreringen.- En speglande rotor (s).

Chiffret som kan skrivas

Ei: xi → yi, Ei = IP-1 Ti IP,

där xi, yi ∈ { a, ..., z } och där Ti består av en produkt av Caesarchifffer C (vridningarav skivorna) och inre transformationer, d v s Ti = C-k fi Ck.

Rotorskivorna som ger de inre transformationerna byttes sällan; 9 stycken olika fanns atttillgå (för marinen), så den effektiva nyckeln var kopplingsbordet och initialpositionerna hosskivorna.

Det var för att forcera detta system som Alan Turing byggde Colossus (en av världens förstadatorer). Trots att detta är ett icke-trivialt produktchiffer lyckades ändå forcörer "knäcka" detunder det andra världskriget.

Page 13: 2 Symmetriska chiffer

3 7Symmetriska chiffer

2.3.3 RC4

Ett mycket använt flödeschiffer är RC4; R. Rivests chiffer från 1987.

Algoritmen arbetar enligt principen OFB med nyckesekvensen oberoende av klartexten.

Algorimen baseras på en nyckel av variabel längd och en s k S-box S (substitutionslåda) med256 element S = <s0, ..., s255> utgörande en permutation av talen 0, ..., 255.Permutationen är beroende av nyckeln.

i. S-boxen. S bestäms på följande sätt:

Initiera med si = i.

Sätt index j = 0.

Beteckna nyckeln <k0, ..., k255>.

Om den valda nyckeln omfattar färre än 256 bytes repeteras den erforderligt antal gånger.

S-boxen bildas nu via proceduren

for i = 0 to 255 doj = (j + si + ki) mod 256;swap(si, sj);

end for;

ii. En nyckelsymbol. För att generera en "slump-byte" z utförs följande:

i = (i + 1) mod 256;j = (j + si) mod 256;swap(si, sj);t = (si + sj) mod 256;z = st;

med i = j = 0 initialt.

iii. Chiffret . En klartextbyte m chiffreras via c = m xor z på vanligt vis.

RC4 kan visas kunna anta 21700 * 256! * 2562 tillstånd.

iv. Not. RC4 är/var 'proprietary' och licens krävs för att använda algoritmen.

2.3.4 Lineär komplexitet

En nyckelgenerator för ett flödeschiffer bör vara "oförutsägbar" för en kryptoanalytiker. Dettaavsnitt sammanfattar några relevanta begrepp och metoder.

i. Definitioner. Inledningsvis kommer några enkla definitioner.

Ett LFSR sägs generera en sekvens s om det finns ett begynnelsetillstånd för vilket utdatafrån givet LFSR är s.

Analogt sägs ett LFSR generera en ändlig sträng sn om det finns ett begynnelsetillstånd somger utdata vars n första symboler/bitar är sn.

Page 14: 2 Symmetriska chiffer

3 8Symmetriska chiffer

Den linjära komplexiteten L(s) för en oänlig sekvens s definieras av:

- Om s = 0 0 0 ..., så är L(s) = 0.

- Om det inte finns något LFSR som genererar s är L(s) = ∞.

- L(s) = längden av det kortaste LFSR som genererar s, i övriga fall.

Den linjära komplexiteten av en ändlig sekvens sn, L(sn), är längden av det kortaste LFSRsom genererar en sekvens där sn är de n första symbolerna.

ii. Satser. Några karakteriska för L följer av nedanstående staser.

Antag att s och t är binära sekvenser.

Då gäller följande enkla karakteristika.

- Linjära komplexiteten upfyller 0 ≤ L(sn) ≤ n.- L[sn) = 0 om och endast om sn = 0 0 ... 0 0 (med längd n).- L(sn) = n om och endast om sn = 0 0 ... 0 1 (med längd n).- Om s har period d så är L(s) ≤ d.- L(s xor t) ≤ L(s) + L(t).

Vidare gäller följande.

- Om representationspolynomet T(x) är irreducibelt (över Z2) och har grad L,så ger var och en av de 2L - 1 nollskilda begynnelsetillstånden en utsekvensmed komplexitet L.

iii. Profiler och diskrepans. Följande mått behövs för nedanstående algoritm.

Givet s = s0, s1, ... och subsekvenser sn = s0, s1, ..., sn-1, n ≥ 0, där dessa antas ha linjärkomplexitet Ln, då kallas sekvensen L1, L2, ..., för den linjära komplexitetsprofilen för s.

Givet en binär sekvens sn+1 = s0, s1, ..., sn och ett L:te-gradspolynom T(x) för ett LFSRsom genererar en subsekvens sn = s0, s1, ..., sn-1. Då definieras 'next discrepancy' dn enligt

dn = {sn + Σi∈ [1, L] ti sN-i)} mod 2.

iv. Berlekamp-Massey-algorimen. Följande sats utgör grunden för den berömdaBerlekamp-Massey-algoritmen som bestämmer den linjära komplexiteten av en sekvens avlängd med Ordo(n2) operationer.

Antag att sn = s0, s1, ..., sn-1 är en ändlig binär sekvens med linjär komplexitet L = L(sn)och att T(x) definierar ett LFSR som genererar sn. Då gäller följande.

- Samma LFSR definierar också sn+1 om och endast om dn = 0.

- Om dn = 0 så är L = L(sn) = L(sn+1).

- Om dn = 1 och m < n är det största heltalet sådant att L(sm) < L(sn) och R(x)definierar ett LFSR av längd m som genererar sm, då ger T'(x) av grad L'det minsta LFSR som genererar sn+1 om

L' = L för L > n/2L' = n + 1 - L för L ≤ n/2

och

T'(x) = T(x) + R(x) xn-m.

Page 15: 2 Symmetriska chiffer

3 9Symmetriska chiffer

Denna sats kan användas för att formulera algoritmen nedan.

Indata: En binär sekvens av längd n: sn = s0, s1, ..., sn-1

Utdata: Linjära komplexiteten L(sn) ∈ [0, n]

1. -- Initiera

T(x) = 1 L = 0 k = -1 R(x) = 1 m = 0

2. while m < n do

a. d = {sn + Σi∈ [1, L] ti sN-i)} mod 2

b. if d = 1 then

S(x) = T(x) T(x) = T(x) + R(x) xm-k

if L < m/2 then L = m + 1 - L; k = m; R(x) = S(x) end if

end if

c. m = m + 1

3. return (L)

Tabell 2.1. Berlekamp-Massey-algoritmen

v. Exempel. Följande tabell visar stegen i algoritmen då vi vill bestämma linjärakomplexiteten för sn = 0 0 1 1 0 1 1 1 0 (n = 9). Sekvensen befinns ha linjär komplexitet 5och ett LFSR som genererar sn bestäms av T(x) = x5 + x3 + 1.

sm d S(x) T(x) L k R(x) m-001101110

-001111011

---1

1 + x3

1 + x + x3

1 + x + x2 + x3

1 + x + x2 + x3

1 + x + x2

1 + x + x2 + x5

111

1 + x3

1 + x + x3

1 + x + x2 + x3

1 + x + x2

1 + x + x2

1 + x + x2 + x5

1 + x3 + x5

0003333355

-1-1-12222277

11111111

1 + x + x2

1 + x + x2

0123456789

Tabell 2.2. Exempel

Följande satser är också värda att notera.

vi. Sats. Om sn är en ändlig binär sekvens med linjär komplexitet L så finns ett uniktLFSR av längd L som genererar sn om och endast om L ≤ n/2.

Page 16: 2 Symmetriska chiffer

4 0Symmetriska chiffer

Med hjälp av denna sats är det också möjligt att visa följande.

vii. Sats. Om s är en oändlig binär sekvens med linjär komplexitet L och t är en ändligsubsekvens till s av längd minst 2L, så ger Berlekamp-Massey-algoritmen med indata t ettLFSR av längd L som genererar s.

Algoritmen är alltså en generalisering till de argument som användes för LFSR-chiffren.

2.4 DES-algoritmen

En standardalgoritm, ratificerad fram till 1998, för chiffrering kallas DES eller 'DataEncryption Standard'. I denna algoritm chiffreras 64-bits block M med en 56-bits nyckel Kvia 33 (sic!) transpositioner och substitutioner; det är ett sk SPN ('substitution-permutationnetwork') eller 'Feistel network', efter IBM-forskaren Horst Feistel.

Algoritmen utgörs av en produkt av enkla substitutioner och permutationer över block föratt, efter Claude Shannon åstadkomma 'diffusion' via permutationer som sprider ut statistiskaegenskaper hos klartext över hela chiffer och 'confusion' via substitutioner som görsambandet mellan klartexter och kryptogram komplexa.

2.4.1 Metoden och kommentarer

Här kommer en kompakt beskrivning och några kommentarer. Den fullständigabeskrivningen återfinns i de flesta läroböckerna.

i. Definition. En avbildning T som uppfyller T2 = I kallas involution. Då är T = T-1.

ii. Exempel. Antag att Tf är en godtycklig avbildning Tf: (Z2)n → (Z2)n.

Då är

Tf : (x,y) → (x ⊕ Tf(x), y)

en involution.

Ett utbyte

σ: (x, y) → (y, x),

där | x | = | y | = (t ex) = 32, är också en involution.

iii. DES är uppbyggt som en produkt av två fixa permutationer givna av tabeller somkallas IP och IP-1 och 31 involutioner enligt ii.

C = eK(M) = DESK(M) = IP-1 Tf16 σ Tf15 σ ... σ Tf1 IP(M).

iv. DES-1. Notera att detta innebär att dechiffreringen består i att "köra chiffreringenbaklänges" (samma 'chip' kan användas för både e och d eftersom vi har dataoberoendekontrollstrukturer):

M = dK(C) = DES-1K(C) = IP-1 Tf1 σ Tf2 σ ... σ Tf16 IP(C).

Ett varv i DES brukar illustreras på följande vis där de succesiva blocken delas in i vänster-(L) och höger- (H) halvor.

Page 17: 2 Symmetriska chiffer

4 1Symmetriska chiffer

L(i-1) R(i-1)

K(i)

L(i) R(i)

f

xor

Figur 2.3. Ett DES-varv

v. Funktionerna Tfi = f (x, ki) definieras så att ett 32 bitars block x expanderas till 48bitar genom att vissa bitar dubbleras (en fix tabell E definierar detta) och till detta adderasmodulo-2 en subnyckel ki. De appliceras omväxlande med 'swap'-funktionen σ enligtexempel ii.

vi. S-boxar. Resultatet avbildas via tabeller (sk S-boxar) som sammantaget ger ett nytt32 bitars block för nästa varv i algoritmen (nästa index i). Ingen S-box definierar en affinavbildning och om indata till en S-box ändras 1 bit så ändras utdata minst 2 bitar.

Storleken och strukturen hos S-boxarna är mycket betingade av den teknologi som rådde dåDES konstruerades (1974).

Ett förslag för att göra ett chiffer starkare vore att införa nyckelberoende S-boxar. Observeraatt det är S-boxarna som gör DES icke-linjärt. Det är alltså vitalt att övertyga sig om attdessa inte är affina.

vii. En iteration (σTfi) består i att en "vänsterhalva" hanteras som i definitionen i. ovanvarefter den permuteras med en "högerhalva".

viii. Subnycklar. Alla ki, i = 1, ..., 16, bildas utgående från den ursprungliga nyckeln Kvia skift (LSi) och tabeller (PC-1, PC-2).

När subnycklarna bildas gäller att halvorna lämnas okopplade av PC-2, att produkten av allaskift (LS) är = I och att "paritetsbitarna" i ursprungsnyckeln kastas via PC-1.

ix. Symmetri. Följande symmetriegenskap gäller. Den kan vara bra att utnyttja förtestning, men observera att den halverar söktiden över nyckelmängden vid 'brute force'kryptoanalys.

C = DES (M, K) ⇔ not C = DES (not M, not K).

(Dubbelnegering i ett binärt xor-uttryck försvinner.)

x. Debattfråga. Finns det (dolda) 'trap doors' i S-boxarna? Konstruktörerna säger nej,andra är mer tveksamma.

- En funktion f är en 'trap door' (falluckefunktion) om f kan beräknas i polynomielltid och om det finns sidoinformation UTAN vilken f är 'one way' (envägsfunktion).- En funktion är 'one way' om den är "enkel" att beräkna, men f-1 är "svår" att beräkna(i t ex RSA är d (den privata nyckeln) en fallucke-parameter; utan den är f one-way.)

xi. Svaga nycklar. En del nycklar K är svaga:

- En nyckel K är svag om den resulterade transformationen blir en involution. Detta blirfallet om alla sub-nycklar är lika (och då är också subnyckelsekvensen en palindrom).

- Ett par nycklar K1 och K2 är halv-svagt ('semi-weak') om eK1 eK2 (x) = x.

DES har fyra svaga nycklar och sex par av halvsvaga nycklar.

Page 18: 2 Symmetriska chiffer

4 2Symmetriska chiffer

xii. Lavineffekter. DES har s k lavineffekter, d v s små ändringar av indata (M och K)ger stora ändringar i utdata (C) och förändringarna ökas i varje varv i algoritmen.

xiii. 16 varv. Nyliga rapporter om försök till kryptoanalys visar att det går en gräns vidjust 16 iterationer över vilken DES-liknande chiffer inte blir särskilt mycket svårare attforcera

xiv. Grupp ? Det dröjde ända till 1992 innan man bevisade att DES inte genererar engrupp. Det betyder att itererade varianter

DV (M) = DES (k1, DES-1(k2, (DES (k1, M)))

tillför säkerhet. Den litet lustiga kombinationen i DV med en invers transformation förklarasav att villkoret k2 = k1 ger "bakåtkompatibilitet" med en standard-DES. Metoden kallas förtrippel-DES. Alternativt kan tre nycklar användas.

xv. Modus. DES-algoritmen kan vid sidan av som ECB också användas med CFB, OFB,CBC, PCBC och CM. Typiska tillämpningar för dessa modus är som följer.

- ECB: överföring av enstaka värden; t ex nycklar och 'seeds'.- CBC: allmän blockorienterad överföring och för MAC.- CFB: allmäns flödesorienterad överföring och MAC.- OFB: flödesorienterad överföring över störda kanaler; t ex satellitkommunikation.

CBC kan kombineras med trippelkryptering i något som kallas yttre-CBC ('outer-CBC').

Ci = ek3 dk2 ek1 (Ci-1 xor Mi).

Effektiviteten försämras dock med en faktor 3, försåvitt man inte strömlinjerar ('pipe lining')med ekvationer av typ

Ci = ek3 dk2 ek1 (Ci-3 xor Mi).

xvi. MAC. CBC kan också användas för att åstadkomma en 'message authentication code'(MAC).

Klartextblock x1, ..., xn chiffreras så att c1, ..., cn erhålls, varvid cn utgör MAC. Vanligen

väljs c0 = 0.

För kombination av konfidentialitet och integritet krävs två nycklar K1 och K2.

Två alternativ är uppenbara:

- Använd K1 för att producera en MAC = cn enligt ovan och kryptera<x1, ..., xn, cn> med K2.

- Använd K1 för att kryptera <x1, ..., xn> till c = <c1, ..., cn> ochberäkna sedan en MAC för c med K2.

xvii. 'Whitening' är en effektiv teknik för att försvåra t ex differentiell kryptoanalys. Denkan tillämpas på alla blockchiffer. Tanken är att på både in- och utsidan av ek distordera medytterligare nyckelmaterial efter följande mall.

C = k3 xor ek2 (M xor k1)

M = k1 xor dk2 (C xor k3)

En uttömmande nyckelsökning kräver nu 2m + n + 1 operationer med tre klartexter, om n ärnyckellängden och m är blocklängden.

Page 19: 2 Symmetriska chiffer

4 3Symmetriska chiffer

xviii. Varianter. Det finns många varianter till DES föreslagna i litteraturen.

-- DESX är från RSA Data Security, Inc. som kompletterar DES med 'whitening'.-- crypt(3) som finns i många Unix-system har en nyckelberoende

expansionpermutation.-- RDES har nyckelberoende 'swaps' i varje varv.-- S-boxarna är nyckelberoende också i t ex Rysslands standard ΓΟΣΤ.-- Föregångaren, Lucifer, från IBM arbetade med 128 bitars block.-- NewDES, 1985, som arbetar med 120 bitar nyckel har visat sig svagare än DES.-- e t c.

xix. Evan och Mansour har studerat chiffer av typen

eK(m) = f(m xor k1) xor k2,

där K = <k1, k2> och f är en publik slump-permutation.

Här blir dechiffreringen

dK(c) = f-1(c xor k2) xor k1,

där f-1 är den inversa permutationen.

De finner att metoden ger hög säkerhet.

Notera att ingen av de enklare varianterna

e(m) = f(k xor m) (1)

eller

e(m) = k xor f(m) (2)

duger; de är mycket lätta att forcera. Till exempel gäller för (2) att

k = e(m) xor f(m)

och ett par <m, c> räcker för att härleda k. I fallet (1) blir motsvarande

k = m xor f-1(e(m)).

2.4.2 Differentiell kryptoanalys

Ett ganska nyligen allmänt bekant verktyg för kryptoanalys har visat sig verkningslöst vadavser forcering av DES. Enligt rykten var metoden känd (men ej offentliggjord) redan då DESkonstruerades.

En "DES-variant" med bara 3 eller 6 iterationer är däremot enkel att forcera med denna metod.

Differentiell kryptoanalys är en vald- eller känd-klartext attack, som riktar in sig på S-boxarna. Den går ut på att jämföra skillnader hos chiffer som svarar mot klartexter M1, M2med känt eller valt Hammingavstånd:

dH(M1, M2) = || M1 - M2 ||H = antalet 1-bitar i M1 xor M2.

Notera att denna uppfyller de vanliga kraven på en metrik, dvs för alla x, y och z gäller:

- dH(x, y) ≥ 0. -- Ett avstånd är icke-negativt- dH(x, y) = dH(y, x). -- Mellan x och y eller y och x- dH(x, z) ≤ dH(x, y) + dH(y, z). -- Triangelolikheten

Page 20: 2 Symmetriska chiffer

4 4Symmetriska chiffer

Följande tabell visar arbetet vid differentiell kryptoanalys av ett DES-liknande chiffer somfunktion av antalet varv och för olika strategier.

# varv 8 9 10 11 12 13 14 15 16Valt chiffer 214 224 224 231 231 239 239 247 247

Känt chiffer 238 244 243 247 247 252 251 256 255

Tabell 2.4. Differentiell kryptoanalys

Differentiell kryptoanalys av DES innebär alltså att man jämför höger- och vänsterhalvor:

L'R' = LR xor L* R*

Bortse nedan från de inledande och avslutande permutationerna och betrakta endast S-boxarna.

Om S är en given S-box betraktas alltså två insträngar av längd 6; B och B* och bildar dessin-xor: B xor B* och motsvarande ut-xor: S(B) xor S(B* ) av längd 4.

För varje B' ∈ (Z2)6 definieras ∆(B') som mängden av ordnade par <B, B*> som har in-xorB'.

Varje ∆(B') innehåller 26 = 64 element och

∆(B') = {<B, B xor B'> : B ∈ (Z2)6 }.

För varje par i ∆(B') kan ut-xor beräknas.

Exempel. Betrakta den första S-boxen S1. Antag att in-xor är 110100. Då erhålls

∆(110100) = {<000000, 110100>, ..., <111111, 001011>}

För alla par i ∆ är ut-xor beräkningsbara. För S1 erhålls följande fördelning,

Värde 0000 0001 0010 0011 0100 0101 0110 0111Antal 0 8 16 6 2 0 0 12Värde 1000 1001 1010 1011 1100 1101 1110 1111Antal 6 0 0 0 0 8 0 6

Tabell 2.5. Fördelning av ut-xor

vilket betyder att bara 8 av de 16 olika möjligheterna förekommer för detta in-xor och för denförsta S-boxen S1. Allmänt är siffran dock snarare 75% än dessa 50%.

För varje S-box S (de är 8 stycken) definieras härnäst

in (B', C') = { B ∈ (Z2)6 : S(B) xor S(B xor B') = C'},

n (B', C') = | in (B', C') |,

dvs mängden av respektive antalet par med in-xor lika med B' och ut-xor C' för S-boxen S.

För tex S1 kan en tabell enligt följande mall bildas.

Eftersom det finns 8 S-boxar med 64 olika in-xor finns alltså totalt bara 512 fördelningar attberäkna.

Observerar att indata till S-boxarna i varv i formas som B = E xor J, där E = E(Ri-1), där Eär en expansion av Ri-1 och där J = Ki, den i:te subnyckeln.

Page 21: 2 Symmetriska chiffer

4 5Symmetriska chiffer

Det betyder att in-xor för alla S-boxar kan beräknas som

B xor B* = (E xor J) xor (E* xor J) = E xor E*

och alltså inte beror på nyckelbitarna. Värdet ut-xor beror förstås på J.

Vi skriver varje E, B och J enligt mallen E = E1E2E3E4E5E6E7E8 och analogt för * - och '-markerade varianter, där varje delblock omfattar 6 bitar.

Om värdena Ej och Ej* är kända för något j och ut-xor för Sj, dvs Cj' = Sj(Bj) xor Sj(Bj

* ),så gäller att

Ej xor Jj = inj (Ej', Cj'),

där Ej' = Ej xor Ej* .

Definiera nu (för alla j, index j är utelämnat i formeln nedan)

test (E, E* , C') = {B xor E : B ∈ in (E', C') }.

ut-xor indata antal0000 00001 000011, ..., 111011 80010 000100, ... 160011 000001, ... 60100 010011, 100111 20101 00110 00111 000000, ... 121000 001001, ... 61001 01010 01011 01100 01101 000110, ... 81110 01111 000111, ..., 111111 6

Ovanstående diskussion kan sammanfattas i följande sats.

Sats. Om E och E* är två indata till S-boxen S och ut-xor för S är C' så finns nyckel-bitarna J med i test (E, E* , C').

Det finns exakt n (E', C') stycken bitsträngar av längd 6 i test (E, E* , C').

En av dessa är de 6 nyckelbitarna.

Alltså:Användande av fler tripletter <E, E* , C'> ger olika mängder test.

Den korrekta nyckeln finns då i snittmängden av dessa.

Page 22: 2 Symmetriska chiffer

4 6Symmetriska chiffer

Exempel. Om metoden appliceras på DES (utan IP och IP-1) med tre varv och inleds med

klartexterna L0R0 och L0* R0*

så erhålls alltså

chiffren L3R3 och L3* R3* .

Det gäller att

R3 = L2 xor f (R2, K3) = R1 xor f (R2, K3) = L0 xor f (R0, K1) xor f (R2, K3)

och analogt för R3*. Därav följer

R3' = L0' xor f (R0, K1) xor f (R0* , K1) xor f (R2, K3) xor f (R2* , K3).

Antag 'choosen plaintext' så att R0 =R0* , dvs R0' = 0 ... 0.

Då är f (R0, K1) = f (R0* , K1) och alltså

R3' = L0' xor f (R2, K3) xor f (R2* , K3).

Här är R3' känt eftersom den kan beräknas från de båda chiffren och L0' är känd eftersom denkan beräknas från de båda klartexterna. Det betyder att den senaste formeln kan användas föratt lösa ut:

f (R2, K3) xor f (R2* , K3) = R3' xor L0' .

Nu är emellertid f (R2, K3) = P(C) och f (R2* , K3) = P(C* ), där C och C* betecknar tvåutdata från de åtta S-boxarna och P är en publik permutation.

Alltså är

P(C) xor P(C* ) = R3' xor L0'

och

C' = C xor C* = P-1(R3' xor L0' ),

som är ut-xor för de åtta S-boxarna i varv 3.

Nu är R2 = L3 och R2* = L3* kända varför kvantiterna E = E(L3) och E* = E(L3* ) kanberäknas med de publika expansionerna E .

Dessa är indata till S-boxarna i varv 3.

Nu är T= <E, E* , C'> för det tredje varvet och det är möjligt att konstruera test1, ..., test8som innehåller möjliga värden för nyckeldelarna J1, ..., J8.

En "attack" använder fler tripletter T.

Med denna metod kan 48 av bitarna i K3 bestämmas.

För de övriga 28 = 256 bitarna används 'brute force'.

Page 23: 2 Symmetriska chiffer

4 7Symmetriska chiffer

2.5 Några andra blockchiffer

Några andra chiffer beskrivs kort i detta avsnitt.

2.5.1 RC6

RC6 är ett blockchiffer framtaget som kandidat för NISTs satsningar på en efterträdare tillDES. Det är f n en av femton kandidater för AES, Advanced Encryption Standard.

Chiffret är framtaget av Ron Rivest m fl vid MIT och vid RSA Labs och bygger på etttidigare system som kalllas RC5.

RC6-w/r/b kan användas med olika parametrar:

- w = ordstorlek (= 32 för AES, log (w) = 5)- r = antal varv/iterationer (= 20 för AES)- b = antalet bytes i nyckeln (= 16, 24 eller 32 för AES)

För chiffrering/dechiffrering använs fyra 32-bitars register A, B, C och D.

De primitiva operationer som algoritmen bygger på är sju.

- Addion modulo 2w A + B- Subtraktion modulo 2w A - B- Exklusivt eller A ⊕ B- Vänsterrotation av A med de log(w) A <<< B minst signifikata bitarna i B- Motsvarande högerrotation A >>> B- Parallelltilldelning (A, B) = (B, C)- Multiplikation modulo 2w A × B

Användaren specificerar en nyckel omfattande b bytes som används för att generera 2r + 4"varvnycklar" S[i], 0 ≤ i ≤ 2r + 3, à w bits vardera.

Algoritmen förväntar sig indata i fyra w-bitsregiter A, B, C och D och returnerar chiffret isamma register. Slutligen behöver r specificeras.

Med dessa data är chifferalgoritmen som följer.

B = B + S[0] -- 'pre-D = D + S[1] -- whitening'

for i = 1 to r d ot = (B × (2B + 1)) <<< log wu = (D × (2D + 1)) <<< log wA = ((A ⊕ t) <<< u) + S[2i]C = ((C ⊕ u) <<< t) + S[2i + 1](A, B, C, D) = (B, C, D, A)

end for

A = A + S[2r + 2] -- 'post-C = C + S[2r + 3] -- whitening'

Tabell 2.6. RC6

Chiffret RC5 är enklare och det kan vara intressant att i sex steg följa de modifikationer somvidtogs för att konstruera RC6.

Page 24: 2 Symmetriska chiffer

4 8Symmetriska chiffer

1. RC5 bygger på slingan

for i = 1 to r d oA = ((A ⊕ Β) <<< B) + S[i](A, B) = (B, A)

end for

2. Det första steget består i att använda två block; A och B kompletteras med C och D.

for i = 1 to r d oA = ((A ⊕ Β) <<< B) + S[i]C = ((C ⊕ D) <<< D) + S[i + 1](A, B) = (B, A)(C, D) = (D, C)

end for

Detta för att enkelt erhålla en blockstorlek om 128 bits. De flesta processorer arbetar med 32bits ord.

3. I stället för att byta A och B och C och D oberoende avslutas med att byta alla ocherhålles

for i = 1 to r d oA = ((A ⊕ Β) <<< B) + S[i]C = ((C ⊕ D) <<< D) + S[i + 1](A, B, C, D) = (B, C, D, A)

end for

4. Härefter kopplas ihop ytterligare genom att låta skiften härledas från olika beräkningar:

for i = 1 to r d oA = ((A ⊕ Β) <<< D) + S[i]C = ((C ⊕ D) <<< B) + S[i + 1](A, B, C, D) = (B, C, D, A)

end for

5. I stället för att använda B och D rakt av så beräknas skiften via funktionen

f(x) = x(2x + 1) mod 2w

Denna funktion är injektiv och värdet beror på alla bitar i x så att om x är likformigt fördeladså är även f det. Därmed är läget följande.

for i = 1 to r d ot = (B × (2B + 1))<<< log wu = (D × (2D + 1)) <<< log wA = ((A ⊕ t) <<< u) + S[2i]C = ((C ⊕ u) <<< t) + S[2i + 1](A, B, C, D) = (B, C, D, A)

end for

6. Det sista steget består av 'pre- and post- whitening' för att inte exponera klartexten tillförsta varvet och sista varvets värden i chiffret.

Page 25: 2 Symmetriska chiffer

4 9Symmetriska chiffer

2.5.2 IDEA

IDEA ('International Data Encryption Algorithm') är ett blockchiffer; 64 bits block mchiffreras med en 128 bitars nyckel k. Samma algoritm kan användas både som e- och som d-funktion.

Det bygger, precis som DES, på Shannons idéer 'confusion' och 'diffusion' via en blandningav tre operationer (på grupper över 16-bitars tal):

- 'exclusive or'; ⊕- addition modulo 216; ♦- multiplikation modulo 216 + 1 (ett primtal!); ⊗.

Blocket m indelas i fyra delblock M1, M2, M3 och M4 som utgör indata till första varvet.

Algoritmen består av åtta varv. I varje varv utförs operationerna på indata och på sexsubnycklar K1, ..., K6, som härleds ut k.

Mellan varje varv byts mittblocken mot varandra. I ett varv utförs fjorton operationer;

T1 = M1 ⊗ K1 T2 = M2 ♦ K2

T3 = M3 ♦ K3 T4 = M4 ⊗ K4

T5 = T1 ⊕ T3 T6 = T2 ⊕ T4

T7 = T5 ⊗ K5 T8 = T6 ♦ T7

T9 = T8 ⊗ K6 T10 = T7 ♦ T9

T11 = T1 ⊕ T9 T12 = T3 ⊕ T9

T13 = T2 ⊕ T10 T14 = T4 ⊕ T10

Tabell 2.7. Ett varv i IDEA

Utdata från ett varv är

U = <T11, T13, T12, T14>,

vilket samtidigt är indata till nästa varv.

Mittblocksutbytet (T12, T13) → (T13, T12) sker dock inte efter det sista (åttonde) varvet dåi stället följande fyra operationer appliceras:

S1 = M1 ⊗ K1

S2 = M2 ♦ K2

S3 = M3 ♦ K3

S4 = M4 ⊗ K4

Det slutliga chiffret är c = <S1, S2, S3, S4>.

De totalt 52 = 6 * 8 + 4 subnycklarna är enkla att skapa.

De 128 bitarna i k delas upp i 8 stycken 16-bitars block. Av dessa åtta används sex somsubnycklar i det första varvet medan två används i det andra. k vänsterroteras sedan 25 stegoch delas ånyo upp i åtta delblock.

Därvid erhålls ytterligare fyra subnycklar till varv två och fyra stycken till varv tre. Nyadelnycklar skapas genom 25-bits rotationer så länge de behövs.

För dechiffrering används samma algoritm, dock så att subnycklarna bildas i omvänd ordningoch att de är något avvikande.

Page 26: 2 Symmetriska chiffer

5 0Symmetriska chiffer

Algoritmen är ny men har ändå utsatts för många men hitintills fruktlösa attacker; t exdifferentiell kryptoanalys.

2.5.3 Blowfish

Algoritmen är framtagen av Bruce Schneier. Metoden, som inte är patenterad, är utveckladmot bakgrund av följande kriterier.

1. Snabbhet.2. Kompakthet: mindre än 5K minne behövs.3. Enkelhet: Bara additioner, xor och tabelluppslagning utnyttjas.4. Variabel säkerhet: Variabel nyckellängd upp till 448 bitar.

Metoden är tänkt för tillämpningar där nyckeln inte byts ofta och är där betydligt snabbare änt ex DES. En (1) sub-nyckelgenerering är komplex; se nedan.

I Blowfish krypteras 64 bitars block. Algoritmen arbetar internt med 16 varv och kräver 18stycken 32-bitars sub-nyckelvektorer <P1, ..., P18> = P.

Fyra stycken S-boxar med 256 stycken 32-bitars element behövs också (för att beräknafunktionen f);

S1,0, ..., S1,255,S2,0, ..., S2,255,S3,0, ..., S3,255,S4,0, ..., S4,255.

Precis som DES är Blowfish uppbyggd som ett Feistel-nät. Här är chiffreringen.

1. Dela upp klartexten x = < xL0, xR0>

2. fo r i = 1 to 16 do {3. -- 5.} 3. xLi = xLi -1 xor Pi 4. xRi = f ( xLi ) xor xRi -1 5. swap ( xLi , xRi ) {Byt höger och vänster

6. swap (x L16, xR16) utom i det sista varvet}7. xR16 = xR16 xor P178. xL16 = xL16 xor P189. c = < xL16, xR16>

Tabell 2.8. Blowfish

Funktionen f kan, med x uppdelad i fyra bytes a, b, c och d, skrivas

f(x) = [(S1,a + S2,b mod 232) xor S3,c] + S4,d mod 232.

Följande figur illustrerar f-beräkningen.

Precis som i DES formas dechiffreringen genom att använda sub-nycklarna Pi i omvändordning. Visa detta !

Page 27: 2 Symmetriska chiffer

5 1Symmetriska chiffer

S-box 1

S-box 2

S-box 3

S-box 4

32 bits

+

xor

+

32 bitsf

8 bits

a

b

c

d

Figur 2.4. F-funktionen

Genereringen av P och S-boxarna är en smula komplex:

1. Initiera P och de fyra S-boxarna med hexadecimala siffror från π = 3.1415 ... .

2. Modifiera P genom att välja succesiva nyckelbitar ur K och addera dessa modulo-2till respektive Pi. Vid behov används nyckelbitarna cirkulärt.

3. Chiffrera 0 med erhållet Blowfish-system.

4. Ersätt P1 och P2 med resultatet från steg 3.

5. Chiffrera resultatet från steg 3 med det nya Blowfish-systemet.

6. Ersätt P3 och P4 med resultatet från steg 5.

7. Fortsätt denna process till dess alla Pi och därefter alla S-boxar genomlöpts.

Totalt åtgår 512 iterationer men denna process kan genomlöpas innan någon klartextföreligger.

I samband med AES-initiativet har Schneier vidareutvecklat detta chiifer till Twofish.

2.5.4 Pohlig-Hellman

i. Metoden. Systemet är som RSA ett exponentiellt chiffer men är uppbyggt av en modulsom är ett primtal och inte en produkt av två primtal.

c = me mod p,

m = cd mod p,

där e d mod φ(p) = 1 och p är ett stort primtal. Metoden är inte ett PKS eftersom φ(p) låtersig trivialt härledas från p. Om p är ett primtal så är φ(p) = p - 1.

Forcering synes kräva (vi vill ju åt den privata exponenten) att den diskreta logaritmenberäknas; men detta är ett 'hard problem'.

Ett element α ∈ Zn* sägs vara ett primitivt element eller generator om det gäller att

Zn* = {α i: 0 ≤ i ≤ n - 2},

d v s att exponentiering "spänner upp" hela Zn* . Om n är ett primtal p så finns det primitiva

element; i själva verket φ(p - 1) stycken.

Page 28: 2 Symmetriska chiffer

5 2Symmetriska chiffer

ii. Den diskreta logaritmen. Allmänt kan problemet formuleras enligt följande ruta.

Låt p vara ett primtal, α ∈ Zp* ett primitivt element och β ∈ Zp

* .

Problemet är att finna det entydiga heltalet a, 0 ≤ a ≤ p - 2 sådantatt αa ≡ β (mod p).

Detta a kallas den diskreta logaritmen och betecknas a = logα β.

Tabell 2.9. Diskreta logaritmen

Metoder att finna denna synes kräva strax under Ordo(p) operationer, vilket betyder ettexponentiellt växande antal operationer uttryckt i antalet bitar i p; jfr faktoruppdelning i t exRSA;

T ≈ exp ( sqrt( ln (p) ln (ln (p)))).

Om p utökas med en bit så fördubblas i det närmaste beräkningstiden.

Vi återkommer till detta problem ett antal gånger senare.

2.6 Shamirs 3-pass protokoll

Under förutsättning att bara avlyssning ('passive wiretapping') men inte modifikation ('activewiretapping', 'tampering') kan ske på kommunikationsmediet är det faktiskt möjligt attskicka hemliga meddelanden utan att först utväxla nyckel.

Shamirs protokoll förutsätter ett konventionellt (en-nyckels-) kommutativt chiffer, d v s ettchiffer för vilket eA(eB(m)) = eB(eA(m)). Protokollet (som också kallas Shamirs 'no key'metod) är som följer.

Steg Meddelande Kommentar

1. A → B c1 = eA(m) Med A:s privata nyckel

2. B → A c2 = eB(c1) = eBeA(m) = eAeB(m)

3. A → B c3 = eB(m) A kan ju invertera eA

Tabell 2.10. 3-pass-protokollet

A har nu skickat ett meddelande m som bara B har kunnat erhålla. Det enda som återstår ärvalet av e och d.

i. Låt oss prova med 'one time pad' (OTP) som kvalificerar som 'one-key' och kommutativt.

De tre kryptogrammen blir

c1 = m ⊕ KA,c2 = m ⊕ KA ⊕ KB,c3 = m ⊕ KB

Page 29: 2 Symmetriska chiffer

5 3Symmetriska chiffer

En kryptoanalytiker kan emellertid bilda

c1 ⊕ c2 ⊕ c3 = m.

Observera att de två involverade "OTP-chiffren" med KA och KB används 11/2 gång i ställetför 1 gång som ju OTP kräver !

ii. Pohlig-Hellman fungerar däremot, eftersom exponentiering kommuterar och den diskretalogaritmen är svår att beräkna för utomstående (om p är vald på rätt sätt).

c1 = meA mod pc2 = (meA mod p)eB mod p = meBeA mod p.

A kan nu eliminera eA med sin privata nyckel dA för att erhålla

c3 = meB mod p.

Mottagaren B kan nu dechiffrera detta för att erhålla m.

iii. Metoden kan beskrivas med ett vardagsprotokoll:

1. A skickar en låda med sitt eget lås till B.2. B tillfogar sitt lås och returnerar lådan till A.3. A tar bort sitt lås och returnerar lådan till B.

Metoden bör kompletteras för skydd mot 'active wiretapping/tampering'.

Noter

De klassiska chiffren redovisas i de flesta läroböcker. Beräkningen av koincidensindex förVigenèrechiffret är från [Beu94]. 'The shrinking generator' är från [CKM94]. Principerna'confusion' och 'diffusion' diskuterades först av Shannon [Sha49]. Förslagen till AES kanläsas från sidan http://csrc.nist.gov/encryption/aes/aes_home.htm.

Övningar

2.1. Kryptogram erhållna från ett blockchiffer kan kedjas för att försvåra kryptoanalys; CBC,'cipher block chaining'. Antag givet ett initialvärde c0 = 1001 och att det underliggandeblockchiffret är en permutation

P: <1, 2, 3, 4> → <4, 1, 2, 3>.

Räkna ut chiffren c1 och c2 och visa hur dessa återtransformeras till klartexter om dessa ärm1 = 0001 och m2 = 1110.

2.2. Antag att följande chiffret jozmny är framställt enligt Vigenere med en nyckel avlängd 5. Är motsvarande klartext DALLAS eller AUSTIN ?

2.3. Följande är framställt med ett Vigenerechiffer med nyckeln art. Vad är klartexten?

yfn gfm ikk ixa t

2.4. Dechiffrera texten <l, j > = <11, 9> framställd av ett Hillchiffer då dechiffreringen är

15 20 17 9

2.5. Betrakta ett affint substitutionschiffer. Antag att vi misstänker är chiffret F svarar motklartexten E och att chiffret W svarar mot klarexten H. Forcera !

Page 30: 2 Symmetriska chiffer

5 4Symmetriska chiffer

2.6. Givet m = 100 011 och c = 101 101 via ett 3-stegs LFSR. Forcera genom att härledaavtappningssekvensen.

2.7. Sök reda på specifikationer för de för AES föreslagna chiffren och gör en jämförelse dememellan. Ledning: http://csrc.nist.gov/encryption/aes/aes_home.htm.

2.8. Antag att S1 är ett Hillchiffer med en 3 × 3 matris och S2 är ett Vigenerechiffer medperiod 3. Visa att S1 och S2 kommuterar.

2.9. Bevisa egenskapen DES (K, M) = not DES (not K, not M).

2.10. Om M = C = Z26 kan vi definiera ett multiplikativt chiffer M som y = ek(x) = k xmod 26 och ett skiftchiffer S som y = ek (x + k) mod 26. Visa att sammansättningarna(produkterna) M S och S M båda är affina chiffer med | K | = 312.

2.11. Låt p1, ..., p26 beteckna sannolikheterna för a , ..., z . Visa att Σpi2 ≥ 1/26.

2.12. Konstruera ett 5-stegs LFSR vars utdata inleds med 00001 00011.

2.13. Om ett LFSR ger maximal periodlängd så är t1 = 1. Ja/nej ? Motivera!

2.14. Konstruera en text om minst 50 bokstäver, som inte innehåller bokstaven e.(En sådan text kallas av de lärde för ett lipogram).

2.15. Klartexten f r i d a y motsvaras av chiffret p q c f k u . Bestäm den 2 × 2Hillmatris som definierar chiffret.

2.16. Definiera f(m) = 2m mod 26 med m ∈ Z26. Visa att varje element i värdeförrådet för fförekommer för två olika m. (Funktionen f är alltså inte injektiv.)

2.17. Vad blir dechiffreringen för RC6?

2.18. Visa att funktionen f(x) = x(2x + 1) mod 2w som används i RC6 är injektiv.