OVH Cloud OVH Cloud

[Avis] ClassicSys / SED ?

1 réponse
Avatar
rm
Bonsoir,

J'ai été interpellé par un message plus /sérieux/ que les autres dans
le livre d'or de mon site, au sujet d'un (nouveau ?) système de
chiffrement prétendant pouvoir s'appliquer à l'e-mail.
Ne trouvant que très peu d'information et n'étant pas compétent dans
le domaine, je me permets de solliciter vos avis experts sur
ClassicSys et son algo SED afin d'éclairer, au moins, ma simple
curiosité.
http://www.ulb.ac.be/di/scsi/classicsys/

merci,

@+
--
rm
http://foxmail.free.fr

1 réponse

Avatar
Emile Musyck
"rm" a écrit dans le message de news:

Bonsoir,

J'ai été interpellé par un message plus /sérieux/ que les autres dans
le livre d'or de mon site, au sujet d'un (nouveau ?) système de
chiffrement prétendant pouvoir s'appliquer à l'e-mail.
Ne trouvant que très peu d'information et n'étant pas compétent dans
le domaine, je me permets de solliciter vos avis experts sur
ClassicSys et son algo SED afin d'éclairer, au moins, ma simple
curiosité.
http://www.ulb.ac.be/di/scsi/classicsys/

merci,

@+
--
rm
http://foxmail.free.fr

Etant l'auteur de l'algorithme SED et du crypto système Classicsys, je

me suis rendu compte que la demande d'avis avait tout pour décourager
l'éventuel lecteur, les joujoux de Philippe qu'il a falut démontrer l'aspect
négatif, le site internet Classicsys trop étendu, et aucune renommée, ni de
l'auteur, ni de l'invention. Le texte repris ci-dessous devrait consister en
une courte synthèse reprenant l'essentiel du crypto système et d'un abord
pas trop difficile à comprendre.

En reprenant les conclusions de l'article
http://perso.wanadoo.fr/gilb/cours-crytanalyse.html : Tout le monde peut
inventer un algorithme qu'il ne pourra briser. Ce n'est même pas difficile.
Ce qui est difficile, c'est la cryptanalyse. Et seul un bon cryptanalyste
expérimenté pourra concevoir un bon chiffrement.

On sait par expérience que si un nouvel algorithme n'a pas fait l'objet
d'une communication ou d'une publication en haut lieu, la probabilité d'une
émergence d'un nouvel algorithme doit être considérée comme très faible,
mais il n'y a pas lieu de généraliser.

L'algorithme SED est un algorithme asymétrique, mais à clefs privées et
de ce fait, la cryptanalyse différentielle ou linéaire n'est pas applicable
et il faut investiguer d'une autre manière. Pour le RSA, personne n'a
essayer la cryptanalyse linéaire ou différentielle et pour cause; en fait il
y a lieu de rechercher la factorisation du produit des deux nombres
premiers.

Pour le SED, un minimum d'explication s'impose. Dans cet algorithme,
qui présente certaines similitudes avec le RSA, la première application
(DLM) consiste à calculer le vecteur dont le logarithme discret est égal au
logarithme discret du vecteur d'entrée multiplié par la clef de chiffrement.
On sait que la clef, le bloc d'entrée et son logarithme discret font partie
tous trois d'un espace comprenant 2^127-1 de vecteurs non nuls de 127 bits.
Les 127 bits des données (entrée et sortie) font partie d'un corps fini
tandis que la clef est un nombre arithmétique.

Considérons un espace réduit de vecteurs composés de 7 bits (au lieu de
127 bits) et formé de 127 (2^7-17) groupes de 3 nombres figurant dans le
tableau ci-après. Le nombre 127 est très petit en le comparant à (2^127) ce
qui permet d'établir la liste exhaustive ci-après de tous les logarithmes
discrets. Dans chaque groupe de trois nombres, le premier constitue le
logarithme discret inscrit par ordre croissant d'une unité, le deuxième
l'exponentielle discrète dans un corps fini et le troisième l'expression
binaire du deuxième nombre. Le corps fini correspond au trinôme primitif
P^0+P^1+P^7. On remarquera dans l'expression binaire de l'exponentielle
discrète, qu'il y a un glissement vers la gauche et que le bit d'entrée à la
droite est égal à la somme XOR des bits de rang 0 (bit à l'extrème gauche)
et de rang 1 (avant dernier bit à gauche) du nombre qui précède. Tous les
nombres (ou exponentielles discrètes à encrypter) de 1 à 127 figurent une et
une seule fois dans la liste.

1 126 1111110 2 124 1111100 3 120 1111000 4 112 1110000
5 96 1100000 6 64 1000000 7 1 0000001 8 2 0000010
9 4 0000100 10 8 0001000 11 16 0010000 12 32 0100000
13 65 1000001 14 3 0000011 15 6 0000110 16 12 0001100
17 24 0011000 18 48 0110000 19 97 1100001 20 66 1000010
21 5 0000101 22 10 0001010 23 20 0010100 24 40 0101000
25 81 1010001 26 35 0100011 27 71 1000111 28 15 0001111
29 30 0011110 30 60 0111100 31 121 1111001 32 114 1110010
33 100 1100100 34 72 1001000 35 17 0010001 36 34 0100010
37 69 1000101 38 11 0001011 39 22 0010110 40 44 0101100
41 89 1011001 42 51 0110011 43 103 1100111 44 78 1001110
45 29 0011101 46 58 0111010 47 117 1110101 48 106 1101010
49 84 1010100 50 41 0101001 51 83 1010011 52 39 0100111
53 79 1001111 54 31 0011111 55 62 0111110 56 125 1111101
57 122 1111010 58 116 1110100 59 104 1101000 60 80 1010000
61 33 0100001 62 67 1000011 63 7 0000111 64 14 0001110
65 28 0011100 66 56 0111000 67 113 1110001 68 98 1100010
69 68 1000100 70 9 0001001 71 18 0010010 72 36 0100100
73 73 1001001 74 19 0010011 75 38 0100110 76 77 1001101
77 27 0011011 78 54 0110110 79 109 1101101 80 90 1011010
81 53 0110101 82 107 1101011 83 86 1010110 84 45 0101101
85 91 1011011 86 55 0110111 87 111 1101111 88 94 1011110
89 61 0111101 90 123 1111011 91 118 1110110 92 108 1101100
93 88 1011000 94 49 0110001 95 99 1100011 96 70 1000110
97 13 0001101 98 26 0011010 99 52 0110100 100 105 1101001
101 82 1010010 102 37 0100101 103 75 1001011 104 23 0010111
105 46 0101110 106 93 1011101 107 59 0111011 108 119 1110111
109 110 1101110 110 92 1011100 111 57 0111001 112 115 1110011
113 102 1100110 114 76 1001100 115 25 0011001 116 50 0110010
117 101 1100101 118 74 1001010 119 21 0010101 120 42 0101010
121 85 1010101 122 43 0101011 123 87 1010111 124 47 0101111
125 95 1011111 126 63 0111111 127 127 1111111

Soit le nombre 75 à encrypter avec la clef 28. Le logarithme discret de
75 est 103. En multipliant ce logarithme par 28 modulo 127, on obtient
28*103(84= 22*127+90 (modulo-127). L'exponentielle discrète qui
correspond à 90 est égal à 123. C'est le résultat de l'application DLM/1
pour des vecteurs de 7 bits.

La cryptanalyse différentielle opère par l'introduction d'un petit
accroissement et examine la répercussion de cet accroissement sur le
résultat. Supposons un accroissement d'une unité du vecteur d'entrée qui
devient 76. Son logarithme discret est 114. Après multiplication par la clef
28, on obtient 28*114192= 25*127+17 (modulo-127). L'exponentielle
discrète de 17 est 24. On voit que ce résultat n'a plus rien de commun avec
le résultat précédent qui était égal à 90. La cryptanalyse linéaire opère
dans des conditions similaires, mais les conclusions sont identiques.

Le résultat 123 est multiplié par la clef 28 ce qui donne 123*28444 27*127+15 (modulo-127). Le résultat de l'application MAM (multiplication
arithmétique modulaire) est 15. Ce nombre 15 est introduit dans le second
DLM/3 relatif au trinôme primitif P^0+P^3+P^7. On remarquera dans le tableau
ci-après que le bit à l'extrême droite est égal à la somme XOR des bits de
rang 0 et de rang 3 du nombre qui le précède. Au nombre 15 correspond le
logarithme discret 124. La multiplication du logarithme discret par la clef
28 donne 124*28472= 27*127+43C (modulo-127). L'exponentielle discrète de
43 est 49. C'est le résultat du chiffrement du vecteur 75 par la clef 28
pour une simulation avec des vecteurs réduits de 7 bits.

1 126 1111110 2 124 1111100 3 120 1111000 4 112 1110000
5 97 1100001 6 67 1000011 7 7 0000111 8 14 0001110
9 29 0011101 10 59 0111011 11 119 1110111 12 111 1101111
13 94 1011110 14 60 0111100 15 121 1111001 16 114 1110010
17 101 1100101 18 75 1001011 19 22 0010110 20 44 0101100
21 89 1011001 22 50 0110010 23 100 1100100 24 73 1001001
25 18 0010010 26 36 0100100 27 72 1001000 28 16 0010000
29 32 0100000 30 64 1000000 31 1 0000001 32 2 0000010
33 4 0000100 34 8 0001000 35 17 0010001 36 34 0100010
37 68 1000100 38 9 0001001 39 19 0010011 40 38 0100110
41 76 1001100 42 24 0011000 43 49 0110001 44 98 1100010
45 69 1000101 46 11 0001011 47 23 0010111 48 46 0101110
49 93 1011101 50 58 0111010 51 117 1110101 52 107 1101011
53 86 1010110 54 45 0101101 55 91 1011011 56 54 0110110
57 108 1101100 58 88 1011000 59 48 0110000 60 96 1100000
61 65 1000001 62 3 0000011 63 6 0000110 64 12 0001100
65 25 0011001 66 51 0110011 67 102 1100110 68 77 1001101
69 26 0011010 70 53 0110101 71 106 1101010 72 84 1010100
73 41 0101001 74 83 1010011 75 39 0100111 76 78 1001110
77 28 0011100 78 57 0111001 79 115 1110011 80 103 1100111
81 79 1001111 82 30 0011110 83 61 0111101 84 123 1111011
85 118 1110110 86 109 1101101 87 90 1011010 88 52 0110100
89 104 1101000 90 80 1010000 91 33 0100001 92 66 1000010
93 5 0000101 94 10 0001010 95 21 0010101 96 42 0101010
97 85 1010101 98 43 0101011 99 87 1010111 100 47 0101111
101 95 1011111 102 62 0111110 103 125 1111101 104 122 1111010
105 116 1110100 106 105 1101001 107 82 1010010 108 37 0100101
109 74 1001010 110 20 0010100 111 40 0101000 112 81 1010001
113 35 0100011 114 70 1000110 115 13 0001101 116 27 0011011
117 55 0110111 118 110 1101110 119 92 1011100 120 56 0111000
121 113 1110001 122 99 1100011 123 71 1000111 124 15 0001111
125 31 0011111 126 63 0111111 127 127 1111111


Le déchiffrement s'effectue en sens inverse. On effectue en premier lieu
l'application DLM/3, puis le MAM et enfin le DLM/1. Partant du résultat, le
nombre encrypté 49, son logarithme discret est 43. En multipliant ce
logarithme discret par la clef inverse de 28, c'est-à-dire 59 parce que
28*5952= 13*127+1=1 (modulo-127), on obtient 43*59%37= 19*127+1244
(modulo-127). Au logarithme discret 124, il y correspond l'exponentielle
discrète 15. Nous retrouvons bien le résultat intermédiaire entre les
applications MAM et DLM/3 au cours de l'opération de chiffrement.

C'est par le fait de l'utilisation de la clef conjuguée au le
déchiffrement qu'il faut considérer l'algorithme SED comme étant un
algorithme asymétrique.

Ce qui précède constitue une réduction de l'algorithme SED pour des
vecteurs de 7 bits. Lorsqu'on passe dans la réalité à des vecteurs de 127
bits, il n'est plus question d'établir une liste exhaustive et l'on procède
par une série de multiplications matricielles modulo-2 pour effectuer la
multiplication du logarithme discret par un processus de calcul à structure
polynomiale. Les deux trinômes primitifs de degré 127 des deux applications
DLM(63 & 30) sont P^0+P^63+P^127 et P^0+P^30+P^127. On peut vérifier que
tous les vecteurs de 1 à 2^127-1 sont présents une et une seule fois dans
les deux corps finis

Pour la facilité de la gestion des données et des clefs, un bit
supplémentaire a été ajouté de manière à créer des blocs de 128 bits, une
puissance de 2.

La vitesse de chiffrement pour 1000 blocs de 128 bits s'effectue en 1,86
secondes pour un PC opérant à 1000 Mhz. Un mémoire de fin d'études, d'un
étudiant de l'Université Libre de Bruxelles, consacré à l'implantation du
SED en langage Java a donné comme résultat une vitesse de chiffrement de 300
fois plus faible.

J'espère que cette petite introduction à l'algorithme SED vous aura
donné une idée de son fonctionnement. Si tout ceci est trop fastidieux à
comprendre, il vous est loisible de télécharger le logiciel de chiffrement
des é-mails (www.ulb.ac.be/di/scsi/classicsys/ClassicTit.zip) et de
comparer la gestion des clefs de ClassicSys à celle du PGP.

Emile Musyck