Vous êtes sur la page 1sur 67

Applied Cryptography

Presented by Mr Abdenaby LAMIRI, PhD


abdlamsic@gmail.com
OUTLINE
Applied Cryptography (Prof. LAMIRI)

 Terminologie
 Principe de Kerckhoffs
 Cryptosystèmes à Clé Privé
 Cryptosystèmes à Clé Publique
 Fonction de hachage
 Cryptanalyse
 Besoins de la Cryptographie en Sécurité
 Les Codes Cryptographiques (Cryptographie
Classique)
 Labs & Challenges (50% de votre note)
Applied Cryptography (Prof. LAMIRI)

Terminologie
Terminologie
Applied Cryptography (Prof. LAMIRI)

 Un message est appelé texte en clair. (plaintext or cleartext)


 Le processus de transformation d'un message de telle manière à le rendre
incompréhensible est appelé chiffrement (ou encryption).
 Le résultat de ce processus de chiffrement est appelé texte chiffré (ciphertext).
 Le processus de reconstruction du texte en clair à partir du texte chiffré est appelé
déchiffrement (decryption).
Terminologie
Applied Cryptography (Prof. LAMIRI)

 L'art et la science de garder le secret de messages est appelé cryptographie pratiquée


par des cryptographes.
 Les cryptanalystes pratiquent la cryptanalyse qui est l'art de décrypter des messages
chiffrés.
 La branche des mathématiques qui traite de la cryptographie et de la cryptanalyse
s'appelle la cryptologie et ses pratiquants sont appelés cryptologues.
Terminologie
Applied Cryptography (Prof. LAMIRI)

 Cryptosystème : l’ensemble des clés possibles (espace de clés: K), des textes clairs (M)
et chiffrés (C ) possibles associés à un algorithme donné.
 L’algorithme est un triplet d’algorithmes : – l’un générant les clés K, – un autre pour
chiffrer M, et – un troisième pour déchiffrer C
NOTATIONS
Applied Cryptography (Prof. LAMIRI)

 Propriété de base: M = D(E(M))

 M représente le texte clair,


 C est le texte chiffré,
 K est la clé (dans le cas d’un algorithme à clé symétrique), Ek et Dk dans le cas d’algorithmes asymétriques,
 E(x) est la fonction de chiffrement, et
 D(x) est la fonction de déchiffrement.
 Ainsi, avec un algorithme à clef symétrique, M = D(C) si C = E(M)
Applied Cryptography (Prof. LAMIRI)

Principe de Kerckhoffs
Principe de Kerckhoffs
Applied Cryptography (Prof. LAMIRI)

La Sécurité d’un système de


chiffrement ne doit reposer que sur
le secret de la clé.

 Tous les autres paramètres doivent être supposés publiquement connus.


 Principe reformulé, par Claude Shannon : « l'adversaire connaît le
système ». (maxime de Shannon).
Applied Cryptography (Prof. LAMIRI)

Cryptosystèmes à Clé Symétrique


Cryptosystèmes à Clé Symétrique
Applied Cryptography (Prof. LAMIRI)

Caractéristiques:
 Les clés sont identiques : KE = KD = K, et doit rester secrète,
 Les algorithmes les plus répandus sont le DES, AES, 3DES, ...
 La génération des clés est choisie aléatoirement dans l’espace des clés,
 Les algorithmes sont basés sur des opérations de transposition et de substitution des
bits du texte clair en fonction de la clé,
 La taille des clés est souvent de l’ordre de 128 bits. Le DES en utilise 56, mais l’AES
peut aller jusque 256,
Cryptosystèmes à Clé Symétrique: Avantages/Inconvénients
Applied Cryptography (Prof. LAMIRI)

Avantages:
 Rapidité de chiffrement/Déchiffrement,
Inconvénients:
 Les clés doivent être distribuées d’une manière secrète pour une meilleure sécurité,
 Pour de grands systèmes, le nombre de clés peut devenir conséquent.
 Pour un système à N utilisateurs, il y aura N*(N − 1)/2 paires de clés.
• Pour 2 utilisateurs: on a besoin d’une clé
• Pour 3 utilisateurs: on a besoin de 1+2=3 clés
• Pour n utilisateurs: on a besoin de 1+2+…+(n-1)= n*(n-1)/2
Applied Cryptography (Prof. LAMIRI)

Cryptosystèmes à Clé Publique


Cryptosystèmes à Clé Publique (Asymétrique)
Applied Cryptography (Prof. LAMIRI)

Caractéristiques :
 Une clé publique PK (symbolisée par la clé verticale),
 Une clé privée secrète SK (symbolisée par la clé horizontale),
 La connaissance de PK ne permet pas de déduire SK,
 DSK (EPK (M)) = M,
 L’algorithme le plus connu est le RSA,
 L’algorithme utilise une fonction unidirectionnelle à trappe:
 L’exponentiation modulaire de grands nombres premiers (RSA),
 Le problème des logarithmes discrets (ElGamal).
 La taille des clés s’étend de 512 bits à 2048 bits en standard
Cryptosystèmes à Clé Publique: Avantages/Inconvénients
Applied Cryptography (Prof. LAMIRI)

Avantages:
 Chaque utilisateur possède une paire de clés (SK, PK)
 Nombre réduit de clés distribuées: n paires de clés pour n utilisateurs.
 La distribution des clés facile car l’échange de clés secrètes n’est plus nécessaire. Seule la
clé publique devra être distribuée.
Inconvénients:
 Taille assez grande des clés, s’étend de 512 bits à 2048 bits voire 4096 bits pour un usage
sensible.
 Au niveau des performances, le chiffrement par voie asymétrique est environ 1000 fois
plus lent que le chiffrement symétrique.
Applied Cryptography (Prof. LAMIRI)

Fonction de Hachage
Fonction de Hachage
Applied Cryptography (Prof. LAMIRI)

 Un message clair de longueur quelconque est transformé en un message de longueur fixe


inférieure à celle de départ.
 Le message réduit portera le nom de "Haché" ou de "Condensé".
 L’intérêt est d’utiliser ce condensé comme empreinte digitale du message original afin
que ce dernier soit identifié de manière univoque.
 Utilisée pour s’assurer de l’intégrité de messages echangés
Fonction de Hachage
Applied Cryptography (Prof. LAMIRI)

Deux caractéristiques (théoriques) importantes sont les suivantes :


 Les fonctions sont unidirectionnelles : A partir de H(M) il est impossible de retrouver M.
 Les fonctions sont sans collisions : A partir de H(M) et M il est impossible de trouver
M0 != M tel que H(M0 ) = H(M). // Les collisions sont possibles?
Fonction de Hachage: Collisions do exist
Applied Cryptography (Prof. LAMIRI)

It is infeasible (not impossible) to find two values, x and y, such that x ≠ y, yet H(x) = H(y).

Let’s take a 256-bit output Hash Function, such as SHA-256.


If we randomly choose just 2^^130 + 1 inputs, we have 99.8% that at least two of them
will collide.
2^^130 + 1 is an astronomically large number; it would take 10^^27 years to calculate it
using a 10,000 hash/s computer. The odds that they would have found a collision by now are
still infinitesimally small.
Applied Cryptography (Prof. LAMIRI)

Cryptanalyse
Cryptanalyse
Applied Cryptography (Prof. LAMIRI)

 La science de la reconstitution du texte en clair sans connaître la clef.


 Une cryptanalyse réussie peut fournir soit le texte en clair, soit la clef.
 La cryptanalyse peut également mettre en évidence les faiblesses d'un cryptosystème qui
peuvent éventuellement faciliter les attaques contre celui-ci.
 Une tentative de cryptanalyse est appelée attaque.
Cryptanalyse: 4 Types d’attaques
Applied Cryptography (Prof. LAMIRI)

1. L'attaque à texte chiffré seulement: Le cryptanalyste dispose du texte chiffré de


plusieurs messages, tous ayant été chiffrés avec le même algorithme. La tâche du
cryptanalyste est de retrouver le texte en clair du plus grand nombre de messages possible.
2. L'attaque à texte en clair connu: Le cryptanalyste a accès aux textes chiffrés de
plusieurs messages et les textes en clair correspondants. La tâche est de retrouver la ou les
clef(s) utilisées pour chiffrer ces messages ou un algorithme qui permet de déchiffrer
n'importe quel nouveau message chiffré avec la même clef.
3. L'attaque à texte en clair choisi: Non seulement le cryptanalyste a accès aux textes
chiffrés et aux textes en clair mais de plus il peut choisir les textes en clair à chiffrer. La
tâche consiste à retrouver la ou les clefs utilisées pour chiffrer ces messages ou un
algorithme qui permette de déchiffrer n'importe quel nouveau message chiffré avec la
même clef
4. L'attaque à texte en clair choisi adaptative: C'est un cas particulier de l'attaque à texte
en clair choisi. Non seulement le cryptanalyste peut choisir les textes en clair mais il peut
également adapter ses choix en fonction des textes chiffrés précédents. Dans une attaque à
texte en clair choisi, le cryptanalyste est juste autorisé à choisir un grand bloc de texte en
clair au départ tandis que dans une attaque à texte en clair adaptative, il choisit un bloc
Applied Cryptography (Prof. LAMIRI)

Besoins de la Cryptographie en Sécurité


Besoins de la Cryptographie en Sécurité
Applied Cryptography (Prof. LAMIRI)

 Confidentialité: un message est chiffré donc seules les personnes autorisées


peuvent le déchiffrer (possédant les clés de déchiffrement)
 Intégrité: un message est envoyé avec son hashé pour s’assurer qu’il n’a pas
été altéré.
 Authentification: Le destinataire d'un message doit pouvoir s'assurer de son
origine.
 Non-repudiation: Un expéditeur ne doit pas pouvoir, par la suite, nier à tort
avoir envoyé un message.
Besoins de la Cryptographie en Sécurité: Confidentialité
Applied Cryptography (Prof. LAMIRI)

Utilisateur A Utilisateur B

Un attaquant écoute le traffic

A et B peuvent communiquer confidentiellement en appliquant le chiffrement


des messages échangés
Besoins de la Cryptographie en Sécurité: Confidentialité
Applied Cryptography (Prof. LAMIRI)

Confidentialité d’un système symétrique

Dans le cas de systèmes à clés symétriques, la même clé est utilisée pour EK(M)
et DK(C). Ce type de chiffrement nécessite un échange sûr préalable de la clé
K entre les entités A et B.
Besoins de la Cryptographie en Sécurité: Confidentialité
Applied Cryptography (Prof. LAMIRI)

Confidentialité d’un système asymétrique

 L’échange préalable de clé secrète n’est pas nécessaire.


 Chaque entité possède sa propre paire de clés:
 La paire PKA, SKA pour l’entité A,
 La paire PKB, SKB pour l’entité B.
Besoins de la Cryptographie en Sécurité: Confidentialité
Applied Cryptography (Prof. LAMIRI)

Confidentialité d’un système hybride


 L’échange de la clé secrète K est assuré à l’aide d’un système à clé publique.
 Ensuite, les deux parties ayant acquis de manière sécurisée cette clé de
chiffrement K, on utilisera le système à clé symétrique pour chiffrer le message.
Besoins de la Cryptographie en Sécurité: Intégrité
Applied Cryptography (Prof. LAMIRI)

Vérification de l’intégrité par fonction de hachage

 On vérifie si le message n’a pas subi de modification durant la


communication à l’aide des fonctions de hachage.
 Le message et son haché sont envoyés séparement au destinataire.
Besoins de la Cryptographie en Sécurité: Authentification
Applied Cryptography (Prof. LAMIRI)

Authentification des parties communicantes (A et B) dans un système symétrique

 RA est une nonce (nombre aléatoire), propre à l’utilisateur A.


 RB est une nonce (nombre aléatoire), propre à l’utilisateur B.
 Les lettres A et B sont des identificateurs personnels (nom & prénom & tel)
Besoins de la Cryptographie en Sécurité: Authentification
Applied Cryptography (Prof. LAMIRI)

Authentification des parties communicantes dans un système asymétrique

 Comme le propriétaire de cette clé est le seul à la connaitre, cela prouve


qu’il est bien la personne ayant chiffré le message.
Besoins de la Cryptographie en Sécurité: Authentification
Applied Cryptography (Prof. LAMIRI)

Authentification par MAC Authentification par MAC


et système symétrique et fonction de hachage

 Soit un MAC (Message Authentication Code) généré à l’aide d’un cryptosystème


à clé symétrique où le MAC est constitué des derniers digits de C ,
 Soit un MAC généré à l’aide d’une fonction de hachage,
 La clé secrète K utilisée étant partagée par les deux entités A et B.
 Dans les deux cas, l’authentification repose sur l’utilisation de la clé K
Besoins de la Cryptographie en Sécurité: Authentification
Applied Cryptography (Prof. LAMIRI)

et non-répudiation

Authentification par signature (technique asymétrique)


 La signature digitale assure l’authenticité et la non-répudiation
 Parmi les propriétés remarquables de ces signatures, on peut dire qu’elles doivent être
authentiques, infalsifiables, non-réutilisables, non-répudiables, et inaltérables.
Applied Cryptography (Prof. LAMIRI)

Les Codes Cryptographiques (Cryptographie Classique)


• Par Substitution
• Par Transposition
Codes Cryptographiques par Substitution
Applied Cryptography (Prof. LAMIRI)

Core Concept: A substitution cipher is one in which each character in the


plaintext is substituted for another character in the ciphertext. The receiver
inverts the substitution on the ciphertext to recover the plaintext.
Codes Cryptographiques par Substitution
Applied Cryptography (Prof. LAMIRI)

In classical cryptography, there are four types of substitution ciphers:

 Type I: A simple substitution cipher, or monoalphabetic cipher, is one in which


each character of the plaintext is replaced with a corresponding character of ciphertext.
(Caesar Cipher)
 Type II: A homophonic substitution cipher is like a simple substitution
cryptosystem, except a single character of plaintext can map to one of several
characters of ciphertext. For example, "A" could correspond to either 09, 12, 33, 47,…,
“C" could correspond to either 13, 41, or 62, and so on.

On choisira un nombre des symboles


proportionnel à la fréquence d’apparition
de la lettre. Ainsi, on obtient un
renversement des fréquences ce qui
permet de faire disparaître complètement
les indications fournies par la fréquence
Codes Cryptographiques par Substitution
Applied Cryptography (Prof. LAMIRI)

In classical cryptography, there are four types of substitution ciphers:

Type III: A polygram substitution cipher is one in which blocks of characters are
encrypted in groups. For example:
“MU" could correspond to “RP" , “ST" could correspond to “XY“, and so on.

Type IV: A polyalphabetic substitution cipher is made up of multiple simple


substitution ciphers.
For example:
there might be five different simple substitution cipher ( Vigenere Cipher)
Applied Cryptography (Prof. LAMIRI)

Substitution Monoalphabétique: Chiffre de César


Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

 Chiffre de César (50 av. J-C), un des chiffres classiques les plus populaires.
 Son principe: un décalage des lettres de l’alphabet.
 p est l’indice de la lettre de l’alphabet, k est le décalage, C est l’indice de chiffre
 Les indices allant de 0 pour “A” à 25 pour “Z”
 Chiffrement: par la formule C = E(p) = (p + k) mod 26
 Déchiffrement: par la formule p = D(C) = (C − k) mod 26

La cryptanalyse par force


brute est très facile. En effet,
dans le cas du chiffre de
César, seules 25 ( !) clés sont
possibles.
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

You need 3 main functions in Python: join(), ord(), and chr()

 join(): The join() method is a string method and returns a string in which the
elements of sequence have been joined by str separator.
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

You need 3 main functions in Python: join(), ord(), and chr()

 ord(): The ord() function in Python accepts a string of length 1 as an


argument and returns the unicode code point representation of the passed
argument.
Excerpt of the Unicode Character Set
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

You need 3 main functions in Python: join(), ord(), and chr()

 chr(): The chr() method returns a string representing a character whose


Unicode code point is an integer. The chr() method takes only one integer
as argument.
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

Implementation:
• Chiffrement d’une lettre

• Déchiffrement d’une lettre


Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

Implementation:
• Chiffrement d’une phrase
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

Implementation:
• Déchiffrement d’une phrase
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

Implementation:
• Test
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

ROT 13: the Shift (décalage) k = 13

• Encrypt(‘HELLO’) gives ‘URYYB’


And
• Encrypt(‘URYYB’) gives ‘HELLO’
Cryptanalyse du chiffre de César
Applied Cryptography (Prof. LAMIRI)

Technique d’analyse de fréquence:


• Dépend de la langue utilisée
• On exploite les régularités du langage par le principe d’analyse de la fréquence d’une
lettre.
• Ne fonctionne bien que si le message chiffré est suffisamment long
Substitution Monoalphabétique: Chiffre de César
Applied Cryptography (Prof. LAMIRI)

LAB 1 : Caesar code implementation


Implement and test Caesar code using python
Send your report to abdlamsic@gmail.com
Applied Cryptography (Prof. LAMIRI)

Autres Substitutions Monoalphabétiques


Autres Substitutions Monoalphabétiques
Applied Cryptography (Prof. LAMIRI)

• Chiffre affine:
 un polynôme de degré 1 de la forme C → k1 ∗ m + k2
 Chiffrement C = (k1*m + k2) mod 26, où a et b sont des constantes, et où m et C sont
des nombres correspondant aux lettres de l’alphabet (A=0,B=1,...).
 Chiffre de César si k1 = 1, où k2 est le décalage.
 Si k2 = 0, alors « A" est toujours chiffré "A" car il ne subit aucun décalage.
 La clé est constituée de (k1, k2) où k1, k2 ∈ [0, 25] et telle que pgcd(k1, 26) = 1.
 Pour le déchiffrement, il vient: mi = f−1(ci) = k1 −1 ∗ (ci − k2) mod 26.
 On obtient 312 clés possibles. En effet, pour respecter la propriété de k1, il n’y a que
12 choix possibles. Et puisque k2 peut prendre n’importe quelle valeur dans [0, 25], il vient
12 ∗ 26 = 312.
Autres Substitutions Monoalphabétiques
Applied Cryptography (Prof. LAMIRI)

• Chiffre affine:
Applied Cryptography (Prof. LAMIRI)

Homophonic Substitution Code (Type II)


Homophonic Substitution Code
Applied Cryptography (Prof. LAMIRI)

The Homophonic Substitution cipher is a substitution cipher in which single plaintext letters can be replaced
by any of several different ciphertext letters. They are generally much more difficult to break than standard
substitution ciphers.
Homophonic Substitution Code
Applied Cryptography (Prof. LAMIRI)

Challenge 1:
Implement the following homophic substitution code in python language
Send your source code to abdlamsic@gmail.com

a = [ "07", "31", "50", "63", "66", "77", "84" ], b = [ "11", "64" ], c = [ "17", "33", "49" ]
d = [ "10", "27", "51", "76" ]
e = [ "25", "26", "28", "32", "48", "67", "69", "72", "75", "79", "82", "85" ]
f = [ "08", "09" ], g = [ "44", "83" ]
h = [ "19", "20", "21", "54", "70", "87" ]
i = [ "02", "03", "29", "53", "68", "73" ]
j = [ "18" ] , k = [ "41" ], l = [ "42", "81", "86", "95" ], m = [ "40", "52" ]
n = [ "00", "43", "80", "88", "89" ], o = [ "16", "30", "61", "65", "91", "94", "96" ]
p = [ "01", "62" ], q = [ "15" ], r = [ "04", "24", "39", "58", "71", "99" ]
s = [ "06", "34", "56", "57", "59", "90" ]
t = [ "05", "23", "35", "37", "38", "60", "74", "78", "92" ]
u = [ "13", "14", "36" ], v = [ "22" ] , w = [ "45", "46" ], x = [ "12" ], y = [ "55", "93" ], z = [ "47" ]
Applied Cryptography (Prof. LAMIRI)

Chiffrement Polygraphique
Chiffrement Polygraphique
Applied Cryptography (Prof. LAMIRI)

• Il s’agit ici de chiffrer un groupe de n lettres par un autre groupe de n symboles.


• On citera notamment le chiffre de Playfair et le chiffre de Hill.
• Ce type de chiffrement porte également le nom de substitutions polygrammiques.
Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

• On chiffre 2 lettres par 2 autres (par digramme)


• On dispose les 25 lettres de l’alphabet:
 W exclu et remplacé par V pour le français dans une grille de
5x5
 En anglais, on le W et on fusionner I et J.
• Pour former ces grilles de chiffrement, on utilise un mot-clef
secret pour créer un alphabet désordonné avec lequel on remplit la
grille ligne par ligne.
• Ensuite, on comble la grille avec les lettres restantes de l’alphabet.

Grille de 5x5 avec une clé=PLAYFAIR


Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

4 règles à appliquer selon les deux lettres à chiffrer lors de l’étape de substitution. Pour le
déchiffrement, on procède dans l’ordre inverse.
• Régle 1: Si les lettres sont sur des "coins", les lettres chiffrées sont les 2 autres coins
opposés.

OK devient VA RE devient XI
Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

4 règles à appliquer selon les deux lettres à chiffrer lors de l’étape de substitution. Pour le
déchiffrement, on procède dans l’ordre inverse.
• Régle 2: Si les lettres sont sur la même ligne, il faut prendre les deux lettres qui les
suivent immédiatement à leur droite.

JF devient SU
Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

4 règles à appliquer selon les deux lettres à chiffrer lors de l’étape de substitution. Pour le
déchiffrement, on procède dans l’ordre inverse.
• Régle 3: Si les lettres sont sur la même colonne, il faut prendre les deux lettres qui les
suivent immédiatement en dessous.
RM devient ID
Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

4 règles à appliquer selon les deux lettres à chiffrer lors de l’étape de substitution. Pour le
déchiffrement, on procède dans l’ordre inverse.
• Régle 4: Si elles sont identiques, il faut insérer une nulle (habituellement le X) entre les
deux pour éliminer ce doublon.

Exemple : "balloon" devient "ba" "lx" "lo" "on".


Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

EXAMPLE: Encrypt the phrase « INPT » using playfair cipher with


password=MAROC 1. INPT  IN & PT
2. IN PH
3. PTQN
4. resulat= PHQN
Chiffrement Polygraphique: Chiffre de playfair (1854)
Applied Cryptography (Prof. LAMIRI)

EXAMPLE: Decrypt the phrase « PHQN » using playfair cipher with


password=MAROC 1. PHQN PH& QN
2. PH IN
3. QNPT
4. resulat= PHQN

Régle 1 inversée: coins opposés Régle 2 inversée: vers la gauche


Homophonic Substitution Code
Applied Cryptography (Prof. LAMIRI)

Challenge 2:
Implement the previous example of playfair cipher in python language using the
provided grid.
Send your source code to abdlamsic@gmail.com
Chiffrement polygraphique: Chiffre de Hill (1929)
Applied Cryptography (Prof. LAMIRI)

Next Course
Applied Cryptography (Prof. LAMIRI)

Vous aimerez peut-être aussi