• 分组密码体制应用


    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)= egin{cases} {(ab mod 2^n)- (ab div 2^n)}& ext{if } {(ab mod 2^n)geqslant (ab div 2^n)} \ {(ab mod 2^n)- (ab div 2^n)+2^n+1}& ext{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) 的上下界
    (0leqslant 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 ]

    所以

    [ egin{cases} {0leqslant q leqslant (2^n-3)}& ext{if } {(ngeq 2)} \ {q=0}& ext{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+rgeqslant 2^n) 时,((ab div 2^n)=q+1)
    同理,当 (q+r<2^n) 时,((ab mod 2^n)=q+r)
    (q+rgeqslant 2^n) 时,((ab mod 2^n)=q+r-2^n)

    [ab div (2^n)= egin{cases} {q}& ext{if } {$q+r<2^n$} \ {q+1}& ext{if } {q+rgeqslant 2^n} end{cases} ]

    [ab mod (2^n)= egin{cases} {q+r}& ext{if } {$q+r<2^n$} \ {q+r-2^n}& ext{if } {q+rgeqslant 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+rgeqslant 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 算法满足对合性,即解密过程和加密过程一样,只是密钥的使用顺序相反。

  • 相关阅读:
    NET基础课--XML基础
    NET基础课--WinForm开发推荐3
    NET基础课--JIT编译器如何工作1
    NET基础课--异常处理X
    NSURLRequest POST方式请求服务器示例
    iOS开发网络篇—NSURLConnection基本使用
    AFNetworking封装思路简析
    IOS NSURLRequest 设置 Header
    AFNetworking3.0为何弃用了NSURLConnection
    iOS开发多线程篇—GCD介绍
  • 原文地址:https://www.cnblogs.com/shy-/p/9037717.html
Copyright © 2020-2023  润新知