Salut la compagnie !
Ca fait un petit bail que je n'ai rien posté (en fait, je crois même que je n'ai rien posté du tout ... ).
Donc, pour mon "come back" (je ne sais pas s'il va durer ^^), je vais faire quelques tutos de cryptographie.
Aujourd'hui, on ne se foule pas la rate, c'est dimanche, on va commencer avec de la cryptographie affine. Vous allez voir, c'est tout con.
Le système de cryptographie affine est un vieux système de cryptographie (très) simple. Son principal problème est qu'il ne résiste pas à une analyse fréquentielle, donc je vous déconseille de crypter des données sensibles avec ...
I. Prérequis mathématiques
Savoir ce qu'est une congruence dans Z : http://fr.wikipedia.org/wiki/Congruence_sur_les_entiers
II. Le système en lui-même
Alors, nous allons tout d'abord coder l'alphabet de la manière suivante : A=0, B=1, C=2, ..., Z=25.
On notera x le rang de la lettre choisie. Ex : Pour A, x=0
Choisissez un nombre que nous noterons a, premier avec 26 et strictement inférieur à 26, et b un autre nombre strictement inférieur à 26.
La lettre cryptée, dont le rang sera noté y, sera : y ≡ ax+b [26].
Voilà le fonctionnement de ce système.
Maintenant :
Pourquoi a doit être premier avec 26 ?
Parce que si vous prenez un nombre non premier avec 26, vous aurez des doublons de lettre codées, c'est-à-dire que deux lettres différentes pourront avoir la même lettre codée, ce qui, vous l'aurez compris, est un peu problématique ...
Pourquoi a et b doivent être strictement inférieurs à 26 ?
En fait, il n'y a aucune obligation à cela. Cependant, par sa nature même, la congruence rend inutile l'utilisation de chiffre supérieurs à 26. Ainsi, contrairement au RSA (dont je vais prochainement faire un tuto), rien ne sert de prendre des chiffres supérieurs à 26.
III. Exemple
Prenons a=7 et b=8.
A=0 : y≡7x0+8≡8[26] La lettre de rang 8 est I, donc A est codé en I.
B=1 : y≡7x1+8≡15[26] La lettre de rang 15 est P, donc B est codé en P.
C=2 : y≡7x2+8≡22[26] La lettre de rang 22 est W, donc C est codé en W.
D=3 : y≡7x3+8≡29[26]≡3[26] La lettre de rang 3 est D, donc D est codé en D.
Et ainsi de suite ...
Ca fait un petit bail que je n'ai rien posté (en fait, je crois même que je n'ai rien posté du tout ... ).
Donc, pour mon "come back" (je ne sais pas s'il va durer ^^), je vais faire quelques tutos de cryptographie.
Aujourd'hui, on ne se foule pas la rate, c'est dimanche, on va commencer avec de la cryptographie affine. Vous allez voir, c'est tout con.
Le système de cryptographie affine est un vieux système de cryptographie (très) simple. Son principal problème est qu'il ne résiste pas à une analyse fréquentielle, donc je vous déconseille de crypter des données sensibles avec ...
I. Prérequis mathématiques
Savoir ce qu'est une congruence dans Z : http://fr.wikipedia.org/wiki/Congruence_sur_les_entiers
II. Le système en lui-même
Alors, nous allons tout d'abord coder l'alphabet de la manière suivante : A=0, B=1, C=2, ..., Z=25.
On notera x le rang de la lettre choisie. Ex : Pour A, x=0
Choisissez un nombre que nous noterons a, premier avec 26 et strictement inférieur à 26, et b un autre nombre strictement inférieur à 26.
La lettre cryptée, dont le rang sera noté y, sera : y ≡ ax+b [26].
Voilà le fonctionnement de ce système.
Maintenant :
Pourquoi a doit être premier avec 26 ?
Parce que si vous prenez un nombre non premier avec 26, vous aurez des doublons de lettre codées, c'est-à-dire que deux lettres différentes pourront avoir la même lettre codée, ce qui, vous l'aurez compris, est un peu problématique ...
Pourquoi a et b doivent être strictement inférieurs à 26 ?
En fait, il n'y a aucune obligation à cela. Cependant, par sa nature même, la congruence rend inutile l'utilisation de chiffre supérieurs à 26. Ainsi, contrairement au RSA (dont je vais prochainement faire un tuto), rien ne sert de prendre des chiffres supérieurs à 26.
III. Exemple
Prenons a=7 et b=8.
A=0 : y≡7x0+8≡8[26] La lettre de rang 8 est I, donc A est codé en I.
B=1 : y≡7x1+8≡15[26] La lettre de rang 15 est P, donc B est codé en P.
C=2 : y≡7x2+8≡22[26] La lettre de rang 22 est W, donc C est codé en W.
D=3 : y≡7x3+8≡29[26]≡3[26] La lettre de rang 3 est D, donc D est codé en D.
Et ainsi de suite ...
Commentaire