un algorithme de chiffrement a flot base sur le probleme des 3 corps
TRANSCRIPT
Conception d’un algorithme de chiffrement a flot basé sur le problème des 3 corps
Un algorithme ?
Le chiffrement ?
- Le chiffrement symétrique
- Le chiffrement asymétrique
Les algorithmes de chiffrement sont équivalents a
Des fonctions a sens unique avec des portes
dérobés
-Un algorithme de chiffrement ou de déchiffrement
est une une fonction difficile a inverser sans connaître
la clé de chiffrement.
=> Ceci est en quelques sorte analogue a une fonction
a sens unique avec une porte dérobée.
Équations équivalentes a un algorithme de chiffrement symétrique :
- C = F ( P , K )
- P = G ( C , K )
Équations équivalentes a un algorithme dechiffrement asymétrique :
- C = F ( P , K1 )
- P = G ( C , K2 )
- K1 = H ( K2 )
Un algorithme de chiffrement à flot ?
Équations équivalentes a un algorithme dechiffrement a flot :
- K = F ( k )
- C = P xor K
- P = C xor K
Un meta algorithme de chiffrement par flot
Information début ( Variables Entrées )
Clé secrète : Cs.
Texte en claire : M = [ m_0….m_n] .
Information intermédiaire ( Variables Internes )
État interne : E = [E_0…..E_n] .
Flux de clé : K = [k_0….k_n].
Information Fin ( Variables Sortie)
Texte chiffré : C = [c_0…..c_n] .
Initialisation de l’état interne :
E_0 = Initialiser( Cs ).
Boucle de chiffrement :
i de 0 a n faire
E_i+1 = F ( E_i )
k_i = G ( E_i+1 )
c_i = k_i xor p_i
La structure mathématique sous jacente au problème des 3 corps.
La structure mathématique :
Ensemble S ={ [(p1_0,f1_0),(p2_0,f2_0),(p3_0,f3_0)] …
[(p1_i,f1_i),(p2_i,f2_i),(p3_i,f3_i)] …
[(p1_n,f1_n),(p2_n,f2_n),(pi_n,fi_n)] }
Caractérisé par les règles suivantes :
f1_i+1 = F1(p2_i , p3_i )
f2_i+1 = F2(p3_i , p1_i )
f3_i+1 = F3(p1_i , p2_i )
p1_i+1 = G1(f1_i+1 )
p2_i+1 = G2(f2_i+1 )
p3_i+1 = G3(f3_i+1 )
Un meta algorithme de chiffrement par flot basé sur la structure mathématique sous jacente au problème des 3 corps.
Information début ( Variables Entrées )
Clé secrète : Cs.
Texte en claire : M = [ m_0….m_n] .
Information intermédiaire ( Variables Internes )
État interne : E = { [(p1_0,f1_0),(p2_0,f2_0),(p3_0,f3_0)] …..
[(p1_n,f1_n),(p2_n,f2_n),(p3_n,f3_n)] }
Flux de clé : K = [k_0….k_n].
Information Fin ( Variables Sortie )
Texte chiffré : C = [c_0…..c_n].
Initialisation de l’état interne :
E0 =[ ( p1_0 , f1_0 ) , ( p2_0 , f2_0 ) , ( p3_0, f3_0) ] = Initialiser(Cs ).
Boucle de chiffrement :
i de 0 a n faire
f1_i+1 = F1 ( p2_i , p3_i )
f2_i+1 = F2 ( p3_i , p1_i )
f3_i+1 = F3( p1_i , p2_i )
p1_i+1 = G1 ( f1_i+1 )
p2_i+1 = G2 ( f2_i+1 )
p3_i+1 = G3 ( f3_i+1 )
k_i = p1_i+1
c_i = k_i xor m_i
L’algorithme RC4 :
Clef secrète Cs, composé de l mots de 8 bits, K[0], …, K[l-1].
Initialisation :
Pour i de 0 à 255
S[i] : i.
j : 0
Pour i de 0 à 255 faire
j : ( j + S[i] + K[i mod l ] ) mod 256
échanger S[i] et S[j]
Boucle de chiffrement :
i : 0, j : 0
De i = 0 a n
i : ( i+1 ) mod 256
j : ( j+S[i] ) mod 256
échanger S[i] et S[j].
k_i+1 = S[( S[i] + S[j] ) mod 256 ]
c_i = k_i+1 xor m_i.
L’algorithme 3XRC4 :
Clef secrète Cs =[K1, K2, K3] , Ki=1..3 composé de l mots de 8 bits, ki[0], …, ki[l-1].
Initialisation :
Pour i de 0 à 255
S1[i] : S2[i] : S3[i] : i .
u : v : w : 0
Pour i de 0 à 255 faire
u : ( u + S2[S3[i]] + K1[ i mod l ] ) mod 256
échanger S1[i] et S1[u]
v : ( v + S3[S1[i]] + K2[ i mod l ] ) mod 256
échanger S2[i] et S2[v]
w : ( w + S3[S1[i]] + K3[ i mod l ] ) mod 256
échanger S3[i] et S3[v]
Boucle de chiffrement :
i : u : v : w :0
De i = 0 a n
i : ( i+1 ) mod 256
u : ( u+S2[S3[i]] ) mod N
échanger S1[i] et S1[u]
v : ( v+S3[S1[i]] ) mod 256
échanger S2[i] et S2[v]
w : ( w+S1[S2[i]] ) mod 256
échanger S3[i] et S3[w]
k_i+1 = S1[( S1[i] + S1[u] ) mod 256 ]
c_i = k_i+1 xor m_i.
Présenté par : Samir Bouftass, Chercheur independant en cryptographie et membre de l’association marocaine de cryptographie.
E_mail :[email protected]
Site de L’AMC : http://www.amcrypto.org/Root/