Toepassing van cryptografische

Vergelijkbare documenten
slides10.pdf December 5,

Agenda SSN Week 3. Gastcollege Stemcomputers Gastcollege PKI Secret key Public Key Hashes DES AES Praktikum: Cryptool en RSAFAQ

Wireshark. Open Source Vroeger Ethereal Wireless kan lastig zijn

Datacommunicatie Cryptografie en netwerkbeveiliging

Concept. Inleiding. Advies. Agendapunt: 04 Bijlagen: - College Standaardisatie

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

RSA. F.A. Grootjen. 8 maart 2002

Cryptografie: de wetenschap van geheimen

Netwerken. Beveiliging Cryptografie

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

Public Key Cryptography. Wieb Bosma

Forum Standaardisatie. Expertadvies: Vervanging MD5 door SHA 2 op lijst met gangbare standaarden. Datum 5 augustus 2010

De digitale handtekening

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

De cryptografie achter Bitcoin

Code signing. Door: Tom Tervoort

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

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

Het RSA Algoritme. Erik Aarts - 1 -

Elliptische krommen en digitale handtekeningen in Bitcoin

De wiskunde achter de Bitcoin

Complex multiplication constructions in genus 1 and 2

Informatie coderen en kraken

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

ICT en de digitale handtekening. Door Peter Stolk

BWI-werkstuk geschreven door: Aart Valkhof Maart PGP: Pretty Good Privacy. Een overzicht.

Crypto, Certificaten, SSL, PKI What can possibly go wrong? ISC2 cryptonight 10 juni 2014

Cryptografische beveiliging op het Internet

STUDIEWIJZER CRYPTOGRAPHY BACHELOR IN DE TOEGEPASTE INFORM ATICA SEMESTER 5 ACADEMIEJAAR LECTOR JOHAN GALLE

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

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

De rol van de digitale handtekening bij de archivering van elektronische documenten

Bijzondere kettingbreuken

Postkwantumcryptografie

Algemene toelichting hash

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

Zwakke sleutels voor RSA

aé=êçä=î~å=çé=åêóéíçäçöáé=éå=çé=çáöáí~äé=ü~åçíéâéåáåö= áåò~âé=çé=îéáäáöüéáç=î~å=éäéâíêçåáëåüé=áåñçêã~íáéj ìáíïáëëéäáåö

Les D-04 Foutdetectie en correctie

Digitale Handtekening Praktische problemen bij toepassingen TestNet: Testen van Security ING Group, April 2006 Ruud Goudriaan

Probabilistische aspecten bij public-key crypto (i.h.b. RSA)

Cursus Cryptografie MODERN

Rekenen aan wortels Werkblad =

Door Niko Visser. Bewijsmomenten met waarborgen voor zekerstelling met ISO 27001

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

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Security. Eerste tentamen

WEP, chopchop en WPA

College Cryptografie. Cursusjaar Moderne systemen. 7 januari 2006

Beveiliging van persoonlijke bestanden door middel van encryptie een tutorial door Nick heazk Vannieuwenhoven

Getaltheorie I. c = c 1 = 1 c (1)

Taak Versleutelen en dan weer terug... 1

Priemfactoren. Grote getallen. Geavanceerde methoden. Hoe ontbind je een getal N in priemfactoren?

Hash-functies onder vuur

Eerste Deeltoets Security 22 mei 2015, , Beatrix 7e.

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Cryptografie met krommen. Reinier Bröker. Universiteit Leiden

Magidoku s en verborgen symmetrieën

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

AANVALLEN OP WES3 + LEN SPEK & HIDDE WIERINGA

Verzending van gestructureerde berichten via SFTP Veel gestelde vragen (FAQ)

OPLOSSINGEN VAN DE OEFENINGEN

Sleutelbeheer: noodzaak bij een veilig Internet

Beschrijving pseudonimisatieplatform ZorgTTP

De wiskunde en toepassing. van de cryptologie

Ontmanteling contactloze chipkaart

Geldwisselprobleem van Frobenius

7 Deelbaarheid. 7.1 Deelbaarheid WIS7 1

Spreekbeurt Nederlands Cryptologie

Digitaal certificaat Ondertekenen en encryptie. De meest recente versie van dit document kunt u vinden op:

Zoek- en sorteeralgoritmen en hashing

Tweede Toets Security 2 november 2015, , Educ-α.

Cryptografie Theorie in de Praktijk

Uitwerking puzzel 91-7: Je kunt het schudden

FACTORISATIE EN CRYPTOGRAFIE

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

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

Download de software - U vindt deze op onze website:

Vakbijlage. Forensisch gebruik van bestandskenmerken. Inhoudsopgave. 1. De vakbijlage algemeen. 3. Bestandskenmerken. 2. Inleiding

In het voorgaande artikel werd aangegeven hoe de vaste verdeling van cijfers in getallen, zoals deze voortvloeit

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.

Worteltrekken modulo een priemgetal: van klok tot cutting edge. Roland van der Veen

PG blok 4 werkboek bijeenkomst 4 en 5

De Hamming-code. de wiskunde van het fouten verbeteren in digitale gegevens. Benne de Weger Faculteit Wiskunde en Informatica, TU/e 1/21

Eigenschap (Principe van welordening) Elke niet-lege deelverzameling V N bevat een kleinste element.

Beveiligen alternatieve media. Datum 25 november 2016 Status Definitief

Practicum algemeen. 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag

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.

HOOFDSTUK 3: Architecturale aspecten van beveiliging

Information Managing Day 2017 De rol van information management in een smart Curaçao. 12 mei Drs. ing. Elgeline Martis Hoofd CARICERT

5,4. Werkstuk door een scholier 5273 woorden 28 november keer beoordeeld. Informatica ENCRYPTIE

Uitwerkingen van geselecteerde opgaven (laatste update 4 Januari 2018) Zebra 50. De Wiskunde van Rubik s Kubus.

Project 4 - Centrale Bank. Rick van Vonderen TI1C

11. Les 11 Vermenigvuldigen met 1. CC Naamsvermelding-GelijkDelen 3.0 Nederland licentie.

m.b.v. digitale certificaten en PKI Versie: mei 2002 Beknopte Dienstbeschrijving beveiligen van

Introductie in cryptografie

Aanvullende tekst bij hoofdstuk 1

Examen VWO - Compex. wiskunde A1

Projectieve Vlakken en Codes

Hoofdstuk 6. Congruentierekening. 6.1 Congruenties

Transcriptie:

G 0130 1 Toepassing van cryptografische technieken W. S. de Groot RE RA 1 1 Inleiding G 0130 3 1.1 Algemeen G 0130 3 1.2 Leeswijzer G 0130 3 2 Basisbegrippen G 0130 4 3 Cryptografische algoritmen G 0130 4 3.1 Hoofdindeling crypto-algoritmen G 0130 4 3.2 DES G 0130 6 3.2.1 Inleiding G 0130 6 3.2.2 Werking DES G 0130 6 3.2.3 De DES-modi G 0130 10 3.2.4 Veiligheid DES G 0130 12 3.2.5 De opvolging van DES G 0130 13 3.3 RSAG 0130 13 3.3.1 Inleiding G 0130 13 3.3.2 Werking RSAG 0130 14 3.3.3 Veiligheid RSAG 0130 15 3.3.4 Andere asymmetrische algoritmen G 0130 16 1 W. S. de Groot RE RAis werkzaam als IT-auditor bij de belastingdienst die voor de informatiebeveiliging mede gebruikmaakt van cryptografische technieken. Het voornemen van de Belastingdienst is het gebruik van deze technieken in de komende jaren uit te breiden.

G 0130 2 Toepassing van cryptografische technieken 3.4 Hashing algoritmen G 0130 17 3.4.1 Algemeen G 0130 17 3.4.2 De verjaardagsparadox G 0130 17 3.4.3 De DES-hash G 0130 19 3.4.4 De MD-algoritmen G 0130 20 3.4.5 Secure Hashing Algorithm (SHA-1) G 0130 22 3.4.6 RIPEMD-160 G 0130 22 4 Voorbeelden van gebruik G 0130 24 4.1 Beoordelingsaspecten G 0130 24 4.1.1 Voorbeeld 1 G 0130 26 4.1.2 Voorbeeld 2 G 0130 27 4.1.3 Voorbeeld 3 G 0130 28 4.1.4 Voorbeeld 4 G 0130 29 4.1.5 Voorbeeld 5 G 0130 30 4.1.6 Voorbeeld 6 G 0130 31 4.1.7 Voorbeeld 7 G 0130 33 4.1.8 Voorbeeld 8 G 0130 34 4.1.9 Voorbeeld 9 G 0130 35 5 Sleutelbeheer G 0130 36 5.1 Rollenspel sleutelbeheer G 0130 37 5.2 Sleutelsystemen G 0130 37 5.3 Levenscyclus van een sleutel G 0130 37 5.3.1 Aanmaak van een sleutel (of sleutelpaar) G 0130 37 5.3.2 Distributie van sleutels G 0130 38 5.3.3 Opslag van sleutels G 0130 38 5.3.4 Wisseling van sleutels G 0130 39 5.3.5 Vernietiging van sleutels G 0130 39 5.3.6 Het gebruik van chipkaarten bij sleutelbeheer G 0130 39 5.4 Archivering van berichten G 0130 40 6 Aandachtspunten voor de IT-auditor G 0130 41 6.1 De rol van de IT-auditor bij de keuze van een cryptosysteem G 0130 41 6.2 Aandachtspunten voor het werkprogramma van de IT-auditor G 0130 41 7 Aanbevolen literatuur en software G 0130 43 8 Literatuur G 0130 44

G 0130 3 1 Inleiding 1.1 Algemeen 1.2 Leeswijzer De term cryptografie roept bij een aantal mensen romantische beelden op van uitgezonden spionnen, verzegelde codeboeken, listig verborgen zendapparatuur en heimelijk gekopieerde stafkaarten. Kortom, een wereld van vaderlandsliefde, geheime missies, list, intrige en verraad. De moderne IT-auditor zal bij de term cryptografie veel minder associaties leggen met dergelijke beelden. Het huidige gebruik van cryptografische technieken (beter: cryptologische technieken) kent een beduidend minder Mata Hari - of 007 -gehalte dan derden vermoeden. Het gebruik van cryptografische technieken kan een aantal kwaliteitswaarborgen bewerkstelligen bij bijvoorbeeld datacommunicatie. Zo kunnen de kwaliteitsaspecten integriteit, exclusiviteit, authenticiteit en onweerlegbaarheid bij berichtuitwisseling door middel van cryptografische technieken worden gewaarborgd, waardoor de belangstelling voor cryptografische technieken de laatste jaren sterk is toegenomen. In dit hoofdstuk wordt een aantal cryptografische grondbeginselen uitgelegd. Daarbij is gekozen voor een pragmatische invalshoek en is getracht de wiskundige onderbouwing van een aantal uitspraken te minimaliseren. Degenen die daar wél in geïnteresseerd zijn, alsmede degenen die zich breder willen oriënteren op cryptografie en haar toepassingen, worden verwezen naar de literatuuropgave aan het einde van dit hoofdstuk. Tevens worden op meerdere plaatsen in de tekst aanwijzingen gegeven, waar de IT-auditor aandacht aan kan schenken bij de beoordeling van het gebruik van cryptografische technieken. In het vervolg van dit hoofdstuk wordt in paragraaf 2 kort een aantal cryptografische basisbegrippen behandeld. Paragraaf 3 bevat een uiteenzetting over de te gebruiken technieken. Er wordt ingegaan op de werking van de Data Encryption Standard (DES) en het crypto-algoritme van Rivest, Shamir and Adleman (RSA). Deze paragraaf wordt afgesloten met een behandeling van hashingalgoritmen. De lezer, die minder is geïnteresseerd in de technische bagage, wordt geadviseerd in ieder geval paragraaf 3.1. door te lezen. In paragraaf 4 wordt de praktische toepassing van cryptografische technieken aan de hand van een aantal voorbeelden toegelicht. Paragraaf 5 richt zich op de organisatorische inbedding van de cryptotechnieken en wel met name op de administratief-organisatorische procedures rondom het sleutelbeheer. Paragraaf 6 geeft een samenvatting van de aandachtspunten waar de IT-auditor, belast met de advisering en de beoordeling van de toepassing van de hier behandelde technieken, rekening mee kan houden.

G 0130 4 Toepassing van cryptografische technieken De aandacht wordt erop gevestigd dat dit hoofdstuk is geschreven naar de stand van de techniek van medio 1999. Er wordt op gewezen dat door de voortschrijding van de techniek sommige veiligheidsmarges kunnen verlopen. 2 Basisbegrippen Cryptografie vormt een onderdeel van de cryptologie. Cryptologie vormt een samentrekking van de Griekse woorden cruptos (verborgen) en logo (woord) ofwel de leer van het verborgen houden van informatie voor derden. Cryptografie behelst de leer van het vercijferen (coderen). Een tweede onderdeel van de cryptologie is de cryptoanalyse (ook wel: cryptanalyse). Deze discipline houdt zich bezig met methoden en technieken om cijferteksten te breken of te kraken. Onder encryptie wordt het proces van vercijferen verstaan. Dit gebeurt met behulp van een sleutel. De tegenhanger decryptie betreft het proces om de originele tekst (de klare tekst ofwel de boodschap) weer terug te krijgen. Klare tekst is dus de door middel van encryptie te beschermen tekst. De klare tekst wordt ook aangeduid met het begrip boodschap(b). Cijfertekst (C) is de geëncrypte klare tekst. 3 Cryptografische algoritmen Alvorens in te gaan op een tweetal specifieke algoritmen, wordt hieronder eerst een hoofdindeling van crypto-algoritmen gegeven. 3.1 Hoofdindeling crypto-algoritmen De meest gebruikelijke onderverdeling van de crypto-algoritmen is die in de symmetrische en de asymmetrische algoritmen. De verschillen ogen gering, maar de gevolgen zijn fundamenteel verschillend voor de implementatie en het gebruik van het cryptosysteem, waarin de algoritmen zijn verwerkt. Er wordt gesproken van een symmetrisch algoritme als er, zowel bij encryptie als decryptie, dezelfde sleutel wordt gebruikt. Bij een asymmetrisch algoritme daarentegen worden er voor het encryptie- en decryptieproces verschillende sleutels gebruikt. Dit kan als volgt worden weergegeven: Bij toepassing van een asymmetrisch algoritme wordt er op een zeker moment een sleutelpaar gegenereerd door de gebruiker van het cryptosysteem. Deze twee sleutels (s1 en s2) horen bij elkaar. Het enkele bezit van één der sleutels geeft echter niet de mogelijkheid om de bijbehorende sleutel te berekenen.

G 0130 5 0013-0233 Encryptie Decryptie Boodschap E Cijfertekst D Boodschap Sleutel(s) = Sleutel(s) Figuur 1. Symmetrisch algoritme. 0013-0234 Encryptie Decryptie Boodschap E Cijfertekst D Boodschap Sleutel(s1) <> Sleutel(s2) Figuur 2. Asymmetrisch algoritme. De zender van de te versturen informatie behoudt één sleutel (s1 of s2) en geeft de bijbehorende sleutel (s2 of s1) aan de ontvanger van de informatie. Het maakt daarbij dus niet uit of de zender s1 of s2 behoudt en respectievelijk s2 of s1 afgeeft. Beide sleutels hebben dezelfde cryptografische mogelijkheden. Let wel: het is dus niet zo dat het onderscheid in symmetrische en asymmetrische algoritmen iets omtrent de symmetrie van het algoritme zelf aanduidt. Het onderscheid is alleen aanwezig in de al dan niet identieke sleutel(s) die bij de encryptie, dan wel decryptie worden gebruikt. Er zijn meerdere symmetrische en asymmetrische crypto-algoritmen. Aangezien dit hoofdstuk vooral gericht is op de aandachtspunten voor de IT-auditor bij (de beoordeling van) het gebruik van cryptografische technieken, wordt in de volgende paragrafen één symmetrisch en één asymmetrisch algoritme behandeld. Dit betreft respectievelijk de Data Encryption Standard (DES) en het asymmetrische RSA-algoritme, vernoemd naar de ontwerpers Rivest, Shamir en Adleman. DES en RSAkunnen beide beschouwd worden als vertegenwoordigers van geldende industriestandaarden. Men kan zich afvragen waarom er gebruik dient te worden gemaakt van een standaardcryptosysteem. Het gebruik van niet-gestandaardiseerde cryptosystemen (bedrijfseigen of proprietary systems) kan zeker zinvol zijn bij datacommunicatie binnen één en dezelfde organisatie. Voor de communicatie tussen verschillende organisaties is het zinvol een standaardcryptosysteem te hanteren, enerzijds vanwege hun bewezen veiligheid, anderzijds van-

G 0130 6 Toepassing van cryptografische technieken wege het open karakter (in de zin van de openbaarheid van het algoritme) van dergelijke standaarden. 3.2 DES 3.2.1 Inleiding 3.2.2 Werking DES Aan het begin van de zeventiger jaren kreeg het Amerikaanse National Institute for Standards and Technology (NIST), toen nog het National Bureau of Standards (NBS) geheten, de opdracht federale richtlijnen op te stellen voor effectief en efficiënt gebruik van informatietechnologie. Hieruit vloeide een taak voort ten aanzien van informatiebeveiliging. Het NBS schreef daarvoor in mei 1973 een oproep voor een vercijferingsalgoritme uit. De respons was teleurstellend, waarna een tweede oproep in augustus 1974 volgde. Van de inzendingen van deze tweede oproep bleek één inzending aan de gestelde eisen te voldoen: het door IBM ontwikkelde Lucifersysteem. Een aangepaste versie van dit systeem werd in 1977 als een federale standaard geaccepteerd onder de naam Data Encryption Standard (DES). Het algoritme is later tevens tot standaard verheven door het American National Standards Institute (ANSI) onder de naam Data Encryption Algorithm (DEA). Zoals ook in de volgende paragraaf wordt aangetoond, is het DES-algoritme openbaar. Deze openbaarheid van DES gold vanaf het eerste moment. De ontwerpcriteria van DES zijn echter pas in de jaren negentig gepubliceerd. Inmiddels heeft het NIST op 12 september 1997 een nieuwe oproep gedaan voor een symmetrisch crypto-algoritme, de Advanced Encryption Standard (AES). Zie verder paragraaf 3.2.5. De Data Encryption Standard (DES) is een blokvercijferingsalgoritme. Dit betekent dat de te vercijferen boodschap wordt opgesplitst in blokken (bij DES ieder 64 bits groot) die achtereenvolgens worden vercijferd. Het maakt daarbij niet meer uit of de boodschap een tekstbestand, een programma, of zelfs gedigitaliseerd beeld of geluid is. De enige te stellen eis betreft het in digitale vorm voorhanden zijn van de boodschap. De sleutel, die bij de vercijfering wordt gehanteerd, is ook 64 bits lang. Van deze sleutel worden echter slechts 56 bits gebruikt; de overige 8 bits zijn pariteitsbits. Het aantal mogelijke sleutels is dus 2 56, ofwel 7,2 10 16. De oorspronkelijke Lucifervariant van DES kende overigens een blok- en sleutellengte van 128 bits. Het vercijferen van een invoerblok gaat in 16 ronden. Bij iedere ronde wordt gebruikgemaakt van een, van de 64-bit sleutel afgeleide, subsleutel met een lengte van 48 bits. De sterkte van een crypto-algoritme wordt wel aangegeven met de term lawine-effect (avalanche). Dit is de maat voor het aantal bits dat wijzigt in het uitvoerblok na één versleutelronde als er in het inputblok één bit wordt gewijzigd. Men spreekt van een ideaal lawine-effect als de helft van het aantal bits in het uitvoerblok na één ronde is gewijzigd, nadat er in het invoerblok één bit is veranderd. DES kent een sterk lawine-effect. In algemene zin dient de IT-auditor het lawine-effect van het te beoordelen algoritme te kennen.

G 0130 7 In figuur 3 op de volgende pagina wordt het principeschema van DES weergegeven. 0013-0235 Invoer (64 bit) Permutatie Linkerblok (32 bits) Rechterblok (32 bits) s1 t/m s16 Herhaling 16 keer + F Voormalig rechterblok Vercijferd linkerblok Permutatie Uitvoer (64 bit) Figuur 3. Het DES-principeschema. Op het invoerblok van 64 bits wordt eerst een permutatie uitgevoerd; een omwisseling van bits volgens een vast patroon. Vervolgens wordt het 64-bit blok gesplitst in twee 32-bit blokken. In ieder van de 16 ronden wordt het linkerblok gexored met de uitkomst van de cijferfunctie F. Voor deze cijferfunctie wordt het rechterblok van 32 bits als invoer gebruikt, alsmede de desbetreffende subsleutel. Vervolgens worden het linker- en rechterblok verwisseld voor de volgende van de 16 ronden. Iedere blokhelft wordt dus acht keer vercijferd. De XOR-functie zelf wordt in onderstaande tabel aangegeven. Deze functie kan gemakshalve worden voorgesteld als een binaire optelling, waarbij de eventuele carry s buiten beschouwing worden gelaten. XOR 0 1 0 0 1 1 1 0 Na 16 ronden worden de twee 32-bit blokken weer samengevoegd tot één 64-bit blok; er vindt weer een permutatie plaats

G 0130 8 Toepassing van cryptografische technieken (de inverse van de oorspronkelijke permutatie aan het begin van de 16 vercijferronden). Aldus ontstaat er een 64-bit uitvoerblok. In het DES-schema is een zogenaamd Feistel-netwerk te herkennen. Dit komt in veel symmetrische crypto-algoritmen voor. De structuur hiervan is als volgt: 0013-0236 linker invoerblok rechter invoerblok deelsleutel F bijv. XOR voormalig rechterblok voormalig linkerblok Figuur 4. Een Feistel-netwerk. Bij een Feistel-netwerk wordt het invoerblok gesplitst in een linker- en een rechterblok. Eén van de blokken doorloopt de cryptofunctie F. Daarbij wordt per ronde een (andere) deelsleutel gebruikt. Het resultaat hiervan wordt bijvoorbeeld gexored met het rechterblok. DES gebruikt de XOR-functie, maar er zijn ook andere mogelijkheden. Vervolgens worden de twee blokken verwisseld om de volgende versleutelronde in te gaan. Terug naar DES: de cijferfunctie F van DES wordt nader beschouwd. Zie figuur 5. Het rechterblok (32 bits) wordt volgens een vaste systematiek geëxpandeerd tot 48 bits. Er worden dus volgens een vast patroon 16 bits tussen- of bijgevoegd. Het resultaat wordt gexo- Red met de voor de desbetreffende vercijferronde valide subsleutel. Het resultaat (48 bits) wordt verdeeld in acht blokjes van zes bits die als invoer dienen voor evenzovele substitutieboxen.

G 0130 9 0013-0237 rechterbl. 32 bits E Expansie 48 bits subsleutel 48 bits + XOR-functie S1 S2 S3 S4 S5 S6 S7 S8 substitutieboxen 8 maal 4 bits output P permutatie uitvoer (32 bits) Figuur 5. De cijferfunctie F van DES. Per substitutiebox worden de zes invoerbits vervangen (gesubstitueerd) door vier uitvoerbits. Deze vier uitvoerbits van alle acht substitutieboxen worden vervolgens samengevoegd tot 32 uitvoerbits, die na wederom een permutatie, de uitvoer van de cijferfunctie F vormen. Het is deze uitvoer die weer met het 32-bit linkerblok gexored wordt. Uit het voorgaande mag niet de indruk worden gewekt dat de werking van de substitutieboxen een complexe zaak is: feitelijk is hier sprake van een tabel, met 2 6 = 64 waarden. Hierbij geven het eerste en het laatste bit van het invoerblokje de rij en de overige vier bits de kolom aan, waar op het snijpunt de substitutiewaarde van vier bits wordt gevonden. In figuur 6 wordt een voorbeeld gegeven van de werking van een substitutiebox: in dit geval substitutiebox 6. De reden waarom hier de werking van DES gedetailleerd wordt beschreven, is niet alleen om duidelijk te maken hoe DES werkt. Het dient tevens om aan te tonen dat er op dit vlak geen geheimen aan DES kleven: de werking van DES, haar cijferfunctie en de inhoud van alle substitutieboxen zijn in de literatuur beschreven.

G 0130 10 Toepassing van cryptografische technieken 0013-0238 Invoer 0 1 1 1 0 1 0 1 2 3 0 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 1015 4 2 712 9 5 6 1 13 14 011 3 8 914 15 5 2 8 12 3 7 0 4 10 113 11 6 4 3 2 12 9 5 15 1011 14 1 7 6 0 8 13 Uitvoer 0 0 1 1 Figuur 6. Substitutiebox 6. Het decryptieproces is identiek aan het encryptieproces, met dien verstande dat daar waar in het encryptieproces de subsleutels in de volgorde 1 tot en met 16 worden gebruikt, dit bij het decryptieproces in omgekeerde volgorde (16 t/m 1) wordt gedaan. DES kent een viertal zwakke sleutels en een zestal semi-zwakke sleutelparen. Een zwakke DES-sleutel levert na tweevoudige vercijfering dus na tweevoudige encryptie, wederom de boodschap in klare tekst op. Dit betekent dat bij een zwakke sleutel de afgeleide subsleutel s1 gelijk is aan s16, s2 aan s15, etc. Een semi-zwak sleutelpaar is een sleutelpaar waarbij na encryptie met de ene sleutel en encryptie met de tweede sleutel wederom de klare tekst resulteert. De zwakke en semi-zwakke sleutels zijn bekend. Bij iedere hard- of software-implementatie van DES dient er te worden getoetst of er voor het cryptoproces geen zwakke of semi-zwakke sleutel wordt gehanteerd. Hier ligt een aandachtspunt voor de IT-auditor. 3.2.3 De DES-modi DES kent een aantal varianten. Er zijn meerdere mogelijkheden in het aantal vercijferronden, de lengte van de sleutel en de wijze van het gebruik: de DES-modi. DES kan in een viertal modi worden toegepast, te weten: de Electronic Codebook Mode (ECB-mode); de Cipher Block Chaining Mode (CBC-mode); de k-bit Cipher Feedback Mode (CFB-mode); de k-bit Output Feedback Mode (OFB-mode). Uitsluitend de eerste twee modi zullen hierna worden behandeld. Daarnaast zal in paragraaf 3.4.3. stil worden gestaan bij het

G 0130 11 principe van one-way DES-hashtotalen, toegepast in de CBCmodus. Electronic Codebook Mode (ECB-mode) De ECB-modus is de meest eenvoudige werkingswijze van DES. 0013-0239 B1 B2 B3 s DES s DES s DES C1 C2 C3 Figuur 7. De ECB-modus van DES. De boodschap wordt in 64-bit blokken opgedeeld, B1, B2, enzovoorts. Deze worden vercijferd met behulp van de DES-sleutel s. Het resultaat is een cijfertekst C1, C2, etc. Het voordeel van dit mechanisme is de geringe foutpropagatie: een omgevallen bitje in één van de cijfertekstblokken leidt in principe bij het decrypten tot slechts een gelimiteerde schade ter grootte van het desbetreffende 64-bit boodschapblok. Het systeem kent echter ook een tweetal nadelen, te weten: het encryptieproces is slechts afhankelijk van één sleutel. Raakt deze sleutel bekend, dan zijn alle cijferteksten te decrypten; gelijke delen van de boodschap kunnen tot gelijke delen cijfertekst leiden. Dit betekent dat er in de cijfertekst terugkerende patronen kunnen voorkomen, een gegeven dat cryptoanalisten houvast geeft. Een oplossing voor deze nadelen is te vinden in het gebruik van DES in de CBC-modus. Cipher Block Chaining mode (CBC-mode) In de CBC-modus van DES wordt er naast een DES-sleutel gebruikgemaakt van een initiële vector (IV). Deze wordt, voordat de daadwerkelijke vercijfering plaatsvindt, gexored met het eerste 64-bit boodschapblok. De resulterende cijfertekst vervangt vervolgens de initiële vector, en wordt gexored met het tweede 64-bit boodschapblok, enzovoorts. Het gevolg is dus dat de ontstane cijfertekst wordt gebruikt bij het vercijferen van het volgende 64-bitblok. Dit mechanisme kan echter tot een grote foutpropagatie leiden.

G 0130 12 Toepassing van cryptografische technieken 0013-0240 IV B1 B2 B3 + + + s DES s DES s DES C1 C2 C3 Figuur 8. De CBC-modus van DES. 3.2.4 Veiligheid DES Van meet af aan is er discussie geweest omtrent de veiligheid van DES. Aanvankelijk gebeurde dit, omdat men daar de ontwerpcriteria eerst niet waren gepubliceerd vreesde voor een achterdeur in het algoritme. Dit zou ten behoeve van bepaalde nationale diensten opgenomen kunnen zijn. Na meer dan twintig jaar zoeken is er echter nimmer een dergelijke achterdeur aangetoond. Verder bestaat er twijfel rond de veiligheid van DES in verband met de relatief korte sleutellengte (56 bits). Er zijn in de literatuur specifieke machines beschreven die zich richten op het door middel van uitputtend sleutelonderzoek breken van DES-cijferteksten. Dergelijke machines zijn ook daadwerkelijk gebouwd. De relatief korte sleutellengte is de voornaamste reden waarom het NIST haar oproep voor de Advanced Encryption Standard (AES) heeft doen uitgaan. Bij dit alles dient de IT-auditor zich wel bewust te zijn van de noodzaak van een risicoafweging. In het normale zakelijke verkeer is het vereiste niveau van de informatiebeveiliging niet steeds even hoog als voor staatsgeheimen van een land in oorlog. Een gebruikswijze van DES die vooralsnog wél als veilig wordt beschouwd, is de toepassing van het zogenaamde Triple-DES. Triple-DES kan bijvoorbeeld worden toegepast voor het veilig opslaan van DES- en/of RSA-werksleutels. Triple-DES wordt onder meer in de bancaire wereld veelvuldig gebruikt. Van Triple-DES zijn twee varianten te onderscheiden, een tweesleutel Triple-DES en een driesleutel Triple-DES. Bij het tweesleutel Triple-DES wordt de boodschap eerst geëncrypt met

G 0130 13 sleutel 1, vervolgens gedecrypt met sleutel 2 en daarna nogmaals geëncrypt met sleutel 1 (E s1 D s2 E s1 ). Bij het driesleutel Triple-DES hanteert men bij de derde keer dat DES wordt gebruikt een derde sleutel (E s1 D s2 E s3 ). Een driesleutel Triple-DES is aanmerkelijk sterker dan een tweesleutel Triple-DES. Wel moet de IT-auditor bij beide verschijningsvormen van Triple-DES er op letten dat de drie versleutelronden volledig na elkaar worden uitgevoerd. Een toepassing van Triple-DES, waarbij de drie versleutelronden in elkaar vervlochten werden toegepast, bleek zwakheden te vertonen. De sterkte van deze laatste variant bleek vrijwel overeen te komen met een single-des toepassing. 3.2.5 De opvolging van DES Zoals in paragraaf 3.2.1. al is aangegeven, heeft het National Institute for Standards and Technology (NIST) in september 1997 een oproep gedaan voor de Advanced Encryption Standard (AES). Aan de AES worden de volgende eisen gesteld: het moet een symmetrisch crypto-algoritme betreffen; het moet een blokvercijferingsalgoritme (en dus niet een random getallengenerator) betreffen; de sleutellengte moet 128, 196 of 256 bit lang zijn, terwijl het invoerblok en het uitvoerblok 128 bit lang moeten zijn; en heel belangrijk: het gebruik moet vrij zijn van royalties en dergelijke. In augustus 1998 zijn er vijftien AES-inzendingen bekendgemaakt. Het betreft: CAST-256 CRYPTON DEAL DFC E2 FROG HPC LOKI97 MAGENTA MARS RC6 RIJNDAEL SAFER+ SERPENT TWOFISH. De meeste van deze algoritmen betreffen Feistel-netwerken. In augustus 2000 wordt de winnaar bekendgemaakt. Meer informatie is verkrijgbaar op http://www.nist.gov/aes. 3.3 RSA 3.3.1 Inleiding In 1976 publiceerden Diffie en Helman het artikel New directions in cryptography. In dit stuk werden de basisprincipes voor een 2-sleutel cryptosysteem beschreven. Diffie en Helman spra-

G 0130 14 Toepassing van cryptografische technieken ken overigens van een public-key-system, omdat één van de twee sleutels geheim blijft en de andere openbaar kan worden gemaakt. In 1978 kwamen Rivest, Shamir en Adleman met de eerste concrete invulling voor een asymmetrisch cryptosysteem. Dit algoritme is gepatenteerd in de Verenigde Staten. De exclusieve licentierechten van deze patenten worden gehouden bij Public Key Partners (PKP) of Sunnyvale in California. In Europa is de octrooiaanvraag door de eerdere publicatie van Diffie en Helman afgewezen. Het DES-algoritme is overigens niet gepatenteerd, niet in de Verenigde Staten en ook niet daarbuiten. Daarnaast is het gebruik van het DES- en RSA-algoritme onderhevig aan wettelijke exportbepalingen: op de hardware- en softwareproducten, waarin de algoritmes zijn verwerkt, rust in principe een exportverbod. De twee belangrijkste wetten op dit gebied zijn de Export Administration en de Arms Export Control Act. De National Security Agency (NSA) dient in principe positief te adviseren over het afgeven van een exportlicentie. De Amerikaanse overheid heeft echter in september 1998 versoepelingen van deze regelgeving aangekondigd. Overigens is er buiten de Verenigde Staten een aantal leveranciers, die het DES- en RSA-algoritme zelf in hun hard- en/of software hebben geïmplementeerd. 3.3.2 Werking RSA De werking van het RSA-algoritme berust op een wiskundig principe. Alvorens daar op ingegaan kan worden, dient een tweetal wiskundige begrippen kort te worden belicht: de priemgetallen en modulobewerkingen. Priemgetallen: priemgetallen zijn gehele getallen, die uitsluitend deelbaar zijn door het getal 1 en het priemgetal zelf. Voorbeelden van priemgetallen zijn: 1, 2, 3, 5, 7, 11, 13, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, enzovoorts. Modulobewerkingen: Als wordt geschreven: a = b mod n(uit te spreken als: a is gelijk aan b modulo n), wordt bedoeld dat a gelijk is aan b op een veelvoud van n na. Een andere schrijfwijze zou dus zijn: a=b+k n. Bijvoorbeeld: 26 = 2 mod 4 want 26 = 2 + k 4 bij k = 6. De werking van het RSA-algoritme verloopt in enkele stappen: kies twee grote priemgetallen, bijvoorbeeld x en y; bepaal het product hiervan: z = x y; kies een willekeurig getal a dat voldoet aan de volgende conditie: 3<a<(x-1) (y-1), waarbij tevens geldt dat het getal a een relatieve priem is, ten opzichte van het product (x-1) (y-1). Dit laatste betekent dat de grootste gemene deler van a en (x-1) (y-1) het getal 1 is; bereken het getal b uit de formule: a b = 1 mod (x-1) (y-1). Bij RSAworden de geheime en de openbare sleutels vervolgens gevormd door de combinaties (a,z) en (b,z) of andersom (b,z) en

G 0130 15 (a,z). De kern van het RSA-algoritme berust op de onmogelijkheid om b te berekenen uit alleen de getallen a en z of a uit de getallen b en z. Zowel de encryptie als de decryptie vindt plaats via machtsverheffen. Als een karakter uit de boodschap in klare taal met de letter B wordt voorgesteld, dan vindt de encryptie plaats door C = B a mod z. De decryptie vindt plaats via de formule: B=C b mod z. Een verduidelijkend voorbeeld is hier wel op zijn plaats. Allereerst worden de geheime en openbare RSA-sleutels berekend uit de vier hierboven weergegeven stappen: kies twee grote priemgetallen. Voor de eenvoud van dit getallenvoorbeeld worden twee kleine priemgetallen genomen: 11 en 13; bereken het product: z=x y, z is dus 11 13 ofwel 143. Voor het gemak wordt ook meteen het product berekend (x-1) (y- 1), dus 10 12 = 120; kies een getal a waarbij geldt dat 3 bereken b uit de formule: a b = 1 mod (x-1) (y-1) ofwel 7b = 1 mod 120. Hieruit volgt dat b = 143, want 7 103 = 1+6 120, bijk=6. Stel dat een klare tekst moet worden geëncrypt. Deze tekst luidt: HELP. Deze tekst kan decimaal worden voorgesteld als 08 05 12 16. De encryptie vindt dan plaats via de formule:c=b a mod z, ofwelc=b 7 mod 143. De code luidt dan: 57 47 12 03. De ontvanger kan deze boodschap decrypten met behulp van de formuleb=c b mod z, ofwel B=C 103 mod 143. Het rekenwerk lijkt erg complex. Alhoewel er enerzijds een aantal wiskundige technieken gebruikt kan worden om het rekenwerk te vereenvoudigen en anderzijds dit rekenwerk door de computer zal worden uitgevoerd, is dit toch de reden waarom RSAin de praktijk relatief traag is. 3.3.3 Veiligheid RSA Het RSA-algoritme wordt tot op heden betrouwbaar geacht. Wel wordt internationaal nog steeds gezocht naar grote priemgetallen, het startpunt voor de berekening van een RSA-sleutelpaar. Dit verklaart de jacht op de grote priemgetallen waar onderzoekscentra regelmatig mee schermen. Zo werd in februari 1999 nog bekendgemaakt dat een getal van 140 cijfers was ontbonden in twee priemgetallen van ieder 70 cijfers. Een dergelijk getal van 140 cijfers, ook wel aangeduid als RSA-140, komt ongeveer overeen met een RSA-sleutel van 465 bits. Dit betekent dat in de praktijk een RSA-systeem, waarbij sleutels van 465 bits of minder worden toegepast, niet gebruikt kan worden indien men een voldoende niveau van beveiliging wenst te realiseren. Alhoewel er absoluut geen zekerheden zijn te geven omtrent de

G 0130 16 Toepassing van cryptografische technieken toekomstvastheid van RSA-sleutels kan uitsluitend ter illustratie de volgende tabel dienen: RSA-sleutellengte in bits Verwachte veiligheid van het systeem in jaren 768 2 tot 4 896 4 tot 6 1024 6 tot 9 Door de krachtiger hard- en software nemen de mogelijkheden nog steeds toe om grote getallen te ontleden in priemgetallen. Daarnaast wordt voor dergelijke enorme rekenklussen regelmatig een beroep gedaan op de grote aantallen PC s die op het Internet zijn aangesloten. De techniek om het rekenprobleem op te splitsen in te distribueren delen schrijdt gestaag voort. Uiteraard dient er altijd op basis van een risicoanalyse een balans te worden gevonden tussen de waarde van datgene wat men wenst te beschermen en de middelen die daarvoor op doelmatige wijze dienen te worden aangewend. 3.3.4 Andere asymmetrische algoritmen Naast RSAbestaat er een aantal andere asymmetrische cryptoalgoritmen, zoals ElGamal, Guillou-Quisquartier, Rabin, DSA, enzovoorts. RSAis vermoedelijk veruit het meest in de praktijk toegepaste systeem. Wel worden andere asymmetrische algoritmen in de praktijk gebruikt in sleuteldistributiemechanismen. Een veelbelovend nieuw asymmetrisch cryptosysteem betreft de zogenaamde Elliptische Curven. De achterliggende theorie is relatief complex. Alhoewel de mathematische achtergrond van de elliptische curven reeds lang bekend was, is de belangstelling ervoor pas de afgelopen jaren toegenomen, mede door de noodzaak steeds langere sleutellengtes te hanteren bij bijvoorbeeld RSAteneinde een voldoende niveau van beveiliging te realiseren. Ondanks de mathematische complexiteit is het rekenwerk bij toepassing van elliptische curven veel sneller uit te voeren. Ook zijn de benodigde sleutellengtes veel korter dan bij toepassing van RSA(bij een gelijkwaardig niveau van beveiliging) en neemt dit voordeel alleen maar toe bij langere sleutellengtes. In onderstaande tabel wordt dit toegelicht: RSA-sleutellengte EC-sleutellengte bij vergelijkbaar niveau van beveiliging Verhouding 512 106 4,6 1024 160 6,4 2048 211 9,4

G 0130 17 Omtrent elliptische curven is veel literatuur verschenen. Praktijktoepassingen worden de komende jaren in toenemende mate verwacht. 3.4 Hashing algoritmen 3.4.1 Algemeen 3.4.2 De verjaardagsparadox Eén van de meest gebruikte toepassingen van cryptografie is vermoedelijk, naast berichtencryptie, het berekenen van hashtotalen. Een hashtotaal wordt berekend met als doelstelling de integriteit van een bericht te waarborgen. Onder integriteit wordt de betrouwbaarheid verstaan. Het begrip integriteit valt onder te verdelen in de volledigheid, de juistheid en de tijdigheid van bijvoorbeeld berichtuitwisseling. Maatregelen die de integriteit waarborgen, zijn gericht op het voorkomen van onbevoegd muteren of verminken van gegevensstromen, dan wel het tijdig detecteren hiervan. Een hashtotaal bestaat uit een aantal bits (het aantal ligt veelal tussen 32 en 256), dat als het ware een vingerafdruk vormt van een boodschap (een tekst- of een ander bestand), onafhankelijk van de lengte van de originele boodschap. Een kenmerkende eigenschap van een goed hashing algoritme betreft de onmogelijkheid wijzigingen in de originele boodschap aan te brengen zonder dat daarbij het hashtotaal verandert. Bedenk hierbij dat kwaadwillenden ernaar kunnen streven inhoudelijke wijzigingen in de boodschap te compenseren met wijzigingen die niet direct opvallen. Zo kunnen door bijvoorbeeld extra spaties aan te brengen inhoudelijke wijzigingen gecompenseerd worden, waarbij het hashtotaal dus ongewijzigd blijft ten opzichte van het originele hashtotaal. Dit stelt enerzijds eisen aan de kwaliteit van het hashing algoritme dat collission-free moet werken. Anderzijds stelt dit eisen aan de lengte van het hashtotaal. Onderstaand wordt eerst aan de hand van de zogenaamde verjaardagsparadox inzicht gegeven in de minimaal noodzakelijke lengte van hashtotalen. Daarna volgen enkele voorbeelden van hashing algoritmen, waarbij er ook enkele algoritmen worden genoemd waarvan inmiddels bekend is dat ze niet collision-free zijn. Een hashtotaal met een lengte van 32 bits levert 2 32 4,3 miljard (4,3 10 9 ) mogelijkheden op. Dit lijkt enorm veel, maar is in werkelijkheid niet zoveel als op het eerste gezicht gedacht wordt. Dit zal worden toegelicht aan de hand van de verjaardagsparadox. Stel dat een aantal personen één voor één een kamer binnenloopt. Hoeveel personen moeten dan in de kamer aanwezig zijn om meer dan 50% kans te hebben dat twee personen op dezelfde datum jarig zijn? Het antwoord is verrassend laag: al bij 23 binnengelopen personen bestaat er een kans van meer dan 50% dat twee personen op eenzelfde dag jarig zijn. De kans (K) dat twee personen op eenzelfde dag jarig zijn, valt ook andersom voor te stellen, namelijk de kans dat twee perso-

G 0130 18 Toepassing van cryptografische technieken nen niet op eenzelfde dag jarig zijn moet kleiner zijn dan 50% (1- K). De vraag wordt dan: hoeveel personen moeten de kamer binnentreden om de kans dat twee personen niet op eenzelfde dag jarig zijn, kleiner te houden dan 50%? Bij de eerste persoon die binnentreedt, is het simpel: hij mag op 365 dagen van een kalenderjaar jarig zijn. De tweede binnentredende persoon mag echter op slechts 364 dagen jarig zijn om niet op eenzelfde dag jarig te zijn. Dat betekent dat de kans dat ze niet tegelijkertijd jarig zijn 365/365 364/365 = 0,997 (99,7%) is. Een derde binnentredende persoon mag op slechts 363 van de 365 kalenderdagen jarig zijn om niet tegelijk met één van de twee reeds aanwezigen jarig te zijn. De combinatiekans dat ze niet tegelijkertijd jarig zijn wordt dan 365/365 364/365 363/365 = 0,992, enzovoorts. In de figuur op de volgende pagina is weergegeven wat er gebeurt met deze combinatiekans als dertig personen één voor één de kamer binnenlopen. Uit de figuur blijkt dat het omslagpunt bij 23 personen ligt. Kans dat twee personen niet op eenzelfde dag jarig zijn 1,000 0,900 0,800 0,700 0,600 0,500 0,400 0,300 0,200 0,100 Verjaardagsparadox 0013-0241 0,000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Aantal personen in de kamer Figuur 9. De verjaardagsparadox. De verklaring voor dit fenomeen ligt in het feit dat er eigenlijk niet van 23 personen gesproken mag worden, maar van 253 personenparen. Bij drie personen kunnen er 3 (3-1)/2 = 6 paren gevormd worden; bij vier personen 4 (4-1)/2 = 12 paren; bij 23 personen 23 (23-1)/2 = 253 paren; bij X personen X (X-1)/2 paren. Wat betekent dit nu voor de lengte van het hashtotaal? Stel dat de lengte van het hash Y bits bedraagt. Een (lees: één) tekst levert maximaal 2 Y mogelijke hashcodes op. Bij X teksten ontstaan er echter X (X-1)/2 tekstparen, waarbij de kans dat een tekstpaar een gelijke hashcode oplevert 1 gedeeld door 2 Y bedraagt. Als X (X-1)/2 = 2 Y X (X-1) = 2 Y+1 X 2 -X=2 Y+1 X 2 2 Y+1 X (2 Y+1 ) X 2 Y/2.

G 0130 19 Dit betekent dus dat er bij een lengte van de hashcode van 32 bits er geen 2 32 4,3 miljard (4,3 10 9 ) boodschappen beoordeeld behoeven te worden, maar er slechts ongeveer 2 16, ofwel 65.536 boodschappen moeten worden onderzocht om twee verschillende boodschappen te vinden die een gelijk hashtotaal opleveren. (Noot: in het hier gekozen voorbeeld is omwille van de eenvoud met lage waarden voor X en Y gewerkt; dit leidt tot een grote relatieve fout in de uitkomst. Bij hogere waarden van X en Y wordt de relatieve fout steeds kleiner.) De volgende gebruiksregel kan worden gehanteerd: Wil men de kans dat een hashtotaal gekraakt wordt kleiner houden dan bijvoorbeeld 1 op de 2 64, dan dient de lengte van het hashtotaal minimaal 2 64 = 128 bits te zijn. 3.4.3 De DES-hash Het berekenen van een DES-hashtotaal betreft een zogenaamde one-way DES-functie, toegepast in de CBC-modus (zie paragraaf 3.2.3). Deze one-way DES-functie werkt als volgt: na iedere vercijfering van 64 bits wordt de originele 64-bit boodschap gexored met de uitkomst van de vercijfering. 0013-0242 Boodschap s DES XOR-functie + Cijfertekst Figuur 10. De one-way hashfunctie van DES. Het heeft geen zin meer de ontstane cijfertekst C te decrypten; daarvoor dient eerst (het bitpatroon van) de boodschap te worden afgetrokken van de cijfertekst en de doelstelling van de decryptie was nu juist het verkrijgen van deze boodschap. Om deze reden heet dit een one-way encryption. De berekening van de DES-hash betreft de toepassing van deze one-way DES-functie in de CBC-mode. Daarbij vervangt de ontstane cijfertekst van het eerste 64-bit blok de sleutel bij de ver-

G 0130 20 Toepassing van cryptografische technieken cijfering van het tweede 64-bit blok van de boodschap, enzovoorts. 0013-0243 B1 B2 B3 s DES DES DES + + + C1 C2 C3 Figuur 11. Toepassing van de one-way DES hashfunctie in de CBC-modus. Uitsluitend het laatste blokje cijfertekst van 64 bits geldt als het DES-hashtotaal (of message digest) van de boodschap. Door het lawine-effect van DES zal er een totaal ander DES-hashtotaal ontstaan indien er in de boodschap slechts een bit of byte wordt veranderd. Een aldus berekend DES-hashtotaal van 64 bits kan dus niet worden gedecrypt. Het vaststellen van de integriteit van de boodschap gebeurt door de herberekening van een DES-hashtotaal en verificatie hiervan met het oorspronkelijke DES-hashtotaal. De uniciteit (beter Nederlands voor de mate van uniekheid ) van het DES-hashtotaal dient uiteraard vast te staan. Daarom dient het DES-hashtotaal niet te kort te zijn (64 bits, maar liever 128 of 256 bits). In dat laatste geval worden de laatste twee of vier 64- bit blokjes bewaard als de DES-hash. 3.4.4 De MD-algoritmen In tegenstelling tot de hiervoor beschreven DES-hash zijn er ook algoritmen ontwikkeld die zich uitsluitend op de hashingfunctie richten. Een aantal daarvan zijn ontwikkeld door Ron Rivest: de zogenaamde MD-algoritmen (MD is Message Digest): van het MD-1-algoritme is niets bekend. Misschien heeft het nooit bestaan, misschien is het al direct na de ontwikkeling onvoldoende gebleken om als praktisch toepasbaar algoritme te gelden; van MD-2 is meer bekend. Het MD-2-algoritme is een oneway hashalgoritme met een lengte van 128 bits. Het betreft een vrij simpel algoritme, waarbij feitelijk alleen XOR- en mo-

G 0130 21 dulo-256 berekeningen worden gebruikt. Er zijn zwakheden in het algoritme ontdekt. Daarnaast is de traagheid van het algoritme een bezwaar; het MD-3-algoritme heeft het nimmer verder gehaald dan de ontwerptafel van de ontwikkelaar. Al vlot na de realisatie bleek het algoritme niet collision-free te zijn. Het algoritme is overigens wel gepubliceerd; ook het in 1990 ontwikkelde MD-4-algoritme betreft een 128 bit one-way hashalgoritme. Als ontwerpcriteria golden veiligheid, snelheid, eenvoud en de toepasbaarheid op PC-processoren (Intel). Het algoritme werkt intern met 16 blokken van 32 bits, die steeds een drietal verschillende functies doorlopen. Nadat van verschillende kanten succesvolle aanvallen op ofwel de eerste twee functies, ofwel de laatste twee functies waren uitgevoerd, besloot de ontwerper, Ron Rivest, MD-4 te versterken. Dit leidde uiteindelijk tot MD-5. Ook andere algoritme-ontwikkelaars hebben MD-4 als basisconcept gehanteerd; zie de volgende twee paragrafen. In 1998 werd de ondeugdelijkheid van MD-4 aangetoond door de Duitser Hans Dobbertin. Hij toonde niet alleen aan dat het mogelijk was binnen enkele seconden twee boodschappen te genereren die een gelijke MD-4-hashcode opleverden, maar ook dat boodschappen inhoudelijk aangepast konden worden zonder dat het hashresultaat veranderde. Tot slot werd het one-way karakter van MD-4 ter discussie gesteld, evenals een 256-bit variant van MD-4; de belangrijkste verbetering van het MD-5-algoritme ten opzichte van MD-4 betreft het toevoegen van een vierde functie voor ieder 32-bit blok. Toch is de basisgedachte van MD-4 redelijk onveranderd gebleven in MD-5. Ook hier worden iedere ronde 16 blokken van 32 bits aangeboden aan een viertal (zoals gezegd bij MD-4 een drietal) nonlineaire functies. Deze nonlineaire functies hanteren uitsluitend XOR-, AND-, OR- en NOT-bewerkingen. Het hashresultaat van MD-5 kent, net als MD-4, een lengte van 128 bits. Hans Dobbertin, die de ondeugdelijkheid van MD-4 aantoonde, stelt dat verfijning van de voor MD-4 gehanteerde methode ook effectief zal blijken voor MD-5. Alhoewel tot op heden de ondeugdelijkheid van MD-5 niet onomstotelijk is aangetoond, adviseert ook de ontwerper van MD-5 een terughoudend gebruik van het algoritme in applicaties die toekomstvast moeten zijn. Uit het voorgaande zou de conclusie kunnen worden getrokken dat de MD-algoritmen het resultaat zijn van slecht ontwerpwerk. Deze conclusie is niet terecht. De ontwikkeling van de MD-algoritmen hebben cryptologen veel inzicht gegeven in de sterktes en zwakheden van hashingalgoritmen. Daarnaast heeft de ontwikkeling van met name MD-4 geleid tot enkele sterke hashingalgoritmen, die in de volgende twee paragrafen worden besproken.

G 0130 22 Toepassing van cryptografische technieken 3.4.5 Secure Hashing Algorithm (SHA-1) 3.4.6 RIPEMD-160 De Secure Hashing Algorithm betreft een algoritme dat wordt toegepast in de Secure Hash Standard (SHS). SHA-1 betreft een verbeterde versie van SHAen is door het National Institute for Standards and Technology (NIST) tezamen met het National Security Agency (NSA) ontwikkeld voor toepassing in zogenaamde digitale handtekeningen (zie paragraaf 4, voorbeeld 6). Op dit moment vormt SHA-1 vermoedelijk de internationale standaard op hashfunctiegebied. Het algoritme wordt geacht een voldoende niveau van beveiliging te kunnen waarborgen. De standaardlengte van het hashtotaal is 160 bits. Evenals bij MD-4 en MD-5 wordt er gewerkt met invoerblokken van 512 bits. SHAen SHA-1 kunnen dan ook als verbeterde versies van MD-5 worden beschouwd. Door de langere hashlengte is het algoritme aanmerkelijk veiliger dan MD-4 of MD-5 (zie ook paragraaf 3.4.2. inzake de verjaardagsparadox). Alhoewel SHA min of meer de internationale standaard is, is RI- PEMD-160 vermoedelijk een iets sterker hashalgoritme. RI- PEMD-160 is een verbeterde versie van RIPE-MD. Dit laatste algoritme is een Message Digest (MD) product van een onderzoek in opdracht van de Europese Gemeenschap, het zogenaamde RACE-project (Research and Development in Advanced Communication Technologies in Europe) Integrity Primitives Evaluation (1988-1992). Bij de ontwikkeling van RIPEMD-160 is sterk gekeken naar de sterke en zwakke punten van MD-4, MD-5 en RIPE-MD. Ook RIPEMD-160 werkt met invoerblokken van 512 bits. De lengte van het hashresultaat is, net als bij SHA, 160 bits lang. Uitsluitend ter illustratie is op de volgende pagina het cryptoschema weergegeven. Het 512-bit invoerblok wordt gesplitst in twee delen (de linker en rechter message words), die simultaan worden verwerkt. Het uitvoerblok (de updated chaining words) dient als input (chaining words) voor een volgende versleutelronde. In de vijf functies vinden 16 bewerkingen plaats. Het uitvoerresultaat is dus het product van 160 (5 2 16) bewerkingen. Dit is aanmerkelijk meer dan de eerder behandelde hashfuncties. Een vergelijking tussen de laatstbehandelde hashingalgoritmen wordt hieronder weergegeven: Algoritme Aantal functies Bewerkingen per functie Totaal aantal bewerkingen MD-4 3 16 48 MD-5 4 16 64 SHA-1 4 20 80 RIPEMD-160 5 maal 2 16 160 Alhoewel er bij RIPEMD-160 geen sleutels worden gehanteerd, kan het algoritme toch toegepast worden in Message Authenti-

G 0130 23 0013-0244 Chaining words XOR OR-XOR2 M M e s Mux1 Mux2 e s s s a a g e OR-XOR1 OR-XOR1 g e w w o o r d Mux2 Mux1 r d s s OR-XOR2 XOR + + + + + Updated chaining words Figuur 12. Het RIPEMD-160 cryptoschema.

G 0130 24 Toepassing van cryptografische technieken cation Codes (MAC s). Voor de desbetreffende standaarden wordt verwezen naar ISO/IEC (CD 9797-2): MDx-MAC en HMAC. 4 Voorbeelden van gebruik Na de theoretische grondslagen van paragraaf 3 wordt in deze paragraaf door middel van een aantal voorbeelden een praktische invulling van het gebruik van cryptografische technieken weergegeven. De voorbeelden richten zich steeds op de beveiliging van datacommunicatie tussen twee participanten namelijk Aen B. 4.1 Beoordelingsaspecten Bij de behandeling van de voorbeelden zal de uitwerking van het behandelde cryptosysteem steeds tegen een viertal kwaliteitsaspecten worden aangehouden. Dit zijn: integriteit exclusiviteit authenticiteit onweerlegbaarheid. Onder integriteit wordt, zoals reeds eerder opgemerkt, de betrouwbaarheid verstaan. Het begrip integriteit valt onder te verdelen in de volledigheid, de juistheid en de tijdigheid van de datacommunicatie. Maatregelen die de integriteit waarborgen, zijn gericht op het voorkomen van onbevoegd muteren of verminken van gegevensstromen, dan wel het tijdig detecteren hiervan. Onder exclusiviteit wordt de vertrouwelijkheid verstaan. Maatregelen die de exclusiviteit waarborgen zijn gericht op het voorkomen van onbevoegde kennisname van gegevensstromen. Met het begrip authenticiteit wordt geduid op de zekerheid, dat de afzender van de gegevens inderdaad degene is die hij pretendeert te zijn. Maatregelen die authenticiteit waarborgen zijn gericht op het voorkomen van onbevoegd verzenden van gegevens. Het begrip onweerlegbaarheid wordt gehanteerd voor de situatie waarbij het niet mogelijk is dat de verzender ontkent de gegevens verzonden te hebben. Een tweede kant van het begrip onweerlegbaarheid wordt gevormd in het niet kunnen ontkennen van de ontvangst door de ontvanger van de gegevens. Het begrip onweerlegbaarheid wordt ook wel aangeduid met het nonrepudiation-risico. In het vervolg van dit hoofdstuk wordt het begrip onweerlegbaarheid alleen in de eerstgenoemde betekenis gehanteerd (het niet kunnen ontkennen van de verzending door de zender).

G 0130 25 De desbetreffende waarborgen om de genoemde vier aspecten af te dekken, dienen uiteraard niet alleen effectief te zijn, doch ook efficiënt. Dit betekent dat de performance van de berichtuitwisseling niet te veel mag worden gereduceerd door de te nemen beveiligingsmaatregelen. Tevens dient er een relatief eenvoudig sleutelbeheer mogelijk te zijn. In de navolgende voorbeelden wordt er steeds van uitgegaan dat degenen die willen communiceren zelf beschikken over hun eigen geheime RSA-sleutels, alsmede over alle openbare RSAsleutels van alle anderen. Bovendien wordt ervan uitgegaan dat eenieder beschikt over (geheime) DES-sleutels voor de communicatie met ieder andere participant van het netwerk. In de onderstaande figuur betekent dat dus dat Adrie geheime DESsleutels heeft, namelijk ten behoeve van de communicatie met B, CenD. Geheime RSA-sleutel A, openbare RSA-sleutels B, C, D en geheime DES-sleutels B, C, D A 0013-0245 Geheime RSA-sleutel B, openbare RSA-sleutels A, C, D en geheime DES-sleutels A, C, D B D Geheime RSA-sleutel D, openbare RSA-sleutels A, B, C en geheime DES-sleutels A, B, C C Geheime RSA-sleutel C, openbare RSA-sleutels A, B, D en geheime DES-sleutels A, B, D Figuur 13. Uitgangspunt bij de voorbeelden. Het gebruik van symmetrische cryptosystemen kan bij de communicatie met vele partners tot een sleutelbeheerprobleem leiden. Indien men namelijk met een miljoen anderen wenst te communiceren, dient men minstens één miljoen sleutels geheim te houden. Dit leidt tot een sleutelbeheerprobleem. Bij toepassing van een symmetrisch cryptosysteem kan ook het totaal aantal in gebruik zijnde sleutels erg groot worden als het aantal participanten toeneemt. Men spreekt dan ook wel van een sleutelexplosie. Als ervan uit wordt gegaan dat iedere participant voor de beveiliging van zijn datacommunicatie (zowel zenden als ontvangen) een verschillende sleutel met iedere andere participant afspreekt, kan het maximaal in gebruik zijnde aantal sleutels worden berekend met de formule: aantal sleutels = N(N-1)/2 waarbij N het aantal participanten representeert. In de grafiek op de volgende pagina wordt de sleutelexplosie grafisch weergegeven (let op de schaalverdeling).

G 0130 26 Toepassing van cryptografische technieken 0013-0246 20000 Sleutelexplosie bij gebruik symmetrisch cryptosysteem 18000 Maximum aantal in gebruik zijnde sleutels 16000 14000 12000 10000 8000 6000 4000 2000 0 0 10 20 30 40 50 60 70 80 90 100 110 120130 140 150 160170 180190 200 Aantal participanten Figuur 14. Sleutelexplosie. Bij toepassing van een asymmetrisch cryptosysteem kent men dit probleem feitelijk niet: er hoeft dan slechts één sleutel geheim te blijven, namelijk de eigen (geheime) RSA-sleutel. Alle andere sleutels zijn immers openbaar. 4.1.1 Voorbeeld 1 Awil een bericht naar B sturen; hij wil echter niet dat derden het bericht ongemerkt aanpassen of verminken. Een mogelijke oplossing is dat Aniet het gehele bericht encrypt, maar een controlegetal toevoegt. Dit kan in de vorm van een DES-hashtotaal. De nadelen zijn echter ook duidelijk. Uitsluitend de betrouwbaarheid is afgedekt, niet de vertrouwelijkheid of de onweerlegbaarheid. Wel wordt, bij gebruik van een DES-hashtotaal, de authenticiteit afgedekt: bij een sluitende verificatie van dit hashtotaal heeft ontvanger B immers niet alleen de zekerheid dat de boodschap integer was, maar tevens dat hij de boodschap van Aheeft ontvangen. Alleen deze beschikte over de desbetreffende geheime DES-sleutel. De onweerlegbaarheid wordt echter niet af-

G 0130 27 0013-0247 Uitgangspositie: Boodschap DES DES-sleutel Te verzenden: Boodschap hash Figuur 15. Voorbeeld 1. gedekt. Akan altijd de verzending van het bericht ontkennen, daarbij wijzend op het feit dat B óók over de geheime DES-sleutel beschikt en derhalve zelf het bericht aangemaakt kan hebben. Tot slot kan er, bij gebruik van DES, het beschreven sleutelbeheerprobleem ontstaan. Het hanteren van het hashtotaal als authenticiteitswaarborg wordt ook wel aangeduid met de term Message Authentication Code ofwel een MAC. In onderstaande tabel worden de afgedekte aspecten met een kruisje aangegeven. Voorbeeld 1 4.1.2 Voorbeeld 2 Integriteit Exclusiviteit Authenticiteit Onweerlegbaarheid Snelheid Sleutelbeheer Awil een bericht naar B sturen. Hij wenst nu echter dat het voor derden niet mogelijk is kennis te nemen van het bericht. De eerste oplossing die geboden wordt is dat Ahet gehele bericht encrypt met DES en vervolgens het geëncrypte bericht naar B verzendt. X X X Let erop dat het zwaartepunt van de beveiliging bij deze implementatie van DES verschuift van het geheimhouden van het bericht naar het geheimhouden van de sleutel. Er kan nu worden gesteld dat ook de integriteit en de authenticiteit worden afgedekt. De integriteit kan worden vastgesteld doordat er, bij verandering of verminking van de code, geen leesbare klare tekst zal ontstaan.