Kerckhoffs-principe: waarom een goed cijfersysteem geen geheimen nodig heeft
Stel je een kluis voor. Een goede kluis is niet veilig omdat niemand weet hoe het slot in elkaar zit, maar omdat je zonder de juiste sleutel simpelweg niet naar binnen kunt — ook niet als je de bouwtekening van het slot voor je neus hebt liggen. Het Kerckhoffs-principe past precies deze gedachte toe op cryptografie, de wetenschap van het versleutelen van informatie zodat alleen bevoegden die kunnen lezen. Het principe zegt: een versleutelingssysteem moet veilig blijven, zelfs als een aanvaller precies weet hoe het werkt, zolang de geheime sleutel (de unieke code die bij het versleutelen en ontsleutelen wordt gebruikt) maar geheim blijft.
Dat klinkt misschien tegenintuïtief. Zou het niet veiliger zijn om ook de werking van het systeem geheim te houden, als extra beveiligingslaag? De geschiedenis van cryptografie laat keer op keer het tegendeel zien: systemen die vertrouwen op een geheim ontwerp blijken vroeg of laat te lekken, gestolen te worden of via reverse engineering (het uit elkaar halen en analyseren van een product om te achterhalen hoe het werkt) ontrafeld te worden. Alleen systemen die de publieke toets der kritiek doorstaan, blijken in de praktijk betrouwbaar.
Wat is het precies?
Het principe is genoemd naar Auguste Kerckhoffs (1835-1903), een in Nuth geboren Nederlandse taalkundige en cryptograaf die in 1883 het essay La Cryptographie Militaire publiceerde. Daarin formuleerde hij zes eisen waaraan een goed militair cijfersysteem moest voldoen. De bekendste, die tegenwoordig simpelweg 'het Kerckhoffs-principe' heet, komt neer op één zin: het systeem mag geen geheimhouding vereisen en moet zonder problemen in handen van de vijand kunnen vallen — mits de sleutel geheim blijft.
Om dit te begrijpen moet je twee dingen uit elkaar houden. Ten eerste het algoritme: de vaste, publiek bekende rekenmethode die bepaalt hoe een bericht wordt omgezet in onleesbare tekens en weer terug. Ten tweede de sleutel: een reeks cijfers of letters die, samen met het algoritme, het unieke resultaat bepaalt. Twee mensen met hetzelfde algoritme maar een andere sleutel krijgen totaal andere versleutelde berichten.
Het tegenovergestelde van dit principe heet security through obscurity (beveiliging door onduidelijkheid): je houdt de werking van je systeem geheim en hoopt dat niemand erachter komt. Dat werkt in theorie, maar faalt in de praktijk vrijwel altijd. Bedrijven ontslaan medewerkers die weglekken, producten worden gekopieerd en uit elkaar gehaald, broncode uitlekt via datalekken. Zodra het ontwerp bekend wordt — en dat gebeurt vaak sneller dan verwacht — stort de beveiliging in elkaar, want er was geen aparte, vervangbare sleutel om op terug te vallen.
Een algoritme dat wél openbaar is, kan daarentegen door duizenden cryptografen wereldwijd worden onderzocht. Wie een zwakte vindt, publiceert die (of meldt die verantwoord), waarna het algoritme wordt aangepast of afgekeurd. Overleeft een algoritme jarenlange pogingen om het te breken, dan groeit het vertrouwen erin. En als er ooit toch een sleutel uitlekt, hoeft alleen die sleutel vervangen te worden — niet het hele systeem.
Wat wil men ermee bereiken?
Het uiteindelijke doel is simpel: systemen bouwen die veilig blijven onder de zwaarst mogelijke aanname, namelijk dat de tegenstander alles weet behalve de sleutel. Wie zijn beveiliging op die manier ontwerpt, bouwt geen kaartenhuis dat instort zodra er één geheim uitlekt.
Daarnaast maakt het principe interoperabiliteit mogelijk: omdat het algoritme openbaar en gestandaardiseerd is, kunnen verschillende fabrikanten, banken, browsers en overheden producten maken die soepel met elkaar communiceren en toch veilig zijn, zonder dat iedereen een uniek geheim receptuur nodig heeft.
Open ontwerpen maken ook snellere foutopsporing mogelijk. De beveiligingsonderzoeker Bruce Schneier vatte dit ooit samen in wat bekendstaat als 'Schneier's law': iedereen kan een cijfersysteem bedenken dat hijzelf niet kan kraken, maar dat wil niet zeggen dat niemand anders dat kan. Alleen door een algoritme aan de hele wereld voor te leggen, ontdek je fouten vóórdat kwaadwillenden ze vinden en misbruiken.
Voorbeelden uit de praktijk
De Advanced Encryption Standard (AES) is het bekendste succesverhaal. Het Amerikaanse standaardisatie-instituut NIST organiseerde tussen 1997 en 2000 een volledig openbare wedstrijd: iedereen mocht een algoritme insturen, en de hele cryptografiegemeenschap mocht meedoen aan het proberen te breken ervan. De winnaar, Rijndael, ontworpen door de Belgische onderzoekers Joan Daemen en Vincent Rijmen (verbonden aan de KU Leuven), werd in 2001 als AES de wereldwijde standaard en wordt tot op vandaag gebruikt in wifi-beveiliging, HTTPS-verbindingen en schijfversleuteling.
Het RSA-algoritme, in 1977 bedacht door Ron Rivest, Adi Shamir en Leonard Adleman en in 1978 in een wetenschappelijk tijdschrift gepubliceerd, is een ander voorbeeld van publieke cryptografie: de wiskundige methode is al decennia volledig bekend, terwijl de veiligheid uitsluitend steunt op geheime sleutels gebaseerd op zeer grote priemgetallen.
Het Signal-protocol, dat versleutelde chat-apps als Signal en WhatsApp beschermt, is eveneens volledig open source en herhaaldelijk onafhankelijk doorgelicht door academische onderzoekers — precies zoals Kerckhoffs voorschreef.
Een tegenvoorbeeld laat zien wat er misgaat zonder dit principe. Het Content Scramble System (CSS), de kopieerbeveiliging op dvd's uit 1996, hield het versleutelingsalgoritme geheim. In 1999 werd het toch gekraakt en verspreid onder de naam DeCSS, mede door de Noorse tiener Jon Lech Johansen. Het bleek te steunen op een zwak, verborgen algoritme dat nooit publiek was getoetst — een schoolvoorbeeld van beveiliging door onduidelijkheid die instort zodra het geheim uitlekt.
Ook de geschiedenis van de Duitse Enigma-machine in de Tweede Wereldoorlog illustreert het punt, zij het historisch complexer: doordat de Poolse Cipher Bureau en later de Britse codebrekers in Bletchley Park (onder wie Alan Turing) de technische opbouw van de machine wisten te achterhalen, werd het kraken van de dagelijkse sleutels aanzienlijk makkelijker. Zolang het ontwerp geheim was gebleven, bood dat een schijnzekerheid die verdween zodra het lekte.
Hoe ver is de techniek?
Het Kerckhoffs-principe is geen technologie die zich nog moet bewijzen, maar een fundamenteel ontwerpprincipe dat inmiddels door vrijwel de hele professionele cryptografiegemeenschap wordt onderschreven. Serieuze, moderne beveiligingssystemen vertrouwen tegenwoordig zelden nog op geheime algoritmes.
Het AES-model van een openbare wedstrijd is sindsdien herhaald en verfijnd. Tussen 2007 en 2012 organiseerde NIST een vergelijkbare competitie voor een nieuwe hashfunctie (een wiskundige methode om data om te zetten in een korte, unieke vingerafdruk), die uitmondde in de standaard SHA-3. Recenter, tussen 2016 en 2024, liep het post-kwantumcryptografieproject van NIST: een openbaar traject om algoritmes te vinden die ook bestand zijn tegen toekomstige kwantumcomputers. In 2024 werden de eerste standaarden definitief gepubliceerd, waaronder ML-KEM (gebaseerd op CRYSTALS-Kyber) en ML-DSA (gebaseerd op CRYSTALS-Dilithium) — opnieuw via een volledig openbaar proces met wereldwijde inzendingen en jarenlange publieke aanvallen op de kandidaten.
Toch blijven er obstakels. Sommige overheden en bedrijven kiezen, vaak om exportcontrole- of concurrentieredenen, nog altijd voor gesloten, eigen ('proprietary') algoritmes in nichetoepassingen zoals bepaalde simkaarten of goedkope IoT-apparaten (slimme apparaten die via internet met elkaar communiceren). Die algoritmes worden, zodra ze alsnog worden geanalyseerd, vaak binnen korte tijd gebroken — een herhaling van de CSS-les. Daarnaast lost het principe niet alles op: ook een perfect open en getest algoritme kan in de praktijk onveilig worden geïmplementeerd, bijvoorbeeld via zogeheten side-channel-aanvallen, waarbij een aanvaller informatie afleidt uit stroomverbruik, timing of straling van de apparatuur zelf, los van de wiskundige sterkte van het algoritme.
Wie werken eraan?
Het Amerikaanse National Institute of Standards and Technology (NIST) speelt al decennia een centrale rol bij het organiseren van open cryptografiewedstrijden en het vaststellen van standaarden die wereldwijd worden overgenomen. De International Association for Cryptologic Research (IACR) is de belangrijkste academische gemeenschap waarin cryptografen resultaten publiceren en elkaars werk toetsen via peer review (collegiale beoordeling door vakgenoten).
Universiteiten als de KU Leuven in België (waar AES werd ontwikkeld), MIT en Stanford in de Verenigde Staten, en tal van andere onderzoeksgroepen wereldwijd dragen actief bij aan nieuwe algoritmes en aan het breken van bestaande. Techbedrijven als Google, Microsoft en de non-profit Signal Foundation ontwikkelen en publiceren hun versleutelingsprotocollen juist bewust openbaar om deze aanpak te volgen. De Internet Engineering Task Force (IETF) standaardiseert op vergelijkbare open wijze internetprotocollen zoals TLS, de techniek achter het slotje in de browserbalk. Individuele onderzoekers en schrijvers, zoals de eerdergenoemde Bruce Schneier, blijven bovendien invloedrijke pleitbezorgers van openheid als basisprincipe in cryptografie.