Vous êtes sur la page 1sur 48

Cryptographie

Classique & moderne

Mhenni Sourour

1
Plan du cours
 Introduction à la cryptographie
 Définition
 Principaux objectifs
 Caractéristiques d’un crypto-systéme
 Cryotpgraphie symétrique
 Définition/propriété/principe
 Étude de l’algorithme DES
 Cryotpgraphie asymétrique
 Définition/propriété/principe
 Étude de l’algorithme RSA
 Signature numérique
 Hachage
Introduction

3
Définition

 La cryptologie est la science qui utilise les


mathématiques pour l’écriture et la lecture des
messages secrets.
 Cryptographie conçoit des mécanismes destinés
à assurer un secret.
 Cryptanalyse déjoue les mécanismes destinés à
assurer un secret.
 La cryptologie peut être définie comme la
combinaison de la cryptographie et la
cryptanalyse.
Cryptologie/ Cryptographie/Cryptanalyse
Définition d’un crypto-système
Un crypto-système est décrit par cinq uplets (P,C,K,E,D),
satisfaisant ces conditions:
 « P » est un ensemble fini de textes clairs (plain text)
 « C » est un ensemble fini de textes cryptés (cypher text)
 « K » est l’espace de clés (key space), représente un
ensemble fini de clés possibles.
 Pour chaque k € K, il existe une fonction cryptage ek € E, et
une fonction de décryptage correspondante dk € D
 Les fonctions ek : PC et dk : CP doivent satisfaire:
dk(ek(x))=x pour chaque x € P
clé de cryptage

Une clé est une valeur qui est utilisée avec un


algorithme cryptographique pour produire un
texte chiffré spécifique. Les clés sont, à la
base, de très grands nombres. La taille d’une
clé se mesure en bits. En matière de
cryptographie , plus la clé est grande, plus le
chiffrement est sûr.
Principaux objectifs
 Le texte clair ne doit pas être facilement obtenu à
partir d’un texte crypté.
 Les clés ne doivent pas être facilement obtenu à
partir d’un texte crypté.
 L’espace des clés doit être assez large pour résister
aux attaques brute-force.
 Confusion: L’effet d’un petit changement sur le
texte clair ne doit pas être prévisible.
 Diffusion: un petit changement dans le texte clair
doit avoir un effet sur une large partie du texte
crypté.
Chiffrement et déchiffrement

•Les données qui peuvent être lues et comprises sont appelées texte clair.
Le procédé qui consiste à dissimuler du texte clair est appelée chiffrement
[ou cryptage].
•Chiffrer du texte pour lui rendre illisible s’ appelé le chiffrement, il donne

alors un texte chiffré (ou cryptogramme).


•Le processus de retour du texte chiffré à son texte clair original est appelé

déchiffrement.
Caractéristiques d’un crypto-système

Les systèmes cryptographiques sont caractérisés par:


 L’opération utilisée pour transformer un texte clair en un texte crypté
 Substitution: replacement de chaque élément (bit, lettre, groupe de bits
ou de lettres) dans le texte clair par un autre élément.
 Transposition: réarrangement des éléments du texte clair.
 La plupart des systèmes utilisent plusieurs étapes de transposition et de
substitution.
 La méthode par laquelle le texte clair est traité
 Stream Cipher: traite les éléments d’entrée de façon continue,
produisant un élément de sortie (crypté), à la fois.
 Block Cypher: Le texte est divisé en différents blocks de taille fixe. Un
block est traité à la fois, produisant un block de données cryptées.
 Nombre de clés utilisées qui dépend du type de chiffrement
(symétrique, asymétrique)
Méthode de chiffrement :Stream Cipher
 traite les éléments d’entrée de façon continue,
produisant un élément de sortie (crypté), à la fois.
 La clé est aussi longue que le stream de données.
 Etapes:
 Définition du key stream
 Combinaison du key stream courant avec le stream. La fonction
de cryptage doit aussi modifier l’état du stream => on crypte
chaque caractère xi du texte clair avec un caractère zi du key
stream.
Méthode de chiffrement :Stream Cipher
 Pour un texte clair P=x1x2x3x4x5… et une clé l=l1l2l3l4l5… il existe
une fonction de cryptage et des algorithmes de cryptage
tel que:
 C  El ( P )

C  El1 ( x1 ) El2 ( x2 )...

 Les valeurs l1 , l2 , l3, l4 , … sont appelées key streams


 Syncronous cypher: Le key stream ne dépends pas du texte
clair.
 Self-synchronizing: le key stream dépends de n caractères
clairs précédents.
Méthode de chiffrement :Block Cipher
 Block Cipher: Le texte est divisé en plusieurs blocks de taille fixe. Un
block de texte clair est traité à la fois, produisant un block de données
cryptées.
 Sans mémoire. La même fonction et la même clé est utilisée pour crypter
les blocks successifs.
Block clair

clé Fonction de chiffrement Block chiffré

 Mode d’utilisation:
 Electronic Code Block (ECB):
 Chaque block de données est crypté indépendamment des autres
 les blocks cryptés ne sont pas liés
 Cipher Block Chaining (CBC):
 Le résultat d’une étape est utilisé pour modifier les données d’entée de la
prochaine étape.
 les blocks cryptés sont liés
Block Cipher: Electronic Code Block (ECB)
Block Cipher: Cipher Block Chaining (CBC)
Exemple de cryptage par ECB
Caesar's cipher
 Cryptage par substitution
 Remplacer chaque lettre par celle qui la succède de trois.
 a devient d, b devient e, …, y devient b, z devient c
 Pas de clés
 L’algorithme peut être décrit comme suit:
 C = E(p) = (p+3) mod (26)
 Problèmes rendant la cryptanalyse de cet algorithme simple:
 Algorithme de cryptage et de décryptage connu.
 Seulement 25 clés à essayer.
 Le langage du message clair est connu et facilement
identifiable.
Exercice d’application: Caesar's cipher

 Transformer le message suivant en un texte


crypté suivant l’algorithme de Caesar.
« Je suis un étudiant de l ISI »
Type de chiffrements
Il existe deux types de chiffrements:
 Le chiffrement symétrique: Cryptographie à clé secrète
 Chiffrement asymétrique: Cryptographie à clé publique/privée

 Dans les deux cas, la fonction de chiffrement est connu, la


nature du clé (secrète ou publique) qui fait la différence
Chiffrement symétrique

19
Chiffrement symétrique

 Définition: chiffrement symétrique appelée


également chiffrement à clé secrète ou à clé
symétrique utilise une seule et même clé
pour le chiffrement et le déchiffrement.
Cryptographie Symétrique
Masque Jetable

Masque:atgix (la Masque:atgix


clé secrète)
salut tusdr
Chiffrement DéChiffrement

• inventé par Gilbert Vernam (en) en 1917


• ce chiffrement est le seul qui soit théoriquement impossible à
casser.
• Les caractères composant la clé doivent être choisis de façon
totalement aléatoire
• Chaque clé, ou « masque », ne doit être utilisée qu'une seule fois
• Chiffrement: (Ordre(message)+Ordre(masque))%26
Echange Sécurisé de la clé Symétrique
Diffie Hellman
Vert publique rouge privé

Alice Publique (internet) Bob

p = nombre premier
   
arbitraire

g = nombre aléatoire
   
inférieur à p

Ax = nombre aléatoire Bx = nombre aléatoire


 
(privé) (privé)
Ay = gAx modulo p   By = gBx modulo p
Ay Ay
By By
s = ByAx modulo p   s = AyBx modulo p

 échange de données
   
chiffrées avec s 

S clé secrète utilisée pour l’échange de messages


Echange Sécurisé de la clé Symétrique
Diffie Hellman
Alice Publique (internet) Bob

On choisit un nombre premier


  arbitraire commun:  
p = 419

On choisit un nombre aléatoire


  commun inférieur à p:  
g = 7

Alice choisit un nombre aléatoire Bob choisit un nombre aléatoire


secret:   secret:
Ax = 178 Bx = 344

By = 7344 modulo 419 = 49


Ay = 7178 modulo 419 = 208  

Ay = 208 Ay = 208


By = 49 By = 49
s = 49178 modulo 419 = 107   s = 208344 modulo 419 = 107

 
 échange de données chiffrées avec  

S clé secrète utilisée pour l’échange de messages


Echange Sécurisé de la clé Symétrique
Diffie Hellman

 Jusqu’à septembre 2002 RSA breveté non


utilisable sur internet
 Les internautes utilisent Diffie Hellman
 Un espion sera incapable de calculer s à
partir de p et g, car il ne connait ni le
nombre aléatoire Ax choisi par Alice, ni le
nombre aléatoire Bx choisi par Bob. Ay et By
échangés entre Alice et Bob ne l'aideront pas
non plus à calculer s.
Chiffrement asymétrique

25
Chiffrement asymétrique
Les problèmes de distribution de clé sont résolus par la cryptographie
asymétrique, dont le concept fut inventé par Whitfield Diffie et Martin
Hellman en 1975.
La cryptographie asymétrique représente une révolution dans l’histoire
de la cryptographie.
 Notation : appelé aussi cryptographie à clé publique / à paire de clés
 Principe : elle repose sur un schéma asymétrique qui utilise une paire
de clés pour le chiffrement: une clé publique, qui chiffre les données, et
une clé privée correspondante, aussi appelée clé secrète, qui sera
utilisée pour le déchiffrement.
 deux clés:
 Clé publique: Connu par tout le monde, et peut être utilisée pour crypter des
messages.
 Clé privée: Connue par le récepteur uniquement, utilisée pour décrypter les
messages.
Cryptographie asymétrique

On suppose que Alice veut envoyer un message secret à Bob

 Supposons que l’on peut trouver deux fonctions Ek (fonction de cryptage)


et Dk‘ (fonction de décryptage) qui dépendent respectivement des clés k
et K’.

Dk’ ( Ek (M) ) = M

Il est impossible (très difficile!!!) de trouver Dk’ sans connaissance de Ek

Impossible de trouver Dk’ en connaissant Ek et des messages cryptés par Ek

Ek et Dk’ sont faciles à calculer.
Le certificat de clé publique
 Les systèmes asymétriques sont fondés sur l’existence de
deux valeurs de clés distinctes:
 les valeurs qui sont conservées privées par leur propriétaire ne
constitue pas un problème puisque elles ne sont divulgués à
personne.
 les valeurs qui sont rendues publiques constitue un problème puisque
il faut prouver à qui appartient cette clé publique. Sinon une
personne malveillante pourrait réclamer être celle qui possède cette
clé.
 Solution: Le certificat de clé publique. un certificat ressemble
à une pièce d’identité, carte d’identité ou passeport. IL est
délivrée par une Autorité de Certification (AC). il contient la
valeur de la clé publique, son propriétaire, nom de l’AC qui a
délivré la clé, période de validité de la clé,…
Algorithme RSA

 Développé par Rivest, Shamir & Adleman à


MIT en 1977, publié en 1978
 Le plus connu et le plus utilisé comme
algorithme de cryptage asymétrique.
 Utilise des entiers très larges taille des clés
1024 bits et plus
 La sécurité repose sur le coût de factorisation
des entiers larges.
RSA: Algorithme
 Etapes
1. Sélectionner deux entiers premiers entre eux « p » et « q »
2. Calculer n = p x q
3. Calculer φ(n)=(p-1)(q-1)
4. Sélectionner « e » tel que: pgcd(φ(n),e)=1 ; 1<e<φ(n)
 En général « e » est un entier de petite taille.
5. Calculer l’entier d telque d.e = 1 mod (φ(n))
6. Clé publique: Kpu={e,n}
7. Clé privée Kpr = {d,n}
 Pour crypter un message M < n, l’émetteur:
 Obtient une clé publique du récepteur et calcule « C= Me mod n »
 Pour décrypter un message crypté C le récepteur
 Utilise sa clé privée et calcule « M = Cd mod n »
Exercice d’application: RSA
 Soit p = 17 et q = 11, Déterminer la clé publique et la clé privée suivant le principe de l’algorithme RSA.
 Chiffrer le message M= 88
Solution :

Décryptage
Texte
Texte clair Texte clair
crypté

 p = 17, q = 11, n = p x q= 187


 (n) = 16 x 10 =160,
 Choisir e = 7,
 d.e =1 (mod (n))  d = 23
Chiffrement Asymétrique
RSA

• Deux nombres premiers : p = 29, q = 37

• On calcule n = pq = 29 * 37 = 1073

• On doit choisir e au hasard tel que e n'ai aucun facteur en commun avec
(p-1)(q-1):
(p-1)(q-1) = (29-1)(37-1) = 1008
• On prend e = 71

• On choisit d tel que 71*d mod 1008 = 1


• On trouve d = 1079

• On a maintenant nos clés :


La clé publique est (e,n) = (71,1073)
La clé privée est d = 1079
 
Chiffrement Asymétrique
RSA

• On va encrypter le message 'HELLO'. On va prendre le code ASCII de chaque caractère et on les met
bout à bout: m = 7269767679

• Ensuite, il faut découper le message en blocs qui comportent moins de chiffres que n.
n comporte 4 chiffres, on va donc découper notre message en blocs de 3 chiffres:
726 976 767 900
(on complète avec des zéros)

• Ensuite on encrypte chacun de ces blocs:


726^71 mod 1073 = 436
976^71 mod 1073 = 822
767^71 mod 1073 = 825
900^71 mod 1073 = 552

Le message encrypté est 436 822 825 552. On peut le décrypter avec d:
436^1079 mod 1073 = 726
822^1079 mod 1073 = 976
825^1079 mod 1073 = 767
552^1079 mod 1073 = 900

C'est à dire la suite de chiffre 726976767900.


On retrouve notre message en clair 72 69 76 76 79 : 'HELLO‘.
Problèmes de RSA
 Complexité algorithmique de la méthode:
 recherche de nombres premiers de grande taille, et choix
de clés très longue
 Réalisation des opérations modulo n.
 Problème d’implémentation sur les équipements
disposants de faible puissance de calcul (ex: cartes
bancaire, stations mobiles, etc.)
 La méthode est officiellement sûre si des
contraintes de longueur des clés et d’usage sont
respectées.
  Solution: Utilisation de RSA pour l’échange des
clés secrètes de session d'un algorithme symétrique
à clés privées.
Signature numérique

35
Signature numérique
 Problème des algorithmes asymétriques: Alice va chiffrer
le message avec la clé de Bob qui est disponible pour tout le monde; une partie
tierce pourrait facilement prétendre être Alice et envoyer à Bob un message
crypté avec la clé publique de ce dernier.
 Service sécurité attaqué : l’authentification puisque on n’est pas sur
que message émane de la personne qui prétend être.
 Solution : la signature numérique fait le même objet qu’une signature
manuelle. la signature numérique confirme l’identité du signataire.
 Il ne s’agit pas de l’image numérique de signatures écrites à la main

 principe : Alice chiffre un message avec sa clé privée. l’information peut être
déchiffrée uniquement avec la clé publique de Alice, cela est une preuve que
l’information provient bien de Alice.
Signature numérique: principe

• La signature numérique est une forme de chiffrement qui assure


l’authentification.

•si l’information est chiffré avec la clé privée d’une personne, seule cette
personne peut avoir chiffré l’information .
Signature numérique: étapes
Signature numérique: étapes

1. Alice et Bob doivent créer chacun une paire clé publique\


clé privé.
2. Echanger uniquement les clés publiques
3. Alice écrit un message à Bob qu’elle le chiffre avec sa clé
privé. Elle envoie ensuite les données
4. À la réception, Bob utilise la clé publique de Alice pour
chiffrer le message.
5. Bob écrit une réponse à Alice qu’il la chiffre avec sa clé
privé. Elle envoie ensuite les données.
6. À la réception, Alice utilise la clé publique de Bob pour
chiffrer le message.
Un échange authentifié est alors garantie.
Signature numérique
 Les signatures numériques permettent à la personne qui reçoit
une information de contrôler que l’information est envoyé bel et
bien de la personne qui prêtent être et que cette personne ne peut
nier avoir envoyer le message.
 Ainsi, les signatures numériques des systèmes permettent
l’authentification puisque seuls l émetteur et le récepteur ont accès
à leurs clés privées.
 Une signature numérique procure également la non répudiation,
ce qui signifie qu’elle empêche l’expéditeur (resp le receveur) de
contester ultérieurement qu’il a bien émis (resp envoyer) cette
information. Cela bien sure si la sécurité de leurs clés n’a pas été
compromise.
 Cependant, la signature numérique n’assure pas la confidentialité
des données. La solution est que le message chiffre avec la clé
privée ne soit pas le message secret qu’on désire envoyer
Le hachage

41
Le hachage
 Le principe de la signature numérique comporte des
inconvénients. Il est lent, et il produit un volume énorme de
données. Une amélioration de ce concept est l’addition d’une
fonction de hachage dans le processus.
 Une fonction de hachage utilise une entrée de longueur
variable – un message de n’importe quelle longueur, jusqu’à
des milliers ou millions de bits – et produit une sortie de
longueur fixe, nommée condensé de message ou
empreinte, par exemple 160 bits. La fonction de hachage
assure que, si l’information était changée en quoi que ce soit
– même d’un seul bit – une sortie totalement différente serait
produite.
 une empreinte numérique est donc un « résumé » d’un
document électronique.
Le hachage :principe
Les fonctions de hachage fournit une empreinte du message. A l’image d’une
empreinte digital, une empreinte de hachage est unique et prouve par conséquent
l’intégrité du message.
Propriété d’une fonction de Hachage
 La fonction de hachage H doit être :
 Cohérente: un même message en entré produit
toujours un même résultat.
 Unique ou sans collision: deux messages différents
ne doivent jamais produire le même condensé. c’est-
à-dire connaissant H(M), il est difficile de trouver M’
tel que H(M)=H(M’)
 Non réversibles, impossible d’avoir le message
d’origine à partie de son condensé. c’est-à-dire
connaissant H(M), il est impossible de trouver M.
Algorithme de hachage

Les fonctions de hachage les plus connues


sont:
 MD 4 et MD 5: développés par Ron Rivest
 SHA: développé par NIST (National Institute
of Standards and Technology).
Propriété de fonction de Hachage
Tableau. Exemples d’empreintes générées par l’algorithme MD5

Cet exemple montre qu’ un petit changement au niveau du texte


donne des empreintes totalement différente. Et donc c’est la
similarité entre deux empreinte ne reflète pas une similarité entre ses
correspondant textes.
Hachage + signature numérique

 Dans la pratique, le processus de la signature


numérique et au processus d’hachage. Par
cette méthode nous pouvons assurer
l’authentification et la non répudiation et
vérifier l’intégrité du message.
 En plus signer l’empreinte du message et non
le message est beaucoup plus rapide puisque
les données à chiffrer sont fortement réduite.
Principe : Hachage + signature numérique

Vous aimerez peut-être aussi