Cryptographie


 

La cryptographie est la science qui utilise les mathématiques afin de crypter et décrypter des données.
Grâce à la cryptographie, on peut ainsi transmettre des données sensibles (confidentielles) en utilisant des canaux de communication qui ne sont pas sûr (par exemple Internet).
Seule la personne destinataire des données pourra les lire.
 
 

<Figure 1-1 sur le site http://www.pgpi.com/doc/pgpintro/>
 
 
 
 

Cryptographie à clé privée (cryptographie conventionnelle)

C'est la méthode la plus simple (et la moins sûre !) pour crypter/décrypter des données.
Elle utilise la même clé afin de chiffrer et déchiffrer le message. Cette méthode est dite à clé symétrique, ou à substitution.
 
 

<figure 1-2 sur le site http://www.pgpi.com/doc/pgpintro/>
 
 

Ex. : Jules César envoyait des messages codés à ses généraux en utilisant un codage à décalage par 3 (A=>D, B=>E, C=>F, ..., F=>I, ..., I=>L, ..., W=>Z, ...)
    Message en clair : SECRET
    Message codé : VHFUHW
 

 

La clé (ici, décalage par 3), doit être connue de l'expéditeur et du destinataire.
=> Problème, comment communiquer une clé par un canal de communication qui n'est pas sûr ?
 

On sait statistiquement la proportion d'apparition d'une lettre de l'alphabet dans un texte écrit dans une langue donnée.
Ainsi, le cryptage étant simplement le remplacement d'une lettre par une autre, il est facile d'établir une statistique des lettres du texte codé, et de comparer à la statistique originale, comme ci-dessous, dans le cas de l'anglais :

 
 
 
 
 
 
 

Cryptographie à clé publique

1975 - Concept introduit par Diffie et Hellman (mais existait probablement depuis 1970 en Grande-Bretagne (secret militaire)).
Dans ce type de codage, dit asymétrique, deux clés différentes rentrent en jeu.
 

<Figure 1-3 sur le site http://www.pgpi.com/doc/pgpintro/>
 

Clé publique : utilisée par l'expéditeur afin de crypter les données.
Clé privée : utilisée uniquement (et gardée secrète) par le destinataire afin de décrypter le message.
 

Il est impossible mathématiquement de déduire (calculer) la clé privée si l'on connait la clé publique.
 

Avec cette technique de cryptage, il n'y a plus de problème pour communiquer.
La clé publique peut être transmise directement à la personne qui souhaite envoyer un message crypté.
 
 
 
 

Signature

 

La signature permet de certifier la provenance de données.

Avant de crypter les données avec la clé publique du destinataire, l'émetteur ajoute une signature aux données en fonction des données et de sa clé privée.
Il peut ensuite crypter l'ensemble avec la clé publique du destinataire, puis lui envoyer.
 

<Figure 1-6 sur le site http://www.pgpi.com/doc/pgpintro/>
 
 
 
 
 

Intégrité des données

Cette fonctionnalité permet de s'assurer que les données n'ont pas été altérées.
 

<Figure 1-7 sur le site http://www.pgpi.com/doc/pgpintro/>
 
 
 

Algorithmes

    Généralement en utilisant des calculs à partir de nombres premiers très grands.
   
 
 

Clés

Cryptographie à clé privée

 
 
Coût du matériel utilisé
40 bits
56 bits
64 bits
80 bits
112 bits
128 bits
100 K$ 2 s 35 h 365 j 70 000 ans 10e14 ans 10e19 ans
1 M$ 0.2 s 3.5 h 37 j 7 000 ans 10e13 ans 10e18 ans
10 M$ 0.02 s 21 min 4 j 700 ans 10e12 ans 10e17 ans
100 Md$ 2e-6 s 0.1 s 32 s 24 j 10e8 ans 10e13 ans
(Source : Applied Cryptography 2nd edition : 1995) pour une attaque massive

Si on utilise un cluster de machines (400 machines) pouvant traiter 32000 codes par seconde (chacune), il faudrait à peine 1 jour pour une clé de 40 bits
Une clé de 128 bits est par contre (à l'heure actuelle) jugée inviolable.
 
 
 

Cryptographie à clé publique

1977 : R. RIVEST annonce qu'il faudrait environ 40e15 années pour factoriser un nombre de 125 digits.
1994 : Un nombre de 129 digits a réussi à être factorisé.
 
 

Recommandation de taille de clés publique (Source : Applied Cryptography 2nd edition)
 

Année Utilisation privée Utilisation commerciale Utilisation gouvernementale
1995 768 bits 1280 bits 1536 bits
2000 1024 bits 1280 bits 1536 bits
2005 1280 bits 1536 bits 2048 bits
2010 1280 bits 1536 bits 2048 bits
2015 1536 bits 2048 bits 2048 bits
 

 

Comparaison de taille de clés

Pour un cryptage avec une sécurité sensiblement similaire face une attaque massive
 
Cryptographie symétrique (clé publique) Cryptographie asymétrique (clé privée/clé publique)
56 bits 384 bits
64 bits 512 bits
80 bits 768 bits
112 bits 1792 bits
128 bits 2304 bits
(Source : Applied Cryptography 2nd edition)
 

Rappel : il n'y a pas que la longueur de la clé qui rentre en compte dans la sécurité; La complexité de l'algorithme utilisé est également à prendre en compte.
 
 

 

Génération de clés

Généralement les clés sont générées à partir de données aléatoires (mouvement de la souris, touches clavier, heure, informations spécifique au poste informatique).
Dans le cas de la clé privée, la clé est stockée sous forme codée sur l'oridnateur en utilisant une "phrase de passe".
 
 
 

Contre la cryptographie