学习必备 精品知识点
轮密钥的比特数等于分组长度乘以轮数加1; 种子密钥被扩展成为扩展密钥;
轮密钥从扩展密钥中取,其中第1轮轮密钥取扩展 密钥的前Nb个字,第2轮轮密钥取接下来的Nb个字,如此下去。 4. 加密算法
加密算法为顺序完成以下操作:初始的密钥加;(Nr-1)轮迭代;一个结尾轮
19 RSA 密钥的产生
1)选大素数p和q (各100~200位十进制数字),计算 n=p×q , ?(n)=(p-1)(q-1)
1) 随机选一整数e, 1?e(n),(?(n), e)=1。因而在模?(n)下,e有逆元.
1) 计算 d = e -1 (mod ?(n))
1) 取公钥为{e , n}。秘密钥为d
(p, q不再需要,可以销毁) 加密
加密时首先将明文比特串分组,使得每个分组对应的十进制数小于n,即分组长度小于log2n。然后对每个明文分组m,作加密运算 c = me mod n 解密
对密文分组c的解密运算为
m = cd mod n 20 MD5
① 对消息填充,使得其比特长在模512下为448,即填充后消息的长度为512的某一倍数减64,留出的64比特备第2步使用。
步骤①是必需的,即使消息长度已满足要求,仍需填充。例如,消息长为448比特,则需填充512比特,使其长度变为960,因此填充的比特数大于等于1而小于等于512。
填充方式是固定的,即第1位为1,其后各位皆为0。
② 附加消息的长度用步骤①留出的64比特以little-endian方式来表示消息被填充前的长度。如果消息长度大于264,则以264为模数取模。
Little-endian方式是指按数据的最低有效字节(byte)(或最低有效位)优先的顺序存储数据,即将最低有效字节(或最低有效位)存于低地址字节(或位)。相反的存储方式称为big-endian方式。
前两步执行完后,消息的长度为512的倍数(设为L倍),则可将消息表示为分组长为512的一系列分组Y0,Y1,…,YL-1,而每一分组又可表示为16个32比特长的字,这样消息中的总字数为N=L×16,因此消息又可按字表示为M[0, …, N-1]。
③ 对MD缓冲区初始化:算法使用128比特长的缓冲区以存储中间结果和最终杂凑值,缓
学习必备 精品知识点
冲区可表示为4个32比特长的寄存器(A,B,C,D),每个寄存器都以little-endian方式存储数据,其初值取为(以存储方式):
A=01234567,B=89ABCDEF, C=FEDCBA98,D=76543210。
实际上为67452301,EFCDAB89,98BADCFE,10325476。
④ 以分组为单位对消息进行处理每一分组Yq(q=0,…,L-1)都经一压缩函数HMD5处理。HMD5是算法的核心,其中又有4轮处理过程,如图6.6所示。
⑤ 输出消息的L个分组都被处理完后,最后一个HMD5的输出即为产生的消息摘要。 步骤③到步骤⑤的处理过程可总结如下: CV0=IV; CVq+1=CVq+RFI[Yq,RFH[Yq,RFG[Yq,RFF[Yq,CVq]]]] MD=CVL
其中IV是步骤③所取的缓冲区ABCD的初值,Yq是消息的第q个512比特长的分组,L是消息经过步骤①和步骤②处理后的分组数,CVq为处理消息的第q个分组时输入的链接变量(即前一个压缩函数的输出),RFx为使用基本逻辑函数x的轮函数,+为对应字的模232加法,MD为最终的杂凑值。
21费尔马定理
定理4.2 (Fermat) 若p是素数,a是正整数且gcd(a, p)=1,则ap-1≡1 mod p。 Fermat定理也可写成如下形式: 设p是素数,a是任一正整数,则ap≡a mod p。
22 欧拉定理
设n是一正整数,小于n且与n互素的正整数的个数称为n的欧拉函数,记为φ(n)。 定理4.4(Euler) 若a和n互素,则aφ(n)≡1 mod n。
23 中国剩余定理
定理4.5(中国剩余定理) 设m1,m2,…,mk是两两互素的正整数, ,则一次同余方程组 。。。。。。。。。 日 粘不下来
24 四种工作模式
学习必备 精品知识点