Cryptografie. Beveiliging van de digitale maatschappij. Gerard Tel. Instituut voor Informatica en Informatiekunde Universiteit Utrecht

Vergelijkbare documenten
Cryptografie. Beveiliging van de digitale maatschappij. Gerard Tel. Instituut voor Informatica en Informatiekunde Universiteit Utrecht

4Passief: n Afluisteren. n Geen gegevens gewijzigd of vernietigd. n Via de routers van WAN. n Via draadloze verbindingen. 4Fysieke afsluiting

slides10.pdf December 5,

Public Key Cryptography. Wieb Bosma

??? Peter Stevenhagen. 7 augustus 2008 Vierkant voor wiskunde

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden

Hoe je het cryptosysteem RSA soms kunt kraken. Benne de Weger

Tweede Huiswerk Security 26 of 28 oktober, 11.00, Nabespreken op Werkcollege.

informatica. cryptografie. overzicht. hoe & wat methodes belang & toepassingen moderne cryptografie

RSA. F.A. Grootjen. 8 maart 2002

Cryptografische beveiliging op het Internet

1 Rekenen in eindige precisie

DrayTek Vigor AP700 Wireless beveiligen

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Profielwerkstuk Informatica en Wiskunde Is RSA-cryptografie nu veilig genoeg en wat betekent dit voor de toekomst van digitale beveiliging?

Opgaven Getaltheorie en Cryptografie (deel 4) Inleverdatum: 13 mei 2002

Projectieve Vlakken en Codes

Modulewijzer InfPbs00DT

Informatie coderen en kraken

Veilig en. Waarom en via een beveiligde verbinding? U vertrouwt de verbinding met de server van InterNLnet niet

Cryptografie: de wetenschap van geheimen

De cryptografie achter Bitcoin

Elliptische krommen en digitale handtekeningen in Bitcoin

De wiskunde achter de Bitcoin

Datacommunicatie Cryptografie en netwerkbeveiliging

DrayTek Vigor AP700 Advanced Settings

LAN-to-LAN VPN. IPSec Protocol

VPN LAN-to-LAN IPSec. Vigor 1000, 2130 en 2750 serie

Universal Repeater AP900

Lessenserie Cryptografie

VPN LAN-to-LAN PPTP. Vigor 1000, 2130 en 2750 serie

VPN LAN-to-LAN PPTP Protocol

Netwerken. Beveiliging Cryptografie

Address Mapping Address Mapping regels:

DrayTek Vigor AP700 MAC Filtering

Spreekbeurt Nederlands Cryptologie

EXAMEN INFORMATIETHEORIE I (5JJ40 / 5K020) 25 maart 2004, 9u00 12u00-1 -

Taak Versleutelen en dan weer terug... 1

Stelsels Vergelijkingen

Wireless LAN Security

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

Logging voor Support

Digitale geldtransacties. Stefanie Romme Wiskunde, Bachelor Begeleider: Wieb Bosma

Zoek- en sorteeralgoritmen en hashing

Firewall. Facebook Block

LAN DNS & DNS Forwarding

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

De Hill-cipher herzien

Cryptografie. Ralph Broenink

Rekenen aan wortels Werkblad =

VPN LAN-to-LAN IPSec Protocol

Universal Repeater AP700

02. Les 2 Affiene versleuteling. CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

Het RSA Algoritme. Erik Aarts - 1 -

Shannon Theory of Cryptology

De Hamming-code. De wiskunde van het fouten verbeteren in digitale gegevens

In deze handleiding gaan we een voorbeeld geven hoe u een bepaalde situatie kunt oplossen doormiddel van een aantal Firewall >> Filter Rules.

Tweede Toets Security 9 november 2016, , Educ-α.

College Cryptografie. Cursusjaar Informatietheorie. 29 januari 2003

VPN LAN-to-LAN IPSec Protocol

DrayTek Vigor AP700 Bridge Point-to-Multipoint

Restsystemen 183 Oplossen van lineaire vergelijkingen 190 Structuren met één bewerking 192 Structuren met twee bewerkingen

Firewall. Facebook Blokkering

Dynamic DNS Wat is DNS? Wat is Dynamic DNS? Hoe krijgt u een domeinnaam? Welke DNS providers zijn er?

Port Redirection NAT >> Port Redirection Enable.

Inleiding tot de natuurkunde

Inleiding 8

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik van LAN IP-adressen die in het netwerk worden gebruikt.

_voorw :47 Pagina I. Een Goed. Feedbackgesprek. Tussen kritiek en compliment. Wilma Menko

Vragen: auteursrecht

VPN Remote Dial In User. Windows VPN Client

In deze handleiding gaan we een aantal voorbeelden geven hoe u een bepaalde situatie kunt oplossen door middel van een aantal Filter Rules.

Rekenen: Getallen groep 5 en hoger. Rekenen en schattingen ontdekken. Algebra groep 5 en hoger. Patronen en relaties ontdekken.

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik van LAN IP-adressen die in het netwerk worden gebruikt.

Inhoud. Introductie tot de cursus

SSL VPN. In deze handleiding zullen wij onderstaande SSL mogelijkheden aan u uitleggen. - SSL VPN account/groep creëren.

SSL VPN. In deze handleiding zullen wij onderstaande SSL mogelijkheden aan u uitleggen. - SSL VPN account/groep creëren.

Toepassingen van de Wiskunde in de Digitale Wereld

Opgaven Introductie Security Security, 2017, Werkgroep.

Open Ports. Als eerste maakt u de regel actief. Dit kan door boven in het scherm een vinkje te zetten bij Enable Open Ports

Werkbladen. Module 3: Geheimtaal. Internet. De Baas Op. Module 3, Versie 1.0

niet: achterop een ansichtkaart schrijven postbode (en wie al niet meer) leest mee

AANVALLEN OP WES3 + LEN SPEK & HIDDE WIERINGA

3.2 Vectoren and matrices

Het programma ELGAMAL

Uitwerking tentamen Analyse van Algoritmen, 29 januari

VPN Remote Dial In User. DrayTek Smart VPN Client

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik en vastleggen van LAN IPadressen die in het netwerk worden gebruikt.

VPN Remote Dial In User. DrayTek Smart VPN Client

Introductie tot de cursus

Complex multiplication constructions in genus 1 and 2

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

Magidoku s en verborgen symmetrieën

Geldwisselprobleem van Frobenius

VPN LAN-to-LAN IPSec Protocol

LAN DNS. De functionaliteit LAN DNS kunt u vinden in het menu Applications. Hier klikt u vervolgens op het index nummer welke u wilt gebruiken.

3 Wat is een stelsel lineaire vergelijkingen?

Oefening 4.3. Zoek een positief natuurlijk getal zodanig dat de helft een kwadraat is, een derde is een derdemacht en een vijfde is een vijfdemacht.

We beginnen met de eigenschappen van de gehele getallen.

Transcriptie:

Cryptografie

Cryptografie Beveiliging van de digitale maatschappij Gerard Tel Instituut voor Informatica en Informatiekunde Universiteit Utrecht

Trefw: cryptografie, informatiebeveiliging, digitale handtekening, elektronisch geld c Copyright 2006 Gerard Tel. Alle rechten voorbehouden. Niets uit deze uitgave mag worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand, of openbaar gemaakt, in enige vorm of op enige wijze, hetzij elektronisch, mechanisch, door fotokopieën, opnamen, of enige andere manier, zonder voorafgaande toestemming van de auteur. Voorzover het maken van kopieën uit deze uitgave is toegestaan op grond van artikel 16B Auteurswet 1912 j o het Besluit van 20 juni 1974, St.b. 351, zoals gewijzigd bij Besluit van 23 augustus 1985, St.b. 471 en artikel 17 Auteurswet 1912, dient men de daarvoor wettelijk verschuldigde vergoedingen te voldoen aan de Stichting Reprorecht. Voor het overnemen van gedeelte(n) uit deze uitgave in bloemlezingen, readers en andere compilatie- of andere werken (artikel 16 Auteurswet 1912), in welke vorm dan ook, dient men zich tot de auteur te wenden. Ondanks alle aan de samenstelling van dit boek bestede zorg kan noch de redactie, noch de auteur, noch de uitgever aansprakelijkheid aanvaarden voor schade die het gevolg is van enige fout in deze uitgave.

Inhoudsopgave Inhoudsopgave Voorwoord v viii 1 Inleiding tot symmetrische encryptie 1 1.1 Symmetrische en asymmetrische cryptografie................... 1 1.2 Eenvoudige voorbeelden en aanvallen........................ 2 1.3 Informatietheoretische veiligheid.......................... 7 1.4 Kritieke lengte en computationele veiligheid.................... 9 Samenvatting en conclusies................................ 12 Opgaven bij hoofdstuk 1.................................. 13 2 Data Encryption Standard 15 2.1 De werking van DES................................. 15 2.2 DES breken met brutekracht............................ 22 2.3 Differentiële cryptanalyse.............................. 25 2.4 Opkomst en ondergang van een standaard..................... 28 Samenvatting en conclusies................................ 30 Opgaven bij hoofdstuk 2.................................. 31 3 Symmetrische encryptie: vervolg 33 3.1 Hellmans cubic-rootaanval.............................. 33 3.2 Productsystemen................................... 36 3.3 Stroomversleuteling.................................. 40 3.4 Sleutelbeheer..................................... 44 3.5 AES: Advanced Encryption Standard....................... 50 Samenvatting en conclusies................................ 51 Opgaven bij hoofdstuk 3.................................. 52 4 Getallen: eigenschappen 54 4.1 De gehele getallen.................................. 55 4.2 Invoerblindering................................... 58 4.3 Modulaire aritmetiek................................. 60 4.4 Multiplicatieve groep: priemmodulus........................ 65 4.5 Modulaire ring: samengestelde modulus...................... 69 Samenvatting en conclusies................................ 71 Opgaven bij hoofdstuk 4.................................. 73 v

vi Inhoudsopgave 5 Getallen en public-keycryptografie 76 5.1 Berekenbare functies in modulaire groepen..................... 77 5.2 Niet-berekenbare functies in modulaire groepen.................. 83 5.3 Public-keycryptosystemen.............................. 88 Samenvatting en conclusies................................ 99 Opgaven bij hoofdstuk 5.................................. 99 6 Digitale handtekeningen 102 6.1 Eisen en toepassingen................................ 102 6.2 Handtekeningschema s................................ 107 6.3 Hashfuncties..................................... 110 6.4 Blinde handtekeningen................................ 116 Samenvatting en conclusies................................ 119 Opgaven bij hoofdstuk 6.................................. 120 7 Identificatie 122 7.1 Definities en aanvallen, voorbeelden........................ 122 7.2 Authenticatie op basis van cryptografie....................... 127 7.3 Zero-knowledge proof voor identificatie....................... 130 7.4 Meer over zero-knowledge proofs.......................... 137 7.5 Biometrie....................................... 141 Samenvatting en conclusies................................ 144 Opgaven bij hoofdstuk 7.................................. 145 8 Verdeelschema s en groepscryptografie 147 8.1 Inleiding: schema s en gebruik............................ 148 8.2 Een additief vetoschema............................... 156 8.3 Een drempelschema: Shamirs polynoomschema.................. 165 Samenvatting en conclusies................................ 171 Opgaven bij hoofdstuk 8.................................. 172 9 Toepassingen 174 9.1 Kerberos........................................ 174 9.2 Universal Mobile Telecommunication System (UMTS).............. 181 9.3 Secure Socket Layer................................. 192 Samenvatting en conclusies................................ 195 Opgaven bij hoofdstuk 9.................................. 195 10 Regulering van cryptografie 197 10.1 Totstandkoming van wetgeving........................... 197 10.2 Verkoop en export van cryptografie......................... 199 10.3 Regels rond geheimhouding............................. 200 10.4 Verdere wetgeving.................................. 209 Samenvatting en conclusies................................ 211 Opgaven bij hoofdstuk 10................................. 211

Cryptografie vii 11 Smartcards 213 11.1 Inleiding........................................ 214 11.2 Aanvallen op smartcards............................... 217 11.3 Openen van smartcards............................... 221 Samenvatting en conclusies................................ 224 Opgaven bij hoofdstuk 11................................. 224 12 Elektronisch geld 225 12.1 Geld en eisen op elektronisch geld.......................... 225 12.2 E-muntsystemen: Ecash............................... 234 12.3 Registersystemen................................... 241 Samenvatting en conclusies................................ 243 Opgaven bij hoofdstuk 12................................. 245 13 Secure computing 247 13.1 Inleiding........................................ 248 13.2 Homomorfe encryptie................................ 253 13.3 Geheime verkiezingen................................ 257 13.4 Voorbij functie-evaluatie............................... 263 Samenvatting en conclusies................................ 269 Opgaven bij hoofdstuk 13................................. 269 14 De discrete logaritme 271 14.1 Groepen en het logaritmeprobleem......................... 273 14.2 Groepen voor cryptografie.............................. 280 14.3 Groepsalgoritmen................................... 285 14.4 De indexcalculus................................... 294 Samenvatting en conclusies................................ 297 Opgaven bij hoofdstuk 14................................. 298 A Kansrekening 300 A.1 Experimenten en verwachting............................ 300 A.2 Bernoullireeksen................................... 302 A.3 Botsingen en de verjaardagsstelling......................... 304 B Verantwoording van afbeeldingen 306 Bibliografie 308 Index 315

Voorwoord De cryptografie staat de laatste jaren sterk in de belangstelling, hetgeen zich uit in een groot aanbod van colleges, cursussen en leerboeken. Dit boek verschilt in een aantal aspecten van het gangbare aanbod, en daarom meen ik dat het tussen het bestaande materiaal bestaansrecht heeft. Veel boeken zijn erg wiskundig, behandelen getaltheorie en coderingen erg diepgaand, maar besteden dan weinig aandacht aan de berekeningsaspecten. Andere boeken behandelen juist wel berekeningen en protocollen, maar laten de wiskundige achtergronden onbesproken. Dit boek probeert een middenweg tussen een wiskundig en een informaticaboek te zoeken. In kaders, die los staan van de hoofdtekst, wordt steeds een link gelegd naar een toepassing of voorbeeld: soms historisch, soms modern, soms uit de praktijk, soms grappig bedoeld. Ik hoop hierdoor een breed lezerspubliek aan te spreken. De cryptografie en dit boek. De gangbare definities of omschrijvingen van cryptografie zijn te eng om de tegenwoordige veelzijdige toepassingen van deze tak van wetenschap te dekken. Daarom doe ik een nieuwe poging het werkterrein van dit boek af te bakenen: Definitie 0.1 De cryptografie is de kunst van beveiliging met behulp van informatie. In deze omschrijving wordt informatie aangehaald als middel ter beveiliging en niet als beveiligingsobject, al kan uiteraard ook informatie zelf cryptografisch worden beveiligd. Geheimhouding van informatie is de oudste toepassing van cryptografie en ook bij het publiek het best bekend. Daarnaast vindt de cryptografie toepassing bij toegangsbeveiliging (tot computersystemen zowel als gebouwen), digitale handtekeningen, elektronisch geld, en noem maar op. Wat staat er in dit boek. Dit boek is opgebouwd uit drie delen, die wel afhankelijk van elkaar zijn, maar niet elke lezer in gelijke mate of op dezelfde tijd zullen aanspreken. Deel I: Geheimhouding. Het eerste deel, de hoofdstukken 1 tot 5, behandelt geheimhouding: de basis van cryptografische algoritmen, zoals gebruikt voor de bescherming van informatie tegen uitlekken en afluisteren. Er wordt aandacht besteed aan symmetrische algoritmen (zoals DES en encryptie in gsm-telefoons), aanvallen op dit soort cryptografie en toepassingen ervan, en public-keycryptografie. Hoofdstuk 1 introduceert het versleutelen en ontsleutelen van informatie met een (gemeenschappelijke) sleutel. Informatietheorie wordt gebruikt om uit de verhouding tussen de sleutelgrootte en de hoeveelheid data grenzen op de veiligheid af te leiden. Hoofdstuk 2 behandelt het DES-algoritme, dat 25 jaar lang de standaard voor symmetrische encryptie is geweest. viii

Cryptografie ix Verdere technieken voor symmetrische encryptie komen in hoofdstuk 3 aan de orde. Hoofdstuk 4 is een excursie buiten de eigenlijke cryptografie: het behandelt de getaltheorie die aan de moderne cryptografische technieken ten grondslag ligt. Voor wiskundigen is veel hiervan bekend, terwijl de lezer met ICT-achtergrond er weinig zal tegenkomen over computers, bits en berekeningen. Er is naar gestreefd het materiaal zo duidelijk mogelijk te presenteren en te voorzien van voorbeelden die aantonen waarom deze theorie voor de cryptografie belangrijk is. Men kan ervoor kiezen dit hoofdstuk (of delen ervan) bij eerste lezing over te slaan en het als referentie te gebruiken wanneer de verdere tekst daar aanleiding toe geeft. In hoofdstuk 5 worden de wortels van de cryptografie blootgelegd. Onder andere wordt hier de vraag behandeld of het wel mogelijk is om informatie te gebruiken voor beveiliging. In dit hoofdstuk komen de wiskunde van getallen en de theorie van berekeningen bij elkaar. Een inleidend college in de cryptografie zal over het algemeen dit deel geheel omvatten, mogelijk met uitzondering van enkele delen van hoofdstuk 4. Deel II: Cryptografische protocollen. De hoofdstukken 6 tot 9 laten zien dat de cryptografie kan worden gebruikt voor zaken die verder gaan dan geheimhouding. Bijvoorbeeld het beschermen van (op zich bekende) informatie tegen oneigenlijk gebruik, maar ook toegangscontrole, digitaal geld en anonimiteit. Hoofdstuk 6 gaat over de digitale handtekening, hashfuncties en blindering. Hoofdstuk 7 behandelt identificatie, waarbij ook zero-knowledge proofs en biometrie aan de orde komen. In hoofdstuk 8 wordt het verdelen van informatie behandeld: hierbij krijgen verschillende partijen elk een aandeel in bijvoorbeeld een cryptografische sleutel, zodat ze die alleen samen kunnen gebruiken. In elk van deze drie hoofdstukken speelt de asymmetrische cryptografie de belangrijkste rol, maar ook met symmetrische cryptografie kunnen grootschalige systemen met hoge veiligheid worden gebouwd. De protocollen die rond symmetrische cryptogafie worden opgebouwd lenen zich echter minder goed voor een algemene behandeling, en daarom worden er in hoofdstuk 9 enkele specifieke systemen behandeld: Kerberos, UMTS en SSL. Voor een inleidend college in de cryptografie kan uit deze hoofdstukken een keuze worden gemaakt, afhankelijk van interesse van de docent of de studenten. Deel III: Vervolgstudie. De hoofdstukken 10 tot 14 behandelen uiteenlopende zaken, eigenlijk te divers om in een college te behandelen. Dit deel is bedoeld voor de geïnteresseerde lezer of als inleiding tot een verdere studie van het onderwerp. Het materiaal is dan ook in minder detail uitgewerkt dan in de eerdere hoofdstukken; delen van bewijzen en het leggen van verbanden worden meer aan de lezer overgelaten. De lezers met bedrijfskundige of financiële interesse kunnen de hoofdstukken 10 (over regelgeving rond cryptografie) en 12 (over elektronisch geld) bestuderen. Lezers met een ICTachtergrond zullen hoofdstuk 11 over de techniek van smartcards kunnen waarderen. Wie hoofdstuk 8 (over verdeelschema s) mooi vond, zal ook van hoofdstuk 13 (over multipartyberekeningen) kunnen genieten. De wiskundigen ten slotte worden in hoofdstuk 14 verwend met een verhandeling over groepentheorie en het berekenen van logaritmen. Voelt u zich door een van deze hoofdstukken niet aangesproken? Geen nood, zet het boek in de boekenkast en raadpleeg het als u later toch in een van deze onderwerpen belangstelling krijgt. Voor wie is dit boek bedoeld. Dit boek kan worden gebruikt voor colleges in de cryptografie aan universitaire opleidingen informatica en wiskunde. Qua niveau zal de stof daar

x Voorwoord passen in het tweede of derde leerjaar (de bachelorfase). Ook in het HBO zal dit boek nuttig kunnen zijn voor gespecialiseerde opleidingen. Dankbetuiging. Ik wil iedereen bedanken die aan de totstandkoming van dit boek heeft meegewerkt. De studenten van het college Cryptografie in het najaar van 2001 (met name Robbert Brak, Bart Groot en Alain Böhm) zijn erg behulpzaam geweest in het opsporen van typefouten. De volgende personen hebben een of meer hoofdstukken becommentarieerd. Dr. Marjan van den Akker (Hfst. 12 en bijlage A), Drs. Jan Brands (Hfst. 1 tot 4), Dr. Hans Bodlaender (Hfst. 1 tot 8 en 13), Mr. dr. Jaap Dijkstra (Hfst. 10), Dr. Rogier van Eijk (Hfst. 10), Dr. Jaap-Henk Hoepman (Hfst. 5, 8, 9 en 12), Dr. Han Hoogeveen (Hfst. 5), Dr. Bert-Jaap Koops (Hfst. 10), Drs. Sieuwert van Otterloo (Hfst. 14), Dr. Berry Schoenmakers (Hfst. 13). Bij de herziene versie van Oktober 2006. De eerste versie van het boek wordt sinds het voorjaar van 2006 niet meer geleverd door de uitgever. Daarom is, voor het college Cryptografie in het najaar van 2006 en later, deze uitgave gedrukt. Ten opzichte van de eerste uitgave zijn enkele typefouten verbeterd en een paar inhoudelijke aanvullingen gemaakt. Gerard Tel, Utrecht, oktober 2006.

Hoofdstuk 1 Inleiding tot symmetrische encryptie Cryptografie staat de laatste jaren sterk in de belangstelling en gezien de vele toepassingen is dat niet verwonderlijk. De opkomst van internet en zelfs internetwinkelen maken een goede beveiliging noodzakelijk, en in het dagelijks betalingsverkeer heeft de electronische portemonnee (chipknip) naast het oudere pinnen zijn intrede gedaan. In alle gevallen speelt cryptografie de hoofdrol bij de beveiliging. Tegenwoordig is de cryptografie een sterk wiskundig terrein, waar vooral getaltheorie een grote rol speelt; de moderne technieken zijn namelijk allemaal op het manipuleren van getallen gebaseerd. De klassieke technieken, de zogenaamde symmetrische algoritmen, maken hiervan geen gebruik en worden in dit boek het eerst behandeld. De bescherming van informatie berust op de geheimhouding van een doorgaans kleinere hoeveelheid informatie, de sleutel of key. Een cryptografisch algoritme zal zorgen voor een goede vermenging van de informatie en de sleutel, maar is zelf (meestal) niet geheim. Een belangrijk onderwerp in dit hoofdstuk is daarom een analyse van de mate van bescherming die met een sleutel van een zekere lengte mogelijk is. 1.1 Symmetrische en asymmetrische cryptografie Een eerste toepassing van de cryptografie is het versleutelen (ook vercijferen, Engels: encrypt) van informatie die vertrouwelijk moet blijven. Alice en Bob willen elkaar iets meedelen maar zij vrezen dat hun opponent Oscar hun communicatie beluistert. Ze gaan het afluisteren voor Oscar zinloos maken door elke boodschap voor het versturen te veranderen door toepassing van een functie E (voor encryptie). In plaats van de boodschap X zendt Alice dus Y = E(X); de oorspronkelijke boodschap X heet de klare tekst (plaintext), de versleutelde boodschap Y de cijfertekst (ciphertext). Natuurlijk moet Bob wel, maar Oscar niet over de inverse functie D (voor decryptie) beschikken om de boodschap te kunnen ontsleutelen (of ontcijferen, Engels: decrypt). De encryptie- en decryptieprogramma s (of machines) zijn altijd parametriseerbaar: dat betekent dat je ze kunt instellen op een element van een klasse van functies. De instelling noemen we de sleutel of key, weergegeven als k en de functies zijn dan E k en D k. Alice en Bob 1

2 1 Inleiding tot symmetrische encryptie Kader 1.1: Informatiebeveiliging in laptops Bij het beveiligen van informatie wordt meestal als eerste gedacht aan informatie die via een netwerk wordt verzonden. Bestanden op een vaste schijf of diskette zijn echter ook verre van veilig, zelfs als de computer niet of alleen via een firewall aan het net is gekoppeld. Diskettes met gevoelige informatie kunnen gemakkelijk kwijtraken (bij diefstal van auto of tas bijvoorbeeld), en jaarlijks wisselen duizenden laptops onbedoeld van eigenaar. Niet alleen is dan de hardware verloren, maar de informatie in de laptop valt ook in andere handen en dit is in vele gevallen een nog grotere schadepost. Zelfs justitie kwam hierdoor enkele malen in opspraak. Het kan daarom verstandig zijn, alle vertrouwelijke informatie in versleutelde vorm op de disks op te slaan. Programma s als PGP bieden deze functionaliteit. moeten nu de sleutels zo kiezen, dat de ingestelde functies elkaar opheffen. We onderscheiden nu twee typen algoritmen, afhankelijk van hoe die omkeerbaarheid wordt bereikt. In een symmetrisch algoritme bestaat de encryptie uit een reeks omkeerbare stappen, zoals het optellen van een bepaald getal, het verwisselen van bepaalde bits, of het puntsgewijs XOR-en met een bitrij. Dit betekent dat kennis van het versleutelproces voldoende informatie inhoudt om de operaties in omgekeerde volgorde terug te rekenen en het origineel te herstellen. Daarom is bij deze systemen de encryptiesleutel en decryptiesleutel gelijk (al wordt hij soms anders toegepast). Bij asymmetrische algoritmen maken we gebruik van operaties die niet omkeerbaar zijn: denk bijvoorbeeld aan een reductie (deling met rest) modulo een groot getal n. Je kunt van een getal x gemakkelijk berekenen wat de rest is bij deling van x 2 door n, maar aan die rest kun je niet meer zien wat x 2 (of x) was en daarmee is deze stap niet direct omkeerbaar. Natuurlijk bestaat er wel een berekening die het origineel terug kan vinden, anders was het cryptosysteem onbruikbaar. Maar hoe de berekening van D verloopt, is aan de encryptiesleutel niet te zien. Omdat er twee verschillende sleutels worden gebruikt, noemen we deze klasse van algoritmen asymmetrisch, en omdat de encryptiesleutel niet geheimgehouden hoeft te worden (Oscar kan er immers toch niets mee beginnen) spreken we ook wel van public-keycryptografie. 1.2 Eenvoudige voorbeelden en aanvallen Omdat we voor getallen allerlei bewerkingen beschikbaar hebben, is het soms gemakkelijk de klare tekst op te vatten als een reeks getallen. We rekenen dan modulo m, vaak de grootte

1.2 Eenvoudige voorbeelden en aanvallen 3 van het alfabet. In de volgende voorbeelden gaan we uit van een alfabet van 32 tekens, en rekenen derhalve in Z 32 (met de getallen 0 tot en met 31). De elementaire eenheid van informatie is een bit, waarvan de waarde alleen 0 of 1 kan zijn. Om meer verschillende waarden te representeren worden meer bits gebruikt, met drie bits kunnen bijvoorbeeld al de acht waarden 000, 001, 010, 011, 100, 101, 110 en 111 worden weergegeven. De vroegere telexmachines werkten met 5-bits tekens en gebruikten een alfabet met 32 tekens. De 0 is spatie, 1 tot en met 26 zijn a tot en met z, 27 en 28 zijn punt en komma, 29 en 30 zetten de speciale tekens aan en uit. De laatste code, 31, is een no-op: deze code drukt geen enkel teken af en werd gebruikt voor het corrigeren van fouten. Had men namelijk een verkeerd teken in een papierstrook geponst, dan kon men dit corrigeren door enkele plaatsen terug te gaan, op de foute plaatsen vijf gaatjes te ponsen, en daarna verder te gaan. Men laat de geschiedenis van de cryptografie meestal beginnen bij de Romeinse keizer Caesar, die van alle geheime berichten die hij verzond de letters over drie plaatsen in het alfabet liet verschuiven. Dus werd, in dit Caesariaans systeem, een A een D, een B een E et cetera. Deze conventie was bij de ontvanger bekend en kon gemakkelijk ongedaan worden gemaakt. Dit Caesariaanse systeem gebruikte dus slechts één encryptiefunctie en één bijbehorende decryptiefunctie en voldeed daarom niet aan de eigenschap van parametriseerbaarheid. Het nadeel hiervan is gemakkelijk in te zien: de methode als geheel moet geheim blijven, want als de encryptie-decryptiemethode eenmaal is uitgelekt dan is die vanaf dat moment waardeloos. Het is daarom beter om niet een geheime methode te gebruiken, maar een klasse van functies waaruit een geheime sleutel een bepaald element specificeert. 1.2.1 Drie primitieve systemen Het schuifsysteem (shift system, ook nog wel als Caesariaans aangeduid) is een generalisatie van Caesars methode doordat de verschuiving door het alfabet over een variabel aantal posities wordt gedaan. Het gebruikt een sleutel k Z 32 en verschuift alle tekens k posities op in het alfabet, dus: E k (x) = x + k. Een voorbeeld: met k = 3 zal de tekst APEKOP worden versleuteld tot DSHNRS en uiteraard zal Oscar de subtiliteit van deze mededeling van Alice ontgaan. Bob schuift na ontvangst de letters natuurlijk gewoon weer terug: D k (y) = y k. In de encryptie- en decryptiefunctie is te zien dat de zender en de ontvanger dezelfde geheime informatie k gebruiken, alleen op een andere manier (optellen, respectievelijk aftrekken). Anders gezegd, de encryptiefunctie en de decryptiefunctie zijn niet gelijk, maar kennis van de encryptiefunctie is wel gelijk aan kennis van de decryptiefunctie. Cryptografische algoritmen die hieraan voldoen noemen we symmetrische algoritmen. In het affiene systeem maken we het nog iets mooier door de optelling te vervangen door een algemene lineaire transformatie modulo m (eerder was m 32, maar het kan ook een ander getal zijn). De sleutel is een paar (a, b), waarbij a een multiplicatieve inverse heeft modulo m (dat wil zeggen, er bestaat een a waarvoor a a = 1 modulo m). E (a, b) (x) = a x + b, en D (a, b) (y) = a (y b).

4 1 Inleiding tot symmetrische encryptie Een voorbeeld: de sleutel (11, 8) voldoet aan de eis, want 11 heeft inverse 3, immers 3.11 = 1 (we rekenen immers in Z 32, dus modulo 32). Met deze sleutel is en E(A) = E(1) = 11 1 + 8 = 19 = S, D(S) = D(19) = 3 (19 8) = 1 = A. Het schuif- en affiene systeem zijn speciale gevallen van het toepassen van een willekeurige permutatie op de letters van het alfabet. In het substitutiesysteem is de sleutel een willekeurige permutatie π S m, en E π (x) = π(x), en D π (y) = π 1 (y). 1.2.2 Drie primitieve aanvallen Helaas zal Oscar zich niet neerleggen bij de ondoorgrondelijkheid van de verzonden mededelingen en proberen er, ondanks de versleuteling, wijs uit te worden. Een poging om een cryptografische beveiliging te doorbreken wordt steeds een aanval genoemd. Hier is het doel van de aanval, versleutelde berichten te kunnen lezen. Hoewel men zou kunnen denken dat Alice en Bob een extra veiligheid zouden genieten door ook de werking van hun systeem voor Oscar geheim te houden, gaan we hier nooit van uit: Aanname 1.1 (Kerckhoffs principe) Oscar kent het cryptosysteem dat door Alice en Bob wordt gebruikt; alleen de sleutel is hem onbekend. Motivaties voor deze aanname zijn: 1. Een sleutel is gemakkelijker te vernieuwen dan een methode. Bij het onverhoopt uitlekken van de sleutel kan daarom snel een nieuwe worden gekozen, maar bij het onverhoopt uitlekken van de methode is het niet gemakkelijk een nieuwe te kiezen. Je moet dan weer een echt nieuw idee krijgen en software en apparatuur vervangen. 2. Bij veel vormen van communicatie tussen veel partijen wordt gebruikgemaakt van gestandaardiseerde software in browsers en email-programma s. In deze setting is het natuurlijk volstrekt onmogelijk om de standaarden geheim te houden. 3. Zeker een veelgebruikt algoritme is op de lange duur toch niet geheim te houden, zelfs niet als het alleen in hardware wordt aangeboden; zie kader 1.2. De kennis over het algoritme is sowieso bij de ontwerpers en bouwers van het systeem bekend, terwijl je als gebruiker niet wilt dat de ontwerpers je berichten kunnen lezen. 4. De veiligheid van communicatie berust op deze manier op de geheimhouding van zo weinig mogelijk informatie. En hoe minder informatie je geheim hoeft te houden, des te gemakkelijker dit is. 5. Als de methode bekend is, kunnen alle geschoolde cryptografen hun mening vormen over de veiligheid ervan, en deze kwestie publiekelijk bespreken. Omdat de sleutel k nu de enige informatie is waarvan we de geheimhouding aannemen, gaan we straks analyseren welke mate van bescherming de sleutel biedt. We kijken eerst naar de situatie waarin Oscar slechts een stukje cijfertekst heeft opgevangen: DSHNRS, maar over de sleutel en verdere teksten niets weet. We spreken dan van een cijfertekstaanval (Ciphertext-Only Attack (COA)). In het geval van het schuifsysteem zal Oscar de letters van de tekst steeds een positie terugschuiven door het alfabet en vindt hij in het gegeven voorbeeld achtereenvolgens:

1.2 Eenvoudige voorbeelden en aanvallen 5 DSHNRS CRGMQR BQFLPQ APEKOP In dit geval is de geheime boodschap na drie stappen al gevonden. Algemeen vindt Oscar natuurlijk een lijst van 32 (aantal mogelijke verschuivingen) van teksten, waaruit hij die tekst kiest die er als een echte boodschap uitziet. Oscar probeert in feite alle mogelijke verschuivingen uit. Een aanval waarbij alle mogelijke sleutels worden uitgeprobeerd noemen we een brutekrachtaanval (Brute Force Attack (BFA)). Bij het affiene systeem zijn er meer sleutels mogelijk, maar in ons geval ook niet meer dan 512; voor a zijn namelijk alleen oneven getallen mogelijk (dit wordt uitgelegd in hoofdstuk 4). Met computers ligt dit natuurlijk gemakkelijk binnen het bereik van een BFA maar we zullen hier een andere aanpak illustreren. Een klaretekstaanval (Known Plaintext Attack (KPA)) is een aanval waarbij de tegenstander beschikt over enkele bij elkaar passende paren (x, y) waarvoor E(x) = y. Behalve de cijfertekst is dus ook de klare tekst bij de aanvaller bekend, en hij kan nu proberen hieruit de sleutel te vinden of de klare tekst die bij volgende stukken cijfertekst hoort. Oscar kan tegen het affiene systeem een aanval lanceren op basis van twee zulke paren. Uit y 1 = a x 1 + b y 2 = a x 2 + b volgt namelijk (y 1 y 2 ) = a(x 1 x 2 ) en dus (mits x 1 x 2 een inverse heeft): a = (y 1 y 2 ) (x 1 x 2 ) 1 b = y 1 a x 1 Deze aanval is ook uit te voeren zonder klare tekst, namelijk door er een element van statistische analyse aan toe te voegen. Niet alle symbolen van het alfabet worden even vaak gebruikt: de spatie komt het vaakst voor (15 tot 25 procent), daarna zijn de E, A en T erg populair. Oscar kan in een cijfertekst van enkele woorden zoeken welk symbool (zeg y 1 ) het vaakst voorkomt en welk (zeg y 2 ) daarna. Hij probeert dan de aanval met x 1 een spatie en x 2 een E, en vindt vrij snel een sleutel waarmee de hele tekst leesbaar wordt. In het substitutiesysteem is het aantal mogelijke sleutels, 32! ofwel ongeveer 2.63 10 35, veel te groot om ze allemaal uit te proberen. Een brutekrachtaanval is hier dus niet mogelijk, toch is een cijfertekstaanval al snel succesvol, weer door statistische analyse. Het vaakst voorkomende symbool wordt op de spatie afgebeeld (et cetera). 1.2.3 Drie minder elementaire systemen Omdat het breken van de behandelde codes zo eenvoudig is, wilde men natuurlijk systemen maken die nog iets ingewikkelder in elkaar zaten, maar het substitutiesysteem is het meest algemene dat met de afzonderlijke letters is uit te voeren. Daarom ging men, al eeuwen geleden, over op zogenaamde blokversleuteling (block cipher), waarin een reeks x 1 x 2... x b van b symbolen wordt gecombineerd en in één keer versleuteld. Het Vigenère-systeem uit de zestiende eeuw wisselde b verschillende verschuivingen af: de sleutel was dus een rijtje (b, k 1,..., k b ) en E(x 1 x 2... x b ) = (x 1 + k 1 x 2 + k 2... x b + k b ),

6 1 Inleiding tot symmetrische encryptie Kader 1.2: Versleuteling bij mobiele telefonie Geen infrastructuur is zo open voor afluisteren als de vrije ether; radiosignalen verspreiden zich onafhankelijk van de bedoelde bestemming en kunnen door iedereen in het bestreken gebied met een ontvanger worden beluisterd. In sommige landen (Duitsland, de Verenigde Staten) genieten bellers een wettelijke bescherming tegen het beluisteren van gesprekken, maar echte gangsters (en de politie!) trekken zich hiervan weinig aan. In Nederland is het beluisteren van alle ethercommunicatie toegestaan; het kwetsbaarst zijn gebruikers van analoge draadloze telefoons in de 31MHz- en 46MHz-band. De modernere DECT-telefoons werken digitaal en eenvoudige scanners (foto) zijn niet met een DAomzetter uitgerust. Door de scanner aan een pc te koppelen kan echter ook digitale communicatie worden afgetapt. De DECT-standaard ondersteunt versleuteling, maar of dit ook daadwerkelijk is gebruikt verschilt per fabrikant. Het Europese gsm-systeem voor mobiele telefonie is niet alleen volledig digitaal, maar voorziet ook in encryptie tussen de mobiele telefoon en het basisstation. Het gebruikte algoritme, A5/1, is lang door de ontwerpers onder de pet gehouden, maar de werking werd achterhaald via reverse engineering van gsm-telefoons; zie sectie 3.3. Bij het ontwerp van de volgende generatie mobiele communicatie, het UMTS netwerk, is besloten te werken volgens Kerckhoffs principe: het ontwerp is geheel openbaar en de veiligheid berust alleen op geheimhouding van de sleutels. het blok (x b+1... x 2b ) gaat eender. Als variant op dit systeem kun je ook b affiene of zelfs substitutieversleutelingen gebruiken; we krijgen dan een polyalfabetisch systeem. Een transpositiesysteem verandert de letters niet, maar plaatst ze door elkaar. De sleutel is een permutatie over de indices van 1 tot b, en E(x 1 x 2... x b ) = (x π(1) x π(2)... x π(b) ). Polyalfabetische substitutie en transpositie kunnen naar hartelust worden gecombineerd. Een generalisatie van het affiene systeem is het Hill-systeem, met als sleutel een (inverteerbare) matrix K over Z m, en E K (x 1 x 2... x b ) = K x. Alle genoemde systemen hebben een bruikbare periode gehad, maar die is reeds lang geleden. De Vigenère-systemen zijn als de shift- en substitutiemethoden te breken zodra de blokgrootte b bekend is, en die is er met een statistisch filter gemakkelijk uit te zeven. Het systeem van Hill is gemakkelijk te breken met een bekende plaintext van b 2 tekens: de coefficiënten van K zijn dan uit een lineair stelsel oplosbaar. Een nog gecompliceerdere vorm van versleuteling is de stroomversleuteling, waarbij met een bepaald proces een zeer lange reeks sleutels wordt gegenereerd. Een mooi voorbeeld waren