Un algorithme de chiffrement a flot base sur le probleme des 3 corps

Preview:

Citation preview

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 :crypticator@gmail.com

Site de L’AMC : http://www.amcrypto.org/Root/

Recommended