Académique Documents
Professionnel Documents
Culture Documents
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)
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)
Principe de Kerckhoffs
Principe de Kerckhoffs
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)
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)
It is infeasible (not impossible) to find two values, x and y, such that x ≠ y, yet H(x) = H(y).
Cryptanalyse
Cryptanalyse
Applied Cryptography (Prof. LAMIRI)
Utilisateur A Utilisateur B
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)
et non-répudiation
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.
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
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)
Implementation:
• Chiffrement d’une lettre
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)
• 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)
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)
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.
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)