Föreläsninsanteckningar till föreläsning 3: Entropi Johan Håstad, transkriberat av Pehr Söderman 2006-01-20 1 Entropi Entropi är, inom kryptografin, ett mått på informationsinnehållet i en slumpvariabel. Detta är ett sätt att beskriva hur många bitar som krävs, i genomsnitt, för att koda ett utfall. Det kan bland annat användas för att undersöka hur mycket information som finns i en given variabel. Låg entropi betyder att den innehåller en stor mängd redundant information. Hög entropi att informationen inte kan lagras mer kompakt. 1.1 Exempel: JH spelar bordtennis Antag att en slumpvis vald bordtennis spelare ur division 7, JH, spelar bordtennis mot Sveriges 100 bästa spelare. Varje match kan antingen sluta som vinst för JH (1) eller vinst för elitspelaren (0). Detta kan ses som en slumpvariabel med 100 bitar information. Vi vet att JH inte har särskilt stor chans att vinna matcher. Följaktligen kan vi välja följande kod för att beskriva utfallet. 0 JH förlorade alla matcher 10 <i> JH vann en match, match i {1...1} k 0 <i 1 >< i 2 >... < i k > JH vann k matcher, i 1...i k Om vi utför experimentet ett stort antalgånger kan vi anta att JH endast vinner i undantagsfall. I nästan alla fall kommer JH förlora alla matcher. Därför borde det förväntade antal bitar som krävs för att beskriva utfallet vara 1.01, för att koda det exakta resultatet i alla matcher. Vi kan se här att variabeln har låg entropi (en stor del av de 100 bitarna kommer vara 0, tal med många nollor förkommer oftare än tal med många ettor) vilket gör det relativt lätt att skapa en effektiv kodning. 1av6
1.2 Teori Antag att vi har en stokastisk variabel X som anger ett utfall. Antag vidare att X kan ha n olika värden där det i:te antas med sannolikhet p i.ivårtfall n =2 100. Då definierar vi entropin, H(X), på följande vis: H(X) = p i log p i. Entropi ska som sagt avspegla det intuitiva begreppet informationsinnehåll och då är det naturligt att om vi ser värdet av två oberoende variabler X och Y så är entropin summan av entropierna för de två variablerna. Detta är även matemtiskt sant och vi formulerar det som en sats. Sats 1 Låt X och Y vara två oberoende variabler. Då gäller H(X, Y )= H(X)+H(Y ). Bevis: Anta att X har n olika utfall med sannolikheter p i där i =1...noch att Y har m olika utfall med sannolikheter q j för j =1...m. Då har X, Y nm olika utfall som, på grund av antagandet av oberoende, har sannolikheter p i q j där 1 i n, 1 j m. Vi använder definitionen av entropi och får: m m H(X, Y )= p i q j log (p i q j )= p i q j (log p i +logq j )= m p i q j log (p i ) m p i q j log (q j ). (1) Nu vet vi att m q j =1och därmed kan första summan i (1) förenklas till m p i log (p i ) q j = p i log (p i )=H(X) ochpåsammasättsermanattandrasummanärlikamedh(y ) och därmed är satsen bevisad. Härnäst skall vi visa att H(X) log n vid n utfall av X och för att visa detta behöver vi en grundläggande egenskap hos konvexa funktioner nämligen Jensens olikhet. Kom ihåg att en funktion, f, ärkonkavomden böjer nedåt vilket är ekvivalent med f (x) < 0 för alla x. Sats 2 (Jensens olikhet) Låt f vara en konkav funktion och Y en stokastisk variabel. Då gäller E(f(Y )) f(e(y )). 2av6
Låt oss se hur vi använder denna sats. Definera en variabel Y som tar värdet 1 p i med sannolikhet p i och sätt f(x) =logx. Dåärf (x) = log 2 e och x för x>0 är värdet av f (x) strikt negativt och funktionen därmed konkav i detta område. Vi har 1 E(Y )= p i = n p i vilket ger Notera nu att E(f(Y )) = f(e(y )) = log n. p i log 1 = p i p i log p i och därmed genom att att använda Jensens olikhet får vi H(X) = p i log p i = E(f(Y )) f(e(y )) = log n. För att få likhet, H(X) =logn, måste vi ha likhet i Jensens olikhet och då log x är strikt konkav kräver detat att alla värden är lika vilket gäller ifall X är likformig över n värden. Med andra ord att sannolikheten för varje värde är identisk. Vi formulerar det som en sats. Sats 3 Om X antar n olika värden gäller H(X) log n. Likhet gäller omm X är likformigt fördelad på n värden. Låt oss slutligen nämna en sats som visar att vår intuition att entropin mäter informationsinnehåll är korrekt. Sats 4 För en optimal kodning B av X att H(X) E( B(x) ) H(X)+1, där E( B(x) ) är den förväntade längden av kodningen av ett slumpvis element x tagit enligt fördelningen X. Vi visar inte detta. Den optimal kondningen brukar kallas Huffmankodning och kan konstrueras effektivt om man känner alla sannolikheter p i.för praktiska kodningsproblem är dock vanligen sannolikheterna p i okända och dessutom är n astronomiskt stor så satsen är mest av akademeniskt intresse. 3av6
1.3 Säkerhet hos återanvända blanketter Låt oss använda vår nyvunna begrepp för att diskutera forcering av krypton. Låt oss börja med en grundläggande fråga. Vad är entropin för n bokstäver Engelsk text? Antag att c är en konstant. Låt oss betrakta följande alternativ 1. c log n? 2. c n? 3. cn? Låt oss argumentera för och emot de olika alternativen. 1. Ifall c log n var korrekt skulle en text tio gånger längre text kräva ett konstant antal ytterligare tecken att koda. Detta blir snabbt orimligt. Antag att den optimala kodningen av en text på 10000 tecken är 100 tecken kod. Då skulle en text på 100000 tecken kräva 125 tecken kod och 1000000 tecken text 150 tecken kod. Detta är orimligt. 2. Ifall c n var korrekt och en text med 100 tecken krävde 50 tecken kod skulle en text med 10000 tecken kräva 500 tecken och 1000000 tecken text skulle kräva 5000 tecken. Detta är också orimligt. 3. Säger att en dubbelt så lång text kräver (ungefär) dubbelt så lång kodning. Detta verkar rimligt och vi antar att detta är fallet. Låt oss kryptera ett antal, k meddelanden av längd n med samma blanket B. Vi får k stycken kryptotexter C 1,...C k och således i symboler har vi. K 1...K k B C 1...C k. K 1...K k oberoende engelska texter. B Blanketten. Om vi lyckas med att forcera detta har vi räknat ut B, K 1,...,K k och därmed fått H(B)+H(K 1,K 2...K k ) bitars information. Då meddelandena är oberoende är detta det samma som H(B) +kh(k). Om vi antar att vi har ett alfabet med 26 tecken (Engelska) så har vi 26 n möjliga blanketter och då alla är lika sannolika har vi H(B) =log26 n = n log 26. Så, totalt har vi n log 26 + kcn bitars information efter forceringen. Vi har fått kn tecken översända i form av C 1,...C k. De kan som högst innehålla kn log 26 bitars information vilket innebär att vi behöver: kn log 26 n log 26 + knc (2) 4av6
vilket är ekvivalent med k 1 log 26 c k Så vi behöver följaktligen veta det kritiska värdet c som är informationsmängden i ett tecken engelsk text. Om alla kombinationer av tecken vore godkända iengelskaskullec = log 26 och att inget värde på k skulle räcka för forcering. Detta visar något helt allmänt. Om klartexten är perfekt komprimerad och kryptotexten lika lång som klartexten så går kryptosystem aldrig att knäcka givet bara kryptotexten. Varje möjlig nyckel ger en klartext och i och med att den är optimalt komprimerad ger varje klartext en acceptabel text. Entropimässigt kan vi se det på följande sätt. Forcering kräver alltid att H(krypto) H(nyckel)+H(klartext). Om längden av kryptotexten är lika med längden av klartext och klartexten helt komprimerad har vi H(krypto) = H(klartext). Detta innebär att det inte går att utvinna information om nyckeln. Efter denna omväg låt oss se vad som krävs för att forcera blankchiffer med två parallella meddelanden, dvs k =2. Från (2) ser vi att vi behöver c 1 log 26 log5 vilket innebär att vi har i medeltal 5 möjligheter för nästa 2 bokstav. Det känns rimligt att det skulle vara så men det kräver en ganska avancerad språkförstålse och enkla statistiska egenskaper hos språket räcker inte. Detta kan innebära att det är svårt att göra i praktiken utan mänsklig inblanding vilket kan förklara att det finns få rapporterade experiment som verifierar det ofta förekommande påståndet att dubbelanvändning räcker för forcering av blankettschiffer. Låt oss och applicera vår metoder för att analysera Viginère forceringen. Låt oss anta att nyckeln är m tecken och kryptot km tecken långt. Vår attack på Vigenère använder sig enbart av att fördelning av bokstäverna är sned. Det fungerar precis lika bra med oberoende bokstäver med samma sannolikheter p i. Entropin hos n bokstäver genererade oberoende enligt engelsk bokstavsfördelning är 4.19n medan log 26 = 4.70. Ekvation (2) gäller även i detta fall och vi ser att vi behöver k 1 4.70 4.19, k dvs ungefär k =9och att klartexten är 9 gånger så lång som nyckeln. Vår generella attack använder inte de precisa sannolikheterna p i och därmed kommer det krävas ännu längre text. 5av6
2 Ett annat synsätt Ett alternativt argument för att entropin hos m bokstäver klartext uppför sig som cm för någon konstant c. Följande är (nästan) sant. För en snäll sannolikhetfördelning med entropi H så finns det ungefär 2 H värden alla med sannolikhet runt 2 H så att nästan alla utfall kommer från denna mängd. Med andra ord vi har ungefär 2 H typiska utfall. Låt oss uppskatta hur många typiska engelska texter av längd m det finns. Vi gör en grov underskattning. Vi antar att den genomsnittliga längden på engelska ord är sex tecken. Så vi har omkring m ord. Vi antar vidare att det finns åtminstone 2 alternativ 6 för varje ord givet texten hittills. Då har vi > 2 m 6 rimliga engelska texter av längd m. Entropin kommer att vara > log(2 m 6 ) = m, vilket ger rätt 6 storleksordning men en dålig konstant. 6av6