GnuPG中的加密算法 | AI生成和翻译
加密软件支持的算法(例如 GnuPG)
以下列出了类似 GnuPG(GPG)工具所支持的算法,这类工具常用于安全电子邮件(PGP/MIME)、文件加密和数字签名。算法分为四类:用于密钥交换和签名的公钥(非对称)密码学、用于批量数据加密的对称密码、用于完整性校验和签名的哈希函数,以及在加密前缩减数据大小的压缩方法。下文将按类别解析每种算法的用途和关键特性。
公钥算法
这类算法处理非对称操作:一个密钥(公钥)用于加密/验证签名,另一个密钥(私钥)用于解密/签名。它们通过密钥对实现安全通信。
- RSA:一种基础算法,同时支持加密和数字签名。因在大密钥尺寸(如 2048+ 位)下的安全性而广泛使用,但计算密集度高。
- ELG:主要用于加密(非签名)。基于离散对数问题,密钥交换效率高但生成的密文较大。
- DSA:专为数字签名设计(不支持加密)。依赖离散对数,常见于旧系统,现多被 ECDSA 取代以提升效率。
- ECDH:基于椭圆曲线的密钥协商/交换协议。相比传统 DH 能以更小的密钥提供同等安全性,适合移动/受限设备。
- ECDSA:DSA 的椭圆曲线变体,用于数字签名。比 DSA 更快且每比特安全性更高,广泛应用于 TLS 等现代协议。
- EDDSA:一种高速椭圆曲线签名方案(如 Ed25519 变体)。抗旁道攻击,因其简洁高效被 SSH 和 Signal 等协议青睐。
对称密码
这类算法使用共享密钥加密数据(对大文件处理更快)。分组密码将数据按固定大小分块处理,常结合 CBC 等模式进行链式加密。
- IDEA:1990 年代提出的 64 位分组密码。曾流行但因密钥尺寸和暴力破解风险已被视为弱算法。
- 3DES:三重数据加密标准。通过三次 DES 加密提升安全性。属遗留算法,速度慢且易受攻击,已逐步被 AES 替代。
- CAST5:CAST-128 家族中的 64 位分组密码。在同期算法中平衡了速度与安全性,目前仍在使用但已被 AES 超越。
- BLOWFISH:支持可变密钥长度(最高 448 位)的 64 位分组密码。速度快、灵活性高,适合软件实现但缺乏 AES 的硬件加速支持。
- AES:NIST 认证的分组密码(128 位密钥)。对称加密的黄金标准——安全、快速且普及。
- AES192:使用 192 位密钥的 AES 变体。在标准 AES 基础上提供中等安全提升。
- AES256:使用 256 位密钥的 AES 变体。最高安全级别版本,推荐用于高度敏感数据。
- TWOFISH:AES 决赛算法之一,128 位分组密码。安全性高且密钥尺寸灵活,在软件中表现优异。
- CAMELLIA128:日欧联合标准的分组密码(128 位密钥)。安全性与速度媲美 AES。
- CAMELLIA192:使用 192 位密钥的 Camellia 增强版本。
- CAMELLIA256:使用 256 位密钥的顶级变体,与 AES256 性能相当。
哈希算法
这类算法通过生成定长数据摘要来验证完整性、真实性,或用于签名/密码存储。抗碰撞性是其核心(但 SHA1 已被攻破)。
- SHA1:生成 160 位摘要的哈希算法。速度快但因碰撞漏洞已不安全——新项目应避免使用。
- RIPEMD160:欧洲设计的 SHA1 替代方案(160 位)。仍具一定安全性但已显陈旧。
- SHA256:SHA-2 家族成员(256 位)。稳健且广泛应用,成为比特币和安全密码存储的基础。
- SHA384:SHA-2 家族中生成 384 位摘要的版本,适用于高安全敏感场景。
- SHA512:SHA-2 家族最大变体(512 位),为高安全级哈希需求提供卓越性能。
- SHA224:SHA-256 的截断版本(224 位),用于旧系统兼容。
压缩算法
在加密前压缩数据以提升处理速度并减少存储/传输体积。在 GPG 等工具中自动应用。
- Uncompressed:不压缩数据,直接加密。适用于已压缩文件(如 JPEG)以避免额外开销。
- ZIP:采用 DEFLATE 算法(LZ77 + 霍夫曼编码)。常见于文件归档,在速度与压缩率间取得平衡。
- ZLIB:带头部/校验值的增强版 DEFLATE。与 ZIP 类似但更适配流式处理。
- BZIP2:基于 Burrows-Wheeler 变换与霍夫曼编码。速度较慢但压缩率优于 ZIP/ZLIB,尤其适用于文本。
这种配置支持灵活的安全工作流——例如使用 ECDSA 签名、AES256 加密、SHA256 哈希校验和 ZLIB 压缩。最新 GnuPG 详情请参阅官方手册。