Académique Documents
Professionnel Documents
Culture Documents
FACULTÉ DE MATHÉMATIQUES
Département d’Algèbre et Théorie des Nombres
Thème
Présenté par :
ASMAA Chahira BOUCHACHI Nihel
2019/2020
Remerciements
Nous remercions ALLAH le tout puissant d’avoir nous donner le courage, la
volonté et la patience pour accomplir ce modeste travail.
Nous tenons à exprimer nos vifs remerciements à M.GARICI pour nous avoir
fait l’honneur d’accepter de présider le jury de soutenance, et à M.BEZIA pour
accepter d’examiner ce travail.
Un merci tout particulier à nos familles qui nous ont soutenu et encouragée de-
puis toujours.
À tous ces intervenants, nous présentons nos remerciements, nos respects et nos
gratitudes.
Dédicaces
Je dédie ce mémoire à :
”Mon cher père”, à qui je dois énormément, qui a cru en moi, qui est la lumière
de ma vie et l’espoir de mon existence, et qui m’a donné les moyens d’aller aussi loin.
”Ma chère mère”, qui a œuvré pour ma réussite, de par son amour, son soutien,
tous les sacrifices et ses précieux conseils, pour toute son assistance et sa présence
dans ma vie.
À mes chéres sœurs Ryham et Nour El-houda qui m’avez toujours soutenu et
encouragé durant ces années d’études.
À ma binôme Chahira.
Je pris Dieu de les bénir tous, j’espère que Allah me permettra d’atteindre le ni-
veau d’attente de chacun et de ne pas les décevoir.
À tous ceux qui sont dans mon cœur et m’ont donnée la force de continuer...
NIHEL.
Dédicaces
Je dédie ce modeste travail accompagné d’un profond amour :
À mes chers parents, pour leur sacrifices, leur amour, leur tendresse, leur soutient
moral et leur prières tout au long de mes études, Que dieu leur procure bonne santé
et longue vie.
À ma mère qui m’a encourager durant toute mes études, et qui sans elle, ma
réussite n’aura pas eu lieu.
À mon père, qui est toujours disponible pour nous, et prêt à nous aider, je lui
confirme mon attachement et mon profond respect.
À ma chère sœur NADIA et ses petits enfants que j’aime beaucoup YASSER et
ISRAA, et mes frères YACINE et MOUH et KHALED pour leur encouragement
permanents.
Et bien a celui que j’aime beaucoup et qui m’a soutenue tout au long de ce
mémoire, mon cher fiancé MOUHAMED.
À ma binôme NIHEL.
CHAHIRA.
Table des matières
1 Généralités 11
1.1 Codes linéaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Codes cycliques et quasi-cycliques . . . . . . . . . . . . . . . . . . 13
La généralisation des codes cycliques nous a permet de définir une classe très
intéressante des codes c’est la classe des codes cycliques tordus.
Dans ce mémoire, on s’intéresse à l’étude de la structure algébrique, les bons pa-
ramètres et les propriétés de ces codes sur l’anneau R = F2 + vF2 = {0, 1, v, v + 1}
où v 2 = v, qui est le seul anneau commutatif d’ordre quatre qui n’est pas un corps,
et qui possède un automorphisme θ non trivial.
Ensuite, la correspondance entre les éléments de l’anneau précédent et les éléments
de base de code ADN nous a facilité de passer aux codes ADN cycliques tordus
à complément inverse puis introduire l’image binaire des codes ADN cycliques
tordus.
La structure d’ADN, son rôle et ses propriétés confirment que l’ADN est trés
adapté autant qu’un moyen pour le traitement ainsi que pour le stockage des
données. Actuellement, 1 gramme d’ADN peut être utilisé pour stocker environ
4.2 ∗ 1012 bits.
Et pour cela, à la fin nous avons proposé un algorithme symétrique dans le domaine
de la cryptographie d’ADN afin d’assurer la sécurité des données à l’aide de deux
clés secrètes générés par le processus d’hybridation et le protocole de DEFFIE-
HELLMAN.
8
INTRODUCTION
Récemment, ils ont réussi à généralisé la notion des codes cycliques, car ils
ont pu révélé une nouvelle classe des codes c’est la classe des codes θ− cycliques,
et pour construire ce type de codes il ont utilisé des polynômes générateurs d’un
anneau de polynôme non commutatif c’est l’anneau des polynômes tordu.
Les codes θ− cycliques dépendent d’un automorphisme d’anneau commutatif non
trivial, et le seul anneau d’ordre 4 possédant un tel automorphisme c’est l’anneau
R = F2 + vF2 où v 2 = v qui est isomorphe à F2 × F2 .
Les études dans ce domaine n’ont pas arrêté là, car un lien direct a été établi
entre les éléments de l’anneau R et la base nucléotidique d’ADN {A, T, C, G}, qui
a permet de construire une nouvelle famille de codes ADN sur cet anneau c’est
les codes ADN θ− cycliques, et de définir aussi l’image binaire de ses codes qui
permettant le passage au domaine de calcul d’ADN.
Le calcul ADN combine l’analyse des données génétiques avec la science infor-
matique afin de s’attaquer à des problèmes informatiques difficiles. Il a été initié
par Leonard Adleman en 1994.
Le concept d’utilisation du calcul ADN dans le domaine de la cryptographie a
été identifié comme une technologie possible, qui pourrait faire émerger un nouvel
espoir d’algorithmes incassables en cryptographie.
9
comme un disque dur et stocker les données numériques dans l’ADN, afin de
garantir la sécurité de ces derniers. D’autre manière, ils cherchent d’assurer que
si l’ADN peut être l’avenir de stockage des données.
Nous avons basé dans le chapitre 1 sur la généralisation des notions des codes
linéaires et les codes cycliques sur les corps finis. Et dans le chapitre 2 nous avons
définis la structure de l’anneau des polynômes tordu R[x; θ], puis la structure
algébrique des codes tordus sur l’anneau R,ainsi les propriétés des générateurs de
ces codes.
Dans le chapitre 3 on passe à la définition des codes ADN θ− cycliques et les codes
ADN θ− cycliques à complément inverse sur R, ainsi l’image binaire des codes
ADN tordus, obtenue on combinant les 2 applications GRAY (φ) et l’application
ψ.
A la fin pour introduire l’application des codes tordus en cryptographie d’ADN,
nous avons proposé dans le chapitre 4 un algorithme basé sur la cryptographie
d’ADN en utilisant 2 clés secrètes générés par le processus d’hybridation et le
protocole de Diffie-Helleman.
10
Chapitre 1
Généralités
L’objet de ce chapitre est de donner quelques rappels sur les codes linéaires et
quelques notions de bases sur les codes cycliques et quasi-cycliques .
11
Soit n ∈ N∗ , C une partie sur Fq est un sous ensemble non vide de Fnq ayant
M éléments.
On appelle n la longueur du code, M sa taille ou son cardinal, et les élements du
C sont appelés les mots du code.
On note par k la dimension du C sur Fq tel que M = q k .
C = {xG|x ∈ Fkq }
Définition 1.1.3. Une matrice génératrice G de C est dite sous sa forme systématique
si et seulement si elle s’écrit sous la forme :
G = [Ik |A]
où Ik est la matrice Identité d’ordre k.
Définition 1.1.4. la matrice de contrôle d’un code C est défini par :
H = [−t A|In−k ]
d≤n−k+1
Remarque. .
— Les codes tels que d = n − k + 1 sont des codes MDS (Maximum Dis-
tance Séparable), ce sont des codes optimaux, par exemple les codes de Reed-
solomon sont MDS.
— On dit que deux codes linéaires de même longueur sont équivalents si et
seulement si l’un s’obtient à partir de l’autre par une permutation des co-
ordonnées, c’est à dire qu’il est l’image de l’autre par une permutation de
Sn , autrement dit s’il existe σ ∈ Sn tel que (a1 , a2 ...an ) ∈ C équivalent à
(aσ(1) , aσ(2) , ...aσ(n) ) ∈ C.
On rappelle que deux codes équivalents ont les mêmes propriétés.
Définition 1.1.5. Soit C un code linéaire [n, k]q , le dual de C est :
12
Remarque. .
C ⊥ = {x ∈ Fnq , ∀c ∈ C, c.t x = 0}
= {x ∈ Fnq , Gt x = 0}
Or Rg(G) = k car dimC = k donc d’après le théorème du rang dim(ker(G)) =
n − k.
Notons H une matrice de contrôle de C, H ∈ Mn−k,n (Fq ) et Rg(H) = n − k, on
a G.t H = 0 et H.t G = 0.
Proprietés. Soit C un [n, k]q code linéaire et soit H une matrice de contrôle de
C.
C = {x ∈ Fnq |H.t x = 0}.
La quantité H.t x est appelée syndrome de C, et on note S(x) = H.t x.
Fq [x]
Rn = n
= {a0 + a1 x + a2 x2 + ... + an−1 xn−1 , ai ∈ Fq }
(x − 1)
qui donne le mot an−1 a0 a1 a2 ...an−2 ce qui veut dire qu’un code C linéaire est
cyclique si et seulement si x.p(x) ∈ C pour tout p(x) ∈ C.
Proposition 1.2.1. [9] Les codes cycliques de Fnq sont les idéaux de l’anneau Rn .
13
Théorème 1.2.1. [9] Une partie C ⊂ Rn est un code si et seulement si C est un
idéal de l’anneau Rn .
Définition 1.2.2. On appelle polynôme générateur du code cyclique C, l’unique
polynôme unitaire non nul de degré minimal représentant un élément de C.
Théorème 1.2.2. [9] Soit C un code cyclique de longueur n sur Fq et soit g(x)
son polynôme générateur, Alors :
1. Le code C est l’idéal engendré par le polynôme g(x) de l’anneau Rn .
2. Le polynôme g(x) divise xn − 1 dans Fq [x] .
3. dimC est égale à n − deg(g(x)) et une base de C en tant que sous espace
vectoriel de Fnq est (g(x), x.g(x), ...., xn−deg(g(x))−1 .g(x)).
Définition 1.2.3. Soit un code cyclique C généré par un polynôme g(x) alors
C = {p(x).g(x), p(x) ∈ Rn }, avec deg(p(x)) + deg(g(x)) = n.
Définition 1.2.4. Soit C un Pcode cyclique de dimension k, de P
longueur n et de
n−k i k i
polynôme générateur g(x) = i=0 gi x . Le polynôme h(x) = i=0 hi x tel que
n
x − 1 = h(x).g(x) est le polynôme de contrôle du code C.
14
Exemple 1. Prenons un code binaire de longueur n = 7 et distance minimal d.
Sachant que x7 − 1 se factorise sur F2 en 3 polynômes irréductibles, x7 − 1 =
(x + 1)(x3 + x2 + 1)(x3 + x + 1), ce qui veut dire qu’on a 23 = 8 codes cycliques y
compris 0 et F72
1. C0 = 1 engendre F72
2. C1 =< x + 1 >
3. C2 =< x3 + x + 1 >
4. C3 =< x3 + x2 + 1 >
5. C4 =< (x + 1)(x3 + x + 1) >=< x4 + x3 + x2 + 1 >
6. C5 =< (x + 1)(x3 + x2 + 1) >=< x4 + x2 + x + 1 >
7. C6 =< (x3 + x + 1)(x3 + x2 + 1) >=< x6 + x5 + x4 + x3 + x2 + x + 1 >
8. C7 = 0 =< (x + 1)(x3 + x2 + 1)(x3 + x + 1) >=< x7 + 1 >
Choisissons le code C2 son polynôme générateur g(x) = x3 +x+1 et le polynôme
de contrôle h(x) tel que x7 − 1 = g(x).h(x) = (x3 + x + 1)(x4 + x2 + x + 1) ce qui
nous permet de représenter les deux matrices comme suit :
La matrice génératrice 4 ∗ 7
1 1 0 1 0 0 0
0 1 1 0 1 0 0
G= 0 0 1 1 0 1 0
0 0 0 1 1 0 1
Et la matrice de contrôle 3 ∗ 7
1 0 1 1 1 0 0
0 1 0 1 1 1 0
0 0 1 0 1 1 1
15
Chapitre 2
Une étude introduite par Boucher, Geiselmann et Ulmer dans [4] a révélé
une classe intéressante de codes avec de très bons paramètres spécialement sur le
corps F4 . C’est la classe des codes θ−cycliques, qui généralise le concept des codes
cycliques et utilise un anneau de polynôme non commutatif, appelé l’anneau de
polynôme tordu, pour construire ce type de code.
Après ces travaux, il fut naturel de penser à étudier ce type de codes sur
d’autres anneaux de cardinal quatre.
Un code θ−cyclique dépend d’un automorphisme d’anneau non trivial,or, les
anneaux Z4 et S = F2 + uF2 = {0, 1, u, u + 1} tel que u2 = 0 ne possèdent pas
un automorphisme non trivial. Donc, sur ces anneaux, il n’existe pas de codes
θ−cycliques différent des codes cycliques ordinaires.
Ainsi, le seul anneau commutatif possédant un automorphisme θ non trivial est
l’anneau R = F2 + vF2 = {0, 1, v, v + 1} où v 2 = v, qui est isomorphe à l’anneau
F2 × F2 par l’application Gray notée φ, tel qu’on associe chaque élément a + bv
de R à (a + b, a) dans F2 × F2 , de la façon suivante :
0 −→ (0, 0)
1 −→ (1, 1)
v −→ (1, 0)
v + 1 −→ (0, 1)
16
Définition 2.1.1. L’anneau de polynôme tordu R[x; θ] est définit comme l’en-
semble des polynômes sur R où l’addition est l’addition usuelle des polynômes et
la multiplication noté par ∗ défini par la règle basique
Exemple 2.
x ∗ vx = θ(v)x2 = (v + 1)x2
et
vx ∗ x = vθ(1)x2 = vx2
Ce qui montre que la multiplication n’est pas commutative.
Par conséquent, quand on considère un idéal de l’anneau R[x; θ], on doit préciser
si c’est un idéal à gauche ou bien un idéal à droite.
Dans tout ce qui suit, quand on parle d’idéaux de R[x; θ], on veut toujours
dire idéaux à gauche ; et on utilise la notation (p(x)) pour noter l’idéal à gauche
généré par le polynôme p(x).
Il s’agit d’une multiplication bien définie des éléments de Rn par les éléments
de R[x; θ]. Avec cette définition, on a le théorème suivant :
Théorème 2.2.1. [1] Rn est un R|x; θ]− module à gauche où la multiplication
est définit comme dans l’équation (2.1).
17
Sous cette présentation de Rn , on peut identifié chaque élément (c0 , c1 , , ..., cn−1 )
de Rn , par le polynôme
dans l’anneau Rn .
Cette relation entre Rn et Rn , nous donne le théorème suivant :
Lemme 1. [1] Si n est pair, et (xn −1) = g(x)∗h(x) dans R[x, θ] , alors (xn −1) =
g(x) ∗ h(x) = h(x) ∗ g(x)
Lemme 2. [1] Soit f (x) un polynôme non unitaire en C de degré minimal, alors
f (x) = vf1 (x) ou f (x) = (v + 1)f1 (x), où f1 (x) est un polynôme binaire.
Preuve : Puisque f (x) n’est pas unitaire dans Rn , le coefficient de plus haut
degré de f (x) est soit v soit v + 1. Supposons d’abord que f (x) = vxt + at−1 xt−1 +
... + a1 x + a0 .
Alors (v + 1)f (x) = (v + 1)at−1 xt−1 + (v + 1)at−2 xt−2 + ... + (v + 1)a1 + (v + 1)a0 ,
puisque (v + 1)v = 0.
Mais la minimalité de f (x) implique que (v + 1)f (x) = 0. Par conséquent,
f (x) = vf1 (x) pour quelques polynômes binaires f1 (x). Si le coefficient de monôme
de plus haut degré de f (x) est v + 1, alors un argument similaire montre que
18
f (x) = (v + 1)f1 (x), où f1 (x) est un polynôme binaire de degré t.
où r(x) = 0 ou degr(x) < degf (x), ou bien r(x) est un polynôme unitaire de degré
égal au plus au degré de c(x). Puisque C n’a pas de polynômes unitaires et f (x)
est un polynôme de degré minimal dans Cdonc r(x) = 0.
Par conséquent, C = (f (x)).
F2 est un sous anneau de R la factorisation des polynômes binaires est toujours
valide dans l’anneau de polynôme tordus R[x; θ]. En utilisant l’algorithme de
division on aura deux polynômes binaires uniques Q(x) et R(x) tel que :
où R(x)est un polynôme binaire, avec R(x) = 0 ou degR(x) < degf1 (x) =
degf (x). On prend Q(x) = Q1 (x) + Q2 (x) où Q1 (x) se compose de tous les termes
de degré impair, et Q2 (x) de termes de degré pair. Par un petit raisonnement :
19
Puisque degR(x) < degf1 (x),Q1 (x) ∗ f1 (x) + v ∗ R(x) est un polynôme unitaire
dans C, contradiction. Donc, Q1 (x) ∗ f1 (x) + v ∗ R(x) = 0. Puisque Q1 (x) ∗ f1 (x)
et R(x) sont des polynômes binaires, R(x) = 0 et f1 (x)|(xn − 1).
Exemple 3. Soit C un code θ− cyclique dans R7 = R[x; θ]/(x7 − 1) tel que
x7 − 1 = (x + 1)(x3 + x2 + 1)(x3 + x + 1) on a C = (f (x)) = {r(x).f (x)/r(x) ∈ R7 }
tel que f (x) = vx3 + vx + v = v(x3 + x + 1) = vf1 (x) et que (x3 + x + 1)/(x7 − 1)
Théorème 2.2.4. [1] soit C un code θ− cyclique dans Rn = R[x; θ]/(xn − 1)
qui contient quelques polynômes unitaires. Supposons qu’aucun polynôme f (x)
de degré minimal dans C soit unitaire. Alors C = (f (x), g(x)) où g(x) est un
polynôme de moindre degré parmi les polynômes unitaires en C.
Preuve : Supposons qu’un polynôme f (x) de degré minimal dans C ne soit pas
unitaire. Soit g(x) un polynôme unitaire dans C de degré minimal et soit c(x) ∈ C.
Donc, par l’algorithme de division à gauche, il existe des polynômes p1 (x) et r1 (x)
tel que c(x) = p1 (x)∗g(x)+r1 (x), où r1 (x) = 0 ou deg(r1 (x)) < deg(g(x)). Puisque
g(x) et c(x) sont dans C et puisque C est un code θ− cyclique,on a r1 (x) ∈ C.
Puisque deg(r1 (x)) < deg(g(x)), r1 (x) est un polynôme non-unitaire ou
r1 (x) = 0.
20
Chapitre 3
L’organisation et la complexité de tous les êtres vivants est basé sur un système
de codage fonctionnant avec quatre éléments clés de la molécule d’ADN, c’est pour
cela qu’on dit qu’il est ”le support universel de l’information génétique” ou tout
simplement ”le code de la vie”. L’ADN est très adapté en tant qu’un moyen pour
le traitement des données. Ce qui a donné une naissance au Calcul d’ADN qui
est un champ qui combine entre la biologie moléculaire, la biochimie, l’informa-
tique et les mathématiques.
En 1994, ce champ a été initialement démontré par L.Adleman pour résoudre le
problème du voyageur de commerce, voir [7] p23, le but est d’être un alternative
pour les ordinateurs à base de silicium.
21
Figure 3.1 – Image correspond au structure d’ADN
Un code en bloc est appelé un code d’ADN s’il vérifie les conditions suivantes :
22
Définition 3.0.1. Un code C est dit inverse si xr ∈ C pour tout x ∈ C.
Un code C est dit complément si xc ∈ C pour tout x ∈ C.
Un code C est dit complément inverse si xrc ∈ C pour tout x ∈ C.
Un code cyclique complément inverse est un code cyclique qui est aussi complément
inverse.
23
Exemple Soit f un polynôme dans R[x; θ] donné par f (x) = x4 + vx3 + x2 +
(v + 1)x + v. Le polynôme f représente la séquence d’ADN X(ACATC).
On obtient l’inverse de la séquence X par f ∗ (x)
Théorème 3.1.1. [3] Soit C = (f (x)) un code cyclique tordu sur Rn , où f (x) est
un polynôme unitaire de degré minimal dans C, si C est un complément inverse
alors le polynôme f (x) est auto-réciproque et v(xn − 1)/(x − 1) ∈ C.
Preuve. Soit C = (f (x)) est un code cyclique tordu sur Rn , où f (x) est un
polynôme unitaire de degré minimal dans C, on sait que :
On a f (x) un polynôme unitaire de degré minimal dans C, où f (x) = 1+a1 x+...+
xt , le vecteur correspond au polynôme f (x) est (1, a1 , ..., at−1 , 1, 0, 0, ...0), comme
C est un complément inverse et linéaire, alors
i.e
f rc (x) = v + vx + ... + vxn−t−2 + (v + 1)xn−t−1 + ât−1 xn−t + ... + â1 xn−2 + (v + 1)xn−1 ∈ C
24
Donc, f rc (x) + v(xn − 1)/(x − 1) ∈ C. Cela implique
xn−t−1 + (ât−1 + v)xn−t + ... + (â1 + v)xn−2 + xn−1 ∈ C
En multipliant à droite par xt+1−n , (tel que : (axi ) ∗ (bxj ) = aθi (b)xi+j ),
on obtient
(1 + (ât−1 + v)θn−t (1)x + ... + (â1 + v)θn−2 (1)xt−1 + θn−1 (1)xt )
Par conséquent
(1 + (ât−1 + v)x + ... + (â1 + v)xt−1 + xt ) ∈ C
Ce qui implique (grâce à l’équation (3.1)) que
f ∗ (x) = 1 + at−1 x + ... + a1 xt−1 + xt ∈ C
Puisque C = (f (x)), il existe q(x) ∈ R[x; θ] tel que f ∗ (x) = q(x).f (x), il est
nécessaire et suffisant que q(x) = 1, pour que f ∗ (x) = f (x).
Théorème 3.1.2. [3] Soit C = (vf1 (x)) un code cyclique tordu dans Rn , où f1 (x)
est un polynôme binaire unitaire de plus petit degré, avec f1 (x)/(xn − 1).
Si C est un code de complément inverse, alors f1 (x) est auto-réciproque.
Preuve Soit f1 (x) = 1 + a1 x + a2 x2 + ... + xr un polynôme binaire, le vecteur
correspond à f1 (x) est :
v = (1, a1 , ..., ar−1 , 1, 0, 0, 0, ..., 0, 0).
Par conséquent
v rc = (0̂, 0̂, 0̂, ..., 0̂, 1̂, âr−1 , ..., aˆ1 , 1̂) ∈ C.
Ce vecteur correspond au polynôme
f1rc = v + vx + ... + vxn−r−2 + (v + 1)xn−r−1 + ân−r xn−r + ... + â1 xn−2 + (v + 1)xn−1
25
Théorème 3.1.3. [3] Soit C = (f (x), g(x)) un code cyclique tordu dans Rn ,
où f (x) est un polynôme de degré minimal dans C non unitaire, g(x) est un
polynôme de plus petit degré parmi les polynômes unitaires dans C. Si C est un
code à complément inverse, alors f (x) et g(x) sont auto-réciproques.
26
Chapitre 4
Application en cryptographie
d’ADN
27
tout l’ADN, même l’ancien ADN.
Par exemple, si nous prenons une photo, l’appareil photo stocke les données
de la photo sous forme de fichier numérique sur la carte mémoire, et ce fichier
peut être converti en langage binaire utilisé par le périphérique de stockage, la
séquence binaire qui code la photo peut alors être convertie en une séquence de
bases d’ADN, cet ADN peut ensuite être synthétisé artificiellement en créant un
brin d’ADN qui contient toutes les informations nécessaires pour reproduire cette
photo.
Si vous inversez simplement le processus, en lisant l’ADN, vos données seront
récupérées.
28
seul élément car elle ne repose que sur des difficultés de calcul. Le temps pris
par les algorithmes cryptographiques efficaces est de quelques secondes, tandis
que les techniques cryptographiques d’ADN qui impliquent la technique de PCR
(Polymerase Chain Reaction ou réaction de polymérisation en chaı̂ne, est une
technique d’amplification enzymatique permettant d’obtenir un grand nombre de
copies identiques d’un fragment d’ADN.) voir [11] et de puce à ADN peuvent
prendre des heures pour terminer l’ensemble du processus.
La cryptographie traditionnelle fonctionne généralement sur des ordinateurs sur
le réseau, de sorte que les supports de stockage sont des puces de silicium des
ordinateurs, tandis que la cryptographie à ADN traite des brins d’ADN qui sont
manipulés par des techniques biologiques.
Si nous considérons l’ADN comme le support de stockage, il a une capacité de
stockage énorme par rapport à la quantité équivalente de puces de silicium. Cette
propriété des données rend la cryptographie et le calcul de l’ADN très tentants et
bénéfiques pour la recherche.
La stabilité des résultats des techniques cryptographiques fait référence au fait que
le cryptage et le décryptage donnent toujours les mêmes résultats. Les conditions
d’implémentation incluent la plate-forme et les limitations de langage utilisées
pour encoder l’algorithme. Alors que la stabilité de la cryptographie de l’ADN
dépend beaucoup des conditions environnementales telles que la température, le
PH.
Cette instabilité de la cryptographie de l’ADN est discutée plus loin.
Le Protocole de DH :
29
Le but est de calculer une valeur commune sans avoir peur qu’une personne
étrangère puisse la deviner.
Et pour cela Diffie et Hellman se planchent sur un type particuliers de fonctions
mathématiques : La fonction à sens unique qui est l’exponentiation modulaire.
Étape 4 : Alice et Bob s’échangent les valeurs de A et B. Cet échange n’a pas besoin
d’être sécurisé.
30
L’algorithme de l’expéditeur
1. En première étape on prend un message en clair et en utilisant le tableau
4.5, on écrit au dessous de chaque lettre le codon correspondant, ce qui nous
donne une séquence d’ADN, notée ssDNA (single strand DNA).
2. À l’aide de l’image binaire présentée par le tableau 4.2 de code ADN on
peut passer de la séquence d’ADN à une représentation binaire notée MB.
3. On insére l’automorphisme θ dans le résultat de la première étape ssDNA,
la séquence résultante est notée ssDNAm (single strand DNA modified) .
4. À l’aide du protocole de Diffie-Hellman, on fabrique une clé secrète K, cette
dernière va être présenté en décimal donc en utilisant le tableau 4.5, on peut
la convertir en codon, le résultat est appelé : séquence d’ADN de la clé
secrète, après on convertit ce résultat en binaire à l’aide du tableau 4.2, et
on l’appelle séquence binaire de la clé secrète .
5. On écrit le message binaire MB et au dessous on met la séquence binaire
de la clé secrète, en remarquant que cette dernière est plus courte que le
message, on la répéte jusqu’à avoir une séquence binaire de même longueur
que le message binaire MB, maintenant, on applique le XNOR présenté
dans le tableau 4.4 .
6. Aprés prendre la séquence résultante en étape 3 ssDNAm, on met au des-
sous la séquence d’ADN de la clé secrète, et comme cette dernière est
courte, il suffit de la repéter jusqu’à avoir la même longueur, et on hybride
ces deux séquences.
Lorsque les paires Watson-Crick trouvées dans des groupes de l’échelle 1, on
note 1, si l’hybridation échoue, on note 0 .
7. Cette fois ci on applique le XOR, (comme le tableau 4.3 l’indique), entre le
résultat de l’étape 5 et celui de l’étape 6 en repètant ce dernier pour avoir
la méme longueur que le résultat de l’étape 5 .
8. Finalement, on convertit la dernière séquence binaire en codon, (en utilisant
le tableau 4.2), puis on passe au message chiffré (en utilisant le tableau 4.5).
L’algorithme de récepteur
La clé secréte K fabriquée par le protocole DH est connue de la part du
récepteur, mais le déchiffrement ne peut commencer qu’après avoir reçu : le mes-
sage chiffré et la clé secrète C1 (séquence binaire résultante de l’étape 6 dans l’al-
gorithme de l’expéditeur, généré par le processus d’hybridation) que le récepteur
reçoit par un canal sécurisé.
31
précedente.
Puis on effectue le XOR (Table 4.3) entre les deux séquences, on note le
résultat MB”.
4. Maintenant on prend la séquence précédente MB” et la séquence binaire de
la clé secrète K fabriquée par le protocole DH, qu’on la répète aussi pour
avoir une logueur égale à celle de MB”, et cette fois ci on effectue le XNOR
entre eux (Table 4.4), qu’on peut noté MB’
5. On passe de la séquence binaire résultante MB’ au séquence d’ADN puis
au message clair. En utilisant respectivement les tableaux 4.2 et 4.5.
Exemple :
Le chiffrement :
Les deux premières étapes nous donne : ssDNA présentée dans la deuxième ligne,
et MB dans la troisiéme ligne :
P r a y f o r L
GGC CAC AAA CGA TTG ACC ATG CAC TTG GCC
000010 101110 111111 100011 010100 111010 110100 101110 010100 001010
e b a n o n .
ACA AAC AAA ATC ATG ATC TTT
111011 111110 111111 110110 110100 110110 010101
GGT TAT AAA TGA CCG ATT ACG TAT CCG GTT ATA
L’étape 4 : la clé secrète est K = 14, dans ce cas ”la séquence d’ADN de la clé
secrète ” et ”la séquence binaire de la clé secrète ”sont données par :
1 4
TCA TCT
011011 011001
L’étape 5 : on effectue le XNOR entre MB et ”la séquence binaire de la clé
secrète”.
32
000010 101110 111111 100011 010100 111010 110100 101110 010100 001010
011011 011001 011011 011001 011011 011001 011011 011001 011011 011001
=
100110 001000 011011 000101 110000 011100 010000 001000 110000 101100
GGT TAT AAA TGA CCG ATT ACG TAT CCG GTT ATA
TCA TCT TCA TCT TCA TCT TCA TCT TCA TCT TCA
011 000 100 011 000 100 100 000 000 000 100
100110 001000 011011 000101 110000 011100 010000 001000 110000 101100
⊕
011000 100011 000100 100000 000000 100101 101101 100101 000011 000100
=
111110 101011 011111 100101 110000 111001 111101 101101 110011 101000
33
111110 101011 011111 100101 110000 111001 111101 101101 110011 101000
AAC CCA TAA CTT AGG ACT AAT CAT AGA CCG
b u W F k h d t i w
S e W k 7 p Y
Le déchiffrement :
La séquence binaire C1 ainsi que le message chiffré sont reçus
011000100011000100100000000000100101101101100101000
b u W F k h d t i w
AAC CCA TAA CTT AGG ACT AAT CAT AGA CCG
111110 101011 011111 100101 110000 111001 111101 101101 110011 101000
S e W k 7 p Y
GTA ACA TAA AGG TGG ATT TAG
34
L’étape 4 : la clé secrète est K = 14 on la converti en binaire.
On effectue le XNOR entre MB” et la séquence binaire de la clé secrète, ce qui
résulte MB’ :
1 4
TCA TCT
011011 011001
100110 001000 011011 000101 110000 011100 010000 001000 110000 101100
011011 011001 011011 011001 011011 011001 011011 011001 011011 011001
=
000010 101110 111111 100011 010100 111010 110100 101110 010100 001010
000010 101110 111111 100011 010100 111010 110100 101110 010100 001010
GGC CAC AAA CGA TTG ACC ATG CAC TTG GCC
P r a y f o r L
35
4.3 Analyse de sécurité
Un bon algorithme de sécurité devrait être vénérable contre la plupart des
types d’attaques. Le but de ces algorithmes est de réduire la probabilité d’une
attaque réussie et de protéger les données précieuses. Une attaque par force brute
tente systématiquement toutes les clés possibles utilisées dans une attaque connue
en clair / texte chiffré.
Dans l’ADN, les quatre gènes de base manquent de propriétés linguistiques ou
de redondance comme dans le langage humain. Si l’attaquant tente d’attaquer
la communication en utilisant cette attaque, ce serait un problème de calcul très
coûteux.
Pour plus de sécurité, une grande taille de clé est très importante, pour lui rendre
les primitives plus vénérables.
36
GGGGGGGGGG CCCCCCCCCC CCCCCGGGGG GGGGGCCCCC
GGGGCCCCCG CCCCGGGGGC CCCCGCCCCG GGGGCGGGGC
GGGTTTTTGG CCCAAAAACC CCCATAAACG GGGTATTTGC
GGGTAAAACG CCCATTTTGC CCGGGCCGGG GGCCCGGCCC
GGCCCCCGGG CCGGGGGCCC CCGGCGGCCG GGCCGCCGGC
GGCCGGGCCG CCGGCCCGGC CCGTATTACG GGCATAATGC
GGCAAAATCG CCGTTTTAGC CCGTTAATTG GGCAATTAAC
GGCAAAATGG CCGTTTTACC CATTAACGGG GTAATTGCCC
GTAAAACGGG CATTTTGCCC CAGTATGCCG GTCATACGGC
GTAACCATTG CATTGGTAAC CAAGCGTACG GTTCGCATGC
GTACGGTACG CATGCCATGC CAATTACCGG GTTAATGGCC
GTACCCATGG CTAGGGTACC CAAAATGGGG GTTTTACCCC
GATTTTGGGG CTAAAACCCC CAAATACCCG GTTTATGGGC
GTTTAACCCG CAAATTGGGC CAACGCAACG GTTGCGTTGC
GTTGCCAACG CAACGGTTGC CAACCGTTGG GTTGGCAACC
GTTGGGTTGG CAACCCAACC CCACGCAACG GGTGCGTTGC
00 G
11 A
01 T
10 C
A B A⊕B
0 1 1
0 0 0
1 1 0
1 0 1
A B AB
0 1 0
0 0 1
1 1 1
1 0 0
37
AAA a CGG A TCA 1
AAC b CGT B TCC 2
AAG c CTA C TCG 3
AAT d CTC D TCT 4
ACA e CTG E TGA 5
ACC f CTT F TGC 6
ACG g GAA G TGG 7
ACT h GAC H TGT 8
AGA i GAG I TTA 9
AGC j GAT J TTC 0
AGG k GCA K TTG space
AGT l GCC L TTT (period)
ATA m GCG M
ATC n GCT N
ATG o GGA O
ATT p GGC P
CAA q GGG Q
CAC r GGT R
CAG s GTA S
CAT t GTC T
CCA u GTG U
CCC v GTT V
CCG w TAA W
CCT x TAC X
CGA y TAG Y
CGC z TAT Z
38
CONCLUSION
Nous venons de présenter dans ce mémoire le fruit de notre travail portant sur
Les codes tordus et application en cryptographie d’ADN .
La structure algébrique des codes θ−cycliques sur l’anneau R est très intéressante,
et les codes obtenus sont des codes à complément inverse.
L’avantage d’étudier les codes ADN sur l’anneau de polynôme tordu R est l’exis-
tence d’une correspondance entre les bases azotées d’ADN et les éléments de l’an-
neau, ainsi de présenter plusieurs factorisations et donc l’obtention de plusieurs
codes ADN à complément inverse sur l’anneau R. Ce qui n’est pas le cas sur un
anneau commutatif.
39
Bibliographie