【图解密码技术】学习日记

时间:2024-04-11 13:33:13

第五章 公钥密码——用公钥加密、用私钥解密

时钟运算——一个特殊的时钟

【图解密码技术】学习日记
这个时钟的指针可以转动。现在指针指向0的位置,往右转一个刻度就指向1,再转一个刻度就指向2.以此类推。
当指针指向7,往右转2个刻度会指向9;若往右转6个刻度会指向13吗?并不,会指向1。
由此就引申出mod运算——除法求余数的运算,这种运算和时钟的指针一圈一圈旋转是一样的道理。
例如:
27 mod 12=3 27除以12的余数等于3 也可以称作 27与3以12为模同余

RSA——现在使用最广泛的公钥密码算法
RSA这个算法的名字取自它的三位开发者的姓氏首字母
在RSA中,明文、**和密文都是数字
RSA的加密过程可以用下列公式来表达:

密文=明文E mode N

RSA的密文是对代表明文的数字的E次方求mod N的结果。
RSA的加密时求明文的E次方mod N 因此只要知道E和N这两个数,任何人都可以完成加密的运算。所以说,E和N是RSA加密的**,也就是说,E和N的组合就是公钥。
E是加密(Encryption)的首字母,N是数字(Number)的首字母。
**需要注意的是:**E和N这两个数并不是**对,E和N两个数才组成了一个公钥,一般写成,公钥是(E,N)或者公钥是 {E,N}

RSA的解密

明文=密文D mod N

对表示密文的数字的D次方求mod N就可以得到明文。这里所使用的数字N和加密时使用的数字N是相同的。D是解密(Decryption)的首字母
因此D和N的组合就是私钥

【图解密码技术】学习日记
RSA生成**对
【图解密码技术】学习日记
L只出现在生成**对的过程中
L是p-1和q-1的最小公倍数,用 lcm(x,y)表示x和y的最小公倍数
用gcd(x,y)来表示x和y的最大公约数,如果x和y的最大公约数为1,则这两数互质。

对RSA的攻击
1.对N进行质因数分解攻击
一旦发现了对大整数进行质因数分解的高效算法,RSA就能够被破译。
2.中间人攻击
【图解密码技术】学习日记
3.选择密文攻击
在选择密文攻击中,我们假设攻击者可以使用这样一种服务。“发送任意数据,服务器都会将其当作密文来解密并返回解密的结果”,这种服务被称为解密提示。
通过选择密文攻击并不能破译RSA 但研究者发现,通过选择密文攻击,攻击者能够获得关于密文所对应的明文的少量信息。
如何改进才能抵御选择密文攻击呢?只要在解密时能够判断“密文是否是由知道明文的人通过合法的方法生成的”,也就是对密文进行“认证”。
RSA-OAEP(最优非对称加密填充)正是基于上述思路设计的一种RSA改良算法。

小结
对称密码通过将明文转换为复杂的形式来保证其机密性
公钥密码则是基于数学上困难的问题来保证机密性的。
公钥密码的运行速度远低于对称密码,因此在一般的通信过程中,往往会配合使用这两种密码,即用对称密码提高处理速度,用公钥密码解决**配送问题,这样的方式称为混合密码系统。