Académique Documents
Professionnel Documents
Culture Documents
Introduction
Depuis fort longtemps, les hommes ont tenté de rendre sécuritaires
leurs communications confidentielles. Différentes techniques ont été
utilisées.
Tout au cour de l’histoire, une difficile bataille eut lieu entre les
constructeurs de code (cryptographes) et ceux qui essayaient de les
briser (les cryptanalystes). Il n’est toujours pas clair, même
aujourd’hui, qui sera le vainqueur.
Chiffrement de César
Cette technique simple de chiffrement effectuant un
décalage est appelé chiffrement de César.
Par exemple, avec un décalage de trois, mon nom
devient
ALAIN TAPP = DODLQCWDSS
(On décale aussi les espaces…)
1: E_FDLXQDLOTQYUZDLYQZQZELMLC_YQ
2: DZECKWPCKNSPXTYCKXPYPYDKLKBZXP
3… 4… 5… 6… 7… 8… 9… 10… 11… 12…
13: TOUS_LES_CHEMINS_MENENT_A_ROME
TOUS_LES_CHEMINS_MENENT_A_ROME devient
FQLJRPAJRHCAE_ZJREAZAZFRDRNQEA
BQ_SNRSJXJNJXLD_CLDL_QBE_QREJXHNE_ESJ_JIES_UN
BDEIQRBE_Q_BQ_ZITEJQDQBTSE_ELNIUN_HNE_BE_CESS
QWE_SLXJ_SNVVXSQCCEDJ_BLDW_XB_SNVVXJ_GE_JEDXI
_ZLCEJE_GES_SJQJXSJXHNES_G_LZZNIIEDZE_GES_GXV
VEIEDJES_BEJJIES
Remplaçons Q par A et B par L
LA_SNRSJXJNJXLD_CLDL_ALE_AREJXHNE_ESJ_JIES_UN
LDEIARLE_A_LA_ZITEJADALTSE_ELNIUN_HNE_LE_CESS
AWE_SLXJ_SNVVXSACCEDJ_LLDW_XL_SNVVXJ_GE_JEDXI
_ZLCEJE_GES_SJAJXSJXHNES_G_LZZNIIEDZE_GES_GXV
VEIEDJES_LEJJIES
Remplaçons S par S et G par D
LA_SNRSJXJNJXLD_CLDL_ALE_AREJXHNE_ESJ_JIES_UN
LDEIARLE_A_LA_ZITEJADALTSE_ELNIUN_HNE_LE_CESS
AWE_SLXJ_SNVVXSACCEDJ_LLDW_XL_SNVVXJ_DE_JEDXI
_ZLCEJE_DES_SJAJXSJXHNES_D_LZZNIIEDZE_DES_DXV
VEIEDJES_LEJJIES
Remplaçons J par T et I par R
LA_SNRSTXTNTXLD_CLDL_ALE_ARETXHNE_EST_TRES_UN
LDERARLE_A_LA_ZRTETADALTSE_ELNRUN_HNE_LE_CESS
AWE_SLXT_SNVVXSACCEDT_LLDW_XL_SNVVXT_DE_TEDXR
_ZLCETE_DES_STATXSTXHNES_D_LZZNRREDZE_DES_DXV
VEREDTES_LETTRES
Remplaçons X par I, H par Q et N par U
LA_SURSTITUTILD_CLDL_ALE_ARETIQUE_EST_TRES_UU
LDERARLE_A_LA_ZRTETADALTSE_ELURUU_QUE_LE_CESS
AWE_SLIT_SUVVISACCEDT_LLDW_IL_SUVVIT_DE_TEDIR
_ZLCETE_DES_STATISTIQUES_D_LZZURREDZE_DES_DIV
VEREDTES_LETTRES
Remplaçons V par F et D par N
LA_SURSTITUTILN_CLNL_ALE_ARETIQUE_EST_TRES_UU
LNERARLE_A_LA_ZRTETANALTSE_ELURUU_QUE_LE_CESS
AWE_SLIT_SUFFISACCENT_LLNW_IL_SUFFIT_DE_TENIR
_ZLCETE_DES_STATISTIQUES_D_LZZURRENZE_DES_DIF
FERENTES_LETTRES
Remplaçons R par B et L par O
LA_SUBSTITUTION_CONO_ALE_ARETIQUE_EST_TRES_UU
LNERABLE_A_LA_ZRTETANALTSE_EOURUU_QUE_LE_CESS
AWE_SOIT_SUFFISACCENT_LONW_IL_SUFFIT_DE_TENIR
_ZOCETE_DES_STATISTIQUES_D_OZZURRENZE_DES_DIF
FERENTES_LETTRES
Finalement
LA_SUBSTITUTION_MONO_ALPHABETIQUE_EST_TRES_VU
LNERABLE_A_LA_CRYPTANALYSE_POURVU_QUE_LE_MESS
AGE_SOIT_SUFFISAMMENT_LONG_IL_SUFFIT_DE_TENIR
_COMPTE_DES_STATISTIQUES_D_OCCURRENCE_DES_DIF
FERENTES_LETTRES
Substitution+
Au lieu de faire la substitution mono-alphabétique, on
peut rendre le code plus difficile à briser en faisant une
substitution de mots. Chaque mot est remplacé par un
nombre, d’où la nécessité d’un dictionnaire. On peut
utiliser des synonymes.
ALAIN=1,12,1,9,14
ALAINALAINALAINALAINALAINALAINALAINALAINA
LE_CODE_DE_VIGENERE_EST_IL_INDECHIFFRABLE
MQALBEQAMSAGJPSOQSNNFDUIWMLJWRFOIRTGCBKZF
26
Cryptage asymétrique
27
RSA
28
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.
• Breveté par RSA, et cette patente a expiré en 2000.
• Utilise des entiers très larges 1024+ bits
• Le fonctionnement du cryptosystème RSA est basé sur la
difficulté de factoriser de grands entiers.
29
Rappel
• A mod B est le reste de la division entière de A par B
• La multiplication et le modulo
(A mod B) (C mod B) = A * C mod B
• L'exponentielle et le modulo
an mod m = (a mod m)n mod m
• Pierre Fermat :
Si on utilise un nombre premier comme module, alors quand on
élève un nombre à la puissance (nombre premier -1), on obtient 1
– Pour n'importe quel nombre m et pour p premier :
m( p – 1 ) mod p = 1
– Exemple : 7 10 mod 11 = 1 …pas besoin de calcul car 11 est
premier
30
Rappel
• Leonhard Euler :
– Lorsqu'on utilise un module comme étant le produit de deux
nombres premiers on a :
Soit n = p * q, avec p et q premiers, et quelque soit m
m( p – 1 ) ( q – 1 ) mod n = 1
– Exemple : soit p = 11 et q = 5, n = 55 et (p – 1)(q – 1) = 10 * 4 =
40
38 40 mod 55 = 1
– Si on manipule le résultat d'Euler en multipliant par m l'équation :
m * m( p – 1 ) ( q – 1 ) mod n = m
m( p – 1 ) ( q – 1 ) + 1 mod n = m
31
RSA: Algorithme
• Étapes
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 d=e-1 mod φ(n). En d’autre terme: 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 »
32
RSA: Algorithme
RSA: Exemple
Cryptage Décryptage
Texte
Texte clair Texte clair
crypté
33
Preuve de RSA
• D(E(M)) = (Me mod n)d mod n
= Me.d mod n
• On a: e.d = 1 (mod φ(n) )
= z x φ(n) + 1
• Me.d = M z x φ(n) + 1
= (Mz)φ(n) x M
= 1 x M (mod n)
• Par hypothèse RSA crypte des blocks de données de taille
inférieure à n (décomposition en blocks)
D(E(M)) = M
34
Exemple d'utilisation de
• RSA
Chiffrement du message 'HELLO'.
• On prend le code ASCII de chaque caractère et on les met
bout à bout:
m = 7269767679
• Il faut découper le message en blocs qui comportent moins de
chiffres que n.
• n comporte 4 chiffres, on découpe notre message en blocs de
3 chiffres:
726 976 767 900 (on complète avec des zéros)
• On chiffre 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 chiffré est 436 822 825 552.
35
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.
36
Comparaisons entre RSA et
• RSA DES
— clé de 40 bits
— chiffrement matériel : 300 Kbits/sec
— chiffrement logiciel : 21,6 Kbits/sec
— Inconvénient majeur : un pirate substitue sa propre clé publique à
celle du destinataire, il peut alors intercepter et décrypter le message
pour le recoder ensuite avec la vraie clé publique et le renvoyer sur le
réseau. «L’attaque» ne sera pas décelée.
— usage : on ne les emploiera que pour transmettre des données
courtes telles que les clés privées et les signatures électroniques.
• DES
— clé de 56 bits
— chiffrement matériel : 300 Mbits/sec
— chiffrement logiciel : 2,1 Mbits/sec
— Inconvénient majeur : attaque «brute force» rendue possible par la
puissance des machines.
— Usage : chiffrement rapide, adapté aux échanges de données de tous
les protocoles de communication sécurisés.
37
Échange sécurisé
• Résolution du problème de l'échange des clés secrètes : utilisation
d'une méthode hybride combinant à la fois chiffrement symétrique et
asymétrique.
• Avantages :
— la clé secrète est chiffrée et échangée ;
— après l'échange on bascule le chiffrement en utilisant un algorithme
symétrique plus rapide ;
— on démarre l'échange avec l'utilisation d'un algorithme asymétrique
qui possède l'avantage d'offrir un moyen d'identifier les interlocuteurs.
38
Échange sécurisé : la méthode Diffie - Hellman
39
Echange sécurisé : la méthode Diffie - Hellman
Déroulement de l’algorithme
40
Concours RSA-129
1143816257578888676692357799761466120102182967212423625625618429
35706935245733897830597123563958705058989075147599290026879543541
=
3490529510847650949147849619903898133417764638493387843990820577
*
32769132993266709549961988190834461413177642967992942539798288533