Niveau :
Résumé : crypto
Vocabulaire
Avant de pouvoir parler de sécurisation des communications, il faut avoir quelques bases en cryptographie. Commençons par le vocabulaire :
- Coder : transformer une information en code (par exemple numériser une photo, écrire en morse ou en ASCII)
- Chiffrer : transformer une information codée de façon à la rendre illisible à une autre personne que son destinataire
- Déchiffrer : lire un document chiffré avec les informations nécessaires pour le faire
- Décrypter : tenter de lire un document chiffré sans avoir la clé de déchiffrement
- Signer : ajouter une information à un document prouvant qu'il a bien été écrit/lu par son auteur/lecteur sous cette forme et n'a pas été modifié
- Empreinte : somme de contrôle d'un message (MD5, SHA) en cryptographie on cherche à faire en sorte qu'il soit impossible de créer un message ayant une empreinte donnée
- Cryptanalyse : études des attaques permettant de décrypter un message ou de casser un chiffrement
- Cryptographie : étude des systèmes de protection de messages
- Cryptologie : ensemble de la cryptographie et de la cryptanalyse
- Crypter : ce mot n'existe pas
Entropie
L'entropie est une mesure de la quantité d'information. Cette mesure n'est pas absolue, elle est relative à une quantité d'information possible.
Par exemple un octet est une valeur parmi 256. Un octet vraiment aléatoire (avec une répartition linéaire) a donc une entropie de 8. En pratique on ne cherche que rarement la valeur d'une entropie. On chercher plutôt à comparer obtenir des propriété sur l'entropie.
Par exemple prenons une suite de 5 octets. Si je peux déduire les 4 dernier octets à partir du premier (2*x 4*x 8*x 16*x), alors leur entropie est la même que celle d'un seul octet.
Maintenant si cette suite est véritablement aléatoire (tirée aux dés non pipés), l'entropie devient 5 fois plus grande.
Et enfin si cette suite n'est pas vraiment aléatoire, c'est-à-dire tirée avec un générateur pseudo aléatoire (/dev/urandom), alors leur entropie est égale à l'entropie du générateur pseudo aléatoire. Celle-ci se mesure par la taille de l'état interne du générateur.
Il est important de bien saisir cette notion pour comprendre la sécurité des algorithmes.
Entropie mesurée
Lorsque nous générons une suite d'octets, nous pouvons connaître l'entropie des données (et encore ...).
Lorsque nous récupérons des données, l'entropie n'est pas mesurable. Mais elle est estimable. En effet, pour une grande suite d'octets, si celle-ci est compressible, cela veut dire qu'il existe une technique pour déduire certains octets à partir des autres. L'entropie est donc très (le très variant en fonction du nombre d'octets considérés) probablement inférieure à la taille de la version compressée.
Pour tout système on peut donc chercher à en réduire l'entropie en éliminant des informations qui n'en sont pas vraiment. C'est le travail que font les gens qui développement des codecs (audio, vidéo ...).
Espace de chiffrement
L'espace de chiffrement est le nombre de tests que l'on doit effectuer pour en découvrir la clé de chiffrement d'un système. Si le système de chiffrement était parfait, il serait de la même taille que la clé. Malheureusement, on sait que la perfection n'existe pas.
Les études successives d'un système permettent souvent de réduire cet espace. Soit grâce à des informations obtenues par des moyens détournés (sous partie de la clé disponible, comparaison possible de texte clair et de texte chiffré ...), soit par une faiblesse du système qui va réduire sa propre entropie (ce cas est assez rare).
Sécurité
La sécurité d'un système s'estime à partir de cet espace de chiffrement. Plus il est grand, plus une machine devra mettre de temps pour trouver la clé de chiffrement et plus le système va être sûr.
Attention tout de même, ce n'est pas parce qu'un système de chiffrement est sûr que vos données le sont.
Et la littérature est abondantes sur le sujet, wikipedia n'est pas le seul à proposer des informations.
Comments