---
# System prepended metadata

title: Principes mathématiques pour la Cryptologie
tags: [' Marcello', TCOM]

---

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