对称密钥演算法(英语:Symmetric-key algorithm)又称为对称加密私钥加密共享密钥加密,是密码学中的一类加密演算法。这类演算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。事实上,这组密钥成为在两个或多个成员间的共同秘密,以便维持专属的通讯联系[1]。与公开密钥加密相比,要求双方取得相同的密钥是对称密钥加密的主要缺点之一[2]

Thumb
对称密钥加密:使用相同的密钥加密和解密

对称加密的速度比公钥加密快很多,在很多场合都需要对称加密。[3]

类型

对称加密可使用流密码分组密码[4]

流密码逐位元(通常是逐字节)地或逐字母(替换密码)加密消息。例如ChaCha20。虽然替换密码是知名的密码,但可以使用频率分析轻松解密。[5]

分组密码采用多个位并将其加密为单个单元,填充明文以达到块大小的倍数。美国国家标准与技术研究院(NIST)于2001年12月批准的高级加密标准 (AES) 算法使用128位块。

实现

常见的对称密钥算法有TwofishSerpentAES (Rijndael)、CamelliaSalsa20ChaCha20BlowfishCAST5英语CAST-128Kuznyechik英语KuznyechikRC4DES3DESSkipjack英语Skipjack_(cipher)SAFER英语SAFERIDEA[6]

作为密码原语

对称加密通常用于实现除加密之外的其他密码原语英语Cryptographic_primitive[来源请求]

加密消息并不能保证消息在加密状态下保持不变。因此,通常会向密文中添加消息验证码,以确保接收方能够注意到对密文的更改。消息验证码可以使用认证加密密码构建(例如AES-GCM)。

但是,除非涉及其他方,否则对称密码不能用于不可否认性目的。[7] 请参阅ISO/IEC 13888-2 标准

另一个应用是从分组密码构建哈希函数。有关几种此类方法的描述,请参见单向压缩函数英语One-way_compression_function

对称密码的构造

许多现代分组密码都基于霍斯特·费斯妥英语Horst_Feistel提出的一种结构。费斯泰尔的构造可以从其他本身不可逆的函数构建可逆函数。[来源请求]

对称密码的安全性

历史上,对称密码容易受到已知明文攻击选择明文攻击差分密码分析线性密码分析英语Linear_cryptanalysis的影响。仔细构建每个轮函数英语Round_(cryptography)可以大大降低攻击成功的几率。[来源请求]还可以增加密钥长度或加密过程中的轮数,以更好地防止攻击。然而,这往往会增加处理能力,并由于系统需要执行的操作量而降低进程运行速度。[8]

大多数现代对称密钥算法似乎能够抵抗后量子密码学的威胁。[9]量子计算机将指数级地提高这些密码的解码速度;值得注意的是,Grover算法将传统暴力破解所需时间缩短至平方根,尽管可以通过将密钥长度加倍来弥补这些漏洞。[10]例如,128位AES密码将无法抵御此类攻击,因为它会将测试所有可能迭代所需的时间从超过1000京年(1019年)减少到大约六个月。相比之下,量子计算机解码256位AES密码所需的时间仍然与传统计算机解码128位AES密码所需的时间相同。[11]因此,AES-256被认为是“抗量子”(英语:quantum resistant)的。[12][13]

密钥管理

密钥交换

对称密码算法要求消息的发送方和接收方都拥有相同的密钥。所有早期的密码系统都需要发送方或接收方以某种方式通过物理安全通道接收该密钥的副本。

几乎所有现代密码系统仍然在内部使用对称密钥算法来加密大部分消息,但它们通过使用迪菲-赫尔曼密钥交换或其他一些公钥协议来安全地就每个会话/对话的新密钥达成一致(前向保密),从而消除了对物理安全通道的需求。

密钥生成

当与用于密钥传输的非对称密码一起使用时,伪随机密钥生成器几乎总是用于生成对称密码会话密钥。然而,这些生成器或其初始化向量中缺乏随机性是灾难性的,并且在过去导致了密码分析方面的突破。因此,实现必须使用高的来源进行初始化非常重要。[14][15][16]

互逆密码

互逆密码是一种密码,就像将明文输入密码学系统以获得密文一样,可以将密文输入到系统中的相同位置以获得明文。互易密码有时也称为自反密码[17][18]

实际上,所有机械密码机都实现了互逆密码,即对每个输入字母进行数学对合。无需设计两种机器(一种用于加密,一种用于解密),所有机器都可以相同,并且可以以相同的方式设置(密钥)。[19]

互逆密码的例子包括:

所有现代密码中的大多数都可以归类为流密码(其中大多数使用互易异或密码组合器)或分组密码(其中大多数使用费斯妥密码莱-马西结构英语Lai–Massey_scheme,并在每一轮中进行互易变换)。[来源请求]

参见

参考文献

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.