CRYPTOGRAPHIE GENERALE CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE CRYPTOGRAPHIE GENERALE
CRYPTOGRAPHIE Efficacité et concision Sécurité de l’information Benjamin BILLET – Pierre Louis BAYLE Efficacité et concision Sécurité de l’information Intégrité / non répudiation
Seules les personnes possédant une clé pourront ouvrir le coffre CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Seules les personnes possédant une clé pourront ouvrir le coffre Une personne désirant ouvrir le coffre devra soit voler une clé, soit forcer le coffre (casser l’algorithme)
Inverse de la fonction de chiffrement (F-1) CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Fonction de chiffrement C = F (K, M) Message codé Clé Message original M = D (K, C) Inverse de la fonction de chiffrement (F-1)
CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Entropie Mesure du désordre Soit A une source d’information : H(S) tend vers lorsque le désordre est maximal En cryptographie il est primordial que le message, la clé et/ou le message codé aient une entropie maximale
CRYPTOGRAPHIE F = (XOR) tel que C = M K M = C K Chiffrement de Vernam Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement de Vernam F = (XOR) tel que C = M K M = C K La clé K doit répondre aux propriétés suivantes : |M| = |K| Les éléments qui la constituent doivent être totalement aléatoire La clé ne doit servir qu’une seule fois Claude Shannon a démontré que ce chiffrement était un chiffrement parfait, le seul connu à ce jour
CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Un chiffrement est dit parfait si H(M) = H(M|C), H(M|C) étant appelée entropie conditionnelle de M par rapport à C
CRYPTOGRAPHIE Chiffrement AES - Introduction Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement AES - Introduction NIST (National Institute of Standards and Technology) AES chiffrement à clé secrète par blocs de 128 bits
CRYPTOGRAPHIE Chiffrement AES – Algorithme AES Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement AES – Algorithme AES Paramètres en entrée : Un tableau State (texte clair), une clé K. Valeur en sortie : Un tableau State chiffré KeyExpansion( K, RoundKeys ) AddRoundKey( State, RoundKeys[0] ) // Addition initiale Pour r = 1 à Nr – 1 Faire Subbytes(State) ShiftRows(State) MixColumns(State) AddRoundKey( State, RoundKeys[r] ) Fin Pour // Tour final AddRoundKey( State, RoundKeys[Nr] )
CRYPTOGRAPHIE Chiffrement AES – Fonction SubBytes Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement AES – Fonction SubBytes
CRYPTOGRAPHIE Chiffrement AES – Fonction ShiftRows Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement AES – Fonction ShiftRows On décale de i positions une case J, vers la gauche, i étant compris entre 0 et 3. Ainsi, pour la première ligne il n’y aura pas de décalage (i = 0). A la seconde, il y aura un octet de décalage (i = 1). A la troisième passe, on décalera de 2 octets (i = 2), et ainsi de suite.
CRYPTOGRAPHIE Chiffrement AES – Fonction MixColumns Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement AES – Fonction MixColumns On réalise l’opération matricielle suivante : (03.X3 + 01.X2 + 01.X + 02)´ b(x) Modulo (1 + X4)
CRYPTOGRAPHIE Chiffrement AES – Génération des clés Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé privée Chiffrement AES – Génération des clés Algorithme de diversification des clés AES Paramètres en entrée : Une clé K de 4 x Nk octets. Valeur en sortie : Une clé étendue W de 4 x Nb x (Nr + 1) octets Pour i = 0 à Nk – 1 Faire W[i] = K[i] Fin Pour Pour i = Nk à Nb x (Nr + 1) – 1 Faire Tmp = W[i - 1] Si i modulo Nk = 0 Alors Tmp = SubWord( RotWord( Tmp ) ) + Rcon[i/Nk] Sinon, Si (Nk > 6) et (i modulo Nk = 4) Alors Tmp = SubWord( Tmp ) Fin Si W[i] = W[i - Nk] + Tmp
DOCUMENT CONFIDENTIEL CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé publique DOCUMENT CONFIDENTIEL Grâce aux enveloppes fournies par Bob, n’importe qui peut envoyer des messages dans sa boîte aux lettres personnelle. Avec sa clé personnelle, seul Bob peut ouvrir la boîte et lire les messages qu’elle contient.
Fonction de déchiffrement CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé publique Fonction de chiffrement C = F (Ke, M) Message codé Clé publique Message original M = D (Kp, C) Fonction de déchiffrement Clé privée
CRYPTOGRAPHIE F F-1 Fonction à sens unique Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé publique Fonction à sens unique F Obtenir l'image de x à partir de x est très simple. Rechercher x à partir de l'image de x est un problème mathématique réputé difficile, ou informatiquement trop complexe (= trop lent). x x’ y y’ z z’ F-1 La cryptographie asymétrique se base uniquement sur des fonctions à sens unique pour la génération des clés.
CRYPTOGRAPHIE Chiffrement RSA - Théorème Création des clés Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé publique Chiffrement RSA - Théorème Création des clés Prendre n = pq, où p et q sont deux nombres premiers (en pratique, il est conseillé d'employer des nombres d'au moins 150 chiffres décimaux). Prendre un entier e premier avec j(n) = (p – 1)(q – 1). Comme e est premier avec j(n) , il existe un entier d inverse de e (e.d º 1 [mod n]). La clé publique est alors le couple (n, e) et la clé privée le couple (n, d)
CRYPTOGRAPHIE Chiffrement RSA Déchiffrement RSA Benjamin BILLET – Pierre Louis BAYLE Cryptographie à clé publique Chiffrement RSA Si M est un entier appartenant à l'ensemble {0,…,n - 1} et représentant le message alors : C º Me [mod n] Déchiffrement RSA Si C est un entier appartenant à l'ensemble {0,…,n - 1} et représentant le message codé alors : M º Cd [mod n]
CRYPTOGRAPHIE Benjamin BILLET – Pierre Louis BAYLE