Niveau :
Résumé : 1,0 ou 1/2
Un demi-bit
Beaucoup de gens pensent que le bit est l'unité élémentaire de l'informatique et en tant que tel totalement indivisible. C'est vrai d'un certain point de vue, mais tout comme on a découvert qu'un atome peut être décomposé, un bit peut être découpé.
En quoi cela peut-il bien être utile ? C'est utile en sécurité. Supposons qu'une bombe atomique soit lancée grâce à une clé numérique. Vous ne voudriez pas donner cette clé à une seule personne bien évidemment, mais vous ne voudriez pas non plus donner la moitié de la clé à 2 personnes car cela la fragiliserait énormément. La solution est de donner 2 clés complètes à 2 personnes mais toutes deux composées de demi-bits.
Ces demi bits sont tout simplement la composition du bit d'information avec un bit aléatoire. Et nous allons remercier la fonction xor d'être réversible.
Outil
Nous aurons besoin d'un petit script pour faire le xor de 2 fichiers binaires. Le voici, il est totalement suboptimal mais fait ce qu'on lui demande (en particulier il fonctionne avec /dev/random). On l'appellera xor.pl
#!/usr/bin/perl open(T1,"<",$ARGV[0]); open(T2,"<",$ARGV[1]); open(T3,">",$ARGV[2]); while(read(T1,$a,1)) { read(T2,$b,1); $c = $a ^ $b; print T3 $c; }
Travail à la clé
Pour faire nos 2 demi clés nous aurons besoin d'une clé entière et d'un champ de bits aléatoires de la même taille. Créons ce dernier (attention à bien utiliser random et pas urandom pour avoir du "vrai" aléatoire).
$ ls -l cle -rw------- 1 150 2007-04-07 15:18 cle $ dd if=/dev/random of=bits bs=1 count=150
Nous pouvons maintenant créer nos demi clés :
$ ./xor.pl cle bits crypt1 $ mv bits crypt2 # hé oui c'est lui l'autre moitié $ rm cle
Et voila donnons maintenant la première demi clé au président que nous appellerons A et la deuxième à son chien que nous appellerons Catherine.
Lorsque ceux-ci sont d'accord pour annoncer la fin du monde il peuvent simplement utiliser xor.pl
$ ./xor.pl crypt1 crypt2 cle
A suivre
Notez qu'on peut de la même façon faire des tiers ou des quarts de bits.
Toutes ces clés sont parfaitement sûres car séparément ce sont des ensembles de bits entièrement aléatoires. Seules, elles ne contiennent aucune information.
Remarquez que pour obtenir 2/3 de bit, il vous faut adapter la méthode. Les 2/3 permettent à 2 personnes sur les 3 qui se partagent le bit de le reconstituer.
Pour cela il suffit de créer 3 tiers de bits et de donner à A les bits 1 et 2, à B les bits 2 et 3, à C les bits 3 et 1. On donne le double de données, mais tout comme avant, on ne donne aucune information car ce sont des bits aléatoires.
Enfin n'oubliez pas que cela n'est pas seulement utile pour le président, mais aussi pour vous. Par exemple vous pouvez utiliser des clés qui ne seront valides qu'une fois deux supports donnés réunis, comme une clé usb et une machine fixe ou une clé usb, une carte à puce et un appareil photo numérique.
Comments