One-time pad communicatie in vier stappen
Stap 1 -
one-time pads creëren
|
Z W Z W Z W Z W Z W
1 + 1 = 0 2 + 1 = 6 3 + 1 = 2 4 + 1 = 8 5 + 1 = 4
1 + 2 = 1 2 + 2 = 7 3 + 2 = 3 4 + 2 = 9 5 + 2 = 5
1 + 3 = 2 2 + 3 = 8 3 + 3 = 4 4 + 3 = 0 5 + 3 = 6
1 + 4 = 3 2 + 4 = 9 3 + 4 = 5 4 + 4 = 1 5 + 4 = 7
1 + 5 = 4 2 + 5 = 0 3 + 5 = 6 4 + 5 = 2 5 + 5 = 8
1 + 6 = 5 2 + 6 = 1 3 + 6 = 7 4 + 6 = 3 5 + 6 = 9
Negeer alle combinaties met zwarte 6
|
Een andere methode is een lotto-systeem met 10 balletjes, genummerd van 0 tot 9. Na extractie van één balletje dient dit telkens opnieuw gemixt te worden alvorens het volgende balletje eruit te halen. Meer over het genereren van willekeurige getallen op de one-time pad pagina.
Een standaard one-time pad vel bevat gewoonlijk 50 groepen van 5 willekeurige cijfers, wat voldoende is voor een normaal bericht. Elke vel moet een unieke eerste groep van vijf cijfers hebben. Deze eerste groep dient om de gebruikte sleutel te identificeren en zal nooit gebruikt worden tijdens het vercijferen. Elke one-time pad set bestaat uit twee identieke pads, genaamd IN en OUT. Om te communiceren in één richting hebt u slechts één OUT boekje voor de verzender en één IN boekje voor de ontvanger nodig. Om in twee richtingen te communiceren hebben beide personen zowel een IN als OUT boekje nodig. Gebruik nooit één boekje om in beide richtingen te communiceren!
Voorbeeld van een OUT boekje Nr 1234 en sleutelpagina Nr 00015:
|
|
![]() |
Bij gebruik in clandestiene
omstandigheden zijn one-time pad sleutels, gedrukt op
zeer kleine papiertjes, de meest praktische methode (zie
foto). Deze zijn eenvoudig te verbergen en te
vernietigen. Sla one-time pad sleutels nooit op in een
computer, op een geheugenstick of op Compact Disk. Deze
media zullen steeds sporen achterlaten, ook na het
wissen, en garanderen nooit volledige vernietiging. Er
zijn verschillende technieken om digitale informatie te
reconstrueren, maar geen enkele methode om een verbrand
of verteerd stukje papier terug te halen. In kritieke
situaties is het veel moeilijker om snel een
geheugenstick te vernietigen of te laten verdwijnen dan
bijvoorbeeld een klein stukje papier op te eten.
Alvorens we een bericht kunnen vercijferen moeten we het omzetten in cijfers. Deze omzetting is geen vercijfering en biedt absoluut geen veiligheid! De omzetting is enkel een voorbereiding van de klare tekst ten behoeve van het eigenlijke vercijferingsproces. In ons voorbeeld gebruiken we de CT-37c conversietabel. U kunt meer variaties van deze omzettingstabel vinden op op deze pagina.
De CT37c tabel is een uitgebreid checkerboard. De tabel is makkelijk te onthouden door de meest voorkomende (Engelse) letters "AEINOT" . De volgende twee rijen bevatten de overige letters. De vierde rij bevat "FIG" (90), de leestekens (minder belangrijk om te onthouden) en de "REQ" (98) en "SPC" (99) velden.
| De conversietabel | Een andere manier om de tabel weer te geven | |
![]() |
|
Het gebruik van de CT-37c tabel is eenvoudig. Alle karakters worden omgezet in een ééncijferige of tweecijferige waarde. Om getallen de coderen gebruiken we "FIG" (90) net voor en net na getallen of getallenreeksen. Elk cijfer word dan driemaal uitgeschreven om fouten te vermijden. U kunt spaties en leestekens gebruiken binnen de "FIG" mode. Een voorbeeld: "1,5 KG" = "89 111 93 555 89 77 74 ". Het "REQ" of "REQUEST" veld wordt gebruikt voor vraagstelling en "SPC" (99) dient voor spaties. Het afkappingsteken (93) kan gebruikt ook gebruikt worden als comma. "CODE" (0) wordt gebruikt als optionele codebook prefix vlak voor een codeboek-getal. Het gebruikt van spaties voor en na een codeboek woord is niet nodig.
Het gebruik van een codeboek is facultatief. Een codeboek kan echter de lengte van de cijfertekst en tijd van verzending enorm reduceren. Men kan het gebruikt van codes achterwege laten als de ontvanger geen codebook ter beschikking heeft. Een codeboek kan allerhande woorden of zinnen bevatten over berichtprocedures of technische, tactische, logistieke of medische uitdrukkingen. Het codeboek dient de meest gebruikte worden of zinnen te bevatten die met de gewone tabel in méér dan vier cijfers zouden worden omgezet. Aangezien one-time pad vercijfering wordt toegepast is het niet nodig een willekeurige nummering van de items te gebruiken of om het codeboek geheim te houden. Het codeboek systeem vereist niet altijd een groot boek met duizenden woorden en uitdrukkingen. Zelfs één enkel codeblad met zorgvuldig geselecteerde codes, zoals hieronder getoond, kan genoeg praktische informatie bevatten om de lengte van het bericht sterk te verminderen.
000 ABORT 253 DECODE 505 MILITARY 758 STREET 019 ACCEPT 262 DELAY 514 MONEY 767 SUBWAY 028 ACCESS 271 DIFFICULT 523 MONTH 776 SUCCESS 037 ADDRESS 280 DOCUMENT 532 MORNING 785 SUPPLY 046 AFFIRMATIVE 299 ENCODE 541 MORSE 794 SUPPORT 055 AGENT 307 EVENING 550 NEGATIVE 802 TELEPHONE 064 AIRPLANE 316 EXECUTE 569 NIGHT 811 TODAY 073 AIRPORT 325 FACTORY 578 OBSERVATION 820 TOMORROW 082 ANSWER 334 FAILED 587 PASSPORT 839 TRAIN 091 AUTHORITY 343 FERRY 596 PERSON 848 TRANSFER 109 BETWEEN 352 FLIGHT 604 PHOTOGRAPH 857 TRANSMIT 118 BORDER 361 FREQUENCY 613 POSITIVE 866 TRAVEL 127 BUILDING 370 HARBOUR 622 POSSIBLE 875 TRUCK 136 CANCEL 389 HELICOPTER 631 POWER 884 UNABLE TO 145 CHANGE 398 HIGHWAY 640 PRIORITY 893 URGENT 154 CIVILIAN 406 IDENTITY 659 PROBLEM 901 VERIFY 163 COMPROMISE 415 IMMEDIATE 668 QUESTION 910 WEEK 172 COMPUTER 424 IMPOSSIBLE 677 RADIO 929 WITHIN 181 CONFIRM 433 INFORMATION 686 RECEIVE 938 YESTERDAY 190 CONTACT 442 INSTRUCTIONS 695 RENDEZVOUS 947 DISREGARD MSG FROM 208 COORDINATE 451 LOCATE 703 REPEAT 956 DO NOT ANSWER 217 COUNTRY 460 LOCATION 712 RESERVATION 965 FORWARD THIS MSG TO 226 COVERT 479 MAIL 721 ROUTINE 974 REPEAT YOUR MSG FROM 235 CURRENT 488 MEETING 730 SATELLITE 983 READABILITY (1 TO 5/5) 244 DANGER 497 MESSAGE 749 SHIP 992 SIGNAL STRENGTH (1 TO 5/5) |
Sommige codeboek woorden kunnen uitgebreid worden door eenvoudigweg één of meerdere letters toe te voegen. Met de CT-37 tabel van hierboven is het meervoud van 0596 (PERSON) dan 059683 (PERSONS). De verleden tijd van 0686 (RECEIVE) is dan 068672 (RECEIVED), en 0901 (VERIFY) geeft dan 090172 (VERIFYD/verified). Woorden kunnen ook een andere betekenis krijgen. 0686 (RECEIVE) wordt 068682 (RECEIVER), 0857 (TRANSMIT) wordt 085782 (TRANSMITR/transmitter) of 0226 (COVERT) wordt 02267888 (COVERTLY). De FIG code kan weggelaten worden indien getallen verwacht worden. SIGNAL STRENGHT 4 kan dus gescheven worden als 0992444.
In ons voorbeeld zullen we het codeboek, of liever codeblad, van hierboven gebruiken (klik om te vergroten). U vind hier een ASCII versie. Bemerk de vreemde volgorde van de getallen. Deze waarden zijn zorgvuldig uitgekozen en zullen altijd het ontdekken een één-cijferige fouten in een code aantonen en meestal ook twee-cijferige fouten. Een fout zal steeds een onbestaande code genereren. Eenvoudigweg de waarden 00 tot 99 gebruiken voor de 100 codewoorden is af te raden aangezien één enkele fout bij ontvangst en/of ontcijfering dan in een heel ander woord resulteert.
Laat ons volgende tekst omzetten in getallen: "MEETING BERLIN CANCELLED. TRAVEL 25 JAN TO ZURICH WITH NEW PASSPORT."
MEETING B E R L I N CANCEL-D . TRAVEL 2 5 J A N 0488 70 2 82 78 3 4 0136 72 91 0866 90 222 555 90 76 1 4 99 T O Z U R I C H W I T H N E W PASSPORT. 6 5 99 89 84 82 3 71 75 99 86 3 6 75 99 4 2 86 0587 91 In groepen: 04887 02827 83401 36729 10866 90222 55590 76149 96599 89848 23717 59986 36759 94286 05879 19191 |
De laatste groep dient steeds aangevuld
te worden met full-stops (919...). Bemerk dat, met de
hulp van ons kleine codeblad, de 68 tekens van het
bericht (spaties en leestekens inclusief) omgezet werd in
niet meer dan 80 cijfers. Dit geeft een zeer goede 1,17
cijfer/letter verhouding. Natuurlijk kan men ook spaties
weglaten waar de leesbaarheid dit toelaat en allerhande
afkortingen gebruiken. Dit kan de lengte van het bericht
nog meer reduceren.
Eens het bericht in getallen werd omgezet kunnen we beginnen met het vercijferen. Eerst vertellen we de ontvanger welke one-time pad sleutel voor dit bericht werd gebruikt. Daarvoor dient de eerst groep van het one-time pad. Deze eerste groep mag nooit gebruikt worden voor het vercijferen van het bericht! De vercijfering start vanaf de tweede groep. Deze methode van identificatie onthult geen volgorde van berichten of hoe veel er verstuurd werden. In ons voorbeeld slaan we dus de identificatiegroep 74061 over.
Noteer de omgezette tekst in groepen van vijf cijfers (vul de laatste groep aan met nullen), schrijf de cijfers van het one-time pad er onder en trek de one-time pad cijfers van de tekst af. Het aftrekken gebeurt cijfer per cijfer en zonder overdracht (e.g. 5 - 9 = 15 - 9 = 6). In dit voorbeeld gebruiken we sleutelblad 00015 van one-time pad boekje 1234 zoals getoond in Stap 1.
Klaar : KEYID 04887 02827 83401 36729 10866 90222 55590 76149 96599 89848 23717 59986 36759 94286 05879 19191
OTP (-): 74061 66599 83953 09280 65571 63520 33281 72791 08682 03571 50328 17473 91793 58402 00658 45973 85273
-----------------------------------------------------------------------------------------------------
Cijfer : 74061 48398 29974 84221 71258 57346 67041 83809 78567 93028 39520 16344 68293 88357 94638 60906 34928
|
Vernietig het gebruikte one-time pad vel onmiddellijk na het beëindigen van de vercijfering, zelfs al staan er nog ongebruikte groepen op het gebruikte vel. Hergebruik een one-time pad nooit!
Hieronder het complete bericht met het identificatienummer 74061 als eerste groep. Indien het bericht verzonden word over radio, in Voice of Morse, is het aangeraden alle groepen dubbel te verzenden om fouten te vermijden (bvb 74061 74061 48398 48398 enz...). Indien het callsign van de ontvanger "306" is kan het bericht er zo uitzien:
306 306 306 74061 48398 29974 84221 71258 57346 67041 83809 78567 93028 39520 16344 68293 88357 94638 60906 34928 |
Om een bericht te ontcijferen controleren we de eerste groep van het bericht om te zien welke sleutel gebruikt werd. Vervolgens schrijven we de juiste one-time pad sleutel onder de cijfertekst (sla de eerste groep over) en tellen cijfertekst en sleutel bij elkaar op zonder overdracht (6 + 9 = 5 en niet 15).
Cijfer : 74061 48398 29974 84221 71258 57346 67041 83809 78567 93028 39520 16344 68293 88357 94638 60906 34928
OTP (+): 74061 66599 83953 09280 65571 63520 33281 72791 08682 03571 50328 17473 91793 58402 00658 45973 85273
-----------------------------------------------------------------------------------------------------
Klaar : KEYID 04887 02827 83401 36729 10866 90222 55590 76149 96599 89848 23717 59986 36759 94286 05879 19191
|
Tenslotte zetten we de cijfers terug om in tekst met behulp van de omzettingstabel. De ééncijferige en tweecijferige karakters zijn gemakkelijk te onderscheiden: als het volgende cijfer 1 tot 6 is hebben we te maken met een ééncijferige karakter. Als het volgende cijfer 7, 8 of 9 is hebben we een tweecijferige karakter en volgt er nog een cijfer. Als het volgende cijfer een 0 is volgen er drie cijfers van een code.
Gebruikt steeds aftrekken voor vercijferen en optellen voor ontcijferen.
Denk eraan!
Bewaar nooit een one-time pad nadat het gebruikt werd om
een bericht te ontcijferen. Dit zal de sleutel én het
bericht compromitteren! Vernietig de sleutel onmiddellijk
na gebruik.
Hier bespreken we enkele belangrijke regels die gevolgd moeten worden bij het gebruik van one-time pad vercijfering en communicatie. Deze regels zijn niet 'onderhandelbaar'. Alle one-time pad communicatie die ooit gecompromitteerd werd heeft één of meer van de hier beschreven regels geschonden. Zelfs een kleine schijnbaar onbelangrijke fout kan resulteren in de ongeoorloofde ontcijfering van berichten. Door onveilige communicatie kan de onderschepper het bericht linken aan de verzender of ontvangen die anoniem wenste te blijven. Dikwijls werden gebruikers van one-time pads vooraf grondig ingelicht over het gebruik ervan, maar dachten dat de kleine details niet belangrijk waren. Zij waren fout. Het helpt om paranoia te zijn. Bij correct gebruik is one-time pad echter onbreekbaar. En ja, ook onbreekbaar voor het NSA, GCHQ of FAPSI. Lees zorgvuldig verder!
One-time pad vercijfering is enkel mogelijk indien zowel verzender als ontvanger in bezit zijn van dezelfde sleutel. Daarvoor moeten de sleutels op voorhand veilig uitgewisseld worden tussen beide partijen. Dit betekend dat de veilige communicatie verwacht en gepland is binnen een specifiek tijdsbestek. Genoeg sleutelmateriaal dient beschikbaar te zijn voor alle nodige communicatie totdat een nieuwe uitwisseling van sleutels mogelijk is. Afhankelijk van de situatie en toepassing kan een groot volume aan sleutels nodig zijn voor een korte tijd of slechts zeer weinig sleutelmateriaal voor een zeer lange periode, tot verscheidene jaren.
Bewaar one-time pads nooit op een computer, geheugenstick of Compact Disk. Het wissen van deze media is problematisch en volledige vernietiging van gebruikte one-time pads is nooit gegarandeerd. Er bestaan speciale technieken om digitale gegevens terug leesbaar te maken, zelfs nadat de data werd gewist en zelfs na effectief te zijn overschreven. De sleutels dienen steeds fysiek, persoonlijk of per koerier, verdeeld te worden. Verstuur one-time pads nooit elektronisch. One-time pads vercijferen alvorens ze te verzenden, bijvoorbeeld met AES of een ander sterk algoritm, is zinloos en gevaarlijk omdat dit de veiligheid van onbreekbaar zal verlagen naar de veiligheid van het gebruikte algoritme.
Het belangrijkste van one-time pad is een veilig sleutelbeheer. Als de sleutel, gebruikt voor de vercijfering van het bericht, niet gecompromitteerd is zal het bericht mathematisch onbreekbaar zijn. Het is duidelijk dat de personen die verantwoordelijk zijn voor het creëren en gebruiken van one-time pads dienen onderworpen te worden aan de hoogste screening qua veiligheid. Het aantal personen dat instaan voor productie en verdeling van het sleutelmateriaal dient tot een absoluut minimum beperkt te worden. Zodra een sleutelpaar gecreëerd is dient het genummerd en geregistreerd te worden. Er dient een gecentraliseerde (ster-topologie) registratie en distributie te zijn zodat men steeds weet wie waar en wanneer welke sleutels heeft. Als een sleutel gebruikt, vervallen, ingetrokken of gecompromitteerd is dient de verdeler of gebruiker de sleutel te vernietigen en de andere partij onmiddellijk te verwittigen. Gebruik een one-time pad nooit meer dan één maal! Indien dat toch gebeurt, zal eenvoudige analyse alle berichten breken die vercijferd werden met dat one-time pad (zie one-time pad pagina)
Een sleutel is steeds gecompromitteerd in volgende gevallen:
Gebruik nooit een gecompromitteerde sleutel en waarschuw alle gebruikers van die sleutel dat hij onmiddellijk vernietigt dient te worden!
Gebruik nooit een computer om de klare tekst van een bericht in te typen, op te slaan of te vercijferen. Dit zal steeds sporen achterlaten op uw computer. Veilige computers bestaand niet en zijn een utopie! Schrijf het bericht en de sleutel op een enkel stuk papier dat op een hard oppervlak ligt, doe hierop ook de berekeningen en vernietig dit papier na vercijferen of ontcijferen. De eenvoudigste veilige manier is het te verbranden. Het klinkt paranoia maar het heeft zijn redenen! Controleer uw vercijfering alvorens het bericht te versturen. Eén enkele fout kan het bericht onleesbaar maken of fatale vergissingen tot gevolg hebben. Eens het bericht vercijferd is, kan men het eender waar opslaan of bewaren. Het is en blijft onbreekbaar. Omwille van ontkenbaarheid is het echter af te raden om vercijferde berichten op computer of elektronische media op te slaan.
Indien onderschepping van de communicatie en onthulling van de identiteit en locatie van verzender/ontvanger hun veiligheid of privacy niet in gevaar brengt kunnen we het bericht op eender welke wijze verzenden. Dit is de eenvoudigste situatie. Indien hun identificatie of het feit dat ze vercijfering gebruiken hun privacy of persoonlijke veiligheid in gevaar brengt moeten zij heimelijk of verhult communiceren.
Heimelijke communiceren is een zeer moeilijke zaak. Telefoon, GSM, satelliettelefoon, post, e-mail en andere methodes om data elektronisch via het Internet of ander netwerken te versturen moeten steeds als absoluut onveilig beschouwt worden. Zij maken plaatsbepaling en identificatie van zowel verzender als ontvanger mogelijk en mogen nooit gebruikt worden voor heimelijke communicatie. Publieke systemen zijn een manier om anoniem te communiceren. Enkele voorbeelden zijn een computer in een cybercafé of bibliotheek (natuurlijk enkel zonder registratie) of een openbare telefoon (met anomiem aangekochte prepaid kaart). Een bericht kan via een cybercafé computer geplaatst of gelezen worden op een Internet forum of een willekeurig gastenboek. Het mag nooit mogelijk zijn om een tijd en plaats te linken aan een persoon die het publiek systeem gebruikte. Iemand kan misschien wel een publiek toegankelijk systeem gebruiken, het zal steeds mogelijk zijn om tijdstip en locatie van de communicatie te bepalen. In dit geval kan een getuige of veiligheidscamera die specifieke tijd en plaats linken aan de persoon die het systeem gebruikte. Vandaag wordt alle elektronische communicatie voor lange tijd opgeslagen, klaar voor analyse en onderzoek. Een telefoongesprek of SMS is nooit een moment in tijd. Het is een digitale gebeurtenis die permanent achterblijft in databases.
Het moet ook onmogelijk zijn om een specifiek toestel te linken aan een onderschepte communicatie. Het gebruik van een GSM of prepaid kaart zal die specifieke GSM of kaar linken aan het bericht of gesprek. Eens dit verband is vastgesteld, kan dit bericht gemakkelijk gelinkt worden aan andere gerelateerde berichten. On-line e-mail accounts zijn ook gemakkelijk te linken aan een specifiek bericht en locatie. Zelfs het éénmalig gebruik van een GSM, prepaid kaart of e-mail account zal steeds sporen achterlaten en het toestel compromitteren waardoor het nadien onbruikbaar is voor eender welk doel.
Een kortegolf radio is ideaal om heimelijk berichten te ontvangen over lange afstanden. Er bestaat geen mogelijkheid om de plaats te bepalen van iemand die een radiobericht ontvangt. Het bezit van een eenvoudige kortegolf radio (wereldontvanger) is niet verdacht. De gebruikte frequentie voor het ontvangen van de berichten mag natuurlijk niet in het geheugen opgeslagen worden. Het heimelijk verzenden van berichten via een radiozender is riskanter. Een uitzending kan binnen enkele seconden gelokaliseerd worden met de geschikte apparatuur. De huidige SDR technologie (Software Defined Radio) maakt toezicht en onderscheppen van uitzendingen mogelijk op meerder volledige frequentiebereiken tegelijk. Het gebruik van burst-transmissies (zeer snel en kort versturen) kan onvoldoende zijn om onderschepping te vermijden. Daarom is het gebruik van een zender enkel veilig indien de zender ver weg en buiten het bereik van de onderscheppers is. Een ander mogelijkheid is het gebruik van speciale apparatuur die werkt op ongebruikelijke frequenties of die werkt met een special type elektromagnetische of optische draaggolf. Zoals u merkt is het zeer moeilijk om in onze huidige hoogtechnologische en volledig gedigitaliseerde maatschappij werkelijk anoniem te communiceren.
Indien de communicatie niet bedoeld is om een bericht over lange afstand te verzenden maar enkel om de relatie tussen verzender en ontvanger te verhullen kan men een dead drop of brush-pass gebruiken. Een dead drop of "dode brievenbus" is een locatie om heimelijk voorwerpen of berichten uit te wisselen tussen twee personen zonder persoonlijk contact. De verzender verbergt zijn bericht op een publiek toegankelijke plaats en geen elders een signaal (bvb. een krijtstreep op een muur of kauwgom om een paal) om de ontvanger te verwittigen dat een dead drop heeft plaatsgevonden. De ontvanger kan de dead drop op een voor hem geschikte moment ophalen. Beide personen dienen op voorhand een locatie voor de dead drop en een locatie en soort signaal af te spreken. Het onthullen van een dead drop vereist intensieve observatie van zowel verzender, ontvanger én de locaties. Een brush-pass is een ontmoeting tussen verzender en ontvanger op een vooraf bepaalde tijd en plaats waarbij men heimelijk een bericht uitwisselt. Dit kan bijvoorbeeld door het bericht in een krant achter te laten om onmiddellijk daarna opgepakt te worden, het verwisselen van identieke tassen of eender welke onverdachte handeling op een publieke locatie. Een brush-pass is makkelijker te ontdekken tijdens observatie dan een dead drop en houd meer risico in. Men kan steeds ontkennen dat een bericht werd uitgewisseld maar kan nooit ontkennen dat men in de buurt was van de andere persoon.
Zoals u kunt zien is het alles behalve makkelijk om veilig te communiceren. Een andere oplossing is het bericht openlijk over te brengen maar het op zulke wijze te verhullen dat de onderschepper niet weet dat het verzonden werd. Deze techniek noemt men steganografie (verborgen schrift). Er zijn verschillende manieren om cijfertekst in een schijnbaar onschuldige brief of e-mail in te voegen of te verbergen. Natuurlijk moeten de getallen in de tekst er onschuldig uit zien. Vreemde reeksen getallen kunnen wantrouwen opwekken. Simpelweg het bericht in getallen omzetten en deze zonder vercijfering in een tekst verbergen (een gewoon nul-cijfer) is totaal onveilig en mag nooit zo gebruikt worden. Vercijfer uw bericht altijd alvorens het te verbergen!
Eén methode om de cijfers te verbergen in een tekst is het toewijzen van een set woorden aan elk cijfer en dan deze woorden gebruiken om een leesbare en onschuldig ogende tekst samen te stellen. Indien goed toegepast is de vercijferde communicatie volledig ontkenbaar. Om voldoende flexibiliteit en variatie te verzekeren in de tekst moet elk cijfer in zoveel mogelijk verschillende woorden kunnen worden omgezet. U vindt een (Engelstalig) voorbeeld van een cijfer-naar-woorden tabel in dit tekstbestand (om te downloaden, rechts-klik en kies "Opslaan Als..."). U kunt voor elk cijfer kiezen tussen 22 woorden. Om de tekst terug om te zetten in cijfers bevat de tabel ook woord-naar-cijfer tabel in alfabetische volgorde, waarmee u snel het cijfer vind dat correspondeert met een bepaald woord.
In onderstaand voorbeeld verbergen we de groepen 74061 48398 29974, het vercijferde beginfragment van "Meeting Berlin cancelled..." in het voorbeeld van hierboven. We gebruiken onze voorbeeld cijfer-naar-woorden tabel om de woorden te vinden die we kunnen gebruiken in onze tekst. U kunt ook het meervoud gebruiken van sommige woorden (MOVIES, CARS, HOUSES...) zolang het woord zelf onveranderd blijft (om verwarring te vermijden). Af en toe, maar niet te veel, kunt u ook direct cijfertekst getallen in uw tekst invoegen waar dit onschuldig lijkt ("It took me 40 minutes to..."). Hieronder nu een voorbeeld van het verbergen van de drie cijfertekst groepen met onze cijfer-naar-woorden tabel:
"I just got back from the office. I could use a holiday! A pool with some beer would do just fine. A bit more cash on my account would be usefull to pay my airplane. I wish I could leave for a whole month. By the way, read any good books or magazines lately? I always read whilst listening to the radio,with a good glass of wine in my lazy couch. Much better than watching football. I know, you prefer a cigar and a newspaper, you cultural barbarian!"
Is dit nu geen mooie en onschuldige tekst (natuurlijk onderlijn je de woorden in het echt niet). Let er op een tekst te maken die zinvol is. Schrijven over een reis die u nooit maakte of over een familielid of hond die niet bestaat kan u verraden. Schrijven over dingen die u graag zou hebben of zou doen, of over dingen in de toekomst zijn altijd veilig om te gebruiken in uw tekst omdat zij nauwelijks te controleren zijn. Let er vooral op om geen onbedoeld woorden uit tabel te gebruiken omdat dit een extra cijfer betekend en daardoor de tekst niet meer te ontcijferen is. Controleer uw werk meermaals alvorens te versturen.
De ontvanger controleert elk zelfstandig naamwoord in zijn woord-naar-cijfer tabel om te zien of het gelinkt is aan een cijfer. Hij noteert de gevonden cijfers en ontcijferd het bericht met het juiste one-time pad. Hoewel een lange cijfertekst heel wat woorden en zinnen nodig heeft biedt deze methode zeer veel flexibiliteit. Natuurlijk dient u uw eigen tabel samen te stellen met veelvuldig gebruikte woorden, eventueel met woorden, gerelateerd aan uw leefomgeving, en moet de tabel geheim blijven. Een gecompromitteerde cijfer-naar-woorden tabel kan uw kansen verkleinen om het bestaan van een verborgen cijfertekst in uw tekst volledig te ontkennen. Desondanks zal het vercijferde bericht zelf onbreekbaar blijven als het one-time pad, gebruikt voor de vercijfering, geheim blijft of correct werd vernietigd.
Met dit systeem is het verborgen bericht volledig ontkenbaar omdat er absoluut geen manier is om het te detecteren of zijn bestaan te bewijzen zonder de juiste one-time pad sleutel. Gezien het feit dat in de huidige digitale wereld virtueel alle communicatie vatbaar is voor onderschepping is dit de perfecte methode om berichten te verzenden via post, e-mail, on-line accounts, Internet forums en dergelijke. De communicatie zelf blijft echter nog steeds registreerbaar (trafiek-analyse!). U hebt enkel wat literaire fantasie nodig en een excuus waarom je elkaar schrijft. Bemerk dat de combinatie met andere vormen van vercijfering dan one-time pad het mogelijk kunnen maken dat de onderschepper de tekst analyseert en ontcijferd! Enkel one-time pad zal cryptoanalyse-resistente tekst en plausibele ontkenning
Een ander, minder flexibele, methode om getallen in tekst te verbergen is ze om te zetten in letters via een kleine tabel. We gebruiken hiervoor de 20 meest frequente letters uit het Nederlands. We delen ze op in twee groepen: "ENATIRODSL GVHKMUBPWJ". Elk getal van 0 tot 9 wordt toegewezen aan één van de 10 meest frequente letters (eerste groep) en aan één van de minder frequente letters (tweede groep). Vervolgens creëren we een tekst waar elk tweede woord begint met één van de twee letters die aan dat bepaalde cijfer zijn toegewezen.
Hieronder de tabel met cijfer-naar-letter en letter-naar-cijfer conversie. De distributie van letters is geoptimaliseerd voor de Nederlandse taal om genoeg flexibiliteit te hebben in het bedenken van zinnen. De letters door elkaar gooien hoeft niet omdat toch one-time pad vercijfering gebruikt word.
Nederlandse omzettingstabel 0 = E of G A = 2 M = 4 1 = N of V B = 6 N = 1 2 = A of H D = 7 O = 6 3 = T of K E = 0 P = 7 4 = I of M G = 0 R = 5 5 = R of U H = 2 S = 8 6 = O of B I = 4 T = 3 7 = D of P J = 9 U = 5 8 = S of W K = 3 V = 1 9 = L of J L = 9 W = 8 Ongebruikt: C F Q X Y Z |
In onderstaand voorbeeld gebruiken we weer de groepen 74061 48398 29974. Wanneer omgezet in letterparen, zoals in de tabel hierboven, verkrijgen we de volgende reeks letterparen:
DP IM EG OB NV IM SW TK LJ SW AH LJ LJ DP IM |
U bent nu vrijd om de eerste of tweede letter van elk letterpaar te gebruiken als eerste letter van elk tweede woord. Een voorbeeld van hoe de tekst er kan uitzien:
"De papieren werden ingevuld en gaan morgen opgestuurd worden. Voor mij is het werk nu klaar. Je laat maar weten of het je lukt die leveringsbon op datum te maken."
U kunt afspreken om te beginnen bij het eerste woord of bij het tweede woord. Indien nodig kunt u de ongebruikte lege letters "CFQXYZ" in plaats van de 20 andere letter gebruiken. In dat geval dient dat woord eenvoudigweg overgeslagen te worden bij ontcijferen en gaat men voort met de volgende tweede letter. Dit geef nog meer vrijheid om met de tekst te spelen.
Tenslotte is er ook nog
het probleem van persoonlijke veiligheid. In sommige
landen is het bij wet verboden om dit type van
vercijfering te gebruiken. De reden is eenvoudig. Sommige
overheden verstaan het woord 'privacy' niet en willen de
communicatie van hun landgenoten kunnen lezen. One-time
pad verhinderd hen dit te doen. Daarom kan betrapt worden
met one-time pads u meer kosten dan geld. One-time pads
kunnen uw gezondheid ernstig schaden, en dat is geen
grap!
Op deze website
kunt u Numbers
8.3 downloaden.Met deze Crypto
Secure Random Number Generator (CSRNG) kunt u
willekeurige reeksen nummers of letter genereren,
geformateerd als standaard one-time pads, werkbladen of
zelf aangepaste reeksen. U kunt ook meerdere
letter-naar-getal conversietabellen bekijken en printen
voor gebruik bij one-time pad vercijfering. Hoewel een
CSRNG theoretisch nooit Shannon's absolute veiligheid
bereikt zal hij in de praktijk bruikbaar zijn om one-time
pads te genereren. De astronomische grootte van seed en
periode, de whitening door 14 gecombineerde generators en
het gedeeltelijke en beperkt aantal gegenereerde nummers
of letters met dezelfde seed maken het onmogelijk om de
output te achterhalen. De Numbers software is daarom een
goed software alternatief om one-time pads te creëren.
Creëer paren van one-time pads met werkelijk willekeurige cijfers, een kopij voor de verzender en een kopij voor de ontvanger. Om een bericht te vercijferen, de klaartekst eerst omzetten in cijfers met behulp van de omzettingstabel. Om de cijfertekst te berekenen, schrijf het one-time pad onder de klaartekst maar sla de eerste groep van het one-time pad over. Trek het one-time pad af van de klaartekst, zonder overdracht. Zet de overgeslagen eerste groep van het one-time pad vóór de cijfertekst om de ontvanger te vertellen welk pad werd gebruikt. Vernietig het pad na gebruik.
Om het bericht te ontcijferen controleert u de eerste groep van de cijfertekst om te zien welk one-time pad gebruikt werd. Schrijf het one-time pad onder de cijfertekst maar sla de eerste groep van zowel cijfertekst als pad over. Tel cijfertekst en one-time pad samen, zonder overdracht. Zet de cijfers met behult van de omzettingstabel terug in tekst om. Vernietig het one-time pad na ontcijfering.
1. Creër
one-time pads met werkelijk willekeurige cijfers
2. Gebruikt een one-time pad nooit meer dan eens
3. Vernietig het one-time pad onmiddellijk na gebruik
© Copyright 2004 - 2012 Dirk Rijmenants
| Home One-time pad |