Secret Splitting This page in Englishs


Home


Wat is Secret Splitting

In het kort, geef je geheime code of paswoord in bewaring bij meerdere personen zonder het geheim zelf vrij te geven. De lange versie, Secret Splitting - geheim splitsen - is een systeem om getallen, tekst of computerdata te splitsen in twee of meer delen, ook wel sleutels genoemd. Alle delen zijn nodig om de originele informatie terug te bekomen. Wanneer één van de delen niet beschikbaar is zal het mathematisch onmogelijk zijn om de originele informatie te bekomen. De informatie van één afzonderlijk deel onthult geen informatie, zelfs niet gedeeltelijk, over het origineel en helpt op geen enkele wijze bij het onthullen van het origineel. Daarom bied Secret Splitting mathematisch absolute veiligheid zolang de afzonderlijke delen gescheiden blijven. Natuurlijk kan men de geheime informatie niet eenvoudigweg in twee verdelen want dat zou de helft van de informatie onthullen wat absoluut niet wenselijk is en soms zelfs tot volledige onthulling van de originele gegevens kan leiden.

Waar gebruiken we Secret Splitting

Secret Splitting is nuttig in situaties waar geheime informatie in bewaring word gegeven aan twee of meer personen, zonder de geheime informatie zelf aan die personen vrij te geven. Alle personen met een deel van de geheime informatie dienen akkoord te gaan om alle delen samen te voegen en de originele informatie te onthullen. Geen enkele persoon kan individueel de informatie onthullen zonder toelating en hulp van alle personen met de overige delen. Meer nog, meer personen met een deel van het geheim betekent meer veiligheid want meer personen dienen akkoord te gaan. Dat is net het omgekeerde van het geheim zelf met anderen te delen, waar meer personen meer risico betekent.

Dit is bijzonder interessant in situaties waar verschillende personen samen verantwoordelijkheid dienen te nemen voor toegang tot beschermde informatie of materiaal, of tot een apparaat met beperkte toegang. Een voorbeeld is een persoon die gevoelige informatie of waardevolle goederen in een kluis bewaart en twee personen aanduid die in geval van nood de kluis kunnen openen. Beide personen ontvangen een deel van de geheime informatie en kunnen de kluis enkel samen openen. Dit kan bijvoorbeeld een ouder zijn die zijn geld, documenten en waardevolle voorwerpen in een kluis opbergt en de nummercombinatie splitst. Alle kinderen ontvangen een deel van de geheime combinatie en in geval van nood of overlijden van de ouder hebben zij enkel toegang tot de kluis indien zij allen overeen komen deze te openen. Een andere toepassing van Secret Splitting is het beschermen van geheime sleutelwoorden of paswoorden voor toegang tot computers of sleutels om vertrouwelijke bestanden te ontcijferen. Het meest extreme voorbeeld is de lanceerinrichting van een nucleaire raket, waar tenminste twee personen moeten akkoord zijn om de code in te geven en de Grote Rode Knop te drukken.

Secret Splitting kan ook gebruikt worden om het risico op onderschepping bij versturen van codes, sleutels of andere gegevens te verkleinen. Men kan bijvoorbeeld een code via verschillende wegen versturen naar de bestemmeling. Een code, in vier gesplitst, kan via e-mail, post, via SMS met GSM én telefonisch verzonden worden, en dit op verschillende tijdstippen. Dit betekend dat diegene die de code wil bemachtigen zowel e-mail, post, GSM en telefoonverkeer van de verzender gedurende lange tijd dient af te luisteren en te onderscheppen wat enorm veel tijd en middellen vereist. Eén gemist deel van de code maakt de reconstructie van de code onmogelijk voor de onderschepper.

Hoe werkt Secret Splitting

Het principe van Secret Splitting is gebaseerd op one-time pad vercijfering en is eenvoudig maar zeer effectief. Enkel one-time pad biedt de absolute veiligheid die nodig is om de delen te creëren. Eén gesplitst deel is werkelijk willekeurig en het andere deel is de originele informatie met het willekeurige deel ervan afgetrokken. Alle berekeningen kunnen met de hand uitgevoerd worden en Secure Splitting is daarom door iedereen gemakkelijk uit te voeren zonder speciale kennis van cryptografie. Laat ons het principe verklaren in een voorbeeld:

Charlie splitst de geheime nummercombinatie 21 46 03 88 van zijn kluis. Een willekeurige sleutel wordt getal per getal, zonder overdracht, afgetrokken van de originele nummercombinatie (bv. 4 - 9 = 14 - 9 = 5). Alice en Bob ontvangen beiden een deel van de informatie. Het is rekenkundig onmogelijk voor zowel Alice als Bob om de originele nummers te weten te komen, tenzij ze beslissen om hun delen samen te voegen. De originele gegevens kunnen eenvoudig bekomen worden door de twee delen bij elkaar op te tellen zonder overdracht (bv. 7 + 5 = 2 en niet 12).



 Charlie's combinatie     21 46 03 88    
 Willekeurige sleutel   - 25 01 77 61
                          -----------
                          06 45 36 27 


 Alice's deel = 2501 7761

 Bob's deel   = 0645 3627

Voor elk bijkomende gesplitst deel moeten we een bijkomende willekeurige sleutel aanmaken. Als we de geheime informatie splitsen in 5 delen hebben we dus 4 willekeurige delen en één resultaat-deel nodig. In dit geval moeten alle willekeurige sleutels afgetrokken worden van de originele informatie. Een voorbeeld met het geheime getal 2 en drie delen. De drie delen zijn twee willekeurige delen, 6 en 9, en één resultaat-deel:

2 - 6 - 9 = 7 want 2 - 6 = 12 - 6 = 6 and 6 - 9 = 16 - 9 = 7. De drie gesplitte delen zijn dus 6 9 7.

De originele waarde is terug te berekenen door optellen van de delen (zonder overdracht): 6 + 9 + 7 = 2

We kunnen ook tekst splitsen. Dan moeten we eerst de tekst omzetten in getallen. Dit kan gebeuren door elke letter een waarde toe te kennen: Gebruikt de nummers 01 tot 26 voor de letters A tot Z, 30 tot 39 voor de cijfers 0 tot 9 en 00 voor een spatie. Dit systeem kan uitgebreid worden naar uw wensen. Deze methode van letter-naar-nummer conversie hoeft niet geheim te zijn! De tekst kan een geheim paswoord, instructies, rekeningnummers, een code of gewoon een hele tekst zijn.



 Geheime tekst               M  O  N  A  L  I  S  A    
 Geconverteerd              13 15 14 01 12 09 19 01
 Willek. sleutel (deel 1) - 52 71 30 94 52 86 62 13
                            -----------------------
 Resultaat (deel 2)         61 44 84 17 60 23 57 98


 Alice's deel = 5271 3094 5286 6213

 Bob's deel   = 6144 8417 6023 5798

Om de originele informatie terug te bekomen tellen we gewoon de delen terug samen, weerom zonder overdracht, en converteren de getallen terug naar letters.

We kunnen Secret Splitting ook toepassen met letters. Dit lijkt op one-time pad met letters, maar met een klein verschil. We geven de letters een numerieke waarde, van A=0 tot Z=25. Merk op dat we beginnen met A=0 en niet A=1, want we moeten modulo 26 rekenen! Het verschil met one-time pad is dat we hier de willekeurige sleutel van de geheime informatie aftrekken in plaats van erbij op te tellen. Zodoende moeten we niet weten welk gesplit deel van welk deel afgetrokken moet worden. We kunnen nu gewoon beide gesplitste delen bij elkaar optellen in eender welke volgorde.



 Geheime tekst               M  O  N  A  L  I  S  A    
 Geconverteerd              12 14 13 00 11 08 18 00
 Willek. sleutel (deel 1)    D  X  G  J  Z  E  C  I
                         -  03 23 06 09 25 04 02 08
                            -----------------------
                            09 17 07 17 12 04 16 18
 Resultaat (deel 2)          J  R  H  R  M  E  Q  S


 Alice's deel = DXGJ ZECI

 Bob's deel   = JRHR MEQS

We gebruiken modulo 26. Wanneer dus bij het aftrekken het resultaat minder dan 0 is tellen we er 26 bij. Als bij het optellen het resultaat meer dan 25 is trekken we er 26 van af.

We kunnen als hulp een omzettingstabel gebruiken. Om de gesplitste delen te creëren door aftrekken (het willekeurige deel aftrekken van de informatie) nemen we bijvoorbeeld L(11) - Z(25). Aangezien het resultaat negatief zou zijn nemen we in de tabel de grotere waarde van L, was 37 is. Dus: L(37) - Z(25) = M(12). Als het resultaat niet negatief is kunnen we natuurlijk rechtstreeks aftrekken. Om de gesplitste delen terug samen te voegen nemen we Z(25) + M(12) = L(37).


   A  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X  Y  Z     
  -----------------------------------------------------------------------------
  00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 --

Een andere mogelijkheid om de letters te berekenen zonder de tussenbewerkingen met getallen is de Vigenere tabel (zie one-time pad), maar vergeet niet dat we in de omgekeerde richting moeten werken (aftrekken!): neem de willekeurige letter (gesplitst eerste deel) in de kolom-hoofding en zoek daaronder naar de letter van de geheime informatie. Het tweede gesplitste deel is de rij-hoofding links van deze letter. Om twee gesplitste delen samen te voegen nemen we de kruising tussen de kolom-hoofding van één deel en de rij-hoofding van het ander deel.

Computer Data Splitsen

We kunnen Secret Splitting ook toepassen op computerdata. Om gelijk welk type computerbestand te splitsen moeten we eerst een willekeurig deel genereren met dezelfde lengte als het bestand. Dit willekeurige bestand zal het eerste gesplitst deel zijn. Het tweede gesplitst deel wordt aangemaakt door het originele bestand te XOR-en met het willekeurig bestand. Om de originele data terug samen te stellen dient men enkel alle delen met de XOR functie samen te voegen, en dit in eender welke volgorde.

In het volgende voorbeeld splitsen we een byte in twee delen:


 Geheime Data               01011010           XOR Tabel      
 Willek. bits (deel 1)  XOR 11101011          -----------
                            --------          0 XOR 0 = 0
 Resultaat    (deel 2       10110001          0 XOR 1 = 1
                                              1 XOR 0 = 1
                                              1 XOR 1 = 0

We kunnen bytes ook splitsen in meer dan twee delen. Voor elk nieuw deel voegen we een nieuwe reeks willekeurige bits toe en XOR-en deze met de andere delen:


 Geheime Data               10011100    
 Willek. bits (deel 1)  XOR 01001011
 Willek. bits (deel 2)  XOR 11010001
 Willek. bits (deel 3)  XOR 00101011
                            --------
 Resultaat    (deel 4)      00101101

De software, gebruikt voor het Secret Splitting, moet gebruikt worden op een veilige computer en mag geen sporen nalaten na het aanmaken van de gesplitste delen.Dit omvat ook het veilig wissen van het originele bestand (de normale verwijder-functie van uw computer is niet voldoende!). De Secret Splitting software dient aan dezelfde kwaliteitsstandaard te voldoen als degelijke cryptografische software op het gebied van geheugenbeheer, veilige bestandsverwerking en genereren van werkelijk willekeurige getallen (zie vereisten willekeur in volgende sectie). De gesplitste delen dienen ook veilig bewaard te worden op externe media of, minder aan te raden, verschillende computers.

Secret Splitting veilig houden

In de voorbeelden kunnen we zien dat het principe van one-time pad gebruikt is. Het verschil met one-time pad is dat we geen bericht verzenden en dat we de willekeurige sleutel niet vernietigen. Om de absolute veiligheid te garanderen dienen we ons echter te houden aan twee belangrijke veiligheidsregels:

De eerste regel is het genereren van werkelijk willekeurige getallen, net zoals bij one-time pad vercijfering. Om zulke werkelijke willekeur te genereren zijn er verschillende methodes. Een goede bron voor willekeur zijn tien-zijdige dobbelstenen (zie foto). Met vijf zulke stenen kan je snel een groep van 5 cijfers maken.

Photo © Bill Twist

Gebruik nooit gewone dobbelstenen door twee stenen samen te tellen en twee waarden te negeren. Deze methode is statistisch ongeschikt om de waarden 0 tot 9 te produceren en dus absoluut onveilig (het totaal 7 zal zo'n 6 keer meer voorkomen dan 2 of 12).

Gebruik daarom één zwarte en één witte dobbelsteen en ken een waarde toe aan elk van de 36 combinaties, rekening houdende met de volgorde/kleur van de steen (zie tabel hieronder). Deze methode geeft een 0.277 waarschijnlijkheid (1 op 36) voor elke combinatie. Hiermee kunnen we drie reeksen met de waarden 0 tot 9 produceren. De overige 6 combinaties (met zwarte 6) kunnen eenvoudigweg genegeerd worden, wat statistisch geen effect heeft op de andere combinaties.


 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 balletjes, genummerd van 0 tot 9. Na het trekken van een bal dient deze terug met de rest gemixt te worden alvorens de volgende te trekken. Deze methodes zijn geschikt voor kleine hoeveelheden willekeurige getallen, zoals het splitsen van sleutels of paswoorden. Indien grotere hoeveelheden nodig zijn, bijvoorbeeld voor het splitsen van computerbestanden, is de beste oplossing de aankoop van een PC-kaart met hardware ruisgenerator.

De tweede regel voor absoluut veilig splitsen is natuurlijk de fysieke scheiding van de individuele delen. Minstens één van de gesplitte delen mag nooit toegankelijk zijn voor de bezitters van de andere delen. De afzonderlijke delen dienen steeds zo beschermd te worden dat compromittering van een deel opgemerkt kan worden. Een mogelijke manier om een gesplit deel te bewaren is een kleine verzegelde - gelijmde - plastic container die gebroken dient te worden om toegang te krijgen tot het gesplit deel (wikkel de dicht geplooide tekst in alu-folie). Zegels kunnen mee in de container gelijmd worden. Een beschadigde container, en dus een compromittering van dat deel, zal onmiddellijk opgemerkt worden. Natuurlijk dient de plastic container steeds op een veilige plaats bewaard te worden. De eigenaar van de informatie kan steeds een veiligheidscontrole uitvoeren door de houders van zijn gesplitste delen hun onbeschadigde container te laten tonen.

Als de regels van willekeur en fysieke scheiding strikt nageleefd worden zal de geheime informatie absoluut veilig zijn. Het is mathematisch bewezen dat er geen enkele manier is om de geheime informatie te onthullen, tenzij men beide gesplitste delen bezit. Indien u echter de code splitst van een vijf-euro-slot, dan zal u ook over vijf-euro-veiligheid beschikken. Het is zinloos een absoluut veilig systeem te gebruiken om de combinatie van een goedkope kluis te beveiligen, als die kluis met een koevoet in een wip open kan. Anderzijds, indien u de combinatie van een bankkluis splitst kunt u er absoluut zeker van zijn dat geen enkele individuele bezitter van een gesplitst deel toegang krijgt tot die kluis in de bank.

Tenslotte heeft Secret Splitting nog een belangrijke eigenschap. Aangezien het systeem rekenkundig bewezen onbreekbaar is zal het verlies van één van de gesplitste delen het volledige verlies betekenen van de originele informatie, tenzij de eigenaar zelf nog een kopij heeft van die informatie. Er is geen weg terug als een deel verloren of per ongeluk vernietigt is. Het kan nuttig zijn om een extra kopij van uw deel op een veilige plaats te bewaren. Wanneer u zelf geheime informatie splitst dient u de berekende delen meermaals te controleren indien u van plan bent het origineel te vernietigen!

Meer om te lezen


© Copyright 2004 - 2012 Dirk Rijmenants

Home