1.对称加密算法
加密的理论基础是替代和换位。替代主要用于扰乱,使用不同的位、字符或字符分组来替换原来的位、字符或字符分组。换位主要用于扩散,并不使用不同的文本来替换原来的文本,而是对原有的值进行置换,即重新排列原来的位、字符或字符分组以隐藏其原有意义。
对称加密是一种加密与解密采用相同密钥的加密算法。其特点是速度快,效率高,所以被广泛使用在很多加密协议的核心当中,也是我们平时接触得比较多的一种加密方式。
图1 对称加密算法加密解密过程
2.常见的对称加密算法
常见的对称加密算法主要有以下几种:
- 数据加密标准(DES,Data Encryption Standard):使用64位密钥,其中56位用于加密,8位用于奇偶校验。由于加密强度较弱,已不推荐使用;
- 三重DES,是DES的升级版:3DES并没有直接使用“加密->加密->加密” 的方式,而是采用了“加密->解密->加密”的方式。这样实现的好处主要是,当三个密钥均相同时,前两步加密解密结果相互抵消,整体结果相当于仅实现了一次加密,因此可实现对普通DES加密算法的兼容。这也是为什么三重DES可以流行,而二重DES或者四重DES则消失了;
- 高级加密标准(AES,Advanced Encryption Standard):AES支持128、192和256位的密钥,较于3DES速度更快、安全性更高;
- 国际数据加密算法(IDEA,International Data Encryption Algorithm):使用的密钥长度为128位;
- Blowfish算法:密钥长度为32-448位。
3. 密钥分发
3.1 常见的密钥分发方法
对称加密需要双方进行加密通信前先协商分配好密钥,一般来说密钥分发可以是以下几种方式:
- Alice选择一个密钥后以物理的方式传递给Bob;
- 第三方Cindy选择密钥后物理地传递给Alice和Bob;
- 如果Alice和Bob之前已经使用过一个密钥,则一方可以将新密钥用旧密钥加密后发送给另一方;
- 如果Alice和Bob与第三方Cindy之间已有加密连接,则Cindy可以在加密连接上将密钥发送给Alice和Bob。
3.2Diffie-Hellman算法(简称DH算法)协商密钥
受对称加密算法自身的特点影响,当多用户之间使用对称加密算法进行通信时,密钥数量成指数增长,对密钥的分发和管理带来巨大的挑战。当用户数量为n,密钥数量最多为n*(n-1)/2。比如有100个用户,则最多需要4950个密钥。
随着技术的发展,对称加密的密钥分发也出现了一些新的解决方法,如非对称加密算法,Diffie–Hellman算法等。采用这类算法使得对称加密密钥的协商与管理变得更简单和可靠。采用非对称加密时n个用户只需维护n个密钥对,大大减小了密钥规模。
Diffie-Hellman算法(简称DH算法)是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法。它是一种建立秘钥的方法,而不是加密方法。基于这种秘钥交换技术:通信双方在完全没有对方任何预先信息的条件下,可以通过不安全信道协商一个密钥。这个密钥一般作为对称加密的密钥应用在双方后续数据传输的加密上。
和非对称加密算法的理论基础一样,DH算法也是基于一个数学难题,即计算离散对数的难度。具体来说,假设Alice需要与Bob需要协商一个秘钥,是这样一个过程:
图2 DH算法密钥协商过程
示例:
经计算,Alice与Bob本次协商的密钥为36。
标签:加密,协商,Alice,算法,密钥,对称,加密算法 From: https://blog.csdn.net/huaqianzkh/article/details/140842337