diff --git a/homework/chap5/chap5.md b/homework/chap5/chap5.md
index 361fbf6c3907b68c023f8459aa689f1b55f60b0c..f6b7798b99e99ad047da40796fa70f87edc07f0e 100644
--- a/homework/chap5/chap5.md
+++ b/homework/chap5/chap5.md
@@ -10,94 +10,94 @@
### 2.
- **在DES的ECB模式中,若在密文的传输过程中,某一块发生了错误,则只有相应的明文组会有影响。然而,在CBC模式中,这种错误具有扩散性。比如,密文分组$C_1$发生的错误将会影响明文分组$P_1$和$P_2$。
-a. $P_2$以后的哪些分组会受到影响?
+ **在DES的ECB模式中,若在密文的传输过程中,某一块发生了错误,则只有相应的明文组会有影响。然而,在CBC模式中,这种错误具有扩散性。比如,密文分组$C_1$发生的错误将会影响明文分组$P_1$和$P_2$。
+a. $P_2$以后的哪些分组会受到影响?
b. 假设$P_1$在加密前就有一位发生了错误,则这个错误要影响多少个密文分组?对接收者解密后的结果有什么影响?**
-答:
-a. $P_2$以后的分组不会受到影响。
-提示:$P_j=D(k, C_j )⨁C_{j−1},j=1,⋯N$,$P_j$的解密只与$C_j$和$C_{j-1}$有关。
-b. 假设P1在加密前就有一位发生了错误,则这个错误要影响所有密文分组。尽管所有密文都和原本不同,但接收者解密后的结果只有第一组的对应位错误。
+答:
+a. $P_2$以后的分组不会受到影响。
+提示:$P_j=D(k, C_j )⨁C_{j−1},j=1,⋯N$,$P_j$的解密只与$C_j$和$C_{j-1}$有关。
+b. 假设P1在加密前就有一位发生了错误,则这个错误要影响所有密文分组。尽管所有密文都和原本不同,但接收者解密后的结果只有第一组的对应位错误。
提示:$C_j=E(k, P_j ⨁C_{j−1}),j=1,⋯N$,$C_j$的加密与$P_j$和$C_{j-1}$有关,因此会扩散到所有密文分组。但由于其他地方均没有出现传输错误和加解密错误,这个过程可以看做是加密另一段明文(这段明文和原明文的区别仅在于$P_1$的某一位),因此解密结果也应该是这一段明文。用表达式分析整个加解密过程亦可。
### 3.
- **除了2DES算法,RSA实验室的学者们曾经讨论过另外两种结构:
-$DESV_{k_1,k_2}(M)=DES_{k_1}(M)⊕k_2,$
-$DESW_{k_1,k_2}(M)=DES_{k_1}(M⊕k_2),$
+ **除了2DES算法,RSA实验室的学者们曾经讨论过另外两种结构:
+$DESV_{k_1,k_2}(M)=DES_{k_1}(M)⊕k_2,$
+$DESW_{k_1,k_2}(M)=DES_{k_1}(M⊕k_2),$
这两种结构都不能增加穷举攻击的计算量$O(2^{56})$。请给出相应的攻击方式。假设有足够多的已知明文-密文对。**
-答:
-1.对DESV,使用中间相遇攻击,穷举分析$DES_{k_1}(M) == C⊕k_2$。
-也可以使用差分分析:
-$C_1⊕C_2=DESV_{k_1,k_2}(M_1)⊕DESV_{k_1,k_2}(M_2)=DES_{k_1}(M_1)⊕DES_{k_1}(M_2)$.
-先穷举找出$k_1$,再计算出$k_2$。
-
-2.对DESW,使用中间相遇攻击,穷举分析$M⊕k_2 == DES_{k_1}^{-1}(C)$。
-也可以使用差分分析:
-$M_1⊕M_2=DESW_{k_1,k_2}^{-1}(C_1)⊕DESW_{k_1,k_2}^{-1}(C_2)=(DES_{k_1}^{-1}(C_1)⊕k_2)⊕(DES_{k_1}^{-1}(C_2)⊕k_2)=DES_{k_1}^{-1}(C_1)⊕DES_{k_1}^{-1}(C_2)$.
-先穷举找出$k_1$,再计算出$k_2$
-
-提示:
-参考课件中中间相遇攻击攻击双重DES
-思路:寻找$X=E[K_1, P]=D[K_2, C]$
-算法:若已知$(P, C)$,则
-对$2^{56}$个可能的$K_1$加密$P$,结果存入表中,按X值排序;
-对$2^{56}$个可能的$K_2$解密$C$,在表中寻找匹配;
-如果产生匹配,则用另一个明文密文对检测所得两个密钥;
-如果两密钥产生正确的密文,则接受为正确.
+答:
+1.对DESV,使用中间相遇攻击,穷举分析$DES_{k_1}(M) == C⊕k_2$。
+也可以使用差分分析:
+$C_1⊕C_2=DESV_{k_1,k_2}(M_1)⊕DESV_{k_1,k_2}(M_2)=DES_{k_1}(M_1)⊕DES_{k_1}(M_2)$.
+先穷举找出$k_1$,再计算出$k_2$。
+
+2.对DESW,使用中间相遇攻击,穷举分析$M⊕k_2 == DES_{k_1}^{-1}(C)$。
+也可以使用差分分析:
+$M_1⊕M_2=DESW_{k_1,k_2}^{-1}(C_1)⊕DESW_{k_1,k_2}^{-1}(C_2)=(DES_{k_1}^{-1}(C_1)⊕k_2)⊕(DES_{k_1}^{-1}(C_2)⊕k_2)=DES_{k_1}^{-1}(C_1)⊕DES_{k_1}^{-1}(C_2)$
+先穷举找出$k_1$,再计算出$k_2$
+
+提示:
+参考课件中中间相遇攻击攻击双重DES
+思路:寻找$X=E[K_1, P]=D[K_2, C]$
+算法:若已知$(P, C)$,则
+对$2^{56}$个可能的$K_1$加密$P$,结果存入表中,按X值排序;
+对$2^{56}$个可能的$K_2$解密$C$,在表中寻找匹配;
+如果产生匹配,则用另一个明文密文对检测所得两个密钥;
+如果两密钥产生正确的密文,则接受为正确.
### 4.
- **设Alice有长度为n比特的密钥$k_1$,Bob有长度n比特的密钥$k_2$。他们希望加密消息M,使得密文必须使用双方的密钥才能解密。他们考虑使用某个分组密码算法E,并采用如下方案:**
- **a. $C=E_{k_1}[E_{k_2}[M]]$
-b. $C=E_{k_1⊕k_2}[M]$
-c. $ C=(E_{k_1}[r], E_{k_2}[r⊕M]),$这里r是每次更换的随机数。**
+ **设Alice有长度为n比特的密钥$k_1$,Bob有长度n比特的密钥$k_2$。他们希望加密消息M,使得密文必须使用双方的密钥才能解密。他们考虑使用某个分组密码算法E,并采用如下方案:**
+ **a. $C=E_{k_1}[E_{k_2}[M]]$
+b. $C=E_{k_1⊕k_2}[M]$
+c. $ C=(E_{k_1}[r], E_{k_2}[r⊕M]),$这里r是每次更换的随机数。**
- **问:1)假设攻击者已获得若干明文/密文分组对{M,C},和待破译密文C',则以上三种方案都可以在$O(2^n)$时间内破译,请说明攻击方法。**
+ **问:1)假设攻击者已获得若干明文/密文分组对{M,C},和待破译密文C',则以上三种方案都可以在$O(2^n)$时间内破译,请说明攻击方法。**
**2)哪种方案的攻击代价最小?哪种方案的攻击代价最大?**
-答:
-1)
-a. 采用中间相遇攻击。
-b. k1与k2异或等价于一个新密钥k3,穷举k3即可。
-c. 穷举k1,编写k1与r的表;穷举k2,编写k2与r⊕M的表。按照已知的M,找出k1与k2的配对,再用其他分组进行验证。
-2)
-b 方案的攻击代价最小(不需要存储空间),c 方案的攻击代价最大(需要进行额外的异或操作)。
+答:
+1)
+a. 采用中间相遇攻击。
+b. k1与k2异或等价于一个新密钥k3,穷举k3即可。
+c. 穷举k1,编写k1与r的表;穷举k2,编写k2与r⊕M的表。按照已知的M,找出k1与k2的配对,再用其他分组进行验证。
+2)
+b 方案的攻击代价最小(不需要存储空间),c 方案的攻击代价最大(需要进行额外的异或操作)。
### 5.
- **假定拉各朗日插值多项式为$h(x)=3x^3+5x+2 $ mod $ 7$,用来实现$(t,n)$的密钥共享,$n=5$。
-a) $t$和$K$的值是多少?
+ **假定拉各朗日插值多项式为$h(x)=3x^3+5x+2 $ mod $ 7$,用来实现$(t,n)$的密钥共享,$n=5$。
+a) $t$和$K$的值是多少?
b) 如果$k_1=h(1),k_2=h(2),k_3=h(3),k_4=h(4),k_5=h(5)$。如何从$k_1,k_2,k_4,k_5$重组$K$?**
-答:
-a) $t=4,K=2.$
-b) $k_1=3,k_2=1,k_4=4,k_5=3.$
-$h(x)= 3\frac {(x-2)(x-4)(x-5)}{(1-2)(1-4)(1-5)} + 1\frac {(x-1)(x-4)(x-5)}{(2-1)(2-4)(2-5)}+4 \frac {(x-1)(x-2)(x-5)}{(4-1)(4-2)(4-5)} +3\frac {(x-1)(x-2)(x-4)}{(5-1)(5-2)(5-4)}$
-$=5(x-2)(x-4)(x-5)+6(x-1)(x-4)(x-5)+4(x-1)(x-2)(x-5)+2(x-1)(x-2)(x-4)$
-$=3x^3+5x+2$
+答:
+a) $t=4,K=2.$
+b) $k_1=3,k_2=1,k_4=4,k_5=3.$
+$h(x)= 3\frac {(x-2)(x-4)(x-5)}{(1-2)(1-4)(1-5)} + 1\frac {(x-1)(x-4)(x-5)}{(2-1)(2-4)(2-5)}+4 \frac {(x-1)(x-2)(x-5)}{(4-1)(4-2)(4-5)} +3\frac {(x-1)(x-2)(x-4)}{(5-1)(5-2)(5-4)}$
+$=5(x-2)(x-4)(x-5)+6(x-1)(x-4)(x-5)+4(x-1)(x-2)(x-5)+2(x-1)(x-2)(x-4)$
+$=3x^3+5x+2$
$K=2$
### 6.
- **在多项式域应用拉格朗日插值多项式$(t, n)$方案。现有$p(x)=x^3+x^2+1=1101$和二进制多项式$h(x)=(001x^2+101x+011) mod 1101$,运算在$GF(2^3)$中进行。
-1.$t$是多少?$K$是什么?
-2.对$x_1=001,x_2=011,x_3=100,x_4=110$,分别计算相应的$h(x)$。
-3.用$x_1,x_2和x_4$重组此二进制多项式。**
-
-答:
-1.$t=3,K=011$
-2.$k_1=111, k_2=100, k_3=111, k_4=100$
-3.$h(x)=111\frac{(x-011)(x-110)}{(001-011)(001-110)}+100\frac{(x-001)(x-110)}{(011-001)(011-110)}+100\frac{(x-001)(x-011)}{(110-001)(110-011)}$
-$=111\frac{(x-011)(x-110)}{011}+100\frac{(x-001)(x-110)}{111}+100\frac{(x-001)(x-011)}{001}$
-$=111*100(x-011)(x-110)+100*101(x-001)(x-110)+100(x-001)(x-011)$
-$=110(x^2+101x+111)+011(x^2+111x+110)+100(x^2+010x+011)$
-$=001x^2+101x+011$
+ **在多项式域应用拉格朗日插值多项式$(t, n)$方案。现有$p(x)=x^3+x^2+1=1101$和二进制多项式$h(x)=(001x^2+101x+011) mod 1101$,运算在$GF(2^3)$中进行。
+1.$t$是多少?$K$是什么?
+2.对$x_1=001,x_2=011,x_3=100,x_4=110$,分别计算相应的$h(x)$。
+3.用$x_1,x_2和x_4$重组此二进制多项式。**
+
+答:
+1.$t=3,K=011$
+2.$k_1=111, k_2=100, k_3=111, k_4=100$
+3.$h(x)=111\frac{(x-011)(x-110)}{(001-011)(001-110)}+100\frac{(x-001)(x-110)}{(011-001)(011-110)}+100\frac{(x-001)(x-011)}{(110-001)(110-011)}$
+$=111\frac{(x-011)(x-110)}{011}+100\frac{(x-001)(x-110)}{111}+100\frac{(x-001)(x-011)}{001}$
+$=111 \cdot 100(x-011)(x-110)+100 \cdot 101(x-001)(x-110)+100(x-001)(x-011)$
+$=110(x^2+101x+111)+011(x^2+111x+110)+100(x^2+010x+011)$
+$=001x^2+101x+011$
提示:在$GF(2^3)$下运算,逆可用拓展欧几里得求。
### 7.
**用拉各朗日插值多项式实现秘密共享时,并非所有的多项式$h(x)$都可以选用。考虑多项式$h(x)=3x^3+5x+2 $ mod $7$,影子$h(1)=3, h(6)=1$。注意到$(h(1)+h(6))/2=2=K$。这并不是巧合,请分析原因。这种现象会导致两个人就能恢复秘密,攻击者将很乐意进行这种尝试(毕竟,收买两个人进行一次尝试,比收买$t$个人划算得多)。为此,对多项式的选择应当增加什么限制,来抵抗此类攻击?**
答:$h(x)-K=3x^3+5x$为奇函数,故$h(x)-K+h(p-x)-K=0$ mod $p$.
-至少应保证$h(x)-K$不为奇函数,即存在偶次项(偶次项系数不为0)
+至少应保证$h(x)-K$不为奇函数,即存在偶次项(偶次项系数不全为0)