Arithmétique

Les algorithmes de cryptographie nécessitent certaines connaissances en arithmétique et leurs algorithmes associés, en particulier sur les anneaux et corps finis.

On considérera ici que l'on a des vecteurs de $n$ bits, allant du bit de poids faible au bit de poids fort :

index  :     876543210
valeur : x = 010100110

$n$ est grand. Même si $\mathcal{O}(1)$ pour des mot sur 64b, comme n>64, c'est plus.

C'est pourquoi les complexités (voir Knuth) sont souvent données en fonction de $n$, le nombre de bit des paramètres et de $B$, la base de calcul (64b pour nous actuellement). Nous ne nous embêterons pas ici avec ça et donnerons les complexités uniquement en fonction de $n$.

Probabilités discrètes

Entiers

Corps Z/pZ

Courbes elliptiques

Groupe $(\{0, 1\}^L, \oplus)$

Le groupe commutatif $(\{0, 1\}^L, \oplus)$ est l'extension cartésienne du groupe $(\{0, 1\}, \oplus)$. On notera $\mathbb{0} = (0, \dots, 0)$ (l'élément neutre) et $\mathbb{1} = (1, \dots, 1)$.

On a les propriétés remarquables suivantes, qui seront utiles à de multiples reprises :

tbd

TBD : XOR le plus du groupe $(\mathbb{Z}/2\mathbb{Z})^L$

TBD