Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet...

115
Introduc)on à la cryptographie Karim Hossen Fabien Duchene 20112011 5MMSSI

Transcript of Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet...

Page 1: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Introduc)on  à  la  cryptographie  

Karim  Hossen  Fabien  Duchene  

2011-­‐2011  

5MMSSI  

Page 2: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Plan  

•  Historique  de  la  cryptographie  •  Cryptographie  moderne  – Symétrique  – Echanges  de  clés  – Asymétrique  – Fonc)ons  de  hachage  – Clé  et  nombres  aléatoires  – Prochaines  étapes  de  la  cryptographie  

Page 3: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Terminologie  

•  Crypto…  ?  

•  Quels  sont  les  mots  commençant  par  «  crypto  »  que  vous  connaissez  ?  

Page 4: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Terminologie  

•  Cryptographie  – Du  préfixe  français  «crypto»  («  kruptos  »  en  grec)  qui  signifie  «caché»,  et  du  suffixe  «graphie»  pour  «écriture».  

«  Art  d’écrire  en  chiffres  ou  d’une  façon  secrète        quelconque.  »  

Page 5: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Terminologie  

•  Cryptographie  – Ensemble  des  méthodes  perme]ant  de  chiffrer/déchiffrer  un  message  dans  le  but  d’empêcher  son  u)lisa)on/modifica)on.  

•  Cryptanalyse  –   L’art  de  retrouver  un  message  clair  à  par)r  du  message  chiffré,  sans  connaitre  la  clé.  

•  Cryptologie  – Cryptographie  +  Cryptanalyse  

Page 6: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Terminologie  

•  Cryptogramme  – Message  chiffré.  

•  Cryptosystème  – Ensemble  regroupant  les  méthodes  cryptographiques,  les  textes  clairs,  les  textes  chiffrés  ainsi  que  toutes  les  clés  possibles.  (B.  Schneier)  

– Ne  pas  u)liser  pour  parler  des  systèmes  cryptographiques  

Page 7: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Terminologie  

•  Décrypter  – Ac)on  de  retrouver  le  message  clair  à  par)r  du  message  chiffré  sans  la  clé.  

•  Crypter/age,  Encrypter  – Anglicisme  à  éviter.  – Parler  plutôt  de  chiffrement,    déchiffrer  …  

Page 8: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  

•  Appari)on  spontanée  dés  qu’une  grande  par)e  de  la  popula)on  a  su  lire  – Premiers  indices  de  cryptographie  en  1900  av.  JC  (D.Kahn)  

•  En  600  av.  JC,  des  scribes  hébreux  me]ant  par  écrit  le  livre  de  Jeremy  ont  u)lisaient  le  chiffre  d’Atbash  (aleph,  tau,  beth  et  shin).  

Page 9: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Scytale  

•  En  487  av.  JC,  les  Grecs  u)lisaient  un  baton  d’un  diamètre  précis,  nommé  “Scytale”,  sur  lequel  ils  enroulaient  une  bande  longue  et  mince  de  cuir.  

•  Le  message  était  ensuite  écrit  dessus.  – La  bande  de  cuir  était  le  chiffré.  

•  Pour  le  déchiffrer,  il  fallait  l’enrouler  sur  un  baton  du  même  diamètre.  

Page 10: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Polybe  

•  En  150  av.  JC,  l’historien  grec  Polybe  inventa  le  “carré  de  Polybe”  qui  inspirera  bien  d’autres  systèmes  cryptographique.    

•  Jugé  trop  compliqué,  il  fut  u)lisé  qu’à  par)r  du  XIXème  siècle  par  les  nihilistes  russes  enfermés  en  prisons  par  les  Tsars  

Page 11: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  César  

•  En  55  av.  JC,  Jules  César  décalait  les  le]res  d’un  certain  nombre  de  rangs  (la  clé)  pour  les  communica)ons  du  gouvernement.  

•  Moins  robuste  qu’Atbash  mais  à  l’époque  peu  de  personnes  savaient  lire.  

•  Exemple  :  DVWHULA  =    ?  

Page 12: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  X  

•  Au  5ème  siècle,  le  kama-­‐sutra  recommande  que  les  femmes  apprennent  64  arts:  cuisiner,  s’habiller,  masser  …  

•  Mais  plus  étonannt,  le  numéro  45  parle  de  l’art  de  l’écriture  secrète  qui  doit  leur  perme]re  de  dissimuler  leur  liaisons.  

Page 13: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Récap1  

•  Jusqu’à  là,  la  cryptographie  se  limitait  à  un  codage  dans  un  alphabet  par)culier,  décalé,  inversé  ou  à  une  transposi)on.  

•  On  parle  alors  de  subs)tu)on  mono-­‐alphabé)que,  c’est  à  dire  que  pour  chaque  le]re,  on  lui  associe  une  autre  unique  le]re.  

•  Le  chiffre  de  César  reste  la  plus  connue  de  ces  méthodes.  

•  Mais  toutes  ces  méthodes  sont  vulnérables  à  une  analyse  de  fréquences.  

Page 14: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Fréquences  

•  Analyse  de  fréquence  –  Inventé  au  9ème  siècle  par  Al-­‐Kindi  dans  son  “Manuscrit  sur  le  déchiffrement  des  messages  cryptographiques”  

–  Principe  •  La  subs)tu)on  mono-­‐alphabé)que  conserve  les  fréquences  des  symboles.  

•  Etablir  une  table  des  fréquences  pour  chaque  langue  et  faire  correspondre  les  symboles  chiffrés  à  ceux  de  la  table.  

–  Contrainte  •  Avoir  un  texte  chiffré  suffisamment  long  

Page 15: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Fréquences  

•  Analyse  des  fréquences  

Page 16: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Exercice  

•  «  Les  hommes  dansants  »,  Conan  Doyle  

                                                                       =        ?  

Page 17: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Alber)  

•  En  1466,  Léon  Bawsta  Alber)  invente  la  subs)tu)on  poly-­‐alphabé)que  ainsi  que  le  surchiffrement  codique.  

•  Une  classe  de  chiffre  qui  a  résisté  jusqu’aux  années  1800.  

•  Jugé  trop  en  avance  sur  son  temps,  il  ne  fut  u)lisé  que  400ans  plus  tard  et  dans  des  version  plus  simples.  

Page 18: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Alber)  

•  Le  cadrant  chiffrant  d’Alber)  – Deux  disques  

•  Un  fixe,  au  bord  (majuscules)  •  Un  mobile,  au  centre  (minuscules)  

– Le  disque  du  centre  con)ent  des  le]res  dans  le  désordre  

– Echange  d’une  posi)on  ini)ale  – Chiffrement  en  u)lisant  les  le]res  du  cadrant  fixe.  

Page 19: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Alber)  

•  Poly-­‐alphabé)que  ?  – Tout  les  X  le]res,  on  peut  changer    de  le]re-­‐indices.  

– On  écrit  ce]e  nouvelle  le]re-­‐indice  en  majuscule  dans  le  message.  

– A  par)r  de  là,  chaque  le]re  aura  un  chiffré  différent.  

Page 20: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Alber)  

•  Surchiffrement  – Fait  de  chiffrer  un  message  chiffré  – U)lise  les  chiffres  du  cadran  – Pour  chaque  groupe  de  chiffres,    on  y  associe  un  mot.  

– Chaque  groupe  de  chiffre  donnera  un  message  clair  différent  selon  la  posi)on  ini)ale.  

Page 21: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vigenère  

•  Vers  1560,  Blaise  de  Vigenère  inventa,  en  prenant  comme  base  les  travaux  d’Alber),  Trithème,  Bellaso  et  Porta,  le  “chiffre  de  Vigenère”  

•  Une  améliora)on  considérable  du  chiffre  de  César.  – U)lisa)on  de  26  alphabets  décalés  au  lieu  d’un  seul.  

Page 22: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vigenère  

•  Chiffre  de  Vigenère  – On  u)lise  une  clé  pour  connaitre  le  décalage.  – Si  la  clé  est  trop  pe)te,  on  la  répète  autant  de  fois  que  nécéssaire.  

– Ensuite,  on  applique  le  décalage  au  message.  – Exemple  :  

Page 23: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vigenère  

•  Et  l’analyse  de  fréquences  ?  

         Monoalphabé)que                    Polyalphabé)que  

Page 24: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vigenère  

•  Il  aura  fallut  a]endre  300  ans  pour  casser  ce  chiffre  et  les  sub)tu)ons  poly-­‐alphabé)ques  en  général  

•  Méthode  de  Babagge  et  Kasiski  •  Méthode  de  Bazeries  

•  Comment  pourrait  t-­‐on  faire  ?  

Page 25: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Bazeries  

•  Méthode  du  commandant  Bazeries  – Simple  et  rapide  – Principe  

•  On  suppose  qu’un  mot  donné  a  été  chiffré  (a]aque,  mission,  place,  bombe  …)  •  On  soustrait  ce  mot  à  différentes  posi)ons  du  chiffré  jusqu’à  obtenir  un  mo)f  de  le]res  répétées  qui  sera  la  clé.  •  U)lisa)on  avec  des  dic)onnaires  

– Contrainte  •  Avoir  le  mot  dans  ses  dic)onnaires  

Page 26: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Bazeries  

•  Prenons  ce  cryptogramme    “BILKO  PFFGM  LTWOE  WJCFD  SHKWO  NKSEO      VUSGR  LWHGW  FNVKW  GGGFN  RFHYJ  VSGRF        RIEKD  CCGBH  RYSXV  KDIJA  HCFFG  YEFSG  ZWG”    On  suppose  que  le  mot  ATTAQUE  est  dans  le  message  clair.  

Page 27: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Bazeries  

•  On  soustrait  “ATTAQUE”  au  début  …  rien  

•  En  posi)on  2  …  toujours  rien  

Page 28: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  A]aques2  

•  En  posi)on  25  …  OURS  

•  Ce  qui  donne  :    “NOUS  AVONS  SUBI  UNE  VIOLENTE  ATTAQUE  CE      MATIN.  PERTES  IMPORTANTES.  DEMANDONS        PILONNAGE  DES  POSITIONS  ENNEMIES.  ”  

Page 29: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  BK  

•  Méthode  Babbage-­‐Kasiski  – Principe  

•  On  cherche  des  mo)fs  qui  se  répètent  dans  le  texte  chiffré  :  –  1er  cas  :  Même  mot  clair,  même  par)e  de  la  clé  u)lisée.  –  2ème  cas  :  Mot  clair  et  clé  différents  mais  chiffré  égal  (rare)  

•  On  cherche  la  taille  de  la  clé  –  Dans  une  table,  on  stocke  les  facteurs  premiers  de  la  posi)on  des  mo)fs.  

–  On  garde  la  taille  qui  à  la  plus  grande  probabilité.  •  On  u)lise  une  analyse  des  fréquences  pour  les  le]res  chiffrées  avec  la  même  par)e  de  la  clé.  

Page 30: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  BK  

•  Prenons  ce  chiffré  

On  remarque  quelques  mo)fs  qui  se  répètent  …    

Page 31: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  BK  

•  Remplissons  la  table  :  

 Une  taille  de  clé  semble  correspondre  pour  chaque  mo)f  :  5  

Page 32: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  BK  •  Trouvons  le  premier  caractère  de  la  clé  :  

       Le  “E”  a  souvent  une  grande  fréquence,  la  même  que  le  “W”  dans  ce]e  exemple.  Le  premier  caractère  de  la  clé  est  donc  “S”.  

Page 33: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  BK  

•  Trouvons  les  autres  caractères  de  la  clé  :  

 La  clé  est  donc  SCUBA.    Aprés  déchiffrement,  on  ob)ent  le  texte  de  qui  ?  

Page 34: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vigenère  

•  Y  a  t’il  un  moyen  d’améliorer  le  chiffre  de  Vigenère  ?  – Faiblesse  1  :  la  clé  se  répète  pour  chiffrer  des  messages  assez  long  

– Faiblesse  2  :  la  clé  est  un  mot  courant,  ce  qui  donne  des  informa)ons  sur  les  caractères  présents,  leur  fréquences  …  

– En  1917,  une  personne  a  crée  un  chiffre  poly-­‐alphabé)que  sans  ses  2  faiblesses.  

Page 35: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vernam  

•  Le  chiffre  de  Vernam  – Crée  par  Gilbert  S.  Vernam  – Amélioré  par  Joseph  Mauborgne  – U)lise  une  clé  aléatoire  de  la  taille  du  message  à  chiffrer.  

– Le  seul  chiffre  indécryptable  (Shannon  1949)    – Contraintes  importantes  :  

•  Produire  des  clé  aléatoire  en  grande  quan)té  •  Transport  de  la  clé,  mise  en  oeuvre  …  

Page 36: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vernam  

•  Naissance  du  principe  de  masque  jetable  •  La  clé  doit  être  u)lisé  qu’une  seul  fois    •  Sinon,  un  a]aquant  peut  en  dériver  des  informa)ons  sur  les  messages  clairs  à  cause  du  même  décalage  pour  les  2  chiffrés.  

•  Impossibilité  d’avoir  ce  niveau  de  sécurité  avec  un  “cout”  moindre  

•  On  parle  alors  de  sécurité  incondi)onnelle  

Page 37: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  -­‐  Vernam  

•  Exemple  

•  U)lisé  par  Che  Guevera  pour  transme]re  des  messages  au  président  cubain  Fidel  Castro.  

Page 38: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Historique  –  Recap2  

•  La  sub)tu)on  poly-­‐alphabé)que  fut  un  grand  pas  dans  les  méthodes  de  chiffrement.  

•  L’essor  des  communica)ons  et  de  l’informa)que,  à  par)r  du  XXème  siècle,  va  donner  une  nouvelle  impulsion  à  la  cryptographie  qui  va  entrer  dans  son  ère  moderne,  plus  formelle  et  mathéma)que.  

•  Appari)on  des  no)ons  d’aléatoire,  de  taille  de  clé  qui  deviendront  indispensables  ensuite.  

Page 39: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Cryptographie  moderne  

•  Buts  –  Confiden)alité  –  Authen)fica)on  –  Intégrité  –  Non  répudia)on  

•  Règles  de  bases  –  L’algorithme  n’est  pas  secret  et  peut  être  diffusé  librement  –  La  sécurité  d’un  système  cryptographique  est  égale  à  la  sécurité  du  maillon  le  plus  faible.  

–  La  clé  de  chiffrement  doit  être  tenue  secrète  

Page 40: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Buts  

•  Confiden)alité  – Empêcher  les  u)lisateurs  de  lire  une  informa)on  confiden)elle  (sauf  s’ils  y  sont  autorisés)  

– Empêcher  les  u)lisateurs  autorisés  à  lire  une  informa)on  confiden)elle  de  la  divulguer  à  des  u)lisateurs  non  autorisés  à  la  lire  

 

Page 41: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Buts  

•  Authen)fica)on  – De  l’origine  des  données,  d’un  )ers.  – Appelé  “forte”  quand  il  y  a  au  moins  deux  éléments  ou  facteurs  d’authen)fica)on  •  One  Time  Password,  Biométrie,  ques)on  secrète,  système  physique  (carte  à  puce)  …  

 

Page 42: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Buts  

•  Intégrité  – Empêcher  une  modifica)on  (créa)on,  mise  à  jour  ou  destruc)on)  indue  de  l’informa)on  (ou  du  système)  •  Modifica)on  par  des  u)lisateurs  non-­‐autorisés  •  Modifica)on  incorrecte  par  des  u)lisateurs  autorisés  (ou  faute  accidentelle)  

– Faire  en  sorte  qu’aucun  u)lisateur  (ou  faute  accidentelle)  ne  puisse  empêcher  la  modifica)on  légi)me  de  l’informa)on  (ou  du  système)  

 

Page 43: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Buts  

•  Non  répudia)on  – Trés  u)lisée  sur  internet  (achats,  impôts,  …)  – Possibilité  de  vérifier  que  l’envoyeur  et  le  des)nataire  d’un  message  sont  bien  ceux  qui  l’ont  envoyé  et  reçu.  

– Nécéssite  l’u)lisa)on  de  cer)ficats  numériques  (cf  2ème  par)e)  

 

Page 44: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Base  

•  Principe  de  Kerckhoffs  (fin  du  XIXème)  – Une  des  7  lois  enoncées  :    La  sécurité  d’un  système  cryptographique  doit  reposer  uniquement  sur  le  secret  de  la  clé.  

– Les  chiffres  civiles  suivent  ce  principe.  – Certains  chiffres  militaires,  comme  le  “Type1  Encryp)on”  des  Etats-­‐Unis  et  cer)fié  par  la  NSA  sont  plutôt  pour  la  “sécurité  par  l’obscurité”.  

Page 45: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Base  

•  Principe  de  Kerckhoffs  –  Interpréta)on  

•  Ce  qui  doit  etre  gardé  secret  doit  être  ce  qui  est  le  moins  couteux  à  changer  si  le  secret  est  divulgué.  –  Si  la  sécurité  repose  sur  un  logiciel  précis  alors  que  ce  logiciel  est  diffusé  auprés  de  nombreux  u)lisateurs,  il  y  a  des  chances  pour  que  le  logiciel  ne  soit  pas  secret  trés  longtemps  et  qu’il  faille  refaire  des  algorithmes  de  chiffrement  …  

–  Alors  qu’en  suivant  le  principe  de  Kerckoff,  seul  la  clé  serait  à  changer.  

•  C’est  encore  plus  vrai  de  nos  jours,  où  le  reverse-­‐engineering  est  possible  sur  les  programme  (cf  RC4)  

Page 46: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Cryptographie  moderne  

•  Deux  types  de  cryptographie  –  Symétrique  ou  secrète  

•  La  clé  de  chiffrement  est  la  même  que  la  clé  de  déchiffrement.  

•  Basé  sur  du  découpage,  permuta)on  et  xor.  – Asymétrique  ou  publique  

•  Inventé  en  1976  par  Whithfield  Diffie  et  Mar)n  Hellman  dans  “New  Direc)ons  in  Cryptography”.  

•  Clé  de  chiffrement  différente  de  la  clé  de  déchiffrement.  •  Clé  de  chiffrement  peut  être  publique.  •  Beaucoup  moins  rapide  que  la  symétrique.  •  Basé  sur  des  problèmes  difficiles  à  résoudre.  

Page 47: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Cryptographie  moderne  

•  Différents  types  de  chiffrement  – Par  blocs  

•  Le  message  clair  est  découpé  en  morceaux  de  taille  fixe.  •  Le  plus  souvent  de  la  taille  de  la  clé.  •  Chaque  morceau  est  ensuite  chiffré  avec  la  clé,  suivant  le  mode  de  chiffrement.  •  Si  la  taille  du  message  n’est  pas  d’un  mul)ple  de  la  taille  de  la  clé,  on  u)lise  un  padding.  

– Par  flot  •  Chaque  bit  est  chiffré  au  fur  et  à  mesure.  

Page 48: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Cryptographie  moderne  

•  Différents  mode  de  chiffrement  – Valables  pour  les  chiffrements  par  blocs  et  flot  

– Electronic  Code  Book  (ECB)  – Cipher  Block  Chaining  (CBC)  – Cipher  Feed  Back  (CFB)  – Output  Feed  Back  (OFB)  

– Et  bien  d’autres  …  

Page 49: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Mode  

•  ECB  – Mode  le  plus  simple  – On  chiffre  chaque  bloc  avec  la  clé.  

Page 50: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Mode  

•  ECB  – Avantages  

•  Accés  rapide  à  une  zone  quelconque  du  chiffré.  •  Possibilité  de  déchiffrer  qu’une  seule  par)e.  

– Désavantages  •  Deux  blocs  iden)ques  auront  le  même  chiffré.  •  Sensible  aux  a]aques  par  rejeu.  •  Permet  donc  de  constuire  un  “dic)onnaire  de  code”  avec  les  correspondances  clair/chiffré  (codebook)  •  A  ne  pas  u)liser  dans  les  applica)ons  cryptographiques  

Page 51: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Mode  

•  CBC  – Le  morceau  en  clair  est  XOR-­‐é  avec  le  bloc  précédent.  

– Un  même  bloc  peut  donc  avoir  plusieurs  chiffrés.  – Nécéssite  un  vecteur  d’ini)alisa)on  (IV)  

Page 52: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Mode  

•  EBC  vs  CBC  

Page 53: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Mode  

•  CFB  – Pour  les  chiffrements  par  flot  – Nécéssite  uniquement  la  fonc)on  de  chiffrement.  – Une  erreur  affectera  les  autres  blocs  – La  perte  ou  ajout  d’un  bit  est  récupérable.  

Page 54: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Mode  

•  OFB  – Même  avantages  que  CFB.  – La  perte  ou  l’ajout  d’un  bit  est  irrécupérable.  – Une  erreur  d’un  bit  affecte  uniquement  ce  bit.  

Page 55: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Cryptographie  moderne  

•  Il  existe  beaucoup  d’algorithmes  de  chiffrement  symétrique  (~40)  et  asymétrique  (~24),  d’aprés  Wikipédia.  

•  Dans  les  prochains  slides,  on  se  concentrera  sur  les  plus  u)lisés,  plus  connus  ou  ceux  possédant  des  par)cularités  interessantes.s  

Page 56: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  DES  

•  Data  Encryp)on  Standard  –  56bits  –  Symétrique  –  Blocs  –  Concu  en  1971  par  Horst  Feistel,  l’algorithme  était  alors  connu  sous  le  nom  de  Lucifer.  

–  Le  “Na)onal  Bureau  of  Standards”  l’a  choisi  pour  devenir  l’algorithme  de  chiffrement  u)lisable  par  les  entreprises  

–  Passage  par  la  NSA,  128bits  -­‐>  56bits  –  S’est  révélé  résistant  à  des  a]aques  apparues  beaucoup  plus  tard,  alors  que  Lucifer  ne  l’était  pas  …  

Page 57: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  DES  

•  Schéma  global  – 64bits  en  input  – 16  tours  

•  Permuta)ons  (P-­‐Box)  •  Subs)tu)on  (S-­‐Box)  •  XOR  

– Les  clés  de  tours  sont    dérivées  de  la  clé  de  56bits  

Page 58: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  DES  

•  Statut  – Longtemps  u)lisé  sur  Unix  pour  chiffrer  les  mots  de  passe  u)lisateurs  

– La  clé  de  56  bits  était  trés  grande  pour  1970  – Maintenant  le  calcul  distribué  permet  de  la  retrouver  en  moins  de  24h.  

– Beaucoup  analysé,  des  faiblesses  ont  été  trouvé  – U)lisé  encore  dans  sa  version  3DES  

•  EDE  

Page 59: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  DES  

•  A]aques  – Recherche  exhaus)ve  :  2^55  en  moyenne  

•  Distribué  :  24h  •  Ordinateur  à  1M$  (en  1993)  :  7h  •  FPGA  à  10k$  (en  2006)  :  7  jours  

– Mathéma)que  •  Cryptanalyse  différen)elle  :  2^47  •  Cryptanalyse  linéaire  :  2^43  •  Analyse  de  la  consomma)on  •  Timing  a]ack  

Page 60: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  AES  

•  Advanced  Encryp)on  Standard  – 128,  192,  256  bits  –  Symétrique  –  Blocs  – Nom  original  :  Rijndael  – Devenu  le  nouveau  AES  en  remportant  le  concours  du  NIST  en  2000.  

– Remplacant  de  DES,  rapide  et  flexible.  – Nécéssite  10  à  14  tours  selon  la  taille  de  la  clé.  – Basé  sur  la  théorie  de  Galois.  

Page 61: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  AES  

•  A]aques  – Résistant  à  la  cryptanalyse  différen)elle  et  linéaire  – Des  a]aques  uniquement  sur  des  versions  simplifiées  (7  tours,  128  bits)  

– Heuris)ques  (XL,  XSL)  •  Efficacité  pas  démontrée  •  Entre  2^87  et  2^100  et  résolu)on  de  1600  équa)ons  et  8000  inconnues  (pour  128  bits)  

– Seule  vraie  a]aque,  en  2011,  réduisant  à  2^126,1  le  nombre  d’opéra)ons  nécéssaires  …  

Page 62: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  –  RC4  

•  Rivest  Cipher  4  – 40,  256bits  –  Symétrique  –  Flot  –  Inventé  par  Ronald  Rivest  en  1987  – Les  détails  furent  tenues  secret  jusqu’a  1994  où  il  fut  retro-­‐ingénieré  complétement  par  un  anonyme.  

– Simple  et  rapide  •  U)lisé  dans  WEP,  WPA,  TLS.  

Page 63: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  –  RC4  

•  Principe  – RC4  est  un  générateur  de  bits  pseudo-­‐aléatoires.  – Les  bits  générés  sont  ensuite  u)lisés  pour  chiffrer  le  flot  •  Pour  générer  le  flot  de  bits,  l'algorithme  dispose  d'un  état  interne,  tenu  secret,  qui  comprend  deux  par)es  :  –  une  permuta)on  S  de  tous  les  256  octets  possibles  –  deux  pointeurs  i  et  j  de  8  bits  qui  servent  d'index  dans  un  tableau  

– La  permuta)on  est  ini)alisée  grâce  à  la  clé  et  au  key-­‐schedule  de  RC4.  

Page 64: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  –  RC4  

•  A]aques  – RC4  a  été  beaucoup  étudié.  – En  1994,  certains  états  internes  ne  peuvent  pas  se  produire  -­‐>  faiblesse  dans  l’algorithme.  

– En  2001,  Fluhrer,  Man)n  et  Shamir  ont  découvert  que  les  premiers  octets  du  flux  ne  sont  pas  aléatoires  :  •  Ce  type  d’a]aque  fut  u)lisé  pour  casser  le  WEP  •  Mais  demande  beaucoup  de  message  chiffrés  •  Solu)on:  me]re  de  coté  les  1024  premiers  octets  

Page 65: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Recap3  

•  Les  algorithmes  de  chiffrement  symétriques  sont  rapides  mais  ils  nécéssitent  de  s’être  préalablement  mis  d’accord  sur  la  clé  secrète.  

•  Ces  clés  peuvent  être  échangées  par  de  la  cryptographie  asymétrique  que  l’ont  vera  ensuite  mais  il  existe  un  algorithme  spécialement  pour  ça  et  trés  u)lisé  encore  de  nos  jours.  

Page 66: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  DH  •  Withfield  Diffie  et  Mar)n  Hellman  –  Permet  de  se  me]re  d’accord  sur  un  nombre  sans  qu’une  autre  personne  (Eve)  ne  puisse  connaitre  ce  nombre  même  en  ayant  écouté  la  conversa)on.  

–  Basé  sur  le    problème  du  logarithme  discret  (Inversion  de  l’exponen)a)on)  

–     

Page 67: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  DH  

•  Exemple  

Page 68: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  DH  

•  Exemple  

Page 69: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  DH  

•  Exemple  – Alice  et  Bob  choisissent  un  nombre  premier  p  et  une  base  g.  Dans  notre  exemple,  p=23  et  g=3  

– Alice  choisit  un  nombre  secret  a=6  –  Elle  envoie  à  Bob  la  valeur  ga  [mod  p]  =  36  [23]  =  16  –  Bob  choisit  à  son  tour  un  nombre  secret  b=15  –  Bob  envoie  à  Alice  la  valeur  gb  [mod  p]  =  315  [23]  =  12  – Alice  peut  maintenant  calculer  la  clé  secrète  :  (gb  [mod  p])a  [mod  p]  =  126  [23]  =  9  

–  Bob  fait  de  même  et  ob)ent  la  même  clé  qu'Alice  :  (ga  [mod  p])b  [mod  p]  =  1615  [23]  =  9  

Page 70: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  DH  

•  A]aque  – Homme  du  milieu  

•  Un  a]aquant  peut  intercepter  les  messages  entre  les  2  personnes.  •  Les  remplacer  par  des  valeurs  qu’il  chosit.  •  Et  ainsi  pour  voir  déchiffrer  les  messages  envoyés.  

•  Solu)on  – Signature  

•  Permet  de  cer)fier  que  l’on  discute  avec    la  bonne  personne  et  non  pas  un  a]aquant.  

Page 71: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  Recap4  

•  La  cryptographie  symétrique  est  plutot  rapide,  résistante  et  le  problème  de  l’echange  de  clé  peut  être  résolut  avec  des  algorithmes  tel  que  Diffie-­‐  Hellman.  

•  Mais  il  existe  un  autre  type  de  cryptographie  où  il  n’y  a  plus  ce  problème,  puisque  deux  clés  sont  u)lisés  :  –  la  clé  servant  à  chiffrer  peut  etre  diffuser  librement  –  la  clé  pour  le  déchiffrement  reste  secrète.  

•  C’est  la  cryptographie  asymétrique.  

Page 72: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  Rivest-­‐Shamir-­‐Adleman  –  Variable  –  Asymétrique  –  Blocs  –  Inventé  en  1977,  il  est  le  premier  à  être  solide.  – U)lise  une  paire  de  clés  :  

•  Clé  publique  servant  à  chiffrer  •  Clé  privée  servant  à  déchiffrer  •  On  conseil  des  clés  de  2048  bits  

–  La  sécurité  est  basée  sur  la  difficulté  de  factoriser  n  •  Si  on  prend  n  =  p*q    avec  p  et  q  des  grands  nombres  premiers  

Page 73: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  Schéma  simple  

Page 74: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  Principe  – Généra)on  des  clés  

•  On  choisit  2  grand  nombre  premiers  p  et  q  •  On  calcule  n  =  p*q,  ce  sera  le  module  •  On  prend  e,  premier  avec  (p-­‐1)*(q-­‐1),  ce  sera  l’exposant  •  On  peut  alors  calculer  d  tel  que  e*d  =  1  mod  (p-­‐1)*(q-­‐1)  

–  (n,  e)  est  la  clé  publique  –  (n,  d),  est  la  clé  privée  

Page 75: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  Principe  – Chiffrement  

•  Pour  un  message  M  <  n  –  C  =  M^e  mod  n  

– Déchiffrement  •  Pour  un  message  chiffré  C  

– M  =  C^d  mod  n  

– Décryptage  •  Si  on  veut  calculer  d  avec  e  et  n,  il  nous  faut  p  et  q  C’est  à  dire  factoriser  n,  ce  qui  est  trés  difficile.    

Page 76: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  Exemple  – Prenons  p=53  et  q=97  – Prenons  e=7  (premier  avec  52*96)  – Nous  avons  n=53*97=5141  – M  =  BONJOUR  =  2  15  14  10  15  21  18  – On  découpe  M  =  2  151  410  152  118  

•  C1  =  2^7  mod  5141  •  C2  =  151^7  mod  5141  •  …  

Page 77: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  A]aques  – Factorisa)on  de  n  

•  Sur  un  ordinateur  classique,  on  peut  factoriser  un  nombre  de  256bits  en  quelques  heures.  •  En  2009,  un  nombre  de  768  bits  a  été  factorisé  par  du  calcul  distribué  •  Bientot  1024  ?  …  

– Si  un  jour,  un  algorithme  de  factorisa)on  rapide  est  trouvé  …  

– Existe  mais  pour  un  ordinateur  quan)que  ou  la  NSA  …  

Page 78: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  RSA  

•  A]aques  – Hastad  en  1985  

•  Une  des  premières  a]aques  •  Nécéssite  l’u)lisa)on  du  même  exposant  sur  plusieurs  messages  

– Kocher  en  1995  •  Déduc)on  de  la  clé  en  mesurant  le  temps  de  déchiffrement  (Timing  A]ack)  

– Bleichenbacher  en  1998  •  Récupéra)on  de  clé  avec  un  padding  pas  sùr  (PKCS  #1)  •  Solu)on  :  OAEP,  et  nouvelle  version  de  PKCS  #1  

Page 79: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  ElGamal  

•  Taher  ElGamal  – Variable  –  Asymétrique  –  Blocs  – Basé  sur  les  logarithmes  discrets  comme  Diffie-­‐Hellman  

– U)lisé  dans  GnuPG  et  les  récentes  versions  de  PGP  

– N’a  jamais  été  sous  la  protec)on  d’un  brevet,  contrairement  à  RSA.  

– Le  chiffré  fait  deux  fois  la  taille  du  clair.  

Page 80: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  ElGamal  •  Principe  –  Clé  

•  Un  en)er  s,  la  clé  secrete  •  Un  en)er  p,  a  premier  avec  p  et  P=a^s  mod  p,  clé  privée  

–  Chiffrement  •  0<M<p-­‐1  •  C1  =  a^k  mod  p      et  C2=MP^k  mod  p  

– Déchiffrement  •  R1  =  C1^s  mod  p    =  P^k  mod  p  •  M  =  C2  /  P^k  

– Décryptage  •  Calculer  P^k  connaissant  P,  a,  a^k      =      Logarithme  discret  

Page 81: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  Stats  

•  Comparaison  de  la  vitesse  de  chiffrement  de  DES,  AES  et  RSA  

Page 82: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  –  Recap5  

•  Il  existe  un  autre  type  de  fonc)on  cryptographique  de  base  :  les  fonc)ons  de  hachage  

•  U)lisées  seules,  elle  peuvent  vérifier  l’intégrité  de  données.  

•  En  les  combinant  aux  fonc)ons  de  chiffrement,  on  peut  créer  des  mechanismes  de  sécurité  plus  complexes  tel  que  la  signature  ou  les  cer)ficats.  

Page 83: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

                   Moderne  -­‐  Hashage  

•  Défini)on  – Entrée  :  Données  de  taille  variable  – Sor)e    :  Une  “empreinte”  de  taille  fixe  calculée  à  par)r  des  données  

•  Ne  pas  confondre  avec  un  chiffrement  !!  – Ce  sont  des  fonc)ons  à  sens  unique  alors  que  les  chiffrements  sont  fait  pour  être  déchiffré.    

–  Illogique  avec  la  compression.    

Page 84: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  -­‐  Hashage  

•  Exemple  simple  

•  Exemples  concrets  – MD5(“aaaaa”)  :  594f803b380a41396ed63dca39503542    

– MD5(“aaaab”)  :  11649b4394d09e4aba132ad49bd1e7db

Page 85: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  -­‐  Hashage  

•  U)lisa)on  –  Iden)fica)on  rapide  des  données  par  son  haché  

•  Coût  de  calcul  négligeable  •  Dans  les  HashMap  en  java  …  •  Et  les  tables  de  hachage  en  général  

– Vérifier  l’intégrité  des  données  •  Téléchargement  de  fichiers  

– Stockage  de  mot  de  passe  • Windows,  Linux,  Web  …  

Page 86: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  -­‐  Hashage  

•  Propriétés  pour  la  cryptographie  –  Il  est  trés  difficile  de  trouver  le  contenu  du  message  à  par)r  de  la  signature  -­‐>  A]aque  sur  la  préimage  

– A  par)r  d'un  message  donné,  de  sa  signature  et  de  la  fonc)on  de  hachage,  il  est  très  difficile  de  générer  un  autre  message  qui  donne  la  même  empreinte  -­‐>  A]aque  sur  la  seconde  préimage  

–  il  est  très  difficile  de  trouver  deux  messages  aléatoires  qui  donnent  la  même  signature  -­‐>  Résistance  aux  collisions  

Page 87: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  -­‐  Hashage  

•  Différences  avec  les  CRC  – CRC  pour  Cyclic  Redundancy  Check  

•  Permet  aussi  de  vérifier  la  validité  des  données  •  U)lisé  sur  un  canal  bruité  pour  repérer  les  erreurs  alors  qu’un  hachage  cryptographique  doit  avoir  certaines  propriétés  qui  lui  permet  de  résister  à  des  a]aques.  •  Ne  doit  pas  être  u)lisé  pour  de  la  cryptographie  !  

Page 88: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  –  MD5  

•  Message  Digest  5  en  1991  – U)lise  un  vecteur  d’ini)alisa)on  – Bloc  de  512bits  – Fonc)on  de  compression  destruc)ve  

– Produit  une  empreinte  sur  128bits  

– MD5(“truc”)  45723a2af3788c4ff17f8d1114760e62  

Page 89: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  –  MD5  

•  A]aques  – Cryptanalyse  intensive  durant  plus  de  10  ans.  – En  2004,  Xiaoyun  Wang  et  son  équipe  découvrent  une  collision  complète.  •  Trouver  un  message  différent  ayant  la  même  empreinte  •  Mais  pas  sur  un  messsage  précis  

– Depuis  MD5  n’est  pas  considérée  comme  sùr  et  ne  doit  pas  être  u)lisée  en  cryptographie  (dans  les  cer)ficats  par  exemples)  

Page 90: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  –  SHA  

•  Secure  Hash  Algorithm  – SHA-­‐0  (160bits)  en  1993  

•  Rapidement  mis  de  coté  par  le  NIST  •  Con)ent  des  failles  qui  abou)ssent  à  des  collisions  •  Collision  complète  découverte  par  Antoine  Joux  (2004)  

– SHA-­‐1  (160  bits)  en  1995  •  Version  modifié  de  SHA-­‐0  par  la  NSA  •  Pas  de  collision  complète  •  Mais  un  compléxité  réduite  à  2^63  par  Wang.  

Page 91: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  –  SHA  

•  Secure  Hash  Algorithm  – SHA-­‐1  (160  bits)  en  1995  

•  Ce]e  a]aque  rends  SHA-­‐1  non-­‐sùr  cryptographiquement  parlant.  •  Elle  est  progressivement  remplacée  par  SHA-­‐256  

– Le  NIST  a  lancé  un  concours  pour  trouver  le  prochain  SHA-­‐3.  Des  idées  ?  

– SHA-­‐256  (256  bits)  en  2000  •  Standard  recommandé  

Page 92: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  –  Hachage  •  Des  a]aques  sont  valables  sur  les  haches  en  général  –  Paradoxe  des  anniversaires  

•  On  calcul  des  haches  au  hasards  •  De  2^160  à  2^80  opéra)ons  pour  avoir  50%  de  réussite  pour  un  hache  de  160  bits.  

–  Base  de  données  de  haches  •  Il  en  existe  des  dizaines,  pour  tout  types  de  hache  

–  Table  arc-­‐en-­‐ciel  •  Structure  de  données  inventée  en  2003  par  Phillipe  Oehslin  •  Compromis  temps  mémoire  de  Hellman  •  Connue  pour  perme]re  de  casser  les  mot  de  passe  de  Windows  XP  en  quelques  secondes.  

•  Solu)on  :  ajouter  une  composante  aléatoire  (Unix)  

Page 93: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

 Moderne  –  recap6  

•  Il  reste  un  dernière  composante  cryptographique  apparu  depuis  les  chiffres  polyalphabé)que  et  sur  laquelle  repose  la  sécurité  des  systèmes  cryptographiques  :  la  clé.  

•  Comment  choisir  une  bonne  clé  ?  •  Comment  tester  la  solidité  d’un  clé  ?  •  Comment  générer  des  nombres  aléatoires  ?  

Page 94: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  •  Une  bonne  clé  doit  être  aléatoire  •  C’est  une  condi)on  nécéssaire  à  la  sécurité  des  systèmes  cryptographiques  

•  Aléatoire  ?  –  Répar))on  uniforme  des  1  et  0  –  Pas  de  séquences  qui  se  répètent  – …  

•  Possible  avec  un  programme  ?  – Non,  uniquement  du  pseudo-­‐aléatoire  – Mais  il  existe  des  disposi)fs  physiques  qui  le  permet  

•  U)lisa)on  du  bruit  thermique,  radio  ac)vité  …  

Page 95: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Généra)on  de  nombres  pseudo-­‐aléatoires  – Générateur  linéaire  congruent  

•  De  la  forme    •  Où  a,  b  et  m  sont  des  paramètres  

– Le  plus  connu  est  rand()    •  Mais  il  y  a  un  lien  entre  Xn,  Xn+1  et  Xn+2  

•  Donc  il  ne  doit  pas  être  u)lisé  en  cryptographie  

Page 96: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Généra)on  de  nombres  pseudo-­‐aléatoires  – Registres  à  décalage  

– Où  les  bits  à  u)liser  sont  définis  par  un  polynôme.  

Page 97: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Généra)on  de  nombres  pseudo-­‐aléatoires  – Registre  à  décalage  de  A5/2  

Page 98: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Généra)on  de  nombres  pseudo-­‐aléatoires  – Méthode  de  Gu]man  

•  Encore  u)lisé  par  GnuPG  •  Prendre  du  “random”  sur  le  système  

–  Delais  entre  les  touches  tapés  – Mouvement  du  plateau  du  disque  – Mouvement  de  la  souris  –  Temps  – …  

Page 99: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Test  des  données  – Entropie  (Shannon)  

– Résultat  sur  un  texte  de  Baudelaire    •  E  =  4,679  

– Résultat  sur  des  “random  bytes”  de  Random.org  •  E  =  7,988  

Page 100: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Test  des  données  – D’autres  méthodes    

•  Loi  du  χ²  (chi  square)  •  Moyenne  arithmé)que  •  Valeur  de  Pi  avec  un  algorithme  de  type  Monte  Carlo  •  16  tests  du  NIST,  FIPS  800-­‐22  

– Toute  ces  méthodes  sont  disponibles  avec  l’ou)l  ENT  (sauf  celles  du  NIST)  

Page 101: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Taille  de  clé  /  algorithme  en  2011  

Page 102: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Clé  

•  Taille  de  clé  /  algorithme  en  2031  

Page 103: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Cryptographie  moderne  

•  Générer  des  données  aléatoires  n’est  pas  un  problème  facile  pour  un  ordinateur  qui  est  par  défini)on  déterministe.  

•  Les  tailles  de  clé  grandissantes,  il  a  fallut  trouver  d’autres  systèmes,  u)lisant  des  clés  moins  longues  mais  tout  aussi  résistants  – Un  des  solu)ons  est  d’allier  la  cryptographie  et  les  courbes  ellip)ques.    

Page 104: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Ellip)que  

•  ECC  (Ellip)c  curve  cryptography)  – Développements  récents,  problèmes  de  brevets  – Clé  plus  courte  que  RSA  mais  procure  une  sécurité  au  moins  équivalente  que  les  autres  systèmes.  

– Repose  sur  le  logarithme  discret  dans  le  groupe  de  la  courbe  ellip)que.  •  Possibilité  d’u)liser  Diffie-­‐Hellman  •  ElGamal    •  …  

Page 105: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Ellip)que  

•  ECC  (Ellip)c  curve  cryptography)  – Clé  de  taille  200  bits  >=  1024  bits  de  RSA  – Calculs  faciles  à  réaliser  

•  Idéal  pour  de  l’embarqué  

– La  théorie  est  encore  récente,  il  existe  peut  être  des  failles  dans  ce  système  

– Permet  aussi  de  factoriser  des  grand  nombres  •  Methode  de  Lenstra  

Page 106: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  –  Recap7  

•  Rappelez  vous  le  chiffre  parfait  de  Vernam.  – Un  des  difficultés  était  le  transport  de  la  clé  qui  devait  être  transportée  en  valise  diploma)que.  

– Mais  ce  canal  n’était  pas  totalement  inviolable.  

•  La  mécanique  quan)que  pourrait  résoudre  ce  problème  – La  sécurité  ne  reposerait  alors  plus  sur  les  mathéma)ques  mais  sur  des  lois  physiques.  

Page 107: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Quan)que  

•  L’informa)on  est  transporté  sur  des  photons  – 4  états  (polarisa)ons)  

•  0°,  45°,  90°,  135°  – On  détecte  la  polarisa)on  des  photons  par  des  filtres  polarisants.  

– Basé  sur  le  principe  d’incer)tude  d’Heisenberg  •  Il  n’est  pas  possible  d’observer  un  objet  quan)que  sans  le  modifier  •  Si  un  photons  est  “lu”,  il  est  modifié,  on  peut  ensuite  détecter  ce]e  modifica)on.  

Page 108: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Moderne  -­‐  Quan)que  

•  Schema  simple  

Page 109: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Conclusion  

•  La  cryptographie  a  connu  3  grandes  ères  – Ar)sanal  jusqu’au  XXème  siècle  (fin  de  la  première  guerre  mondiale)  

–  Technique  au  XXème  siècle  –  Scien)fique  à  par)r  de  1976  

•  Les  méchanismes  de  sécurité  sont  devenus  complexes  ainsi  que  les  a]aques.  

•  La  moindre  fuite  d’informa)ons  peut  se  réveler  désastreuse  pour  un  chiffre.  

•  Mais  la  cryptographie  con)nue  d’évoluer  …  

Page 110: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Bibliographie  •  Simon  Singh,  "Histoire  des  codes  secrets",  LC  La]ès,  1999.    

•  David  Kahn,  "La  guerre  des  codes  secrets",  InterEdi)ons,  1980    

•  Whi2ield  Diffie  and  Mar8n  Hellman,  "New  Direc)ons  in  Cryptography",  IEEE  Transac)ons  on  Informa)on,  Theory,  Nov  1976.    

•  Rivest,  Shamir  and  Adleman,  "A  method  for  obtaining  digital  signatures  and  public  key  cryptosystems",  Communica)ons  of  the  ACM,  Feb.  1978,  pp.  120-­‐126.  

Page 111: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Bibliographie  •  Bruno  Mar8n,  Codage,  cryptologie  et  applica)ons,  PPUR,  2004    

•  Niels  Ferguson  and  Bruce  Schneier,  Prac)cal  Cryptography,  John  Wiley  &  Sons,  2003    

•  Bruce  Schneier,  Applied  Cryptography,  Second  Edi)on,  John  Wiley  &  Sons,  1996    

•  Douglas  S8nson,  Cryptographie  :  Théorie  et  pra)que,  Vuibert,  2003  

Page 112: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Webographie  

•  La  cryptographie  en  général  h]p://www.apprendre-­‐en-­‐ligne.net/crypto/  

•  Méthode  de  Baseries  h]p://rumkin.com/tools/cipher/cryptogram-­‐solver.php  

•  Méthode  de  Babbage-­‐Kasiski  •  h]p://smurfoncrack.com/pygenere/pygenere.php  

Page 113: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Webographie  

•  Bruce  Schneier  h]p://www.schneier.com/  

•  Random.org  h]p://www.random.org/bytes/  

•  FIPS  800-­‐22  h]p://csrc.nist.gov/publica)ons/PubsSPs.html  

•  Bibmath  www.bibmath.net/crypto/    

Page 114: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Toolographie  •  CrypTool  h]p://www.cryptool.org/  

•  FindMyHash  h]p://code.google.com/p/findmyhash/  

•  RSATool2  h]p://www.woodmann.com/collabora)ve/tools/index.php/RSA-­‐Tool_2  

•  XorTool  h]ps://github.com/hellman/xortool  

•  PyGenere  h]p://smurfoncrack.com/pygenere/pygenere.py  

Page 115: Introduc)on*àlacryptographie - Ensiwiki · – L’algorithme*n’est*pas*secretet peut*être*diffusé*librement* – La sécuritéd’un système*cryptographique*est*égale*àla

Toolographie  •  ENT  h]p://www.fourmilab.ch/random/  

•  OpenSSL  h]p://www.openssl.org/  

•  Translator,  Binary  h]p://home2.paulschou.net/tools/xlate/  

•  Bouncy  Castle  •  h]p://bouncycastle.org/  •  Ophcrack  h]p://ophcrack.sourceforge.net/