LES ASTUCES WINDOWS
Le cryptage et le décryptage

Le cryptage Xor

Le cryptage Xor est utilisé dans des algorithmes complexes, et sert également d'instruction de programmation. Il est donc intéressant de connaître son fonctionnement.
L'opération Xor ou " OU exclusif ", notée en mathématiques, est une opération logique qui ne retourne la valeur 1 que si les deux bits comparés sont différents. C'est le " OU " de l'expression " boire OU conduire, il faut choisir (mdrr ) " : l'un ou l'autre, mais pas les deux.
Alors, voyons voir comment fonctionne le cryptage XOR, ou exclusif: Il est impératif de connaître la table qui suit :
0 xor 1 = 1
1 xor 1 = 0
1 xor 0 = 1
0 xor 0 = 0

Mise en pratique:
texte claire : cryptage
clé de cryptage : messages

On convertit les caractère en binaires :
cryptage = 01100011 01110010 01111001 01110000 01110100 01100001 01100111 01100101
messages = 01101101 01100101 01110011 01110011 01100001 01100111 01100101 01110011

On compare les deux chaines de données et on applique le xor:
01100011 01110010 01111001 01110000 01110100 01100001 01100111 01100101 //text clair
01101101 01100101 01110011 01110011 01100001 01100111 01100101 01110011 //clé

00001110 00010111 00001010 00000011 00010101 00000110 00000010 00010110 //code du cryptogramme

Dans le cas où le message à crypter est plus grand que la clé ( çà arrivera forcément en cryptant un texte, il suffit de répéter la clé autant de fois que nécessaire pour qu'il y ait toujours deux chiffres à comparer)
Si le message est plus petit que la clé ( il va de soi que la clé est tronquée )

Chiffrement à mono-clé
--------------------------------------------------------------------------------
Il est possible de crypter un chaine de caractères en utilisant, toujours la même clé.
Certes il est plus facile de la décrypter dans ces conditions, mais là c'est juste en exemple.
Nous voulons appliquer le chiffrement avec un XOR 40.

Texte claire: over.
En ASCII cela donne 111 118 101 114
Appliquons le chiffrement:
111 XOR 40 : 71
118 XOR 40 : 94
101 XOR 40 : 77
114 XOR 40 : 90
Résultat : G^MZ
La machine elle n'opère qu'en binaire, mais dans un programme en C/C++ peut importe.

Programmation :
En language C, l'instruction permetant le XOR est : ^
Soit deux lettres E et F, nous effectuerons: E XOR F:

main() {
int var;
var = 'E' ^ 'F';
printf("%i",var);
}

Equivalent à:
main() {
int var;
var = '101' ^ '102';
printf("%i",var);
}

Ou encore:
main() {
int var;
var = '1100101' ^ '1100110';
printf("%i",var);
}

Nous avons vu que certains messages peuvent être crypter par une mono-clé, c'est-à-dire que l'on crypte chaque caractère d'un message par une valeur tenant donc obligatoirement sur 8 octect soit 2 puissance 8 = 256 possibilité de crypter par mono-clé.

NOTION IMPORTANTE : le xor est réversible c'est-à-dire : E xor F = M donc M xor F = E et encore
M xor E = F

Exercice :
Décrypter : XIZKQUWVQM

Solution :
Il existe 255 caractère ascii, donc pour résoudre ce challenge il vous faut faire un mini-programme en C par exemple qui xorize chaque caractère du message crypté par une mono-clé allant de 0 à 255 :
#!include!
#!include!

main() {
int v,v1,v2,v3,v4,v5,v6,v7,v8,v9;
int i;
for(i=0;i<256;i++){
v = 'X' + i;
v1 = 'I' + i;
v2 = 'Z' + i;
v3 = 'K' + i;
v4 = 'Q' + i;
v5 = 'U' + i;
v6 = 'W' + i;
v7 = 'V' + i;
v8 = 'Q' + i;
v9 = 'M' + i;
printf("%c%c%c%c%c%c%c%c%c%c %i ",v,v1,v2,v3,v4,v5,v6,v7,v8,v9,i);
}
}

Le décryptage complexe

J'appelle décryptage complexe l'opération qui consiste à décrypter une chaîne déjà décryptée à l'état primaire. Je m'explique:
Il s'agit de transmettre à une personne P1 un message M1 en clair afin que cette dernière (P1) se charge de le coder et de le transmettre à son tour à une personne P2 qui, à son tour doit également le recoder avant de le transmettre au destinataire final pour le décrypter. Cette méthode est appliquée généralement par la CIA et par la plupart des services secrets. Elle permet de doubler de vigilances en cas de perte de données ou de tentative d'espionnage. Si par exemple le message M1 (cryptée une 1ère fois) tombe entre les mains d'une tierce personne, il ne pourra pas être déchiffré directement pusqu'on ignore la méthode appliquée durant les différentes étapes de transfert de ce message. C'est aussi la méthode qui ressemble à celle utilisée par les services de sécurité du réseau Tps.
En général, la formule est la suivante: M=f1(m1)+f1(m2) où M représente le message ou le code à découvrir, f1 est la méthode appliquée pour coder le message m1, et f2 celle qppliquée pour coder m2.