16 maart 2006
In 1995 ontdekte Ralph Erskine, een Britse amateur-historicus drie Enigma codes, die tot dan toe nog niet waren ontcijferd. Hij publiceerde de drie codes in een cryptografietijdschrift met de uitdaging om de berichten met de huidige technische mogelijkheden alsnog te ontcijferen. Stefan Krah, een Duitse violist en cryptografie-hobbyist schreef een open source-programma dat het mogelijk maakte een groot aantal computers te koppelen om gezamenlijk het geheimschrift te kraken, net zoals de Seti@home-applicatie. Een dergelijk ‘grid’ was noodzakelijk om de kracht te realiseren voor het verwerken van de 150 miljoen mogelijkheden voor iedere letter van de code. Vanaf dat moment (9 januari) was er sprake van het M4 Project, naar de M4 Enigma, de machine die door de Duitse oorlogsmachine gebruikt werd om berichten te versleutelen. Het M4-programma werd door duizenden bezoekers gedownload naar hun computer. Op 20 februari van dit jaar werd het eerste bericht ontcijfers. Het bleek te gaan om een niet erg wereldschokkend statusrapport van een Duitse U-boot, die net een gevecht met een geallieerd schip achter de rug had.
De drie codeberichten dateren uit 1942, toen de Britse geheime dienst ze opving en ter ontcijfering voorlegde aan Colossus, de eerste electronische computer, in het diepste geheim gebouwd om de moeilijk te ontcijferen codes met brute kracht te lijf te gaan. De Enigma was een dermate geavanceerde codeermachine, dat iedereen er van overtuigd was dat de berichten niet te decoderen zouden zijn. De Duitsers gebruikten Enigma om allerlei berichten te verzenden naar hun U-booten en aanvallen tegen de geallieerde scheepvaart in de Atlantische Oceaan te organiseren. De Britten lieten de Duitsers ook maar al te graag in de waan dat de berichten niet te ontsleutelen waren. De drie berichten bleven onontcijferbaar, omdat de Duitsers kort daarvoren een complexere Enigma-versie in gebruik hadden genomen, waarvoor de Britse geheime dienst op dat moment nog geen oplossing gevonden had. ‘Hill-climbing algorithms try to optimize an object, in this case the plugboard settings, by changing the object step by step. After each change the ‘goodness’ or ‘fitness’ of the new object has to be determined by a scoring function. Changes that lead to a ‘better’ object are retained. Here the changes lie in constantly trying out new wirings of the Enigma plugboard. After each change, the scoring function tests a new wiring by deciphering the message and trying to determine how closely the resulting plaintext matches the statistics of the natural language’, zo wordt vanuit het M4-Project gemeld. Het eerste bericht was een statusrapport en enigszins dramatisch. Het bericht komt overeen met aantekeningen in het oorlogsdagboek van de Duitse U-boot U264: ‘Funkspruch 1851/19/252: F T 1132/19 Inhalt: Bei Angriff unter Wasser gedrckt. Wabos. Letzter Gegnerstand 0830 Uhr AJ 9863, 220 Grad, 8 sm. Stosse nach. 14 mb. fllt, NNO 4, Sicht 10. Looks. Hartwig Looks, de kapitein van de onderzeer, was onder de 52 overlevenden van de aanval door HMS Woodpecker en HMS Starling op 19 februari 1944. Het thans ontcijferde bericht is eveneens een statusrapport van een onderzeeboot en luidt als volgt: ‘FT. 0246/21/203: Auf Geleitkurs 55 nichts gefunden, marschiere befohlenes Qu. Standort Marqu. AJ 3995. SO 4, See 3, 10/10 bedeckt, 28 mb steigend, Nebel, Sicht 1 sm. Schroeder’. Minder dramatisch dus. Het project richt zich nu verder volledig op het laatste bericht, dat als eerste werd verzonden. Het probleem bij dit bericht is dat niet bekend is welke versie van Enigma gebruikt werd om het bericht te versleutelen. Krah, die op dit moment in Nederland woont, vertrouwt er op dat ook dit bericht uiteindelijk gekraakt zal worden; zij die willen assisteren kunnen hier hun computer mede ter beschikking stellen en het programma downloaden. Om een idee te geven van de versleuteling: het laatste bericht luidt: ‘HCEY ZTCS OPUP PZDI UQRD LWXX FACT TJMB HDVC JJMM ZRPY IKHZ AWGL YXWT MJPQ UEFS ZBCT VRLA LZXW VXTS LFFF AUDQ FBWR RYAP SBOW JMKL DUYU PFUQ DOWV HAHC DWAU ARSW TXCF VOYF PUFH VZFD GGPO OVGR MBPX XZCA NKMO NFHX PCKH JZBU MXJW XKAU OD?Z UCVC XPFT’. Succes.