24.11.2013 Views

3 Teori för symmetriska system

3 Teori för symmetriska system

3 Teori för symmetriska system

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

55<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

3 <strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Ordning är när man genast vet var man absolut inte behöver leta.<br />

3.1 Kodning<br />

Informationsteorin in<strong>för</strong>des av Claude Shannon på 40-talets <strong>för</strong>sta hälft <strong>för</strong> att kunna resonera<br />

kvantitativt om kodning i allmänhet och kryptologi i synnerhet.<br />

Kryptering är en typ av kodning som används <strong>för</strong> att åstadkomma pålitlig kommunikation.<br />

Andra typer av kodning finns också.<br />

I informationsutbytessammanhang, både vid kommunikation och vid lagring, <strong>för</strong>ekommer<br />

tre enheter: källan, kanalen och mottagaren.<br />

K<br />

källan<br />

s<br />

e<br />

c<br />

kanalen<br />

d<br />

c<br />

d<br />

e<br />

d<br />

s<br />

M<br />

mottagaren<br />

Figur 3.1. Kodningar<br />

Mellan dessa in<strong>för</strong>s kodare och avkodare. Kodaren har tre funktioner: Källkodning (s),<br />

kryptering (e), kanalkodning (c). Avkodaren (decode, d-...) inverterar dessa operationer.<br />

3.1.1 Källkodning<br />

Tanken är att eliminera redundans i meddelandet <strong>för</strong> att därmed om möjligt reducera det antal<br />

bitar som behöver sändas eller lagras. Två delmoment ingår.<br />

i. Källkompression, där kodningen är sådan att viss information <strong>för</strong>störs, men att det<br />

mottagna ändå är acceptabelt <strong>för</strong> mottagaren. (Jfr 'hashing'.) Omnämnda kryptografiska 'hashmetoder<br />

är MD5 ('message digest') och SHA ('secure hash algorithm').<br />

ii. Källkompaktering, som syftar till att ta bort redundans ur källans meddelande, men<br />

att fortfarande möjliggöra exakt återskapande på destinationssidan eller vid återutvinnande.<br />

Kända sådana metoder är Huffmankodning och LZ (Ziv-Lempel)-kodning.<br />

3.1.2 Kryptering<br />

Huvudsyftena är att åstadkomma konfidentialitet, integritet eller autenticitet. Två typer av<br />

kryptering finns. Båda kan vara block- eller flödesorienterade.<br />

i. Symmetriska chiffer (Lika gamla som "världens äldsta yrken".). Moderna metoder är<br />

DES, IDEA, Blowfish, m fl. En ny standard AES är under utarbetande.<br />

ii. A<strong>symmetriska</strong> chiffer (Från 1976.): RSA, Blum-Goldwasser, ElGamal, m fl. De tre<br />

nämnda är i tur och ordning determinsistisk, probabilistisk respektive indeterministisk, där<br />

skillnaden mellan de båda sistnämnda ligger i kontrollen över vissa sannolikheter.<br />

3.1.3 Kanalkodning<br />

i. Översättningskoder syftar till att abstrahera kanalens fysiska begränsningar, tex att<br />

vid Morsekodning ge källan en möjlighet att vara oberoende av regeln att inga 'spaces' tillåts<br />

följa på varandra. Vi erhåller därmed en störd oinskränkt ('unconstrained') kanal. Området är<br />

relativt oberoende chiffer<strong>system</strong>, men presenteras ändå kortfattat i slutet av kapitlet.


56<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

ii. Transmissionskoder "<strong>för</strong>vandlar" kanalen till en störningsfri dito genom att in<strong>för</strong>a<br />

redundans (checksumma, paritetsbitar) via felupptäckande eller felkorrigerande koder. Vissa<br />

sådana metoder kan också användas <strong>för</strong> att skapa chiffer. En MAC är en privatnyckelbaserad<br />

variant av en transmissionskod. De nyckelfria metoderna är helt <strong>för</strong>svarslösa mot avsiktliga<br />

manipulationer. MAC å andra sidan är konstruerade <strong>för</strong> att mota 'active wiretapping'.<br />

3.1.4 Kommentar<br />

Enligt klassisk teori ska de tre typerna av kodning alltid ske i denna ordning. Det vore ju<br />

mot all intuition att t ex till<strong>för</strong>a redundans, som underlättar arbetet <strong>för</strong> en forcör, innan<br />

kryptering sker. Däremot kan det ju aldrig vara fel att, som <strong>för</strong>ekommer i vissa protokoll,<br />

kryptera även checksumman, då dess<strong>för</strong>innan klartexten har krypterats oberoende av detta.<br />

Redundans kan också verka i motsatt riktning.<br />

Nedan kommer några definitioner och satser som behövs <strong>för</strong> att kunna beskriva kvantitet i<br />

samband med kodning; information, entropi, ekvivokation och kanalkapacitet.<br />

Huvudsyftet är att härleda eller uppskatta ett mått<br />

f = H(K | C) N<br />

som anger kryptoanalytikerns ovisshet om nyckeln K givet ett chiffer C av längden N.<br />

Intuitivt gäller att då N är så stort att f ≈ 0, så låter sig K i teorin bestämmas entydigt. Det<br />

<strong>för</strong>utsätter ofta att nyckeln återanvänds på flera block.<br />

3.2 Sannolikheter och entropi<br />

Betrakta stokastiska variabler X som antar värden i {x 1 , ..., x L } med sannolikheter p i =<br />

p(x i ). Ibland används beteckningen<br />

p = (p 1 , ... p L ).<br />

Utfallsrummet kan t ex antas beskriva källans generering av tex klartextmeddelanden. Med 1-<br />

gram över A = {a, ..., z} blir L = 26 och med digram över A blir L = 26 2 .<br />

I stället <strong>för</strong> att utgå från {a, ..., z} kan man ibland välja att låta källans alfabet bestå<br />

av ord i ett lexikon. Orden blir då symboler och L i storleksordningen 10000 - 100000 <strong>för</strong><br />

naturliga språk.<br />

En probabilistisk synvinkel på språk intas i detta sammanhang, eftersom normalt fullständig<br />

kunskap saknas om språkets meningar. Deterministiska kontextfria grammatikor som bl a<br />

används <strong>för</strong> att beskriva eller definiera programspråk behöver kompletteras.<br />

Den betingade sannolikheten <strong>för</strong> x givet y skrivs p y (x) eller p(x | y) och det gäller <strong>för</strong> den<br />

simultana sannolikheten att<br />

p(x, y) = p(x | y) p(y).<br />

Matrisen P = {p(y i | x j )} brukar kallas sannolikhetsövergångsmatrisen och kan tas som<br />

definition av en kanal och denna eller p(x, y) som karakteristik av en källa då digram<br />

betraktas.<br />

Ett uttryck som Σ i∈[1,n] a i b i <strong>för</strong>ekommer ofta. Genom att in<strong>för</strong>a vektorerna a = (a 1 , ..., a n )<br />

och b = (b 1 , ..., b n ) och en skalärprodukt < | > kan formler skrivas kompaktare:<br />

= Σ i∈[1,n] a i b i .<br />

Beteckningen kan generaliseras till det fall där funktioner f tillämpas på vektorkomponenter<br />

tex<br />

= Σ i∈[1,n] a i f(b i ).


57<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

3.2.1 Definitioner och samband<br />

i. Utfall. Resultatet av ett slumpmässigt beteende kallas ett utfall eller elementarhändelse.<br />

ii. Utfallsrum. Mängden Ω av alla möjliga utfall kallas ett utfallsrum.<br />

iii. Händelse. En delmängd ω av utfallsrummet kallas en händelse. Om antalet utfall är<br />

ändligt eller uppräkneligt kallas Ω diskret.<br />

iv. Sannolikheter. Till varje händelse associeras ett tal p(ω); sannolikheten <strong>för</strong> ω.<br />

Denna uppfyller<br />

0 ≤ p(ω) ≤ 1,<br />

Σ ω∈Ω p(ω) = 1.<br />

Om ω 1 och ω 2 är disjunkta så gäller dessutom att<br />

p(ω 1 ∪ ω 2 ) = p(ω 1 ) + p(ω 2 ).<br />

Paret kallas ett sannolikhetsrum.<br />

Allmänt gäller att<br />

och att<br />

p(ω 1 ∪ ω 2 ) = p(ω 1 ) + p(ω 2 ) - p(ω 1 ∩ ω 2 )<br />

p(Φ) = 0,<br />

där Φ är tomma mängden.<br />

Om det gäller att<br />

p(ω 1 ∩ ω 2 ) ≡ ∆ p(ω 1 , ω 2 ) = p(ω 1 ) p(ω 2 ),<br />

så kallas ω 1 och ω 2 oberoende.<br />

Om det finns n olika händelser (eller utfall) ω i och det gäller att p(ω i ) = 1 / n, <strong>för</strong> alla i så<br />

<strong>för</strong>eligger en likformig sannolikhets<strong>för</strong>delning.<br />

v. Möjligheter. Från kombinatoriken an<strong>för</strong>s följande. Antag givet en mängd med N<br />

element. Ur denna mängd plockas n element; n ≤ N.<br />

På hur många sätt kan detta ske ? Fyra fall kan särskiljas:<br />

ANTAL MÖJLIGHETER Dragning med återläggning Dragning utan återläggning<br />

Med hänsyn till ordning N n N(N-1)(N-2)...(N-n+1)<br />

Utan hänsyn till ordning (( N+n-1, n )) ((N, n))<br />

Tabell 3.1. Antal urval<br />

Symbolen ((n, m)) eller C(n, m) betyder n! / (m!(n-m)!) och n! = n(n-1)(n-2) ... 1.


58<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Om en "urna" innehåller v stycken "0-or" och s stycken "1-or" blir sannolikheten <strong>för</strong> att man<br />

vid n dragningar med återläggning får k stycken "0-or" lika med<br />

((n, k)) p k q n-k ,<br />

där p = v/(v+s) och q = s/(v+s).<br />

I fallet utan återläggning erhålls sannolikheten<br />

((v, k)) ((s, n-k)) / ((v+s, n)).<br />

vi. Betingad sannolikhet. Uttrycket<br />

p (ω 2 | ω 1 ) ≡ ∆ p ω1 (ω 2 ) ≡ ∆ p(ω 1 ∩ ω 2 ) / p(ω 1 ) ≡ ∆ p(ω 1 , ω 2 ) / p(ω 1 )<br />

kallas den betingade sannolikheten <strong>för</strong> ω 2 om ω 1 inträffat.<br />

Om händelserna ω 1 , ..., ω n är parvis o<strong>för</strong>enliga, har positiva sannolikheter och<br />

tillsammmans uppfyller hela Ω, så gäller <strong>för</strong> varje händelse ω att<br />

Satsen om total sannolikhet p(ω) = Σ i p(ω i ) p(ω | ω i )<br />

Bayes sats p(ω k | ω) = p(ω k ) p(ω | ω k ) / ( Σ i p(ω i ) p(ω | ω i ) ).<br />

Bayes sats används ofta i specialfallet<br />

p(x | y) = p(x) * p(y | x) / p(y)<br />

under <strong>för</strong>utsättning att p(y) > 0.<br />

Denna senare variant är enkel att bevisa med hjälp av definitionen av betingad sannolikhet:<br />

p(x | y) p(y) = p(x, y) = p(y, x) = p(y | x) p(x).<br />

vii. Stokastisk variabel. En stokastisk variabel (sv) X kan ses som en beteckning av<br />

en händelse och är formellt en funktion från utfallsrummet till de reella (kontinuerlig sv)<br />

eller naturliga talen (diskret sv), d v s<br />

X: ω → X(ω).<br />

För diskret sv definieras en sannolikhets<strong>för</strong>delning på följande vis;<br />

p X (i) = p(X=i) = Σ {ω ∈Ω; X(ω) = i} p(ω)<br />

och en distribution<br />

F X (i) = p(X ≤ i).<br />

En distribution är monotont icke-avtagande, ligger i intervallet [0, 1], är (höger)kontinuerlig<br />

och har (gräns)värdena F(0) = 0 och F(∞) = 1.<br />

Nedanstående tabell visar några <strong>för</strong>delningar. Om p är liten kan en binomial<strong>för</strong>delning<br />

approximeras med en Poissondito som ofta är enklare att hanterna formelmässigt.


59<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

En sv med värden i [0, n-1] kallas<br />

Om<br />

Likformigt <strong>för</strong>delad p X (i) = 1/n<br />

Binomial<strong>för</strong>delad p X (i) = ((n, i)) p i (1-p) n-i , 0 ≤ p ≤ 1<br />

Poisson<strong>för</strong>delad p X (i) =( λ i /i!)e -λ, λ ≥ 0<br />

Tabell 3.2. Några <strong>för</strong>delningar<br />

viii. Väntevärde. Givet p X (i) definieras väntevärdet E[X] = Σ i i p X (i). Om f är en<br />

funktion vars definitionsområde innehåller X:s värde<strong>för</strong>råd definieras väntevärdet <strong>för</strong> f:<br />

E[f] = Σ i f(i) p X (i).<br />

ix. Moment. Det k:te momentet är E[X k ] = Σ i i k p X (i). (Om k = 1 erhålls väntevärdet.)<br />

x. Variansen är Var{X} = E[X 2 ] - (E[X]) 2 .<br />

xi. Standardavvikelsen är s(X) = √Var {X}.<br />

Om det är uppenbart vilken stokastisk variabel som avses utelämnas ibland/ofta subindex X<br />

i beteckningen p X . Det vållar egentligen bara problem då argumentet inte upplyser om X.<br />

3.2.2 Tillämpningar på krypto<strong>system</strong><br />

i. Inducerade sannolikheter. Beteckna sannolikheten <strong>för</strong> en klartext x med p(x) och<br />

sannolikheten <strong>för</strong> en vald nyckel med p(k). Ofta <strong>för</strong>utsätts att nycklarna är lika sannolika.<br />

Dessa sannolikheter inducerar följande relevanta sannolikheter.<br />

Låt C(K) beteckna mängden av möjliga chiffer <strong>för</strong> nyckeln k, d v s<br />

C(K) = {e k (x) : x ∈ M }.<br />

1. För varje c ∈ C gäller då att<br />

p(c) = Σ {k : c ∈ C(K)} p(k) p (d k (c)).<br />

2. Vidare kan den betingade sannolikheten <strong>för</strong> ett kryptogram c givet meddelandet x beräknas<br />

enligt<br />

p(c | x) = Σ {k : x = dk(c)} p(k).<br />

3. Nu är det enkelt att via Bayes sats bestämma p(x | c), d v s sannolikheten <strong>för</strong> klartexten x<br />

givet chiffret c:<br />

p(x | c) = (p(x) * Σ {k : x = dk(c)} p(k)) / Σ {k : c ∈ C(K)} p(k) p (d k (c)).<br />

4. Simultansannolikheten p(x, k) = p(x) * p(k) eftersom x och k väljs oberoende av varandra.<br />

5. Sannolikheten p(x, c) erhålls som p(x, c) = Σ {k: ek(x) = c} p(x) * p(k).<br />

6. Sannolikheten p(c, k) erhålls som p(c, k) = Σ {x: ek(x) = c} p(x) * p(k).<br />

7. Sannolikheten p(k | c) erhålls som p(k | c) = p(c, k) / p(c).


60<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

ii. Perfekt sekretess. Ett chiffer ger perfekt sekretess om <strong>för</strong> alla x och c det gäller att<br />

p(x | c) = p(x)<br />

Kännedom om ett chiffer till<strong>för</strong> alltså ingen kunskap om klartexten. Ett chiffer med perfekt<br />

sekretess är oforcerbart, men endast 'one time pad' erbjuder perfekt sekretess (vad man vet).<br />

Genom att använda Bayes sats ser vi att detta är ekvivalent med att (<strong>för</strong> alla c och x)<br />

p(c | x) = p(c).<br />

Tänk igenom vad det betyder om p(x | c ) < p(x) eller om p(x | c) > p(x) !<br />

iii. Några satser<br />

1. Om S ger perfekt sekretess så gäller att varje x kan avbildas på varje c.<br />

Betrakta nämligen ett x och ett c. Eftersom S är perfekt gäller att p(x | c) = p(x).<br />

Men p(x) > 0 <strong>för</strong> alla x. Det betyder att p(x | c) > 0 vilket betyder att givet ett c så finns det<br />

minst ett x som avbildas på c.<br />

2. Om S ger perfekt sekretess så gäller att | K | ≥ | C | ≥ | M |.<br />

Högra olikheten är uppenbar eftersom varje chiffer (perfekt eller ej) är en injektiv avbildning.<br />

Vidare: För varje givet x kan enligt ovan varje c erhållas och <strong>för</strong> varje c måste en separat<br />

avbildning finnas då x är givet. Alltså följer påståendet.<br />

3. (Shannon, 1949) Ett krypto<strong>system</strong> S med lika många nycklar, klartexter och chiffer ger<br />

perfekt sekretess precis då alla nycklar är lika sannolika och det <strong>för</strong> varje klartext x och varje<br />

chiffer c finns exakt en nyckel k så att c = e k (x).<br />

Bayes sats kan i analogi med följande användas <strong>för</strong> att visa detta (Gör det!).<br />

iv. Skiftchiffer. Ett skiftchiffer med lika sannolika nycklar ger perfekt sekretess med<br />

avseende på enstaka klartextsymboler !<br />

Om M = C = K = Z 26 och y = e K (x) = x + K mod 26 och varje nyckelval har sannolikheten<br />

1/26 så gäller<br />

p(y) = Σ K∈Z26 p(K) p(d K (y)) = Σ K∈Z26 1/26 p(y - K) = 1/26 Σ K∈Z26 p(y - K).<br />

För varje y så innebär y → y - K mod 26 en permutation över Z 26 var<strong>för</strong> Σ K∈Z26 p(y - K)<br />

= 1 och alltså, <strong>för</strong> alla y,<br />

p(y) = 1/26.<br />

Vidare gäller att<br />

p(y | x) = p(y - x mod 26) = 1/26,<br />

<strong>för</strong> alla x och y eftersom K bestäms entydigt av givna x och y via K = y - x mod 26.<br />

Till sist beräknas p(x | y) med hjälp av Bayes sats:<br />

p(x | y) = p(x) p(y | x) / p(y) = 26 p(x) / 26 = p(x),<br />

vilket enligt definitionen betyder perfekt sekretess.


61<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Observera att resonemanget kräver att man använder en ny slumpmässig nyckel <strong>för</strong> varje x<br />

och att vi därmed har visat att OTP ger perfekt sekretess.<br />

Samma resonemang kan användas <strong>för</strong> affina chiffer.<br />

3.2.3. Entropi och ekvivokation<br />

Här in<strong>för</strong>s några viktiga mått: entropi H, självinformation I och ekvivokation H(X | Y) <strong>för</strong><br />

att bl a kunna analysera fall då en (1) nyckel används <strong>för</strong> fler chiffreringar.<br />

Nedanstående definitioner av I och H vacklar lite: Somliga <strong>för</strong>edrar att se dessa som<br />

funktioner av stokastiska variabler, medan puristerna framhåller att de egentligen är<br />

funktioner av sannolikhets<strong>för</strong>delningar. Bevisen <strong>för</strong> satserna är ganska korta.<br />

Stokastiska variabler X med värden i {x 1 , ..., x n } och sannolikhets<strong>för</strong>delninger<br />

används.<br />

p = (p(x 1 ), ..., p(x n )) = (p 1 , ..., p n )<br />

i. Självinformation:<br />

I(X = x) = - log p(x).<br />

Logaritmen som oftast används är 2-logaritmen.<br />

Detta mått anger det antal bitar som behövs <strong>för</strong> att koda x med en optimal kod; d v s en kod<br />

som utnyttjar så få bitar som möjligt.<br />

Om det finns n = 2 k lika sannolika utfall blir självinformationen <strong>för</strong> vart och ett av dessa<br />

I = log n = k.<br />

Heuristisk motivering:<br />

1. Sannolikheterna ingår i definitionen där<strong>för</strong> att ett påstående om en händelse som inträffar<br />

med fullständig visshet (p = 1) (solen går upp) inte ger någon information alls, medan ett<br />

påstående om en osannolik (p ≈ 0) händelse (jorden krockar med Mars) ger mycken<br />

visdom/information om händelsen verkligen inträffar/observeras.<br />

2. Logaritmen har sin plats där<strong>för</strong> att två samtidigt inträffade händelser a och b med<br />

simultansannolikheten p(a, b) = p(a) p(b), d v s oberoende händelser, bör ge en adderad<br />

information;<br />

log (p(a) p(b)) = log p(a) + log p(b).<br />

3. Logaritmfunktionen är <strong>för</strong>utom additiv även kontinuerlig (över de reella talen).<br />

4. Minustecknet ger ett icke-negativt informationsmått.<br />

5. Logaritmbasen väljs som 2 eftersom detta ger "antalet bitar" ('bits'). Naturliga logaritmen<br />

(ln) ger sk 'nats'.<br />

ii. Ömsesidig information:<br />

I(X = x, Y = y) = - log ( p(x | y) / p(x) ).<br />

Detta är ett mått på den information som erhålls <strong>för</strong> händelsen X = x om händelsen Y = y<br />

inträffar/observeras (eller omvänt; I är alltså symmetrisk i X och Y).


62<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

iii. Entropi: Medelvärdet av självinformationen blir:<br />

H(X) = H(p) = Σ i p i I(X = x i ) = - Σ i p i log p i = - <br />

Summan tas över alla p i ≠ 0. Alternativt tolkas 0 log 0 som lim x→0 x log x = 0.<br />

Detta är ett mått på à priori ovissheten i X eller den maximala informationen som en<br />

observation kan ge om just den aktuella variabeln.<br />

Heuristisk motivering:<br />

Ett mått som är kontinuerligt i p i , ökar med L om alla p i = 1/L och som utgör en viktad<br />

summa av måtten då valen bryts ned i delval, kan visas erhållas endast med denna funktion<br />

(en konstant undantagen, vilken svarar mot valet av logaritmbas).<br />

Exempel.<br />

1. Om L = 2 och p 1 = p 2 = 1/2 så är H(X) = 1/2 log 2 + 1/2 log 2 = 1.<br />

För två lika sannolika möjligheter behövs en bit <strong>för</strong> att avgöra vilken det rör sig om.<br />

2. För godtyckligt L och med p i = 1/L erhålls H(X) = L * 1/L log L = log L.<br />

Observera specialfallet L = 2 n som alltså ger n bitar.<br />

3. Om t ex p 1 = 1 och alla andra p i = 0 erhålls H(X) = 1 log 1 + (L- 1) * 0 * log 0 = 0.<br />

Utfallet är känt; inga bitar behövs <strong>för</strong> att specificera det.<br />

4. Om p 1 = 1/2 och p 2 = p 3 = 1/4 erhålls H(X) = 1.5.<br />

Ett mellanting.<br />

Alltså: Ju "jämnare" <strong>för</strong>delning desto större entropi! Då massan är centrerad i en punkt är<br />

entropin 0. Det var ingen slump att Shannon valde namnet entropi.<br />

Termodynamikens andra huvudsats:<br />

I ett slutet <strong>system</strong> avtar inte entropin.<br />

Det är tur <strong>för</strong> datortekniker att<br />

öppna <strong>system</strong> existerar!<br />

iv. Medelvärdet av den ömsesidiga informationen:<br />

I(X, Y) = - Σ x Σ y p(x, y) log (p(x | y)/p(x)) = - Σ y p(y) Σ x p(x | y) log (p(x | y)/p(x)).<br />

Eftersom I(X = x, Y = y) är en funktion av två variabler så summeras över båda <strong>för</strong> att bilda<br />

medelvärdet. Notera att I(X, Y) = I(Y, X).<br />

v. Entropi (fler variabler):<br />

H(X, ...,Y) = - Σ... Σ p(x,...,y) log p(x,...,y) = H(X...Y) = H(X), där X = (X,...,Y).<br />

Detta är användbart i kryptologin då N-gram studeras.<br />

Vid ökande N växer antalet termer i summan exponentiellt.


63<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

vi. IT-olikheten och Jensens olikhet:<br />

Dessa två resultat kommer ofta till användning vid bevis <strong>för</strong> utsagor om H.<br />

IT-olikheten (IT = informationsteori, ett begrepp cirka 50 år äldre än informationsteknologi)<br />

log x ≤ (x - 1) log e<br />

(log x är 2-logaritmen)<br />

eller<br />

ln x ≤ x - 1<br />

(ln x är den naturliga logaritmen)<br />

Bevisas mha differentialkalkylens medelvärdessats<br />

f(x) = f (a) + (x - a) f' (a + θ(x - a)), 0 < θ < 1:<br />

ln x = ln x - ln 1 = (x - 1) / (1 + θ(x - 1)) ≤ x - 1,<br />

där uttrycket 1 / (1 + θ (x - 1)) är logaritmens derivata i en inre punkt.<br />

Rita figur!<br />

Nyttig är ibland är den lite allmännare<br />

Jensens olikhet:<br />

Om f är kontinuerlig och strikt konkav på intervallet I och a i ≥ 0 och Σ i a i = 1, så gäller att<br />

Σ i a i f(x i ) ≤ f (Σ i a i x i ),<br />

<strong>för</strong> alla x i ∈ I och med likhet precis då x 1 = ... = x n .<br />

En funktion f är strikt konkav om<br />

2 f ((x + y) / 2) > f(x) + f(y)<br />

<strong>för</strong> alla x och y på intervallet I. (Konkavitet, utan strikt, definieras med ≥ i st f >.)<br />

För en funktion vars andraderivata existerar kan olikheten f'' < 0 tas som karakteristik på<br />

strikt konkavitet.<br />

Logaritmfunktionen är strikt konkav på alla intervall där den existerar.<br />

vii. Sats.<br />

0 ≤ H(X) ≤ log L. -- L är utfallsrummets kardinalitet<br />

Maximum antas då p i = 1/L, <strong>för</strong> alla i och minimum då ett p k = 1 och de andra alltså 0.<br />

Bevis(skiss).<br />

H(X) - log L = - Σ i p i log p i - log L = Σ i p i (log (1/p i ) - log L) = Σ i p i log (1/(Lp i )) ≤<br />

{it-olikheten} ≤ Σ i p i (1/(Lp i ) - 1) log e = 0.<br />

viii. Betingad entropi:<br />

H(X | Y = y) = H Y=y (X) = - Σ x p(x | y) log p(x | y).<br />

Detta är ett mått på osäkerheten i X <strong>för</strong> ett visst givet Y = y.


64<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

ix.<br />

Ekvivokation.<br />

H(X | Y) = H Y (X) =<br />

Σ y p(y) H(X | Y = y) = - Σ y p(y) Σ x p(x | y) log p(x | y) = - Σ x,y p(x, y) log p(x | y)<br />

Detta är medelvärdet av den betingade entropin över alla Y eller osäkerheten om X givet Y.<br />

Den kryptologiska relevansen framgår genom att välja X = nycklar och Y = kryptogram:<br />

Vilken är forcörens ovisshet om nyckeln då chiffertexten observeras?<br />

Exempel.<br />

Låt L = 4 och p(x) = 1/4 <strong>för</strong> alla x. Då är H(X) = 2. Antag också att p(y) = 1/4 <strong>för</strong> alla y.<br />

Om nu varje y begränsar möjligheterna <strong>för</strong> x så att<br />

y 1 bara medger x 1 eller x 2 (lika sannolika)<br />

y 2 bara medger x 2 eller x 3 (lika sannolika)<br />

y 3 bara medger x 3 eller x 4 (lika sannolika)<br />

y 4 bara medger x 4 eller x 1 (lika sannolika)<br />

så erhålls H(X | Y) = 4 [ (1/4) 2 { (1/2) log 2 } ] = 1. Tolka!<br />

x. Sats.<br />

Bevis(skiss).<br />

I(X, Y) = H(X) + H(Y) - H(XY) = H(X) - H(X | Y) = H(Y) - H(Y | X) = I(Y, X).<br />

I(X, Y) = - E[ log (p(x | y ) / p(x) ] = - E[ log (p(x, y) / (p(x) p(y)) ] = H(X) + H(Y) -<br />

H(XY).<br />

xi. Sats.<br />

0 ≤ H(X | Y) ≤ log L.<br />

När antas maximum? Notera att H(X | X) = 0 <strong>för</strong> alla X. Visa detta!<br />

xii. Sats.<br />

H(X) = H(X 1 ) + H(X 2 | X 1 ) + H(X 3 | X 1 X 2 ) + ... + H(X n | X 1 ... X n-1 ),<br />

där X = (X 1 , ..., X n ).<br />

Om {X i } är oberoende bortfaller betingningen var<strong>för</strong><br />

H(X) = H(X 1 ) + H(X 2 ) + H(X 3 ) + ... + H(X n ).<br />

Om dessutom alla X i har identisk <strong>för</strong>delning (X = X i <strong>för</strong> alla i) blir<br />

H(X) = n H(X).<br />

Det senare betyder att språkhastigheten r = lim n→∞ H(X) / n = H(X) <strong>för</strong> n-gram om varje<br />

tecken i ett sådant antas oberoende av omgivningen och alla platser lika<strong>för</strong>delade.<br />

Multiplikationsregeln <strong>för</strong> betingade sannolikheter utnyttjas <strong>för</strong> beviset av xii:


65<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

xiii. Sats.<br />

p(X) = p(X 1 ) p(X 2 | X 1 ) p(X 3 | X 1 X 2 ) ... p(X n | X 1 ... X n-1).<br />

H(X | Y) ≤ H(X).<br />

Använd återigen IT-olikheten tillsammans med relationen p(x) = Σ y p(x, y) och definitionen<br />

av betingad sannolikhet <strong>för</strong> beviset.<br />

Tolkning: En tilläggskunskap om Y kan inte öka ovissheten om X.<br />

xiv. Korrolarium.<br />

I(X, Y) = I(Y, X) ≥ 0.<br />

xv. Den binära entropifunktionen är<br />

h(p) = Ω(p) = H(p, 1 - p).<br />

X har två möjliga utfall med sannolikheter p och 1-p.<br />

Funktionen h antar maximum (=1) <strong>för</strong> p = 0.5 och är 0 <strong>för</strong> p = 0 och p = 1.<br />

Funktionen h = 0.5 <strong>för</strong> p ≈ 0.11 och 0.89.<br />

Om a och b är konstanter är derivatan:<br />

∂h(a + bp)/∂p = b log [( 1- a - bp) / (a + bp)].<br />

xvi. Sats. (Fanos lemma) Om X och Y har värden {x 1 , ... x L } så gäller<br />

H(X | Y) ≤ h(p(X ≠ Y)) + p(X ≠ Y) log (L - 1), där p(X ≠ Y) = ΣΣ x,y p(x ≠ y).<br />

Satsen kan ges följande tolkning:<br />

H(X | Y) är den information som behövs <strong>för</strong> att bestämma X då Y är känd.<br />

Om X = Y är vi klara, men <strong>för</strong> att bestämma om så är fallet krävs h(p(X ≠ Y)) bitar.<br />

Om X ≠ Y så kvarstår L - 1 möjligheter <strong>för</strong> X. Detta ger en entropi högst log (L - 1).<br />

xvii. Sats. För en stationär källa (simultansannolikheten <strong>för</strong> X i är oberoende av<br />

tidstranslation) gäller<br />

a. H(X n | X 1 ... X n-1 ) ≤ H(X n-1 | X 1 ... X n-2 ).<br />

b. H(X 1 ... X n ) ≥ n H(X n | X 1 ... X n-1 ).<br />

c. H(X 1 ... X n ) / n ≤ H(X 1 ... X n-1 ) / (n - 1).<br />

d. lim n→∞ H(X 1 ... X n )/n = lim n→∞ H(X n | X 1 ... X n-1 ) = r = entropihastigheten.<br />

e. För en Markovkälla (ett tidstegs minne) är r = H(X n | X n-1 ).<br />

xviii. Sats. Om (X, Y, Z) är en Markovkälla så gäller<br />

a. I(X, Z) ≤ I(X, Y)<br />

b. I(X, Z) ≤ I(Y, Z)


66<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Denna sats visar att informationsbehandling aldrig kan öka informationen:<br />

I modus ponens innehåller C ⇒ A och C ⇒ A ⊃ B inte mindre information än C ⇒ B.<br />

I additionen x = a + b innehåller högerledet minst lika mycket information som vänsterledet.<br />

xix. Sats.<br />

a. H(X, Y) = H(X) + H(Y | X)<br />

b. H(X, Y) ≤ H(X) + H(Y).<br />

Likhet gäller precis då X och Y är oberoende. Ovissheten i den samtidiga händelsen (X, Y) är<br />

samma som ovissheten i X plus ovissheten i Y då X är given och den är inte större än<br />

summan av ovissheterna i X och Y var <strong>för</strong> sig.<br />

xx. Redundansen <strong>för</strong> ett språk M med alfabetsstorlek L definieras som<br />

D = R - r = log | M | - r.<br />

R = log L = "maximala antalet bitar per bokstav" = alfabetshastigheten = absoluta<br />

hastigheten. I engelskan är L = 26 och alltså R ≈ 4.7.<br />

En 0:te ordningens approximation av språket ger H(X) / N = H(X) = log L. Genom att<br />

beakta att bokstäverna i ett N-gram är beroende erhålls bättre approximationer <strong>för</strong> ökande N.<br />

Kvantiteten r = lim N→∞ H(X)/N = språkhastigheten (språkentropin) = medelvärdet av antalet<br />

effektiva informationsbitar per bokstav <strong>för</strong> språket är central. I engelska språket uppskattas r<br />

till intervallet [1, 1.5] (som uppnås vid N = 100, ca.).<br />

Ibland definieras redundansen som D / R = 1 - r / R; t ex i så fall ≈ 75% <strong>för</strong> engelska.<br />

För att beräkna H(X) <strong>för</strong> ökande N används frekvenstabeller <strong>för</strong> N-gram med N = 0, 1, 2, ... .<br />

N = 0 ger H = 4.7,<br />

N = 1 ger H / 1 ≈ 4.17 (tabell 2.1),<br />

N = 2 ger H / 2 ≈ 3.62 &c.<br />

Jäm<strong>för</strong> sats xvii.c ovan.<br />

xxi. Rényientropi. Detta mått är en generalisering av Shannons entropi och definieras<br />

<strong>för</strong> α ≥ 0 och α ≠ 1 enligt<br />

H α (X) = (1 - α) -1 log Σ p(x) α .<br />

Med gränsprocessen α → 1 erhålls H 1 (X) = H(X).<br />

Med gränsprocessen a → ∞ erhålls H ∞ (X) = - log max p(x).<br />

Vidare gäller <strong>för</strong> 0 < α < β att H α (X) ≥ H β (X),<br />

med likhet om och endast om X är likformigt <strong>för</strong>delad.<br />

Speciellt gäller att<br />

log | X | ≥ H α (X),<br />

<strong>för</strong> α ≥ 0 och att<br />

H(X) ≥ H α (X), <strong>för</strong> α > 1.


67<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

3.3 Kodningssatser och 'one time pad'<br />

3.3.1 Shannons satser<br />

Följande satser bevisades av Shannon i mitten av 40-talet och de utgör startpunkten <strong>för</strong><br />

vetenskapsgrenen informationsteori. Satserna ges här utan bevis.<br />

En minnesregel <strong>för</strong> dessa satser är följande.<br />

H < κ < C<br />

Den <strong>för</strong>sta satsen karakteriserar källan och säger att entropin är det mått som är mest relevant<br />

<strong>för</strong> att beskriva det verkliga informationsinnehållet:<br />

i. Kodhastighet. Om blocklängden <strong>för</strong> ord som produceras är n och om dess ord kodas<br />

med kodord av längd ρ så kallas kvantiteten κ = ρ / n <strong>för</strong> kodhastigheten.<br />

ii. Sats. (Källkodningssatsen) Antag att källans ord av blocklängd n produceras av en<br />

diskret minnesfri källa med entropi H(p) och kodas med kodord av längd ρ ur ett alfabet av<br />

storlek K. Då gäller <strong>för</strong> alla ε > 0 att sannolikheten <strong>för</strong> avkodningsfel p e ≤ ε <strong>för</strong>utsatt att<br />

κ log K > H(p).<br />

Omvänt gäller att om olikheten inte är uppfyllt så är sannolikheten <strong>för</strong> avkodningsfel större<br />

än 1 - ε.<br />

För binära koder, K = 2, kan alltså källans ord återskapas precis då κ > H(p). Villkoret<br />

sätter alltså en undre gräns <strong>för</strong> hur mycket ett meddelande kan kompakteras utan att<br />

informationen <strong>för</strong>loras.<br />

Den andra satsen visar att kanalkapaciteten är det avgörande måttet <strong>för</strong> att utvisa hur mycket<br />

en kanal accepterar.<br />

iii. Kanalkapaciteten C <strong>för</strong> en minnesfri kanal beskriven av övergångssannolikheterna<br />

p(y | x) definieras som<br />

C = max p(x) I(X, Y) = max p(x) (H(Y) - H(Y | X)),<br />

där maximum tas över alla sannolikhets<strong>för</strong>delningar <strong>för</strong> invärdena x till kanalen.<br />

Observera att H(Y | X) = 0 om kanalen är störningsfri, ty då är den mottagna signalen<br />

identisk med den sända. Ibland kan det vara enklare (eller naturligare) att använda maximum<br />

över I(Y, X) i stället; funktionen I är ju symmetrisk i X och Y.<br />

iv. Sats. (Kanalkodningssatsen) Antag att kodhastigheten κ <strong>för</strong> en minnesfri kanal<br />

uppfyller κ < C. Då gäller <strong>för</strong> alla ε > 0 att det finns en blocklängd n och en kod med denna<br />

längd och hastighet κ vars sannolikhet p e <strong>för</strong> avkodningsfel uppfyller p e ≤ ε.<br />

Observera att signal/brus-<strong>för</strong>hållandet inte ingår (explicit).<br />

Även denna sats har en omvändning. Om κ > C så finns ingen blockkod vars sannolikhet<br />

<strong>för</strong> avkodningsfel understiger ε.


68<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

3.3.2 Den binära <strong>symmetriska</strong> kanalen (BSC)<br />

I BSC (och i 'one time pad') finns två källsymboler x 1 och x 2 som <strong>för</strong>ekommer med<br />

sannolikhet p(x 1 ) = p respektive p(x 2 ) = 1 - p. Figuren illustrerar denna kanal.<br />

x1<br />

a<br />

1-a<br />

a<br />

y1<br />

x2<br />

1-a<br />

Figur 3.2 BSC<br />

y2<br />

Övergångssannolikheterna <strong>för</strong> de mottagna symbolerna y 1 och y 2 ges av<br />

och<br />

p(y 1 | x 2 ) = p(y 2 | x 1 ) = a<br />

p(y 1 | x 1 ) = p(y 2 | x 2 ) = 1 - a.<br />

Ett värde a ≠ 0 representerar ett över<strong>för</strong>ingsfel (eller "distorsion" via kryptering) ; lika <strong>för</strong><br />

båda symbolerna.<br />

Likheten a = 0.5 gäller <strong>för</strong> 'one time pad'; en slumpföljdsnyckel har ju lika många 0-or som<br />

1-or.<br />

För att beräkna kanalkapaciteten C används I(X, Y) = H(Y) - H(Y | X).<br />

H (Y) erhålls enkelt genom att beakta att<br />

och att<br />

Alltså är<br />

p(y 1 ) = p(x 1 ) p(y 1 | x 1 ) + p(x 2 ) p(y 1 | x 2 ) = a + p - 2ap<br />

p(y 2 ) = 1 - p(y 1 ).<br />

H(Y) = h (p(y 1 )) = h (a + p - 2ap),<br />

där h är den binära entropifunktionen.<br />

Genom att utnyttja att p(x i , y j ) = p(x i ) p(y j | x i ) kan den andra termen<br />

beräknas.<br />

H(Y | X) = - Σ x Σ y p(x, y) log p(y | x)<br />

H(Y | X) = - p [a log a + (1 - a) log (1 - a)] - (1- p) [a log a + (1- a) log (1- a)] = h (a).<br />

Eftersom kanalen är symmetrisk är detta resultat oberoende av p.<br />

Den ömsesidiga informationen blir alltså<br />

I(X, Y) = h (a + p - 2ap) - h (a),<br />

som beror både på felsannolikheten a och på källans sannolikhets<strong>för</strong>delning p.<br />

Om a = 0 så blir I = h(p) = H(X), med maximum C = 1 (<strong>för</strong> p = 0.5).


69<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Om a = 0.5 (maximalt kanalfel) så blir C = max I = 0.<br />

Det är precis detta senare <strong>för</strong>hållande (C = 0) som gör 'one time pad' oforcerbar.<br />

Kanalkapaciteten är<br />

C = max p I = max p [h(a + p - 2ap) - h(a) ] = 1 - h(a).<br />

Maximum (över p) av h är ju 1 och kvantiteten h(a) är oberoende av p.<br />

3.4 Huffmankodning<br />

i. Allmänt. Detta är ett sätt att koda den information som en källa genererar på ett<br />

redundansminskande vis. Grundidén är att representera de mera frekventa symbolerna med<br />

kortare kodord och acceptera att sällsynta symboler därmed kräver längre kodord.<br />

Kodorden blir med nödvändighet olika långa; koden är av typ:<br />

- Fix- till variabellängd.<br />

Avgränsare mellan kodsymbolerna bör undvikas eftersom sådana naturligtvis skulle belägga<br />

kanalens kapacitet i onödan så koden ska vara<br />

- Momentant avkodbar.<br />

Detta gäller <strong>för</strong> alla koder som uppfyller prefixvillkoret: Inget kodord utgör prefix till ett<br />

annat kodord (en sk prefixfri kod).<br />

ii. Exempel. Antal givet 8 källsymboler med sannolikheter p i , i = 1, ..., 8, där<br />

p i = 1/32, <strong>för</strong> i = 0,1, 2, 3, p i = 1/16 <strong>för</strong> i = 4, 5, p i = 1/4, <strong>för</strong> i = 6 och p i = 1/2, <strong>för</strong> i = 7.<br />

Entropin blir H(X) = 2 1/8. Trivial kodning av 8 symboler ger medelkodordslängd 3.<br />

Följande tabell 3.3 visar en bättre kod.<br />

Symbol Sannolikhet (pi) Kodord (xi) Kodordslängd (li)<br />

0 1/32 00 000 5<br />

1 1/32 00 001 5<br />

2 1/32 00 010 5<br />

3 1/32 00 011 5<br />

4 1/16 00 10 4<br />

5 1/16 00 11 4<br />

6 1/4 01 2<br />

7 1/2 1 1<br />

Tabell 3.3. En kodning<br />

Medelkodordslängden blir w = Σ p i l i = 2 1/8.<br />

Detta råkar sammanfalla med H(p), p = (p 0 , ..., p 7 ).<br />

Observera att prefixvillkoret är uppfyllt; exempelvis kan<br />

000110000000001000101 ... bara avkodas som 30127 ..<br />

och att denna avkodning kan ske utan att meddelandet behöver innehålla avskiljare mellan<br />

kodsysmbolerna.Överensstämmelsen w = H(p), d v s redundansen D = 0 <strong>för</strong> det kompakterade<br />

språket, gäller inte alltid, men däremot följande sats.


70<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

iii. Sats. Medelkodordslängden w <strong>för</strong> en kompakterande, binär prefix-kod <strong>för</strong> en källa p<br />

uppfyller alltid w ≥ H(p). Vidare finns en prefixfri kod <strong>för</strong> vilken w ≤ H(p) + ε, <strong>för</strong><br />

godtyckligt valt ε > 0.<br />

iv. Sats. En prefixfri kod med minimal längd uppfyller:<br />

a. Om p i > p j så gäller l i ≤ l j.<br />

b. De två minst sannolika källsymbolerna har kodord med samma längd.<br />

c. Om det finns fler kodord med samma längd så överenstämmer de i alla bitar utom de sista.<br />

Resultatet i denna sats kan användas konstruktivt:<br />

Kombinera de två minst sannolika källsymbolerna till en "artificiell" symbol vars<br />

sannolikhet är summan av de två andras. Då uppstår en ny källa med antalet symboler<br />

reducerat med ett. Konstruera nu en optimal kod <strong>för</strong> denna nya källa &c.<br />

För att hitta kodord <strong>för</strong> de minst sannolika symbolerna i den ursprungliga källan, använd den<br />

optimala koden <strong>för</strong> den artificiella och lägg 0 respektive 1 till koden <strong>för</strong> den artificiella<br />

symbolen. Att detta faller väl ut följer av följande.<br />

v. Sats. Antag att de två minst sannolika källsymbolerna kombineras till en artificiell<br />

symbol och att C' är optimala koden <strong>för</strong> denna artificiella källa. Konstruera C från C' genom<br />

att till den artificiella symbolens kod lägga 0 respektive 1 <strong>för</strong> att forma koderna <strong>för</strong> de minst<br />

sannolika källsymbolerna i ursprungskällan och lämna de övriga kodorden lika. Då gäller att<br />

C är den optimala koden <strong>för</strong> originalkällan.<br />

Huffmankoden erhålls om denna procedur tillämpas rekursivt.<br />

vi. Exempel. Antag givet 7 källsymboler a, b, c, d, e, f och g med sannolikheter 3/8,<br />

3/16, 3/16, 1/8, 1/16, 1/32 respektive 1/32.<br />

Låt koden växa fram ur ett liggande träd med löven längst till vänster; se figur 3.3. I trädets<br />

grenar in<strong>för</strong>s successivt 0-or (gren uppåt) och 1-or (gren nedåt). Koden blir:<br />

Symbol Sannolikhet (pi) Kodord (xi) Kodordslängd (li)<br />

a 3/8 1 1<br />

b 3/16 011 3<br />

c 3/16 010 3<br />

d 1/8 001 3<br />

e 1/16 0001 4<br />

f 1/32 00001 5<br />

g 1/32 00000 5<br />

Tabell 3.4. En Huffmankodning<br />

Medelkodordslängden blir w = Σ p i l i = 2.44. Entropin är H(p) = 2. 37. Detta gav en ganska<br />

bra kod. Kod<strong>för</strong>bättringar kan erhållas om man betraktar N-gram i stället <strong>för</strong> 1-gram.<br />

vii. Exempel. Antag tre givna källsymboler a, b och c med sannolikheter 3/4, 3/16<br />

respektive 1/16.<br />

Huffmankoden <strong>för</strong> 1-gram har koderna 1, 01 respektive 00. Detta ger w = 1.25 och vi har<br />

H(p) = 1.012, vilket antyder att en <strong>för</strong>bättning på 20% vore möjlig.<br />

Huffmankodning av digram ger nedanstående tabell.<br />

Sannolikheterna i tabellen bildas som produkten av de enskilda symbolernas sannolikheter.<br />

Medelkodordslängden blir w = 2.09.<br />

Observera dock att kodorden står <strong>för</strong> två källsymboler. Kodhastigheten är alltså 1.045.<br />

Jäm<strong>för</strong> detta med 1.25 som är hastigheten <strong>för</strong> Huffmankoden <strong>för</strong> 1-gram och med 1.012 som<br />

är ursprungskällans entropi.


71<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

g 1/32<br />

f 1/32<br />

0<br />

1<br />

e 1/16<br />

d 1/8<br />

1/16<br />

1<br />

0<br />

1/8<br />

1<br />

0<br />

1/4<br />

0<br />

Vägen visar hur<br />

koden <strong>för</strong> c uttyds<br />

c<br />

b<br />

3/16<br />

3/16<br />

0<br />

1<br />

3/8<br />

1<br />

1<br />

5/8<br />

0<br />

3/8<br />

a<br />

Figur 3.3.Ett Huffmanträd<br />

Symbolpar Sannolikhet Kodord Kodordslängd<br />

aa 0.5625 1 1<br />

ab 0.1406 011 3<br />

ac 0.0469 011 3<br />

ba 0.1406 010 3<br />

bb 0.0352 000 11 5<br />

bc 0.0117 000 101 6<br />

ca 0.0469 000 0 4<br />

cb 0.0117 000 100 1 7<br />

cc 0.0039 000 100 0 7<br />

Tabell 3.5. Huffmankodning av digram<br />

Ett ibland användbart resultat är Krafts olikhet:<br />

viii. Sats. I ett alfabet av storlek K (<strong>för</strong> en binär kod är K = 2) existerar en prefixkod med<br />

M kodord av längd l(m), m = 1, ..., M, precis då<br />

Σ m K -l(m) ≤ 1.<br />

3.5 Chiffersäkerhet<br />

Efter att ha in<strong>för</strong>t entropibegreppet och bevisat kanal- och källkodningssatserna var det en<br />

"barnlek" <strong>för</strong> Shannon att visa resultaten i detta avsnitt avseende konventionella chiffer[s<br />

resistens mot forcering].<br />

3.5.1 Nyckelekvivokation; Shannons tillvägagångssätt<br />

En "nyckelkvantitet" (hihi!) är H(K | C), som beskriver en forcörs osäkerhet om kryptonyckeln<br />

K då han/hon "fångar upp" ett chiffer C.<br />

i. Allmänt. En approximation till nyckelekvivokationen<br />

H(K | C) = - Σ C p(C) Σ K p (K | C) log p (K | C)<br />

kan härledas på följande (lite heuristiska) sätt.


72<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Betrakta N-gram. Sätt<br />

S = 2 RN<br />

T = 2 rN ,<br />

där R = log L (L = antalet element i alfabetet) är absoluta hastigheten och r är<br />

språkhastigheten,<br />

r = lim N → ∞ H(X) / N.<br />

S är det totala antalet tänkbara meddelanden och T är antalet meningsfulla. Alla dessa antas<br />

vara lika sannolika och sannolikheterna summerar till 1 (nåja, nästan).<br />

Sannolikheten att det finns exakt m avbildningar mellan ett visst c och element i mängden<br />

av meningsfulla meddelanden är<br />

(k! / (m! (k - m)!) ) * (T / S) m * (1 - T / S) k - m = {def} = f(m),<br />

då k = 2 H(K) = antalet nycklar, som alla <strong>för</strong>utsätts lika sannolika. (Dragning med<br />

återläggning.)<br />

Om ett kryptogram med m sådana "linjer tillbaka" uppfångas är den betingade entropin <strong>för</strong> ett<br />

givet c lika med log m, ty alla är ju lika sannolika var<strong>för</strong> maximumvärdet antas.<br />

Sannolikheten <strong>för</strong> ett sådant chiffer är<br />

a(m) = mS / kT = m 2 DN - H(K) , där D = R - r = p(c),<br />

eftersom det kan produceras av m nycklar av totalt k stycken med sannolikheter S / T.<br />

Ekvivokationen<br />

blir där<strong>för</strong><br />

eller<br />

H(K | C) = Σ c p(c) H(K | C = c)<br />

H(K | C) = Σ m a(m) f(m) log m = S / Tk Σ m f(m) m log m<br />

H(K | C) = 2 DN-H(K) Σ m ∈ [1, k] C(k,m) 2 -DNm (1 - 2 -DN ) H(K) - m m log m<br />

där D = R - r och k = 2 H(K) och C(k,m) = k! / (m!(k - m)!).<br />

Den inramade ekvationen kan approximeras.<br />

In<strong>för</strong> beteckningen λ = kT / S = 2 H(K) - DN .<br />

Tre delfall (med avseende på λ eller Ν) underlättar analysen.<br />

ii. Fall 1: λ = kT / S >> 1 (N litet). Då gäller approximationen<br />

H(K | C) = H(K) - DN.<br />

Väntevärdet av m är λ. Om detta är >> 1 så är variationen av log m liten och kan ersättas<br />

med log λ, som i sin tur kan faktoriseras ur summan, som då reduceras till λ.


73<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Vidare är k = 2 H(K) och log (T/S) = - DN.<br />

Så H(K | C) = log(Tk / S) = log T - log S + log k.<br />

Därav resultatet.<br />

iii. Fall 2: λ = kT / S ≈ 1. Här gäller approximationen<br />

H(K | C) = e -λ Σ m≥1 (λ m /m) log (m + 1).<br />

Detta faller ut om binomial<strong>för</strong>delningen approximeras med en Poisson-dito:<br />

p m (1 - p) k - m = [p = 2 -DN ] = e -λ λ m /m!<br />

Summeringen blir kvar.<br />

iv. Fall 3: λ = kT / S


74<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

vi. Kommentar. Notera också att resonemanget innehåller intressanta resultat rörande<br />

sannolikheter; det är inte alltid nödvändigt att gå över till entropier <strong>för</strong> att finna "pärlor".<br />

Exempelvis kan det vara intressant att tabellera sannolikheten <strong>för</strong> att finna korrekt lösning<br />

(rätt nyckel) som funktion av log λ <strong>för</strong> k = 1, 2,... . Man kan nämligen visa att<br />

p(rätt nyckel) = (1/λ) * (1 - (1 - (λ/k)) k ) ≈ (1/λ) * (1 - e -λ ) <strong>för</strong> λ


75<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Vidare är M och K oberoende så H(K, M) = H(K) + H(M).<br />

Alltså är<br />

H(K, M, C) = H(K) + H(M). (2)<br />

Analogt, eftersom H(M | K, C) = 0, gäller att H(K, M, C) = H(K, C). (3)<br />

Slutligen erhålls alltså<br />

H(K | C) = H(K, C) - H(C) = {(3)} = H(K, M, C) - H(C) = {(2)} = H(K) + H(M) - H(C).<br />

Med hjälp av denna relation kan ytterligare bestämningar av H(K | C) erhållas.<br />

iv. Sats. Om | M | = | C | så gäller olikheterna följande olikheter.<br />

H(K) - DN ≤ H(K | C) ≤ H(K)<br />

Bevis.<br />

Det gäller att<br />

→ H(M) ≥ Nr = N (D - R),<br />

där r = lim N→∞ H(M) / N är språkhastigheten, R = log | M | är alfabetshastigheten och<br />

D = R - r är redundansen.<br />

Självklart är<br />

→ H(C) ≤ N log | C |.<br />

Alltså gäller<br />

H(K | C) ≥ H(K) - N(R - D) - N log | C | = { om | C | = | M | } = H(K) - DN.<br />

v. Falska nycklar. Definiera mängden K(c) av nycklar <strong>för</strong> vilka c är ett chiffer som svarar<br />

mot en meningfull klartext m på följande vis:<br />

K(c) = {K ∈ K: ∃ m ∈ M, p(m) > 0, e k (m) = c}.<br />

Både m och c uppfattas som N-gram.<br />

Då gäller<br />

H(K | C) = Σ c∈C p(c) H(K | C = c) ≤ Σ c∈C p(c) log | K(c) | ≤ log Σ c∈C p(c) | K(c) |.<br />

Å andra sidan gäller att antalet s falska nycklar då ett visst c observeras är | K(c) | - 1.<br />

Av de tänkbara nycklarna är det ju bara en som är korrekt.<br />

Väntevärdet E[s] blir<br />

Alltså:<br />

eller<br />

E[s] = Σ c∈C p(c) (| K(c) | - 1) = Σ c∈C p(c) | K(c) | - 1.<br />

H(K | C) ≤ log (E[s] + 1)


76<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

E[s] ≥ 2 H(K | C) - 1.<br />

Ur iv. ovan följer så att E[s] ≥ 2 H(K) - DN - 1.<br />

Om, slutligen, det <strong>för</strong>eligger så mycket chiffer, dvs N är så stort, att H(K) - DN = 0 blir det<br />

<strong>för</strong>väntade antalet falska nycklar = 0, varvid chiffret är forcerat (i teorin).<br />

vi. Entydighetslängd. Detta N-värde kallas entydighetslängden N u <strong>för</strong> vilken gäller att<br />

N u = H(K) / D<br />

Kommentar. Oftast används <strong>för</strong>utsättningen H(K) = log | K | (alla nycklar är lika sannolika)<br />

och uppskattningen D = 3.2 (<strong>för</strong> engelska) då denna ekvation används.<br />

3.5.3 Sekretess<br />

i. Praktisk sekretess. Många bra chiffer kan ha liten entydighetslängd: För DES är<br />

om D = 3.2.<br />

N u ≈ H(K) / D = log 2 56 / D = 56 / D ≈ 17.5 (tecken)<br />

För denna kryptomassa, d v s tre ECB-chiffreringar med samma nyckel, låter sig nyckeln<br />

entydigt bestämmas.<br />

Men: Praktisk sekretess följer av att forceringen ändå är mycket arbetssam. Att via 'brute<br />

force' pröva 2 56 ≈ 10 17 olika nycklar tar ju 10 11 sekunder (mer än ett miljon dygn) om<br />

varje nyckel kan prövas på 1 µs.<br />

ii. Perfekt sekretess. För 'one time' pad är<br />

H(M | C) = H(M)<br />

(= 1, <strong>för</strong> binär kodning)<br />

och kanalkapaciteten noll oberoende av [hur stort] N [än väljes], vilket uttrycker det faktum<br />

att denna metod också ger perfekt sekretess, dvs N u = ∞.<br />

Allmänt kan man visa att det alltid gäller att<br />

H(K | C) ≥ H(M | C),<br />

vilket också betyder att villkoret H(K | C) = H(K) med<strong>för</strong> perfekt sekretess (dock ej omvänt).<br />

Villkoret<br />

I(C, M) = 0 ⇔ p (M | C) = p(M)<br />

är en vanlig definition på perfekt sekretess; dvs C och M är stokastiskt oberoende precis då<br />

perfekt sekretess <strong>för</strong>eligger. Visa ekvivalensen!<br />

Med hjälp av Bayes sats kan villkoret <strong>för</strong> perfekt sekrtess också skrivas<br />

p(C | M) = p(C) (<strong>för</strong> alla M och C)<br />

Observera att ett PKS har entydighetslängden 0! Här behövs ju ingen kryptomassa alls <strong>för</strong> att<br />

teoretiskt beräkna den privata nyckeln ur den publika.


77<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

iii. Ideal sekretess. Om D ≈ 0 kommer inte heller att nyckelekvivokationen gå mot 0 då<br />

N växer, så chiffret kommer inte heller då att vara forcerbart. Shannon kallade detta<br />

<strong>för</strong>hållande <strong>för</strong> 'ideal secrecy'. Detta är anledningen till att kompaktering eller randomisering<br />

kan vara bra att ta till som ett steg <strong>för</strong>e krypteringen.<br />

3.5.4 Exempel<br />

Låt följande [artificiella] alfabet och chiffer vara givna.<br />

Klartextmängd M = {α, β} med p(α) = 1/4 och p(β) = 3/4.<br />

Chiffermängd C = {1, 2, 3, 4}.<br />

Nyckelmängd K = {k 1 , k 2 , k 3 } med p(k 1 ) = 1/2, p(k 2 ) = p(k 3 ) = 1/4.<br />

Chifferfunktionen e definieras av följande tabell (chiffermatris).<br />

e α β<br />

k 1 1 2<br />

k 2 2 3<br />

k 3 3 4<br />

Med dessa data kan p(c) och p(m | c) beräknas <strong>för</strong> c ∈ C och m ∈ M. (Se 3.2.2.i.)<br />

c<br />

p (c)<br />

1 1/8<br />

2 3/8 + 1/16 = 7/16<br />

3 3/16 + 1/16 = 1/4<br />

4 3/16<br />

För att bestämma p(m | c) är det lämpligt att <strong>för</strong>st bestämma p(c | m) = Σ {k: m = dk(c)} p(k).<br />

Ur siffrorna <strong>för</strong> p(k i ) erhålls följande.<br />

c p(c | α) p(c | β)<br />

1 1/2 0<br />

2 1/4 1/2<br />

3 1/4 1/4<br />

4 0 1/4<br />

Bayes sats ger därefter följande tabell.<br />

c p(α | c) p(β | c)<br />

1 1 0<br />

2 1/7 6/7<br />

3 1/4 3/4<br />

4 0 1<br />

Med hjälp av Bayes sats erhålls också de betingade nyckelsannolikheterna.<br />

c p(k 1 | c) p(k 2 | c) p(k 3 | c)<br />

1 1 0 0<br />

2 6/7 1/7 0<br />

3 0 3/4 1/4<br />

4 0 0 1


78<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Med dessa värden erhålls:<br />

H(M) = -1/4 log (1/4) - 3/4 log (3/4) = 2 - 3/4 log 3 ≈ 0.81.<br />

H(K) = 1.5.<br />

H(C) ≈ 1.85.<br />

H(K | C) ≈ 0.46.<br />

Detta är kompatibelt med H(K | C) = H(K) + H(M) - H(C).<br />

3.6 Störningsfria kanaler<br />

Följande resonemang syftar till att kvantifiera begreppet kanalkapacitet <strong>för</strong> en störningsfri<br />

kanal, d v s då H(output | input) = 0.<br />

En komplikation är att de meddelanden som sänds via kanalen inte kan bestå av godtyckliga<br />

kombinationer av tecken eller bitar; stopp-bitar måste <strong>för</strong>ekomma på exakt rätt platser;<br />

fastställda regler <strong>för</strong> Morse-signalering måste följas &c.<br />

En annan komplikation består i att att de olika kodorden kan ha olika utsträckning i tiden<br />

(olika längd). Antag att alfabetet är {s i }, i = 1, ..., n. Till varje symbol s i associeras en tid<br />

t i ; den tid det tar att sända symbolen.<br />

i. Exempel. Vid Morse-signalering kodas tecken mha ♦, ⇔, |; dvs "punkt", "streck" och<br />

"mellanslag".<br />

Varje bokstav sänds t ex som en fix sekvens av ♦ och ⇔. Bokstavs- och ordmellanrum<br />

kodas också. Implementeringen av grundsymbolerna kan vara:<br />

Symbol Implementering Tid Kommentar<br />

♦ Ett intervall +5V, ett 0V 2 Kort "pip"<br />

⇔ Tre intervall +5V, ett 0V 4 Långt "piiip"<br />

| Tre intervall 0V 3 Bokstavsmellanrum<br />

|| Sex intervall 0V 6 Ordmellanrum<br />

Tabell 3.6. Morsekod-<strong>för</strong>utsättningar<br />

Härav följer den naturliga restriktionen att två bokstavsmellanrum inte får följa på varandra,<br />

ty i så fall kan detta inte skiljas från ordmellanrum. Frågan är hur kapaciteten <strong>för</strong> en kanal<br />

ska definieras <strong>för</strong> detta fall.<br />

En definition bör ju degenerera till den vanliga i det fall alla bitkombinationer är tillåtna. När<br />

binärdata sänds som oktetter (256 olika möjligheter) och kanalen klarar 8n bitar/sek är det<br />

naturligt att detta får stå <strong>för</strong> kanalkapaciteten C. I detta fall har alla 256 olika kodord samma<br />

tidsutsträckning.<br />

N(T) står <strong>för</strong> antalet tillåtna signaler av längd T i tiden. I binära fallet är alltså N(T) = 2 8 T.<br />

ii. Definition. Kanalkapaciteten (<strong>för</strong> en diskret kanal) är C = lim T →∞ log [N(T) ] / T.<br />

Observera att detta uttryck reduceras till det intuitiva resultatet om alla ord har samma längd.<br />

Vad händer om de olika kodorden har olika utsträckning?


79<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

Om N(t) står <strong>för</strong> antalet sekvenser med utsträckning t så gäller<br />

N(t) = N(t - t 1 ) + N(t - t 2 ) + ... + N(t - t n ). (1)<br />

Det totala antalet är lika med summan av antalet sekvenser som slutar på s 1, ..., s n och dessa<br />

är N(t - t 1 ), ..., respektive N(t - t n ).<br />

Differensekvationen (1) har en lösning N(t) ≈ X t , asymptotiskt <strong>för</strong> stora t, där X är största<br />

roten till karakteristiska ekvationen<br />

x -t1 + x -t2 + ... + x -tn = 1. (2)<br />

Det betyder att C = log X.<br />

I de fall då det också finns begränsningar på de tillåtna sekvenserna, tex Morse-kodning, kan<br />

ett analogt resonemang ofta användas.<br />

iii. Exempel; Morse-signalering. Genom att räkna sekvenser av symboler och ta<br />

hänsyn till den näst sista och den sista <strong>för</strong>ekommande symbolen så finner vi i detta fall att<br />

N(t) = N(t - 2) + N(t - 4) + N(t - 5) + N(t - 7) + N(t - 8) + N(t - 10);<br />

se tabellen ovan och FSM nedan. Ekvationen<br />

x -10 + x -8 + x -7 + x -5 + x -4 + x -2 = 1 (3)<br />

kan lösas numeriskt och den största roten X ger C ≈ 0.539.<br />

iv. Exempel. Morse-signalering ger upphov till följande ändliga tillståndsmaskin; figur<br />

3.5.<br />

bokstavs- eller<br />

ordmellanrum<br />

punkt<br />

eller<br />

streck<br />

a1<br />

punkt eller streck<br />

a2<br />

Figur 3.5. Tillståndsmaskin <strong>för</strong> Morsesignalering<br />

Lite generellare: Låt en mängd tillstånd a 1 , ..., a m utgöra grunden <strong>för</strong> specifikation av<br />

möjliga signaler bland S = {s 1 , ..., s n }. En tillståndsövergång, som svarar mot att en tillåten<br />

signal tillhörande en delmängd av S sänds, ger upphov till en nytt tillstånd.<br />

Då gäller följande sats (utan bevis men med exempel).<br />

v. Sats. Om b ij (s) är längden (i tid räknat) <strong>för</strong> den s:te symbolen som leder från tillstånd i<br />

till tillstånd j, så är kanalkapaciteten C = log x o , där x o är den största reella roten till<br />

(determinant)ekvationen<br />

det [ Σ s x -bij(s) - I ] = 0,<br />

där I är enhetsmatrisen och x är en fri variabel.


80<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

vi. Exempel; Morsekodning. Med ovan angiven tabell och FSM blir ekvationen<br />

− 1<br />

x<br />

−2 + x<br />

−4<br />

x<br />

−3 + x<br />

−6 x<br />

−2 + x<br />

−4<br />

−1<br />

= 0.<br />

Genom att räkna ut denna determinant med Cramers regel återfås ekvationen (3).<br />

Ett viktigt specialfall av satsen är det då alla kodord har samma längd.<br />

Ett annat specialfall erhålls om alla kodsekvenser är tillåtna.<br />

Noter<br />

Det mesta i detta kapitel härstämmar från artiklarna [Sha48] och [Sha49]. Bra böcker om<br />

informationsteori är [Bla87] och [Joh88]. Stinson [Sti85] har ett utmärkt kapitel om samma<br />

ämne.<br />

Övningar<br />

3.1. Antag att X är en heltalsvariabel som representeras med 32 bitar. Antag vidare att<br />

sannolikheten <strong>för</strong> att X ∈ [0, 255] är 1/2 och att alla värden i detta intervall är lika<br />

sannolika. X är dessutom likformigt <strong>för</strong>delad i komplementintervallet. Beräkna H(X).<br />

3.2. Låt X vara ett av följande meddelanden: a, b, c, d, e, f med<br />

p(a) = p(b) = p(c) = 1/4<br />

p(d) = 1/8<br />

p(e) = p(f) = 1/16<br />

Bestäm H(X) och gör en så bra kodning du kan av X.<br />

3.3. Visa att <strong>för</strong>, n = 2, H(X) antar maximum <strong>för</strong> p 1 = p 2 = 1/2.<br />

3.4. Visa motsvarande resultat <strong>för</strong> godtyckligt n.<br />

3.5. Visa att H(X, Y) ≤ H(X) + H(Y). När antas likhet?<br />

3.6. Visa att H(X, Y) = H(Y) + H(X | Y).<br />

3.7. Låt M stå <strong>för</strong> ett sexsiffrigt tal som chiffreras med ett skiftchiffer med en nyckel K ∈ [0,<br />

9]. Beräkna H(M), H(C), H(K), H(M | C) och H(K | C) givet att alla värden på M och K är<br />

lika sannolika.<br />

3.8. Ömsedidiga informationen kan definieras som via<br />

Visa att<br />

I(X, Y) = Σ x,y p(x, y) log [p(x | y) / p(x)].<br />

I(X, Y) = H(X) - H(X | Y).<br />

3.9. a. Bestäm H(M) då p(m i ) = 2 -i , i = 1, 2, ... . (Oändligt många utfall alltså!)<br />

b. Vilken blir medelkodordslängden <strong>för</strong> Huffmankodningen?


81<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

3.10. Antag givet ett krypto<strong>system</strong> definierat av följande matris<br />

e k (m) α β γ<br />

k 1 1 2 3<br />

k 3 3 4 1<br />

k 2 2 3 4<br />

Antag vidare att p(α) = 1/2, p(β) = 1/3 och p(γ) = 1/6 och att alla k i är lika sannolika.<br />

Beräkna H(M), H(K), H(C), H(K | C) och H(M | C).<br />

3.11. En tärning slås 10 gånger. Vilken är sannolikheten att 6 uppträder minst en gång?<br />

3.12. Bestäm entydighetslängden <strong>för</strong> ett affint chiffer och <strong>för</strong> ett permutationschiffer över<br />

block av längd d.<br />

3.13. En bridgekortlek är en mängd av 52 olika objekt som kallas kort. En bridgehand är en<br />

delmängd omfattande 13 element. En giv är en partitionering av kortleken i fyra händer.<br />

Det är möjligt att representera en bridgehand genom att tilldela varje kort en unik 6-bitskod<br />

så att ett 78-bits meddelande representerar en hand (s k 'pulse coded modulation').<br />

Visa att den inte finns någon binär representation av en godtycklig hand som använder<br />

mindre än ungefär 52 * h(1/4) = 42 bitar.<br />

3.14. a. Beräkna alfabetshastigheten R, hastigheten r och redundansen D <strong>för</strong> ett språk över M<br />

= {a, b, c, d} då p(a) = 0.5, p(b) = 0.25 och p(c) = p(d) = 0.125.<br />

b. Beräkna R, r, D över digram <strong>för</strong> samma språk om p(x, y) = 0.25 <strong>för</strong> alla x, y i M.<br />

3.15. Visa att ett affint chiffer där alla nycklar är lika sannolika ger perfekt sekretess då det<br />

tillämpas på enstaka klartextsymboler.<br />

3.16. Antag givet ett litet chiffer<strong>system</strong> med M = {1, 2, 3}, C = {0, 1, 2, 3} och K = {k 1 ,<br />

k 2 , k 3 } definierat på följande vis.<br />

e k1 (x) = x.<br />

e k2 (x) = x - 1.<br />

e k3 (x) = (1 - x) mod 4.<br />

a. Skriv ut chiffermatrisen.<br />

b. Antag att följande kryptogram observeras: 002232330. Vilken är den nyckel som använts?<br />

3.17. Bevisa att H(K | C) ≥ H(M | C) i alla chiffer<strong>system</strong>.<br />

3.18. För ett visst chiffer och <strong>för</strong> ett visst klartextspråk har man studerat nyckelekvivokationens,<br />

f = H C (K) N , beroende av längden N på de chiffer man uppfångat. Ett<br />

delresultatet är följande.<br />

N 0 5 10<br />

f 64 49 34<br />

Ange med motivering approximationer till följande kvantiteter:<br />

- Nyckelentropin H(K),<br />

- språkets redundans D,<br />

- entydighetslängden N u ,<br />

- H C (K) 15 och H C (K) 20 .


82<br />

<strong>Teori</strong> <strong>för</strong> <strong>symmetriska</strong> <strong>system</strong><br />

3.19. Beräkna H(K | C) och H(K | M, C) <strong>för</strong> ett affint chiffer.<br />

3.20. Antag att X har kardinalitet n, 2 k ≤ n < 2 k+1 och att p(x) = 1/n <strong>för</strong> alla x ∈ X.<br />

a. Gör en prefixfri kodning f av X sådan att medelkodordslängden w(f) = k + 2 - 2 k+1 /n.<br />

b. Illustrera tekniken <strong>för</strong> n = 6. Beräkna w och H(X) i detta fall.<br />

Ledning. Koda 2 k+1 - n element som strängar av längd k och resten av längd k +1.<br />

3.21. Antalet 1-bitar i en bitvektor brukar kallas Hammingvikten <strong>för</strong> vektorn. Hur många<br />

bitars information ger kunskap om Hammingvikten <strong>för</strong> en DES-nyckel?<br />

3.22. Om n är ett positivt heltal så kallas en n × n matris L = (L ij ) sådan att i varje rad och i<br />

varje kolumn varje tal i {1, ..., n} <strong>för</strong>ekommer exakt en gång <strong>för</strong> en latinsk kvadrat. Med M<br />

= C = K = {1, ..., n} kan man definiera e i (j) = L ij . Uppfyller detta chiffer perfekt sekretess?<br />

3.23. Entydighetslängder. Fyll i de utelämnade värdena i nedanstående tabell !<br />

Chiffer<br />

Entydighetslängd<br />

Caesar 1.5 ≈ log 26 / 3.2<br />

Allmän substitution<br />

Vigenere<br />

Affina<br />

Hill<br />

LFSR<br />

Rotor<br />

Data Encryption Standard<br />

Skipjack<br />

Pohlig-Hellman<br />

IDEA<br />

One time pad<br />

PKS

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!