diff options
| author | martial.simon <martial.simon@epita.fr> | 2025-04-13 19:54:19 +0200 |
|---|---|---|
| committer | martial.simon <martial.simon@epita.fr> | 2025-04-13 19:54:19 +0200 |
| commit | 66c3bbfa94d8a41e58adf154be25e6d86fee8e30 (patch) | |
| tree | 9c5e998f324f2f60c1717759144da3f996c5ae1a /CHIFR | |
init: initial commit
Diffstat (limited to 'CHIFR')
| -rwxr-xr-x | CHIFR/Cours/RMD1.md | 88 | ||||
| -rwxr-xr-x | CHIFR/Cours/RMD2.md | 132 | ||||
| -rwxr-xr-x | CHIFR/Cours/RMD3.md | 41 | ||||
| -rwxr-xr-x | CHIFR/Cours/RMD4.md | 39 | ||||
| -rwxr-xr-x | CHIFR/TD/TD1.md | 174 | ||||
| -rwxr-xr-x | CHIFR/TD/TD2.md | 61 | ||||
| -rwxr-xr-x | CHIFR/TD/TD3 - Courbes elliptiques.md | 84 | ||||
| -rwxr-xr-x | CHIFR/{7AB28281-E4F9-4DAA-860B-973E65165911}.png | bin | 0 -> 120052 bytes |
8 files changed, 619 insertions, 0 deletions
diff --git a/CHIFR/Cours/RMD1.md b/CHIFR/Cours/RMD1.md new file mode 100755 index 0000000..7a02850 --- /dev/null +++ b/CHIFR/Cours/RMD1.md @@ -0,0 +1,88 @@ +# Intro + +- Ch 1 Intro +- Ch 2 Cryptographie symétrique +- Ch 3 & 4 Cryptographie asymétrique + - Diffie-Hellman, RSA, El Gamal + - logarithme discret + - chiffrement et courbes elliptiques + - protocoles hybrides et TLS + - Post-quantique + +# Chapitre 1 + +```handwritten-ink +{ + "versionAtEmbed": "0.3.4", + "filepath": "Ink/Writing/2025.3.5 - 9.26am.writing" +} +``` + - Confidentialité + - Authentification des données + - Intégrité (Checksum) + - Non répudiation (signature électronique) + + **Crypto is everywhere** +## Encryption symétrique + +- Indice de coïncidence +- Principes de Kerckhoffs : + - _Le système doit être matériellement, sinon mathématiquement indéchiffrable._ + - _Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les mains de l'ennemi._ + - _La clef doit pouvoir être communiquée [...]_ +- Enigma (Regarder The Imitation Game) +- **I**nformation **T**echnically **S**ecure +- Chiffrement _parfait_ : Vernam + - Pb 1 : usage unique de la clé + - Pb 2 : clé aussi longue que le message + - Pb 3 : chiffrement optimal dans sa catégorie + +### Chiffrement par blocs + +Blocs de petite taille (_n_, clé de taille _k_) +Utilisés comme **mode d'opération** +- Electronic Codebook (ECB) mode **do not use** (Vernam avec clé trop courte un peu); +- Cipher-Block Chaining (CBC) mode; +- Output Feedback (OFB) mode; +- Counter (CTR) mode; +- ... +#### Block-cypher +#### Two main techniques + +- **Feistel networks** +- **SPN** +#### Structure + +Key scheduler -> blocks (_k_<sub>i</sub>) + +Première version (IBM) basée sur le **chiffre Lucifer** +**NSA** impliquée (shady) +Standard fédéral aux U.S. <u>novembre 1976</u> + +____ +#### Feistel diagram + +![[{7AB28281-E4F9-4DAA-860B-973E65165911}.png]] + +#### Origines AES + +- Remplacement de DES +- Triple-DES lent +- US NIST appel en <u>1997</u> +- **Rijndael** sélectionné en <u>octobre 2000</u> +- AES = **SPN** (Substitution-Permutation Network) + +#### Substitution-Permutation Network + +- **Confusion** & **diffusion** +- Substitution et permutation des blocs +- Assez de tours -> chaque bit d'entrée est diffusé dans tout le réseau +- Processus : + - XOR le bloc avec la clé + - SubBytes : + - Boîte-S définie sur $\mathbb{F}_{256}$ + - ShiftRows + - Shift des lignes (0 puis 1 puis 2 shifts...) + - (diffuse sur les lignes) + - MixColumns + - Produit matriciel (diffuse sur les colonnes)
\ No newline at end of file diff --git a/CHIFR/Cours/RMD2.md b/CHIFR/Cours/RMD2.md new file mode 100755 index 0000000..6e1b170 --- /dev/null +++ b/CHIFR/Cours/RMD2.md @@ -0,0 +1,132 @@ +# Le problème du logarithme discret +$\rightarrow$ échange de clés Diffie-Hellman & ElGamal + +## Chiffrement à clé publique + +Pas de lien entre $pk$ et $sk$ (et surtout $pk \neq sk$) +Si on chiffre avec la clé privée, on peut tout déchiffrer avec la clé publique : **signature** + ### Flashback STA +Choisir $p$ un nombre premier et $g$ un générateur de $\mathbb{Z}/p\mathbb{Z}$ + +| Alice | Bob | +| -------------------------- | -------------------------- | +| Choisir $a < p$ | Choisir $b < p$ | +| Envoyer $K_a = g^a \mod p$ | Envoyer $K_b = g^b \mod p$ | +| K = $(g^b)^a$ | K = $(g^a)^b$ | +Clé privée : $K = g^{ab} \mod p = g^{ba} \mod p$ +## DLP - Définition + +Soit $g \in (\mathbb{Z}/p\mathbb{Z})^x$ un générateur et $b \in (\mathbb{Z}/p\mathbb{Z})^x$. Le problème du logarithme discret consiste à résoudre l'équation $g^x = b$ avec $x < p$ donc résoudre $$g^x \equiv b \; mod\; p.$$ +Alors l'entier $x = \log_g(b)$ s'appelle le **logarithme discret de $b$ de base $g$**. + +- $\log_g(b_{1}b_{2}) = \log_g(b_1) + \log_g(b_2)$ +- $\log_{g}(b^n) = n\log_{g}(b)$ +## DLP - Attaques + +**Bruteforce** : contré avec un grand nombre premier +Complexité : $\Theta(p)$ +### Algo de Shank +Algorithme de collision : +1. On choisit $n > \sqrt{p}$ +2. Créer les listes : + 1. (baby-steps): $1, g, g^2, ..., g^{n-1}$ + 2. (giant-steps) : $b, bg^{-n}, bg^{-2n}, ...,$ +3. Trouver une collision (même élément dans les 2 listes) : $g^r = bg^{-qn}$ +4. Alors $g^{qn + r} = b$ et $x = qn + r$ + +Ex avec $5^x \equiv 2 \mod 7$: +1. n = 3 +2. $[1, 5, 25]$ et $[2,\, 2*5^{-3},\, 2*5^{-6}] = [2,\,]$ +3. +#### Conclusion sur Shank +Complexité en $\Theta(\sqrt{p}\log(p))$ +# Le problème de la factorisation des entiers +$\rightarrow$ RSA + +## RSA + +**Création de clés** : +1. Choisir premiers $p$ et $q$, calculer $n = pq$ +2. Calculer $\phi(n) = (p - 1)(q-1)$ +3. Choisir $e < \phi(n)$ tel que $\gcd(e,\phi(n)) = 1$ +4. Calculer $d$ tel que $de \equiv 1\; mod\; \phi(n)$ +5. Clé privée : $sk = d$ +6. Clé publique : $pk = (n,e)$ + +Chiffrement par **Alice** : +1. Calculer $c = Enc(pk,m) = m^e \; mod \; n$ +2. Envoyer $c$ + +Déchiffrement par **Bob** : +1. Calculer $Dec(sk,c) = c^d \; mod \; n$ +2. Le message d'origine est $m = c^d$ + +- $n =pq$ avec $p$ et $q$ premiers +- $e \times d \equiv 1 \; mod \; (p-1)(q-1)$ +- Chiffrement $c = m^e$ +- Déchiffrement $m = c^d$ +- $(m^e)^d = (m^d)^e = m$ + +### RSA Scolaire + +- Un même message **m** est toujours chiffré avec le même $c$ (déterministe) +- L'algo est homomorphique : $Enc(m_1, pk) \times Enc(m_2, pk) = Enc(m_1m_2, pk)$ +### Bonnes pratiques + +- grands p et q et pas très proches +- e ne doit pas être très petit (souvent $e = 2^{16} + 1 = 65537$) +- d ne doit pas être très petit + +### $\phi(n) = (p-1)(q-1)$ doit rester secret + +En effet : +$$ +(p-1)(q - 1) = pq -p -q + 1 = n - (p + q) + 1 +$$ +Puisque $n$ est connu on peut calculer $p + q$ et résoudre +$$ +X^2 - (p+q)X + pq = 0 +$$ +Comme +$$ +(X - p)(X - q) = X_{2} - (p + q)X + pq +$$ +les solutions de l'équation sont eactement $p$ et $q$. + +### Algorithme de Fermat + +$\rightarrow$ Choisir p et q suffisamment éloignés +```pcode +Input : n +Output : p, q +x <- floor(sqrt(n)) +z <- x² - n +while not issquare(z) do + x <- x + 1 + z <- x² - n +end while +y <- sqrt(z) +p <- x + y +q <- x - y +``` +### Algorithme $\rho$ de Pollard's + +```pcode +Input : n +Output : $\rho$ +x <- randomint(n) +y <- x +f(x) <- x² + 1 +d <- 1 +while d = 1 do + x <- f(x) + y <- f(f(y)) + d <- gcd(x - y, n) +end while +if d = n then Start again +end if +``` +Ex avec $x_0 = y_0 = 2, f(x) = x^2 + 1$ +x = 26 +y = 458 530 +d = 1
\ No newline at end of file diff --git a/CHIFR/Cours/RMD3.md b/CHIFR/Cours/RMD3.md new file mode 100755 index 0000000..abae348 --- /dev/null +++ b/CHIFR/Cours/RMD3.md @@ -0,0 +1,41 @@ +# Courbes elliptiques +**Une courbe elliptique $\mathcal{C}$ est l'ensemble des points $(x,y)$ avec $(x,y) \in \mathbb{K},\, \mathbb{K}$ un corps, qui vérifient :** +$$ +y^2 = x^3 + ax + b +$$ +**avec $4a^3 + 27b^2 \neq 0$** + +Si $E:y^2=x^3+ax+b$ est une courbe définie sur un corps $\mathbb{K}$ on pose +$$ +E(\mathbb{K}) = \{ (x,y) | y^2 = x^3 + ax + b\} \cup \{ \mathcal{O} \} +$$ +où $\mathcal{O}$ est le point "à l'infini", parfois noté $\infty$. +## Sur $\mathbb{F}_p$ +Ici, $\mathbb{K} = \mathbb{F}_p = \mathbb{Z}/p\mathbb{Z}$ avec $p > 3$. +Un point est donc sur la courbe si $y^2=x^3+ax+b\; mod\; p$ + +## Formules +![[{596A56BB-4EC1-4A4E-9D79-F957C8D05BB0}.png]] + +## Théorème de Hasse +$$ +p+1 - 2\sqrt{ p } \leq Card(E(\mathbb{F}_{p})) \leq p+1+2\sqrt{ p } +$$ + +## Utilisations +- Signature iMessage (Apple) +- Authentification SSL, TLS, Bitcoin +- IoT (Moins couteux en ressources) +- Systèmes de paiment + +## ElGamal +### Problèmes + +## Logarithme discret +$g^x =b \,mod\, p$ +### Sur une courbe elliptique +Revient à résoudre $xQ = P$ où P,Q sont des points connus dans $E(\mathbb{F}_{p})$ +#### Attaques +- Bruteforce : $\mathcal{O}(p)$ +- Shank : $\mathcal{O}(\sqrt{ p })$ +- $\rho$ de Pollard : $\mathcal{O}(\sqrt{ p })$ diff --git a/CHIFR/Cours/RMD4.md b/CHIFR/Cours/RMD4.md new file mode 100755 index 0000000..29e0ff6 --- /dev/null +++ b/CHIFR/Cours/RMD4.md @@ -0,0 +1,39 @@ +# Codes correcteurs +Redondance = besoin de beaucoup d'espace + +## Mots binaires +Un **mot binaire** de taille $k$ eset un élément de $\mathbb{F}_2^k$ c'est à dire $m = (m_{1},m_{2},\dots,m_{k})$ + +## Distance de Hamming +Nombre de différences entre deux mots binaires + +## Matrice génératrice [m,n] +$M_{m\times n}$ +$\longrightarrow$ ajout d'une colonne de $(1,1,\dots,1)$ pour la distance ($+ = \oplus$) + +## Poids d'un code +Nombre de coordonnées non-nulles $\omega (c) = Card(i | c = (c_{1},c_{2},\dots,c_{n}), c \neq 0)$ + +## Forme systématique de $G$ +Si on peut écrire $G$ comme $G_{k,n} = (I_{k}|A_{k,n-k})$, on dit que le code est **systématique**. +$\implies$ on retrouve le mot en début de code suivi de sa redondance + +## Matrice de parité +On prend $G = (I_{k}|A_{k,n-k})$, soit $H$ sa **matrice de vérification de parité** de taille $(n-k)\times n$, $H = (-A^T|I_{n-k})$ +Dans tous les cas $GH^T=0$ + +## A retenir +- Le code est donc l'**image** de $G$ et le **noyau** de $H$ +- $x \in \mathbb{F}_{2}^n$ est un code $\Leftrightarrow Hx^T = 0$ +- La matrice $H$ permet de déterminer $d : d - 1$ colonnes sont toujours linéairement indépendantes, $d$ colonnes liées. + +# Correction des codes +- message : m +- code : c +- bruit : code modifié $y = c + e$. L'erreur peut être exprimée avec $e \in \mathbb{F}_2^n$ +- décodage : retrouver c à partir de y. + +![[Pasted image 20250408100703.png]] + +## Syndrôme +Soit $y \in \mathbb{F}_2^n$ le vecteur reçu. On appelle **syndrome** de $y$ $s(y) = Hy^T \in \mathbb{F}_{2}^{n-k}$ diff --git a/CHIFR/TD/TD1.md b/CHIFR/TD/TD1.md new file mode 100755 index 0000000..aa1e67b --- /dev/null +++ b/CHIFR/TD/TD1.md @@ -0,0 +1,174 @@ +# 1. Chiffrement historique +## 1-1/ César +### a. +25 +### b. +Non, trop simple à bruteforce +### c. +Non, sensible au bruteforce +## 1-2/ N'importe quelle lettre +### a. +26! +### b. +Suffisant contre bruteforce +### c. +Cassable par analyse fréquentielle +## 1-3/ Sur un octet +### a. +256! +### b. +Suffisant contre bruteforce +### c. +Analyse fréquentielle ne fonctionne plus + +# 2. Chiffrement par blocs +## 2.1 Modes opératoires +### 2-2 ECB +$$ +\begin{align} +Enc &: &\{0,1\}^k& &\times& &\{ 0,1 \}^n &&\longrightarrow& &\{ 0,1 \}^n \\ + && K& &,& &m & &\longmapsto & &Enc_{K}(m) +\end{align} +$$ +#### a. +$$ +\begin{align} +Dec &: &\{0,1\}^k& &\times& &\{ 0,1 \}^n &&\longrightarrow& &\{ 0,1 \}^n \\ + && K& &,& &c & &\longmapsto & &Dec_{K}(c) +\end{align} +$$ +#### b. +N'affecte pas, chiffrement indépendant +#### c. +Oui +### 2-3 OFB +$z_{0}=IV$, et $z_i=Enc_k(z_{i-1})$, $\forall i, 1 \leq i \leq t$ +$c_i=m_i \oplus z_i$, $\forall i, 1 \leq i \leq t$ +Avec $IV \in \{0,1\}^n$ un vecteur d'initialisation tiré aléatoirement +#### a. +$m_{i} = c_{i} \oplus z_{i}$ +### 2-4 CBC +$c_{0}=IV, c_{i}=Enc_{k}(m_{i} \oplus c_{i-1}), \forall i,\, 1 \leq i \leq t$ +#### a. +$m_{i} = Dec_{k}(c_{i}) \oplus c_{i-1}$ +#### b. +Impact sur $m_i$ et $m_{i+1}$ +#### c. +Non lol +### 2-5 PCBC +$c_{-1}=IV,\, c_{0} \oplus m_{o} = IV, c_{i} = Enc_{k}(m_{i} \oplus m_{i-1} \oplus c_{i-1}),\, 1 \leq i \leq t$ +#### a. +## 2.2 Schéma de Feistel +### 2-6 +Soient $f_1 : \{ 0,1 \}^4 \mapsto \{ 0,1 \}^4$ et $f_{2} : \{ 0,1 \}^4 \mapsto \{ 0,1 \}^4$ tels que $\forall a \in \{ 0,1 \}^4$ +$$ +f_{1}(a) := a \oplus 1011 \;et\; f_{2} := \overline{a} \oplus 0101 +$$ +#### a. +$$ +\begin{align} +&\begin{cases} +L_{1} = R_{0} \\ +R_{1} = L_{0} \oplus f_{1}(R_{0}) +\end{cases} \\ +&\begin{cases} +L_{1} = 0011 \\ +R_{1} = 1101 \oplus 1000 +\end{cases} \\ +&\begin{cases} +L_{1} = 0011 \\ +R_{1} = 0101 +\end{cases} \\ +&\begin{cases} +L_{2} = R_{1} = 0101 \\ +R_{2} = L_{1} \oplus f_{2}(R_{1}) +\end{cases} \\ +&\begin{cases} +L_{2} = 0101 \\ +R_{2} = 0011 \oplus 1010 \oplus 0101 +\end{cases} \\ +&\begin{cases} +L_{2} = 0101 \\ +R_{2} = 0011 \oplus 1111 +\end{cases} \\ +&\begin{cases} +L_{2} = 0101 \\ +R_{2} = 1100 +\end{cases} \\ +\end{align} +$$ +Résultat : $L_2R_2 = 01011100$ +#### b. +Soit $M = (L_0,R_0) \in \{ 0,1 \}^4 \times \{ 0,1 \}^4$, on a +$$ +C_{0} = \begin{cases} +L_{2} = L_{0} \oplus f_{1}(R_{0}) \\ +R_{2} = R_{0} \oplus f_{2}(L_{0} \oplus f_{1}(R_{0})) +\end{cases} = \begin{cases} +L_{2} = L_{0} \oplus f_{1}(R_{0}) \\ +R_{2} = R_{0} \oplus f_{2}(L_{2}) +\end{cases} +$$ +#### c. +$$ +C =\begin{cases} +L_{2} = L_{0} \\ +R_{2} = R_{0} +\end{cases} +$$ +Donc : +$$ +\begin{align} +&f_{1}(R_{0}) = 0 \\ +\implies& R_{0} \oplus 1011 = 0000 \\ +\implies& R_{0} = 1011 +\end{align} +$$ +Et +$$ +\begin{align} +&f_{2}(L_{0} \oplus f_{1}(R_{0})) = f_{2}(L_{0}) = 0 \\ +\implies& \overline{L_{0}} \oplus 0101 = 0000 \\ +\implies& \overline{L_{0}} = 0101 \\ +\implies& L_{0} = 1010 +\end{align} +$$ +Donc $C = (1010, 1011)$ + +### 2-7 +$$ +F: \{ 0,1 \}^t \times \{ 0,1 \}^t \longrightarrow \{ 0,1 \}^t +$$ +$$ +K \in \{ 0,1 \}^t, \, M = (L_{0},R_{0}) \in \{ 0,1 \}^t \times \{ 0,1 \}^t,\, C = (L_{2},R_{2}) \in \{ 0,1 \}^t \times \{ 0,1 \}^t +$$ + +#### a/ +$$ +\begin{cases} +L_{1} = R_{0} \\ +R_{1} = L_{0} \oplus F(K,R_{0}) +\end{cases} +$$ +#### b/ +$$ +\begin{cases} +L_{2} = L_{0} \oplus F(K,R_{0}) \\ +R_{2} = R_{0} \oplus F(K,L_{0} \oplus F(K,R_{0})) +\end{cases} +$$ +#### c/ +$$ +M' = (L_{0}',R_{0}) \in \{ 0,1 \}^t \times \{ 0,1 \}^t,\, C = (L_{2}',R_{2}') \in \{ 0,1 \}^t \times \{ 0,1 \}^t +$$ +On a : +$$ +\begin{cases} +L_{2}' = L_{0}' \oplus F(K, R_{0}) \\ +R_{2}' = R_{0} \oplus F(K, L_{0}' \oplus F(K,R_{0})) +\end{cases} +$$ +Donc : +$$ +L_{2} \oplus L_{2}' = L_{0}' \oplus F(K,R_{0}) \oplus L_{0} \oplus F(K,R_{0}) = L_{0} \oplus L_{0}' +$$ diff --git a/CHIFR/TD/TD2.md b/CHIFR/TD/TD2.md new file mode 100755 index 0000000..3708417 --- /dev/null +++ b/CHIFR/TD/TD2.md @@ -0,0 +1,61 @@ +# Factorisation des entiers et logarithme discret +## Background mathématique +### Square & multiply +#### a/ $13^7 \mod{38}$ +$$\begin{align} +13^7 \mod{38}&= 13^{2^0 \times 1} \times 13^{2^1\times 1} \times 13^{2^2\times 1} \\ +&= 13 \times 13^{2} \times 13^4 \\ +&= 13 * 169 \mod{38} \times 13^4 \mod{38}& \\ +&= (13 \times 17) \mod{38} \times 23 \\ +&= (31 \times 23) \mod{38} \\ +&= 29 +\end{align}$$ +#### b/ Complexité +$\mathcal{O}(\log_{2}e)$ +#### c/ Pour s'entraîner + +### 1-2 +#### a/ $11^{187} \mod{31}$ +Petit théorème de Fermat : $11^{30} \equiv 1 \mod{31}$ +Ainsi : +$$ +\begin{align} +&11^{30} \equiv 1 \mod{31} \\ +\Leftrightarrow & 11^{180} \equiv 1 \mod{31} \\ +\Leftrightarrow & 11^{187} \equiv 13 \mod{31} +\end{align} +$$ + +#### b/ Inverse de $5$ dans $\mathbb{Z}/31\mathbb{Z}$ +PTF : $5^{-1} \equiv 5^{29} \mod{31}$ +Or +$$\begin{align} + +5^{29} \mod{31} &= (5^{14} \times 5^{14} \times 5) \mod{31} \\ +&= ((5^7)^4) \times 5 \mod{31} \\ +&= (5^3 \times 5^3 \times 5^3 \times 5^3 \times 5^3 \times 5^3 \times 5^2) \\ +&= 25 +\end{align} +$$ +Ainsi $5^{-1} = 25$ dans $\mathbb{Z}/31\mathbb{Z}$ + +### 1-3 +#### a/ $7 \in \mathbb{Z}/38\mathbb{Z}$ +$$ +\begin{align} +38 &= 5 \times 7 + 3 \\ +7 &= 2 \times 3 + 1 \\ +3 &= 3 \times 1 + 0 +\end{align} +$$ +En remontant : +$$ +\begin{align} +\gcd(38,7) = 1 &= 7 - 2 \times 3 \\ +&= 7 - 2 \times (38 - 5 \times 7) \\ +&= -2 \times 38 + 11 \times 7 +\end{align} +$$ +<u>Conclusion</u> : $7^{-1} = 11 \mod{38}$ +#### b/ $6 \in \mathbb{Z}/28\mathbb{Z}$ +### 1-4 diff --git a/CHIFR/TD/TD3 - Courbes elliptiques.md b/CHIFR/TD/TD3 - Courbes elliptiques.md new file mode 100755 index 0000000..1d965c7 --- /dev/null +++ b/CHIFR/TD/TD3 - Courbes elliptiques.md @@ -0,0 +1,84 @@ +# 1-1 +## a/ +Point $(3,4)$, d'une part $3^2 = 9 = 3$, d'autre part $4^3 + 2 \times 4 + 3 = 1 + 1 + 3 = 5 \neq 3$ donc le point $(3,4)$ n'appartient pas à la courbe $E$. + +## b/ +D'une part $1^2 = 1$, d'autre part $2^3 + 2 \times 2 + 3 = 1 + 4 + 3 = 1$, donc le point $P$ appartient à $E$. + +## c/ +$-P = (2, -1) = (2, 6)$ + +## d/ +$-Q(x_{Q},y_{Q}) = (x_{Q},-y_{Q} \mod{7})$ + +## e/ +$$ +\begin{cases} +m = 3 \times 2^2 + 2 \\ +x = m^2 - 2 - 2 \\ +y = m(2 - x) - 1 +\end{cases} +\begin{cases} +m = 3 \\ +x = 3 \\ +y = 6 +\end{cases} +$$ + +## f/ + +| $x$ | $x^3 + 2x + 3$ | $y^2$ | +| --- | -------------- | ----- | +| 0 | 3 | 0 | +| 1 | 6 | 1 | +| 2 | 1 | 4 | +| 3 | 1 | 2 | +| 4 | 5 | 2 | +| 5 | 5 | 4 | +| 6 | 0 | 1 | + +Ainsi les points sont $(6,0), (2,1), (3,1), (2,6), (3,6)$ + +## g/ +On a $Card(E(\mathbb{F}_{7})) = 5$ +Et $7 + 1 - 2\sqrt{ 7 } \leq 5 \leq 7 + 1 + 2\sqrt{ 7 }$ + +## h/ + +| | (2,1) | (6,0) | (3,1) | (2,6) | (3,6) | +| ----- | ------------- | ------------- | ------------- | ------------- | ------------- | +| (2,1) | (3,6) | (3,1) | (2,6) | $\mathcal{O}$ | (6,0) | +| (6,0) | (3,1) | $\mathcal{O}$ | | | | +| (3,1) | (2,6) | | | | $\mathcal{O}$ | +| (2,6) | $\mathcal{O}$ | | | | | +| (3,6) | (6,0) | | $\mathcal{O}$ | | | +![[{9A046A90-4F8A-4DC6-8F51-12FD72F497A4}.png]] + +# 1-3 +## a/ + +## b/ +$K_{1} = a(K_{b}) = (x_{1},y_{1})$ +$K_{2} = b(K_{a})$ +$K_{b} = bG$ +$K_{a} = aG$ +$K_{1} = abG = bgA = K_{2}$ + +## c/ +$$ +Dec(Enc(m, pk),sk) \equiv \begin{cases} +x_{2}^{-1} c_{1} \mod{p} \\ +y_{2}^{-1} c_{2} \mod{p} +\end{cases} +\equiv \begin{cases} +x_{2}^{-1}x_{1}m_{1} \mod{p} \\ +y_{2}^{-1}y_{1}m_{1} \mod{p} +\end{cases} +$$ +or $K_{1} = K_{2}$ donc $x_{1} = x_{2}$ + +## d/ +À même message et clé on a même chiffré donc déterministe + +## e/ +$K_{2} = bK_{a} = 4(18,21) = 2 \times 2(18,21) = 2(14,17) = (21,9)$ diff --git a/CHIFR/{7AB28281-E4F9-4DAA-860B-973E65165911}.png b/CHIFR/{7AB28281-E4F9-4DAA-860B-973E65165911}.png Binary files differnew file mode 100755 index 0000000..c02af1e --- /dev/null +++ b/CHIFR/{7AB28281-E4F9-4DAA-860B-973E65165911}.png |
