Cryptographie et codes secrets

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.$$