2024年4月20日发(作者:)

背景介绍

最近在看《密码学与网络安全》相关的书籍,这篇文章主要详细介绍一下著名的网络安全协

议SSL。

在开始SSl介绍之前,先给大家介绍几个密码学的概念和相关的知识。

1、密码学的相关概念

密码学(cryptography):目的是通过将信息编码使其不可读,从而达到安全性。

明文(plain text):发送人、接受人和任何访问消息的人都能理解的消息。

密文(cipher text):明文消息经过某种编码后,得到密文消息。

加密(encryption):将明文消息变成密文消息。

解密(decryption):将密文消息变成明文消息。

算法:取一个输入文本,产生一个输出文本。

加密算法:发送方进行加密的算法。

解密算法:接收方进行解密的算法。

密钥(key):只有发送方和接收方理解的消息

对称密钥加密(Symmetric Key Cryptography):加密与解密使用相同密钥。

非对称密钥加密(Asymmetric Key Cryptography):加密与解密使用不同密钥。

2、相关的加密算法介绍

DES算法即数据加密标准,也称为数据加密算法。加密过程如下:

在SSL中会用到分组DES、三重DES算法等加密算法对数据进行加密。当然可以选用其

他非DES加密算法,视情况而定,后面会详细介绍。

3、密钥交换算法

使用对称加密算法时,密钥交换是个大难题,所以Diffie和Hellman提出了著名的

Diffie-Hellman密钥交换算法。

Diffie-Hellman密钥交换算法原理:

(1)Alice与Bob确定两个大素数n和g,这两个数不用保密

(2)Alice选择另一个大随机数x,并计算A如下:A=gx mod n

(3)Alice将A发给Bob

(4)Bob选择另一个大随机数y,并计算B如下:B=gy mod n

(5)Bob将B发给Alice

(6)计算秘密密钥K1如下:K1=Bx mod n

(7)计算秘密密钥K2如下:K2=Ay mod n

K1=K2,因此Alice和Bob可以用其进行加解密

RSA加密算法是基于这样的数学事实:两个大素数相乘容易,而对得到的乘积求因子则很

难。加密过程如下:

(1)选择两个大素数P、Q

(2)计算N=P*Q

(3)选择一个公钥(加密密钥)E,使其不是(P-1)与(Q-1)的因子

(4)选择私钥(解密密钥)D,满足如下条件:

(D*E) mod (P-1)(Q-1)=1

(5)加密时,明文PT计算密文CT如下:

CT=PTE mod N

(6)解密时,从密文CT计算明文PT如下:

PT=CTDmodN 这也是SSL中会用一种密钥交换算法。

3、散列算法:

主要用于验证数据的完整性,即保证时消息在发送之后和接收之前没有被篡改对于SSL中

使用到的散列算法有MD5、SHA-1。

4、数字证书:

数字证书其实就是一个小的计算机文件,其作用类似于我们的身份证、护照,用于证明身份,

在SSL中,使用数字证书来证明自己的身份,而不是伪造的。

5、简单的总结:

在SSL中会使用密钥交换算法交换密钥;使用密钥对数据进行加密;使用散列算法对数据

的完整性进行验证,使用数字证书证明自己的身份。好了,下面开始介绍SSL协议。

SSL介绍: