11.2、密码学基础和RSA算法
明文(plaintext),密文(ciphertext),加密算法(encryption algorithm),解密算法(decryption algorithm)和秘钥的关系如下所示:

一、对称秘钥加密
发送方和接收方共享相同(对称)密钥,比如,发送方用秘钥Ks 进行了加密,接收方也用秘钥Ks 进行了解密,如下所示:

二、公开秘钥加密,私有秘钥解密
发送方用公开秘钥进行加密,接收方用私有秘钥进行解密,比如,发送方用公开秘钥Kb+ 进行了加密,接收方却用私有秘钥Kb- 进行了解密,此时发送方就无法将密文进行解密,只有接收方可以用私有秘钥Kb- 进行了解密,如下所示:

三、密文的破解方法
1、唯密文攻击(cipher-text only attack)
2、已知明文攻击(known plaintext attack)
3、选择明文攻击(chosen plaintext attack)
四、传统加密方法
4.1、替代密码
-
单字母替代
![image]()
-
多字母替代
![image]()
4.2、换位密码
-
置换法
![image]()
-
列置换加密——秘钥直接规定矩阵列数k和输出顺序
![image]()
-
列置换加密——秘钥用一个单词规定阵列数k和输出顺序
![image]()
五、现代加密技术
现代加密技术不再针对一个个字母,而是针对二进制位来进行替代和置换等操作,主要分为2类:
①、对称密钥加密
②、非对称密钥加密(公开密钥加密)
对称密钥加密的方式,又分为以下2类:
①、流密码(stream ciphers),如下所示:


②、分组密码,也称为块密码(block ciphers)

5.1、feistel分组密码设计原则和结构



5.2、DES数据加密标准
1、DES是一个16轮的Feistel结构密码,即包含16个阶段的“替代--置换”的分组加密算法;
2、DES规定明文的分组长度是64bit,经过16轮加密算法计算之后,也能得到64bit的密文序列;
3、DES的有效密钥是56bit,实际密钥长度为64bit,即每一个字节的最后1bit是校验位,即64bit的密钥长度中有8bit是校验位,未在计算中使用;
4、DES在执行16轮的“替代--置换”的分组加密算法时,每一轮使用56bit构成的48bit的子密钥来进行计算;
DES算法的流程图,如下所示:

以上流程图,主要分为以下5步:
①、初始置换IP(Initial Permutation),IP置换表每一格的数字表示原始64bit位中每一个bit位的顺序,比如,原始64bit位的第58位,通过IP置换表置换之后,现在位于新64bit位的第1位。

②、每一轮64bit计算分为Li 部分和Ri 部分各占32bit,Li 部分是将上一轮的Ri-1 直接拿来计算,Ri 部分是经过了一些列处理(对应流程图中的f(R0,k1)函数⊕L0),具体如下:

③、f(R0,k1)函数⊕L0包含了扩展、异或、替代和置换,具体如下:

a、S盒替代的S1 ~S8 为6bit位进入4bit位输出(传统的字母替代法,相当于查找,将6bit的首位和末位作为行,中间4bit作为列来进行查找),最终得到的是32bit输出交给P盒置换。

b、扩展变换(Expansion Permutation,也被称为E-盒)是通过扩展变换表将64位输入序列的右半部分Ri-1 从32位扩展到48位:

扩展变换表与上文中的IP置换表使用方式相同。
c、P盒置换(P-boxes Permutation)也是通过传统的字母替代法,查找替代表

P盒置换表也与上文中的IP置换表使用方式相同。
④、逆初始置换(Inverse Initial Permutation),主要目的是为了更容易地将明文和密文数据以字节大小放入DES芯片中,并不会增强DES算法的安全性
⑤、每轮子密钥的生成过程,具体如下:

5.2、DES的安全性与改进
DES的安全性,有以下5点:

DES改进方法1——密码分组链接(CBC-cipher block chaining)

DES改进方法2——多重DES(使用3个密钥,执行3次DES算法)

六、高级加密标准AES


RSA算法是一种公钥密码学的算法,即密文的发送方与密文的接收方无需共享秘密密钥,加密是使用公开密钥,解密是使用私有密钥,RSA算法的公开密钥和私有密钥需要满足以下2点:

七、RSA算法

m表示明文,也叫做被加密的报文

7.1、RSA算法举例

7.2、RSA算法的理论依据


7.3、RSA可以利用公钥加密,私钥解密,RSA也可以利用私钥加密,公钥解密

7.4、RSA算法的安全性

7.5、RSA算法的实际应用
由于RSA的幂运算强度很大,因此RSA算法无法应用在数据量很大的加密解密场景中。在实际应用中,一般会将RSA算法和对称秘钥加密算法(对称秘钥加密算法在密钥分发阶段有问题,刚好利用RSA算法进行弥补)结合使用,步骤如下:
①、先使用RSA算法建立一个安全连接;
②、通过安全连接,发送方和接收方共享一个安全密钥(会话密钥session key或对称加密秘钥KS),这个密钥才是对数据加密的密钥,这个密钥可以用于DES加密标准或者AES加密标准。






浙公网安备 33010602011771号