Cryptographie!

Un peu de vocabulaire pour la cryptographie moderne

  Les messages que l'on transmet sont maintenant presque tous numérisés. Ils sont transformés en un suite de 0 et de 1 que l'on appelle des bits. On fait fonctionner directement les algorithmes sur ces suites de 0 et de 1, et non sur les lettres comme on pouvait le faire auparavant.

  Les algorithmes modernes dépendent toujours d'une clé pour leur fonctionnement. Cette clé est elle aussi une suite de 0 et de 1. La longueur de la clé est la longueur de la suite de 0 et de 1 nécessaire pour écrire la clé. Dire que la clé a pour longueur 64 bits signifie qu'il faut 64 symboles 0 ou 1 pour l'écrire. Comme, pour chacun de ces symboles, il y a deux choix possible (ou bien 0, ou bien 1), lorsque la longueur de la clé est de $n$ bits, il y a $2\times2\times\dots\times 2=2^n$ clés possibles. Pour se donner un ordre d'idée, le nombre d'atomes dans l'univers est à peu près estimée à $2^{265}$. Si votre clé a une longueur supérieure à 265 bits, il sera impossible de les utiliser toutes!

  On a besoin de réaliser des opérations simples sur les suites de 0 et de 1. La plus souvent utilisée est le ou exclusif. Cette opération, que l'on note en général $\oplus$, est définie par $$\begin{array}{rcl} 0\oplus 0&=&0\\ 0\oplus 1&=&1\\ 1\oplus 0&=&1\\ 1\oplus 1&=&0. \end{array}$$ Elle peut se voir comme l'addition en base 2 en oubliant la retenue. Lorsqu'on a deux suites (on dit parfois deux mots) $a_1\dots a_p$ et $b_1\dots b_p$ ayant même longueur (ici $b$ bits), le ou exclusif de ces deux suites correspond au ou exclusif terme à terme. Par exemple, $$0011\oplus 1010=1001.$$