一、加密算法
加密算法运行于应用层,分为对称和非对称两类。
1.对称加密算法
对称算法就是通信双方协商一个共同的密钥,然后各方将需要传输的数据通过共同的密钥进行加密,然后传输,当收到经过加密的数据后,再通过共同密钥进行解密,这样就完成了加密通信。其缺点是每一对通信双方均需协商一个共同密钥,因此当通信双方的数量巨大时,将产生大量的共同密钥,难以管理,而且无法辨别无法发送者和接受者的身份,同时由于对称加密算法是基于共同保守秘密来实现的,采用对称加密技术的贸易双方必须保证采用的是相同的密钥,保证彼此密钥的交换是安全可靠的,同时还要设定防止密钥泄密和更改密钥的程序。
对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高。IDEA加密标准由PGP(Pretty Good Privacy)系统使用。
常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
2.非对称加密算法(RSA算法)
2.1公钥和私钥
每一个需要通信的个体分别拥有一套用于RSA加密的参数,这套参数与具体传输的数据无关,这些参数包括6个数字,分别为
p 质数
q 质数
n n即p*q得到的一个大数的位数,即加密算法的位数,
目前可破解768位的,1024位的安全,2048位的及其安全。
φ(n) φ(n) = (p-1)(q-1),无需深入了解
e 随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质,无需深入了解
d 计算e对于φ(n)的模反元素d,无需深入了解
其中,将n和e封装成公钥,n和d封装成私钥。
2.2 加密和解密
有了公钥和密钥,就能进行加密和解密了。
(1)加密要用公钥 (n,e)
假设鲍勃要向爱丽丝发送加密信息m,他就要用