“IDEA’s key lenght is 128 bits – over twice as long as DES. Assuming that a brute-force attack is the most efficient, it would require 2128 (1038) encryptions to recover the key. Design a chip that can test a billion keys per second and throw a billion of them at the problem, and it will still take 1013 years that’s longer than the age of the universe. An array of 1024 such chips can find the key in a day, but there aren’t enough silicon atoms in the universe to build such a machine. Now we’re getting somewhere although I’d keep my eye on the dark matter debate.” (Bruce Schneier, Applied Cryptography, pp. 323)
Zoals je hebt kunnen lezen in hoofdstuk drie, wordt er met behulp van Echelon en aanverwante systemen, legaal of illegaal, voortdurend afgeluisterd. Aangezien het moeilijk is te voorkomen dat je berichten onderschept worden, ligt het voorde hand om te proberen de uitwisseling onbegrijpelijk te maken. Koningen, spionnen en andere boeven zijn al eeuwen vertrouwd met die gedachte. Tegenwoordig hebben ook burgers belangstelling voor deze zaken, overigens tot ergernis van bovengenoemde categorieën.
Hoewel het versleutelen van data zoals gezegd al eeuwen oud is, zijn de meer geavanceerde systemen met gebruikmaking van computers natuurlijk veel minder oud. Met name tijdens de Koude Oorlog werd veel tijd en geld gestoken in de ontwikkeling van digitale cryptografische systemen en tot midden jaren zeventig had de National Security Agency een monopolie op de versleutelingstechnologie. Dit veranderde in 1976 toen Whitfield Diffie en Martin E. Hellman naar buiten kwamen met hun public-key cryptography. Sindsdien maakten ook de academische en industriële werelden gebruik van deze technologie en dit is met het steeds wijder verspreidende Internet alleen maar toegenomen.
In dit hoofdstuk gaan we in op verschillende soorten van cryptografie. Cryptografie is “de kunst en wetenschap” der versleuteling van data. Hiertegenover staat crypto-analyse, die zich juist richt op het breken van cryptografie; de twee samen vallen onder de term cryptologie.
Anders dan een aantal jaar geleden, wordt er steeds meer bekend over de werking en sterkte van crypto-algoritmen. Door de jaren heen zijn er vele crypto-algoritmen bedacht, maar slechts enkele daarvan hebben de tand des tijds en de inventiviteit van codebrekers kunnen doorstaan. Je kunt er echter nooit helemaal zeker van zijn dat bepaalde algoritmen niet te kraken zijn:
“What algorithms can the NSA break? For the majority of us, there’s really no way of knowing. If you are arrested with a DES-encrypted harddrive, the FBI is unlikely to introduce the decrypted plaintext at your trial; the fact that they can break an algorithm is often a bigger secret than any information that is recovered.” (Bruce Schneier, Applied Cryptography, pp. 215)
Toch tonen sommige wiskundige berekeningen aan dat je van een aantal crypto-algoritmen mag aannemen dat ze voorlopig veilig zijn. Zie bijvoorbeeld de vergelijking van Schneier aan het begin van dit hoofdstuk: de NSA kan nog zo veel willen, als het materiaal in het hele universum niet beschikbaar is, schiet je weinig op
Open source
Als je crypto-software gaat gebruiken is het van het grootste belang dat deze door veel mensen is onderzocht op eventuele fouten danwel zwakheden. Het gebruik van gloednieuwe algoritmen wordt afgeraden, omdat deze in de meeste gevallen toch niet zo briljant en veilig blijken te zijn als de programmeur gehoopt had. Het onderzoeken van software kan alleen als de broncode (source code) van de gebruikte software publiekelijk beschikbaar is. Dit noemen we open source. De tegenhanger daarvan is de black box software: als je een softwarepakket gebruikt waarvan alleen de maker weet hoe het werkt, of als het slechts getest is door een handjevol “specialisten” dan is er sprake van een zogenaamde nep-veiligheid. De meeste bedrijven willen hun technische toepassingen graag geheim houden, maar juist bij cryptografie geldt dat de sterkte ervan afhankelijk is van een uitgebreide en veelvuldige controle. Zoals Lucky Green van de Cypherpunks het vorig jaar mooi verwoordde: “Security obtained by obscurity is no security at all.” Dit bewees hij door met twee anderen een geheim gehouden algoritme, dat werd gebruikt voor de GSM smartcards, te kraken. Gebruik dus voor je crypto-toepassingen alleen open source software.
Symmetrische en asymmetrische systemen
Er zijn veel verschillende soorten technieken om informatie te versleutelen. Er wordt een onderscheid gemaakt tussen symmetrische en asymmetrische systemen, en deze hebben zelf ook weer verschillende categorieën. Het verschil tussen symmetrische systemen en asymmetrische systemen is dat bij symmetrische systemen slechts één sleutel wordt gebruikt en bij asymmetrische systemen een sleutelpaar. Bij asymmetrische systemen wordt door beide partijen een sleutel afgesproken waarmee het bericht zowel versleuteld als ontsleuteld kan worden. Een bijkomende narigheid hierbij is natuurlijk dat je dan eerst een veilig kanaal moet vinden om die sleutel af te spreken, en dat kan moeilijkheden opleveren.
Bron: http://www.isoc.nl
Asymmetrische systemen hebben twee functies: het versleutelen van data en de verificatie van de identiteit van de zender. Asymmetrische systemen maken gebruik van een sleutelpaar dat wiskundig gelinkt is: een sleutel die de data alleen versleutelt, en de tweede die geschikt is voor de ontsleuteling. Omdat alleen de tweede sleutel de klare tekst tevoorschijn kan krijgen, mag iedereen over de eerste sleutel (de public key) beschikken. Logischerwijs wordt de tweede sleutel de secret key genoemd: alleen degene voor wie het bericht bestemd is, zou in het bezit moeten zijn van die sleutel. Overigens worden symmetrische systemen ook secret key cryptography genoemd, en asymmetrische public key cryptography.
Bron: http://www.isoc.nl
Sleutels
De veiligheid van een cryptografisch systeem hangt, behalve van het gebruik van een goed algoritme, ook af van de kwaliteit en lengte van de sleutel. Ten eerste moet de sleutel natuurlijk zo willekeurig (random) mogelijk zijn: hoe meer onvoorspelbare elementen tijdens het genereren, hoe beter. De lengte van een sleutel is afhankelijk van het gebruikte algoritme. Voor symmetrische systemen geldt dat de moeilijkheid om de sleutel te kraken met iedere bit exponentieel toeneemt. Voor asymmetrische systemen geldt dit niet: iedere toegevoegde bit zorgt hier voor minder dan een kwadratische toename van mogelijkheden. Het onderstaande tabelletje geeft ongeveer gelijkwaardige sleutellengtes aan voor symmetrische en asymmetrische systemen:
Symmetric Key Lenght Public-key Key Lenght
56 bits 348 bits
64 bits 512 bits
80 bits 768 bits
96 bits 1024 bits
112 bits 1792 bits
120 bits 2048 bits
128 bits 2304 bits
Wachtwoorden
Goed. Je hebt sterke crypto-software tot je beschikking. Deze software gebruikt bijvoorbeeld een 128 bits sleutel. Hoe komt de computer dan aan 128 random bits om de boel mee te versleutelen? Simpel: het programma vraagt je om een wachtwoord. Dit wachtwoord wordt digitaal “uit elkaar getrokken” en levert de 128 bits op. Als de onderschepper door heeft dat de software cryptografisch goed in elkaar zit, rest hem weinig anders dan jouw wachtwoord proberen te raden. Ook korte, zwakke wachtwoorden zoals mama of Charlotte leveren 128 bits op, terwijl deze wachtwoorden makkelijk te achterhalen zijn. De aanvaller zal niet alle mogelijke ascii-karakters proberen, maar eerder met behulp van een uitgebreide woorden- en namenlijst je wachtwoord proberen te raden (Dictionary attack).
Je zou met de volgende zaken rekening moeten houden als je een wachtwoord (passphrase) maakt:
Gebruik altijd zowel hoofd- als kleine letters, getallen, en symbolen als *, >, (, “, =
Gebruik minimaal vijftien karakters, twintig is natuurlijk beter
Maak opzettelijk spelfouten (Sjarlottu)
Gebruik meerdere talen door elkaar heen
Gebruik nooit namen of data uit je persoonlijke leven, maar ook niet de geboortedatum van Elvis of citaten uit bekende boeken.
Een goed wachtwoord zou een combinatie moeten zijn van willekeurige tekens, bijvoorbeeld *2<IdU)9Bx4P jf (vijftien willekeurige tekens). Dit vergt echter een uitermate goed geheugen. Om je wachtwoord toch vrij eenvoudig te kunnen onthouden kun je een bestaande zin omvormen. De zin Groene muismatten zijn leuk. verandert dan in Green miepmiepMA2ten = leuck.
Authenticiteit
Afgezien van het behoud van je privacy wordt cryptografie ook gebruikt voor authenticiteit. Bij financiële toepassingen, wettelijke aangelegenheden of liefdesperikelen wil je vaak zeker weten dat het document dat je ontvangt ook daadwerkelijk van de vermelde afzender komt. Met behulp van asymmetrische systemen en hash-algoritmen kun je de afzender of de echtheid van het document verifiëren.
Een digitale handtekening is een stuk informatie dat gebaseerd is op het document en de privé-sleutel van degene die tekent. Meestal wordt eerst een hash-functie toegepast op het te tekenen bericht: een hash-algoritme verdicht het bericht tot een digest message, een digitale vingerafdruk die gebruikt wordt om vervalsingen te detecteren. Nadat het bericht geconverteerd is tot een binaire vorm, wordt het opgedeeld in vaste blokken en wordt er een algoritme toegepast. De uitkomst is een vingerafdruk van altijd dezelfde lengte die voor ieder bericht eigen is. Een hash-functie is een one-way-function: de inverse is niet te berekenen. Verder is het rekenkundig gezien onmogelijk dat twee berichten dezelfde “hash” (knoeiboel) opleveren.
Nu heb je dus een unieke vingerafdruk, die je vervolgens versleutelt met je privé-sleutel. Het bericht stuur je op en degene die het krijgt past dezelfde hash-functie op het bericht toe en ontsleutelt de message digest met jouw publieke sleutel. Als deze twee uitkomsten overeen komen, dan kan diegene er zeker van zijn dat het bericht inderdaad van jou afkomstig is en dat er onderweg niet mee geprutst is. Natuurlijk kun je het bericht ook nog eens versleutelen met de publieke sleutel van degene voor wie het bestemd is, zodat alleen hij of zij het bericht kan lezen.
Bekende hash-functies zijn MD2, MD5 (Message Digest Algorithms) en SHA (Secure Hash Algorithm), waarvan SHA-1 een verbeterde versie is uit 1994. DSA (Digital Signature Algorithm) is een sterk algoritme dat alleen geschikt is voor digitale handtekeningen, en niet voor versleuteling van data zelf.
© 1997-1999 Charles Breed and Stratford Design
Enkele voorbeelden van symmetrische systemen
Blokversleuteling
(Block Cipher)
Een blokversleuteling is een algoritme dat de klare tekst van een vastgestelde lengte verandert naar een blok versleutelde tekst van dezelfde lengte. Deze transformatie vindt plaats door gebruikmaking van een geheime sleutel, die ook omgekeerd kan worden toegepast zodat de boel weer leesbaar wordt. De vastgestelde lengte van het blok wordt bloklengte genoemd, en op dit moment is deze lengte voor de meeste blokversleutelingen 64 bits. De sleutels hebben meestal een lengte van 56, 128 of 256 bits. Hieronder volgt een aantal veelgebruikte algoritmen.
DES
DES staat voor Data Encryption Standard en sinds 1977 is dit de cryptografie-standaard in de Verenigde Staten. DEA (Data Encryption Algorithm) is de eigenlijke benaming voor dit algoritme, maar het wordt meestal DES genoemd. Inmiddels wordt al naar kandidaten voor de AES (Advanced Encryption Standard) gezocht, die DES binnen niet al te lange tijd moet gaan vervangen.
In De Muren hebben Oren schreven we:
“DES is een blokversleuteling ontworpen voor de versleuteling en ontsleuteling van blokken van, inderdaad, 64 bits. De sleutel is ook 64 bits lang, maar er worden maar 56 bits werkelijk gebruikt (de rest zijn pariteitsbits). Feitelijk bestaat het algoritme uit een opeenvolging van verschillende bewerkingen: permutaties en substituties veelal op basis van tabellen. Voor de te onderscheiden bewerkingen worden meestal verschillende sleutels gebruikt die afgeleid zijn uit de hoofdsleutel. De ontwerp-criteria (meestal de source-code genoemd) die ten grondslag liggen aan de verschillende stappen bij DES, zijn geheim. De werking is alleen vrijgegeven in de vorm van weinig overzichtelijke tabellen. Dat maakt dat moeilijk te achterhalen is door welke analytische of wiskundige functies de verschillende werkingsfasen bepaald worden. Crypto-analisten hebben natuurlijk wel allerlei pogingen gedaan DES te ontleden, maar zijn daarin alleen geslaagd voor afzonderlijke delen van het algoritme. Velen sluiten echter niet uit dat er een “achterdeurtje” in zit, dat het mogelijk maakt de klare tekst uit de versleutelde tekst te verkrijgen.” (De muren hebben oren, pp. 64)
Vanwege de geringe sleutellengte van 56 bits zou DES makkelijk te kraken zijn, en inderdaad: dat is gebeurd. Geregeld worden er wedstrijden gehouden om te kijken hoe snel DES gekraakt kan worden uiteraard buiten inlichtingendiensten en dergelijke om. In de afgelopen jaren koppelde de organisatie Distributed.net verschillende computers verspreid over de wereld aan elkaar om het rekenvermogen te verhogen. Twee jaar geleden, in 1997, kostte het vinden van een sleutel nog 250 dagen. In februari 1998 kostte het Distributed.net veertig dagen voordat zij DES gekraakt hadden. Voor de daaropvolgende wedstrijd had de Electronic Frontier Foundation (EFF) de zogenoemde DES-Cracker gebouwd: Deep Crack. Op zich waren de krachten van Deep Crack beperkt, aangezien EFF zelf een bescheiden budget had: slechts 250.000 dollar. Ondanks de niet-optimale middelen bleek het in juli 1998 mogelijk om slechts met Deep Crack DES-sleutels in minder dan drie dagen te vinden. Tijdens de laatste wedstrijd, in februari 1999, hebben Distributed.net en Deep Crack hun krachten gebundeld in een alliantie en kon een sleutel in 22 uur gevonden worden. Je kunt je voorstellen hoe lang bepaalde overheidsdiensten en andere vage instellingen al de beschikking hebben over apparatuur om de “Standaard” te kraken. Desalniettemin zijn velen ervan overtuigd dat DES wél een sterk algoritme is. Het algoritme is al bijna dertig jaar oud, en het is nooit iemand gelukt een wiskundige zwakte in het systeem aan te tonen. Daarom lijkt de enige zwakte de korte sleutellengte te zijn.
3DES
3DES, ook wel TripleDES genoemd, maakt gebruik van het originele DES algoritme. Maar in plaats van een 56 bits sleutel, worden twee of drie sleutels van elk 56 bits gebruikt. Bij DES-EEE3 worden de data drie keer versleuteld met drie verschillende sleutels (Encrypt-Encrypt-Encrypt). DES-EDE3 gebruikt ook drie verschillende sleutels, maar nu worden de data versleuteld met de eerste sleutel, ontsleuteld met de tweede (waar dan natuurlijk een enorme brei uit komt) en weer versleuteld met de derde (Encrypt-Decrypt-Encrypt). DES-EEE2 en DES-EDE2 doen hetzelfde als de hiervoorstaande, maar dan zijn de sleutels voor de eerste en derde operatie hetzelfde en worden dus twee sleutels gebruikt. In 3DES gaan we ervan uit dat er geen andere mogelijkheid is om DES te breken dan via grof geweld (brute force) en dan is de sterkte dus afhankelijk van de sleutellengte. De formule EDE2 heeft als effect dat de uiteindelijke data versleuteld zijn met een sleutel van ongeveer 112 effectieve bits. Dit is al een heel oude truc en vele wiskundigen hebben zich hierover gebogen, maar ook hier is het hun niet gelukt om zwakheden in het algoritme te ontdekken. Programma’s die DES gebruiken zijn bij voorbaat kansloos door de korte sleutel, maar 3DES is wat ons betreft nog wel te vertrouwen.
IDEA
IDEA International Data Encryption Algorithm is relatief jong: het werd ontworpen in 1990 en aangepast en versterkt in 1991. De sleutel van IDEA heeft een vaste lengte van 128 bits en het algoritme zelf werkt met blokken van 64 bits. Het is snel, en naar onze mening is IDEA een nog betere keuze dan 3DES. Voor niet-commerciële toepassingen zoals ShareWare en FreeWare (gratis software) mag je het van de patenthouder (Ascom-Tech Ag) gewoon gebruiken zonder een licentie aan te vragen.
CAST
Er zijn al veel attacks geweest op CAST en tot dusver houdt dit algoritme goed stand: geen andere methode om het te breken dan brute force is bekend. CAST, dat met een vaste sleutellengte en twee blokken van 64 bits werkt, wordt steeds meer toegepast in software en is zelfs als kandidaat voor de AES voorgesteld. CAST is wel patent-afhankelijk.
Blowfish
Blowfish maakt ook gebruik van blokken van 64 bits. De sleutellengte is echter variabel. Het grote voordeel van Blowfish is dat er, anders dan bij de meeste andere algoritmen, helemaal geen patenten of copyrights op zitten. Iedereen mag het overal vrij gebruiken, ook in commerciële toepassingen. Blowfish lijkt een prima algoritme te zijn en als het programma je de keuze biedt tussen verschillende algoritmen, dan zou onze voorkeur uitgaan naar IDEA, Blowfish, 3DES; in die volgorde.
Stroomversleuteling
(Stream Cipher)
Stroomversleuteling wordt ook wel One-Time-Path (OTP) genoemd. Terwijl de blokversleuteling zich richt op grote happen data, opereert een stroomversleuteling met veel kleine eenheden, meestal per bit. Verder is de uitkomst bij een blokversleuteling altijd gelijk als je dezelfde data met dezelfde sleutel gebruikt. Met stroomversleuteling verschilt dat juist. Iedere sleutel wordt ter plekke willekeurig of at random aangemaakt. Deze sleutel is even lang als het bericht zelf en wordt maar één keer gebruikt. De sterkte van de versleuteling is afhankelijk van de mate van willekeur: hoe meer onvoorspelbare elementen tijdens het genereren, hoe beter. Deze vorm van versleuteling kan heel sterk zijn, maar brengt wel een aantal nadelen met zich mee. Ten eerste kost het versleutelen van grote hoeveelheden data veel tijd. Verder moet iedere sleutel via een veilig kanaal uitgewisseld zijn. En als er ergens iets mis gaat en slechts een bitje verloren gaat, dan moet het hele versleutelingsproces opnieuw gebeuren.
RC4
RC4 is een veelgebruikte en snelle stream cipher. Het is ontworpen door Ron Rivest in 1987 en RC staat dan ook voor Ron’s Code of Rivest Cipher. Pas in 1994 kwam de broncode vrij doordat iemand het anoniem postte op de Cypherpunks mailinglist. Sindsdien is het algoritme wijdverspreid geraakt en vele malen getest, hoewel RSA Data Security RC4 nog steeds als een bedrijfsgeheim ziet.
Enkele voorbeelden van asymmetrische systemen
Diffie-Hellman en RSA
Het Diffie-Hellman key agreement protocol veranderde de wereld van de cryptografie in 1976, zoals eerder gezegd, geheel. Met dit protocol kun je een geheime sleutel over een onveilig kanaal sturen zonder dat er van te voren via een veilig kanaal andere geheimen afgesproken moeten worden. Met die afgesproken sleutel kun je vervolgens data versleutelen. Voor het precieze algoritme, dat discrete logaritmen in een eindig veld gebruikt, verwijzen we je naar Applied Cryptography en andere bronnen. De uitwisseling van vertrouwelijke gegevens is wel kwetsbaar voor een man-in-the-middle attack: stel dat je met Bas een sleutel wilt afspreken en Carolien onderschept jouw bericht aan Bas. Carolien doet alsof ze Bas is en spreekt met jou de sleutel af. Intussen heeft ze ook contact met Bas en spreekt ook met hem een sleutel af. Nu gaan jij en Bas vrolijk aan het communiceren, terwijl Carolien alles nog veel vrolijker onderschept, leest, en eventueel aanpast. Pas in 1992 werd het Station-to-Station (STS) protocol ontwikkeld dat digitale handtekeningen en public-keycertificaten toevoegt aan het D/H algoritme.
RSA is een public-key cryptosysteem dat zowel versleuteling als digitale handtekeningen biedt. Het is ontwikkeld door Ron Rivest, Adi Shamir, and Leonard Adleman 1977; RSA staat dan ook voor de eerste letter van hun achternamen. RSA is gebaseerd op het wiskundige gegeven dat het makkelijk is om twee grote priemgetallen (hier honderd tot tweehonderd decimalen of zelfs meer) met elkaar te vermenigvuldigen, maar dat het uitermate moeilijk is om uit het product de twee priemgetallen weer te onttrekken. RSA biedt ook de mogelijkheid tot authenticiteit. D/H en RSA zijn beide ruim twintig jaar oud en tot augustus 1999 is geen bekende attack succesvol geweest. Maar op 22 augustus 1999 heeft het Centrum voor Wiskunde en Informatica (CWI) in samenwerking met acht andere internationale organisaties een getal van 512 bits (‘RSA-155’ genoemd vanwege het aantal decimale cijfers) gefactoriseerd. Slechts zeven maanden hebben 300 computers staan rekenen, en verwacht wordt dat deze tijd snel terug gebracht kan worden naar een week of zelfs een dag. Tot dusverre liggen sleutels van 1024 bits en hoger echter nog volledig buiten handbereik. Zowel D/H als RSA worden in veel software toegepast, meestal in combinatie met block en/of stream ciphers.
Dit werkt echter alleen tot 512 bits sleutels; sleutels van 1024 bits en hoger liggen nog volledig buiten handbereik. Zowel D/H als RSA worden in veel software toegepast, meestal in combinatie met block en/of stream ciphers.
ECC
Een ander crypto-systeem is Elliptic Curve Cryptosystem (ECC), uit de jaren tachtig. Ook hierbij worden de sleutelparen gegenereerd door de priemgetallen-truc. Dit heeft weinig extra voordelen ten opzichte van RSA. Maar ECC biedt nog een andere optie, en dat is het gebruik van discrete logaritmen in combinatie met een elliptische curve. Voordeel hiervan is dat de sleutellengte korter kan zijn dan bij normale asymmetrische systemen, terwijl de sleutel toch even sterk is. Het schijnt vrij makkelijk te zijn om de elliptische curve in te passen in al bestaande algoritmen die gebruik maken van discrete logaritmen, zoals DSA en D/H.
© 1997-1999 Charles Breed and Stratford Design
Besluit
Ten slotte moet je er altijd van bewust zijn dat het gebruik van slechte cryptografie erger is dan het gebruik van geen cryptografie. Vaak is ook het slechte gebruik van goede cryptografie de reden dat je geheim toch onthuld wordt. Bovendien zijn er verschillende manieren om versleutelde data te ontcijferen, en worden er voortdurend nieuwe, vaak onverwachte, manieren bedacht. Een voorbeeld hiervan is de zogenoemde Lunch-Break Attack: terwijl jij ergens zit te lunchen, sluipt er iemand je kantoortje in. Diegene scant je harde schijf op de mate van entropie (hoe hoger de entropie, hoe meer chaos er is). Omdat bijvoorbeeld jouw privé-sleutel zo willekeurig mogelijk is, heeft de plaats waar die sleutel op de harde schijf staat het hoogste gehalte van entropie. Als je geen snelle eter bent, heeft de insluiper jouw privé-sleutel zo gekopieerd zonder dat jij er erg in hebt.
En natuurlijk hebben veel mensen vertrouwen in zaken waar ze geen vertrouwen in zouden moeten hebben. Voor de huis-tuin-en-keuken-gebruiker is het makkelijk om te geloven in argumenten als “Trust us, we know what we’re doing”. Dit staat ook bekend als Snake Oil. Verkopers zeggen vaak expert te zijn, of komen met excuses aan zoals “Ja maar, dit is bedrijfsgeheim” of “dan kunnen die enge hackers er mee aan de haal.” “Nieuwe revolutionaire toepassingen” van bestaande algoritmen kunnen de sterkte ervan juist expres of onbewust verzwakken. Ook de bekendheid van een bepaald bedrijf of persoon zegt nog niets, en als er referenties geboden worden, bekijk die dan goed.
Referenties
Bruce Schneier Applied Cryptography: Protocols, Algorithms, and Source Code in C, second edition, John Wiley & Sons Inc. 1996
Philip R. Zimmerman Cryptography for the Internet, in: Scientific American, October 1998, pp. 82 87
National Research Counsil Cryptography’s Role In Securing the Information Society, National Academy Press 1996
Matthew Franklin (ed.) – Proceedings Financial Cryptography: Third International Conference, FC’99, Anguilla, British West Indies, February 1999, Springer 1999
RSA Security Inc.: http://www. rsa.com
Computers, Freedom & Privacy: http://www.cfp99.org
Centrum voor Wiskunde en Informatica: http://www.cwi.nl
Verder lezen:
Goede link met veel goede links: http://www.compulegal.demon.nl/files/crypto.htm
Snake Oil FAQ: http://www.interhack.net/people/cmcurtin/snake-oil-faq.html