Notera att skyddet avser data såväl som både maskinvara och programkod.



Relevanta dokument
Grundfrågor för kryptosystem

Kryptering HEMLIG SKRIFT SUBSTITUTION STEGANOGRAFI KRYPTOGRAFI

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller

Krypteringteknologier. Sidorna ( ) i boken

Datasäkerhet. Petter Ericson

Metoder för sekretess, integritet och autenticering

Kryptoteknik. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Kryptering. Krypteringsmetoder

Skydd för känsliga data

Att använda kryptering. Nyckelhantering och protokoll som bygger på kryptering

Kryptering. Av: Johan Westerlund Kurs: Utveckling av webbapplicationer Termin: VT2015 Lärare: Per Sahlin

NÅGOT OM KRYPTERING. Kapitel 1

Introduktion till protokoll för nätverkssäkerhet

256bit Security AB Offentligt dokument

Kryptografi: en blandning av datavetenskap, matematik och tillämpningar

Dagens agenda. Lagring & berarbetning av data. Filer och filformat Metadata Komprimering Kryptering Olika typer av data Filsystem Databaser

RSA-kryptering och primalitetstest

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Några satser ur talteorin

Protokollbeskrivning av OKI

Föreläsning 10. Grundbegrepp (1/5) Grundbegrepp (2/5) Datasäkerhet. olika former av säkerhet. Hot (threat) Svaghet (vulnerability)

Modul 3 Föreläsningsinnehåll

MA2047 Algebra och diskret matematik

Grundläggande krypto och kryptering

Kryptering & Chiffer Del 2

Kryptering. Wearable Computers D 10p. Namn: Josef Israelsson Datum: Lärare: Björne Lindberg Ulf Brydsten Lars Karlsson

Kryptografiska mekanismer och valutor

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Grundläggande kryptering & chiffer

Offentlig kryptering

Kryptografi: en blandning av datavetenskap, matematik och tillämpningar

Föreläsninsanteckningar till föreläsning 1: Introduktion

Introduktion. 1DV425 Nätverkssäkerhet. Patrik Brandt

Kryptografiska mekanismer och valutor

RIV Tekniska Anvisningar Kryptografi. Version ARK_

Föreläsning 10 Datasäkerhet grundbegrepp datasäkerhet i nätet. Säkerhet. Grundbegrepp (1/5) Modern telekommunikation

Metoder för datasäkerhet. Vad handlar en sådan kurs om???

Dagens föreläsning. Datasäkerhet. Tidig historik. Kryptografi

Krypteringstjänster. LADOK + SUNET Inkubator dagarna GU, Göteborg, 6-7 oktober Joakim Nyberg ITS Umeå universitet

Övning 6. Komprimering, kryptering, dokumentering & testning

Objektorienterad Programkonstruktion. Föreläsning 16 8 feb 2016

Den mest väsentliga skillnaden mellan

Säkerhet. Vad är det vi pratar om??

SLU Säkerhets instruktioner avseende kryptering av filer

Policy Underskriftstjänst Svensk e-legitimation

Metoder för datasäkerhet. Vad handlar en sådan kurs om???

Många företag och myndigheter sköter sina betalningar till Plusoch

Datum: Version: Författare: Christina Danielsson Senast ändrad:

Kravspecifikation Fredrik Berntsson Version 1.1

Primtal, faktorisering och RSA

PC-teknik, 5 p LABORATION ASSEMBLERINTRODUKTION

Föreläsninsanteckningar till föreläsning 3: Entropi

Datasäkerhet. Informationsteknologi sommarkurs 5p, Agenda. Slideset 10. Hot mot datorsystem. Datorsäkerhet viktigare och viktigare.

Dölja brott med datorns hjälp

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

MATEMATIK I SÄKERHETENS TJÄNST OM KODNING OCH KRYPTERING 1

KRYPTERING - MÖJLIGHET ELLER OMÖJLIGHET. Carl Önne carl.onne@certezza.net

Direktkoppling till Girolink Internet. Filöverföring av betalningar och betalningsinformation via Girolink Internet. Version 1.0

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Uppsala Universitet Matematiska Institutionen Thomas Erlandsson

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009

Säkerhetsbrister & intrång

Datastrukturer. föreläsning 6. Maps 1

Multipel tilldelning. Introduktion till programmering D0009E. Föreläsning 6: Iteration. while-satsen. Kom ihåg. Snurror kontra rekursion

Datasäkerhet och integritet

Informationssäkerhet - en översikt. Louise Yngström, DSV

Övning 6 - Tillämpad datalogi 2012

Transportstyrelsens föreskrifter om hantering av krypteringsnycklar och certifikat för tillverkning av digitala färdskrivare;

DNSSec. Garanterar ett säkert internet

Säkerhet. Olika former av säkerhet (företagsperspektiv [1])

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

Hot mot nyckelhantering i DNSSEC och lite om hur man undviker dem. Anne-Marie Eklund Löwinder Kvalitets- och säkerhetschef

Definitionsmängd, urbild, domän

ÄNDLIGT OCH OÄNDLIGT AVSNITT 4

International Olympiad in Informatics July 2011, Pattaya City, Thailand Tävlingsuppgifter Dag 2 Svenska 1.3. Papegojor

TANA17 Matematiska beräkningar med Matlab

Diskret matematik, lektion 2

F5 Introduktion till digitalteknik

Utdrag från Verklighetens Kvadratrötter: Sida 1 en bok om matematikens användningsområden skriven av Marcus Näslund. Mer info:

Vinjetter TDDC91 Datastrukturer och algoritmer

Aritmetisk kodning. F (0) = 0 Exempel: A = {1, 2, 3} k=1. Källkodning fö 5 p.1/12

repetitionskoder blockkoder Felrättande koder

TDDI16: Datastrukturer och algoritmer

Välkommen till en översikt av...

Moderna krypteringssystem

Vad man vill kunna göra. Lagra och skicka krypterad information Säkerställa att information inte manipuleras Signera sådant som man står för

Elektroniska signaturer - säker identifiering?

Försöksnomineringssystem 2013

Chapter 3: Using Classes and Objects

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Övningshäfte 3: Funktioner och relationer

Att forcera Caesar-krypto är inte så svårt. Antalet möjliga nycklar är bara

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

En introduktion till några klassiska chiffer

DD1320 Tillämpad datalogi. Lösnings-skiss till tentamen

Lösning till tentamensskrivning i Diskret Matematik för CINTE, CL2 och Media 1, SF1610 och 5B1118, onsdagen den 17 augusti 2011, kl

Transkript:

1 1 C. F. Gauss. Upptäckter är resultatet av planmässigt famlande. 1.1 Datasäkerhet En önskvärd egenskap vid databehandling är pålitlighet. Ett delmål av detta är datasäkerhet. Funktioner för detta ändamål är betingade av minst två orsaker. Alla system är behäftade med oavsiktliga felaktigheter och brukare vill ibland försöka tillförskansa sig tjänster utöver de ramar som tilldelats eller köpts. Det är inom denna referensram som ämnet datasäkerhet kan ses. Notera att skyddet avser data såväl som både maskinvara och programkod. Datorer byggdes en gång i tiden för att "knäcka koder" som framställdes mekaniskt. Här kan nämnas t ex Alan Turings insatser. Den bästa källan rörande kryptohistoria fram till andra världskriget är David Kahns bok The Codebreakers. I och med datorsystems allmänna användbarhet har de kommit att utnyttjas för sådan databehandling som kräver skydd. Kryptologin eller läran om chiffersystem har kommit till heders igen. Säkerhet, informationskrig och kryptologi kan ses ur flera synvinklar. Ronald Rivest har skrivit att "Cryptography is about communication in the presence of an adversary", Dorothy Denning betraktar 'information warefare' ur dels en defensiv och dels en offensiv synvinkel; där den offensiva går ut på att t ex reducera integriteten, medan den defensiva strategin är att öka den. Dieter Gollman, för att ta ett tredje exempel, framhåller att säkerhet handlar om att skydda tillgångar. Ett gemensamt drag i alla dessa karakteristika är att minst två parter är involverade. Not. Spelets huvudpersoner brukar kallas A och B (eller Alice och Bob; författaren har förgäves försökt lansera de svenska namnen Agneta och Berit). Vid sidan förekommer opponenter, inkräktare, verifierare, pålitliga individer, m fl: Något nedslagen avstår jag från att standardisera namn som Caroline, Dorothy, Ewa,.... 1.1.1 Systemtjänster Några mål/tjänster som man vill uppnå är följande. De är delvis angivna av ISO:s säkerhetsaddendum till OSI-modellen. De avser visserligen primärt och specifikt datornät, men kan ju också ses generellare. i. Konfidentialitet (sekretess, 'secrecy') Vissa data/viss information skulle om den kom i orätta händer förorsaka allt ifrån mindre missnöje till katastrof. Dessa sekretessaspekter på säkerhet berör också det som på svenska lite felaktigt kallas den "personliga integriteten". Den klassiska metoden för detta är kryptografin, som ofta behövs som komplement till åtkomstkontroll, tex vid kommunikation över öppna medier. Begreppet kan illustreras med följande skiss. C erhåller genom intrång budskapet från A ämnat endast för B. A ok, dear A C ok, dear A B Figur 1.1. Avsteg från konfidentialitet

2 ii. Autenticitet (äkthet) Denna äkthetsfråga finns enligt ISO i två skepnader. a. Den första, 'peer entity authentication', brukar vanligen kallas identifiering och kan illustreras av följande scenario. C maskerar sig som A. Detta mål kan också avse ömsesidig identifiering. Är det du A? A C Javisst! B Figur 1.2. Avsaknad av autenticitet b. Den andra aspektens, 'data origin authentication', betydelse kan illustreras så här. Det är skikt n som ska ge denna service till skikt n+1 enligt ISO. Identitet är här kopplat till ett meddelande. En alternativbenämning är 'message authenticity'. A ok, dear A C ok, dear C B Figur 1.3. Felaktig datakälla I båda fallen är det alltså tal om att verifiera identiteter. Eftersom rättigheter att utnyttja systemresurser, att se information och att förändra system ofta förknippas med identiteter (processnamn, person etc) är subjektidentifiering av central roll. Många speciella identifikationsmetoder har utvecklats för exempelvis s k smarta kort. iii. Integritet (helhet; jfr 'integer' = heltal och integral) Här avses förmågan hos ett system att hålla meddelandet som sådant helt eller oförvanskat. a. Borttappade, mångfaldigade eller förändrade meddelanden ska inte få förekomma. En s k 'active wiretapping' bör förhindras. ok, dear no, sorry A C B Figur 1.4. Meddelandeintegritet saknas Ibland, t ex i USA som inte är så ISO-orienterat, används benämningen 'authenticity' även för denna tjänst. b. För att skydda sig mot oavsiktliga förvrängningar kan snabbare metoder användas än då intrånget är avsiktligt; t ex 'cyclic redundancy checks', CRC eller Hammingkoder. Dessa koder är emellertid helt försvarslösa mot aktiva intrång. Metoder för att uppfylla integritet är alltså olika beroende på om förvanskningen härleds från oavsiktliga ("naturfenomen") respektive avsiktliga ("kulturfenomen") ingrepp. iv. Åtkomstkontroll ('access control', 'protection') Denna tjänst reglerar tillåtna operationer relaterade till par av subjekt och objekt. Begreppet åtkomstkontroll står också för en mekanism. I dessa anteckningar delas mekanismerna in i objektskydd ('discretionary protection') och informationsflödeskontroll (oftast 'mandatory' och 'multi-level').

3 read (B) O A no, no! S B Figur 1.5. Åtkomstkontroll 'Discretionary' betyder att det är användaren som avgör åtkomstpolicyn; jfr filsystem, medan i fallet 'mandatory' det är systemadminstrationen som gör det. 'Multi level' innebär att bl a fler rangordnade behörighetsgrupper är inblandade. v. Icke-förnekbarhet ('non-repudiation') Ett avsänt meddelande eller ett resursutnyttjande från ett subjekt (process) bör inte senare kunna "bortförklaras". Ömsesidig trovärdighet är önskvärd. Här kommer s k digitala signaturer väl till pass. Följande ska alltså inte kunna förekomma. En variant är att inte kunna förneka sin signatur (s k 'undeniable signatures'). A ok, dear A det sa jag inte! A??? B Figur 1.6. Förnekande av utsaga vi. Anonymitet. Vid användande av elektroniska medel för t ex betalningar eller röstning vill avsändaren ofta vara anonym. I andra tillämpningar anonymiteten vara vital för mottagaren eller så kan den omfatta hela kommunikationen. Fullständig anonymitet är dock inte alltid önskvärd; jfr "det perfekta brottet". Se ovanstående som ett sätt att indela målen i; det finns förvisso andra. Man kan notera att många av dessa tjänster sällan eller aldrig kan uppfyllas ovillkorligt; man förtröstar då i stället på att en "inkräktares" bearbetningsprocess kräver så mycket tid och/eller minne att systemet ändå uppfyller de mål som A och B önskar. 1.1.2 Frågeställningar Här är ett antal konkreta exempel på osäkerhet i datorsystem. i. Användande av system där någon annan är in-loggad: Här fungerar inte autenticeringen. Många gånger har en användare anlänt till en terminal eller arbetsstation som lämnats av en företrädare med ett program som simulerar den vanliga inloggningssekvensen i syfte att samla in par av användaridentiteter och lösenord. ii. Forcering av lösenord. Symptom på samma sjukdom. Lösenord allena ger svag identifiering. En förskräckande liten andel utgörs av "rimliga" lösenord i verkliga system. Detta förklarar förhållandet att så enkla program som crack kan fylla en funktion för vissa. Det är vidare olämpligt att sända lösenord, betalkortsnuummer eller pin-koder i klartext över publika nät. iii. Genomläsning ('browsing') av gammalt minnesinnehåll: Att detta lyckas beror på att åtkomstkontrollen inte är korrekt implementerad. Återanvändning ('object reuse') tycks kräva korrekt initiering; radering, nollställning; skriv 0-or/1-or slumpmässigt många gånger på disk/band! En lite speciell risk ligger i att många system "dumpar" minnesinnehåll före en "krash". Om "dumparean" kan läsas av obehöriga efter återstart kan alltså tidigare skyddad information, t ex krypteringsnycklar, avslöjas.

4 iv. Avlyssning. Detta är oftast möjlig på kommunikationskanaler. Det är dock möjligt att via kryptering skydda information även om data är åtkomligt för avlyssnaren. Avlyssningen kan vara passiv ('eavesdropping') eller aktiv ('tampering'). En aktiv avlyssning innebär att informationsutvinningen paras med modifikation. Forcering av chiffer är dessutom inte sällan möjlig. v. Fall-luckefunktioner ('trap doors'). Oavsiktligt tillgänglig sidoinformation om t ex alternativa 'entry'-punkter i program eller annan "sidoinformation" kan utnyttjas för att komma förbi åtkomstspärrar. Vid t ex systemanrop utgör operativsystems begränsningar vid validering av parametrar en uppenbar risk. vi. Trojanska hästar. Programdelar som vid sidan av väl specificerad eller dokumenterad funktion även, för att kringgå systemets normala åtkomstkontroller, utnyttjar det faktum att de instansieras i ett "lånat" kontext med felaktiga (för stora) åtkomsträttigheter. En inplanterad falsk editor kan lätt läcka textfiler. Frågeställningen är relevant vid studiet och användandet av mobila agenter. vii.virus, maskar och bakterier. Populära namn på program som innehåller trojanska hästar. De genererar kopior av sig själva och sprids ofta via oskyddade kommunikationskanaler inklusive lånade disketter och dåligt skyddade persondatorer eller t o m ännu mer indirekt via "infekterade" kompilatorer, editorer, &c. Den 15 augusti 1989 kände man till ca 75 olika virus för PC-världen och cirka 25 för Macintosh. Maskar emanerade ursprungligen genom försök att åstadkomma god lastbalansering i lokala nät! Här är några förslag på definitioner: Definition # Virus Mask 1 Malign Benign 2 "Lever i" andra program Fristående programdelar 3 Sprids exponentiellt Vandrar från punkt till punkt Tabell 1.1 Virus och maskar viii. Exempel Följande utgör två konkreta exempel på vad som hänt i datorsystem. - En student lade in en trojansk häst i sin lab-lösning. Läraren provkörde och fick sin fil med kommande tentamensfrågor läst; ett s k kontextfel. - En lärare skapade en "jättearray" för en process, "glömde" att initiera den, och förutsåg att OS inte raderade innehållet i det virtuella minnet före allokeringen. Utskrift av denna array gav ny och intressant information. ix. En taxonomi. C. Landwehr et al har publicerat följande taxonomi om säkerhetsfels ursprung. (ταξοσ = ordning, νοµοσ = lag.) Tabell 1.2. Jag hänvisar till artikeln för en diskussion om dessa fel och om system där dessa fel hittats. Som komplement till denna "ursprungsklassificering" fortsätter författarna med en analys av platsen i system för felen. Inte överraskande finner de att programvaran och speciellt operativsystemen är de platser där de flesta felen sker. Vidare konstateras att felen oftast har sitt ursprung i utvecklingsfasen, speciellt vid specifikationen. En slutsats som kan dras är att säkerhet och tillförlitlighet är ömsesidigt beroende.

5 Säkerhetsfel Avsiktliga Oavsiktliga Förstörande Bevarande Valideringsfel Kontextfel Synkroniseringsfel Resursfel Autenticeringsfel Övriga Trojansk häst Logisk bomb Covert channel Diverse Argument P(S) utan V(S) Baklås Jag är inte jag Pekare i C Mot finare indelning Replikerbar Icke replikerbar Tidskanal Minneskanal Virus Fallucka. Tabell 1.2 En "fel"taxonomi 1.1.3 Medel för åtkomstkontroll Det är vanligt att medel, liksom i andra sammanhang t ex processhantering och minneshantering i samband med operativsystem, delas in i 'policies' och mekanismer. De förra specificerar vad man vill åstadkomma, de senare hur detta realiseras. 'Policies' bygger på principer som - "minsta möjliga rättigheter" för användare, d v s små skyddsdomäner, - enkla och verifierbara mekanismer, - "öppen" konstruktion, - fullständigt utnyttjande, - separation av ansvar och - psykologisk acceptans. Mekanismerna sägs företrädesvis vara snabba, penetrerande och öppna. - Snabba: Annars använder inga dem. - Penetrerande: Annars är det lätt att gå förbi dem. - Öppna: Annars har vi glömt att programvara har en benägenhet att spridas. Åtkomstpolicies kan klassificeras som - 'Mandatory access control' (MAC): Rättigheter åsätts oberoende av subjektens aktiviteter: av systemadministratören. Eftersom sådana kontroller (oftast) bygger på etikettering av information så är integritetsfrågan för sådana etiketter viktig. Etiketterna ordnas ofta i fler nivåer t ex i ett lattice; man talar då om 'multi level security', MLS. - 'Discretionary access control' (DAC): Rättigheter kan sättas efter subjektens gottfinnande. Detta är normalt vad som sker i filsystem där användarna på eget bevåg sätter rättigheter för sina filer och kataloger i s k 'access control lists' (ACL). Sid- och segmentdeskriptorer för minnesskydd klassas också som DAC eftersom rättigheterna däri tillkommer via kompileringar på användarnas uppdrag.

6 Återanvändning ('object reuse') av minne måste beaktas: Radering av gamla data är nödvändig före reallokering. En filradering som normalt katalogiseras med en bit i en katalog är ibland otillräcklig: Här rekommenderas i stället upprepade faktiska överskrivningar med slumpbitmönster. I ett (virtuellt) minne bör man kunna vara övertygad om att det minne man själv använt "suddas ut" innan en annan användare allokerar detta block. DAC och MAC är centrala begrepp i US DoDs 'trusted computer system evaluation criteria', TCSEC som alltså är ytterligare en "säkerhetsmodell". 1.1.4 Mekanismer; översikt De vanligaste mekanismerna/teknikerna som används för att åstadkomma säkerhet i datorsystem är följande. Det finns kanske fler. i. Direkt åtkomstkontroll (Minnesskydd, 'protection'). Läs-, skriv- m fl rättigheter för subjekt till objekt. De helt dominerande teknikerna utgörs av kontroll av rättigheter till sidor och filer via sidtabeller respektive filkataloger, som ibland kallas 'capability lists' (CL) respektive 'access control lists' (ACL). De förra är arrangeras så att det för varje subjekt anges tillhörande rättigheter till objekt, medan i andra fallet det för varje objekt anges vilka subjekt som har rättigheter till objektet. ii. Informationsflödeskontroll. 'Mandatory access control' för att reglera hur information tillåts spridas. Ett svårhanterligt problem är här de s k 'covert channels'; informationsbärande kanaler som uppstår oavsiktligt. Att ett program för vissa indata går in i en oändlig slinga är ett tecken på en oplanerad kanal som överför en bits information (minst). iii. Kryptografi och chiffer. Kan användas för att skydda data med avseende på konfidentialitet. Tekniken bygger på att data må vara tillgängliga för avlyssning (passiv eller aktiv (= avlyssning med modifiering)), men att informationen inte gör det. Informationen transformeras så att endast den rättmätiga mottagaren kan återvinna denna ur observerade data med hjälp av nycklar. iv. Digitala signaturer. Används för att åstadkomma avsändarautenticitet (och därmed implicit även integritet) och 'non-repudiation'. Realiseras ofta via kryptobaserade funktioner. De är motsvarighten till handskrivna signaturer, med den viktiga skillnaden att de är beroende av såväl meddelandet som avsändaren, för att i en automatiserad värld användas för att bestyrka äktheten hos ett elektroniskt dokument. v. Identifieringsmetoder utgår från "personnummer" lagrade på smarta kort och bygger på kryptografiska protokoll mellan dessa kort och datorsystem i akt och mening att undvika att skicka lösenord edyl i klartext över befarat avlyssnade nät. Senare beskrivs skillnader mellan dessa och digitala signaturer. vi. Felkorrigerande koder (redundans, återhämtning) och autenticeringskoder. För att säkerställa integritet i samband med avsiktliga eller oavsiktliga felaktigheter vid lagring eller kommunikation av information; kallas MAC ('message authentication codes') i de fall då de är nyckelbaserade och MDC ('modification detection codes') i de fall då de är framställda utan nyckel. vii. Kompaktering och 'hashing'. En teknik i grunden avsedd för helt andra ändamål (sparande av utrymme eller tabellhantering) som ofta utnyttjas tillsammans med kryptografi. Många chiffer blir starkare om det underliggande klartextspråket framställs med minskad redundans genom eliminering av överflödiga bitar och de flesta signaturmetoderna bygger på att meddelanden 'hash'-as. Skillnaden mellan kompaktering och kompression ligger i att kompakterade data kan återskpas medan kompaktering förstör information. viii. Inferenskontroll för att förhindra utvinnande av information ur statistiska databaser. Ett 'query'-villkor som uppfylls av en (1) individ kan utnyttjas för att undersöka om denna har ytterligare katalogiserade attribut trots att de bör betraktas som konfidentiella.

7 ix. Slumptalsgenerering. För många chiffer behövs slumptal med speciell karakteristik; t ex för nycklar. Området har därför blivit ett viktigt delområde av kryptologin också. x. Kryptobaserade protokoll varav en del bygger på s k 'zero-knowledge'. xi. Steganografi. Detta är en process som döljer det verkliga meddelandet i "brus". Exempel utgörs av akrostikon, ändring i insignifikanta bildpunkter, osynligt bäck, &c. Metoden anses av goda skäl inte allmänt pålitlig. 1.2 Kryptologi i. Allmänt. Kryptologin (λογοσ = ord) som studieområde kan uppdelas i konstruktion av chiffer och forcering av sådana; kryptografi respektive kryptoanalys. Krypto kommer från grekiskans κρψπτοσ som betyder dold eller hemlig. Grafi härleds från grekiskans γραφια som betyder skrift. Data som sänds över kanaler som kan avlyssnas eller modifieras kan inte skyddas via vanliga åtkomstkontrolltekniker som baseras på läs/skrivrättigheter. Informationen kan däremot skyddas genom att den kodas så att motsvarande data blir obegripliga ('secrecy') eller så att modifikationer av data kan upptäckas eller korrigeras ('integrity'). En sådan kodning kallas ett chiffer (fr. chiffre, siffra av arabiska sifr, nolla). Det är en avbildning från en mängd klartexter till en mängd kryptogram. Informationen chiffreras (krypteras) på ena sidan innan den sänds och dechiffreras (dekrypteras) på mottagande sidan innan den vidarebehandlas. Chiffer antas vanligen bygga på kända (öppna) algoritmer. Konfidentialitet eller integritet och autenticitet säkerställs genom att en chifferparameter (nyckel) k hålls privat. Ett chiffer betraktas vanligen som en funktion som avbildar klartexter till kryptogram. Som vanligt sammanblandas ofta funktionen med funktionsvärdet så att kryptogram också kallas chiffer. Givet en klartextmängd {m} och en kryptogram/chiffermängd {c} kan ett chiffersystem ses som en mängd av transformationer {e k, d k } sådana att c = e k (m) m = d k (c) Sambandet d k e k = I (= enhetstransformationen) gäller alltså alltid. Observera att e alltså måste vara en injektiv (1-1-) funktion för varje k. Figur 1.7 visar ett kryptosystem i bildform. Figuren antyder att kryptografernas motspelare heter forcörer eller ibland också kryptoanalytiker. En sådan har i uppgift att härleda m eller k eller approximationer (m', k') av dessa utan att känna till nyckeln k. En kryptoforcör Chiffrering F m' Dechiffrering m c m e d k Kanal för distribution av k Figur 1.7. Ett kryptosystem

8 ii. Definition. Några önskvärda egenskaper hos chiffer framgår av följande tabell. Önskemål 2 utgår från förhållandet att krypteringsprogram svårligen kan bevaras privata. Det brukar kallas Kerkhoffs princip efter 1800-talsprofessorn Jean Guillaume Hubert Victor Francois Alexandre Auguste Kerkhoff von Niewenhof (1835-1903), som i sin bok La Cryptographie militaire postulerat följande desiderata. K1. The system should be, if not theoretically unbreakable, unbreakable in practice. K2. Compromise of the system should not inconvenience the correspondents. K3. The method for choosing the particular member (key) of the cryptographic system to be used should be easy to memorize and change. K4. Ciphertext should be transmittable by telegraph. K5. The apparatus should be portable. K6. Use of the system should not require a long list of rules or mental strain. En definition av ett (block-) kryptosystem ges i tabell 1.4. Observera att punkten 3.b. i tabellen nedan måste tas med en nypa salt: Beroende på det underliggande språket kan det mycket väl vara så att varje c' ger upphov till ett meningsfullt meddelande. Detta kan t ex vara fallet om slumpmässiga nycklar eller andra slumpelement chiffreras. För att erhålla integritet i sådana fall måste andra metoder tillämpas. Konfidentialitet och integritet är oberoende begrepp! 1. Funktionerna e k och d k måste, givet k, kunna beräknas snabbt. 2. Algoritmerna e och d förutsätts vara öppet tillgängliga. 3. Det ska vara svårt att utan att veta k systematiskt beräkna a. för konfidentialitet - d k från c även om motsvarande m är känt. - klartexten m från c. b. för integritet/autenticitet - e k från c även om visst m är känt. - ett c' så att d k (c') utgör ett meningsfullt meddelande. Tabell 1.3. Önskemål för kryptosystem D E F I N I T I O N Ett kryptosystem är en quintipel <M, C, K, E, D>, där 1. M är ett klartextalfabet (en ändlig mängd) 2. C är ett chifferalfabet 3. K är ett nyckelalfabet 4. För varje k K finns ett e k E och ett motsvarande d k D, så att d k (e k (m)) = m, för alla m M. Tabell 1.4. Definition av kryptosystem; blockchiffer

9 Om avsändaren vill skicka en sträng m = m 1... m n, m j M, m M *, kan transformationen e k utvidgas för att ge c = c 1... c n på följande sätt: c i = e k (m i ) m i = d k (c i ). Om kardinaliteten hos alfabetet är "stor" och nyckeln återanvänds som ovan brukar chiffret kallas ett blockchiffer. Mängden M kan t ex vara {0, 1}, {0,..., 7}, {a,..., z}, {0,..., 2 64-1}, {0, 1,..., 2 1024-1} eller mängden av ord i ett lexikon. I praktiken är de förstås bitsträngar. 1.3 Symmetriska system I de klassiska (symmetriska) systemen är nyckeln k för e och d densamma, eller så kan den andra nyckeln beräknas trivialt ur den första. Så gott som alla chiffer bygger på upprepade substitutioner och permutationer. En permutation är en bijektion (en funktion som är 1-1 och 'onto') från en mängd M till M. En substitution är en 1-1-funktion som ersätter en symbol (eller en sekvens av symboler) med andra symboler (eller sekvenser av symboler). Det enklast tänkbara chiffret är det s k Caesarchiffret, som innebär att klartextens bokstäver substitueras en efter en genom ett alfabetiskt skift tre steg (a d,..., z c). På formelspråk skrivs alltså e k=3 : m char ((ord(m) + 3) mod 26). Två typer av chiffer är vanliga; blockchiffer och flödeschiffer ('stream ciphers'). En intressant reflexion är den att flödeschiffer länge synes ha varit populära i Europa, medan blockchiffer är och har varit populärast i USA. 1.3.1 Blockchiffer i. Exempel. En standardalgoritm (en ANSI- och FIPS-standard från 1977 giltig fram till 1998 (?)) kallas DES eller 'Data Encryption Standard'. I denna chiffreras 64-bits block med en 56-bits nyckel via 33 (sic!) permutationer och substitutioner. 64 m DES k 56 64 c Figur 1.8. DES Ett meddelande delas inledningsvis upp i 64-bits block. Samma nyckel kan användas för flera block. Denna tillämpning av DES (eller ett annat blockchiffer) kallas vanligen 'electronic code book'; ECB. Efterföljaren till DES, som kommer att kallas Advanced Encryption Standard och offentligöras under år 2000, AES, arbetar med blocklängden 128 bits och med alternativ nyckellängd 128, 192 eller 256 bits. I skrivande stund utvärderas 5 kandidater för AES. Ryssland har även en blockchifferstandard. Den innefattas i paketet ΓΟΣΤ. Det chiffrerar 64 bitars block med en 256 bitars nyckel. Andra populära chiffer heter IDEA, RC5 och Blowfish. De två senare har 1998 vidareutvecklats till RC6 respektive Twofish.

10 ii. 'Cipher block chaining'. För att undvika att lika klartextblock resulterar i lika chifferblock, vilket är ett problem i fil- och databassystem, kan en algoritm som t ex DES tillämpas för att framställa "kedjade" chifferblock. Metoden kallas CBC, 'cipher block chaining': c i = DES k (m i xor c i-1 ). Uttrycket a xor b skrivs ibland a b eller (a + b) mod 2. Om operanderna omfattar mer än en bit definieras operationen som bitvisa 'exclusive or'. Processen inleds med ett valt c 0 = IV, initialvektor, som ibland kallas 'seed' eller frö. IV ska väljas slumpmässigt och på nytt för varje chiffrering. Dechiffreringen blir m i = DES -1 k (c i ) xor c i-1, så att det näst sista chifferblocket måste kommas ihåg på mottagarsidan såväl som på sändarsidan. Metoden kan (delvis) beskrivas med följande figur. CBC Register m xor e c Figur 1.9. CBC iii. MAC. Sista chifferblocket blir funktionellt beroende av alla klartextblock och kan därför också tjäna som kryptografisk checksumma (kallas vanligen 'message authentication code' eller MAC), så att (vissa) överföringsfel kan upptäckas (integritetsaspekten). En sådan checksumma kallas förstås en CBC-MAC. Avsändarem av ett meddelande x bildar y = MAC(x) och skickar paret <x, y> till B. B återberäknar nu MAC(x) = y' och accepterar x som äkta precis då y = y'. Att finna bra MACalgoritmer är minst lika svårt som att finna goda chiffer. Initialvärdet c 0 = 0 används eftersom konfidentialitet inte är en fråga av vikt här. Skillnaden mellan en MAC och en "kompression", t ex via en 'hash'-funktion är att en MAC är baserad på en (privat) nyckel. Ibland kallas ett 'hash'-värde framställt utan nyckel för en 'modification detection code'; MDC. Om både konfidentialitet och integritet är önskvärt används en nyckel för det ena och en annan oberoende nyckel för det andra ändamålet. Två alternativ är möjliga:

11 <e k (m), MAC k' (m)> <e k (m, MAC k' ((m))> Observera att det inte går att klara sig med bara en transformation för båda ändamål: MACvärdet skulle bli e k (0) oberoende av klartexten. Observera också att kryptering allena inte ger någon garanti för integritet: I ECB-modus kan block omordnas utan att mottagaren upptäcker det, vid kryptering av slumptal, t ex nycklar, är mottagaren oförmögen att upptäcka en modifikation, &c. 1.3.2 Flödeschiffer En annan typ av symmetriska chiffer är de s k flödeschiffren. i. Allmänt. Nästan alla sådana chiffer fungerar enligt följande mall: Klartexten m = m 1 m 2... krypteras bitvis eller teckenvis till c = c 1 c 2... via c i = m i xor z i, med en ny nyckel z i för varje m i, åtminstone upp till ett visst i, efter vilket vanligen nyckelsekvensen repeteras. Följande tabell 1.5 definierar. D E F I N I T I O Ett flödeskryptosystem är en sextupel <M, C, K, E, D, F>, där 1. M är ett klartextalfabet (en ändlig mängd) 2. C är ett chifferalfabet 3. K är ett (bas)nyckelalfabet 4. Z är ett nyckelströmalfabet 5. F är en nyckelgenerator F = (f 1, f 2,...) f i : K M i-1 Z, vars uppgift är att ge nya nycklar z Z, för varje kryptering/dekryptering. 6. För varje z Z finns ett e z E och ett motsvarande d z D, så att d z (e z (m)) = m, för alla m M. N Tabell 1.5. Flödeskrypton Ofta blir z-sekvensen periodisk med period, säg, d. Det är en smaksak om man då vill kalla detta ett flödeschiffer eller ett blockchiffer med blockstorlek d (åtminstone om d är "litet"). Ett blockchiffer kan betraktas som ett specialfall av ett flödeschiffer; sätt z = K = konstant. ii. 'One time pad'. Bland de klassiska chiffren återfinns det sk 'one time pad', OTP, som är det enda teoretiskt oforcerbara chiffer man känner till. Detta bevisas i kapitel senare.

12 Definition. I detta är nyckelsekvensen {z i } en icke-repetitiv slumpföljd (minst lika lång som m) som alltså används bara en gång. Observation 1. Ingen information (statistik) om m överförs därför till c och forcörens uppgift är omöjlig. För varje givet chiffer är varje klartext lika möjlig/sannolik. Observation 2. Sannolikheten p(c = m xor z) = 1 / 2 n, för alla m och c av längd n. Nyckelhanteringen blir emellertid ett svårt problem varför approximationer till 'one time pad' oftast används. Vissa slumptalsgeneratorer eller ett blockchiffer kan då användas för att generera {z i }. Flödeschiffer är bra för tillämpningar där data inte kan buffras i block, t ex vid satellitkommunikation eller vid telefoni. Flödeschiffer indelas i två kategorier; synkrona och självsynkrona. iii. I synkrona flödeschiffer härleds nyckelsekvensen oberoende av klartextsymbolerna. Ett exempel är följande. - 'Output block feedback mode' (OFB): Ett initialvärde transformeras via ett blockchiffer. Ur resultatet plockas en bit/byte (kallas 1- respektive 8-bits OFB) ut som [ny] nyckelsymbol, varefter utdata från blockchiffret återkopplas och blir nytt indata till nästa transformation för nästa nyckelsymbol: c i = m i xor z i, z i = e k (z i-1 ). Lite allmännare kan ett synkront flödeschiffer beskrivas av ett initialtillstånd σ 0, en nästatillstånds-funktion f, en nyckelgenerator g och en utdatafunktion h via σ i+1 = f(σ i, k) z i = g(σ i, k) c i = h(z i, m i ) iv. I självsynkroniserande (eller asynkrona) flödeschiffer härleds nyckelsekvensen ur en begränsad mängd av föregående chiffersymboler; sådana chiffer kallas därför ibland autoklavsystem. Ett exempel är följande. - 'Cipher feedback mode' (CFB): Detta liknar lite grand OFB i så måtto att ett blockchiffer används. Indata till detta utgörs denna gång av ett skiftregister med givet initialvärde. Från utdata omhändertas en bit/byte som [ny] nyckelsymbol och resten kastas. I detta fall återkopplas emellertid erhållet chiffer c = m xor z till skiftregistret: c i = m i xor z i, z i = e k (c i-1 ). Lite allmännare kan ett asynkront flödeschiffer beskrivas av ett initialtillstånd σ 0, en nästatillstånds-funktion f, en nyckelgenerator g och en utdatafunktion h via

13 σ i+1 = <c i-t,..., c i-1 > z i = g(σ i, k) c i = h(z i, m i ) De flesta enkla pseudoslumptalsgeneratorer avsedda t ex för simuleringar, t ex x i+1 = ax i + b mod n är olämpliga eftersom nyckelsekvensen x i bestäms av bara tre kvantiteter (a, b och n), som om de kan härledas av forcören gör chiffret obrukbart. En pseudo-slumptalsgenerator bör, intuitivt uttryckt, vara sådan att det är beräkningsmässigt ogenomförbart att i "polynomiell tid" skilja dess utdata från en sann slumptalsgenerator. Följande figur 1.10 visar OFB och CFB. OFB Register CFB Register skift e e leftmost bits m xor c m xor c Figur 1.10. Några vanliga flödeschiffer v. Anmärkningar. 1. Både OFB och CFB kan användas för att ge blockchiffer. Då återkopplas hela utdatablocket från respektive e k. 2. CFB kan också användas för att skapa MAC: Här väljs startvektorn som m 1, forma därefter n - 1 chiffer c 1,..., c n-1 och sätt slutligen MAC = e K (c n-1 ). Det går att visa att denna MAC blir densamma som man erhåller med hjälp av CBC och IV = 0. 1.3.3 Några jämförelser Om snabbhet och enkelhet är det viktigaste är ECB vårt val. Men p g a svagheter vid upprepade klartexter och att ECB-modus är den enklaste att forcera så: "Var försiktig". ECB rekommenderas inte för användning vid godtyckliga klartexter. Däremot kan ECB väl användas t ex för att kryptera nycklar (Jo, det behövs faktiskt ibland). För normala klartexter använd alltså CBC, CFB eller OFB. CBC är sannolikt bäst för att kryptera filer. För att kryptera (8-bits) teckensträngar där varje tecken hanteras separat rekommenderas CFB.

14 OFB rekommenderas för felbenägna medier och används ofta för höghastighetskommunikation över synkrona medier och för tillämpningar där felutbredning inte kan tolereras. Blockchiffer lämpar sig bättre än flödeschiffer för programvaruimplementeringar. Analogt är flödeschiffer effektivt implementerbara i maskinvara. CBC har ringa felfortplantning: Om c i mottas med överföringsfel så kommer bara m i och m i+1 att bli fel efter dekryptering; inte m i+2 och framåt. Vid OFB ger ett bitfel i c bara ett bitfel i m efter dekryptering. Observera också att {z i } kan beräknas innan klartexten föreligger. Detta kan också vara en nackdel: Genom att ändra c i kan m i lätt manipuleras. OFB rekommenderas inte allmänt för "små" block. En variant av OFB är "räknaremetoden" CM ('counter method'), där nyckeln definieras som z i = e k (i + IV), där IV = en startvektor. Ett visst z i kan beräknas utan att z i-1, z i-2,... behövs. En variant till CBC är PCBC ('propagating cipher block chaining'). Den sprider bitfel för att lättare upptäcka transmissionsfel. Definitionen kan skrivas c i = e k (m i xor m i-1 xor c i-1 ). Vad blir dechiffreringen? Metoden togs fram för att kunna göra chiffrering och MAC-bildande samtidigt. Om två chifferblock kastas om så blir dekrypteringen förstås fel, men MAC oförändrad och felet går oupptäckt för mottagaren. Den rekommenderas därför sällan. 1.3.4. Randomiserade xor-blockchiffer Mihir Bellare föreslår följande randomisering av blockchifffer. Meddelandet m uppdelas i block m 1,..., m n och givet ett blockchiffer e k produceras chiffret c = <r, e k (r + 1) xor m 1,..., e k (r + n) xor m n >, via ett slumptal r. På så sätt behöver inte k väljas på nytt för varje block som i ECB och chiffret blir enklare än CBC, dock till priset av att c > m. Detta är ofrånkomligt för alla s k probabilistiska chiffer. Operationen + räknas ut modulo 2 l, där l är blocklängden. 1.4 Asymmetriska system Sedan 1976 existerar allmänt kända system som är sådana att bara endera e k eller d k behöver hemlighållas. Den andra kan vara öppen (publik). Man talar då om 'public key systems' (PKS) eller system med öppna nycklar eller asymmetriska system. Dessa bygger på falllucke envägsfunktioner, 'trap door one way functions', för att etablera korrespondens mellan den öppna och den privata nyckeln. - En envägsfunktion är sådan att den är enkel att beräkna medan dess invers är svår att beräkna. - En envägsfunktion med fallucka är en envägsfunktion vars invers kan beräknas enkelt med tillgång till viss sidoinformation. Den ena nyckeln är möjlig att härleda ur den andra bara för den som besitter extra information, d v s fall-luckeparametern, om systemets envägsfunktion.

15 I ett PKS råder naturligtvis ett matematiskt förhållande mellan e och d så att det i teorin är möjligt att härleda den ena ur den andra. Ett PKS är inte ovillkorligt säkert; har inte perfekt sekretess. Konfidentialitet/integritet säkerställs genom att det beräkningsmässigt är ogenomförbart att (inom rimlig tid/rimligt stort minne) praktiskt härleda den ena ur den andra. Man säger/tror/antar att föreslagna PKS-algoritmer erbjuder beräkningsmässig säkerhet. 1.4.1 Allmänt i. Konfidentialitet. Om d k hålls privat men e k är öppen kan alla tillverka kryptogram men bara den rättmätiga mottagaren återvinna klartexten. ii. Integritet. I det omvända fallet kan information återvinnas av alla bara om den rättmätige sändaren har tillverkat chiffret. Detta brukar användas som grundidé för att erhålla integritet eller autenticitet. En identifierare (eller lösenord) transformeras privat men kan verifieras av alla. iii. Både/och. För att samtidigt uppnå konfidentialitet och integritet måste dubbla transformationer användas; en för vardera syfte. Detta kräver att e k d k = d k e k = I. Det är inte självklart att e k och d k kommuterar, men för det mest använda PKS, den så kallade RSA-algoritmen, gäller detta (under vissa förutsättningar). Antag att A har transformationer e a och d a och B har motsvarande e b och d b, där e är publika och d är privata. För att säkerställa konfidentialitet och äkthet för ett meddelande m framställer A kvantiteten x = e b (d a (m)) som sänds till B. Genom att d a är privat uppfylls äktheten. I praktiken används RSA endast för signering och nyckeltransport. Kryptering för konfidentialitet utförs med symmetriska chiffer eftersom de är mycket (1000 gånger?) snabbare. iv. Digitala signaturer. Kvantiteten sig a (m) där h är en 'hash'-funktion kallas för en digital signatur: sig a (m) = d a (h(m)). Signaturen sänds tillsammans med m och alla mottagare kan verifiera m h a den publika transformationen e a. Om konfidentialitet samtidigt önskas är det alltså vanligt att m chiffreras med ett konventionellt chiffer; ett hybridsystem uppstår. Likheten med MAC är slående men den springande punkten är att är att A och B i signaturfallet inte behöver komma överens om och dela en hemlig nyckel. 1.4.2 RSA; introduktion i. Förutsättningar. Den mycket omtalade RSA-algoritmen (från 1977, publicerad 1978) bygger alltså på att e är "lätt" att beräkna men att d i praktiken låter sig beräknas endast via tillgång till extra information (fall-lucke-parametern), d v s den privata nyckeln. Metoden består av ett blockchiffer som bygger på exponentiering (modulo n) och svårigheterna att faktorisera (stora) primtal. Konstruktören utgår från två stora, t ex 200-siffriga, primtal p och q och bildar produkten

16 n = p * q. Talet n omfattar då t ex 1328 bitar. Faktorerna i n hålls hemliga, eller "kastas bort" efter det att systemet har definierats, medan n ges ut publikt. Att återvinna p och q kräver att det är möjligt att primtalsfaktorisera STORA tal. Ingen har ännu konstruerat en tillräckligt snabb metod för detta ändamål. Med givna p och q bildar konstruktören φ(n) = (p - 1) * (q - 1), som är antalet tal som är prima relativt n. Relationen mellan den privata och den publika nyckeln är e * d mod φ(n) = 1; en ekvation som är enkel att lösa, men bara om falluckeparametern φ(n) är given och att beräkna φ förutsätter tillgång till p och q. Ekvationen har en entydig lösning d för givet e och givet φ(n) precis då e och φ(n) är relativt prima, d v s gcd (e, φ(n)) = 1. ii. Definition. Om a och b är heltal och m > 0 så skrivs a b (mod m) om m dividerar a - b och a och b kallas kongruenta modulo m. Om vi heltalsmässigt dividerar a och b med m kan vi skriva a = k 1 m + r 1 och b = k 2 m + r 2, där 0 r i m - 1, och se att a b (mod m) är uppfyllt precis då r 1 = r 2. Beteckningen a mod m används för resten i intervallet [0, m - 1] då a divideras med m. Det gäller då att a b (mod m) precis då a mod m = b mod m. iii. RSA. Chiffrering ges av ekvation (1). c = e (n,e) (m) = m e mod n (1) Den publika nyckeln är alltså (n,e). Klartexten kan uppdelas i block om log n bitar och bitsekvensen tolkas som ett heltal. Dechiffrering sker genom att beräkna m = d (n,d) (c) = c d mod n (2) med den privata nyckeln (n,d). Det finns mycket, mycket mer att säga om RSA; detaljerna kommer senare. Notera den "vackra symmetrin"; den är i klass med den hos Maxwells ekvationer. iv. Nyckeldistribution kan ske med RSA genom A B: e B (key), där A väljer nyckeln key, krypterar den med Bs öppna nyckel och skickar chiffret till B, som är den enda som kan dechiffrera. A och B kan sedan använda key för chiffrering av meddelanden med tex DES. En förutsättning är att B litar på att A är den han utger sig för!

17 iii. Noter om stora tal mm 1. Forcörens möjlighet att göra kryptoanalys genom att invertera (1) är beräkningsmässigt utesluten (lika svårt som att faktorisera primtal). Exponeneten e och meddelandet m bör dock vara så stora att (1) innebär en modulo-reduktion, annars kan man "lätt" beräkna e:te roten. 2. I vad som kommer refereras ofta till "stora tal". För att få lite perspektiv: - Talet n i RSA 10 402 = 2 1328 - Universums livstid (om det är slutet) 10 11 år = 2 37 år = 10 18 sek = 2 61 sek - Universums ålder 10 10 år = 2 34 år - Antalet atomer i universum 10 77 = 2 255 - Antalet atomer på jorden 10 51 = 2 170 - Virtuellt adressrum i en 64-bitars processor 10 19 = 2 64 - Antalet nycklar i AES 10 77 = 2 256 - Risk att omkomma i bilolycka per år i USA 2*10-4 = 2-12 = 1/5600 3. Kom ihåg minnesregeln 10 x 2 3.3x "Bevis". Om 10 x = 2 y så är (framgår genom logaritmering) x = y log 10 2 och y = x log 2 10. Numeriskt gäller att log 2 10 3.3 och log 10 2 0.3. 1.5 Kryptoanalys Att forcera ett chiffer eller att lyckas med kryptoanalys innebär att man tillförskansar sig kunskap om klartexten eller nyckeln tvärtemot användarnas avsikt med chiffret. Någon gång är detta möjligt genom att förutsättningslöst prova alla nycklar, uttömmande nyckelsökning, till dess framgång nås; 'exhaustive search' eller 'brute force'. Att forcera chiffer förstås dock vanligen som ett tillvägagångssätt där klartext eller nyckel kan härledas systematiskt med [mycket] mindre arbete än med uttömmande nyckelprövning. En attack kan rikta sig mot både kryptoalgoritmen i sig men ofta också mot det sätt på vilket den används, d v s på protokollet. Framförallt kan nyckelhanteringen vara känslig. Minns Uppsalaprofessorn Arne Beurling (jfr biblioteket på MIC) som 1942 med briljans lyckades "knäcka koder" delvis beroende på tyska kryptoteknikers indolens vid nyckelhanteringen. Kryptologin som vetenskap består alltså dels av kryptografi, dels av kryptoanalys; två grenar som fortlöpande tävlar med varandra. Notera dock att de personer som tävlar växlar mellan de olika lägren/lagen. Man brukar kalla ett kryptosystem för ovillkorligt säkert om det oberoende av forcörens beräkningskapacitet motstår analys. Endast ett chiffer brukar räknas till denna klass; 'one time pad'. Många system är däremot beräkningsmässigt säkra. Egenskapen betyder att den tid det tar för forcören att lyckas överstiger den tid användarnas policy anger; t ex 10 17 µsek.

18 Not (fantasisiffror; energi förstörs inte, den bara omvandlas; men.... ) Om ett chiffer med en 256-bitars nyckel ska forceras med uttömmande nyckelsökning och varje nyckelprov tar 20 nanosekunder på en maskin som kräver 5 watt kommer att åtgå ca 10 69 Joule. Med antagandet att universum omfattar 10 77 atomer med medelatomvikten 70 dras, enligt Einsteins ekvation E = mc 2, slutsatsen att hela universums energiinnehåll är ca 10 69 Joule. 1.5.1 Algoritmforcering Beroende på förutsättningarna räknar man med olika klasser av forcering. Metoderna som anges här är ordnade efter "styrka". i. Endast chiffer. I detta fall antas forcören bara ha tillgång till chiffer. Detta ur användarens synpunkt mest ideala fallet är knappast realistiskt. Enkla chiffer som t ex Caesar-dito kan forceras under denna förutsättning. ii. Känd klartext. I många fall vet forcören (med stor sannoliket) vissa par <m, c>. Forcering med känd klartext innebär att dennes uppgift är att med dessa uppskatta andra klartexter och/eller nycklar. Text av typen "login" brukar inleda många sessioner. En karakteristik är att säga att forcören fått tillfällig tillgång till e k. iii. Vald klartext. Ibland är forcörens läge ännu mer gynnsamt. Detta kan vara för handen i databassystem om samtliga användare tillåts lägga in poster i systemet. Vid denna attack är det alltså möjligt för forcören att lista ut chiffer för vissa valda klartexter. En karakteristik är att säga att forcören fått tillfällig tillgång till d k. Ett för forcören attraktivt sätt är att kunna göra en sådan attack adaptivt, d v s att kunna välja nya klartexter efter utfall av försök med tidigare. iv. Valt chiffer. I PKS (med öppen chiffreringsnyckel) utgör detta en fjärde typ av möjlighet för kryptoanalytikern. v. 'Timing'analys. En nyupptäckt teknik som bygger på att beräkningstider är beroende av nyckelstorlekar i PKS. Kan troligen förhindras via "förblindning" e dyl. vi. Ett exempel. I en danslokal finns ett anslag: Red ut vad följande betyder: EMDNAT MNODSDIA LASSGROUH AAGLXY PATMHNO WWEA Chiffret blir trivialt att forcera med upplysningen/sidoinformationen: 'Square Dance Formations'! En kryptografiker måste alltid räkna med att kryptoanalytikern besitter mycken sidoinformation, som t ex språkkännedom/språkstatistik. 1.5.2 Protokollforcering i. Chiffer. Även om en algoritm/mekanism i sig förefaller svår/omöjlig att forcera är det ibland möjligt att forcera användningen. Återanvändning av nycklar eller andra parametrar eller dåliga nyckelval är gissel i detta sammanhang. Ett nytt resultat är sk 'fault-based cryptanalysis'. Genom fel i smarta kort kan i västa fall uppstå ett läge i vilket den privata nyckeln oavsiktligen yppas. ii. Dgitala signaturer, identifieringsmetoder, 'hash'-funktioner och MAC. Här föreligger lite andra omständigheter.

19 För digitala signaturer anges tex följande attacker: endast-nyckel, känd-signatur och vald klartext. För 'hash'-funktioner och MAC talas om kolllisionsfrihet m m. Beträffande identifieringsmetoder talas om sundhet. 1.6 Kryptoöversikt i. Tekniker. Chiffer kan vara, som vi sett, endera konventionella/symmetriska/'one-key' eller av typen PKS. De kan också klassifieceras som - blockorienterade - flödesorienterade. DES är ett blockchiffer som byggs upp som en "produkt" av enkla transformationer; - produktchiffer. RSA är ett chiffer av formen - exponentiellt. Med dagens implementeringar är DES cirka 1000 gånger snabbare än RSA, varför RSA används för mekanismer som behövs "sällan" t ex för hantering av nycklar, signaturer och identifiering, medan DES (och kusiner) används för "bulkdata"-chiffrering. Vissa PKS kan också varieras för att skapa - digitala signaturer, d v s namnteckningar som binds till dokument för att bestyrka dess äkthet. Eftersom ett chiffers värdeförråd vanligen har samma kardinalitet som definitionsområdet brukar klartexter ofta kompakteras via - 'hashing' innan de signeras. Denna redundansminskning visar sig också försvåra förfalskning av signaturer. Det finns många speciella 'hash'-funktioner konstruerade att användas i kryptosammanhang. Krypteringsfunktioner kan också användas för att hantera nycklar; - 'key agreement' - 'key [pre]distribution' - 'key generation'. Ofta används hierarkier av nycklar, vilket innebär att en "huvudnyckel" blir en sällsamt värdefull enhet. För att skydda sådana används tekniker som kallas - 'secret sharing'. Chifferliknande metoder kan användas för att åstadkomma - identifikationsmetoder för att undvika att lösenord, PIN-koder, et c sänds i klartext över nät. En sammanfattning av olika tekniker och mål ges av följande tabell 1.6.

20 Algoritmtyp vs. mål Konfidentialitet Autenticitet Integritet Nyckelhantering Symmetriska chiffer ja nej ja/nej ja Asymmetriska chiffer ja nej ja/nej ja Digitala signaturalgoritmer nej ja ja nej Nyckelhanteringsalgoritmer nej nej nej ja 'Hash'- funktioner nej nej ja nej Identifikationsalgoritmer nej ja nej nej 'Secret sharing' nej nej nej ja Tabell 1.6. Mål och medel för kryptofunktioner ii. En taxonomi. Ett annat sätt att indela kryptofunktioner är följande, tabell 1.7. Kommentarer. 1. En en-vägsfunktion f är sådan att f är "enkel" att beräkna medan f -1 är "svår" att beräkna. 2. En 'hash'-funktion är en-vägs med ett värdeförråd (mycket) mindre än definitionsområdet. 3. En 'hash'-liknande funktion som bygger på en hemlig nyckel är en MAC. 4. ID-protokoll är generaliseringar av konventionella inloggningssekvenser. 1 Säkerhetsprimitiv 1.1 Utan nyckel 1.1.1 Envägsfunktioner 1.1.2 Hashfunktioner 1.2 Privat nyckel 1.2.1 Chiffer med privat nyckel 1.2.1.1Blockchiffer 1.2.1.2 Flödeschiffer 1.2.2 Hashfunktioner med nyckel (MAC) 1.2.3 ID protokoll 1.3 Publik nyckel 1.3.1 Chiffer 1.3.1.1 Blockchiffer 1.3.1.2 Flödeschiffer 1.3.2 ID protokoll 1.3.3 Protokoll för nyckelutbyte 1.3.4 Signaturer 1.3.4.1 Enkla - med appendix - med 'recovery' 1.3.4.2 Blinda 1.3.4.3 Ickeförnekbara m fl Tabell 1.7. Krypto-taxonomi iii. En sammansättning. I paketet PGP ('pretty good privacy') sammankopplas flera olika typer av kodning enligt följande tabell. Åtskillaga detaljer är utelämnade. Systemet är ganska populärt och utvecklas kontinuerligt. Elementet w i stället för m skickas via nätet från A till B: A B.

21 Steg Element Kommentar 1 m, k = k-gen(frö) Klartext m given. Nyckel k genereras med X9.17 2 x = hash(m) Här används Rivests metod MD5 3 y = sig A (x) Avsändaren A signerar med RSA 4 z = compact(m, y) Här kompakteras med metoden ZIP 5 u = e k (z) Chiffrering med IDEA-algoritmen och nyckeln k 6 v = e B (k) RSA-chiffrera nyckeln k med Bs publika nyckel 7 w = convert(u, v) Konvertera till ASCII enligt radix-64; skrivbara tecken I bildform ter sig detta så här: Tabell 1.8. PGP m hash MD5 x sig RSA y comp ZIP k-gen X9.17 As privata Bs publika k encrypt RSA w convert R-16 u encrypt IDEA z v Avsändarsidans transformationer Figur 1.11. PGP Det är värt att notera hur symmetriska respektive asymmetriska system används: De förra för att chiffrera 'bulk data', det andra för att chiffrera en nyckel för det första ändamålet. En 'hash'-funktion appliceras på meddelandet innan detta signeras. För detta finns minst två skäl; dels bör signaturen bli av rimlig omfattning, dels bidrar detta till säkerheten.

22 Nyckeln för chiffret för konfidentialitet tas fram som ett pseudoslumptal. Avsändarens publika RSA-nyckel distribueras utanför systemet. Funktionen 'compact' reducerar redundansen i paret <meddelande, signatur>; detta sparar utrymme såväl som att det gör chiffret säkrare. Funktionen 'convert' har ingen säkerhetsmässig relevans. Den är bara till för att texten ska kunna hanteras av vissa e-post-system. Radix-64-metoden fungerar så: 1. Ett godtyckligt 24-biatrs block delas in i 4 lika stora delar (om 6 bits.) 2. Varje 6-bits block motsvarar enligt en enkel kodning ett tecken i alfabetet {A,..., Z, a,..., z, 0,..., 9, +, /} -- notera att det är 64 tecken = {0, 1,..., 63} 3. Motsvarande tecken skrivs ut i 8-bitars block enligt ASCII. iv. Hur upptäcks om en fil är krypterad? Många filtyper kan se slumpmässiga ut vid en första inspektion. Här är några tips. 1. ASCII är lätt att kontrollera. Andra typer som tex TEX, Postscript och Excel och till och med binärkod har standardidentifierare. 2. Försök att göra uncompress: Om filen bara är kompakterad så ger detta sannolikt en filtyp enligt 1. 3. Försök att göra compress: Om filen är krypterad så är sannolikheten att detta ska krympa filen mer än några % liten (om chiffret är bra). Noter Nästan alla böcker om kryptologi och datasäkerhet behandlar det som beskrivits i dessa anteckningar. Se t e x böckerna av D. Stinson [Sti95] och W. Stallings [Sta99]. De inledande "spelreglerna" kan man finna mer om i [Den99] och [Gol99]. David Kahns historiska epos är [Kah67]. ISO-dokumentet är [ISO88]. TCSEC dokumenteras i [TCSEC]. Taxonomin i tabell 1.2 är från [Lan94]. RSA-artikeln [RSA78] finns on-line. Läs: http://theory.lcs.mit.edu/~rivest/rsapaper.ps. Andra tjänster som tillgänglighet, 'safety' och feltolerans har samband med säkerhet men studeras vanligen under rubriken tillförlitliga system. 'Timing'-analys är från [Ko95]. 'Fault-based'-analys är från [BDL96]. Tabell 1.7 är från [BP95]. Övningar 1.1. Dechiffrera följande text som är framställd med ett Caesarchiffer. vrvrv hdpvw uhvv 1.2. Skriv ett program, ju kortare dess bättre, som när det kompileras och körs skriver ut en kopia av sig själv i källtextformat. (En fråga relaterad till virus-begreppet; se t ex [Tho84].)

23 1.3. Vad kan man dra för slutsats av följande anvisning. "Det är strängeligen förbjudet att vid telegrafi sända klartext och kryptogram vid samma tidpunkt även om adressaterna skulle vara olika." 1.4. Redogör för skillnader mellan virus och maskar. 1.5. Vilka av följande funktioner utgör chiffer över Z 29? - e K (x) = x 2 mod 29. -- K = 2 - e K (x) = x 3 mod 29. -- K = 3 - e K (x) = x 5 mod 29. -- K = 5 1.6. Antag att du vill definiera ett RSA-system baserat på primtalen p = 5 och q = 7. Vad blir då φ(n)? Antag vidare att du väljer den privata nyckeln d = 11. Vad blir den öppna nyckeln e? Vilket chiffer c erhålls om klartexten m = 2? Visa att dechiffreringen återskapar m. 1.7. Antag att det i:te chiffret c i i en fil, som är krypterad med ett synkront flödeschiffer, stryks och resten av filen dechiffreras och återchiffreras med den ursprungliga nyckelsekvensen men nu så att c i+1 erhålls med k i, c i+2 erhålls med k i+1, osv. Visa att k j och m j för j i kan bestämmas från de båda chiffren om m i är känt. 1.8. Antag att en DES-nyckel bara består av 7 bokstäver (bytes) i [a,..., z]. Uppskatta hur lång tid 'brute force' tar om varje nyckel kan testas på 1 µs. Hur lång tid tar det om alla 56 bitarna utnyttjas? 1.9. Visa att de båda MAC som omnämns i slutet av avsnitt 1.3.2 blir lika. 1.10. Om p är ett primtal så gäller att p 1 (mod 4) eller att p 3 (mod 4). Sant eller falskt? 1.11. Ange en approximation till log 2 8 130. 1.12. Om x är udda så gäller x 2 1 (mod 8). Sant eller falskt? 1.13. Låt de de sex utfallen x 1,..., x 6 förekomma med följande sannolikheter: p(x 1 ) = p(x 2 ) = p(x 3 ) = 1/4 p(x 4 ) = 1/8 p(x 5 ) = p(x 6 ) = 1/16. Beräkna värdet av uttrycket H = - Σ 1 i 6 p(x i ) log 2 p(x i ). Försök visa att detta H aldrig, oberoende av värdena p(x i ), kan bli större än log 2 6. 1.14. Diskutera möjliga attacker på signatursystem: Endast-nyckel, känd-signatur och valdklartext och förfalskningar av typ existensiell, selektiv, universell och 'total break'. 1.15. En följd block x 1,..., x n chiffreras med DES för att ge y 1,..., y n. Antag att ett block, säg y i, förvrängs (men inte tappas bort eller dupliceras) vid överföringen. Hur många block blir felaktiga efter dechiffrering om ECB ('electronic code book'), OFB ('output block feedback'), CBC ('cipher block chaining') respektive CFB ('cipher feedback') används.