《2022年密码学复习 .pdf》由会员分享,可在线阅读,更多相关《2022年密码学复习 .pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、a 明文被变换成看似无意义的随机消息,称为密文 ,这种变换过程称为加密 ;b 其逆过程,即由密文恢复出原明文的过程称为解密 。对明文进行加密操作的人员称为加密员或密码员。c 密码员对明文进行加密时所采用的一组规则称为加密算法 。d 接收者对密文进行解密时所采用的一组规则称为解密算法 。a 常用的密码分析有哪几类?(1) 唯密文攻击。(2) 已知明文攻击。(3)选择明文攻击。(4)选择密文攻击。e 截收者虽然不知道系统所用的密钥,但通过分析可能从截获的密文推断出原来的明文或密钥,这一过程称为密码分析f 对密码进行分析的尝试称为攻击。g 从一个文本中随机选择两个字符,两个字符相同的概率称为重合指数
2、。h 序列密码算法或称流密码算法,通过将明(密)文同密码流逐位相异或进行加(解)密;b 其特点是实现简单,速度一般比较快,错误传播少或没有。e 如果移位寄存器的反馈函数f (a1,a2, , an)是 a1,a2, , an 的线性函数 ,则称之为线性反馈移位寄存器 (LFSR)。此时输出序列an+t=f(at,at+1, , an+t-1)=cnatcn-1at+1c1an+t-1 其中常数ci=0 或 1(总是假定 cn=1),是模 2 加法。n 级线性反馈移位寄存器的最大周期为2n-1。周期达到最大值的序列称为m 序列。 a f 分组密码算法采用密钥将固定长度的明(密)文分组通过加(解)
3、密算法加 (解)密成相同长度的密(明)文分组。1数据复杂性。用作攻击输入所需的数据量。2处理复杂性。完成攻击所需要的时间,这个经常叫做工作因素。3存储需求。进行攻击所需要的存储量。c 分组密码设计主要采用两种结构:Feistel 和 SP 网络。Feistel 结构的思想实际上是山农提出的利用乘积密码实现混淆和扩散思想的具体应用。e Feistel 结构:加密 : Li = Ri-1; Ri = Li -1F(Ri-1,Ki) 解密 : Ri-1 = Li ; Li -1 = RiF(Ri-1,Ki)= RiF(Li ,Ki) 对于一个好的S 盒,其布尔函数应满足以下9 个基本条件:可逆性、没
4、有陷门1.平衡性 (Balance)。2.严格雪崩准则 (Strict Avalanche Criterion) 。3.高阶 SAC。4.非线性。 5.线性结构。6.输出 bit 独立原则。 当一个输入bit 取补时, 每二个输出bit 之间的相关系数变为0。7.完备性。每个输出bit 与每个输入bit 相关。8.输入 /输出差分分布 .即差分的最大值尽量小。差分均匀性9.线性近似和抗线性攻击的能力。DES 算法流程加密流程:L0R0 IP() LiRi-1 Ri Li-1(Ri-1,Ki) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
5、- - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - IP-1(R16L16) 解密流程:R16L16 IP() Ri-1Li Li-1 Ri(Li,Ki) IP-1(L0R0) DES 算法具有 互补性 。定义 EK (P) = C 表示用密钥K 把明文 P 加密成密文C,x*表示 x 的补,则 EK* (P*) = C* 。d DES 算法的安全性在代数结构上,DES 算法不是一个群。在安全性方面,DES 算法有一些弱密钥、半弱密钥和可能的弱密钥。特别地, DES 算法具有 互补性 。定义 EK (P) = C 表示用密钥K 把明
6、文 P 加密成密文C,x*表示 x 的补,则 EK* (P* ) = C*。这可能 DES 算法是的一大弱点。DES 算法的密钥长度比较短,只有56 b。在现在看来,不能抗强力攻击(255 次尝试)。另外, 频谱测试表明DES 算法是非随机的。差分密码分析表明,对 DES 算法,选择明文攻击比穷举攻击有效。差分密码分析法:247 次尝试线性密码分析法:243 次尝试CBC 的表达式: Y0IV ,Yi=DESK(XiYi-1),1? i? n OFB 的表达式: Z0=IV,Zi=DESK(Zi-1),Yi=XiZi, 1? i? n特点:在 OFB 模式中,一个密文块Yi(或明文块Xi)的改
7、变在解密(或加密)时只会引起相应的明文块Xi(或密文块Yi)的改变,不会引起其他密文块的改变。在 CBC 模式中,一个密文块Yi 的改变在解密时时只会引起相应的相应的明文块Xi和 Xi+1.的改变,不会引起其他明文块的改变。而一个明文块Xi 的改变,在加密时将会相应的密文块Yi 以及其后的所有密文块的改变。AES 算法有3 条设计和评估准则:安全。抗所有已知的攻击;代价。在多个平台上快速简洁地实现;设计简单。f AES 算法设计思想:采用宽轨迹策略(WTS) 和 SP 结构。 g 把一个信息分组State分成四行 x 列的矩阵形式,一轮AES 算法包含 4 种变换:1. 字节代换SubByte
8、s(State)。使用一个S盒 S对 State进行 非线性 变换,其中 S是有限域 0,18 的一个置换。 SubWord(A0 ,A1,A2,A3) = (B0 ,B1, B2,B3),其中 Bi = SubBytes(Ai) 。2. 行移位变换ShiftRow(State)。分组长度为128 或 192 b 时,State下三行分别循环左移 1、 2、3 字节。3. 列混合变换MixColumn(State) = C*State 是有限域 GF(2 8 )4 上的一个 线性 变换。4. 轮 密 钥 加 法 变 换 AddRoundKey(State , RoundKey) 。 轮密钥加是
9、 将由函数KeyExpansion(key) 生成的轮密钥RoundKey 简单地与状态State进行逐比特异或。用伪代码表示AES 算法轮变换Round(State,RoundKey) Round (State, RoundKey) ByteSub (State); ShiftRow (State); MixColumn (State); AddRoundKey (State, RoundKey) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - -
10、- - - - - 最后一轮的轮变换与前面各轮不同,将MixColumn 这一步去掉。用伪码表示AES 算法加密过程:将轮密钥RoundKey 与明文 State异或AddRoundKey(State ,RoundKey) ;对前 Nr1 轮中的每一轮进行相同的变换Round(State,RoundKey) SubBytes(State);(用 S 盒进行一次变换操作) ShiftRow(State) ;MixColumn(State) ;AddRoundKey(State ,RoundKey) ; 最后一轮变换:FinalRound(State ,RoundKey) SubBytes(Sta
11、te);ShiftRow(State) ;AddRoundKey(State ,RoundKey) ; 最后的 State即为密文。解密过程把加密过程完全反过来即可。AES 算法加密全过程加密算法为顺序完成以下操作:初始的密钥加;(Nr-1)轮迭代;一个结尾轮。即Rijndael (State, CipherKey) KeyExpansion (CipherKey, ExpandedKey); AddRoundKey (State, ExpandedKey); for (i=1; i Nr; i +) Round (State, ExpandedKey+Nb* i); FinalRound (
12、State, ExpandedKey+Nb*Nr) 密码分组链接 (CBC) 模式算法过程:for i=1 to nYi= E K(P iYi1) (加密); (Y0为初值)for i=1 to ndo Pi= D K(Y i) Yi1; (解密))(1nKnYEY(可选进程);MAC = MSB m (Yn); (认证)输出反馈 (OFB) 模式OFB 模式实际上相当于一个序列密码算法,其密钥流产生方法为:for i=1 to ndo Si= E K(Si1) ; (S0为初值)h 杂凑函数应满足以下条件: 函数的输入可以是任意长。 函数的输出是固定长。 已知 x,求 H(x)较为容易,可用
13、硬件或软件实现。 找出任意两个不同的输入x、 y,使得 H(y)=H(x)在计算上是不可行的。迭代型杂凑函数的一般结构MD5 的算法过程1)补位 。补位方法为: 先补一个 1,然后补 0,使数据长度 len (字节数) 除以 64 的余数为 56。就算数据的原始长度L (字节数 )除以 64 的余数恰好为56,也要补上64 B。2)补数据长度 。L(比特数 )用一个 8 B 的数表示,追加到已补位数据的后面;这样数据总长就是64 的整数倍。3)分组 。把补位后的数据按64 B 分为 n 组: P0, Pn-1。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
14、 - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 4)初始化缓冲器。4 个 4 B 的寄存器初始值用16 进制表示为: A = 0 x01234567,B=0 x89abcdef,C = 0 xfedcba98,D = 0 x76543210。5)循环运算 。对 n 个分组进行循环运算。先取a = A,b = B,c = C,d = D。每次循环有4 轮,每轮进行16 步迭代,共64 步迭代运算。每一步的运算形式为a b+CLSs(a+g(b,c,d)+Xk+TI) 1 个分组运算完成后,取A = a + A,B
15、 = b + B,C = c + C,D = d + D 进行下一个分组循环运算,最后的输出结果是A,B,C,D 的串联 A | B | C | D。 输出消息的n 个分组都被处理完后,最后一个HMD5 的输出即为产生的消息摘要。CV0=IV; CVq+1=CV q+RFIYq,RFHYq,RFG(Yq,RFF(Yq,CV q) MD=CV LSHA 的算法过程1)补位与分组 。SHA 算法的补位与分组方法同MD5 算法完全一样。2)初始化缓冲器。5 个 4 B 的寄存器初始值用16 进制表示为: A = 0 x67452301,B=0 xefcdab89,C = 0 x98badcfe,D
16、= 0 x10325476,E = 0 xc3d2e1f0。3)循环运算 。对 n 个分组进行循环运算。先取a = A,b = B,c = C,d = D,e = E。每次循环有4 轮,每轮进行20 次迭代,共80 次迭代运算( t = 0, 79) 。1个分组运算过程为:for t = 0 to 79 temp = ( a5) + F(b, c, d) + e + Wt + kt;e = d;d = c;c = b1)是素数,如果p 的因子只有1, p。3. 称 c 是两个整数a、b 的最大公因子,如果 c 是 a 的因子也是b 的因子,即c 是 a、b 的公因子。 a 和 b 的任一公因子
17、,也是c 的因子。表示为 c=gcd(a, b)。3.5 如果 gcd(a,b)=1,则称 a 和 b 互素。4. 如果 (a mod n)=(b mod n),则称两整数a 和 b 模 n同余,记为ab mod n。4.5 称与 a 模 n 同余的数的全体为a 的同余类,记为a,5. 模乘逆元对 x,若有 y,使得 xy1 mod n,如 331 mod 8,则称 y 为 x 的倒数,也称为模乘逆元。8. 素性检验素性检验是指对给定的数检验其是否为素数。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
18、- - - - 第 4 页,共 5 页 - - - - - - - - - Fermat 定理若 p 是素数, a 是正整数且gcd(a, p)=1,则 ap-1 1 mod p。e 设 n 是一正整数,小于n 且与 n互素的正整数的个数称为n 的欧拉函数,记为(n)。f Euler 定理若 a 和 n 互素,则 a(n)1 mod n。g Euclid 算法是基于下面一个基本结论:h 对任意非负整数a和正整数 b,有 gcd(a, b)=gcd(b, a mod b) 。RSA 算法过程首先, 选取三个数 , p, q, e, 其中p, q 是两个相异的大质数, e是与 (p-1)(q- 1
19、)互质的数,计算n = p*q,e, n 便是公钥;接著 , 用欧几里德扩展法计算d, 使得 de1 mod (p- 1)(q-1),p, q, d 便是私钥。假设被签消息为M,则签名过程为S = Md mod n验证过程为M = Se mod n 1)二进制有限域0, 1n表示所有 n-bit 向量 x =(x1, xn)的集合。2)x(i)表示向量的第i 位改变。3)汉明距离w(x)表示 x 中所有非 0 元素的个数。4)完备性 。对密码算法f: 0, 1n 0, 1m,如果每一位输出依赖于每一位输入,则称 f 是完备的,即1,in和1,jmx0, 1n,使得jjixfxf)()()(5)雪崩效应 。 当密码算法f 的任意一位输入改变时, 如果平均有一半的输出位改变,则称 f 具有雪崩效应,即( )0,12( ()( ( )/2nnixw f xf xm,1,in6)严格雪崩准则 。当 f 的任意一位输入改变时,如果每一位输出改变的概率为0.5,则称 f 满足严格雪崩准则名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -
限制150内