二、 欧几里得算法、扩展欧几里得算法求模逆:算到余数为+1后把1放到一边,每次替换较小的“因数”(不是系数) 替换密码- 移位密码:m+k mod 26,容易受唯密文攻击 乘法密码:加密c=km mod 26,解密m=k^-1*c mod 26;k要和26互素,只有11种 仿射密码:生成(k1,k2)属于(0,26)×[0,26)。对每一个明文字母,加密:c=k1m+k2 mod 26,解密(就是把m移到一边):m=k1^-1*(c-k2) mod 26 实际可以把明文写成1×n的一列,前面乘以k1,加上也写成(每个相同的)一列k2。 密钥空间:26*φ(26)=26*12=312。 弱点:明文和密文一一对应,可以根据语言的统计学特性破解。 Hill密码:(c1,c2)=(m1,m2)*{{k1,k2}, {k3,k4}},解密用密钥乘以逆矩阵。 不能抵抗已知明文攻击:如果是n*n的密钥方阵,需要n个明文-密文对用线代知识解方程就可以解出所有的k。 三、数据加密标准(DES) 加解密过程:64位明文输入,初始置换;56位初始密钥迭代16次产生16个子密钥;两者迭代16次,初始逆置换,输出;解密算法完全相同,只是子密钥反过来使用 四种工作模式: 电子密码本ECB (electronic codebookmode),简单可并行,相同明文产生相同密文 密码分组链接CBC (cipher blockchaining):加密无法并行,解密可以。相同明文产生不同密文 密码反馈CFB (cipher feedback):流密码 输出反馈OFB (output feedback):流密码,安全性较CFB差 四、RSA加解密 欧拉函数:p为素数 1. phi(p)==p-1 2. phi(p^k)==p^(k-1)*(p-1) 3. 若(m1,m2)==1,则phi(m1m2)==phi(m1)*phi(m2) 4. phi(pq)==phi(p)phi(q)==(p-1)(q-1) 生成RSA密钥: 随机选择大素数p,q,保密。计算pq=n,公开。计算phi(n),保密。随机选择1