# 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}' $$