3 Teori för symmetriska system
3 Teori för symmetriska system
3 Teori för symmetriska system
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