sécurité des systèmes informatiques INTRODUCTION Pr Belkhir Abdelkader kaderbelkhir@hotmail.com 05/04/2017 Belkhir Abdelkader USTTHB
Sécurité nombreuses menaces: Les menaces accidentelles Les menaces intentionnelles : Passives Actives : Interruption = problème lié à la disponibilité des données Interception = problème lié à la confidentialité des données Modification = problème lié à l’intégrité des données Fabrication = problème lié à l’authenticité des données 05/04/2017 Belkhir Abdelkader USTTHB
Menaces actives 05/04/2017 Belkhir Abdelkader USTTHB
Propriétés de sécurité 05/04/2017 Belkhir Abdelkader USTTHB
Vocabulaire de base 05/04/2017 Belkhir Abdelkader USTTHB
Vocabulaire de base Cryptologie : Il s’agit d’une science mathématique comportant deux branches : la cryptographie et la cryptanalyse Cryptographie : La cryptographie est l’étude des méthodes donnant la possibilité d’envoyer des données de manière confidentielle sur un support donné. Chiffrement : Le chiffrement consiste à transformer une donnée (texte, message, ...) afin de la rendre incompréhensible par une personne autre que celui qui a créé le message et celui qui en est le destinataire. La fonction permettant de retrouver le texte clair à partir du texte chiffré porte le nom de déchiffrement. Texte chiffré : Appelé également cryptogramme, le texte chiffré est le résultat de l’application d’un chiffrement à un texte clair. Clef : Il s’agit du paramètre impliqué et autorisant des opérations de chiffrement et/ou déchiffrement. Dans le cas d’un algorithme symétrique, la clef est identique lors des deux opérations. Dans le cas d’algorithmes asymétriques, elle diffère pour les deux opérations. Cryptanalyse : Opposée à la cryptographie, elle a pour but de retrouver le texte clair à partir de textes chiffrés en déterminant les failles des algorithmes utilisés. Cryptosystème : Il est défini comme l’ensemble des clés possibles (espace de clés), des textes clairs et chiffrés possibles associés à un algorithme donné. 05/04/2017 Belkhir Abdelkader USTTHB
Cryptosystème 05/04/2017 Belkhir Abdelkader USTTHB
Notations la propriété de base est que M = D(E(M)) où – 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) 05/04/2017 Belkhir Abdelkader USTTHB
05/04/2017 Belkhir Abdelkader USTTHB
Cryptosystème à clé symétrique 05/04/2017 Belkhir Abdelkader USTTHB
Cryptosystème à clé publique 05/04/2017 Belkhir Abdelkader USTTHB
Fonction de hachage 1. Ce sont des fonctions unidirectionnelles : A partir de H(M) il est impossible de retrouver M. 2. Ce sont des fonctions sans collisions : A partir de H(M) et M il est impossible de trouver M′ ≠ M tel que H(M′) = H(M). 05/04/2017 Belkhir Abdelkader USTTHB
La cryptanalyse : briser un algorithme de chiffrement Attaque sur le texte chiffré uniquement analyse de fréquence des lettres utilisées dans le texte chiffré 05/04/2017 Belkhir Abdelkader USTTHB
Rappels Mathématiques Arithmétique modulaire Diviseurs Soient a, b et m ∈ N. b(≠ 0) divise a si a = mb On dit que b est un diviseur de a. Exemple : les diviseurs de 24 sont 1,2,3,4,6,8,12,24. Propriétés : – Si a|1 alors a = ±1 – Si a|b et b|a alors a = ±b – Tout b différent de 0 divise 0 – Si b|g et b|h alors b|(mg + nh) pour m et n arbitraires – Si a = 0 mod n alors n|a 05/04/2017 Belkhir Abdelkader USTTHB
Quelques critères de divisibilité : – n est divisible par 2 s’il se termine par 0,2,4,6,8. – n est divisible par 3 si la somme de ses chiffres est divisible par 3. – n est divisible par 4 si ses deux derniers chiffres forment un multiple de 4 (ex : 256628). – n est divisible par 5 s’il se termine par 0 ou 5. – n est divisible par 8 si ses 3 derniers chiffres forment un multiple de 8 (ex : 176072). – n est divisible par 9 si la somme de ses chiffres est un multiple de 9 (ex : 37521=3+7+5+2+1=18=2*9). – n est divisible par 11 si la différence (1erchiffre + 3ièmechiffre + 5ièmechiffre + ...) - (2ièmechiffre + 4ièmechiffre + 6ièmechiffre + ...) est divisible par 11. Par exemple, 1485 est divisible par 11, car (1+8)- (4+5)=0 est divisible par 11. 05/04/2017 Belkhir Abdelkader USTTHB
Congruence Soit n, un entier non nul (dans Z), et a, b des entiers. a et b sont dits congruents modulo n si (a mod n) = (b mod n) ce qui s’écrit a = b mod n. Exemples : 73 = 4 mod 23, 21 = −9 mod 10 Deux entiers a et b sont égaux (ou congrus) modulo n si n|a − b. 05/04/2017 Belkhir Abdelkader USTTHB
Propriétés : 1. a = b mod n ssi n|a − b 2. a = b mod n ←→ ca = cb mod (cn) 3. a = b mod n ←→ ac = bc mod n 4. a = b mod m ←→ b = a mod m 5. a = b mod n et b = c mod n → a = c mod n 6. ((a mod n) + (b mod n)) mod n = (a + b) mod n 7. ((a mod n) − (b mod n)) mod n = (a − b) mod n 8. ((a mod n) ∗ (b mod n)) mod n = (a ∗ b) mod n 05/04/2017 Belkhir Abdelkader USTTHB
Propriété 1 : 23 = 8(mod5) car 23 − 8 = 15 = 5 ∗ 3 −11 = 5(mod8) car − 11 − 5 = −16 = 8 ∗ (−2) Propriété 6 : [(11 mod 8) + (15 mod 8)] mod 8 = (3 + 7) mod 8 = 2 (11 + 15) mod 8 = 26 mod 8 = 2 Propriété 7 : [(11 mod 8) − (15 mod 8)] mod 8 = (−4) mod 8 = 4 (11 − 15) mod 8 = (−4) mod 8 = 4 Propriété 8 : [(11 mod 8) ∗ (15 mod 8)] mod 8 = (3 ∗ 7) mod 8 = 5 (11 ∗ 15) mod 8 = 165 mod 8 = 5 05/04/2017 Belkhir Abdelkader USTTHB
Pour trouver 117 mod 13, on peut procéder comme suit 112 = 121 = 4 mod 13 114 = (112)2 = 42 = 3 mod 13 117 = 11 ∗ 114 ∗ 112 = (11 ∗ 3 ∗ 4) = 132 = 2 mod 13 05/04/2017 Belkhir Abdelkader USTTHB
L’ensemble Zn Soit Zn l’ensemble des entiers, Zn = {0, 1, ..., (n − 1)}. Zn représente l’ensemble des résidus ou classes de résidu modulo n (chaque entier dans Zn est une classe de résidu). On peut écrire ces classes [0], [1], ..., [n − 1] où [r] = {a : a ∈ Z et a = r mod n} Exemple : Classes de résidu modulo 4 : 0 = {..., -8, -4,0,4,8,...} 1 = {...,-7,-3,1,5,9,...} 2 = {...,-6,-2,2,6,10,...} 3 = {...,-5,-1,3,7,11,...} 05/04/2017 Belkhir Abdelkader USTTHB
05/04/2017 Belkhir Abdelkader USTTHB
Autres propriétés de Zn Nombres premiers Deux entiers sont relativement premiers si leur unique facteur commun positif est 1. On note lorsque a et c sont relativement premiers : (a, c) = 1 ou gcd(a, c) = 1 Propriété de l’addition (a + b) = (a + c) mod n → b = c mod n Exemple : (5 + 23) = (5 + 7) mod 8 → 23 = 7 mod 8 Propriété de la multiplication Si (a, n) = 1 alors (a ∗ b)=(a ∗ c) mod n → b = c mod n (a = 6, n = 8) 6= 1 → 6 ∗ 3 =2 mod 8 et 6 ∗ 7 = 2 mod 8 or 3 6= 7 mod 8. 05/04/2017 Belkhir Abdelkader USTTHB
Explications : Avec a = 6 et n = 8, on obtient le résultat suivant: Ensemble incomplet de résidus Cependant, avec a = 5 et n = 8, on a le résultat suivant: Ensemble complet de résidus 05/04/2017 Belkhir Abdelkader USTTHB
Un entier a donc un inverse multiplicatif dans Zn si cet entier est relativement premier à n. 05/04/2017 Belkhir Abdelkader USTTHB
Algorithme d’Euclide Algorithme d’Euclide simple: Algorithme d’Euclide (a > b > 0) : 1. A ←− a ; B ←− b 2. IF (B = 0) RETURN A = gcd(a, b) 3. R = A mod B 4. A ←− B 5. B ←− R 6. GOTO 2 05/04/2017 Belkhir Abdelkader USTTHB
Exemple: Soit le calcul de pgcd(1970,1066). Il vient 05/04/2017 Belkhir Abdelkader USTTHB
Algorithme d’Euclide étendu Algorithme d’Euclide étendu (m > b > 0) : 1. (A1,A2,A3) ←− (1, 0,m) 2. (B1,B2,B3) ←− (0, 1, b) 3. IF (B3 = 0) RETURN A3 = gcd(m, b) 4. IF (B3 = 1) RETURN B3 = gcd(m, b) 5. Q = ⌊A3/B3⌋ 6. (T1, T2, T3) ←− (A1 − Q.B1,A2 − Q.B2,A3 − Q.B3) 7. (A1,A2,A3) ←− (B1,B2,B3) 8. (B1,B2,B3) ←− (T1, T2, T3) 9. GOTO 3 05/04/2017 Belkhir Abdelkader USTTHB
Remarques – ⌊ ⌋ représente le nombre directement inférieur ou égal au nombre entre crochets – Si la condition du point 3 est remplie, alors b n’a pas d’inverse modulo m – Si la condition du point 4 est remplie, alors le pgcd vaut 1 et b−1 mod m = B2 05/04/2017 Belkhir Abdelkader USTTHB
Exemple d’exécution de l’algorithme Soit gcd(550, 1759) = 1, l’inverse multiplicatif de 550 est 355. En effet, (550 ∗ 355) = 1 mod 1759 05/04/2017 Belkhir Abdelkader USTTHB
Chiffrement monoalphabétique Substitution monoalphabétique A est l’alphabet. Soit une permutation (i.e. une bijection) sur A. L’opération de chiffrement d’un message m=m1· · · mn est: c = E(m) = (m1) · · · (mn). La clé secrète est . Connaissant cette clé, on peut déchiffrer: D(c) = −1(c1) · · · −1(cn) = m. 05/04/2017 Belkhir Abdelkader USTTHB
Un cas particulier est quand est le décalage circulaire de k de lettres (c’est le nombre k qui est alors le secret). Le chiffre de César utilisait k = 3. Dans le cas particulier du décalage circulaire, il n’y a que 26 clés possibles. 05/04/2017 Belkhir Abdelkader USTTHB
exemple Texte en clair: sauna On obtiendra: vdxqd 05/04/2017 Belkhir Abdelkader USTTHB
Chiffre affine On dit qu’une fonction est affine lorsqu’elle est de la forme x → a ∗ x + b, c’est-à-dire un polynôme de degré 1. L’idée est d’utiliser une fonction de chiffrement y = (ax + b) mod 26, où a et b sont des constantes, et où x et y sont des nombres correspondant aux lettres de l’alphabet (A=0,B=1,...). On peut remarquer que si a = 1, alors on retrouve le chiffre de César où b est le décalage (le k du chiffre de César). 05/04/2017 Belkhir Abdelkader USTTHB
Chiffre affine Pour le chiffre affine, la clé est constituée de (k1, k2) où k1, k2 ∈ [0, 25] et telle que gcd(k1, 26) = 1. Le chiffrement en lui-même est donné par ci = f(mi) = k1 ∗ mi + k2 mod 26. Pour le déchiffrement, il vient mi = f−1(ci) = k−11 ∗ (ci − k2) mod 26. 05/04/2017 Belkhir Abdelkader USTTHB
Chiffre affine Exemple : Soient la clé = (k1, k2) = (3, 11) Transformation de chiffrement : ci = f(mi) = 3 ∗ mi + 11 mod 26 Transformation de déchiffrement : k−11 = 3−1 mod 26 =9 [car 3∗9 mod 26=1] mi = f−1(ci) = 9 ∗ (ci − 11) mod 26 Ainsi, pour une suite de lettres telle que ’NSA’ → 13 18 0 → 24 13 11 →’YNL’. 05/04/2017 Belkhir Abdelkader USTTHB
Chiffrement polygraphique Chiffre de Hill Les lettres sont d’abord remplacées par leur rang dans l’alphabet. Les lettres Pk et Pk+1 deviennent Ck et Ck+1 05/04/2017 Belkhir Abdelkader USTTHB
Chaque digramme clair (P1 et P2) sera chiffré (C1 et C2) selon : C1 ≡ aP1 + bP2(mod26) C2 ≡ cP1 + dP2(mod26) 05/04/2017 Belkhir Abdelkader USTTHB
Chiffre de Hill Exemple: Texte en clair: td securite Texte codé: BMWOU UDLFT 05/04/2017 Belkhir Abdelkader USTTHB
Nb: il s’agit de trouver l’inverse dans Z26 05/04/2017 Belkhir Abdelkader USTTHB
Substitutions polyalphabétiques Chiffre de Vigenère Exemple : chiffrer le texte "CHIFFRE DE VIGENERE" avec la clef "BACHELIER" (cette clef est éventuellement répétée plusieurs fois pour être aussi longue que le texte clair) Ce chiffre utilise une clef qui définit le décalage pour chaque lettre du message (A : décalage de 0 cran, B : 1 cran, C : 2 crans, ..., Z : 25 crans). 05/04/2017 Belkhir Abdelkader USTTHB
Le carré de vigenère 05/04/2017 Belkhir Abdelkader USTTHB
Chiffre de Vernam (One Time Pad - 1917) Le masque jetable est défini comme un chiffre de Vigenère avec la caractéristique que la clef de chiffrement a la même longueur que le message clair. Pour utiliser ce chiffrement, il faut respecter plusieurs propriétés : – choisir une clef aussi longue que le texte à chiffrer, – utiliser une clef formée d’une suite de caractères aléatoires, – protéger votre clef, – ne jamais réutiliser une clef. 05/04/2017 Belkhir Abdelkader USTTHB