Sécurité informatique

Transcription

Sécurité informatique
U L B M’H
O E B
Faculté des Sciences Exaes et des Sciences de la Nature et de la Vie
D  M  I
Sécurité informatique
S  
A ’    :
ère Année Master « Vision Artificielle ».
ème Année Master « Architeures Distribuées ».
Par :
D. Abdelhabib B
Maitre de conférences B
/

Remarques
C ,     ’      
 ’      ’  :
[email protected]
C     C C CC-BY
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

Table des matières

Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬
. Introduion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Sécurité informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. L’architeure de sécurité OSI . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Les attaques de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Les menaces relevant de problèmes non spécifiques à l’informatique . . . .
.. Les pannes et les erreurs (non intentionnelles) . . . . . . . . . . . . . . .
.. Les menaces intentionnelles . . . . . . . . . . . . . . . . . . . . . . . .
. Exemples d’attaques intentionnelles à caraère informatique . . . . . . . . . . .
. Attaques, servcices et mécanismes . . . . . . . . . . . . . . . . . . . . . . . . .
. Les services de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Politique de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Les méthodologies de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Méthode M.A.R.I.O.N . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Méthode MEHARI . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Méthode M.E.L.I.S.A . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Fiabilité des systèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. La struure série . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. La struure parallèle . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Bases de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Confusion et diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Déchiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Cryptosystème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.. Classes d’attaques sur les primitives cryptographiques . . . . . . . . . . .
...
L’attaque à texte chiffré seul (ciphertext-only attack) . . . . . .
... L’attaque à texte clair connu (known-plaintext attack) . . . . .
... L’attaque à texte clair choisi (chosen-plaintext attack) . . . . . .
... L’attaque adaptative à texte clair choisi (adaptive chosen plaintext attack) . . . . . . . . . . . . . . . . . . . . . . . . . . .
... L’attaque à texte chiffré choisi (chosen ciphertext attack) . . . .
... L’attaque adaptative à texte chiffré choisi (adaptive chosen ciphertext attack) . . . . . . . . . . . . . . . . . . . . . . . . .
 Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬
. Cryptosystèmes symétriques (‫ )ﺃﻨﻅﻤﺔ ﺍﻟﺘﺸﻔﻴﺭ ﺍﻟﻤﺘﻨﺎﻅﺭﺓ‬. . . . . . . . . . . . . . .
i


































ii
TABLE DES MATIÈRES
.
Chiffre par substitution . . . . . . . .
.. Chiffre de César . . . . . . . .
.. Chiffre affine . . . . . . . . .
...
Chiffrement . . . .
... Déchiffrement . . .
... Cryptanalyse . . . .
.. Chiffre de Vigenère . . . . . .
...
Chiffrement . . . .
... Déchiffrement . . .
... Cryptanalyse . . . .
.. Autres chiffres par substitution
. Chiffres par transposition . . . . . . .
.. Principe général . . . . . . . .
. Chiffre par bloc et chiffre de flux . . . .
. Modes opératoires . . . . . . . . . . .
.. ECB . . . . . . . . . . . . . .
.. CBC . . . . . . . . . . . . . .
.. PCBC . . . . . . . . . . . . .
.. CFB ou CFC . . . . . . . . .
...
Forme simple . . . .
... Version détaillée . .
.. OFB ou OFC . . . . . . . . .
.. CTR . . . . . . . . . . . . .
.. CTS . . . . . . . . . . . . . .
. Padding . . . . . . . . . . . . . . . .
. Data Encryption Standard . . . . . . .
.. Histoire . . . . . . . . . . . .
.. Fonionnement . . . . . . . .
.. Dérivation des sous-clés . . . .
.. Déchiffrement . . . . . . . . .
.. Clés faibles . . . . . . . . . .
.. Attaques . . . . . . . . . . . .
. Triple Data Encryption Standard . . .
. Advanced Encryption Standard . . . .
.. Le vainqueur . . . . . . . . .
.. Fonionnement . . . . . . . .
.. Déchiffrement . . . . . . . . .
.. Attaques . . . . . . . . . . . .
. Password-based cryptography . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 Cryptographie asymétrique
. Principe . . . . . . . . . . . . . . . . . . . . . . .
. Fondement théorique . . . . . . . . . . . . . . . .
. Authentification de l’origine . . . . . . . . . . . . .
. Transmission sécurisée de la clé symétrique . . . . .
. Bases mathématiques . . . . . . . . . . . . . . . . .
.. Petit théorème de Fermat . . . . . . . . . .
.. Propriétés de la congruence modulo n dans Z
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.







































.
.
.
.
.
.
.








ii
TABLE DES MATIÈRES
iii
..
..
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.


















.
.
.
.
.
.
.
.
.










.
.
.
.
.
.
.
.
.
.
.
.
.
.















 Signature digitale
. Introduion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. Fonionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .



.
.
éorème de Bachet-Bézout . . . . . . .
Algorithme d’Euclide étendu . . . . . .
...
L’algorithme . . . . . . . . .
.. éorème des Restes Chinois . . . . . .
...
Exemple  . . . . . . . . . .
... Exemple  . . . . . . . . . .
... éorème . . . . . . . . . . .
... Solution  . . . . . . . . . . .
... Solution  . . . . . . . . . .
... Généralisation . . . . . . . .
.. Indicatrice d’Euler . . . . . . . . . . . .
...
Propriétés . . . . . . . . . . .
.. Calcul de la puissance modulaire . . . .
Rivest Shamir Adleman . . . . . . . . . . . . .
.. Création des clés . . . . . . . . . . . .
.. Chiffrement et déchiffrement du message
Cryptosystème de ElGamal . . . . . . . . . . .
.. Fonionnement . . . . . . . . . . . . .
 Echange de clés
. Cryptographie quantique . . . . . . .
.. Introduion . . . . . . . . . .
.. Historique . . . . . . . . . . .
.. Fonionnement . . . . . . . .
. Echange de clés Diffie-Hellman . . . .
.. Principe . . . . . . . . . . . .
.. Exemple concret . . . . . . . .
.. Fondement mathématique . .
.. L’attaque de l’homme du milieu
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
 Fonctions de hachage
. Introduion . . . . . . . . . . . . . . . . . . . . . . . .
. Propriétés des fonions de hachage . . . . . . . . . . . .
.. Preimage resistance . . . . . . . . . . . . . . . .
.. nd preimage resistance . . . . . . . . . . . . . .
.. Collision resistance . . . . . . . . . . . . . . . .
.. Fonion de compression. . . . . . . . . . . . . .
.. Pseudo-collision . . . . . . . . . . . . . . . . . .
.. Effet avalanche . . . . . . . . . . . . . . . . . .
...
Motivations . . . . . . . . . . . . . .
.. Critère d’avalanche strie . . . . . . . . . . . . .
.. Critère d’indépendance Bit . . . . . . . . . . . .
. Construion de fonions de hachage . . . . . . . . . . .
. MAC basée sur une fonion de hachage . . . . . . . . . .
. MAC basée sur un chiffre symétrique par bloc CBC-MAC
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
iv
TABLE DES MATIÈRES
.
.
.
.
.
.. Signatures avec appendices . . . . . . . . . . .
.. Signatures avec recouvrement . . . . . . . . . .
.. Signatures basées sur les certificats/sur l’identité .
.. Signature déterministe/probabiliste . . . . . . .
Attaques . . . . . . . . . . . . . . . . . . . . . . . . .
Déclinaisons . . . . . . . . . . . . . . . . . . . . . . .
Signature de Rabin . . . . . . . . . . . . . . . . . . . .
Digital Signature Standard et Digital Signature Algorithm
Schemas de signature basés sur RSA . . . . . . . . . . .
Bibliography
Responsable : Dr. BOUROUIS Abdelhabib
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.










Sécurité informatique — -
:::::::::::::::::::::::::::
iv
Table des figures
.
.
.
.
.
.
.
.
.
.
.
Catégories des attaques aives. . .
Intégrité. . . . . . . . . . . . . .
Contrôle d’accès. . . . . . . . . .
Taux de défaillance. . . . . . . .
Moyennes utilisées dans la SdF. .
MTBF et MTTR . . . . . . . .
Struures de fiabilité. . . . . . .
Struures de base en fiabilité. . .
Ciffrement et déchiffrement. . . .
Taxonomie des cryptosystèmes. .
Chiffrement en présence d’espion.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
La machine de Lorenz utilisée par les Allemands durant la Seconde Guerre mondiale..
Cryptographie symétrique (à clé secrète). . . . . . . . . . . . . . . . . . . . . .
Jules cesar  ou  juillet  av. J.-C. ou  av. J.-C. -  mars  av. J.-C. . . .
Table de Vigenere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Substitution homophonique Henri IV . . . . . . . . . . . . . . . . . . . . .
Scytale. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chiffre par flux synchrone et asynchrone. . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode ECB. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode ECB. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode CBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode CBC. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode PCBC. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode PCBC. . . . . . . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode CFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode CFB. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode CFB en générale. . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode CFB en générale. . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode OFB. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode OFB. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chiffrement en mode CTR. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Déchiffrement en mode CTR. . . . . . . . . . . . . . . . . . . . . . . . . . . .
CTS opérant sur un chiffrement en mode CBC. . . . . . . . . . . . . . . . . . .
Data Encryption Standard. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Schémas de Feistel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Permutation initiale (IP ) et finale (IP ´��1 ). . . . . . . . . . . . . . . . . . . .
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.




































vi
TABLE DES FIGURES
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
L0 et R0 dans la permutation initiale. . . . . . . . . . . . .
Expansion (E) et Permutation (P) au début de chaque ronde.
Tableaux pour la génération des clés de rondes. . . . . . . .
Tables de substitution S à S. . . . . . . . . . . . . . . . .
Tables de substitution S à S. . . . . . . . . . . . . . . . .
Schéma général du DES. . . . . . . . . . . . . . . . . . . .
Génération de sous clé DES. . . . . . . . . . . . . . . . . .
Décalage dans la création des sous-clés de DES. . . . . . . .
Triple DES. . . . . . . . . . . . . . . . . . . . . . . . . .
Données et clés AES (cas Nk = ). . . . . . . . . . . . . . .
Algorithm  - AES(St, K). . . . . . . . . . . . . . . . . . .
Algorithm  - Round(St, T). . . . . . . . . . . . . . . . . .
Algorithm  - FinalRound(St, T). . . . . . . . . . . . . . .
La procédure SubBytes. . . . . . . . . . . . . . . . . . . .
AES-S-Box. . . . . . . . . . . . . . . . . . . . . . . . . .
Transformation SubBytes. . . . . . . . . . . . . . . . . . .
TransformationShiftRows. . . . . . . . . . . . . . . . . . .
Transformation MixColums. . . . . . . . . . . . . . . . . .
Algorithm  - ExpandedKey(K,W) Cas . . . . . . . . . .
Algorithm  - ExpandedKey(K,W) Cas . . . . . . . . . .
S-Box inverse d’AES. . . . . . . . . . . . . . . . . . . . . .
1
Algorithm  - AES ��1 (St,K). . . . . . . . . . . . . . . . .
Algorithm  - InvRound(St, T). . . . . . . . . . . . . . . .
Algorithm  - InvFinalRound(St, T). . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
























.
.

.
.
Cryptographie asymétrique (à clé publique et privée). . . . . . . . . . . . . . . .
Pierre de Fermat - Première décennie du XVIIe siècle à Beaumont-de-Lomagne
(France) -  janvier  à Castres (France). . . . . . . . . . . . . . . . . . . . .
Leonhard Paul Euler -  avril  à Bâle (Suisse) -  septembre  (à  ans) à
Saint-Pétersbourg (Russie). . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ron Rivest, Adi Shamir et Len Adleman. . . . . . . . . . . . . . . . . . . . . .
Taher Elgamal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
Cryptographie quantique. . . . . . . . . . . . . . . .
Whitfield Diffie et Martin Hellman. . . . . . . . . . .
Déroulement de l’échange de clés Diffie-Hellman. . . .
Schéma général pour l’échange de clés Diffie-Hellman.
Exemple concret d’échange de clés Diffie-Hellman.. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.





.
.
.
.
.
.
.
.
.
Fonion de hachage appliquée à  entrées différentes.
Fonion de hachage itérative. . . . . . . . . . . . .
Schéma général d’une fonion de hachage. . . . . .
Effet avalanche. . . . . . . . . . . . . . . . . . . .
Schéma détaillé d’une fonion de hachage. . . . . .
Construion de fonions de hachage. . . . . . . . .
HMAC SHA-. . . . . . . . . . . . . . . . . . . .
Fonionnement de CBC-MAC. . . . . . . . . . . .
CBC-MAC avec chiffrement du dernier bloc. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.









.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.




vi
Liste des tableaux
.
.
.
.
.
Chiffrement de Vigenère de « texte secret » avec la clé « clef ». . .
Déchiffrement de Vigenère de « vpbygdihtpx » avec la clé « clef ».
i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Portfolio d’eStream . . . . . . . . . . . . . . . . . . . . .
Le portfolio eStream d’ECRYPT. . . . . . . . . . . . . . . . .
.
.
.
.
.





.
Etapes de calcul des coefficients de Bézout par l’algorithme d’Euclide étendu. . . .

vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
viii
Responsable : Dr. BOUROUIS Abdelhabib
LISTE DES TABLEAUX
Sécurité informatique — -
:::::::::::::::::::::::::::
viii
Liste des Algorithmes
.
.
.
.
E- Calcule une puissance modulaire. . . . . . . . . . . . .
E- Calcule une puissance modulaire. . . . . . . . . . . . . .
E-- Calcule une puissance modulaire de façon récursive. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EMR Calcule une puissance modulaire de façon récursive. . . . . . . . . .
ix




x
Responsable : Dr. BOUROUIS Abdelhabib
LISTE DES ALGORITHMES
Sécurité informatique — -
:::::::::::::::::::::::::::
x
Chapitre 
Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬
Sommaire
.
.
.
.
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
Sécurité informatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
L’architecture de sécurité OSI . . . . . . . . . . . . . . . . . . . . . . . . . . 
Les attaques de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Les menaces relevant de problèmes non spécifiques à l’informatique . . .

.. Les pannes et les erreurs (non intentionnelles) . . . . . . . . . . . . . .

.. Les menaces intentionnelles . . . . . . . . . . . . . . . . . . . . . . .

. Exemples d’attaques intentionnelles à caractère informatique . . . . . . . . . . 
. Attaques, servcices et mécanismes . . . . . . . . . . . . . . . . . . . . . . . . 
. Les services de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. Politique de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
. Les méthodologies de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Méthode M.A.R.I.O.N . . . . . . . . . . . . . . . . . . . . . . . . .

.. Méthode MEHARI . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Méthode M.E.L.I.S.A . . . . . . . . . . . . . . . . . . . . . . . . . . 
. Fiabilité des systèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. La struure série . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. La struure parallèle . . . . . . . . . . . . . . . . . . . . . . . . . . 
. Bases de la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Confusion et diffusion . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Déchiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Cryptosystème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
.. Classes d’attaques sur les primitives cryptographiques . . . . . . . . . . 
...
L’attaque à texte chiffré seul (ciphertext-only attack) . . . . . 
... L’attaque à texte clair connu (known-plaintext attack) . . . . 
... L’attaque à texte clair choisi (chosen-plaintext attack) . . . . . 
... L’attaque adaptative à texte clair choisi (adaptive chosen plaintext attack) . . . . . . . . . . . . . . . . . . . . . . . . . . 
... L’attaque à texte chiffré choisi (chosen ciphertext attack) . . . 
... L’attaque adaptative à texte chiffré choisi (adaptive chosen ciphertext attack) . . . . . . . . . . . . . . . . . . . . . . . . 

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

.
Introduction
L
es trois lois de la robotique d’Isaac Asimov :
. Un robot ne peut porter atteinte à un être humain ni en restant passif, laisser cet être humain
exposé au danger,
. Un robot doit obéir aux ordres donnés par des êtres humains sauf quand de tels ordres sont en
contradiion avec la première loi,
. Un robot doit protéger sa propre existence dans la mesure où une telle proteion ne s’oppose
pas à la première et seconde loi.
Un système d’information est une organisation d’aivités consistant à acquérir, stocker, transformer,
diffuser, exploiter, gérer … les informations. Un des moyens techniques pour faire fonionner un
système d’information est d’utiliser des systèmes informatiques qui sont devenus la cible de ceux qui
convoitent l’information. Assurer la sécurité de l’information implique ainsi d’assurer la sécurité des
systèmes informatiques.
L’évolution des risques est justifiée par la croissance de l’Internet, la croissance des attaques, les
failles des technologies, les failles des configurations, les failles des politiques de sécurité, le changement de profil des pirates et la complexité croissante qui entraine une plus grande vulnérabilité.
Souffrons-nous du complexe de Frankenstein ou faut-il craindre avec raison les effets pervers
d’une informatisation trop rapide de la société ?
.
Sécurité informatique
La sécurité informatique c’est l’ensemble des moyens techniques, organisationnels, juridiques et
humains mis en œuvre pour minimiser la vulnérabilité d’un système contre des menaces¹ accidentelles ou intentionnelles.
En anglais : deux termes différents :
— « Sécurité = Safety » qui signifie proteion de systèmes informatiques contre les accidents dus à
l’environnement, les défauts du système …etc. Par exemple les systèmes informatiques contrôlant des procédés temps réels et mettant en danger des vies humaines (transports, énergie, …)
— « Sécurité = Security » qui signifie proteion des systèmes informatiques contre des aions
malveillantes intentionnelles. Par exemple les systèmes informatiques réalisant des traitements
sensibles ou comprenant des données sensibles.
Ainsi la sécurité informatique concerne en français deux domaines :
. Les méthodes et moyens mis en œuvre pour éviter les défaillances « naturelles » dont les effets
ont un caraère catastrophique (safety).
. Les méthodes et moyens mis en œuvre pour se protéger contre les défaillances résultant d’une
aion intentionnelle (security).
. En anglais : threat.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. L’architeure de sécurité OSI
.

L’architecture de sécurité OSI
L’architeure de sécurité OSI ou « Security architeure for Open Systems Interconneion » décrite dans la recommandation X. du CCITT et le standard ISO -, définit les éléments
d’architeure relatifs à la sécurité convenant à une application lorsqu’il faut assurer une proteion
de sécurité dans un environnement de systèmes ouverts.
.
Les attaques de sécurité
Les menaces sont l’ensemble des aions de l’environnement d’un système pouvant entrainer des
pertes financières et coûts humains. Nous pouvons citer :
..
Les menaces relevant de problèmes non spécifiques à l’informatique
. Risques matériels accidentels : pour ceci, les techniques de proteion sont assez bien maitrisées (Incendie, explosion, inondation, tempête, foudre).
. Vol et sabotage de matériels : Vol d’équipements matériels, destruion d’équipements, destruion de supports de sauvegarde.
. Autres risques : Tout ce qui peut entrainer des pertes financières dans une société. Pertes plutôt
associées à l’organisation, à la gestion des personnels (Départ de personnels stratégiques, grèves,
…etc).
..
Les pannes et les erreurs (non intentionnelles)
. Pannes/dysfonionnements du matériel.
. Pannes/dysfonionnements du logiciel de base.
. Erreurs d’exploitation (oubli de sauvegarde, écrasement de fichiers).
. Erreurs de manipulation des informations (erreur de saisie, erreur de transmission, erreur d’utilisation, …)
. Erreurs de conception des applications.
. Erreurs d’implantation.
Tout ce qui précède est rangé dans la case Accident. Le reste est une Malveillance.
..
Les menaces intentionnelles
Qui sont l’ensemble des aions malveillantes (qui constituent la plus grosse partie du risque) qui
devraient être l’objet principal des mesures de proteion. Parmi les objeifs des attaques :
— Désinformer
— Empêcher l’accès à une ressource
— Prendre le contrôle d’une ressource
— Récupérer de l’information présente sur le système
— Utiliser le système compromis pour rebondir
— Constituer un réseau de « botnet » (ou réseau de machines zombies).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

F . – Catégories des attaques aives.
Une menace intentionnelle est dite attaque.
Proportions des menaces : Aions malveillantes % (en croissance), Risques accidentels %,
Pannes et erreurs %, Autres %.
Deux types d’attaque peuvent être distingués :
. Attaques passives : copie illicite de données. (capture, écoute, …)
— Détournement des données (l’écoute, les indiscrétions). Exemples : espionnage industriel,
espionnage commercial, violations déontologiques.
— Détournement des logiciels. Exemple : copies illicites.
. Attaques aives : modification/suppression illicite de données.
— Modifications des informations. Exemple : la fraude financière informatique.
— Le sabotage des informations (logique).
— Modification des logiciels. Exemples : Bombes logiques, virus, ver.
Les menaces aives appartiennent principalement à quatre catégories (illustrées dans la figure ??) :
. 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.
Il est possible de préciser la notion de risque en la décrivant comme le produit d’un préjudice par
une probabilité d’occurrence :
risque = préjudice ˆ d’occurrence probabilité.
Cette formule exprime qu’un évènement dont la probabilité est assez élevée, par exemple la défaillance d’un disque dur, mais dont il est possible de prévenir le préjudice qu’il peut causer, par des
sauvegardes régulières, représente un risque acceptable ; il en va de même pour un évènement à la
gravité imparable, comme l’impa d’un météorite de grande taille, mais à la probabilité d’occurrence
faible.
Il va de soi que, dans le premier cas, le risque ne devient acceptable que si les mesures de prévention
contre le préjudice sont effeives et efficaces : cela irait sans dire, si l’oubli de cette condition n’était
très fréquent.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Exemples d’attaques intentionnelles à caraère informatique
.

Exemples d’attaques intentionnelles à caractère informatique
. D : Pour rentrer dans un système on essaye de piéger des usagers et de se faire
prendre pour quelqu’un d’autre. Exemple : simulation d’interface système sur écran ou simulation de terminal à carte bancaire.
. R (« R ») : Espionnage d’une interface, d’une voie de communication (téléphonique, réseau local) pour capter des opérations (même cryptées elles peuvent être utilisables).
Répétition de l’opération pour obtenir une fraude. Exemple : Plusieurs fois la même opération
de créditer un compte bancaire.
. A   : On observe le trafic de messages échangés pour en déduire des informations sur les décisions de quelqu’un.
Exemples : Bourse : augmentation des transaions sur une place financière. Militaire : le début
de concentration entraine un accroissement de trafic important.
. I : On obtient des informations confidentielles non divulguables à partir d’un faisceau de questions autorisées (et d’un raisonnement visant à faire ressortir l’information). Exemple :
Soit le fichier d’un hôpital, la loi informatique et liberté interdit la divulgation d’informations
personnelles (sur les maladies), mais autorise des opérations statistiques (améliorer les connaissances épidémiologiques), donc pas de possibilité de séleion sur le nom, le numéro de sécurité
sociale, l’adresse, …etc. Mais questions à caraère statistiques autorisées. Pour obtenir des informations confidentielles poser des questions à caraère statistique comportant un faisceau
de contraintes permettant en fait de filtrer une seule personne comme question sur les effeifs
(sexe = masculin, age = , arrêt maladie, …).
. R : Un usager d’un service (informatique) affirme n’avoir pas : émis un ordre qui
le gêne a postériori (commande, virement, …) reçu un ordre (idem).Une menace répudiation
implique le traitement d’une transaion de telle façon qu’aucune preuve des entités de sécurité
impliquées ne subsiste à la transaion. Dans une application Web, cela peut se traduire par
l’usurpation des informations d’identification d’un utilisateur innocent.
. M      : Une personne non autorisée, un usager ou
même un agent autorisé s’attribuent des avantages illicites en modifiant un ?chier, un message (le plus souvent cette modification est réalisée par programme et entre dans la catégorie
suivante).
. M   : Les modifications à caraère frauduleuses : Pour s’attribuer
par programme des avantages. Par exemple :
— virement des centimes sur un compte.
— Les modifications à caraère de sabotage : Pour détruire avec plus ou moins de motivations
des systèmes ou des données.
Deux types de modifications :
(a) Infeions informatiques à caraère unique : Bombe logique ou cheval de Troie. Dans un
programme normal on introduit un comportement illicite mis en aion par une condition de déclenchement ou trappe (la condition, le moment ou l’on bascule d’un comportement normal à un comportement anormal). Par exemple : licenciement de l’auteur du
programme date quelconque.
(b) Infeions auto reprodurices : Il s’agit d’une infeion informatique simple (du type précédent) qui contient de plus une partie de recopie d’elle même afin d’en assurer la propagation. Virus : à aion brutale. Ver : à aion lente (détruisant progressivement les ressources
d’un systèmes).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

.
Attaques, servcices et mécanismes
Pour considérer efficacement les besoins de sécurité d’une organisation et évaluer et choisir les
nombreux produits et politiques de sécurité, le responsable de la sécurité a besoin de moyens systématiques de définition des exigences de sécurité et de caraérisation des approches qui satisfont ces
exigences. Une approche possible est de considérer trois aspes de la sécurité de l’information :
. Services de sécurité : un service qui améliore la sécurité des systèmes informatiques et des
transferts d’information d’une organisation. Les services sont conçus pour contrer les attaques
de sécurité, et ils utilisent un ou plusieurs mécanismes de sécurité.
On peut penser aux services de sécurité de l’information par analogie avec les types de fonctions associées aux documents physiques. La plupart des aivité humaines, dans des domaines
aussi divers que le commerce, la politique étrangère, les aions militaires, dépendent de l’utilisation de documents et de la confiance des deux partis en l’intégrité de ces documents. Les
documents portent signatures et dates ; ils peuvent nécessiter une proteion contre la divulgation, la falsification ou la destruion ; être attestés, enregistrés, etc. Ã� mesure que les systèmes
d’information deviennent plus diffus et essentiels à la conduite des affaires humaines, l’information éleronique prend en charge bien des rôles traditionnellement dévolus aux documents
papier. En conséquence, les fonions associées aux documents papier doivent être accomplies
sur des documents au format dématérialisé.
Plusieurs aspes propres aux documents éleroniques font qu’assurer ces fonions ou services
est un défi :
— il est habituellement possible de distinguer entre un document papier original et sa photocopie. Cependant, un document éleronique est purement une séquence de bits ; il n’y
a pas de différence entre « l’original » et toutes ses copies ;
— une altération d’un document papier peut laisser des preuves physiques. Par exemple, un
effacement peut laisser une tache ou une surface rugueuse. L’altération de bits dans une
mémoire d’ordinateur ou un signal ne laisse à priori aucune trace ;
— tout processus de « preuve » associé à un document physique dépend des caraéristiques
physiques du document (par exemple, la forme d’une signature manuelle ou un tampon de
notaire). De telles preuves d’authenticité d’un document éleronique doivent être basées
sur des signes présents dans l’information elle-même.
. Mécanismes de sécurité : un mécanisme est conçu pour déteer, prévenir ou rattraper une
attaque de sécurité.
Un seul mécanisme ne peut fournir tous les services de sécurité. On peut noter qu’un élément
particulier sous-tend la plupart des mécanismes de sécurité en usage : les techniques cryptographiques.
Le chiffrement - ou des transformations similaires - de l’information est le moyen le plus
courant pour fournir une sécurité. Ainsi, dans ce cours on insistera sur le développement,
l’utilisation et la gestion de ces techniques.
. Attaque de sécurité : une aion qui compromet la sécurité de l’information possédée par une
organisation.
La sécurité de l’information traite de la prévention de la fraude, ou, à défaut, de sa détection dans des systèmes d’information à l’intérieur desquels l’information elle-même n’a pas
d’existence physique significative. On verra dans les transparents suivants une liste d’exemples
évidents de tricherie, qui se sont produits dans des cas réels. Ce sont des exemples d’attaques
spécifiques qu’une organisation ou un individu peut avoir à affronter. La nature de l’attaque
varie considérablement selon les circonstances.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Les services de sécurité

Heureusement, il est possible d’approcher le problème en examinant les types génériques d’attaques pouvant être rencontrées. Ce sera le sujet de la prochaine seion.
.
Les services de sécurité
Ce sont les services de base (objeifs de base) qu’on veut assurer ou enjeux de la sécurité des
systèmes d’information devant être maitrisés.
Cinq principaux services à garantir :
. A : consistant à s’assurer que seules les personnes autorisées aient accès aux
ressources. Pouvoir s’assurer de l’identité². L’authentification consiste à s’assurer de l’identité
d’un utilisateur, c’est-à-dire de garantir à chacun des correspondants que son partenaire est bien
celui qu’il croit être. Un contrôle d’accès peut permettre (par exemple par le moyen d’un mot
de passe qui devra être crypté) l’accès à des ressources uniquement aux personnes autorisées.³
. I : garantie que l’information n’est pas altérée. Voir la figure ..
. C : garantie que l’information n’est pas divulguée à des tiers non autorisés
(frauduleusement ou non). Les personnes autorisées ont accès aux éléments considérés. La
confidentialité consiste à rendre l’information inintelligible à d’autres personnes que les seuls
aeurs de la transaion.
. D : garantie de la continuité du service. Les éléments considérés sont accessibles
au moment voulu par les personnes autorisées.
. N-/ : permettant de garantir qu’une transaion effeuée ne peut
être niée ni et si elle n’a pas eu lieu.
Le contrôle d’accès consiste à vérifier si une entité (une personne, un ordinateur, …) demandant
d’accéder à une ressource a les droits nécessaires pour le faire.
Un contrôle d’accès offre ainsi la possibilité d’accéder à des ressources physiques (par exemple un
bâtiment, un local, un pays) ou logiques (par exemple un système d’exploitation ou une application
informatique spécifique).
Parfois dans la littérature du domaine, on considère un autre service de base qui est le contrôle
d’accès. A notre avis, il ne s’agit pas d’un service de base. Il est lié étroitement à l’authentification et
comprend généralement  composantes :
. Un mécanisme d’authentification de l’entité (par mot de passe, carte à puce, une clé, un élément biométrique, …etc.).
. Un mécanisme d’autorisation (ou d’habilitation) après vérification que l’aion demandée est
autorisée (à ce moment). L’habilitation peut avoir une durée limitée !.
. Un mécanisme de traçabilité(respe d’une procédure, heures ouvrées, …etc.). Possibilité de
pouvoir retrouver a posteriori le responsable d’une aion.
Aujourd’hui, les entreprises sont de plus en plus amenées à tracer leurs accès informatique à l’aide
d’un « Reporting des Droits d’Accès ».
. s’identifier, c’est communiquer son identité, s’authentifier, c’est apporter la preuve de son identité
. L’identification des utilisateurs est fondamentale pour gérer les accès aux espaces de travail pertinents et maintenir
la confiance dans les relations d’échange.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

F . – Intégrité.
F . – Contrôle d’accès.
.
Politique de sécurité
Une politique de sécurité des systèmes d’information (PSSI) est un ensemble de règles qui fixent
les aions autorisées et interdites dans le domaine de la sécurité. C’est un plan d’aions définies
(ensemble des modèles d’organisation, des procédures et des bonnes pratiques techniques) permettant d’assurer la sécurité du système d’information (maintenir un certain niveau de sécurité) et ne
se limite pas à la sécurité informatique. Elle constitue alors le principal document de référence et
un outil de communication sur l’organisation et les responsabilités SSI, les risques SSI et les moyens
disponibles pour s’en prémunir.
Pour garantir la sécurité, une PSSI est souvent élaborée autour de  axes majeurs : la sécurité
physique des installations, la sécurité logique du système d’information et la sensibilisation des utilisateurs aux contraintes de sécurité.
L’audit de sécurité est essentiel dans la SSI. Il permet de mettre en évidence les faiblesses de la
mise en œuvre d’une politique de sécurité qui peuvent venir de la politique elle-même si elle est mal
conçue ou inadaptée aux besoins de l’entreprise, ou bien d’erreurs quand à sa mise en application.
Des audits sont nécessaires suite à la mise en place initiale d’une PSSI, puis périodiquement pour
s’assurer que les mesures de sécurité sont mises à niveau et que les usages restent conformes aux
procédures.
L’établissement de la PSSI passe généralement par les étapes suivantes :
. Identification des vulnérabilités
— En mode fonionnement normal (définir tous les points faibles)
— En cas d’apparition de défaillances, un système fragilisé est en général vulnérable : c’est
dans un de ces moments intermédiaires qu’une intrusion peut le plus facilement réussir.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Les méthodologies de sécurité
.
.
.
.
.

évaluation des probabilités associées à chacune des menaces.
évaluation du coût d’une intrusion réussie.
Choix des contre mesures.
évaluation des coûts des contre mesure.
Décision.
L’établissement de la PSSI est souvent réalisé utilisant une démarche claire. Une méthodologie
présente, de façon détaillée la conduite de projet d’élaboration d’une PSSI.
.
Les méthodologies de sécurité
Réalisées par des grands utilisateurs de techniques de sécurité ou des groupes de travail elles sont
applicables par des prestataires de service sous forme d’audit de sécurité, d’analyse de risques et de
propositions d’aions pour améliorer la situation.
Diverses méthodes d’analyse des risques existent, certaines simples d’utilisation, avec parfois des
outils logiciels en simplifiant l’utilisation. D’autres méthodes sont réservées à des grands comptes du
fait de leur complexité et des ressources humaines impliquées. Quelques unes sont devenu standards
de fait dans certaines entreprises et organisations. Il est convenable de faire un choix judicieux de la
méthode qui s’applique le mieux à l’entreprise ou organisme public visé.
Les critères qui guident le choix sont variés et peuvent inclure :
. l’existence d’outils logiciels en facilitant l’utilisation, la qualité de la documentation et l’existence d’un club d’utilisateurs afin d’avoir un retour d’expériences.
. l’origine géographique de la méthode, la culture du pays jouant beaucoup sur le fonionnement interne des entreprises et leur rapport au risque.
. la langue de la méthode, il est essentiel de maitriser le vocabulaire employé.
. la facilité d’utilisation et le pragmatisme de la méthode.
. la compatibilité avec une norme nationale ou internationale.
. le coût de la mise en œuvre.
. la taille de l’entreprise à laquelle elle est adaptée.
. la quantité de moyens humains qu’elle implique et la durée de mobilisation.
. le support de la méthode par son auteur, une méthode abandonnée n’offre plus la possibilité
de conseil et de support de la part son éditeur.
. sa popularité, une méthode très connue offre un réservoir de personnels qualifiés pour la mettre
en œuvre.
..
Méthode M.A.R.I.O.N
Méthode d’Analyse des Risques Informatiques et Optimisation par Niveau. (à partir de ).
CLUSIF : Club des Utilisateurs de La Sécurité Informatique Français.
APSAD : Assemblée Plénière des Sociétés d’Assurances Dommages.
Objeif : Mettre en place le schéma direeur de la sécurité des systèmes d’information SDSSI.
Trois approches selon le sujet traité :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

. Marion-AP (avant-projet) (Applicable aux grands comptes et aux compagnies d’assurance).
. Marion-PME.
. Marion-RSX (Applicable aux réseaux).
Les six étapes d’élaboration du Schéma Direeur de Sécurité du Système d’Information :
. Analyse des risques : établissement de scénarios des risques courus par l’entreprise.
. Expression du risque maximum admissible : calcul de la perte maximale subie par l’entreprise
face à des évènements mettant sa survie en péril.
. Analyse des moyens de la sécurité existants : identifier et qualifier les moyens de la sécurité
(organisation générale, physique et logique)
. Évaluation des contraintes techniques et financières : recensement des contraintes générales,
techniques, humaines et détermination d’un budget pour la prévention et la proteion.
. Choix des moyens de sécurité : moyens à mettre en œuvre ou à améliorer pour supprimer les
risques en fonion des contraintes et du coût parade/risque
. Plan d’orientation : phase de bilan définissant le plan technique détaillé et rédaion finale du
SDSSI.
La méthode MARION n’a plus évolué depuis  (devenue obsolète). Le CLUSIF propose désormais une méthode harmonisée d’analyse des risques (Méhari).
..
Méthode MEHARI
La méthode harmonisée d’analyse des risques (MEHARI) est une méthode visant à la sécurisation informatique d’une entreprise ou d’un organisme. Elle a été développée et est proposée par le
CLUSIF et a rendu la méthode précédente (MARION) obsolète.
Le CLUSIF a présenté le  janvier  une nouvelle version de sa méthode MEHARI.
..
Méthode M.E.L.I.S.A
Délégation générale à l’armement .
. MELISA S - Confidentialité des données sensibles
. MELISA P - Pérennité de fonionnement du système
. MELISA M - Sécurité micro mini informatique
. MELISA. R - Sécurité réseau
Plusieurs autres méthodes d’analyse de risques existent comme EBIOS⁴, OCTAVE⁵ et il n’est
pas possible de donner ici une liste exhaustive.
.
Fiabilité des systèmes
La disponibilité du système désigne son aptitude à délivrer le service, alors que sa fiabilité désigne
son aptitude à ne pas l’interrompre. Une défaillance survient lorsque le service délivré diffère du
. EBIOS
. OCTAVE
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Fiabilité des systèmes

service demandé. Dans certains cas, notre système « refuse » d’assurer son service, dans d’autres,
généralement plus graves, il « décide » de faire autre chose que le service demandé.
La sûreté de fonionnement (SdF)⁶ est l’aptitude à éviter l’apparition de défaillances et à minimiser
leurs effets lorsqu’elles se sont produites. La sûreté comprend quatre composantes qui sont la fiabilité,
la maintenabilité, la disponibilité et la sécurité. On trouvera aussi l’acronyme FMDS pour désigner
la sûreté de fonionnement (comme fiabilité, maintenabilité, disponibilité et sécurité) ou le terme
anglais de RAMS (pour reliability, availability, maintainability and safety) …
. La fiabilité d’un système est la probabilité pour que le système fonionne correement pendant une durée donnée dans des conditions définies. R(t) = P [S non défaillant sur (0, t)]
. La disponibilité est l’aptitude d’un système à être opérationnel au moment où il est sollicité,
c’est la probabilité que le système soit disponible à un instant donné. D(t) = P [S non défaillant à l’instant t]
. La maintenabilité d’un système est la probabilité de retour à un bon fonionnement dans une
durée de temps donnée. Les différentes pannes pouvant être cataleiques⁷ (l’élément fonctionne ou ne fonionne pas), ou aléatoires (défaillance statistiquement indépendante d’une
précédente, la panne d’un élément n’affee pas les autres). M (t) = P [S est réparé sur (0, t)]
. La sécurité est l’aptitude d’un système à ne pas connaitre de pannes considérées comme catastrophiques pendant une durée donnée.
F . – Taux de défaillance.
F . – Moyennes utilisées dans la SdF.
Le comportement d’un système peut être décrit dans le temps comme une suite d’états de bon et
de mauvais fonionnement.
. Terme anglais : « Dependability »
. Défaillance cataleique : Défaillance qui est à la fois soudaine et complète (Norme CEI--).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

F . – MTBF et MTTR
On appelle MTTR, (Mean Time To Repair, temps moyen de toute réparation), le temps nécessaire à la remise en état du système et MTBF (Mean Time Between Failure, temps moyen de bon
fonionnement) le temps moyen entre deux pannes successives ou durée moyenne entre deux défaillances consécutives d’un équipement réparé.
MTTF : Durée moyenne de fonionnement d’une entité avant la première défaillance (anglais :
Mean Time To Failure). Taux de défaillance : λ = M T1T F
Si M T T R ! M T T F alors M T T F « M T BF alors λ =
Taux de réparation : µ =
1
M T BF
1
MT T R
MUT : Durée moyenne de fonionnement après réparation (anglais Mean Up Time)
MDT : Durée moyenne d’indisponibilité après défaillance (anglais Mean Down Time)
M T BF = M DT + M U T
La disponibilité (Avaibility) est définie comme étant le rapport :
A=
M T BF
M T BF + M T T R
et l’indisponibilité comme en étant le complément (le matériel est indisponible lorsqu’il n’est plus
disponible) :
MT T R
I =1´A=
M T BF + M T T R
avec :
MT T R
I
=
A
M T BF
Pour rendre un système plus efficace, on peut jouer sur  valeurs : augmenter la MTBF, les composants réseaux seront alors plus onéreux ou diminuer les temps d’indisponibilité et c’est la maintenance qui devient plus coûteuse.
Selon les relations existantes entre les différents composants du système (Figure .), la résistance
à la défaillance sera plus ou moins grande. Généralement, on distingue quatre struures de base :
. la struure série sans redondance : dans un tel système lorsque l’un des composants tombe en
panne, l’ensemble du système est indisponible ;
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Fiabilité des systèmes

. la struure avec duplication de systèmes : dans une telle organisation, la panne d’un seul
composant n’affee pas le fonionnement global du système ;
. la struure avec duplication de toutes les unités : ici la panne de plusieurs composants ne rend
pas le système indisponible ;
. enfin, la struure avec duplication partielle : compte tenu des coûts engendrés par la duplication totale, seuls sont dupliqués, ici, les systèmes les plus sensibles.
F . – Struures de fiabilité.
La mesure de la disponibilité globale d’un système dépend de sa struure. Deux struures élémentaires sont à la base de tout système : la struure série et la struure parallèle (Figure .).
..
La structure série
La disponibilité résultante est plus petite que celle du composant le plus faible :
Atotale =
i=n
ź
Ai
i=1
F . – Struures de base en fiabilité.
L’indisponibilité est alors :
Itotale = 1 ´ Atotale = 1 ´
i=n
ź
i=n
ź
Ai = 1 ´ (1 ´ Ii )
i=1
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::
i=1

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

Si A « 1, c’est-à-dire que I est très petit on peut écrire :
Itotale =
i=n
ÿ
Ii
i=1
On montrerait aussi que :
M T BFs = ři=n
1
1
i=1 M T BFi
..
La structure parallèle
L’indisponibilité du système est plus petite que celle du composant qui a la plus faible indisponibilité :
Itotale =
i=n
ź
Ii
i=1
La disponibilité est alors :
Atotale = 1 ´ Itotale = 1 ´
i=n
ź
Ii = 1 ´
i=1
i=n
ź
(1 ´ Ai )
i=1
De même, on montre que :
M T T Rp = ři=n
1
1
i=1 M T T Ri
.
Bases de la cryptographie
L
a cryptologie, étymologiquement la science du secret, ne peut être vraiment considérée comme
une science que depuis peu de temps. Cette science englobe la cryptographie qui signifie
l’écriture secrète et la cryptanalyse qui est l’analyse de cette dernière.
La cryptologie est un art ancien et une science nouvelle : un art ancien car Jules César l’utilisait déjà ;
une science nouvelle parce que ce n’est un thème de recherche scientifique académique (comprendre
universitaire) que depuis les années . Cette discipline est liée à beaucoup d’autres, par exemple
l’arithmétique modulaire, l’algèbre, la complexité, la théorie de l’information, ou encore les codes
correeurs d’erreurs.
..
Terminologie
. Chiffrement (‫ )ﺘﺸﻔﻴﺭ‬: transformation (syntaxique) à l’aide d’une clé de chiffrement d’un message intelligible appelé texte clair (‫ )ﻨﺹ ﻭﺍﻀﺢ‬ou libellé en un message incompréhensible ou
inintelligible appelé texte chiffré ou cryptogramme si on ne dispose pas d’une clé de déchiffrement (en anglais encryption) ; En cryptographie, le chiffrement, parfois appelé à tort cryptage.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Bases de la cryptographie

. Chiffre (‫ )ﺸﻔﺭﺓ ﺃﻭ ﺸﻴﻔﺭﺓ‬: anciennement code secret, par extension l’algorithme utilisé pour le
chiffrement ;
. Cryptogramme (‫ )ﻨﺹ ﻤﺸﻔﺭ‬: message chiffré ; Le destinataire légitime doit pouvoir déchiffrer
le cryptogramme et obtenir le texte clair.
. Décrypter (‫ )ﻜﺴﺭ ﺍﻟﺸﻔﺭﺓ‬: retrouver le message clair correspondant à un message chiffré sans
posséder la clé de déchiffrement (terme que ne possèdent pas les anglophones, qui eux « cassent
» des codes secrets), ceci est effeué par un espion (cryptanaliseur, décrypteur ou oreille indiscrète) ⁸ ;
. Cryptographie (‫ )ﻋﻠﻡ ﺍﻟﺘﺸﻔﻴﺭ ﺃﻭ ﺍﻟﺘﻌﻤﻴﺔ‬: étymologiquement « écriture secrète », devenue par
extension l’étude de cet art (donc aujourd’hui la science visant à créer des cryptogrammes,
c’est-à-dire à chiffrer) ;
. Cryptanalyse (‫ )ﻋﻠﻡ ﺘﺤﻠﻴل ﺍﻟﺘﺸﻔﻴﺭ‬: science analysant les cryptogrammes en vue de les décrypter ;
. Cryptosystème (‫ )ﻨﻅﺎﻡ ﺍﻟﺘﻌﻤﻴﺔ‬: un ensemble composé d’algorithmes cryptographiques et de
tous les textes en clairs, textes chiffrés et clés possibles
. Cryptologie : science regroupant la cryptographie et la cryptanalyse.
Le fait de coder un message de telle façon à le rendre secret s’appelle chiffrement. La méthode
inverse, consistant à retrouver le message original, est appelée déchiffrement.
F . – Ciffrement et déchiffrement.
Le chiffrement se fait généralement à l’aide d’une clé de chiffrement, le déchiffrement nécessite
quant à lui une clé de déchiffrement. On distingue généralement deux types de clés :
— Les clés symétriques : il s’agit de clés utilisées pour le chiffrement ainsi que pour le déchiffrement. On parle alors de chiffrement symétrique ou de chiffrement à clé secrète.
— Les clés asymétriques : il s’agit de clés utilisées dans le cas du chiffrement asymétrique (aussi appelé chiffrement à clé publique). Dans ce cas, une clé différente est utilisée pour le chiffrement
et pour le déchiffrement.
On appelle décryptement (le terme de décryptage peut éventuellement être utilisé également) le
fait d’essayer de déchiffrer illégitimement le message (que la clé de déchiffrement soit connue ou
non de l’attaquant).
Lorsque la clé de déchiffrement n’est pas connue de l’attaquant on parle alors de cryptanalyse ou
cryptoanalyse ⁹. La cryptologie est la science qui étudie les aspes scientifiques de ces techniques et
elle englobe la cryptographie et la cryptanalyse.
Le but d’un système cryptographique (aussi appelé cryptosystème) est de chiffrer un message intelligible en un texte chiffré incompréhensible et de déchiffrer le cryptogramme et obtenir le texte clair.
Cependant, un espion ne doit pas être en mesure de décrypter (ou cryptanalyser) le texte chiffré.
Il existe plusieurs types de cryptosystèmes. Le classement suivant nous servira tout au long de notre
étude.
. Il ne faut donc pas confondre déchiffrement (opération effeuée par le destinataire légitime) et décryptement
(opération que l’espion tente d’effeuer).
. On entend souvent aussi le terme plus familier de cassage
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

. Les cryptosystèmes à usage restreint.
. Les cryptosystèmes à usage général.
(a) A clé secrète (aussi appelés symétriques).
(b) A clé publique (aussi appelés asymétriques).
(c) Par échange quantique.
Un système cryptographique est dit à usage restreint si sa sécurité repose sur la confidentialité des
opérations de chiffrement et de déchiffrement. Le plus simple des systèmes historiques de ce genre
est le procédé dit de Jules César.
Il consiste simplement à remplacer chaque lettre du texte clair par celle qui la suit trois lettres plus
loin dans l’alphabet (en revenant au début si nécessaire, c’est-à-dire que x, y et z sont chiffrés par
a, b et c, respeivement). Ainsi, le mot bonjour devient erqmrxu. Les systèmes à usage restreint
sont souvent conçus par des amateurs et sont presque toujours un jeu d’enfant pour les cryptanalystes professionnels. Encore plus important, ces systèmes ne sont d’aucune valeur dans le contexte
contemporain de communications entre un grand nombre d’utilisateurs.
Un système cryptographique est dit à usage général si sa sécurité ne repose pas sur le secret des
opérations de chiffrement et de déchiffrement mais plutôt sur une information appelée la clé, laquelle est souvent relativement courte. Les individus qui utilisent de tels systèmes doivent pouvoir
facilement générer leurs propres clés sans avoir recours au concepteur du système de telle sorte que
celui-ci ne jouisse d’aucun avantage particulier s’il décide de passer au camp des cryptanalystes.
F . – Taxonomie des cryptosystèmes.
..
Confusion et diffusion
En cryptologie, confusion et diffusion sont deux propriétés dans une méthode de chiffrement qui
ont été identifiées par C S dans son document « Communication eory of Secrecy
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Bases de la cryptographie

Systems » publié en  ¹⁰.
D’après la définition originale de S, la confusion correspond à une volonté de rendre la relation entre la clé de chiffrement et le texte chiffré la plus complexe possible. Les struures algébriques
et statistiques doivent être cachées.
La diffusion est une propriété où la redondance statistique dans un texte en clair est dissipée dans
les statistiques du texte chiffré. En d’autres termes, un biais en entrée ne doit pas se retrouver en
sortie et les statistiques de la sortie doivent donner le moins possible d’informations sur l’entrée.
Des relations entre les bits en entrée et en sortie pourraient être utiles pour le cryptanalyste. Ce
concept est lié à la notion plus moderne d’effet avalanche. Dans un chiffrement avec une bonne
diffusion, l’inversion d’un seul bit en entrée doit changer chaque bit en sortie avec une probabilité
de . (critère d’avalanche stri voir ...).
Pour introduire la confusion, la substitution (remplacer un symbole du texte clair par un autre) fut
une première approche. Pour les chiffrements modernes, des boîtes S (S-Box) sont utilisée à cet effet .
Pour la diffusion, elle est augmenté par la permutation/transposition. Les chiffrements utilisent pour
cela des boîtes T (T-Box). D’autres mécanismes peuvent être déployés, comme des transformations
linéaires (par exemple dans Rijndael).
On appelle chiffrement produit un chiffrement par blocs qui combine plusieurs transformations
élémentaires (substitutions, transpositions, opérations linéaires ou arithmétiques) pour garantir à la
fois la diffusion et la confusion.
..
Chiffrement
Bob, doit transmettre à Alice, un message M P Messages-a-Envoyer. M est dit « en clair ». Estelle,
une espionne, écoute la voie de communication pour connaître M . Bob, construit un texte chiffré
C P Messages-Chiffrés. C = Ek (M ) ou C = MEk .
La fonion Ek dépend d’un paramètre k appelé clé de chiffrement. Le chiffrement est donc une
transformation d’un texte pour en cacher le sens. La possibilité de chiffrer repose donc sur la connaissance de l’algorithme de chiffrement E et de la clé k de chiffrement.
F . – Chiffrement en présence d’espion.
..
Déchiffrement
Le déchiffrement est l’opération inverse permettant de récupérer le texte en clair à partir du texte
C chiffré. Il repose sur la fonion DK de Messages-Chiffrés dans Messages-à-Envoyer telle que M =
DK (C) ou C = MDK
On doit avoir DK (Ek (M )) = M . DK est donc une fonion inverse à gauche de Ek .
. « Communication theory of secrecy systems », Bell System Technical Journal, vol. , n., p. -, 
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

Pour un couple cr = (E, D) donné de famille de fonion de chiffrement et de déchiffrement,
l’ensemble des couples (k, K) vérifiant cette propriété est noté CLE(cr).
..
Cryptosystème
Pour que les opérations précédentes assurent la confidentialité du transfert entre Alice et Bob, il
est nécessaire qu’au moins une partie des informations E, D, k, K soit ignorée du reste du monde.
Décrypter ou casser un code c’est parvenir au texte en clair sans posséder au départ ces informations
secrètes. C’est l’opération que doit réaliser Estelle pour retrouver M .
L’art de définir des codes est la cryptographie.
Un spécialiste en cryptographie est appelé cryptographe.
L’art de casser des codes est appelé cryptanalyse. Un spécialiste en cryptanalyse est appelé cryptanalyste.
Un cryptosystème est l’ensemble des deux méthodes de chiffrement et de déchiffrement ainsi
que les clés, les textes en clair et les textes chiffrés possibles.
Un système de chiffrement est dit inconditionnellement sûr si un attaquant est incapable de
le casser même en disposant d’une capacité infinie de calcul.
On ne peut pas faire mieux en terme de sécurité !. Claude Shanon a prouvé l’existence de tel
système. A savoir le masque jetable utilisant un générateur de nombres aléatoires pour la clé est
inconditionnellement sûr.
Un système de chiffrement est dit à sécurité prouvée si on peut démontrer que sa sécurité est
équivalente à la résolution d’un problème réputé difficile.
Il s’agit par exemple de démontrer la relation suivante : un système donné est sûr si un entier
donnée n ne peut être faorisé.
Ce modèle est très employé en cryptographie asymétrique.
Un système de chiffrement est dit sûr au sens de la théorie de la complexité si le meilleur
algorithme pour le casser nécessite n opérations avec n un nombre suffisamment grand pour
que l’algorithme ne puisse être exécuté.
Il n’existe aucun algorithme de chiffrement satisfaisant le critère de sécurité dans le modèle calculatoire. Ce modèle est pourtant le plus employé en cryptographie symétrique. En pratique, on déclare
un système de chiffrement sûr s’il résiste à l’état de l’art de la cryptanalyse (recherche exhaustive,
cryptanalyse linéaire …).
Un système de chiffrement assure une confidentialité parfaite si P r[x|y] = P r[x] pour tout
x P Messages-à-Envoyer et y P Messages-Chiffrés, c’est à dire si la probabilité a postériori que
le texte clair soit x étant donné le texte chiffré y, est identique à la probabilité à priori que le
texte soit x.
Le chiffrement par décalage est un système de chiffrement à confidentialité parfaite.
Si (Messages-à-Envoyer, Message-Chiifrés, K) caraérise un système de chiffrement tel que
|Messages-à-Envoyer| = |Messages-Chiffrés| = |K|, alors ce système assure une sécurité parfaite
1
et pour chaque x P
si et seulement si chaque clé est utilisée avec la même probabilité |K|
Messages-à-Envoyer et y P Messages-à-Envoyer, il existe une clé k unique tel que Ek (x) = y.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Bases de la cryptographie

Le surchiffrement est un procédé cryptographique qui consiste à chiffrer, avec d’autres algorithmes et des clés différentes, des données qui avaient déjà été chiffrées. On peut le faire autant
de fois que nécessaire mais cela implique nécessairement des performances amoindries.
Cette méthode permet normalement de s’assurer qu’en cas de vulnérabilité d’un des systèmes utilisés, les autres pourront prendre le relais et assurer encore une forte proteion. Il permet aussi de
cacher certaines propriétés statistiques dans les cas où des chiffrements faibles seraient utilisés.
..
Classes d’attaques sur les primitives cryptographiques
Il y a  niveaux d’attaques dont on peut faire l’hypothèse qu’un adversaire peut effeuer. On
appelle attaque une tentative de cryptanalyse.
Un des axiomes fondamentaux de la cryptographie, énoncé pour la première fois par Auguste
Kerckhoffs au XIXe siècle, est que l’ennemi possède tous les détails de l’algorithme et qu’il ne lui
manque que la clé spécifique pour le chiffrement.
La plupart de ces attaques ne s’appliquent pas seulement aux cryptosystèmes, mais également aux
systèmes de signature numérique et des codes d’authentification de messages MACs pour forger des
messages ou des signatures.
...
L’attaque à texte chiffré seul (ciphertext-only attack)
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 plus grand nombre de messages clairs possibles, ou mieux encore de retrouver la ou les clés qui ont été utilisées, ce qui permettrait de déchiffrer
d’autres messages chiffrés avec ces mêmes clés.
Tout système cryptographique vulnérables à ce type d’attaque est considéré comme complètement
non sûr.
...
L’attaque à texte clair connu (known-plaintext attack)
Le cryptanalyste a non seulement accès aux textes chiffrés de plusieurs messages, mais aussi aux
textes clairs correspondants. La tâche est de retrouver la ou les clés qui ont été utilisées pour chiffrer
ces messages ou un algorithme qui permet de déchiffrer d’autres messages chiffrés avec ces mêmes
clés.
...
L’attaque à texte clair choisi (chosen-plaintext attack)
Le cryptanalyste a non seulement accès aux textes chiffrés et aux textes clairs correspondants, mais
de plus il peut choisir les textes en clair. Cette attaque est plus efficace que l’attaque à texte clair
connu, car le cryptanalyste peut choisir des textes en clair spécifiques qui donneront plus d’informations sur la clé.
...
tack)
L’attaque adaptative à texte clair choisi (adaptive chosen plaintext at-
C’est une attaque à texte clair choisi dans laquelle le choix du texte clair suivant peut dépendre du
texte chiffré reçu des demandes antérieures.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Notions de base ‫ﻤﻔﺎﻫﻴﻡ ﺃﺴﺎﺴﻴﺔ‬

...
L’attaque à texte chiffré choisi (chosen ciphertext attack)
Le cryptanalyste peut choisir différents textes chiffrés à déchiffrer. Les textes déchiffrés lui sont
alors fournis. Par exemple, le cryptanalyste a un dispositif qui ne peut être désassemblé et qui fait
du déchiffrement automatique. Sa tâche est de retrouver la clé.
...
attack)
L’attaque adaptative à texte chiffré choisi (adaptive chosen ciphertext
Une attaque à texte chiffré choisi où le choix du texte chiffré peut dépendre du texte clair reçu de
demandes antérieures.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

Chapitre 
Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬
Sommaire
.
.
.
.
.
.
.
Cryptosystèmes symétriques (‫)ﺃﻨﻅﻤﺔ ﺍﻟﺘﺸﻔﻴﺭ ﺍﻟﻤﺘﻨﺎﻅﺭﺓ‬
Chiffre par substitution . . . . . . . . . . . . . . .
.. Chiffre de César . . . . . . . . . . . . . . .
.. Chiffre affine . . . . . . . . . . . . . . . .
... Chiffrement . . . . . . . . . . .
... Déchiffrement . . . . . . . . . .
... Cryptanalyse . . . . . . . . . . .
.. Chiffre de Vigenère . . . . . . . . . . . . .
... Chiffrement . . . . . . . . . . .
... Déchiffrement . . . . . . . . . .
... Cryptanalyse . . . . . . . . . . .
.. Autres chiffres par substitution . . . . . . .
Chiffres par transposition . . . . . . . . . . . . . .
.. Principe général . . . . . . . . . . . . . . .
Chiffre par bloc et chiffre de flux . . . . . . . . . .
Modes opératoires . . . . . . . . . . . . . . . . . .
.. ECB . . . . . . . . . . . . . . . . . . . . .
.. CBC . . . . . . . . . . . . . . . . . . . . .
.. PCBC . . . . . . . . . . . . . . . . . . . .
.. CFB ou CFC . . . . . . . . . . . . . . . .
... Forme simple . . . . . . . . . . .
... Version détaillée . . . . . . . . .
.. OFB ou OFC . . . . . . . . . . . . . . . .
.. CTR . . . . . . . . . . . . . . . . . . . .
.. CTS . . . . . . . . . . . . . . . . . . . . .
Padding . . . . . . . . . . . . . . . . . . . . . . .
Data Encryption Standard . . . . . . . . . . . . . .
.. Histoire . . . . . . . . . . . . . . . . . . .
.. Fonionnement . . . . . . . . . . . . . . .
.. Dérivation des sous-clés . . . . . . . . . . .
.. Déchiffrement . . . . . . . . . . . . . . . .
.. Clés faibles . . . . . . . . . . . . . . . . .
.. Attaques . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

































C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

.
.
Triple Data Encryption Standard
Advanced Encryption Standard .
.. Le vainqueur . . . . . .
.. Fonionnement . . . . .
.. Déchiffrement . . . . . .
.. Attaques . . . . . . . . .
. Password-based cryptography . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .







F . – La machine de Lorenz utilisée par les Allemands durant la Seconde Guerre mondiale..
.
Cryptosystèmes symétriques (‫)ﺃﻨﻅﻤﺔ ﺍﻟﺘﺸﻔﻴﺭ ﺍﻟﻤﺘﻨﺎﻅﺭﺓ‬
L
a cryptographie symétrique (‫)ﺘﺸﻔﻴﺭ ﻤﺘﻨﺎﻅﺭ ﺃﻭ ﻤﺘﻤﺎﺜل‬, également dite à clé secrète ‫)ﺒﺎﻟﻤﻔﺘﺎﺡ‬
(‫(ﺍﻟﺴﺭﻱ‬par opposition à la cryptographie à clé publique (‫))ﺘﺸﻔﻴﺭ ﺒﺎﻟﻤﻔﺘﺎﺡ ﺍﻟﻌﺎﻡ‬, est la plus ancienne forme de chiffrement. Des traces de son utilisation par les égyptiens remonte à  av.
J.-C. Le chiffre de Jules César est plus récent où le « ROT »¹ est une variante.
Plus formellement :
Tels que soit k = K, soit la connaissance d’une des deux clés permet d’en déduire facilement
l’autre.
Conséquences :
— Dichotomie du monde : les bons et les mauvais
— Multiplication des clés (un secret n’est partagé que par 2 interlocuteurs), donc pourNinterlocuteurs N.(N ´ 1)/2 couples
— La qualité d’un cryptosystème symétrique s’analyse par rapport à des propriétés statistiques des
textes chiffrés et la résistance aux classes d’attaques connues.
— En pratique tant qu’un cryptosystème symétrique n’a pas été cassé, il est bon, après il devient
mauvais.
. Une variante du chiffre de César avec un décalage de  positions au lieu de .
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Chiffre par substitution

F . – Cryptographie symétrique (à clé secrète).
.
Chiffre par substitution
Principe général : A chaque lettre ou groupe de lettres on substitue une autre lettre ou un autre
groupe de lettres.
Substitution mono alphabétique : Pour chaque lettre de l’alphabet de base on se donne une autre
lettre utilisée dans le texte chiffré.
..
Chiffre de César
C’est un exemple historique où on décale les lettres de  positions. C’est un chiffre mono-alphabétique.
F . – Jules cesar  ou  juillet  av. J.-C. ou  av. J.-C. -  mars  av. J.-C.
Indice
Clair
hiffré

A
D

B
E

C
F

D
G

E
H

F
I

G
J

H
K

I
L

J
M

K
N

L
O

M
P

N
Q

O
R

P
S

Q
T

R
U

S
V

T
W

U
X

V
Y

W
Z

X
A

Y
B

Z
C
La forme générale des chiffres par décalage sur l’alphabet à  lettres (Pour le chiffre de César
k=3:
Ek (x) = x + k mod 26
Dk (y) = y ´ k mod 26
Exemple :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

Nous voulons chiffrer le texte « INFORMATIQUE ». Nous pouvons nous servir du tableau suivant
afin d’obtenir le texte chiffré qui est dans ce cas « LQIRUPDWLTXH » :
Texte clair
Indice clair
Indice chiffré
(Indice clair + 3) mod 26
Texte chiffré
..
I


N


F


O


R


M


A


T


I


Q


U


E


L
Q
I
R
U
P
D
W
L
T
X
H
Chiffre affine
Le chiffre affine est une généralisation par rapport à celui de César.
...
Chiffrement
Au lieu de prendre une clé fixe k = 3, il est possible d’utiliser la formule : Ek (x) = (ax +
b) mod 26 où clé= (a, b), a P Z26 et b P Z26 .
Si le coefficient a vaut , alors le codage affine correspond au chiffre par décalage.
Exemple : prenons a = 3 et b = 5. Nous avons pour le chiffrement la formule :
Ek (x) = (3x + 5) mod 26
Le texte clair « INFORMATIQUE » aura le texte chiffré correspondant « DSUVEPFKDBNR »
comme le montre le tableau suivant :
Texte clair
Indice clair
Indice chiffré
(3 ˆ (Indice clair) + 5) mod 26
Texte chiffré
...
I


N


F


O


R


M


A


T


I


Q


U


E


D
S
U
V
E
P
F
K
D
B
N
R
Déchiffrement
La fonion de déchiffrement est : Dk (y) = (a´1 y ´ ba´1 ) mod 26, tel que aa´1 = 1 mod 26.
D’après le théorème de Bachet-Bézout (voir ..), a´1 existe si a est premier avec . Dans notre
cas a´1 = 9 dans Z26 , ce qui donne Dk (y) = (9y ´ 45) mod 26 = (9y + 7) mod 26.
Essayons de vérifier que le déchiffrement de « DSUVEPFKDBNR » avec la clé (,) donne bien
« INFORMATIQUE » comme le montre le tableau suivant :
Texte chiffré
Indice chiffré
Indice clair
( ˆ(Indice chiffré) + 7) mod 26
Texte chiffré
...
D


S


U


V


E


P


F


K


D


B


N


R


I
N
F
O
R
M
A
T
I
Q
U
E
Cryptanalyse
Il n’existe que  entiers compris entre  et  et premiers avec  (, , , , , , , , , , 
et ). Il n’existe donc que 12ˆ26 = 312 clés de chiffrement possible et non 26ˆ26 = 262 = 676.
Si l’on sait qu’un code affine a été utilisé, on peut le casser par force brute en essayant les  clés
(recherche exhaustive).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Chiffre par substitution

Si le cryptogramme est suffisament long, on peut tenter d’identifier les lettres selon leur fréquence
d’apparition dans les messages. En effet une lettre est, par cette méthode, toujours remplacée par la
même lettre. La lettre E, par exemple, étant en français très fréquente, si, dans le message chiffré,
la lettre T est très fréquente, on peut supposer que E est remplacé par T et ne rechercher que les
codages affines permettant cette substitution. Pour plus de détails, voir ??.
..
Chiffre de Vigenère
Le chiffre de Vigenère est un système de chiffrement, élaboré par Blaise de Vigenère (-),
diplomate français du XVIe siècle. C’est un système de substitution ou de chiffrement polyalphabétique. Cela signifie qu’il permet de remplacer une lettre par une autre qui n’est pas toujours la
même.
Contrairement au chiffre de César ou à ROT qui se contentaient d’utiliser la même lettre de
substitution. C’est donc une méthode relativement plus « solide » que les deux autres. Il résiste ainsi
à l’analyse de fréquences, ce qui est un avantage décisif sur les chiffrements monoalphabétiques. Il a
été cassé par le major prussien Friedrich Kasiski en  et n’offre plus depuis cette époque aucune
sécurité.
...
Chiffrement
Pour ce chiffre, une clé se présente généralement sous la forme d’un mot ou d’une phrase. Si la clé
est plus courte que le message clair, elle sera dupliquée autant de fois que nécessaire pour avoir la
longueur du texte clair².
Exemple :
Nous voulons chiffrer le texte clair « texte secret » à l’aide de la clé « clef ». On peut utiliser la
formule ECL (xn ) = (xn + CL(n mod 4)) mod 26 où n est le rang de la lettre x du message clair
à chiffrer. CL est une fonion qui donne l’indice de la lettre de la clé correspondante à xn . Nous
avons utilisé (mod 4) dans la formule de CL parce que la taille de la clé = 4. Le tableau . illustre
le processus de chiffrement.
De la même manière il est possible de se baser sur la fameuse table de Vigenère .. Les colonnes
représentent le texte clair et les lignes le texte chiffré. Pour chiffrer par exemple la lettre claire « t »
avec la lettre clé « f » on obtient la lettre chiffrée « y » qui est la cellule obtenue par l’interseion de
la colonne « t » et la ligne « f ».
. 
.
c
CL 
...
  
l e f
  
Déchiffrement
On peut utiliser la formule DCL (yn ) = xn = (yn ´ CL(n mod 4)) mod 26. Le processus de
déchiffrement est illustré par le tableau ..
Si nous voulons se baser sur la table de vigenère, alors pour chaque lettre chiffrée y on cherche la
lettre de la clé qui lui correspond. On fixe la ligne de la lettre de la clé et on cherche dans celle-ci la
lettre chiffré. On remonte dans la colonne pour trouver la lettre claire correspondante. Par exemple,
. plus la clé sera longue et variée et mieux le texte sera chiffré.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

Texte clair
indice clair
indice clé
indice chiffré
t



e



x



t



e



s



e



c



r



e



t



v
p
b
y
g
d
i
h
t
p
x
ECL (xn ) = (xn + CL(n mod 4)) mod 26
Texte chiffre
T . – Chiffrement de Vigenère de « texte secret » avec la clé « clef ».
F . – Table de Vigenere.
Texte chiffré
indice chiffré
indice clé
indice clair
v



p



b



y



g



d



i



h



t



p



x



t
e
x
t
e
s
e
c
r
e
t
DCL (yn ) = (yn ´ CL(n mod 4)) mod 26
Texte clair
T . – Déchiffrement de Vigenère de « vpbygdihtpx » avec la clé « clef ».
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Chiffre par substitution

si on veut déchiffrer « g », la lettre de la clé qui lui correspond est « c ». On cherche dans la ligne « c »
la lettre « g » et la colonne correspondante indique « e » qui est la lettre claire recherchée.
...
Cryptanalyse
Si l’on connait le nombre de symboles que comporte la clé, il devient possible de procéder par
analyse de fréquences sur chacun des sous-textes déterminés en séleionnant des lettres du message
clair à intervalle la longueur de la clef (autant de sous-textes que la longueur de la clef ). C’est l’attaque
bien connue sur les chiffrements monoalphabétiques.
Friedrich Wilhelm Kasiski a proposé en  une méthode efficace pour déterminer la taille de la
clef (test de Kasiski) en repérant la répétition de certains motifs dans le message chiffré.
Première  : Détermination de la longueur de la clé Elle consiste à chercher des répétitions dans
le texte chiffré. Considérons par exemple le mot-clé « ABCD » qui sert à chiffrer « MESSAGER
TRES MESQUIN MESOPOTAMIEN ».
Clé répétée
A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C
Texte en clair M E S S A G E R T R E S M E S Q U I N M E S O P O T A M I E N
Texte chiffré M F U V A H G U T S G V M F U T U J P P E T Q S O U C P I F P
T . – i
Dans l’exemple ci-dessus, le trigramme « MES » est chiffré en « MFU » deux fois et « PET » une
fois. Babbage et Kasiski comprirent que des répétitions de cette sorte leur offraient la prise dont ils
avaient besoin pour attaquer Vigenère.
. soit la même séquence de lettres du texte clair a été chiffrée avec la même partie de la clef.
. soit deux suites de lettres différentes dans le texte clair auraient (possibilité faible) par pure
coïncidence engendré la même suite dans le texte chiffré.
Le premier cas étant le plus probable, on calcule le nombre de lettres entre deux séquences identiques. Dans notre cas, il y a  lettres entre les deux « MFU », on en déduit que la longueur de
la clé est un diviseur de  (sinon la clé et les deux « MES » ne seraient pas alignés). La clé peut
donc posséder soit , , ,  ou  lettres (avec une lettre, nous aurions un chiffrement monoalphabétique facilement cassé avec une analyse fréquentielle). Avec un texte plus long, on découvrirait
d’autres séquences qui permettraient d’affiner le résultat et réduire la taille de la clé à une ou deux
possibilités.
..
Autres chiffres par substitution
— Les substitutions homophoniques :au lieu d’associer un seul caraère chiffré à un caraère
clair, on dispose d’un ensemble de possibilités de substitution de caraères dans laquelle on
choisit aléatoirement.
— Les substitutions de polygrammes : au lieu de substituer des caraères on substitue par exemple
des digrammes (groupes de deux caraères)
— Au moyen d’une table (système de Playfair)
— Au moyen d’une transformation mathématique (système de Hill).
— Le masque pseudo aléatoire :Principe du masque jetable³ mais en utilisant un masque pseudo
aléatoire (le grain est la clé).
. Appelé aussi chiffre de Vernam.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Substitution homophonique Henri IV .
.
Chiffres par transposition
Un chiffrement par transposition (ou chiffrement par permutation) est un chiffre qui consiste à
changer l’ordre des lettres, donc à construire des anagrammes. Cette méthode est connue depuis
l’Antiquité, puisque les Spartiates utilisaient déjà une scytale.
..
Principe général
On procède à un réarrangement de l’ensemble des caraères (une transposition) qui cache le sens
initial. La technique est très peu résistante aux attaques statistiques. Le plus souvent on utilise deux
visions géométriquement différentes du texte.
F . – Scytale.
Le chiffrement par transposition demande de découper le texte clair en blocs de taille identique ; la
même permutation est alors utilisée sur chacun des blocs. Le texte doit éventuellement être complété
(procédé de bourrage) pour permettre ce découpage. La clé de chiffrement est la permutation ellemême.
Le nombre de permutations possibles d’une longueur donnée, qui est la faorielle de cette longueur, augmente donc rapidement avec celle-ci. Par exemple un mot de trois lettres ne peut être
permuté que dans 6(= 3!) positions différentes. Ainsi « col » ne peut se transformer qu’en « col »,
« clo », « ocl », « olc », « lco » ou « loc ».
Lorsque le nombre de lettres croît, le nombre d’arrangements augmente rapidement et il devient
plus difficile de retrouver le texte original sans connaître la permutation, et sans aucune connaissance
sur le texte clair. Ainsi pour un chiffre par transposition qui utilise des blocs de 20 caraères, il y a
20! possibilités, soit  combinaisons.
Exemple de transposition matricielle : Le message en clair est écrit dans une matrice. La clé une
permutation de [1..n] ou n est le nombre de colonne. La technique de transposition consiste à lire
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Chiffre par bloc et chiffre de flux

la matrice en colonne selon un ordre donné par la clé.
Le message clair : MESSAGE SECRET A CHIFFRER PAR TRANSPOSITION.

M
E
T
F
R
P
O

E
S
A
R
T
O
N

S
E
C
E
R
S

S
C
H
R
A
I

A
R
I
P
N
T

G
E
F
A
S
I
Le message crypté est donc : METFRPO ARIPNT SCHRAI SECERS GEFASI ESARTON.
.
Chiffre par bloc et chiffre de flux
Le chiffrement par bloc (‫( )ﺘﺸﻔﻴﺭ ﻜﺘل‬en anglais block cipher) est une des deux grandes catégories de chiffrements modernes en cryptographie symétrique, l’autre étant le chiffrement par flot. La
principale différence vient du découpage des données en blocs de taille généralement fixe pour les
chiffres par bloc. La taille de bloc est comprise entre 32 et 512 bits, dans le milieu des années 1990 le
standard était de 64 bits mais depuis 2000 et le concours AES le standard est de 128 bits. Les blocs
sont ensuite chiffrés les uns après les autres.
Un chiffrement itératif résulte de l’application itérée d’un chiffrement (en général un chiffrement
produit).
Chaque itération est appelée un tour (round en anglais). Chaque tour fait intervenir une sous-clé
qui en général est dérivée (on dit souvent cadencée) de la clé principale.
Dans les systèmes auels, le chiffrement est obtenu en itérant une fonion de tour qui est cryptographiquement faible dans le sens où elle ne constitue pas à elle seule un système suffisamment robuste.
Chaque itération est appelée un tour ou encore une ronde. Chaque tour prend en entrée la sortie
du tour précédent (ou le bloc de texte clair dans le cas du premier tour) et chiffre cette entrée grâce
à la fonion de tour et à la clé de tour construite avec la clé K. Le nombre de tours sera noté Nr. Si
M est le texte clair on calcule successivement :
M0 = M ,
M1 = F (m0, K1 ),
…
MN r = F (MN r´1 , KN r ),
c = MN r .
Tel que F : t0, 1utd ˆ t0, 1utr Ñ t0, 1utd
où td est la taille du message clair et tr celle de la clé.
Le calcul est parfois augmenté d’une phase de prétraitement (avant de commencer les itérations)
et d’une phase de post-traitement (après la dernière itération).
La clé de tour est obtenue à partir de la clé secrète. Ainsi pour mener à bien le calcul itératif que
nous venons de décrire, on doit donc associer à la clé secrète K, de taille tk, N r sous-clés (ou clés
de tour) de taille tr.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

Le procédé qui permet de calculer ces sous-clés est appelé schéma de diversification de la clé ou
schéma de production des sous-clés.
Le chiffrement de flux ou chiffrement par flot (‫( )ﺘﺸﻔﻴﺭ ﺘﺩﻓﻘﻲ‬En anglais stream cipher) peut traiter
des données de longueur quelconque et n’a pas besoin de les découper. Il est largement utilisé dans
des systèmes et des applications temps-réel (transmission video/audio par exemple). Il est de pratique
courante d’utiliser des « générateurs pseudo-aléatoires » comme base pour engendrer la clé privée.
Plus précisément, le générateur pseudo-aléatoire est utilisé pour fournir un flux de bits additionnés
(XOR) avec les bits correspondants du texte clair pour produire des bits du texte chiffré. Autrement
dit, la séquence pseudo-aléatoire générée (déterminée par une clé partagée à priori) est utilisée comme
« masque jetable »⁴ au lieu d’une séquence véritablement aléatoire, avec l’avantage que la séquence
générée peut être beaucoup plus longue que la clé (ce qui n’est pas possible pour une séquence
purement aléatoire).
La figure . illustre le fonionnement d’un chiffre par flux. Les bits mi du texte clair sont additionnés (modulo ) avec les bits si du flux de la clé pour obtenir les bits ci du texte chiffré. Le flux
si est obtenu d’un générateur de nombres pseudo-aléatoires avec comme germe la clé privé partagée
k. Il est qualifié de synchrone si le flux de bits si ne dépend que de la clé k et asynchrone s’il dépend
aussi du texte chiffré précédent.
Une liste non-exhaustive de chiffrements par flot :
. A/, algorithme publié en , utilisé dans les téléphones mobiles de type GSM pour chiffrer
la communication par radio entre le mobile et l’antenne-relais la plus proche,
. RC, le plus répandu, conçu en  par Ronald Rivest, utilisé notamment par le protocole
WEP du WiFi.
. Py, un algorithme récent d’Eli Biham.
. E0 utilisé par le protocole Bluetooth.
F . – Chiffre par flux synchrone et asynchrone.
Toutefois, le XOR n’est pas la seule opération possible. L’opération d’addition dans un groupe est
également envisageable (par exemple, addition entre deux oets, modulo 256). Un chiffrement par
bloc peut être converti en un chiffrement par flot grâce à un mode opératoire qui permet de chaîner
plusieurs blocs et traiter des données de taille quelconque.
Soit ‘ l’opération booléenne XOR :
. Chiffrement du message M avec la clé K : M ‘ K = C
. Déchiffrement du message C avec la clé K : C ‘ K = (M ‘ K) ‘ K = M ‘ (K ‘ K) = M
. One-time pad.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Modes opératoires

Le projet eStream⁵ du réseau ECRYPT⁶ a vu le jour en  ayant pour but, après quatre ans, de
produire un portfolio pour promouvoir de nouveaux systèmes de chiffrement par flot. Auellement,
il recommande au total sept⁷ algorithmes dans deux catégories différentes hardware et software (par
ordre alphabétique) :
Software
Hardware
-bit key -bit key
HC-
Grain v
Rabbit
MICKEY v
Salsa/
Trivium
Sosemanuk
T . – Portfolio d’eStream .
.
Modes opératoires
Un chiffrement par bloc fournit simplement une méthode de chiffrement d’une seule chaîne de n
bits, et non pas un « MESSAGE » de longueur arbitraire. Par ailleurs, même quand il est seulement
nécessaire de chiffrer une chaîne de n bits, un mode de fonionnement devrait être employé pour
éviter les attaques cryptanalytiques résultant de la répétition de fragments de « texte clair ».
Il est possible de transformer un chiffrement par bloc en un chiffrement par flot en utilisant un
mode d’opération :
..
ECB
(Eleronic CodeBook) où chaque bloc chiffré (déchiffré) indépendamment des autres, voir les
figures . et .. Vulnérable aux attaques texte-clair/texte-chiffré même en ignorant totalement la
clé. Le texte clair M est découpé en blocs mi où chacun est chiffré séparément des autres donnant
lieu à un bloc chiffré ci . Ensuite, les blocs chiffrés sont concaténés pour former le message chiffré C.
Pour le chiffrement ci = Ek (mi) et le déchiffrement mi = Dk (ci ).
Il faut noter q’utilisant la même clé, deux blocs de texte en clair identiques donnent deux blocs
chiffrés également identiques et vice versa.
Les avantages de ce mode sont les suivants :
. Le travail de chiffrement ou de déchiffrement peut être parallélisé. Plusieurs machines ou CPU
peuvent travailler simultanément sur des parties différentes du message.
. Il permet un accès aléatoire dans le texte chiffré.
. Une erreur de transmission d’un bit affee uniquement le décodage du bloc courant (pas de
propagation d’erreurs).
Par contre, ce mode a les désavantages suivants :
. http://www.ecrypt.eu.org/stream/index.html
. http://www.ecrypt.eu.org/
. L’algorithme F-FCSR-H v proposé en  sous le profile Hardware a été éliminé suite à la publication des
résultats d’attaques cryptanalytiques.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Chiffrement en mode ECB.
F . – Déchiffrement en mode ECB.
. Les répétitions du texte en clair ne sont pas masquées et se retrouvent sous la forme de répétitions de textes chiffrés.
. Des portions complètes du message peuvent être modifiées, répétées ou remplacées sans difficulté (qttaque reply).
. La perte de synchronisation (perte ou ajout d’un bit) est irrécupérable.
..
CBC
(Cipher Block Chaining) inventé par IBM en  où on chaîne le chiffrement (déchiffrement).
On effeue un XOR entre le bloc en clair auel et le bloc chiffré précédent avant d’être chiffré. Le
premier bloc est additionné (XOR) avec un Veeur Initial. Voir les figures . et ..
Vulnérable aux erreurs (modification d’un bloc) en plus il faut déchiffrer tout un grand fichier
pour consulter une petite partie. Les algorithmes de chiffrement et de déchiffrement sont comme
suit :
ci = EK (mi ‘ ci´1 ), c0 = EK (m0 ‘ IV ) et mi = DK (ci ) ‘ ci´1 , m0 = DK (c0 ) ‘ IV .
F . – Chiffrement en mode CBC.
Les avantages de ce mode sont les suivants :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Modes opératoires

F . – Déchiffrement en mode CBC.
. Les répétitions de texte en clair sont masquées dans le texte chiffré.
. La valeur du veeur d’initialisation IV n’a pas besoin d’être secrète.
. Accès aléatoire aux texte chiffré.
. Parallélisation possible du déchiffrement.
Par contre, ce mode a les désavantages suivants :
. Deux textes en clair commençant pareil auront le même début de texte chiffré.
. Une erreur de transmission d’un bit affee uniquement le décodage du bloc courant ainsi que
le décodage du même bit dans le bloc suivant (propagation limitée).
. La perte de synchronisation (perte ou ajout d’un bit) est irrécupérable.
..
PCBC
Propagating cipher-block chaining ou plaintext cipher-block chaining. Il a été conçu pour produire
de petits changements dans le texte chiffré à propager indéëniment lors du déchiffrement, ainsi que
lors du chiffrement.
Voir les figures . et .. Les algorithmes de chiffrement et de déchiffrement sont comme suit :
ci = EK (mi ‘ mi´1 ‘ ci´1 ), c0 = EK (IV ‘ m0 ) et mi = DK (ci ) ‘ mi´1 ‘ ci´1 , m0 =
IV ‘ DK (c0 )
F . – Chiffrement en mode PCBC.
..
CFB ou CFC
Cipher Feedback Chaining ou chiffrement à rétroaion. Ce mode et les suivants agissent comme
un chiffrement par flux. Ils génèrent un flux de clés qui est ensuite appliqué au document original.
Dans ce mode, le flux de clé est obtenu en chiffrant le précédent bloc chiffré. CFB est un chiffrement
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Déchiffrement en mode PCBC.
par flot. Son grand intérêt est qu’il ne nécessite que la fonion de chiffrement, ce qui le rend moins
cher à câbler ou programmer pour les algorithmes ayant une fonion de chiffrement différente de
la fonion de déchiffrement (exemple : AES).
...
Forme simple
Voir les figures . et ..
F . – Chiffrement en mode CFB.
F . – Déchiffrement en mode CFB.
De manièe simple les algorithmes de chiffrement et de déchiffrement sont comme suit :
ci = EK (ci´1 ) ‘ mi , mi = EK (ci´1 ) ‘ ci et c0 = IV .
Les avantages de ce mode sont :
. Accès aléatoire au texte chiffré.
. Parallélisation du déchiffrement.
. Propagation limitée d’erreurs.
. IV n’est pas secret.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Modes opératoires
...

Version détaillée
Le mode nécessite deux paramètres k : (1 ď k ď n), la taille de la variable de rétroaion
(feedback) et j : (1 ď j ď k) le nombre de bits de texte clair à chiffrer pour chaque étape.
En pratique, il semblerait judicieux de toujours choisir j = k. En fait, ce qui est recommandé par
la deuxième édition de la norme ISO/IEC  et tout autre choix semble réduire le niveau global
de sécurité du schéma.
De manièe détaillée, le texte clair est découpé en blocs mi de taille j où 1 ď s ď td. En plus du
texte clair M = m1 m2 ...mk , on a besoin d’un bloc initial de taille td tiré aléatoirement IV . On
calcule alors successivement :
Z1 = EK (IV ), c1 = m1 ‘ M SBs (Z1 ),
I2 = LSBtd´s (IV )||c1 ,
Z2 = EK (I2 ), c2 = m2 ‘ M SBs (Z2 ),
…
Ik = LSBtd´s (Ik1 )||ck1 ,
Zk = EK (Ik ), ck = mk ‘ M SBs (Zk ).
Tel que B1 ||B2 représente le bloc formé par la concaténation (la juxtaposition) des deux blocs
B1 et B2 . M SBu (B) représente le bloc constitué par les u bits de B les plus à gauche (les u bits les
plus significatifs).
Tel queuest un entier tel que 0 ď u ď n et n est la taille de B en bits. LSBu (B) représente le
bloc des u bits de B les plus à droite (les u bits les moins significatifs).
Le déchiffrement s’effeue en calculant successivement :
Z1 = EK (I1 ), m1 = c1 ‘ M SBs (Z1 )
I2 = LSBtd´s (I1 )||c1
Z2 = EK (I2 ), m2 = c2 ‘ M SBs (Z2 )
…
Ik = LSBtd´s (Ik1 )||ck1
Zk = EK (Ik ), Pk = ck ‘ M SBs (Zk )
Il est tout à fait possible de réaliser ce schéma utilisant un registre à décalage.
Les avantages de ce mode sont les suivants :
. Il est possible de chiffrer un flot de valeurs plus petites que la taille standard du bloc géré par
l’algorithme.
. Les répétitions de texte en clair sont masquées dans le texte chiffré.
. La valeur du veeur d’initialisation IV n’a pas besoin d’être secrète.
. La perte de synchronisation (perte ou ajout d’un bit) est récupérable.
Par contre, ce mode a les désavantages suivants :
. Une erreur de transmission d’un bit affee uniquement le décodage du bloc courant ainsi que
le déco-dage du même bit dans le bloc suivant.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Chiffrement en mode CFB en générale.
F . – Déchiffrement en mode CFB en générale.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Modes opératoires
..

OFB ou OFC
Output Feedback Chaining ou chiffrement à rétroaion de sortie. Dans ce mode, le flux de clé
est obtenu en chiffrantle précédent flux de clé. C’est un mode de chiffrement de flot qui possède les
mêmes avantages que CFB. De plus, il est possible de le précalculer en chiffrant successivement le
veeur d’initialisation. Il n’est donc sûr que si la fonion de chiffrement alliée à la clé forment une
bonne suite pseudo-aléatoire. Voir les figures . et ..
A� partir d’un bloc initial O0 = IV tiré aléatoirement, on construit un masque jetable par itération. Les algorithmes de chiffrement et de déchiffrement sont comme suit :
ci = mi ‘ Oi , mi = ci ‘ Oi , Oi = EK (Oi´1 ) et O0 = IV
Le message chiffré est O0 c1 c2 . . . ck .
Le déchiffrement s’effeue en calculant les Oi successifs à partir de Z0 comme on l’a fait pour le
chiffrement puis en écrivant mi = ci ‘ Oi.
F . – Chiffrement en mode OFB.
F . – Déchiffrement en mode OFB.
Les avantages de ce mode sont les suivants :
. Les répétitions de texte en clair sont masquées dans le texte chiffré.
. La valeur du veeur d’initialisation IV n’a pas besoin d’être secrète.
. Ce mode n’amplifie pas les erreurs. Une erreur de transmission d’un bit affee uniquement ce
bit lors du décodage.
Par contre, ce mode a les désavantages suivants :
. La perte de synchronisation (perte ou ajout d’un bit) est irrécupérable.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

..
CTR
CounTeR ou Chiffrement basé sur un compteur et connu aussi sous le nom Integer Counter
Mode (ICM) et Segmented Integer Counter (SIC) mode. Dans ce mode, le flux de clé est obtenu en
chiffrant les valeurs successives d’un compteur come illustré dans les figures . et .. Ce mode
combine de nombreux avantages, car il permet le chiffrement par flot, est précalculable, permet un
accès aléatoire aux données, est parallélisable et n’utilise que la fonion de chif-frement. Le compteur
utilisé peut être une suite pseudo-aléatoire qu’il sera facile de retrouver à partir de la graine (veeur
d’initialisation).
F . – Chiffrement en mode CTR.
F . – Déchiffrement en mode CTR.
Pour le chiffrement, le texte clair M est découpé en blocs de taille td. Dans ce mode on dispose
d’un compteur de taille td. On tire au sort une valeur initiale CT R1 pour ce compteur. On calcule
alors :
Z1 = EK (CT R1 ), c1 = m1 ‘ Z1 . Puis on incrémente le compteur.
En générale, on calcule successivement :
CT Ri = CT Ri ´ 1 + 1 mod 2td , Zi = EK (CT Ri ), ci = mi ‘ Zi .
Le texte chiffré transmis est constitué de la valeur CT R1 du compteur suivi des blocs c1 c2 . . . ck .
Pour le déchiffrement, Il se fait en calculant succéssivement à partir de la valeur initiale du compteur :
Zi = EK (CT Ri ), mi = ci ‘ Zi , CT Ri+1 = CT Ri + 1 mod 2td ,
Le mode CTR est un mode très simple à implémenter. Il est très sûr et n’utilise pas la fonion
de déchiffrement du circuit. Le texte chiffré, qui doit contenir la valeur initiale du compteur, est
un peu plus long que le texte clair. On peut dans ce mode faire des accès aléatoires de manière plus
commode que dans le mode OFB puisqu’il faut seulement chiffrer la valeur du compteur pour le
bloc considéré. Ce mode est particulièrement intéressant.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Modes opératoires
..

CTS
CipherText Stealing ou chiffrement avec vol de texte. Dans ce mode, applicable à un chiffrement
par blocs (ECB, CBC, etc.), les deux derniers blocs sont partiellement combinés de façon à obtenir
un message de même taille. Ici, un exemple de CTS opérant sur un chiffrement en mode CBC sur
la figure .. Le dernier bloc est complété d’abord par des zeros puis combiné (ou exclusif ) avec le
bloc chiffré précédent avant d’être chiffré.
F . – CTS opérant sur un chiffrement en mode CBC.
Les deux derniers blocs sont échangés et combinés en partie, ce qui nécessitera de les obtenir tous
les deux pour en décrypter un. CTS n’est pas un mode de chiffrement par flot, mais permet d’éviter
l’utilisation de bourrage dans les chiffrements par blocs, et donne une taille de message crypté égale
à la taille du message clair. Il est très utilisé dans les protocoles ou formats ne supportant pas une
taille quelconque.
Une liste non-exhaustive de chiffrements par bloc :
. DES, l’ancêtre conçu dans les années , a été passablement étudié
. AES, le remplaçant de DES
. Blowfish, Serpent et Twofish, des alternatives à AES
Il y en a encore bien d’autres qui sont adaptés à des besoins particuliers. Certains consomment plus
de mémoire ou sont plus gourmands en puissance de calcul. Un chiffrement par bloc peut également
être utilisé comme une fonion de hachage, c’est-à-dire une fonion à sens unique. Une variante de
DES est employée pour le système de mots de passe dans Unix. Une chaîne contenant uniquement
des zéros est chiffrée avec une clé correspondant au mot de passe (une composante aléatoire appelée
« sel » est encore intégrée à l’algorithme).
Ce chiffrement est itératif et se fait 25 fois avant d’obtenir le résultat final.
Lors d’ Asiacrypt’, Adi Shamir posa cette question. En réponse, le projet eStream du réseau
ECRYPT ⁸ vu le jour ; celui-ci ayant pour but après quatre ans de produire un portfolio pour promouvoir de nouveaux systèmes de chiffrement à ìot. Suite à ces quatre ans de recherche, le portfolio
est maintenant disponible et recommande au total huit algorithmes dans deux catégories différentes
hardware et software (par ordre alphabétique) :
. http://www.ecrypt.eu.org/stream/index.html
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

Software
Hardware
HC- F-FCSR-H v
Rabbit
Grain v
Salsa/ MICKEY v
Sosemanuk
Trivium
T . – Le portfolio eStream d’ECRYPT.
.
Padding
En plus, la plupart des modes d’opération nécessitent un texte en clair divisé en une série de blocs
d’une longueur q fixe donnée. Le dernier bloc peut avoir une longeur inférieure à q. Ce phénomène
nécessite un remplissage (bourrage) pour compléter le bloc et obtenir la taille exigée.
Pour résoudre ce problème, l’expéditeur et le destinataire doivent se mettre d’accord sur une méthode de remplissage. Une méthode de remplissage implique le rajout de bits au texte clair selon une
formule convenue.
Pour le chiffrement par bloc, le remplissage permet d’avoir un bloc de la taille adéquate si celui-ci
est trop court. Pour le chiffrement par flot, il permet d’éviter d’avoir une longueur par flot susceptible
d’être attaquée, cela évite aussi que l’attaquant ne connaisse la taille du flux.
En cryptographie asymétrique, les cryptosystèmes considèrent souvent le message en clair comme
un très grand nombre qui est injeé dans une formule. Ces nombres ont souvent des propriétés
qui doivent être respeées et le remplissage permet de garantir ces caraéristiques. La plupart des
fonions de hachage découpent les données en blocs de taille fixe et le dernier bloc doit être rempli
de manière adéquate.
. Zero padding :Le remplissage est réalisé selon l’une des trois méthodes suivantes :
(a) Padding method  (ISO/IEC -) : Remplir par des bits à 0 jusqu’à l’obtention d’une
taille multiple de la taile d’un bloc ⁹
(b) Padding method  (ISO/IEC - et ISO/IEC -) :¹⁰ Commencer le remplissage
par un bit à 1 suivi de bits à 0 ce qui correspond aux valeurs d’oet (en hexadécimal)
80 00 00 . . .. Ce rembourrage est la première étape d’un schéma de bourrage en deux
étapes utilisée dans de nombreuses fonions de hachage MD et SHA notamment. Dans
ce contexte, il est spécifié par RFC¹¹ étape ..
(c) Padding method  (ISO/IEC -) : Les données de remplissage comprennent (dans cet
ordre) : La longueur des données du texte en clair (en bits) exprimé en big-endian binaire
sur n bits (un bloc), les données du texte clair, la chaine de remplissage constituée d’autant
de bits à 0 que nécessaire (éventuellement une chaine nulle càd de taille 0) pour avoir une
taille du texte en clair (après remplissage) multiple de la taille exigée d’un bloc.
Si le texte clair initial est toujours de taille fixe, alors il n’est pas nécessaire de délimiter et les
02 premières méthodes sont non ambigues.
. PKCS# :¹² Le standard PKCS définit des remplissages qui évitent des attaques potentielles
dans le cadre de la cryptographie asymétrique. pour PKCS#, la chaine de remplissage (Pad. Applicable sûrtout si la taille du texte clair est fixe.
. Préférée par les utilisateurs de cartes à puces
. http://www.faqs.org/rfcs/rfc.html
. Utilisée par PKCS#, PKCS# et RFC  Cryptographic Message Syntax (CMS) Seion . (anciennement
RFC  qui a remplacé RFC  et RFC ).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Data Encryption Standard

ding String) est une séquence d’oets identiques qui indique sa taille : P S = 01, si ||M || mod
8 = 7 ; P S = 02 02, si ||M || mod 8 = 6 ; …, P S = 08 08 08 08 08 08 08 08, si
|M || mod 8 = 0. Le remplissage est effeué même si le texte en clair original est d’une taille
multiple à celle d’un bloc.
. Merkle-Damgård : Dans le cadre des fonions de hachage, on peut appliquer un renforcement
de Merkle-Damgård qui consiste à ajouter un bit à 1, une suite de bits à 0 et finalement la taille
du message à hacher¹³. Si l’on se contentait d’ajouter uniquement des 0, les messages « 000 »
et « 0000 » produiraient le même condensé ce qui est totalement incompatible avec la notion
de hachage cryptographique.
. ANSI X. : Les oets remplis de zéros (0) sont rajoutés et le dernier oet définit les limites
de remplissage ou le nombre d’oets rajoutés. Par exemple, la taille du bloc est de 8 oets, et
le remplissage est nécessaire pour 4 oets (au format hexadécimal) :
…|27 3F EE 41 9B D8 2D DD|AE B5 DD 3C    |
. ISO  : Les oets remplis de valeurs aléatoires sont rajoutés et le dernier oet définit les
limites de remplissage ou le nombre d’oets rajoutés. Par exemple, la taille du bloc est de 8
oets, et le remplissage est nécessaire pour 4 oets (au format hexadécimal) :
…|27 3F EE 41 9B D8 2D DD|AE B5 DD 3C  E A |
.
Data Encryption Standard
Le Data Encryption Standard (DES) est un algorithme de chiffrement par bloc utilisant des clés
de 56 bits. Son emploi n’est plus recommandé aujourd’hui, du fait de sa lenteur à l’exécution et de
son espace de clés trop petit permettant une attaque systématique en un temps raisonnable.
Quand il est encore utilisé c’est généralement en Triple DES, ce qui ne fait rien pour améliorer ses
performances. DES a notamment été utilisé dans le système de mots de passe UNIX.
Le premier standard DES est publié par FIPS ¹⁴ le  janvier  sous le nom FIPS PUB . La
dernière version avant l’obsolescence date du  oobre  FIPS PUB -.
..
Histoire
En mai , le National Bureau of Standards américain demande la création d’un algorithme de
chiffrement utilisable par les entreprises. à cette époque, IBM dispose déjà d’un algorithme appelé
Lucifer, conçu en  par Horst Feistel.
En bonne logique, cet algorithme aurait dû être séleionné par le NBS. En pratique, ce fut presque
le cas : la NSA demanda à ce que Lucifer soit modifié, par ses soins. Ainsi fut créé le DES, qui fut
adopté comme standard en novembre .
Cela suscita des rumeurs selon lesquelles la NSA aurait volontairement affaibli l’algorithme, dans
le but de pouvoir le casser. étrangement, le DES s’est révélé résistant à plusieurs attaques ne devant
apparaître dans la communauté académique que beaucoup plus tard. Encore plus étonnant, Lucifer,
lui, résistait moins bien.
. Un entier codé sur  bits pour MD et SHA-.
. Federal Information Processing Standard : sont des standards publics développés et annoncés par le gouvernement
des états-Unis pour l’usage des agences gouvernementales non militaires et entrepreneurs gouvernementaux. Beaucoup
de standards FIPS sont des versions modifiées des standards ANSI, IEEE, ISO, …etc.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

Ceci permet de penser que la NSA avait connaissance dès cette époque de ces techniques de cryptanalyse et qu’elle aurait donc, en réalité, rendu DES moins faible.
F . – Data Encryption Standard.
..
Fonctionnement
L’algorithme DES transforme un bloc de  bits en un autre bloc de  bits. Il manipule des clés
individuelles de  bits, représentées par  bits (avec un bit de chaque oet servant pour le contrôle
de parité). Ce système de chiffrement symétrique fait partie de la famille des chiffrements itératifs
par blocs, plus particulièrement il s’agit d’un schéma de Feistel, du nom de Horst Feistel à l’origine
du chiffrement Lucifer. Voir la figure ..
F . – Schémas de Feistel.
Dans un schéma de Feistel, le clair est de longueur paire et découpé en une moitié gauche L et
une moitié droite R. Le ième tour du schéma prend en entrée un bloc (Li´1 , Ri´1 ) et le transforme
(en faisant intervenir la ième sous-clé Ki ) en un bloc (Li , Ri ). Le premier tour prend en entrée le
bloc (L, R) et le dernier tour produit le chiffré (L1 , R1 ). La relation entre (Li´1 , Ri´1 ) et (Li , Ri )
est :
Li = Ri´1 , Ri = Li´1 ‘ f (Ri´1 , Ki ) où f est un chiffrement produit.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Data Encryption Standard

Un chiffrement de Feistel est inversible, que f soit une bijeion ou non. En effet, on a
Ri´1 = Li , Li´1 = Ri ‘ f (Ri´1 , Ki ).
Ainsi, le permuté (R, L) du clair s’obtient à partir de celui (R1 , L1 ) du chiffré en lui appliquant
un chiffrement de Feistel de même schéma et en prenant comme liste de sous-clés de déchiffrement
la même que celle des sous-clés de chiffrement, mais dans l’ordre inverse.
D’une manière générale, on peut dire que DES fonionne en trois étapes :
Les notations Lj et Rj désignent des blocs de 32 bits : à partir d’un bloc de 64 bits (b1 , b2 , . . . b64 ),
Lj est le sous-bloc (de gauche, L mis pour « left ») (b1 , b2 , . . . b32 ), tandis que Rj est le sous-bloc
(de droite, R mis pour « right ») (b33 , b34 , . . . b64 ).
. Permutation initiale et fixe d’un bloc ,sans aucune incidence sur le niveau de sécurité. Voir la
figure ..
. Le résultat est soumis à 16 itérations d’une transformation, ces itérations dépendent à chaque
ronde d’une autre clé partielle de  bits. Cette clé de ronde intermédiaire est calculée à partir
de la clé initiale de l’utilisateur (grâce à un réseau de tables de substitution et d’opérateurs
XOR) comme suit :
f (Ri´1 , Ki ) = P (S(E(Ri´1 ) ‘ Ki )) où S dénote les Si (boîtes S).
Si (Bi ) transforme Bi = b1 b2 . . . b6 le mot de 6 bits à l’entrée en un autre mot de 4 bits en
prenant r (row) comme la ligne dans la table Si et c comme la colonne tel que r = b1 b6 (il y a 
possibilités (,,,)) et b2 b3 b4 b5 donne le numéro de colonne 0 ď c ď 15. Ainsi, S1 (011011)
donne r = (01) = 1 deuxième ligne, c = (1101) = 13, alors la sortie = (0101) = 5.
Lors de chaque ronde, le bloc de 64 bits est découpé en deux blocs de 32 bits, et ces blocs sont
échangés l’un avec l’autre selon un schéma de Feistel. Le bloc de 32 bits ayant le poids le plus
fort (celui qui s’étend du bit 32 au bit 63) subira une transformation.
. le dernier résultat de la dernière ronde est transformé par la fonion inverse de la permutation
initiale. Voir la figure ..
DES utilise huit tables de substitution (les S-Boxes) illustrées par les Figures . et . qui
furent l’objet de nombreuses controverses quant à leur contenu. On soupçonnerait une faiblesse
volontairement insérée par les concepteurs. Ces rumeurs furent dissipées au début des années 
par la découverte de la cryptanalyse différentielle qui démontra que les tables étaient bien conçues.
Exemple : S5 (000111) :
— b1 b6 = 01, on lit donc la deuxième ligne.
— b2 b3 b4 b5 = 0011 = 3, on regarde donc la ème colonne et le résultat est 12 = 1100.
..
Dérivation des sous-clés
Pour la dérivation des  clés de ronde de  bits à partir de clé principale de  bits :
En prenant K = k1 ...k64 une clé de -bit (y compris  bits de parité impaire)
. Définir vi , 1 ď i ď 16 tel que : vi = 1 pour i P 1, 2, 9, 16 ; vi = 2 autrement. (Ce sont les
valeurs du décalage circulaire à gauche pour -bit.)
. T = P C1(K) ; représenter T comme deux parties de -bit (C0 , D0 ). (Utiliser P C1 de la Figure . pour séleionner les bits à partir de K : C0 = k57 k49 . . . k36 , D0 = k63 k55 . . . k4 .)
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

. Pour i allant de 1 à 16, calculer Ki comme suit : Ci = (Ci´1 ö vi ), Di = (Di´1 ö vi ),
Ki = P C2 (Ci , Di ). (Utiliser P C2 de la Figure . pour séleionner les  bits à partir de
la concaténation b1 b2 . . . b56 de Ci et Di : Ki = b14 b17 . . . b32 . A savoir ö dénote un décalage
circulaire à gauche.)
..
Déchiffrement
Le déchiffrement est identique au chiffrement sauf que les sous-clés sont prises dans l’ordre inverse.
k16 puis k15 , …et enfin k1 .
Pour engendrer les sous-clés dans l’ordre inverse, les décalages à droite à utiliser sont , , , , ,
, , , , , , , , , , .
Nous pouvons observer que C0 = C16 et D0 = D16 . Ainsi, k16 peut être derivé après P C1.
k16 = P C2 (C16 , D16 ) = P C2 (C0 , D0 ) = P C2 (P C1 (k))
Pour engendrer k15 nous avons besoin de variables intermédiaires C15 and D15 , qui peuvent être
déduites de C16 et D16 utilisant les décalages à droite (right shifts (RS)) :
k15 = P C2 (C15 , D15 ) = P C2(RS2 (C16 ), RS2 (D16 )) = P C2 (RS2 (C0 ), RS2 (D0 ))
Pour tout message m et clé k nous avons DESk (m) = DESk (m). (complémentarité).
Enfin, pour tester le bon fonionnement le texte clair « Now is the time for all » représenté par
« P = EFDFCC » en hexadécimal (-bit
ASCII plus parité) et la clé K = 0123456789ABCDEF donne le texte chiffré
« C = FAEADAABFDECBB ».
..
Clés faibles
Une clé faible produit un comportement indésirable lorsqu’elle est utilisée dans des opérations de
chiffrement. La définition exae d’une clé faible varie souvent selon le cryptosystème considéré.
Pour DES, il existe des clés faibles ainsi que des clés semi-faibles.
Une clé faible K est définie par : Ek (Ek (M )) = M
Où E est l’opération de chiffrement et M est un message clair. Chiffrer deux fois un message en
clair avec la même clé produira ce message en clair. Ce surchiffrement agit donc comme la fonion
identité ce qui est à éviter.
Le fonionnement de DES est propice à la présence de clés faibles. En effet, la clé de  bits
produit  sous-clés, chacune d’entre elles est utilisée dans le tour correspondant. Les clés faibles de
DES sont celles qui produisent  sous-clés identiques. Hors clés non impaires, c’est le cas pour les
clés suivantes :

FFFFEEEE
EEEEFFFF
FEFEFEFEFEFEFEFE
Comme les sous-clés sont identiques et que DES est un réseau de Feistel, la fonion de chiffrement est également celle de déchiffrement. On a de fao un double chiffrement équivalent à un
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Data Encryption Standard

chiffrement suivi d’un déchiffrement. Le message en clair n’est donc pas chiffré et apparaît inchangé
à la sortie.
Les clés semi-faibles de DES sont des clés K1 et K2 distines satisfaisant la propriété suivante :
EK1 (EK2 (M )) = M
Où E est l’opération de chiffrement DES. On compte  clés de ce type dans DES, dont les  clés
faibles. Ces clés sont :
FEFEFEFE
FEFEFEFE
FEFEFEFE
EFEFEFEF
EEEE
EEEE
FFEFFEFFEFFE
FEFFEFFEFFEF
FFFF
FFFF
EFEEFEEFEEFE
FEEFEEFEEFEE
Les clés semi-faibles sont celles qui une fois les utilisées pour générer les  sous-clés, génèrent
seulement deux sous-clés au lieu de  différents.
De telles clés sont bien sûr à bannir mais leur présence ne rend pas DES moins robuste en théorie.
DES a un espace de clés qui contient 256 possibilités. La probabilité de trouver une clé faible avec un
tirage aléatoire parfait est de  = ,  ˆ ´ , c’est un évènement hautement improbable.
On peut aussi simplement tester la clé pour vérifier qu’elle n’est pas faible. DES est un chiffrement
qui a été passablement cryptanalysé et les clés faibles sont un problème qui a été relégué au deuxième
plan puisqu’il est désormais possible de mener une recherche exhaustive des clés de DES.
La liste est incomplète mais plusieurs chiffrements par bloc possèdent des clés faibles :
— IDEA, les clés faibles sont identifiables avec une attaque par texte clair choisi, la relation entre
les bits du texte clair et ceux du texte chiffré devient prévisible. Des publications de Joan
Daemen en 1993 ont confirmé les risques d’avoir des clés avec de longues séquences de bits nuls
(plus de 14 bits nuls consécutifs). Daemen a montré que la classe de clés faibles comptait 251
clés, un nombre qui peut paraître énorme mais insignifiant par rapport aux 2128 clés possibles.
La probabilité d’obtenir une clé faible dans IDEA est alors de 2´76 ce qui est inférieur à la
probabilité d’une clé faible dans DES. Les clés faibles étant faciles à déteer, cette découverte
ne pose pas un problème majeur en pratique.
— Blowfish, les clés faibles produisent de mauvaises S-Boxes puisque ces substitutions dépendent
de la clé. Il existe une attaque par texte clair choisi sur une version réduite de Blowfish qui est
facilitée par l’utilisation des clés faibles.
— RC, un chiffrement par flot n’est pas à l’abri non plus des clés faibles. Les clés qui commencent
par 000F D ont % de chance de produire une sortie qui commence par 0000.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

..
Attaques
Plusieurs attaques ont été découvertes sur DES. Elles permettent de diminuer les coûts d’une
recherche exhaustive des clés qui se monte à 255 opérations en moyenne. Certaines de ces méthodes
ne sont plus efficaces avec des algorithmes de chiffrement plus récents du fait de l’introduion d’un
effet avalanche.
. Avant , attaques contre des versions réduites (t ă 16 tours).
. La cryptanalyse différentielle découverte par Eli Biham et Adi Shamir en  permet de trou.
ver la clé en utilisant 247 textes clairs. Voir . . .
. L’attaque-T (Tickling attack) est une variante de la cryptanalyse différentielle découverte en
 lors de la conception de DES par les chercheurs d’IBM. Pendant une vingtaine d’années,
le silence a été complet sur cette découverte. C’est Don Coppersmith qui révélera le secret en
. à l’époque, elle avait incité les concepteurs de DES à renforcer le contenu des tables de
substitution (au lieu de l’affaiblir comme la rumeur le laissait entendre).
. La cryptanalyse linéaire inventée par Mitsuru Matsui en . Voir ...
. Le compromis temps-mémoire est un concept inventé par Martin Hellman au début des années . En partant du principe que le même message va être chiffré plusieurs fois avec des
clés différentes, on pourrait calculer une immense table qui contient toutes les versions chiffrées de ce message. Lorsque l’on intercepte un message chiffré, on peut le retrouver dans la
table et obtenir la clé qui avait été utilisée pour le coder.
Cette attaque n’est bien sûr pas faisable car nous avons besoin d’une table de l’ordre du milliard
de GB. Le génie d’Hellman a été de trouver un moyen pour réduire cette table à environ 
téraoet (soit  million de fois moins que la table compète), ce qui est faisable de nos jours.
. D’autres attaques sont spécifiques à des implémentations et ne sont pas forcément spécifiques à
DES. Dans le cas d’un DES implémenté dans du matériel, on pourrait analyser la consommation élerique et déduire certaines informations sur la clé (une consommation accrue indique
des bits aifs). Le même style d’attaque peut aussi être employé sur un ordinateur en calculant
le temps mis pour chiffrer avec des textes différents ou en analysant la mémoire utilisée.
. Toutes les autres attaques sur DES visent à réduire le temps de calcul d’une recherche exhaustive
en utilisant des machines spécifiquement conçues pour la tâche (grâce à des FPGA en parallèle
par exemple). Une telle machine a été construite en . Deep Crack a coûté environ 
 dollars et pouvait casser la clé en moins d’une semaine. Le calcul distribué en utilisant
les ordinateurs des particuliers (distributed.net) a prouvé son efficacité en cassant une clé en
moins de  heures.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Data Encryption Standard

F . – Permutation initiale (IP ) et finale (IP ´��1 ).
F . – L0 et R0 dans la permutation initiale.
F . – Expansion (E) et Permutation (P) au début de chaque ronde.
F . – Tableaux pour la génération des clés de rondes.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Tables de substitution S à S.
F . – Tables de substitution S à S.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Data Encryption Standard

F . – Schéma général du DES.
F . – Génération de sous clé DES.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Décalage dans la création des sous-clés de DES.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Triple Data Encryption Standard
.

Triple Data Encryption Standard
Le Triple DES (aussi appelé DES) est un algorithme de chiffrement symétrique enchainant 
applications successives de l’algorithme DES sur le même bloc de données de  bits, avec  ou 
clés DES différentes.
Cette utilisation de trois chiffrements DES a été développée par Walter Tuchman (chef du projet
DES chez IBM), il existe en effet d’autres manières d’employer trois fois DES mais elles ne sont pas
forcément sûres.
La version de Tuchman utilise un chiffrement, suivi d’un déchiffrement pour se conclure à nouveau
par un chiffrement. Le Triple DES est généralement utilisé avec seulement deux clés différentes. Le
mode d’usage standard est de l’utiliser en mode EDE (Encryption, Decryption, Encryption, c’està-dire Chiffrement, Déchiffrement, Chiffrement) ce qui le rend compatible avec DES quand on
utilise trois fois la même clé. Dans le cas d’une implémentation matérielle cela permet d’utiliser le
même composant pour respeer le standard DES et le standard Triple DES. Dans le mode proposé
par Tuchman, voir la Figure ., DES s’écrit plus formellement de cette manière :
C=
k3
EDES
(
(
))
k2
k1
DDES EDES (M )
Une autre variante de Triple DES est celle de Carl Ellison, mais elle ne fait pas partie du standard
défini pour DES :
C=
k3
EDES
( (
( (
))))
k2
k1
T EDES T EDES (M )
où T est une fonion de transposition destinée à augmenter la diffusion. Cette fonion prend
en entrée un bloc de 8192 oets, remplit la graine d’un générateur de nombres pseudo-aléatoires
avec l’histogramme des oets, et mélange les oets du bloc grâce à la sortie du générateur. L’histogramme n’est pas changé par les permutations et donc l’opération inverse est possible. David Wagner
a proposé une attaque sur le schéma d’Ellison en .
Même quand  clés de  bits différentes sont utilisées, la force effeive de l’algorithme n’est que
de  bits (si k3 = k1 et non  bits (cas où toutes les clés sont indépendantes), à cause d’une
attaque rencontre au milieu. Cette attaque reste cependant peu praticable, en effet elle nécessite un
stockage de données de l’ordre de 256 mots de  bits, de plus ce stockage doit être « interrogeable
» en un temps très court. C’est pour éviter ce genre d’attaque que le Double DES est simplement
proscrit et que l’on passe direement à du Triple DES, le Double DES n’assure en effet qu’une force
effeive moyenne de  bits.
Bien que normalisé (par exemple par le NIST), bien connu, et assez simple à implémenter, il
est assez lent, et appelé à être remplacé par des algorithmes plus modernes tels qu’AES, également
reconnu via le NIST aux états-unis comme sûr pour tout échange d’information.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Triple DES.
.
Advanced Encryption Standard
Advanced Encryption Standard est un processus de standardisation lancé en  par le NIST
qui demande aux cryptologues de concevoir un nouvel algorithme de chiffrement par bloc destiné
au gouvernement des états-Unis. Le but était de remplacer Triple DES, qui a lui-même remplacé
temporairement le Data Encryption Standard (DES). Ce dernier étant vulnérable à un grand nombre
d’attaques cryptanalytiques et fonionne avec une clé de seulement  bits, sa sécurité n’était plus
garantie puisque une recherche exhaustive était désormais envisageable en un temps relativement
court.
Comme la spécification de AES n’est pas gardée secrète et qu’elle ne se limite pas aux états-unis
(cela était également le cas pour DES et DES), ce chiffrement est destiné à diverses utilisations,
entre autres :
—
—
—
—
Applications militaires/gouvernementales.
Produits commerciaux.
Logiciels libres.
Matériel dédié au chiffrement (routeurs, etc.)
Les exigences du nouveau standard étaient fortes car il est destiné à une utilisation intensive (prévue) jusqu’en , date à laquelle on estime que sa sécurité sera limitée de par les avancées technologiques et les recherches en cryptanalyse.
Un bloc de données de  bits a été exigé. Des clés de  et  bits devaient également être
supportées.
Le chiffrement devait bien sûr être robuste à toutes les attaques connues comme la cryptanalyse
linéaire ou différentielle. La rapidité des opérations de chiffrement/déchiffrement était primordiale,
AES n’étant pas restreint à une utilisation logicielle mais également matérielle avec des contraintes
liées aux ressources disponibles (taille de la mémoire RAM ou ROM).
 candidats furent proposés pour la première étape du concours :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Advanced Encryption Standard

CAST-, CRYPTON, DEAL, DFC, E, FROG, HPC, LOKI, MAGENTA, MARS, RC,
Rijndael, SAFER+, Serpent et Twofish.
Après une première élimination, suite à la découverte de plusieurs failles, dans un certain nombre
d’entre eux, la liste fut réduite à  candidats. Les concepteurs ont mutuellement « cryptanalysés »
leurs chiffres et ont « joué le jeu » du concours. Certains chiffres, trop lents, ont été rapidement
écartés. D’autres ont nécessité une cryptanalyse plus intensive.
Les cinq finalistes étaient :
—
—
—
—
—
MARS
RC
Rijndael
Serpent
Twofish
..
Le vainqueur
En Oobre , le NIST annonce que Rijndael de Vincent Rijmen et Joan Daemen a remporté
le concours AES et entrait dans un processus de standardisation officielle. Le  Novembre ,
AES a été approuvé dans le standard FIPS PUB  par le NIST.
..
Fonctionnement
L’algorithme prend en entrée un bloc de  bits ( oets). Les clés secrètes ont au choix suivant
la version du système  bits ( oets),  bits ( oets) ou  bits ( oets). Les données et
les clés sont découpées en oets et placées dans des tableaux. Les données comportent td =  oets
p0 , p1 , . . . , p15 qui sont classés dans un tableau ayant  lignes et  colonnes. Le tableau est rempli
colonne par colonne. De même la clé est découpée en oets (tk = 16, tk = 24 ou tk = 32 oets)
k0 , k1 , . . . , ktk´1 . Ces oets sont aussi classés dans un tableau de  lignes et Nk colonnes (Nk = ,
Nk =  ou Nk = ).
F . – Données et clés AES (cas Nk = ).
Suivant la version (la taille de la clé), le nombre de tours noté nr est différent. Le nombre nr est
donné dans le tableau suivant.
Nk
nr
  
  
Le système crée nr + 1 clés de tour ayant chacune  oets à partir de la clé initiale K. Ces clés
sont stockées dans un tableau unidimensionnel T K et sont notées T K[0], T K[1], . . . T K[nr].
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

La procédure suivante de la Figure . décrit le fonionnement global du système AES. Elle
prend en entrée un tableau de données St (texte clair) qui est modifié par la procédure et renvoyé
en sortie (texte chiffré).
F . – Algorithm  - AES(St, K).
Les procédures appelées Round, Figure ., et FinalRound, Figure ., sont elles-mêmes composées :
La procédure SubBytes, Figure ., est la seule transformation qui ne soit pas linéaire. C’est donc
grâce à celle-ci que le système est résistant. Elle utilise une opération sur le corps fini à  éléments.
Le corps fini à  éléments : Considérons le polynôme P (X) = X 8 + X 4 + X 3 + X + 1 (qui
est utilisé comme modulo).
F . – Algorithm  - Round(St, T).
Ce polynôme à coefficients dans le corps à  éléments F2 = t0, 1u est irréduible sur ce corps.
Les éléments du corps à  éléments seront les oets b7 b6 b5 b4 b3 b2 b1 b0 considérés comme des
polynômes b(X) = b7 X 7 + b6 X 6 + b5 X 5 + b4 X 4 + b3 X 3 + b2 X 2 + b1 X + b0 , ce qui nous permet
de définir les deux opérations suivantes :
Addition : a7 a6 a5 a4 a3 a2 a1 a0 + b7 b6 b5 b4 b3 b2 b1 b0 = c7 c6 c5 c4 c3 c2 c1 c0 , avec c(x) = a(x) + b(x),
ce qui donne aussi ci = ai ‘ bi .
Multiplication : (a7 a6 a5 a4 a3 a2 a1 a0 ) ‚ (b7 b6 b5 b4 b3 b2 b1 b0 ) = c7 c6 c5 c4 c3 c2 c1 c0 , avec c(x) =
a(x) ˆ b(x) mod P (x).
Par exemple :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Advanced Encryption Standard

F . – Algorithm  - FinalRound(St, T).
F . – La procédure SubBytes.
(X 6 + X 4 + X 2 + X + 1) ‚ (X 7 + X + 1)
= X 13 + X 11 + X 9 + X 8 + X 7 + X 7 + X 5
+X 3 + X 2 + X + X 6 + X 4 + X 2 + X + 1
= X 13 + X 11 + X 9 + X 8 + X 7 + X 6 + X 5 + X 4 + X 3 + 1
= X 7 + X 6 + 1 mod X 8 + X 4 + X 3 + X + 1
On a ainsi une struure de corps et donc tout élément non nul est inversible. Nous noterons g
l’application de F256 dans F256 définie par :
#
g(x) =
0
x´1
si x = 0
sinon
L’inverse d’un élément b(x) se trouve par l’algorithme d’Euclide étendu :
b(x)a(x) + m(x)c(x) = 1 et b(x) ‚ a(x) mod m(x) = 1.
Alors : b(x)´1 = a(x) mod m(x).
La fonction affine f :
Définissons b = f (a) grâce à une matrice
  
1
b7
b6  0
  
b5  0
  
b4  0
 =
b3  1
  
b2  1
  
b1  1
1
b0
Responsable : Dr. BOUROUIS Abdelhabib
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
   
0
a7
0




0 a6  1

   
0
 a5  1
   
1
 a4  ‘ 0
   
1
 a3  0
  

1 
a2  0
1 a1  1
1
a0
1
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

La matrice carrée qui intervient est une matrice circulante, elle correspond donc à une multiplication de polynômes modulo x8 ´ 1.
Ce qui correspond à b(x) = ((x4 + x3 + x2 + x + 1)a(x) mod (x8 + 1)) ‘ (x6 + x5 + x + 1).
On remarque que g ´1 = g et que f ´1 est définie par :
  
b7
0
b6  0
  
b5  1
  
b4  0
 =
b3  0
  
b2  1
  
b1  0
1
b0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
   
a7
0
0




1 a6  0

a5  0
0
   
   
0
 a4  ‘ 0
   
1
 a3  0
   
0
 a2  1

1 a1  0
1
0
a0
La procédure SubByte :
On définit alors : s(a) = f (g(a)) qui est réalisée en appliquant la transformation affine f dans
GF (2) à l’inverse de a dans GF (28 ).
On a donc aussi : s´1 (b) = g(f ´1 (b)).
Il est donc possible de se servir de la S-Box de la Figure . dont les valeurs sont en hexadécimal
pour réaliser cette transformation.
Par exemple, si ai = 53 en hexadécimal, alors bi = ED ce qui correspond à la ligne  et la colonne
.
De même, si ai = CF en hexadécimal, alors bi = 8A ce qui correpond à la ligne c et la colonne
f.
La procédure SubByte, la Figure ., applique s à chaque oet de l’entrée St.
F . – AES-S-Box.
La procédure ShiftRows
Cette procédure, Figure ., consiste à opérer une rotation à gauche sur chaque ligne du tableau
d’entrée. Le nombre de cases dont on décale la ligne i (0 ď i ď 3) est de i.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Advanced Encryption Standard

F . – Transformation SubBytes.
La transformation inverse est immédiate à calculer.
La procédure MixColumns :
La transformation MixColums, Figure ., consiste à appliquer à chaque colonne du tableau des
données une même transformation que nous allons décrire.
Considérons une colonne c = (c1 , c2 , c3 , c4 )t .
Les élément ci sont des éléments de F265 . Chaque colonne c est transformée en une colonne d
grâce à la transformation linéaire suivante donnée par sa matrice dont les coefficients sont dans F265
et que nous écrivons comme des oets en hexadécimal :
  
d0
02
d1  01
 =
d2  01
d3
03
03
02
01
01
01
03
02
01
  
01
c0
c1 
01
ˆ 
03 c2 
02
c3
Là encore la matrice utilisée est circulante. La transformation correspond en fait à une multiplication par un polynôme fixe : A(x) = 03x3 + 01x2 + 01x + 02, modulo 1 + x4 :
F . – TransformationShiftRows.
d(x) = A(x) ˆ c(x) mod x4 + 1
où
c(x) = c0 + c1 x + c2 x2 + c3 x3 ,
et
d(x) = d0 + d1 x + d2 x2 + d3 x3 .
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Transformation MixColums.
Le polynôme A(x) est premier avec x4 + 1, il est donc inversible modulo x4 + 1 est son inverse
est B(x) = 0Bx3 + 0Dx2 + 09x + 0E.
On retrouve donc c(x) à partir de d(x) en effeuant le produit
c(x) = B(x) ˆ d(x) mod x4 + 1,
ou en effeuant le produit matriciel
  
  
c0
0E 0B 0D 09
d0
c1   09 0E 0B 0D d1 
 =
  
c2  0D 09 0E 0B  ˆ d2 
c3
0B 0D 09 0E
d3
Lors de cette opération, chaque colonne est multipliée par la matrice suivante (pour une clé de 
bit) :


2 3 1 1
1 2 3 1


1 1 2 3
3 1 1 2
L’opération de multiplication est définie par : multiplication par  signifie aucun changement, la
multiplication par deux correspond au décalage vers la gauche d’une position, et la multiplication
par trois correspond à un décalage vers la gauche puis addition ‘ ou XOR avec la valeur initiale non
décalée. Après déplacement, un XOR conditionnel avec xB doit être effeuée si la valeur décalée
est plus grand que xFF.
La procédure AddRoundKey :
La procédure AddRoundKey est très simple. Elle consiste à faire un ou exclusif entre les  bits de
l’état St et les  bits de la clé de tour T . On obtient une nouvelle valeur de l’état. St := St ‘ T .
La procedure KeyExpansion :
La clé de chiffrement K stockée dans un tableau de  lignes et N k colonnes (N k = 4, 6, 8) est
étendue en un tableau W ayant  lignes et 4 ˆ nr + 1 colonnes. La clé de tour T K[i] (0 ď i ď nr)
est donnée par les  colonnes 4 ˆ i, 4 ˆ i + 1, 4 ˆ i + 2, 4 ˆ i + 3 du tableau W .
Il y a deux façons de construire le tableau W suivant que Nk = ,  ou Nk = . La procédure de
construion est nommée ExpandedKey.
) Cas N k = 4 ou N k = 6 est illustré dans la Figure .
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Advanced Encryption Standard

F . – Algorithm  - ExpandedKey(K,W) Cas .
La procédure utilise la fonion s sur les oets définie précédemment. Elle utilise aussi des constantes
de F256 ,
données par RC[i] = αi , où α est l’élément de F256 correspondant au polynôme X(α = 02).
L’élévation à la puissance i se fait dans le corps F256 .
) Cas N k = 8 est illustré dans la Figure ..
..
Déchiffrement
Le déchiffrement consiste à appliquer les opérations inverses, dans l’ordre inverse et avec des sousclés également dans l’ordre inverse.
En commençan par le dernier bloc chiffré. L’opération InvShiftRows est l’inverse de ShiftRows. Les
oets des  dernières lignes sont décalés à droite de façon cyclique selon l’indice de la ligne.
La première ligne demeure inchangée. La dexième est décalée par . La troisième par  et la dernière
par .
L’opération InvSubBytes est l’inverse de SubBytes, dans laquelle la S-box inverse est appliquée (inverse de la transformation affine suivie de la multiplication inverse dans GF (2)).
La Fgure . illustre la boite S-Box inverse utilisée par AES.
L’opération InvMixColumns est l’inverse de MixColumns. Elle opère sur les données colonne par
1
colonne Tel que : a ��1 (x) = 0bx3 + 0dx2 + 09x + 0e.
c(x) = a´1 (x)d(x) mod X 4 + 1, ou en effeuant le produit matriciel
  
  
0E 0B 0D 09
d0
c0
c1   09 0E 0B 0D d1 
  
 =
c2  0D 09 0E 0B  ˆ d2 
d3
0B 0D 09 0E
c3
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

F . – Algorithm  - ExpandedKey(K,W) Cas .
F . – S-Box inverse d’AES.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Advanced Encryption Standard

L’opération AddRoundKey, est l’inverse d’elle même puisqu’elle n’effeue qu’un XOR.
1
F . – Algorithm  - AES ��1 (St,K).
F . – Algorithm  - InvRound(St, T).
F . – Algorithm  - InvFinalRound(St, T).
..
Attaques
Il n’existe pas de clés faibles ni semi-faibles dans ce cryptosystème.
L’AES n’a pour l’instant pas été cassé et la recherche exhaustive (à force brute à) demeure la seule solution. Rijndael a été conçu de telle manière à rendre des méthodes classiques comme la cryptanalyse
linéaire ou différentielle très difficiles.
Attaques sur des versions simplifiées :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

C  : Crptographie symétrique ‫ﺘﺸﻔﻴﺭ ﻤﺘﻤﺎﺜل‬

Des attaques existent sur des versions simplifiées d’AES. Niels Ferguson et son équipe ont proposé
en  une attaque sur une version à  tours de l’AES  bits. Une attaque similaire casse un
AES de  ou  bits contenant  tours. Un AES de  bits peut être cassé s’il est réduit à 
tours avec une contrainte supplémentaire. En effet, cette dernière attaque repose sur le principe des
à related-keys à (clés apparentées).
Dans une telle attaque, la clé demeure secrète mais l’attaquant peut spécifier des transformations
sur la clé et chiffrer des textes à sa guise. Il peut donc légèrement modi ?er la clé et regarder comment
la sortie de l’AES se comporte.
Attaques sur la version compète :
Certains groupes ont affirmé avoir cassé AES complet mais après vérification par la communauté
scientifique, il s’avérait que toutes ces méthodes étaient erronées. Cependant, plusieurs chercheurs
ont mis en évidence des possibilités d’attaques algébriques, notamment l’attaque XL et une version
améliorée, la XSL. Ces attaques ont été le sujet de nombreuses controverses et leur efficacité n’a pas
encore été pleinement démontrée, le XSL faitappel à une analyse heuristique dont la réussite n’est
pas systématique. Deplus, elles sont impraticables car le XSL demande au moins 287 opérations voire
2100 dans certains cas. Le principe est d’établir les équations (quadratiques / booléennes) qui lient
les entrées aux sorties et de résoudre ce système qui ne comporte pas moins de  inconnues et
 équations pour  bits. La solution de ce système reste pour l’instant impossible à déterminer. En l’absence d’une preuve formelle sur l’efficacité d’attaques similaires au XSL, l’AES est donc
considéré comme sûr. On peut toutefois parier que dans les années à venir, les avancées en cryptanalyse et la relative simplicité de la struure d’AES devraient ouvrir des brèches dans l’algorithme. Si
pareille découverte venait à se produire, des méthodes similaires à AES comme Camellia pourraient
rapidement devenir obsolètes.
Recommandations de la NSA :
La NSA a annoncé que tous les finalistes qui avaient participé au concours AES pouvaient être
considérés comme sûrs et qu’ils étaient suffisamment robustes pour chiffrer les données non-classifiées
du gouvernement américain. En juin , le gouvernement américain a en effet annoncé :
« L’architeure et la longueur de toutes les tailles de clés de l’algorithme AES (,  et )
sont suffisantes pour protéger des documents classi ?és jusqu’au niveau »SECRET« . Le niveau
»TOP SECRET« nécessite des clés de  ou  bits. L’implémentation de l’AES dans des produits
destinés à la proteion des systèmes et/ou documents liés à la sécurité nationale doit faire l’objet
d’une analyse et d’une certification par la NSA avant leur acquisition et leur utilisation »
Autres attaques :
Cette dernière phrase prend tout son sens lorsqu’on sait que des attaques sont possibles sur des systèmes défaillants. On peut en effet analyser la consommation élerique (des pics de consommation
indiqueraient des calculs lourds) ou encore le temps nécessaire au chiffrement. Ce genre d’attaque
vise surtout des systèmes à boites noires à dans lesquels une clé secrète constante est codée dans le
matériel et utilisée pour chiffrer plusieurs messages, par exemple des cartes à puce.
On peut toutefois se demander pourquoi aucun concours officiel n’a été lancé pour promouvoir
la recherche d’attaques sur AES. Dans ce domaine, la méthode de chiffrement asymétrique RSA
remporte la palme avec plusieurs concours dotés de gains élevés.
.
Password-based cryptography
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

Chapitre 
Cryptographie asymétrique
Sommaire
.
.
.
.
.
.
.
.
Principe . . . . . . . . . . . . . . . . . . . . . . .
Fondement théorique . . . . . . . . . . . . . . . .
Authentification de l’origine . . . . . . . . . . . . .
Transmission sécurisée de la clé symétrique . . . . .
Bases mathématiques . . . . . . . . . . . . . . . .
.. Petit théorème de Fermat . . . . . . . . . .
.. Propriétés de la congruence modulo n dans Z
.. éorème de Bachet-Bézout . . . . . . . . .
.. Algorithme d’Euclide étendu . . . . . . . .
... L’algorithme . . . . . . . . . . .
.. éorème des Restes Chinois . . . . . . . .
... Exemple  . . . . . . . . . . . .
... Exemple  . . . . . . . . . . . .
... éorème . . . . . . . . . . . . .
... Solution  . . . . . . . . . . . . .
... Solution  . . . . . . . . . . . .
... Généralisation . . . . . . . . . .
.. Indicatrice d’Euler . . . . . . . . . . . . . .
... Propriétés . . . . . . . . . . . . .
.. Calcul de la puissance modulaire . . . . . .
Rivest Shamir Adleman . . . . . . . . . . . . . . .
.. Création des clés . . . . . . . . . . . . . .
.. Chiffrement et déchiffrement du message . .
Cryptosystème de ElGamal . . . . . . . . . . . . .
.. Fonionnement . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .

























Principe
L
a cryptographie asymétrique, ou cryptographie à clé publique, est une méthode de chiffrement
qui s’oppose à la cryptographie symétrique. Elle repose sur l’utilisation d’une clé publique
(qui est diffusée) et d’une clé privée (gardée secrète), l’une permettant de coder le message et l’autre
de le décoder. Ainsi, l’expéditeur peut utiliser la clé publique du destinataire pour coder un message


C  : Cryptographie asymétrique
que seul le destinataire (en possession de la clé privée) peut décoder, garantissant la confidentialité
du contenu. Inversement, l’expéditeur peut utiliser sa propre clé privée pour coder un message que le
destinataire peut décoder avec la clé publique ; c’est le mécanisme utilisé par la signature numérique
pour authenti ?er l’auteur d’un message.
Tels que la connaissance de k (la clé de chiffrement) ne permet pas d’en déduire celle de K (la clé
de déchiffrement). Un tel cryptosystème est dit asymétrique, la clé k est appelée la clé publique, la
clé K est appelée la clé privée.
F . – Cryptographie asymétrique (à clé publique et privée).
.
Fondement théorique
Montrer que la recherche de K à partir de k revient à résoudre un problème mathématique notoirement très compliqué, c’est à dire demandant un grand nombre d’opérations et beaucoup de
mémoire pour effeuer les calculs.
La cryptographie asymétrique est fondée sur l’existence de fonctions à sens unique. Une fois la
fonion appliquée à un message, il est extrêmement difficile de retrouver le message original. En
réalité, on utilise des fonctions à sens unique et à brèche secrète. Une telle fonion est difficile à
inverser, à moins de posséder une information particulière, tenue secrète, nommée clé privée.
RSA (l’algorithme le plus utilisé à l’heure auel) la déduion de K à partir de k revient à résoudre
le problème de faorisation d’un grand nombre un problème sur lequel travaille les mathématiciens
depuis plus de  ans, On estime que le plus rapide ordinateur que l’on puisse construire utilisant
la meilleure méthode connue met plus de  ans pour retrouver la clé privée d’un système RSA
utilisant un modulo de  bits (ordre de grandeur de la taille des clés).
.
Authentification de l’origine
D’autre part, l’utilisation par Alice de sa clé privée sur le condensat d’un message, permettra à Bob
de vérifier que le message provient bien d’Alice : il appliquera la clé publique d’Alice au condensat
fourni (condensat chiffré avec la clé privée d’Alice) et retrouve donc le condensat original du message.
Il lui suffira de comparer le condensat ainsi obtenu et le condensat réel du message pour savoir si
Alice est bien l’expéditeur. C’est donc ainsi que Bob sera rassuré sur l’origine du message repu : il
appartient bien à Alice. C’est sur ce mécanisme notamment que fonionne la signature numérique.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Transmission sécurisée de la clé symétrique
.

Transmission sécurisée de la clé symétrique
La cryptographie asymétrique répond à un besoin majeur de la cryptographie symétrique : le
partage sécurisé d’une clé entre deux correspondants, afin de prévenir l’interception de cette clé
par une personne tierce non autorisée, et donc la leure des données chiffrées sans autorisation.
Les mécanismes de chiffrement symétrique étant moins coûteux en temps de calcul, ceux-ci sont
préférés aux mécanismes de chiffrement asymétrique. Cependant toute utilisation de clé de chiffrement symétrique nécessite que les deux correspondants se partagent cette clé, c’est-à-dire la connaissent
avant l’échange. Ceci peut être un problème si la communication de cette clé s’effeue par l’intermédiaire d’un medium non sécurisé, « en clair ». Afin de pallier cet inconvénient, on utilise un
mécanisme de chiffrement asymétrique pour la seule phase d’échange de la clé symétrique, et l’on
utilise cette dernière pour tout le reste de l’échange.
.
Bases mathématiques
..
Petit théorème de Fermat
En mathématiques, le petit théorème de Fermat est un résultat de l’arithmétique modulaire, qui
peut aussi se démontrer avec les outils de l’arithmétique élémentaire. Il s’énonce comme suit :
« Si p est un nombre premier et si a est un entier non divisible par p (premier avec p), alors
ap´1 ´ 1 est un multiple de p. Autrement dit, ap´1 ” 1 mod p. »
Un énoncé équivalent est :
« Si p est un nombre premier et si a est un entier quelconque, alors ap ´ a est un multiple de p.
Autrement dit, ap = a mod p »
F . – Pierre de Fermat - Première décennie du XVIIe siècle à Beaumont-de-Lomagne (France) - 
janvier  à Castres (France).
Il doit son nom à Pierre de Fermat, qui l’énonce la première fois en  sans apporter de démonstration.
Voici quelques exemples (basés sur le second énoncé) :
‹ 53 ´ 5 = 120 ” 0 mod 3 ou 53 = 125 ” 5 mod 3.
‹ 72 ´ 7 = 42 ” 0 mod 2.
‹ 25 ´ 2 = 30 ” 0 mod 5.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Cryptographie asymétrique
‹ (´3)7 + 3 = ´2184 ” 0 mod 7.
‹ 297 ´ 2 = 158456325028528675187087900670 ” 0 mod 97.
Une légère généralisation du théorème s’énonce de la manière suivante :
Si p est un nombre premier et si m et n sont des entiers striement positifs tels que m ” n
mod p ´ 1 alors, pour tout entier a : am ” an mod p.
Le petit théorème de Fermat est généralisé par le théorème d’Euler :
Pour tout entier naturel non nul n et tout entier a premier avec n, on a aφ(n) ” 1 mod n.
où φ(n) désigne la fonion φ d’Euler comptant les entiers entre 1 et n qui sont premiers avec n.
Si n est un nombre premier, alors φ(n) = n ´ 1, on retrouve le petit théorème de Fermat.
F . – Leonhard Paul Euler -  avril  à Bâle (Suisse) -  septembre  (à  ans) à
Saint-Pétersbourg (Russie).
..
Propriétés de la congruence modulo n dans Z
Soit n un entier naturel non nul. Considérons dans la relation notée telle que pour tous entiers
relatifs x et y :
x ” y mod n ô x ´ y est un multiple de n dans Z ô Dk tel que x ´ y = kn
Il s’agit d’une relation d’équivalence et on appelle cette relation congruence modulo n dans Z.
x ” y mod n se lit : « x est congru à y modulo n ».
Pour des entiers relatifs x1 , x2 , y1 , y2 , λ et tout entier naturel non nul n on a :
$
x1 + x2 ” y1 + y2 mod n
’
’
#
’
&
x1 ” y1 mod n
x1 ´ x2 ” y1 ´ y2 mod n
ñ
’
x2 ” y2 mod n
x1 x2 ” y1 y2 mod n
’
’
%
λx1 ” λy1 mod λn
@ c P Z, si x1 ” y1 mod n alors x1 + c ” y1 + c mod n
@ c P Z, si x1 ” y1 mod n alors x1 c ” y1 c mod n
Il en découle que : si x1 ” y1 mod n alors ´ x1 ” ´y1 mod n
@ k P Z˚+ , si x1 ” y1 mod n, alors xk1 ” y1k mod n
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Bases mathématiques
(x1 + x2 )
(x1 x2 )
..

mod n = (x1 + (x2 mod n))
= ((x1 mod n) + x2 )
= ((x1 mod n) + (x2
mod n
mod n
mod n))
mod n = (x1 (x2 mod n)) mod n
= ((x1 mod n)x2 ) mod n
= ((x1 mod n)(x2 mod n))
mod n
mod n
éorème de Bachet-Bézout
C’est un résultat d’arithmétique élémentaire, qui prouve l’existence de solutions à l’équation diophantienne linéaire :
a ¨ x + b ¨ y = P GCD(a, b)
Il s’annonce comme suit :
Etant donnés deux entiers relatifs a et b non tous deux nuls, si d est le PGCD de a et de b alors il
existe deux entiers relatifs x et y tels que x ¨ a + y ¨ b = d.
Deux entiers relatifs a et b sont premiers entre eux si et seulement s’il existe deux entiers relatifs x et
y tels que x ¨ a + y ¨ b = 1.
..
Algorithme d’Euclide étendu
Il s’agit d’une variante de l’algorithme d’Euclide qui permet, à partir de deux entiers x et y, de
calculer non seulement leur plus grand commun diviseur (PGCD), mais aussi un de leurs couples
de coefficients de Bézout (deux entiers α et β tels que αx + βy = P GCD(x, y)). Quand x et x
sont premiers entre eux, α est alors l’inverse pour la multiplication de x modulo y, ce qui est un cas
particulièrement utile. L’algorithme d’Euclide étendu fournit également une méthode efficace non
seulement pour déterminer quand une équation diophantienne ax + by = c possède une solution,
ce que permet déjà l’algorithme d’Euclide simple, mais également pour en calculer dans ce cas une
solution particulière, dont on déduit facilement la solution générale.
...
L’algorithme
On présente, sous forme de suite, le calcul du PGCD et des coefficients de Bézout pour deux
entiers naturels x et y. Le quotient (entier) de x par y est noté q. Pour x = 120 et y = 23 (on pose
toujours x ě y), on vérifiera que le calcul conduit aux quatres colonnes ri , qi , αi et βi de l’exemple.
L’initialisation consiste en :
. Pour i = 0 : r0 = x dans ce cas (x = 120), q0 =indéfinie, α0 = 1 et β0 = 0.
. Pour i = 1 : r1 = y dans ce cas (y = 23), q1 = quotion de division de ri´1 = r0 = x = 120
par ri = r1 = y = 23, α1 = 0 et β1 = 1.
Par la suite et pour chaque étape i :
‹ ri = le reste de la division de ri´2 par ri´1
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Cryptographie asymétrique
i ri qi αi βi
0 120 - 1 0
1 23 5 0 1
i ri qi αi
βi
0 120 - 1
0
1 23 5 0
1
2 5 4 1 ´5
3 3 1 ´4 21
4 2 1 5 ´26
5 1 2 ´9 47
6 0
-
(a) Initialisation.
(b) Déroulement des calculs.
T . – Etapes de calcul des coefficients de Bézout par l’algorithme d’Euclide étendu.
‹ qi = quotient de ri´1 par ri
‹ αi = αi´2 ´ qi´1 ˆ αi´1
‹ βi = βi´2 ´ qi´1 ˆ βi´1
Les calculs sont effeués jusqu’à avoir ri = 0. La ligne avant (pour i ´ 1) donne les valeurs
souhaitées :
α = αi´1 et β = βi´1 .
Dans le cas étudié, α = ´9 et β = 47. Donc, 123 ˆ (´9) + 23 ˆ 47 = P GCD(125, 23) = 1
Le PGCD de x et y est le dernier reste non nul. Autrement dit, P GCD(x, y) = ri´1 .
..
éorème des Restes Chinois
Le théorème des restes chinois est un résultat d’arithmétique modulaire traitant la résolution de
systèmes de congruences. Ce résultat, établi initialement pour Z/nZ, se généralise en théorie des
anneaux. Ce théorème est utilisé en théorie des nombres. La forme originale du théorème, contenue
dans un livre du mathématicien chinois Qin Jiushao publié en .
...
Exemple 
Combien l’armée de Han Xing comporte-t-elle de soldats si, rangés par  colonnes, il reste deux
soldats, rangés par  colonnes, il reste trois soldats et, rangés par  colonnes, il reste deux soldats ?
...
Exemple 
Une bande de  pirates possède un trésor constitué de pièces d’or d’égale valeur. Ils projettent de
se les partager également, et de donner le reste au cuisinier chinois. Celui-ci recevrait alors  pièces.
Mais les pirates se querellent, et six d’entre eux sont tués. Un nouveau partage donnerait au cuisinier
 pièces. Dans un naufrage ultérieur, seuls le trésor, six pirates et le cuisinier sont sauvés, et le partage
donnerait alors  pièces d’or à ce dernier. Quelle est la fortune minimale que peut espérer le cuisinier
s’il décide d’empoisonner le reste des pirates ?
...
éorème
Soient n1 , . . . , nk des entiers deux à deux premiers entre eux. Autrement dit, P GCD(ni , nj ) = 1
ś
lorsque i ‰ j. Alors pour tous entiers a1 , . . . , ak , il existe un entier x, unique modulo n = ki=1 ni
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Bases mathématiques

et tel que
x ” a1 mod n1
...
x ” ak mod nk
Une solution x peut être trouvée comme suit :
Pour chaque i, les entiers ni et n̂i = nni = n1 . . . ni´1 ni+1 . . . nk sont premiers entre eux, et
d’après le théorème de Bachet-Bézout on peut trouver (en utilisant par exemple l’algorithme d’Euclide étendu) des entiers ui etvi , tels que ui ni + vi n̂i = 1. Si on pose ei = vi n̂i , alors nous avons
ei ” 1 (mod ni )
et
ei ” 0 (mod nj ) pour j ‰ i.
Une solution particulière de ce système de congruences est par conséquent
x=
k
ÿ
ai ei ,
i=1
et les autres solutions sont les entiers congrus à ce x modulo le produit n.
...
Solution 
Le problème des soldats se réduit à
x ” 2 mod 3
x ” 3 mod 5
x ” 2 mod 7
On obtient alors
n = 3 ˆ 5 ˆ 7 = 105
n1 = 3 et n̂1 = 35 , or 2n̂1 ” 1 mod 3 donc e1 = 70
n2 = 5 et n̂2 = 21 , or n̂2 ” 1 mod 5 donc e2 = 21
n3 = 7 et n̂3 = 15 , or n̂3 ” 1 mod 7 donc e3 = 15
Une solution pour x est alors x = 2 ˆ 70 + 3 ˆ 21 + 2 ˆ 15 = 233
et les solutions sont tous les entiers congrus à 233 modulo 105, c’est-à-dire à 23 modulo 105.
...
Solution 
Le problème des pirates se réduit à :
x ” 3 mod 17
x ” 4 mod 11
x ” 5 mod 6
On obtient alors
n = 17 ˆ 11 ˆ 6 = 1122
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Cryptographie asymétrique
n1 = 17 et n̂1 = 66 , or 8n̂1 ” 1 mod 17 donc e1 = 66 ˆ 8 = 528
n2 = 11 et n̂2 = 102 , or 4n̂2 ” 1 mod 11 donc e2 = 102 ˆ 4 = 408
n3 = 6 et n̂3 = 187 , or 6n̂3 ” 1 mod 6 donc e3 = 187
Une solution pour x est alors x = 3 ˆ 528 + 4 ˆ 408 + 5 ˆ 187 = 4151
et les solutions sont tous les entiers congrus à 4151 modulo 1122, c’est-à-dire à 785 modulo 1122.
...
Généralisation
Si certains modules ne sont pas premiers entre eux (D ni , nj : P GCD(ni , nj ) ‰ 1 ^ i ‰ j), alors
il faut déduire de nouvelles équations en se basant sur les équations initiales et sur la faorisation
des ni . Par exemple :
#
x ” 1 mod 2
x ” 1 mod 6 ô
x ” 1 mod 3
#
x ” 1 mod 3
x ” 4 mod 15 ô
x ” 4 mod 5
$
#
’
&x ” 1 mod 2
x ” 1 mod 6
ô x ” 1 mod 3
’
x ” 4 mod 15
%
x ” 4 mod 5
Un autre exemple :
x ” 1 mod 9 ô x ” 1 mod 3
#
x ” 1 mod 3
x ” 4 mod 15 ô
x ” 4 mod 5
#
#
x ” 1 mod 9
x ” 1 mod 9
ô
x ” 4 mod 15
x ” 4 mod 5
..
Indicatrice d’Euler
La fonion indicatrice est aussi appelée fonion phi d’Euler ou simplement la fonion phi, car la
lettre φ est communément utilisée pour la désigner. Elle est nommée en l’honneur du mathématicien
suisse Leonhard Euler (-) qui fut le premier à l’étudier.
L’indicateur d’Euler φ est la fonion de l’ensemble N˚ des entiers striement positifs dans luimême qui à n associe le nombre d’entiers striement positifs inférieurs ou égaux à n et premiers
avec n.
φ(n) = card(tm P N˚ | m ď n et m premier avec nu).
Exemples :
‹ φ(12) = card(t1, 5, 7, 11u) = 4
‹ φ(13) = card(t1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12u) = 12
‹ φ(14) = card(t1, 3, 5, 9, 11, 13u) = 6
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Bases mathématiques
...

Propriétés
n désigne un entier striement positif.
‹
‹
‹
‹
La valeur φ(n) est égale au nombre de générateurs d’un groupe cyclique d’ordre n.
La valeur φ(n) est égale à l’ordre du groupe des éléments inversibles de l’anneau Z/nZ.
Si u et v sont deux entiers striement positifs et premiers entre eux, alors φ(u.v) = φ(u).φ(v).
Un entier p ą 0 est premier si et seulement si φ(p) = p ´ 1.
Pour le calcul de n, il vaut mieux faoriser en un produit de nombres premiers pi :
)
q (
q
q
ź
ź
ź
1
ki ´1
ki
(pi ´ 1)pi
=n
1´
pi alors φ(n) =
Si n =
pi
i=1
i=1
i=1
Où ki est un entier striement positif.
..
Calcul de la puissance modulaire
Le calcul de y = xn mod m où n P N˚ , m P N˚ et x P Z˚ avec x ă m peut se faire de plusieurs
manières.
Si on procède naïvement (direement) d’abord au calcul de xn , on risque de provoquer un dépassement de capacité en plus du nombre considérable d’opérations (n ´ 1 multiplications et une
division = n) effeuées (complexité de l’algorithme soujacent O(n)).
Les calculs de proche en proche permettent d’éviter le dépassement de capacité. Après chaque
multiplication on applique le modulo. Cela augmente le nombre d’opérations nécessaires à 2(n´1).
Bien que les opérations prennent pourtant moins de temps que précédemment (moins d’échanges
entre cache ou antémémoire et mémoire/moins d’utilisation du swapping dans le cas de mémoire
virtuelle). L’algorithme profite de la propriété suivante :
b1 ” b mod m et c1 ” c mod m ñ b1 c1 ” bc mod m
Par exemple, pour obtenir 51063 mod 2159, on peut faire les calculs suivants :
5 mod 2159 = 5 ;
52 mod 2159 = 25 ;
53 mod 2159 = 25 ˆ 5 mod 2159 = 125 ;
54 mod 2159 = 125 ˆ 5 mod 2159 = 625 ;
55 mod 2159 = 625 ˆ 5 mod 2159 = 3125 = 966 ; etc.
Un calcul efficace de ces produits successifs est possible. On peut faire mieux et plus rapidement,
à moindre frais. Prenons un exemple simple, sans se préoccuper pour le moment du modulo.
Pour calculer a128 , il est maladroit d’effeuer les 127 produits successifs qui définissent la puissance. Pour avoir le résultat, il vaut beaucoup mieux procéder ainsi :
calcul de a2 , puis de a4 , a8 , a16 , a32 , a64 et enfin a128 , ce qui ne demandera que 7 élévations au
carré successives.
Mais si l’exposant n’est pas une puissance de 2 ?
Prenons par exemple a96 : à défaut d’être lui-même une puissance de 2, 96 s’écrit comme somme
de deux puissances de 2 : 96 = 64 + 32. Par suite, a96 = a64 ˆ a32 , dont le calcul résulte des
élévations au carré obtenues plus haut.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Cryptographie asymétrique
La méthode peut toujours être mise en œuvre car écrire un nombre sous la forme d’une somme
de puissances de 2 revient à décomposer ce nombre dans la base 2.
Par exemple : 1063 = (10000100111)2
On déduit la décomposition de 1063 en somme de puissances de 2 :
1063 = 210 + 25 + 22 + 21 + 20 = 1024 + 32 + 4 + 2 + 1.
On peut écrire : a1063 = a(1+2+4+32+1024) = a ˆ a2 ˆ a4 ˆ a32 ˆ a1024
On procède ensuite à des élévations au carré successives à partir de a :
a , a2 , a4 , a8 , a16 , a32 , a64 , a128 , a256 , a512 , a1024
Il nous n’intéresse que ceux entourés, qui permettent d’obtenir a1063
Remarquons qu’ils correspondent en fait à des 1 dans la représentation binaire. Il suffit de faire le
produit de ces entiers, éventuellement modulo un autre entier, pour avoir le résultat cherché.
Cela se traduit par l’algorithme suivant :
Algorithme . : E- Calcule une puissance modulaire.

Entrées : x, n, m : entiers. m est le module et n est l’exposant (entiers striement positifs.),
x est un entier non nul.
Sorties : y le réseltat de xn mod m
yÐ1
tant que n ą 0 faire
si n mod 2 = 1 alors
y Ð xy mod m
X \
n Ð n2
x Ð x2 mod m

retourner y





Une autre version de l’algorithme moins lisible et intuitive est donnée ci-dessous :
Algorithme . : E- Calcule une puissance modulaire.












Entrées : x, n, m : entiers. m est le module et n est l’exposant (entiers striement positifs.),
x est un entier non nul.
Sorties : y le résultat de xn mod m
si n mod 2 ‰ 0 alors
yÐx
sinon
yÐ1
répéter X \
n Ð n2
si n ‰ 0 alors
x Ð x ˆ x mod m
si n mod 2 ‰ 0 alors
y Ð y ˆ x mod m
jusqu’à n = 0
retourner y
Une autre piste consiste à utiliser la récursivité, avec l’avantage d’une écriture relativement simple
et naturelle. Supposons que l’on cherche à calculer xn mod m. On peut alors écrire :
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Rivest Shamir Adleman

$
’
&x,
puissance(x, n) = puissance(x2 , n/2),
’
%
x ˆ puissance(x2 , (n ´ 1)/2),
sin = 1
sinpair est
sin ą 2impair est
Alors :
n
Si n est pair, xn mod m est égal (x2 ) 2 mod m
Si n est impair, xn mod m est égal x(x2 )
n´1
2
mod m
On peut en déduire l’écriture d’une fonion récursive. L’exposant n est amené ainsi à avoir des
valeurs de plus en plus petites, par divisions par  successives. Il finira par valoir , et dans ce cas, on
sait que la valeur à retourner est x.
Algorithme . : E-- Calcule une puissance modulaire de façon récursive.


Entrées : x, n, m : entiers. m est le module et n est l’exposant (entiers striement positifs.),
x est un entier non nul.
Sorties : y le résultat de xn mod m
si n mod 2 = 0 alors
y Ð xy mod m

yÐ1
tant que n ą 0 faire
si n mod 2 = 1 alors
y Ð xy mod m
X \
n Ð n2
x Ð x2 mod m

retourner y





Algorithme . : EMR Calcule une puissance modulaire de façon récursive.







.
Entrées : x, n, m : entiers. m est le module et n est l’exposant (entiers striement positifs.),
x est un entier non nul.
Sorties : le résultat de xn mod m
si n mod 2 = 0 alors
retourner (ExpModRec(x2 , n/2, m)) mod m
sinon
si n ‰ 1 alors
retourner (xExpModRec(x2 , (n ´ 1)/2, m)) mod m
sinon
retourner x
Rivest Shamir Adleman
Rivest Shamir Adleman ou RSA est un algorithme asymétrique de cryptographie à clé publique,
très utilisé dans le commerce éleronique, et plus généralement pour échanger des données confidentielles sur Internet.
Cet algorithme a été décrit en  par Ron Rivest, Adi Shamir et Len Adleman, d’où le sigle RSA.
RSA a été breveté par le MIT en  aux états-Unis. Le brevet a expiré le  septembre . En
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Cryptographie asymétrique
, c’est le système à clé publique le plus utilisé (carte bancaire française, de nombreux sites web
commerciaux ….).
(a) De gauche à droite : Ron Rivest, Adi
Shamir et Len Adleman ().
(b) Au M.I.T.
F . – Ron Rivest, Adi Shamir et Len Adleman.
Ronald Rivest, Adi Shamir et Leonard Adleman, dans « A Method for Obtaining Digital Signatures
and Public-key Cryptosystems », ont publié l’idée d’utiliser les anneaux Z/nZ et le petit théorème de
Fermat pour obtenir des fonions trappes, ou fonions à sens unique à brèche secrète. RSA repose
sur le calcul dans les groupes Z/nZ, plus précisément sur l’exponentiation modulaire. Voici une
description des principes mathématiques sur lesquels repose l’algorithme RSA.
Toutefois, le passage des principes à la pratique requiert de nombreux détails techniques qui ne
peuvent pas être ignorés, sous peine de voir la sécurité du système anéantie. Par exemple, il est
recommandé d’encoder le message en suivant l’OAEP (Optimal Asymmetric Encryption Padding).
..
Création des clés
. Choisir p et q, deux nombres premiers distins.
. Noter n leur produit, appelé module de chiffrement : n = pq.
. Calculer l’indicatrice d’Euler de n : ϕ(n) = (p ´ 1)(q ´ 1).
. Choisir e, un entier premier avec ϕ(n), appelé exposant de chiffrement.
. Comme e est premier avec ϕ(n), il est, d’après le théorème de Bachet-Bézout, inversible
mod ϕ(n), c’est-à-dire qu’il existe un entier d tel que e.d ” 1 mod ϕ(n) où d est l’exposant de déchiffrement.
Le couple (n, e) est appelé clé publique, alors que le couple (n, d) est appelé clé privée.
..
Chiffrement et déchiffrement du message
Si M est un entier inférieur à n représentant un message, alors le message chiffré sera représenté
par C ” M e mod n.
Pour déchiffrer C, on utilise d, l’inverse de e modulo ϕ(n) et on calcule C d mod n.
On a alors, C d mod n ” (M e )d mod n ” M ed mod n
Comme ed ” 1 mod ϕ(n) par définition de modulo, on a ed = 1+kϕ(n) = 1+k(p´1)(q´1),
avec k P N.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Cryptosystème de ElGamal

Or, pour tout entier M, M 1+k(p´1)(q´1) ” M mod p et M 1+k(p´1)(q´1) ” M mod q.
En effet,
‹ Si M est premier avec p alors, d’après le petit théorème de Fermat, M p´1 ” 1 mod p donc
M k(p´1)(q´1) ” 1 mod p puis M 1+k(p´1)(q´1) ” M mod p
‹ Si M n’est pas premier avec p, comme p est un nombre premier, cela signifie que M est multiple
de p donc M 1+k(p´1)(q´1) ” 0 ” M mod p
(un raisonnement analogue prouve la congruence modulo q)
L’entier M 1+k(p´1)(q´1) ´ M est donc un multiple de p et de q. Comme p et q sont premiers (et
premiers entre eux), une conséquence du lemme de Gauss permet d’affirmer que M 1+k(p´1)(q´1) ´
M est un multiple de pq, c’est-à-dire de n.
On a donc : C d ” M ed ” M 1+k(p´1)(q´1) ” M mod n
On constate que pour chiffrer un message, il suffit de connaitre e et n. En revanche pour déchiffrer,
il faut d et n.
Pour calculer d à l’aide de e et n, il faut trouver l’inverse de e modulo (p´1)(q ´1) ce qui nécessite
de connaitre les entiers p et q, c’est-à-dire la décomposition de n en faeurs premiers.
Dans la pratique, deux problèmes majeurs apparaissent :
‹ choisir un nombre premier de grande taille
‹ calculer M = C d mod n
Une méthode simple pour choisir un nombre premier de grande taille est de créer une suite aléatoire de bits, puis de le tester avec le test de primalité. Un problème apparait pour cette deuxième
opération : la méthode naïve serait d’utiliser le crible d’Eratosthène, mais elle est trop lente. En
pratique, on utilise un test de primalité probabiliste (test de primalité de Fermat par exemple). Ce
test n’assure pas que le nombre est premier, mais il y a une forte probabilité pour qu’il le soit. On
peut également utiliser un test de primalité déterministe en temps polynomial qui assure que le
nombre est premier (comme le test de primalité AKS). Bien que moins rapide, il assure la primalité
du nombre.
Le calcul de M = C d mod n peut être assez long. Calculer d’abord C d , puis calculer le modulo
avec n est coûteux en temps et en calculs. Dans la pratique, on utilise l’exponentiation modulaire.
On peut conserver une forme différente de la clé privée pour permettre un déchiffrement plus
rapide à l’aide du théorème des restes chinois.
.
Cryptosystème de ElGamal
L’algorithme ElGamal est un algorithme de cryptographie asymétrique basé sur les logarithmes
discrets. Il a été créé par Taher Elgamal. Cet algorithme est utilisé par le logiciel libre GNUPrivacy
Guard, de récentes versions de PGP, et d’autres systèmes de chiffrement, et n’a jamais été sous la
proteion d’un brevet contrairement à RSA. Il peut être utilisé pour le chiffrement et la signature
éleronique. L’algorithme DSA du NIST est basé sur ElGamal.
Lorsque nous travaillons avec des nombres réels, logb (y) est la valeur x, telle que bx = y. Nous
pouvons définir un logarithme discret analogue. Si b et n des entiers , avec n ă b, le logarithme
discret d’un entier y à la base b est un nombre entier x, tel que bx = y mod n.
Le logarithme discret est aussi appelé indice (index), et nous écrivons x = indb,n y.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Cryptographie asymétrique
F . – Taher Elgamal.
Bien qu’il soit assez facile d’élever un nombre à de grandes puissances modulo p,le calcul inverse
du logarithme discret est beaucoup plus difficile. Le système El Gamal repose sur la difficulté de ce
calcul.
..
Fonctionnement
. Alice calcule h = g x avec g, h P Z‹p pour un grand nombre premier p, g étant un élément
générateur de Z‹p , et divulgue sa clé publique (p, g, h). La valeur x est sa clé privée.
. Si Bob veut envoyer un message à Alice, il convertit d’abord son message sous la forme d’un
nombre m P Z‹p .
. Bob génère un nombre entier k aléatoirement et calcule c1 = g k et c2 = m.hk Il envoie
(c1 , c2 ) à Alice.
. Alice peut reconstruire le message initial m en calculant c2 /cx1 . En réalité, elle calcule le nombre
α = p ´ 1 ´ x. Elle calcule ensuite m = cα1 c2 mod p et retrouve le message initial.
On remarque que :
mhk
mg xk
c2
=
=
=m
cx1
g xk
g xk
Il n’est pas obligatoire d’utiliser Z‹p . Tout groupe cyclique convient.
Casser l’algorithme ElGamal est dans la plupart des cas au moins aussi difficile que de calculer
le logarithme discret. Cependant, il est possible qu’il existe des moyens de casser l’algorithme sans
résoudre le problème du logarithme discret.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

Chapitre 
Echange de clés
Sommaire
.
.
Cryptographie quantique . . . . . . .
.. Introduion . . . . . . . . . .
.. Historique . . . . . . . . . . .
.. Fonionnement . . . . . . . .
Echange de clés Diffie-Hellman . . . .
.. Principe . . . . . . . . . . . .
.. Exemple concret . . . . . . . .
.. Fondement mathématique . .
.. L’attaque de l’homme du milieu
.
Cryptographie quantique
..
Introduction
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .









L
a cryptographie quantique, plus correement nommée distribution quantique de clés, désigne
un ensemble de protocoles permettant de distribuer une clé de cryptage secrète entre deux
interlocuteurs distants, tout en assurant la sécurité de la transmission grâce aux lois de la physique
quantique et de la théorie de l’information.
Cette clé secrète peut ensuite être utilisée dans un algorithme de chiffrement symétrique, afin de
chiffrer et déchiffrer des données confidentielles.
..
Historique
Stephen Wiesner a émis pour la première fois, au début des années , l’idée de pouvoir utiliser
les phénomènes quantiques dans des applications liées à la sécurité. Dans son article fondateur, il
introduit le concept de codage sur des observables conjuguées, et l’illustre par une technique de
conception de billets de banques infalsifiables. Curieusement, cet article sera rejeté par l’IEEE au
cours des années , et ne sera ?nalement publié qu’en  dans SIGACT News.
A la suite de la publication de cet article, Charles H. Bennett et Gilles Brassard proposent en 
la première technique de cryptographie quantique proprement dite, qui se fonde sur les observables
conjuguées de Wiesner.


C  : Echange de clés
En , de façon indépendante du travail de Bennett et Brassard, Artur Ekert, alors doorant
au Wolfson College de l’université d’Oxford, développe une approche de cryptographie quantique
différente, fondée sur les corrélations quantiques pouvant exister entre deux photons, un phénomène
nommé intrication quantique.
Ces deux protocoles, généralement abrégés en BB et E, sont largement reconnus comme
les deux protocoles fondateurs de la cryptographie quantique moderne. La majorité des protocoles
auels ont d’ailleurs été développés en s’inspirant de ceux-ci.
La communication de données confidentielles par un canal de transmission classique (par exemple
Internet) nécessite l’utilisation d’algorithmes de cryptographie classiques : algorithmes de chiffrement asymétrique ou de chiffrement symétrique. Dans le cas du chiffrement symétrique, les deux
interlocuteurs doivent posséder a priori une clé secrète, c’est-à-dire qui ne soit connue que d’eux
deux.
Se pose alors la question suivante : comment transmettre une clé de cryptage entre deux interlocuteurs () à distance, () à la demande, et () avec une sécurité démontrable ? Auellement, la
technique se rapprochant au mieux de ces trois critères est une transmission physiquement sécurisée,
de type valise diplomatique.
La cryptographie quantique cherche à répondre à ces trois critères en transmettant de l’information
entre les deux interlocuteurs en utilisant des objets quantiques, et en utilisant les lois de la physique
quantique et de la théorie de l’information pour déteer tout espionnage de cette information. S’il
n’y a pas eu espionnage, une clé parfaitement secrète peut être extraite de la transmission, et celle-ci
peut être utilisée dans tout algorithme de chiffrement symétrique a ?n de transmettre un message.
Le système de cryptographie quantique est utilisé uniquement pour générer et transmettre une clé,
et non le message en lui-même pour deux raisons essentielles :
. Les bits d’informations communiqués par les mécanismes de la cryptographie quantique ne
peuvent être qu’aléatoires. Ceci ne convient pas pour un message, mais convient parfaitement
bien à une clé secrète, qui doit être aléatoire.
. Même si le mécanisme de la cryptographie quantique garantit que l’espionnage de la communication sera toujours déteé, il est possible que des bits d’informations entrent en possession
de l’espion avant que celui-ci ne soit déteé. Ceci est inacceptable pour un message, mais sans
importance pour une clé aléatoire qui peut être simplement jetée en cas d’interception.secrète,
qui doit être aléatoire.
..
Fonctionnement
Lors d’un protocole de cryptographie quantique, deux interlocuteurs distants (généralement nommés Alice et Bob) disposent :
. D’objets quantiques, c’est-à-dire d’objets physiques qui se comportent selon les lois de la physique quantique. En pratique, ces objets sont toujours des impulsions lumineuses (des photons), qui peuvent prendre plusieurs formes : photons uniques, états cohérents, paires de photons intriqués, etc.
. D’un canal quantique, qui permet le transit des impulsions lumineuses. Il peut s’agir d’une
fibre optique, qui permet facilement de guider la lumière, ou de l’air libre, auquel cas Alice et
Bob doivent se faire face.
. Enfin, d’un canal classique de communication (comme Internet), qui doit être authentifié :
Alice doit être certaine qu’elle parle bien à Bob.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Cryptographie quantique

Entre Alice et Bob se trouve un espion, aussi appelé adversaire, qu’il est d’usage de nommer Eve (de
l’anglais eavesdropper). Eve a accès à tout ce qui transite entre Alice et Bob, classique ou quantique,
et n’est limitée que par les lois de la physique. En revanche, elle ne peut pas accéder aux systèmes
d’Alice et de Bob, qui sont supposés physiquement sécurisés.
F . – Cryptographie quantique.
Alice code tout d’abord une information aléatoire sur chaque impulsion lumineuse, puis l’envoie
à Bob par le canalquantique.Celui-ci mesure alors l’information que porte l’impulsion qu’il a reçu.
Après la transmission, Bob possède donc un ensemble de mesures qui sont corrélées aux données
envoyées par Alice, mais qui ont pu être espionnées par Eve.
L’une des propriétés fondamentales de la cryptographie quantique est la capacité des deux interlocuteurs à déteer la présence de l’espion, mais aussi à évaluer précisément la quantité d’information
que celui-ci a intercepté.
Ceci résulte de deux aspes fondamentaux de la mécanique quantique :
. D’après le théorème de non-clonage, il est impossible de dupliquer un objet quantique inconnu,
. Le postulat de réduion du paquet d’onde entraine que réaliser une mesure sur un objet
quantique perturbe généralement l’objet en question.
Si Eve cherche à obtenir de l’information sur l’état de l’objet qui transite par le canal quantique,
elle introduit donc des anomalies (bruit ou erreurs), qui peuvent être déteées par Alice et Bob.
Il est possible d’établir formellement un lien entre la quantité d’anomalies et la quantité d’information interceptée par Eve, grâce à des démonstrations mathématiques appelées preuves de sécurité,
qui combinent les lois de la physique quantique et de la théorie de l’information.
Information secrète résiduelle :
Alice et Bob évaluent tout d’abord le niveau d’erreurs et de bruit séparant leurs deux ensembles de
données.
Les différences entre leurs données peuvent provenir de :
‹ L’intervention d’Eve, qui rajoute des erreurs et du bruit
‹ Les erreurs et le bruit de fond, qui ne peuvent jamais être évités complètement.
Néanmoins, puisque les erreurs de communication et les effets de l’observation d’Eve ne peuvent
pas être distingués, Alice et Bob doivent supposer que toutes les incohérences sont dues à l’aion
d’un espion.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Echange de clés
Ensuite, grâce aux preuves de sécurité et à ce niveau de bruit, Alice et Bob peuvent évaluer la quantité d’information qui a été interceptée par Eve, notée IE . En parallèle, la théorie de l’information
leur permet d’évaluer la quantité d’information qu’ils partagent après la transmission, IAB .
Finalement, si la quantité d’information ∆I = IAB ´ IE reste supérieure à zéro, c’est-à-dire que
le niveau d’espionnage reste en dessous d’un certain seuil, alors une clé secrète de taille maximale ?I
peut être extraite de la transmission.
Dans le cas contraire, aucune extraion n’est possible, et l’échange doit donc être interrompu.
Extraction de la clé :
S’il reste un avantage à Alice et Bob après l’évaluation de l’information secrète résiduelle, ils peuvent
lancer l’extraion de la clé proprement dite. Souvenons-nous qu’Alice et Bob ne partagent pas encore
une clé, mais des données corrélées.
L’extraion est composée de deux étapes : la réconciliation et l’amplification de confidentialité.
Réconciliation :
La réconciliation consiste à générer une chaine de bits partagée par Alice et Bob à partir des données
corrélées, en particulier à l’aide d’un algorithme de correion d’erreurs. Pour ce faire, l’émetteur ou
le récepteur utilise un code correeur pour générer un ensemble de syndromes, qu’il envoie à l’autre
partie afin qu’elle puisse corriger ses données. Puisque le canal classique de transmission n’est pas
crypté, ces informations sont supposées connues de l’espion. Il est donc impératif d’en envoyer aussi
peu que possible, afin de ne pas lui apporter trop d’information.
Amplification de confidentialité :
L’amplification de confidentialité est une technique qui transforme la clé corrigée en une clé secrète
plus petite.
Les bits de la clé passent au travers d’un algorithme qui répartit l’ignorance de l’espion sur la clé
finale. De cette manière, l’information de l’espion sur la clé finale peut être rendue arbitrairement
petite.
En première approximation, la taille de la clé secrète finale est égale à la « taille » de l’information
partagée avant réconciliation, diminuée du nombre de bits connus (ou supposés connus) par l’espion,
et diminuée du nombre de bits publiés lors de la correion d’erreur.
.
Echange de clés Diffie-Hellman
En cryptographie, l’échange de clés Diffie-Hellman, du nom de ses auteurs Whitfield Diffie et
Martin Hellman, inventée en , est une méthode par laquelle deux personnes nommées conventionnellement Alice et Bob peuvent se mettre d’accord sur un nombre (qu’ils peuvent utiliser comme
clé pour chiffrer la conversation suivante) sans qu’une troisième personne appelée Eve puisse découvrir le nombre, même en ayant écouté tous leurs échanges¹.
..
Principe
. Alice et Bob ont choisi un groupe (soit un corps fini, dont ils n’utilisent que la multiplication,
soit une courbe elliptique) et une génératrice g de ce groupe².
. Standard IETF RFC .
. g est une racine primitive de p sachant que p est un grand nombre premier.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Echange de clés Diffie-Hellman
(a) Merkle, Hellman et Diffie
(s).

(b) Whitfield Diffie.
(c) Martin-Hellman.
F . – Whitfield Diffie et Martin Hellman.
. Alice choisit un nombre au hasard a (1 ă a ă p ´ 1), élève g à la puissance a, et dit à Bob g a
mod p.
. Bob fait de même avec le nombre b (1 ă b ă p ´ 1). Autrement dit,Bob élève g à la puissance
b, et dit à Alice g b mod p.
. Alice, en élevant le nombre reçu de Bob à la puissance a, obtient g ba mod p.
. Bob fait le calcul analogue et obtient g ab mod p, qui est le même. Mais puisqu’il est difficile
d’inverser l’exponentiation dans un corps fini, c’est-à-dire de calculer le logarithme discret, Eve
ne peut pas découvrir a et b, donc ne peut pas calculer g ab mod p.
F . – Déroulement de l’échange de clés Diffie-Hellman.
..
Exemple concret
. Alice et Bob choisissent un nombre premier p et une base g. Dans notre exemple, p = 23 et
g = 5.
. Alice choisit un nombre secret a = 6.
. Elle envoie à Bob la valeur g a mod p = 56 [23] = 8.
. Bob choisit à son tour un nombre secret b = 15.
. Bob envoie à Alice la valeur g b mod p = 515 [23] = 19.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Echange de clés
. Alice peut maintenant calculer la clé secrète : (g b mod p)a mod p = 196 [23] = 2.
. Bob fait de même et obtient la même clé qu’Alice : (g a mod p)b mod p = 815 [23] = 2.
F . – Schéma général pour l’échange de clés Diffie-Hellman.
F . – Exemple concret d’échange de clés Diffie-Hellman..
..
Fondement mathématique
La méthode utilise la notion de groupe (multiplicatif ), par exemple celui des entiers modulo p,
où p est un nombre premier (dans ce cas, les opérations mathématiques (multiplication, puissance,
division) sont utilisées telles quelles, mais le résultat doit être divisé par p pour ne garder que le reste,
appelé modulo). Les groupes ayant la propriété de l’associativité, l’égalité (g b )a = (g a )b est valide et
les deux parties obtiennent bel et bien la même clé secrète.
La sécurité de ce protocole réside dans la difficulté du problème du logarithme discret : pour que
Eve retrouve g ab à partir de g a et g b , elle doit élever l’un ou l’autre à la puissance b ou à la puissance a
respeivement. Mais déduire a (resp.b) de g a (resp. g b ) est un problème que l’on ne sait pas résoudre
efficacement. Eve est donc dans l’impossibilité (calculatoire) de déduire des seules informations g a ,
g b , g et p, la valeur de g ab .
Il faut toutefois que le groupe de départ soit bien choisi et que les nombres utilisés soient suffisamment grands pour éviter une attaque par recherche exhaustive. A l’heure auelle, un nombre
premier p de l’ordre de  chiffres ainsi que a et b de l’ordre de  chiffres sont tout simplement impossibles à casser même avec les meilleurs algorithmes de résolution du logarithme discret.
Si une solution pratique pour résoudre un logarithme discret venait à apparaître, d’autres systèmes
cryptographiques pourraient tomber, notamment le système d’El Gamal, qui repose sur le même
principe.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Echange de clés Diffie-Hellman
..

L’attaque de l’homme du milieu
Ce protocole est vulnérable à l’attaque de l’homme du milieu, qui implique un attaquant capable
de lire et de modifier tous les messages échangés entre Alice et Bob. Cette attaque repose sur l’interception de g a et g b , ce qui est facile puisqu’ils sont échangés en clair ; l’élément g étant supposé connu
par tous les attaquants. Pour retrouver les nombres a et b et ainsi casser complètement l’échange, il
faudrait calculer le logarithme discret de g a et g b , ce qui est impossible en pratique.
Mais dans l’attaque de l’homme du milieu, l’attaquant se place entre Alice et Bob, intercepte la
1
clé g a envoyée par Alice et envoie à Bob une autre clé g a , se faisant passer pour Alice. De même, il
1
remplace la clé g b envoyée par Bob à Alice par une clé g b , se faisant passer pour Bob.
1
L’attaquant peut ainsi communiquer avec Alice en utilisant la clé partagée g ab et communiquer
1
avec Bob en utilisant la clé partagée g a b .
Alice et Bob croient ainsi avoir échangé une clé secrète alors qu’en réalité ils ont chacun échangé
une clé secrète avec l’attaquant, l’homme du milieu.
Solution
La parade classique à cette attaque consiste à signer les échanges de valeurs à l’aide d’une paire
de clés asymétriques certifiées par une tierce partie fiable, ou dont les moitiés publiques ont été
échangées auparavant par les deux participants.
Alice peut ainsi être assurée que la clé qu’elle reçoit provient effeivement de Bob, et inversement
pour Bob.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


Responsable : Dr. BOUROUIS Abdelhabib
C  : Echange de clés
Sécurité informatique — -
:::::::::::::::::::::::::::

Chapitre 
Fonctions de hachage
Sommaire
.
.
.
.
.
.
Introduction . . . . . . . . . . . . . . . . . . . . . . . .
Propriétés des fonctions de hachage . . . . . . . . . . . .
.. Preimage resistance . . . . . . . . . . . . . . . .
.. nd preimage resistance . . . . . . . . . . . . . .
.. Collision resistance . . . . . . . . . . . . . . . .
.. Fonion de compression. . . . . . . . . . . . . .
.. Pseudo-collision . . . . . . . . . . . . . . . . . .
.. Effet avalanche . . . . . . . . . . . . . . . . . .
... Motivations . . . . . . . . . . . . . .
.. Critère d’avalanche strie . . . . . . . . . . . . .
.. Critère d’indépendance Bit . . . . . . . . . . . .
Construction de fonctions de hachage . . . . . . . . . . .
MAC basée sur une fonction de hachage . . . . . . . . .
MAC basée sur un chiffre symétrique par bloc CBC-MAC
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .














Introduction
O
n nomme fonion de hachage une fonion particulière qui, à partir d’une donnée fournie
en entrée, calcule une empreinte servant à identifier rapidement, bien qu’incomplètement,
la donnée initiale. Les fonions de hachage sont utilisées en informatique et en cryptographie.
F . – Fonion de hachage appliquée à  entrées différentes.


C  : Fonctions de hachage
Le résultat d’une fonion de hachage peut être appelé selon le contexte somme de contrôle, empreinte, hash, résumé de message, condensé, condensat ou encore empreinte cryptographique
lorsque l’on utilise une fonion de hachage cryptographique. On l’appelait autrefois aussi signature, mais cette terminologie est moins utilisée afin d’éviter une confusion avec son sens juridique :
le hachage est en effet aussi employé pour les signatures numériques.
F . – Fonion de hachage itérative.
.
Propriétés des fonctions de hachage
Une fonion de hachage h est une fonion h : t0, 1u˚ Ñ t0, 1un
..
Preimage resistance
Etant donné une sortie y, il est difficile de trouver x tel que h(x) = y. ” à sens unique. En d’autres
termes, on ne peut pas trouver une fonion qui permet d’inverser le processus de hachage.
..
nd preimage resistance
Etant donné une entrée x, il est difficile de trouver x1 tel que h(x1 ) = h(x). ” faible résistance
aux collisions.
Autrement dit, une fonion de hachage est résistante aux collisions faibles s’il est difficile de
construire des messages différents possédant la même empreinte. On entend par calculatoirement
difficile voir impossible en un temps raisonnable même avec l’aide d’ordinateurs très puissants. Cette
définition empêche un éventuel attaquant de modifier le message signé d’une personne et ainsi imiter
sa signature.
..
Collision resistance
Il est difficile de trouver x et x1 tel que h(x) = h(x1 ). ” résistance forte aux collisions.
Idée : calculer une version condensée y d’un message m. Le condensé/résumé devrait être spécifique
à ce message.
. Utiliser y au lieu de m de façon sûre.
. As-tu reçu m correement ? Voici y pour vérifier. (partage de fichier)
. As-tu déchiffré c correement ?
. Je signe y pour prouver que j’ai écrit m
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Propriétés des fonions de hachage
..

Fonction de compression.
Une fonion f : t0, 1um Ñ t0, 1un où n ă m est appelée une fonion de compression.
Si la fonion de compression f est résistante au collisions, alors la fonion de hachage h obtenue
est résistante aux collisions.
Une fonction de hachage sans clé (en anglais unkeyed) est aussi appelée Modification/Manipulation Detection Code (MDC). On peut s’en servir pour s’assurer de l’intégrité d’un message.
Une fonction de hachage avec clé (en anglais keyed) est aussi appelée Message Authentication
Code (MAC).
Elle a un paramètre additionnel (la clé) qui permet de vérifier l’intégrité et la provenance du message en même temps.
F . – Schéma général d’une fonion de hachage.
Ã�tant donnée une valeur k et un message x, la valeur hk (x) est facile à calculer. Ce résultat est
souvent appelé valeur MAC.
hk (x) a une valeur fixe de n bits, pour toute valeur de k et toute entrée x.
Ã�tant donné un ensemble de couples (xi , hk (xi)), il est impossible de créer un nouveau message
x différent de tous les messages xi et telle que pour un certain i : hk (x) = hk (xi )
..
Pseudo-collision
En cryptographie, on parle de pseudo-collision pour désigner deux résultats issus d’une même
fonion de hachage qui présentent des similitudes significatives. Une signature A et une signature
B peuvent par exemple avoir % de leur bits en commun lorsque on les compare deux par deux.
La recherche de pseudo-collisions précède la découverte d’une faille, nommée collision compète qui
rend la fonion de hachage « non-cryptographique ».
Une attaque qui recherche des pseudo-collisions n’est pas très utile à priori mais peut s’avérer fatale
si l’empreinte générée par la fonion de hachage est tronquée ou est soumise à une transformation
particulière qui la rend plus vulnérable (par exemple, prendre un bit sur deux pour faire une empreinte plus courte).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


..
C  : Fonctions de hachage
Effet avalanche
L’effet avalanche est une propriété recherchée dans les fonions de hachage cryptographiques et les
algorithmes de chiffrement par bloc. Elle provoque des modifications de plus en plus importantes
au fur et à mesure que les données se propagent dans la struure de l’algorithme. De ce fait, en
perturbant un seul bit en entrée, on obtient idéalement une sortie totalement différente, (soit environ  bit sur deux sera changé) d’où le nom de ce phénomène. L’effet avalanche permet de rendre
l’inversion de la fonion plus difficile grâce à ses propriétés chaotiques (s’il est bien conçu).
Le terme a été inventé par Horst Feistel mais le concept remonte à la théorie de Shannon sur la
diffusion. En , le concept se voit précisé avec le « critère d’avalanche strie ».
...
Motivations
La diffusion des modifications sur les entrées est très importante. Si ce n’est pas le cas et que les
sorties présentent un biais statistique, il serait possible d’établir des prédiions sur les entrées à
partir de l’observation des sorties. L’effet avalanche est donc recherché lors de la conception d’une
primitive de chiffrement. Pour ces raisons, la plupart des chiffrements par bloc utilisent le produit
de plusieurs sous-chiffrements. Les fonions de hachage emploient des blocs de grande taille pour
faciliter la diffusion.
F . – Effet avalanche.
..
Critère d’avalanche stricte
Le critère d’avalanche strie (Stri Avalanche Criterion) est une propriété des fonions booléennes utilisées en cryptographie. Il a été introduit par Webster et Tavares en . Une fonion
satisfait ce critère si pour toute inversion d’un seul bit en entrée alors chaque bit en sortie a une
chance sur deux d’être modifié.
L’uniformisation des sorties a pour but d’empêcher les prédiions dues à un biais statistique.
..
Critère d’indépendance Bit
Le bit independence criterion (BIC) indique que les bits J et K en sortie doivent changer de
manière autonome et indépendante lorsque un bit quelconque i est inversé, et cela pour tout i, j
et k.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Construion de fonions de hachage
.

Construction de fonctions de hachage
Dans le cadre des fonions de hachage cryptographiques, la construion de Merkle-Damgård est
unec onstruion algorithmique qui permet de résoudre le problème du hachage cryptographique
en acceptant un message de taille quelconque tout en produisant une sortie de taille fixe, et en
satisfaisant les contraintes de sécurité liées à la cryptographie :
‹ Résistance aux collisions (difficulté de trouver deux messages distins qui produisent la même
empreinte)
‹ Résistance aux attaques sur les préimages (difficulté de trouver un message à partir de son
empreinte, difficulté de forger un deuxième message produisant la même empreinte que le
premier)
La construion de Merkle-Damgård emploie une fonion de compression avec une entrée et
une sortie de taille fixe, et divise le message à hacher en blocs de taille fixe. Les blocs sont ensuite
envoyés les uns après les autres dans la fonion de compression. Le résultat de chaque compression
est ensuite transmis au bloc suivant selon plusieurs schémas :
‹ Miyaguchi-Preneel
‹ Matyas-Meyer-Oseas
‹ Davies-Meyer
Dans ces schémas :
. Le premier bloc utilise un veeur d’initialisation IV constant puisque aucun autre bloc ne le
précède.
. Un chiffrement symétrique par bloc EK générique de n-bits de paramètre K (une clé K) ;
. Une funion g qui transforme les n bits d’entrée en une clé K adaptée pour E (si les clés pour
E sont également de longueur n, g est la fonion identité).
Alors pour :
. Matyas-Meyer-Oseas : H = IV ; Hi = Eg(Hi− ) (xi ) ‘ xi .
. Davies-Meyer : H = IV ; Hi = Exi (Hi− ) ‘ Hi− .
. Miyaguchi-Preneel : H = IV ; Hi = Eg(Hi− ) (xi ) ‘ xi ‘ Hi− .
La construion de Merkle-Damgård produit un hachage résistant aux collisions pour autant que la
fonion de compression utilisée est également résistante aux collisions. De la qualité de la fonion
de compression dépendra la résistance de l’algorithme à la cryptanalyse. Le principe de MerkleDamgård est utilisé notamment dans MD et SHA-.
Voici une liste non exhaustive de fonions de hachage les plus utilisées : AR, Boognish, FFThash, HAS-, Hava, MD, MD, MD, MD, N-hash, PANAMA, RIPEMD, RIPEMD-,
RIPEMD-, RIPEMD-, SHA-, SHA-, SHA-, SHA-, SHA-, SHA-, Snefru,
StepRightUp, Tiger, VSH, Whirlpool.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Fonctions de hachage
F . – Schéma détaillé d’une fonion de hachage.
F . – Construion de fonions de hachage.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. MAC basée sur une fonion de hachage
.

MAC basée sur une fonction de hachage
Il est possible de construire un MAC en se basant sur une fonion de hachage existante en combinaison avec une clé secrète. Ce type de MAC est dit Hash-based message authentication code ou
HMAC. La construion et l’analyse des HMACs ont été publiées pour la première fois en  par
Mihir Bellare, Ran Canetti, et Hugo Krawczyk (qui a écrit la RFC ). FIPS PUB  généralise
et standardise l’utilisation des HMACs.
N’importe quelle fonion itérative de hachage, comme MD ou SHA-, peut être utilisée dans
le calcul d’un HMAC ; le nom de l’algorithme résultant est HMAC-MD ou HMAC-SHA-. La
qualité cryptographique du HMAC dépend de la qualité cryptographique de la fonion de hachage
et de la taille et la qualité de la clé.
La fonion HMAC est définie comme suit :
(
)
(
)
HMACK (m) = h (K ‘ opad) || h (K ‘ ipad) || m
Tels que :
‹ h : une fonion de hachage itérative,
‹ K : la clé secrète complétée avec des zéros pour qu’elle atteigne la taille de bloc de la fonion
h,
‹ m : le message à authentifier,
‹ « || » désigne une concaténation et ‘ un ou exclusif,
‹ ipad et opad, chacune de la taille d’un bloc, sont des constantes définies par : ipad = 0x363636 . . . 3636
et opad = 0x5c5c5c . . . 5c5c. Donc, si la taille de bloc de la fonion de hachage est , ipad
et opad sont 64 répétitions des oets, respeivement, 0x36 et 0x5c.
La figure . illustre le fonionnement global de HMAC SHA-.
F . – HMAC SHA-.
HMAC-SHA- et HMAC-MD sont utilisés dans les protocoles IPsec et TLS.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Fonctions de hachage
.
MAC basée sur un chiffre symétrique par bloc CBC-MAC
Il est possible de définir une MAC en se basant sur un chiffre symétrique par bloc connu. CBCMAC est l’un des algorithmes de MAC de ce genre. Il est basé sur un chiffrement par bloc utilisé
selon un mode d’opération CBC (cipher block chaining). Ce principe a été formulé en  dans
un standard du NIST (FIPS PUB , Standard on Computer Data Authentication). On le retrouve
aussi dans les standards ANSI X. et ISO/IEC .
Pour chiffrer, les données sont découpées en blocs de taille adéquate (selon le chiffrement par bloc
utilisé, au minimum un chiffrement par bloc de  bits). Les blocs sont chiffrés les uns après les
autres, le résultat chiffré du bloc précédent est transmis au bloc suivant.
Soit Ek (Mi ) l’opération de chiffrement sur un bloc de données Mi avec la clé k.
F . – Fonionnement de CBC-MAC.
Le chiffrement se fait comme suit (illustré par la figure .) :
. Les données sont découpées en blocs de taille fixe M0 , . . . , Mn´1 avec un remplissage selon la
norme PKCS# pour le dernier bloc,
. Soit C0 = 0 un veeur d’initialisation,
. Les blocs sont traités au fur et à mesure : Ci+1 = Ek (Ci ‘ Mi )
Le code d’authentification correspond à une partie du dernier bloc chiffré Cn´1 (extraion de 
à  bits dans le standard du NIST).
F . – CBC-MAC avec chiffrement du dernier bloc.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

Chapitre 
Signature digitale
Sommaire
.
.
.
.
.
.
.
.
Introduction . . . . . . . . . . . . . . . . . . . . . . . .
Fonctionnement . . . . . . . . . . . . . . . . . . . . . .
.. Signatures avec appendices . . . . . . . . . . . .
.. Signatures avec recouvrement . . . . . . . . . . .
.. Signatures basées sur les certificats/sur l’identité . .
.. Signature déterministe/probabiliste . . . . . . . .
Attaques . . . . . . . . . . . . . . . . . . . . . . . . . .
Déclinaisons . . . . . . . . . . . . . . . . . . . . . . . .
Signature de Rabin . . . . . . . . . . . . . . . . . . . .
Digital Signature Standard et Digital Signature Algorithm
Schemas de signature basés sur RSA . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .











Introduction
L
a signature numérique est un mécanisme permettant d’authentifier l’auteur d’un document
éleronique et de garantir son intégrité, par analogie avec la signature manuscrite d’un document papier. Une signature digitale apporte la non-répudiation à l’origine. Le signataire ne peut
convaincre un tiers qu’il n’est pas le signataire, il ne peut répudier sa signature.
Un mécanisme de signature numérique doit présenter les propriétés suivantes :
‹ Il doit permettre au leeur d’un document d’identifier la personne ou l’organisme qui a apposé
sa signature.
‹ Il doit garantir que le document n’a pas été altéré entre l’instant où l’auteur l’a signé et le
moment où le leeur le consulte.
Pour cela, les conditions suivantes doivent être réunies :
‹ Authentique : L’identité du signataire doit pouvoir être retrouvée de manière certaine.
‹ Infalsifiable : La signature ne peut pas être falsifiée. Quelqu’un ne peut se faire passer pour un
autre.
‹ Non réutilisable : La signature n’est pas réutilisable. Elle fait partie du document signé et ne
peut être déplacée sur un autre document.
‹ Inaltérable : Un document signé est inaltérable. Une fois qu’il est signé, on ne peut plus le
modifier.


C  : Signature digitale
‹ Irrévocable : La personne qui a signé ne peut le nier.
La signature éleronique n’est devenue possible qu’avec la cryptographie asymétrique. Elle se différencie de la signature écrite par le fait qu’elle n’est pas visuelle, mais correspond à une suite de
nombres.
Un schéma de signature numérique est définie par trois algorithmes : l’algorithme de génération
de clés, l’algorithme de signature, et l’algorithme de vérification.
.
Fonctionnement
Supposons que l’on dispose d’un algorithme de chiffrement à clé publique. Notons CA , la fonion
de chiffrement et DA celle de déchiffrement. Rappelons que la fonion DA est connue de tous, par
la clé publique associée à l’algorithme, tandis que CA n’est connue que par la propriétaire légitime
de ce couple de fonions, Alice, qui seule détient la clé privée.
Lorsque Alice souhaite signer un message M , elle calcule S = CA (M ). Toute personne disposant
du message M et de la signature S peut alors vérifier qu’Alice est à l’origine de la signature en
calculant DA (S). Si cette quantité est bien égale à M , alors on peut être certain qu’Alice est l’auteur
de la signature, car seule elle peut produire CA (M ), puisqu’elle est la seule à connaitre CA et que
cette fonion est bijeive. On peut être également sûr que le message n’a pas été altéré. En effet,
pour altérer le message, il faudrait également altérer la signature de manière cohérente, ce qui n’est
possible que si l’on dispose de CA .
Pour être un peu plus précis, ce n’est jamais un message M qu’Alice signe, mais l’empreinte de M
par une fonion de hachage. La sûreté de la signature dépend alors du soin apporté au choix de la
fonion de hachage.
Il faut, qu’étant donné un message et son empreinte, il soit très difficile de fabriquer un message
ayant une empreinte (et donc une signature) égale. L’intérêt de la fonion de hachage est de permettre de signer une quantité de données beaucoup plus petite que le message entier (et de longueur
fixe).
La signature numérique nécessite souvent l’utilisation de certificats éleroniques. Ceux-ci sont générées par des autorités de certification (CA), qui permettent d’identifier de façon unique la personne
(ou l’entité) qui détient les clés publique et privée : ils peuvent être vus comme la carte d’identité
numérique de cette personne ou entité.
En plus de ce rôle, les certificats peuvent permettre de chiffrer des informations.
Une signature digitale est produite par un algorithme de génération de signatures digitales et est
vérifiée par un algorithme de vérification de signatures digitales Un schéma de signatures digitales
consiste en un algorithme de génération de signatures digitales associé à son algorithme de vérification Il existe deux classes de schémas de signatures :
. Avec appendice (où le message original doit être fournit à l’algorithme de vérification)
. Avec recouvrement (où le message original est récupéré à partir de la signature).
..
Signatures avec appendices
Chaque signataire a une clé privée pour signer et une clé publique correspondante pour vérifier
les signatures produites. Soient M un ensemble fini de messages, S un ensemble fini de signatures
et K un ensemble fini de paires de clés (publique et secrète).
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Fonionnement

Pour toute paire de clés publique et privée (k, k 1 ), il existe un algorithme de signature avec appendice Sigk1 et un algorithme de vérification correspondant V erk tels que la signature d’un message
x est
y = Sigk1 (x) : M Ñ S
et
V erk (x, y) : M ˆ S Ñ tvrai, f auxu
PKCS# proposé par RSA Lab est un exemple.
..
Signatures avec recouvrement
Soient M un ensemble fini de messages, MS un ensemble fini de messages signables, S un ensemble fini de messages signés et K un ensemble fini de paires de clés (publique et secrète) Pour
toute paire de clé publique et secrète (k, k 1 ), il existe un algorithme de signature avec recouvrement
Sigk1 qui applique MS Ñ S, une fonion de redondance R : M Ñ MS et un algorithme de
vérification correspondant V erk : S Ñ MS tels que la signature d’un message x est
y = Sigk1 (R(x))
et
x1 = V erk (x)
1
Si x1 R MS alors la signature est rejetée, sinon la signature est acceptée et le message x = R ��1 (x1 )
est récupéré. ISO/IEC  est un exemple.
..
Signatures basées sur les certificats/sur l’identité
Une autre manière de classifier les signature est de savoir la manière d’approuver la clé publique
utilisée pour la vérification. La problème majeur dans la gestion des clés asymétriques est comment
garantir que la clé publique qu’on détient appartient bien à celui qu’on le pense bien être. Dans
les signatures basées sur les certificats, la clé publique est attestée par un tiers de confiance, connu
sous le nom autorité de certification ou CA, qui délivre un certificat permettant d’attester que la clé
publique en question appartient à l’entité corree. Ceci est connu sous le nom de Infrastructure à
Clé Publique ou public-key infrastructure (PKI).
L’alternative à l’utilisation d’une PKI est un système basé sur l’identité. La clé publique peut être
direement dérivée de l’identité de la personne (par exemple, à partir de son adresse e-mail). Cela
supprime le besoin de certificats, du fait que la clé publique est direement liée à l’identité de
l’entité avec laquelle on communique. Cependant, l’utilisation d’un système basé sur l’identité pose
des contraintes sur la la clé publique. Si une entité avec une certaine identité souhaite utiliser le
système alors sa clé publique doit être liée à son identité. Cela signifie que la clé publique est fixé à
l’avance, et que la clé privée doit être calculée ensuite par l’algorithme de génération de clés.
..
Signature déterministe/probabiliste
Selon le cryptosystème asymétrique utilisé, une signature digitale peut être déterministe où un
message est signé par une entité toujours d’une seule manière (même signature). Elle peut être probabiliste dans le sens où pour chaque message et entité, plusieurs signatures peuvent être associées
et une seule est obtenue à la fois de façon probabiliste.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Signature digitale
.
Attaques
Le but d’un adversaire est de forger une signature au nom d’un tiers.
Si un adversaire forge ainsi toutes les signatures qu’il désire au nom d’un tiers, le schéma de signature est dit totalement cassé.
Si un adversaire peut forger des signatures pour certains messages, le schéma de signature est dit
sélectivement forgeable.
Si un adversaire peut forger au moins une signature dont il ne contrôle par le contenu, le schéma
de signature est dit existentiellement forgeable.
.
Déclinaisons
Historiquement, les premières signatures ont été individuelles. Elles ont été introduites par la suite :
‹ Les signatures de groupe où un membre ayant sa propre clé peut signer pour le groupe, le
responsable du groupe (identifié par sa propre clé) pouvant seul établir qui a émis la signature.
‹ Les signatures de cercle, qui leur sont similaires, mais où il n’est plus possible d’identifier individuellement le signataire.
Des variantes existent comme les K parmi N , où K la signature est considérée comme valable si K
membres du groupe parmi les N définis ont signé. Ce système sera utilisé par exemple lorsque l’autorisation de plusieurs services sera nécessaire pour déclencher un dispositif d’une gravité dépassant
les prérogatives de chacun d’eux.
Tel serait le cas par exemple pour une procédure de mise sur écoute téléphonique nécessitant les
accords à la fois d’une instance autorisée de l’exécutif et d’une instance autorisée du législatif. On
interdit ainsi l’usage de renseignements d’états à des fins personnelles, puisque le déblocage nécessite
une coordination externe qui sera donc elle-même tracée.
.
Signature de Rabin
Proposée par Michael O. Rabin en  (parmi les premiers schémas). Elle est existentiellement
forgeable.
. Génération des clés
‹ Soit n la clé publique telle que n = pq avec p et q deux grands premiers formant la clé
secrète.
. Génération de la signature
Soit le message m à signer :
‹ m
r =?R(m) où R est la fonion de redondance
‹ s= m
r mod n et s est la signature de m
. Vérification de la signature
Soit la signature s fournie :
‹ m
r = s2 mod n
‹ si m
r P Ms alors m = R´1 (m),
r sinon la signature est rejetée
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Digital Signature Standard et Digital Signature Algorithm
.

Digital Signature Standard et Digital Signature Algorithm
Proposé par Kravitz est adopté par plusieurs instances dont le NIST en , puis finalement
adopté en , DSS (Digital Signature Standard) est la norme de signature numérique du gouvernement Américain. Elle se base sur l’algorithme DSA (Digital Signature Algorithm), qui utilise
SHA comme fonion de hachage à sens unique et Elgamal pour la génération et la vérification de
la signature.
Il s’agit d’un schéma de signature digitale basé sur les certificats, avec appendice et probabiliste.
Le Digital Signature Algorithm (DSA), est un algorithme de signature numérique standardisé
par le NIST aux Eats-Unis, du temps où le RSA était encore breveté. Cet algorithme fait partie
de la spécification DSS pour Digital Signature Standard adoptée en  (FIPS ). Une révision
mineure a été publiée en  (FIPS -) et le standard a été amélioré en  dans FIPS -.
Il est couvert par le brevet N°    aux USA ( juin ) attribué à David Kravitz, ancien
employé de la NSA, et il peut être utilisé gratuitement.
Le processus se fait en trois étapes :
. Génération des clés : Leur sécurité repose sur la difficulté du problème du logarithme discret
dans un groupe fini.
‹ Choisir¹ un nombre premier p de L-bit, avec 2L´1 ă p ă 2L , et L est divisible par . p
est appelé module.
‹ Choisir un nombre premier q de N-bit avec 2N ´1 ă q ă 2N , de telle façon que p´1 = qz,
avec z un entier (q est diviseur de p-).
‹ Choisir h, avec 1 ă h ă p ´ 1 de manière à ce que g = hz mod p ą 1. Où g est la
génératrice du groupe. (g est de l’ordre de q mod p). Généralement h = 2 est utilisé.
‹ Générer (pseudo)aléatoirement un entier x, la clé secrète avec 0 ă x ă q
‹ Calculer y = g x mod p
‹ La clé publique est (p, q, g, y). La clé privée est x.
Les entiers p, q, et g peuvent être publiques et peuvent être communs à un groupe d’utilisateurs. Les clés privé et publique d’un utilisateur sont x et y, respeivement. Elles sont
normalement fixées pour une durée de temps limitée.
. Signature du document :
‹ Générer un nombre (pseudo)aléatoire s, 1 ă s ă q
‹ Calculer s1 = (g s mod p) mod q
‹ Calculer s2 = (H(m) + s1 ˆ x)s´1 mod q, où H(m) est le résultat d’un hachage
cryptographique, par exemple avec SHA-, sur le message m
‹ La signature est (s1 , s2 )
. Vérification du document signé :
‹ Rejeter la signature si 0 ă s1 ă q ou 0 ă s2 ă q n’est pas vérifié
‹ Calculer w = (s2 )´1 ( mod q)
‹ Calculer u1 = H(m) ˆ w( mod q)
‹ Calculer u2 = s1 ˆ w( mod q)
‹ Calculer v = [g u1 ˆ y u2 mod p] mod q
‹ La signature est valide si v = s1
. L = , N = |L = , N = |L = , N = |L = , N = . Les autorités de certification (CA)
doivent choisir une combinaison plus grande que celles utilisables par leurs clients.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


C  : Signature digitale
Une séquence de bits tx1 , . . . , xn u de longueur n est convertie en un entier par la règle suivante² :
tx1 , . . . , xn u Ñ (x1 2n´1 ) + (x2 2n´2 ) + . . . + (xn´1 2) + xn .
Il faut noter que le premier bit de la séquence corresponds au bit le plus significatif de l’entier
correspondant, et le dernier bit correspond au bit le moins significatif.
.
Schemas de signature basés sur RSA
Beaucoup de schémas de signature numérique réversibles (avec recouvrement) sont basés sur l’utilisation de l’algorithme de chiffrement RSA. Dans cette seion, nous allons décrire un schéma de
signature réversible issu du standard ISO/IEC -. Tous les schémas de cette norme sont basés
sur des principes similaires. Les versions non réversibles (avec appendice) de ce schéma sont également normalisées dans la norme ISO/IEC - et ANSI X..
Lorsque RSA est utilisé pour produire des schémas de signature numérique, la clé publique de
vérification se compose du module n et de l’exposant de déchiffrement d. La clé privée de signature
sera l’exposant de déchiffrement e.
Le problème rencontré en utilisant le système RSA pour produire des signatures numériques est
le fait qu’il est facile de trouver des paires (α, β) tel que β = αe mod n en utilisant uniquement
l’exposant de déchiffrement d. Cela est faisable en choisissant une valeur β pour la signature et en
calculant le message α = β d mod n associé à cette signature.
Il est important de noter que, dans cette attaque, l’attaquant peut choisir la signature β, mais a
peu de contrôle sur la valeur du message associé α. La sécurité des systèmes de signature à base de
RSA vient de la manière dont α est construit. En règle générale, la valeur α n’est pas le message qui
doit être signé, mais un codage spécial de ce message connu sous le nom de message représentatif. La
sécurité d’un schéma de signature basé sur RSA vient du fait qu’il est difficile pour un attaquant de
trouver une signature β tel que le message représentatif associé α est un codage valide d’un message
donné m.
Le schéma de signature décrit ici est basé sur un certificat, déterministe et réversible. Il est à noter
que la norme ISO/CEI - contient également des versions probabilistes de ce schéma.
. La génération des clés
Identique au cryptosystème RSA sauf que la clé publique de vérification comprend le module n et l’exposant de déchiffrement d, et la clé privée de signature comprend l’exposant de
chiffrement e.
. Signature
Soit m est un message court. Pour signer ce message en utilisant une clé publique constitué
d’un module n et un exposant de déchiffrement d, les étapes suivantes sont nécessaires :
(a) Un message représentatif α est construit de cinq éléments :
α = header||padding||m||hash||trailer
Où chaque élément possède un signification et un rôle :
X header consiste en une séquence courte de bits qui identifient le schéma signature
utilisé.
. L’opération inverse permet de convertir un entier en une chaine de bits.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::

. Schemas de signature basés sur RSA

X padding consiste en une séquence de bits pour le remplissage. Utilisé afin de garantir
que le message représentatif α possède la même longueur que le module n.
X m est le message à signer.
X hash est le résultat de hachage du message m calculé utilisant une fonion de hashage
choisie.
X trailer consiste en une séquence courte de bits qui peut (optionnellement) identifier
la fonion de hachage utilisée.
(b) Calculer la signature σ = αd mod n.
. Vérification
Pour verifier la signature σ utilisant un module n et une clé privé e, les étapes suivantes sont
nécessaires :
ù Calculer le message représentatif α = σ e mod n.
ù Découper le message représentatif en  parties : header, padding, m, hash, et trailer.
ù Vérifier si les éléments header, padding, et trailer sont valides. Le format de ces éléments est spécifié par le standard ; si l’un de ces éléments n’est pas valide alors la signature
est déclarée invalide.
ù Optionnellement, l’identité la fonion de hachage peut être récupérée à partir de trailer.
ù Vérifier si le hash reçu est identique au hash code calculé utilisant le message reçu m. Le
cas échant, la signature est déclarée invalide.
ù Si tout s’est bien passé durant les étapes précédentes, déclarer la signature comme valide et
donner m.
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


Responsable : Dr. BOUROUIS Abdelhabib
C  : Signature digitale
Sécurité informatique — -
:::::::::::::::::::::::::::

Bibliographie
[] A. Menezes, P. Van Oorschot, S. Vanstone.
Handbook of Applied Cryptography
CRC press, .
http://cacr.uwaterloo.ca/hac/
[] R. Anderson. Wiley, .
Security Engineering - A Guide to Building Dependable Distributed Systems
http://www.cl.cam.ac.uk/~rja/book.html
[] Oded Goldreich
e Foundations of Cryptography : volume 
Cambridge University Press .
Draft : http://www.wisdom.weizmann.ac.il/~oded/foc-drafts.html
[] Oded Goldreich
e Foundations of Cryptography : volume 
Cambridge University Press .
Draft : http://www.wisdom.weizmann.ac.il/~oded/foc-book.html
[] David E. Newton.
Encyclopedia of Cryptology
ABC-CLIO (Oober , ).
[] Fred B. Wrixon.
Codes, Ciphers and Other Cryptic and Clandestine Communication :  Ways to Send
Secret Messages from Hieroglyphs to the Internet
Black Dog & Leventhal Publishers ; Revised edition (January , ).
[] Philippe Guillot
La cryptologie : L’art des codes secrets
EDP Sciences. .
[] Jean-François Carpentier
La sécurité informatique dans la petite entreprise : Etat de l’art et bonnes pratiques
Eni .
[] Gilles Bailly-Maître
Arithmétique et cryptologie
Ellipses .
[] Robert Rolland, Pierre Barthélemy, Pascal Véron
Cryptographie : Principe et mises en oeuvre
Hermès – Lavoisier  (nd Ed)


BIBLIOGRAPHIE
[] Philippe Guillot
Courbes elliptiques : Une présentation élémentaire pour la cryptographie
Hermès – Lavoisier .
[] Fred Piper, Sean Murphy
Cryptography : A Very Short Introduction
Oxford Paperbacks .
[] Saiful Azad, Al-Sakib Khan Pathan
Practical Cryptography : Algorithms and Implementations Using C++
Auerbach Publications ( décembre )
[] Jonathan Katz, Yehuda Lindell
Introduction to Modern Cryptography : Principles and Protocols
Chapman and Hall-CRC ; .
[] Alex W. Dent, Chris J. Mitchell
User’s Guide To Cryptography And Standards
Artech House .
[] Antoine Joux
Algorithmic Cryptanalysis
Chapman and Hall-CRC, .
[] Christopher Swenson
Modern Cryptanalysis : Techniques for Advanced Code Breaking
John Wiley & Sons ( mars )
[] Jessica Fridrich
Steganography in Digital Media : Principles, Algorithms, and Applications
Cambridge University Press ( novembre )
[] Patrick Ducrot
Cours de :
Sécurité Informatique
http://www.ducrot.org/securite.pdf
[] G. Florin, S. Natkin
Cours de :
Introduction à la sécurité des systèmes d’information
http://deptinfo.cnam.fr/Enseignement/CycleProbatoire/RSX/cours_introduction.pdf
Cours de :
Sécurité Informatique
http://repo.mynooblife.org/Securite/La%Securite%Informatique.pdf
Responsable : Dr. BOUROUIS Abdelhabib
Sécurité informatique — -
:::::::::::::::::::::::::::


Documents pareils