|
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.
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.
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.

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!
© Copyright 2004 - 2012 Dirk
Rijmenants
| Home |