"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
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.
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
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
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
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
(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 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, 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 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.
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 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.
(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 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.
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.
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
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.
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