分組密碼體制應用


1.

(1) 設 \(M’\)\(M\) 的逐比特取補,證明在 DES 中,如果對明文分組和密文分組都逐比特取補,
那么得到的密文也是原密文的逐比特取補,即
如果 \(Y=DES_K(X)\),那么 \(Y’=DES_{K’}(X’)\)
提示:對任意兩個長度相等的比特串 A 和 B,證明 \((A⊕B)’=A’⊕B\)

(2) 對 DES 進行窮舉搜索攻擊時,需要在由 \(2^{56}\) 個密鑰構成的密鑰空間進行。能否根據(1)
的結論減少進行窮搜索攻擊時所用的密鑰空間。

2.

證明 DES 的解密變換是加密變換的逆。

3.

在 DES 的 ECB 模式中,如果在密文分組中有一個錯誤,解密后僅相應的明文分組受到影響。
然而在 CBC 模式中,將有錯誤傳播。例如在圖 3-11 中 \(C_1\) 中的一個錯誤明顯地將影響到 \(P_1\)
\(P_2\) 的結果。
(1)\(P_2\) 后的分組是否受到影響?
CBC 的加密: \(C_0=IV, C_i=DES_K[P_i⊕C_{i-1}], i≥2\)
解密: \(P_i=DES_K^{-1}[C_i]⊕C_{i-1} , i≥1\)
\(C_2=DES_K[P_2⊕C_1]\)
\(P_2=DES_K^{-1}[C_2]⊕C_1\)
\(C_3=DES_K[P_3⊕C_2]\)
\(P_3=DES_K^{-1}[C_3]⊕C_2\)
\(C_2\) 之后的明文都是正確的,所以不受影響。
(2)設加密前的明文分組 \(P_1\) 中有 1 比特的錯誤,問這一錯誤將在多少個密文分組中傳播?
對接收者產生什么影響?
\(C_i=DES_K[P_i⊕C_{i-1}\) 之后的所有密文分組都會受到影響。
接收者無法解出正確的明文。

4.

在 8 比特 CFB 模式中,如果密文字符中出現 1 比特的錯誤,問該錯誤能傳遞多遠?
\(ans=trunc((64+8-1)/8)=9\)
CBC 的錯誤傳播只會影響當前分組和下一分組。
CFB 的錯誤傳播會影響當前分組的解密和后續 \(64/j\)\(64/j+1\) 個分組的解密
OFB 的錯誤傳播只會影響當前分組的解密,不會傳播。

5.

在實現 IDEA 時,最困難的部分是模 \(2^{16}+1\) 乘法運算。以下關系給出了實現模乘法的一種有效方法,其中 a 和 b 是兩個 n 比特的非 0 整數。

\[ab\ mod(2^n+1)= \begin{cases} {(ab\ mod\ 2^n)- (ab\ div\ 2^n)}&\text{if } {(ab\ mod\ 2^n)\geqslant (ab\ div\ 2^n)} \\ {(ab\ mod\ 2^n)- (ab\ div\ 2^n)+2^n+1}&\text{if } {(ab\ mod\ 2^n)\lt (ab\ div\ 2^n)} \end{cases} \]

注意:\((ab\ mod\ 2^n)\) 相當於 ab 的 n 個有效最低位,\((ab\ div\ 2^n)\) 是 ab 右移 n 位。
(1)證明存在唯一的非負整數 \(q\)\(r\),使得 \(ab=q(2^n+1)+r\)
證明:設存在非負整數 \(q\)\(r\) ,使得 \(ab=q(2^n+1)+r\)
設存在另一對非負整數 \(q'\)\(r'\) ,使得 \(ab=q'(2^n+1)+r'\)
兩式相減得 \(0=(q-q')2^n+1)+(r-r')\)
因為 \(q\)\(r\)\(q'\)\(r'\) 均為非負整數,當且僅當 \((q=q')\)\((r=r')\) 時成立,得證。
(2)求 \(q\)\(r\) 的上下界
\(0\leqslant r \leqslant (2^n)\)

\[a\ 和\ b 的最大值均為\ 2^n-1,\frac {a_{max}*b_{max}}{(2^n+1)}=\frac{(2^{2n}-2^{n+1}+1)}{(2^n+1)}\\ =\frac{(2^n(2^n+1)-2*(2^n+1)+2-2^n-1)}{(2^n+1)}=2^n-3 \]

所以

\[ \begin{cases} {0\leqslant q \leqslant (2^n-3)}&\text{if } {(n\geq 2)} \\ {q=0}&\text{if } {(n=1)} \end{cases} \]

(3)證明 \(q+r<2^{n+1}\)
\(q+r \leqslant 2^n+2^n-3 <2^{n+1}\)
(4)(5)求 \(ab\ mod\ 2^n\)\((ab\ div\ 2^n)\) 關於 \(q\)\(r\) 的表達式
因為 \(ab=q(2^n+1)+r\) ,當 \(q+r<2^n\) 時,\((ab\ div\ 2^n)=q\)
\(q+r\geqslant 2^n\) 時,\((ab\ div\ 2^n)=q+1\)
同理,當 \(q+r<2^n\) 時,\((ab\ mod\ 2^n)=q+r\)
\(q+r\geqslant 2^n\) 時,\((ab\ mod\ 2^n)=q+r-2^n\)

\[ab\ div\ (2^n)= \begin{cases} {q}&\text{if } {$q+r<2^n$} \\ {q+1}&\text{if } {q+r\geqslant 2^n} \end{cases} \]

\[ab\ mod\ (2^n)= \begin{cases} {q+r}&\text{if } {$q+r<2^n$} \\ {q+r-2^n}&\text{if } {q+r\geqslant 2^n} \end{cases} \]

(6)用(4)和(5)結果求 r 的表達式,並說明 r 的含義
\(ab=q(2^n+1)+r\) 時,\((ab\ div\ 2^n)=q①\)\((ab\ mod\ 2^n)=q+r②\)
②式減①式得 \(r=(ab\ mod\ 2^n)- (ab\ div\ 2^n)\)
同理,當 \(q+r\geqslant 2^n\) 時,\(r=(ab\ mod\ 2^n)- (ab\ div\ 2^n)+2^n+1\)

6.

(1)在 IDEA 的模乘運算中,為什么將模數取位 \(2^{16}+1\) 而不是 \(2^{16}\)
因為 \(2^{16}+1\) 是素數,使得所有非 0 元都有逆元。
(1)在 IDEA 的模加運算中,為什么將模數取位 \(2^{16}\) 而不是 \(2^{16}+1\)
因為取 \(2^{16}\) ,使得所有元素都有逆元,構成群運算,使得求模運算易於實現,而取 \(2^{16}+1\) 時需要額外處理。

7.

證明 SM4 算法滿足對合性,即解密過程和加密過程一樣,只是密鑰的使用順序相反。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM