问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

TLS协议中的AES对称加密技术详解

创作时间:
作者:
@小白创作中心

TLS协议中的AES对称加密技术详解

引用
简书
1.
https://www.jianshu.com/p/123d77c30444

TLS(传输层安全协议)是互联网上用于数据加密传输的重要协议,其核心是对称加密技术的运用。本文将详细介绍TLS中AES对称加密算法的工作原理,包括填充方法、分组模式以及GCM模式等高级主题。

TLS(传输层安全协议)的主要目的是确保数据在传输过程中的安全。TLS协议主要包括两个部分:

  1. Record(记录协议):负责对称加解密
  2. HandShake(握手协议):验证通信双方身份,交换加解密的安全套件,协商加密解密参数

对称加密基础

对称加密的核心是使用同一把密钥进行加密和解密。常见的对称加密方式分为两大类:

  • 流式加密算法

  • RC4(已基本不再使用)

  • ChaCha20-Poly1305

  • 分组加密算法

  • AES-CBC(使用逐渐减少)

  • AES-GCM(目前最为流行的对称加密算法)

AES-GCM的优势在于可以利用多核CPU进行高效的加解密操作。而ChaCha20-Poly1305在手机端的使用效果显著,具有省电、速度快的特性。但是,由于硬件层面的优化(如Intel的AES-NI指令集),AES-GCM在服务器和PC端的性能大幅提高,目前占据主导地位。

AES加密详解

AES(高级加密标准)是美国联邦政府采用的一种区块加密标准。以AES算法为例,详细说明对称加密的工作原理。

初级对称加密

对称加密的基本原理是使用相同的密钥进行加解密,通常通过异或操作实现。例如,原始明文010101与密钥000111进行异或操作,得到密文010010,再用相同密钥解密即可恢复明文。

对称填充(Padding)

由于密钥长度有限(如128位或256位),而要加密的数据可能很长,因此需要将数据分成固定大小的块(如16字节)进行加密。最后一个块如果不够16字节,就需要进行填充。常见的填充方法包括:

  • 位填充(不常用)
  • 字节填充:
  • 补零
  • ANSI X9.23
  • ISO 10126
  • PKCS7(AES使用)

分组工作模式

分组加密后,还需要选择合适的工作模式以增强安全性。常见的模式包括:

  • ECB(电子密码本)模式:简单但安全性较差,容易暴露数据特征。
  • CBC(密码块链接)模式:通过引入异或操作消除数据特征,但串行化处理限制了并行性。
  • CTR(计数器)模式:通过引入计数器实现并行处理,但无法提供完整性校验。
  • GCM(伽罗华计数器模式):结合了CTR模式的并行性和GMAC的完整性校验,是目前最常用的模式。

GCM模式通过引入散列函数实现消息完整性校验,防止密文被篡改。Intel专门推出了Clmul指令用于加速GCM运算。

加密完整步骤

实际应用中,AES加密还包括密钥扩展和多轮加密过程:

  • 密钥扩展:生成每轮加密所需的子密钥
  • 加密轮:包括AddRoundKey、SubBytes、ShiftRows和MixColumns等步骤

以AES-128为例,整个加密过程包括10轮,其中第1轮为初始轮,第2-9轮为普通轮,第10轮为最终轮。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号