---
tags: TCOM, Marcello
title: Principes mathématiques pour la Cryptologie
---
# Principes mathématiques pour la Cryptologie
## Historique
- Chiffrement de César: rotn
- Chiffrement de Vigenère: ruban sur baton
- Chiffrement "marathonien": tatouage sur le crane d'un esclave + attente de repousse de cheveux + envoie de l'esclave + coupage de cheveux
## Formalisation
- $M$ Espace des messages, parfois noté $P$
- $C$ Espace des messages chiffré
- $K$ Espace des clefs, $k$ clef
- $KeyGen$ ou $KG$: algorithme de génération de clefs
- $Enc$ ou $\varepsilon$: fonction de chiffrement
- $Dec$ ou $D$: fonction de déchiffrement
Opération de chiffrement:
$$\varepsilon : (M, K) \rightarrow C$$
Opération de déchiffrement:
$$D : (C, K) \rightarrow M$$
### Formalisation du chiffrement de César
$$M = \{0, 1, ..., 25\}$$
$$C = \{0, 1, ..., 25\}$$
$$K = \{0, 1, ..., 25\}$$
Supposont $K = 9$
$$Enc(19, 9) = 19 + 9 = 28 = 3$$
$$Dec(3, 9) = 3 - 9 = - 6 = - 6 + 2 5 = 19$$
$$\varepsilon:(M,k\in[0,26[)\rightarrow C$$
$$\varepsilon:(M,k)\rightarrow m+k$$
$$D:(C,k\in[0,26[)\rightarrow M$$
$$D(c,k)\rightarrow c-k$$
Proprietes de crypto:
- Confidentialite
- Integrite
- Authenticite
- Non-repudiation
# Bézout
```py
def bezout(a, b):
if b == 0:
return (1, 0)
else:
(u, v) = bezout(b, a % b)
return (v, u - (a // b)*v)
```
$$Z/5Z +$$
|+ |0 |1 |2 |3 |4 |
|---|---|---|---|---|---|
|0 |0 |1 |2 |3 |4 |
|1 |1 |2 |3 |4 |0 |
|2 |2 |3 |4 |0 |1 |
|3 |3 |4 |0 |1 |2 |
|4 |4 |0 |1 |2 |3 |
$$Z/5Z *$$
|* |0 |1 |2 |3 |4 |
|---|---|---|---|---|---|
|0 |0 |0 |0 |0 |0 |
|1 |0 |1 |2 |3 |4 |
|2 |0 |2 |4 |1 |3 |
|3 |0 |3 |1 |1 |2 |
|4 |0 |4 |3 |2 |1 |
ERREUR pour $3*3:1 \rightarrow3*3:4$
$$Z/6Z *$$
|* |0 |1 |2 |3 |4 |5 |
|---|---|---|---|---|---|---|
|0 |0 |0 |0 |0 |0 |0 |
|1 |0 |1 |2 |3 |4 |5 |
|2 |0 |2 |4 |0 |0 |4 |
|3 |0 |3 |0 |3 |0 |3 |
|4 |0 |4 |0 |0 |4 |2 |
|5 |0 |5 |4 |3 |2 |1 |
ERREUR pour $2*4:0 \rightarrow2*4:2$
ERREUR pour $4*2:1 \rightarrow4*2:2$