Autour du cryptosystème RSA Lycée Magendie Avril 2014
Plan 1 Chiffrements symétrique et asymétrique 2 Les nombres premiers 3 RSA 4 Informations professionnelles
Chiffrement Alice veut écrire à Bob
Chiffrement Alice veut écrire à Bob
Chiffrement Alice veut écrire à Bob
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement de Jules César Alice QUARTIQUE clé de chiffrement +3 TXDUWLTXH TXDUWLTXH est envoyé clé de déchiffrement -3 à Bob TXDUWLTXH QUARTIQUE
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Alice m=quartique clé secrète de chiffrement K = +3 c = f K (m) c =TXDUWLTXH est envoyé à Bob c =TXDUWLTXH clé secrète de déchiffrement K = K = 3 m = f K ( 1) (c) = f K (c)
Chiffrement à clé secrète Trois étapes : création et distribution de clés, chiffrement, déchiffrement Boîte mail, consultation de compte en banque,... Avantages : simple, rapide, bien connu Fragilités : attaques statistiques, gestion de clés
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Alice veut envoyer m à Bob. Elle trouve la clé publique de chiffrement K pub Bob Elle calcule c = f K pub(m) Bob dans l annuaire. c est envoyé à Bob c qui utilise sa clé secrète de déchiffrement KBob sec m = f ( 1) K pub (c) = g K sec Bob Bob (c)
Chiffrement à clé publique Trois étapes : création et publication de clés, chiffrement, déchiffrement Avantages : gestion de clé simplifiée, solidité mathématique Fragilités : plus lent, plus compliqué à implémenter En pratique on combine les deux chiffrements : clé publique pour échanger une clé de session (secrète) qui servira à chiffrer à la volée.
Histoire des nombres premiers Il existe une infinité de nombres premiers, théorème fondamental de l arithmétique (preuve par Gauss), algorithme pour pgcd et ppcm, Entre 1 et N ils y a N/ log N nombres premiers, crible d Eratosthène, théorème de Fermat
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques La complexité d un calcul est le nombre d opérations élémentaires nécessaires pour le mener à bien. complexité linéaire pour l addition. Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. complexité quadratique pour la multiplication. Pour ajouter deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. complexité du crible d Eratosthène : T n 1/2. Pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : complexité polynomiale sextique. Pour savoir si n est premier, T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12.
Complexité des opérations arithmétiques Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. Pour multiplier deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. Crible d Eratosthène : pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12. factorisation naïve : T n, pas d algorithme polynomial connu pour factoriser.
Complexité des opérations arithmétiques Pour ajouter deux nombres de 120 chiffres il faut 120 opérations élémentaires. Pour multiplier deux nombres de 120 chiffres il faut 120 120 opérations élémentaires. Crible d Eratosthène : pour savoir si n = 10 120 + 1 est premier on a T 10 60. Agrawal, Kayal, et Saxena (2002) : T k 6 où k est le nombre de chiffres de n. Si n = 10 120 + 1 alors T 121 6 3 10 12. factorisation naïve : T n, pas d algorithme polynomial connu pour factoriser.
Factoriser n est pas facile 15 = 3 5, 8177 = 13 17 37, 4391796557 = 653 1237 5437 n =775849600041239802219341428568066121637285305234191581868939200 7157774501544283629918975176453173496395274198729351234342186103 4442347324105332378039451186561870452359346864041708636239770085359655309 n = pq avec et p =94956014784198111284390337194382959472794190112290073206808220 63984162448528523167147998893885377277 q =81706209112132098934270542976736314059245967312942357820857757 87009447412809370557316174968767460817
Factoriser n est pas facile 15 = 3 5, 8177 = 13 17 37, 4391796557 = 653 1237 5437 n =775849600041239802219341428568066121637285305234191581868939200 7157774501544283629918975176453173496395274198729351234342186103 4442347324105332378039451186561870452359346864041708636239770085359655309 n = pq avec et p =94956014784198111284390337194382959472794190112290073206808220 63984162448528523167147998893885377277 q =81706209112132098934270542976736314059245967312942357820857757 87009447412809370557316174968767460817
Factoriser n est pas facile 15 = 3 5, 8177 = 13 17 37, 4391796557 = 653 1237 5437 n =775849600041239802219341428568066121637285305234191581868939200 7157774501544283629918975176453173496395274198729351234342186103 4442347324105332378039451186561870452359346864041708636239770085359655309 n = pq avec et p =94956014784198111284390337194382959472794190112290073206808220 63984162448528523167147998893885377277 q =81706209112132098934270542976736314059245967312942357820857757 87009447412809370557316174968767460817
Factoriser n est pas facile 15 = 3 5, 8177 = 13 17 37, 4391796557 = 653 1237 5437 n =775849600041239802219341428568066121637285305234191581868939200 7157774501544283629918975176453173496395274198729351234342186103 4442347324105332378039451186561870452359346864041708636239770085359655309 n = pq avec et p =94956014784198111284390337194382959472794190112290073206808220 63984162448528523167147998893885377277 q =81706209112132098934270542976736314059245967312942357820857757 87009447412809370557316174968767460817
Factoriser n est pas facile 15 = 3 5, 8177 = 13 17 37, 4391796557 = 653 1237 5437 n =775849600041239802219341428568066121637285305234191581868939200 7157774501544283629918975176453173496395274198729351234342186103 4442347324105332378039451186561870452359346864041708636239770085359655309 n = pq avec et p =94956014784198111284390337194382959472794190112290073206808220 63984162448528523167147998893885377277 q =81706209112132098934270542976736314059245967312942357820857757 87009447412809370557316174968767460817
Asymétrie (p, q) N = pq (p, q) N = pq
En décembre 2009, Thorsten Kleinjung et une dizaine de collègues ont factorisé un nombre de 232 chiffres. The sieving, which was done on many hundreds of machines, took almost two years. Calculer le produit de deux nombres de 116 chiffres prend 8 millionièmes de secondes sur mon ordinateur portable.
Protocole RSA Rivest, Shamir et Adleman
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Création de clé Bob choisit un nombre p au hasard dans l intervalle [2 1023, 2 1024 ]. p a une chance sur 703 d être premier. Bob regarde si p est premier (à l aide d un l algorithme de primalité). Si p est premier on le garde. Sinon on recommence. Bob choisit un autre nombre q premier de même. Bob calcule n = pq et ϕ(n) = (p 1)(q 1) l indicatrice d Euler de n. Bob choisit e premier à ϕ(n) et calcule les coefficients de Bezout de e et ϕ(n) fe + gϕ(n) = 1. En particulier ef 1 mod ϕ(n). La clé publique de chiffrement est (n, e). La clé secrète de déchiffrement est (n, f).
Un exemple I Création de clé Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit un entier e premier à ϕ(n), par exemple e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit donc f = 2357. 2357 4553 835 12852 = 1 La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357).
Un exemple I Création de clé Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit un entier e premier à ϕ(n), par exemple e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit donc f = 2357. 2357 4553 835 12852 = 1 La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357).
Un exemple I Création de clé Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit un entier e premier à ϕ(n), par exemple e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit donc f = 2357. 2357 4553 835 12852 = 1 La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357).
Un exemple I Création de clé Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit un entier e premier à ϕ(n), par exemple e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit donc f = 2357. 2357 4553 835 12852 = 1 La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357).
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Alice transforme son message en un nombre entier m dans l intervalle [1, n 1]. Elle représente chaque caractère par une suite de bits (0 ou 1). Par exemple, dans la norme utf8 le caractère A est représenté par les 8 bits 01000001. Le caractère é est représenté par les 16 bits 1100001110101001. Il faut au plus 32 bits pour représenter un caractère dans ce système. Si le message est trop long on le coupe en morceaux. Alice se retrouve avec un entier m [1, n 1]. On est presque certain que m est premier à n.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Le chiffré est un nombre c entre 1 et n 1 tel que c m e mod n. Alice le calcule à l aide de l algorithme d exponentiation rapide.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Le chiffré est un nombre c entre 1 et n 1 tel que c m e mod n. Alice le calcule à l aide de l algorithme d exponentiation rapide.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Le chiffré est un nombre c entre 1 et n 1 tel que c m e mod n. Alice le calcule à l aide de l algorithme d exponentiation rapide.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Le chiffré est un nombre c entre 1 et n 1 tel que c m e mod n. Alice le calcule à l aide de l algorithme d exponentiation rapide.
Chiffrement Alice veut envoyer le message m à Bob. Elle trouve la clé publique (n, e) de Bob dans l annuaire. Le chiffré est un nombre c entre 1 et n 1 tel que c m e mod n. Alice le calcule à l aide de l algorithme d exponentiation rapide.
Création de clé Un exemple II Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit 2357 4553 835 12852 = 1 donc f = 2357. La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Donc le chiffré est c = 8748.
Création de clé Un exemple II Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit 2357 4553 835 12852 = 1 donc f = 2357. La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Donc le chiffré est c = 8748.
Création de clé Un exemple II Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit 2357 4553 835 12852 = 1 donc f = 2357. La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Donc le chiffré est c = 8748.
Création de clé Un exemple II Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit 2357 4553 835 12852 = 1 donc f = 2357. La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Donc le chiffré est c = 8748.
Création de clé Un exemple II Bob choisit p = 127 et q = 103. Donc n = pq = 13081 et ϕ(n) = (127 1) (103 1) = 12852. Bob choisit e = 4553 et calcule les coefficients de Bezout de e et ϕ(n) soit 2357 4553 835 12852 = 1 donc f = 2357. La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Donc le chiffré est c = 8748.
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Déchiffrement Bob reçoit le message chiffré c envoyé par Alice. Il connaît la clé de déchiffrement (n, f). Il calcule l entier m entre 1 et n 1 tel que m c f mod n. Il utilise l algorithme d exponentiation rapide. En fait m c f m ef m 1 gϕ(n) m donc m = m. On a utilisé le théorème d Euler. ( m ϕ(n)) g m mod n
Un exemple III La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Déchiffrement Bob reçoit c = 8748. Il calcule m = c f = 8748 2357 1234 mod 13081. C est bien le message envoyé.
Un exemple III La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Déchiffrement Bob reçoit c = 8748. Il calcule m = c f = 8748 2357 1234 mod 13081. C est bien le message envoyé.
Un exemple III La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Déchiffrement Bob reçoit c = 8748. Il calcule m = c f = 8748 2357 1234 mod 13081. C est bien le message envoyé.
Un exemple III La clé publique de Bob est (13081, 4553). La clé secrète de Bob est (13081, 2357). Chiffrement Alice veut chiffrer le message clair m = 1234. Elle trouve la clé publique de Bob dans l annuaire : (n, e) = (13081, 4553). Elle calcule c = m e = 1234 4553 8748 mod 13081. Déchiffrement Bob reçoit c = 8748. Il calcule m = c f = 8748 2357 1234 mod 13081. C est bien le message envoyé.
Le théorème d Euler Théorème Soient p et q deux nombres premiers impairs distincts. Soit n = pq. Pour tout x premier à n on a Démonstration. x ϕ(n) 1 mod n où ϕ(n) = (p 1)(q 1). On montre d abord que p divise x ϕ(n) 1. D après le théorème de Fermat x ϕ(n) ( x p 1) q 1 1 mod p. De même q divise x ϕ(n) 1 car x ϕ(n) ( x q 1) p 1 1 mod q. Comme p et q sont premiers entre eux pq divise x ϕ(n) 1.
Qui est Alice? Sophie Germain
Qui est Alice? Sophie Germain
Quelques secteurs développement des cartes à puces commerce électronique téléphonie mobile armement intérieur sécurité des logiciels sécurité des réseaux
Quelques métiers développeur d applications gestionnaire de parc micro-informatique auditeur en sécurité informatique administrateur réseau enquêteur Technologies Numériques ingénieur expert en cryptologie et sécurité informatique
Licences professionnelles : Exemples de formations IUT Lens (sécurité informatique), UT Troyes (enquêteur en technologies numériques) IUT Bordeaux (spécialiste en sécurité des réseaux et logiciels, développeur en appli. web et images, assisant chef de projet) IUT Toulouse A et B (analyste programmeur, développement et qualité logiciel, administrateur BD) Master professionnels : Université de Bordeaux (cryptologie et sécurité informatique) Université de Limoges (master cryptis) Univ. de Toulouse (informatique collaborative en entreprise), Pau (technologies internet) Écoles d ingénieurs : ENSEIRB, ENSEEIHT,...
Quelques parcours Antoine, IUT à Bordeaux, puis Licence pro DAWIN, travaille dans une PME régionale de conception d applications pour smartphones Julien, licence de mathématiques à Toulouse, Master ICE, travaille dans un très grand groupe sur la sécurité des tablettes : recherche des faiblesses du système d exploitation, failles matérielles Alberto, licence math.-info. à Bordeaux, Master CSI, travaille dans une grande entreprise sur les attaques physiques contre les cartes à puces Vincent, master et thèse de mathématiques à Bordeaux, est expert en sécurité dans une grosse PME et travaille sur l arithmétique rapide et fiable pour les cartes à puces
Quelques entreprises On trouve différents types d entreprises : des SSII mais aussi des PME-PMI, des micro-entreprises ou des grands comptes. AKKA (SILOGIC), ALIENOR, Capgemini, BLOOM Multimédia, CARGO, CELAD, CGE Technologies, CONTACTEL, CREABILIS, CS-SI, DIEGO INFORMATIQUE, EADS ASTRIUM, EADS CIMPA, EREMS, EUROPA ORGANISATION, FRANCE TELECOM, FREQUENTIEL, GEOSIG, HI-STOR TECHNOLOGIE, INEO, LOGICA (UNILOG), ORANGE, PRODWARE, SAS ORIA, SOGETI HIGH TECH, SOPRA GROUP, THALES ALENIA SPACE, TIKIMOVE, VIVEO TOOL OBJECT, X-PRIME,..
liens IUT http ://www.iut.u-bordeaux1.fr/site-commun/ Journee du Futur Etudiant en février http ://www.jfe.univ-bordeaux.fr/ Salon AQUITEC en février au parc des expositions Bordeaux Lac http ://aquitec.com/ Documents http ://www.mathscareers.org.uk/ http ://smf4.emath.fr/publications/zoommetiersdesmaths/presentation/ http ://www.sfds.asso.fr/223- Zoom_sur_les_metiers_de_la_statistique