Cryptosysteme
de Rabin
Encadré par : Mr. KHALFI Hamza
Réalisé par : Arouini Youssef
Dadda Meriem
Hablatou Youssef
Ougdal Achraf
SOMMAIRE
01 Preliminaire Exemple
04
Role du chiffrement
Exemple de chiffrement-
déchiffrement par code Rabin
02 Cryptosysteme de
Rabin Packages 05
Définition, historique et Presentation des packages
évaluation utilises
03 Principe de
fonctionnement Code Rabin 06
Génération des clés, chiffrement Presentation et execution
et déchiffrement
preliminaire
Les menaces à la sécurité qu’elles soient d’origine interne ou
externe sont de plus en plus imposantes. Elles mettent ainsi en
péril les informations confidentielles des données sensibles
comme les numéros de cartes de crédit, les informations relatives à
la vie privée ou les informations sur les opérations militaires
vitales pour toute une nation.
Pour les organismes ayant besoin de protéger leurs informations
sensibles, le chiffrement pourrait constituer un aspect essentiel
dans leur politique de protection de ces informations.
Le chiffrement asymétrique
Le chiffrement asymétrique, dit aussi à clé publique, est basé sur
des fonctions qui sont aisément calculables mais que leurs inverses
sont extrêmement difficiles à solutionner. Le chiffrement
asymétrique implique une paire de clés composée d’une clé
publique et une clé privée. La clé publique est publiée dans des
annuaires communs et donc connue de tous les intervenants alors
que la clé privée n’est connue que de la personne détentrice de la
paire de clés.
CRYPTOSYSTEME DE
RABIN
Le cryptosystème de Rabin est un cryptosystème
asymétrique basé sur la difficulté du problème
de la factorisation (comme RSA). Il a été inventé
en 1979 par Michael Rabin : c'est le premier
cryptosystème asymétrique dont la sécurité se
réduit à la difficulté calculatoire de la
factorisation d'un nombre entier.
Rabin est essentiellement RSA avec le choix
optimal de e, à savoir e = 2.7
CRYPTOSYSTEME DE
RABIN
Le cryptosystème de Rabin a l'avantage de disposer d'une
preuve de difficulté aussi grande que la factorisation
d'entiers, preuve qui n'existe pas encore pour RSA. Il a par
contre un désavantage dû à un non-déterminisme : une sortie
produite par la fonction présente dans le cryptosystème peut
être le résultat de quatre entrées distinctes. Il faut donc
déterminer quelle entrée est la bonne par un mécanisme
annexe.
Evaluation de l’algorithme
Efficacité : Pour le chiffrement, un carré modulo n doit être calculé. C'est
plus efficace que RSA, qui nécessite le calcul d'au moins un cube.
Le décodage produit trois faux résultats en plus d’un résultat correcte, de
sorte que ce dernier doit être deviné, cela introduit des coûts de calcul
supplémentaires. C'est le principal inconvénient du cryptosystème Rabin et
l'un des facteurs qui l'ont empêché de trouver une utilisation pratique
généralisée. Cela introduit des coûts de calcul supplémentaires et c'est ce qui
a empêché le cryptosystème Rabin de trouver une utilisation pratique
généralisée.
Evaluation de l’algorithme
Sécurité : Il a été prouvé que tout algorithme qui déchiffre une valeur
chiffrée par Rabin peut être utilisé pour factoriser le module n. Ainsi, le
décryptage de Rabin est au moins aussi difficile que le problème de la
factorisation d'entiers, ce qui n'a pas été prouvé pour RSA. On pense
généralement qu'il n'y a pas d'algorithme en temps polynomial pour la
factorisation, ce qui implique qu'il n'y a pas d'algorithme efficace pour
déchiffrer une valeur chiffrée par Rabin sans la clé privée (p, q).
Principes de fonctionnement
Génération des clés :
Explicitement, la génération de clés est comme
suit:
Choisir deux grands nombres premiers, p et q,
au hasard.
Posons n=p*q, ce qui fait de n la clé publique.
Les nombres premiers p et q constituent la clé
privée.
Pour chiffrer, on n'a besoin que de la clé
publique, n. Pour déchiffrer, les facteurs de n, p q,
sont nécessaires.
Principes de fonctionnement
Voici un exemple qui, par contre, n'utilise pas des
paramètres assez grands pour garantir la sécurité
dans le monde réel : Si p=7 et q=11 alors n=77.
C'est évidemment un piètre choix de clé, puisqu'il
est trivial de factoriser le nombre 77.
Chiffrement
Pour le chiffrement, seule la clé publique, n, est utilisée. On
produit le texte chiffré à partir du texte en clair m comme
suit : P = {1,.., n-1} l'espace des textes en clair possibles
(tous des nombres) et posons m ϵ P comme étant le texte en
clair. Le texte chiffré c se détermine comme suit :
Déchiffrement
Pour déchiffrer, la clé privée est nécessaire. Le processus est comme suit.
Les racines carrées yp et yq tel que
On invoque alors le théorème des restes chinois pour calculer les quatre
racines carrées +r, -r, +s, -s est l'ensemble de la classe des restes
modulo n les quatre racines carrées sont dans, l'ensemble {0,...,n-1}
Exemple
Chiffrement :
Soit P = {1, .., 76} est l'espace des textes en clair possibles.
Soit p=7, q=11 deux nombres premiers alors notre clés publique sera
n=77
Prenons m = 20 comme texte en clair. Le texte chiffré est alors :
Déchiffrement :
Dans l'exemple précédent, on trouve d'abord les racines modulo les
nombres premiers de la clé privée mp=1 et mq=9.
L'algorithme d'Euclide étendu donne ensuite yp=-3 et yq=2
Le théorème des restes chinois donne les quatre racines carrées possibles
Présentation des packages
● Numpy :
NumPy est une bibliothèque Python utilisée pour
travailler avec des tableaux.
Il a également des fonctions pour travailler dans le
domaine de l'algèbre linéaire, de la transformée de
Fourier et des matrices…
NumPy a été créé en 2005 par Travis Oliphant. C'est
un projet open source.
NumPy signifie Numerical Python.
En Python, nous avons des listes qui servent à des
tableaux, mais elles sont lentes à traiter.
NumPy vise à fournir un objet de tableau jusqu'à 50 fois
plus rapide que les listes Python traditionnelles.
● Math:
C’est un module intégré qu’on peut utiliser pour les
tâches mathématiques qui permet d'accéder aux
fonctions mathématiques définies par le standard C.
Implémentation du code Rabin avec Python
Fonction de chiffrement
Implémentation du code Rabin avec Python
Fonction de déchiffrement
Implémentation du code Rabin avec Python
Fonction de Bezout
Implémentation du code Rabin avec Python
Application du code
Implémentation du code Rabin avec Python
Output
Après plus 3000 résultats possibles :
MERCI
POUR
VOTRE
ATTENTIO
NCREDITS: This presentation template was created by Slidesgo,
including icons by Flaticon, and infographics & images by Freepik
Please keep this slide for attribution.