密码学 术语
50 terms
密码学
通过数学技术在存在攻击者的情况下提供机密性、完整性、真实性和不可否认性的信息安全科学。
加密
使用算法和密钥将明文转换为密文的密码学过程,使只有授权方才能恢复原始数据。
解密
使用正确算法和密钥将密文还原为原始明文的逆向密码运算。
对称加密
加密和解密使用同一个秘密密钥的加密方案,在密钥安全分发的前提下提供高速度和强机密性。
非对称加密
使用数学上相关的密钥对——公钥加密、私钥解密——的密码方案,无需事先共享秘密即可实现安全通信。
公钥密码学
使用成对的公钥与私钥实现加密、密钥交换、数字签名和身份认证的密码学分支,无需事先共享秘密。
私钥
非对称密钥对中保密的一方,用于解密发给所有者的密文或生成可证明其身份的数字签名。
公钥
非对称密钥对中可自由分发的一方,用于加密发给所有者的数据,或验证由对应私钥生成的数字签名。
AES(高级加密标准)
由 NIST 标准化的 128 位分组密码,密钥长度可为 128、192 或 256 位,由 Daemen 与 Rijmen 设计,是全球占主导地位的对称加密算法。
DES(数据加密标准)
已过时的 64 位分组密码,有效密钥仅 56 位,1977 年由 NBS 标准化,因密钥空间可在数小时内被穷举,现已被视为破解。
三重 DES(3DES)
通过对 DES 算法连续应用三次(使用两或三把密钥)以延长有效密钥长度的传统分组密码,已被 NIST 废弃,视为过时算法。
RSA 算法
由 Rivest、Shamir 与 Adleman 于 1977 年提出的公钥算法,其安全性基于对两个大素数乘积进行因数分解的困难性。
椭圆曲线密码学(ECC)
基于有限域上椭圆曲线代数结构的公钥算法族,以远小于 RSA 的密钥实现等同安全强度。
ECDSA
DSA 在椭圆曲线上的变体,由 FIPS 186 标准化,生成紧凑签名,其安全性依赖于椭圆曲线离散对数问题。
Diffie–Hellman 密钥交换
一种公钥协议,使两方能够在不安全信道上推导出共享密钥而不实际传输该密钥,其安全性基于离散对数问题的困难性。
ECDH
Diffie–Hellman 密钥交换在椭圆曲线上的变体,以更短的密钥和更快的运算提供相同的共享密钥功能。
Blowfish
Bruce Schneier 于 1993 年设计的 Feistel 分组密码,分组长度 64 位、密钥长度可变;算法本身安全,但因分组过小已被 AES 取代。
Twofish
由 Schneier 等人设计的 128 位分组、128/192/256 位密钥的对称密码,曾是 AES 候选决赛算法;安全但因 AES 成为标准而使用较少。
ChaCha20
由 Daniel J. Bernstein 设计的现代流密码,使用 256 位密钥和 96 位 nonce,常与 Poly1305 组合为 AEAD 算法 ChaCha20-Poly1305 广泛部署。
Salsa20
Daniel J. Bernstein 于 2005 年设计的 256 位密钥流密码,入选 eSTREAM 软件组合,是 ChaCha20 的直接前身。
分组密码
对固定长度明文分组使用密钥进行加密的对称密码,通常结合工作模式以处理任意长度的数据。
流密码
通过将数据与由密钥和 nonce 派生的伪随机密钥流逐位或逐字节异或来加密的对称密码。
密码套件
由密钥交换、身份认证、数据加密和完整性算法组合而成的命名集合,由 TLS 等协议在每次会话中协商使用。
密码学哈希函数
将任意长度输入映射为固定长度摘要的确定性单向函数,具备抗碰撞、抗原像和抗第二原像三大安全性质。
MD5
Ron Rivest 于 1992 年设计的 128 位密码学哈希函数;已被破解,可轻易构造实用碰撞,不得用于任何安全相关用途。
SHA-1
由美国国家安全局于 1995 年设计的密码学哈希函数,输出 160 位摘要,目前在抗碰撞性方面已被视为破解。
SHA-256
SHA-2 系列中的 256 位密码学哈希函数,广泛用于数字签名、TLS、区块链与完整性校验。
SHA-3
基于 Keccak 海绵结构的哈希函数家族,由 NIST 标准化为与 SHA-2 结构上完全不同的替代方案。
BLAKE2
RFC 7693 规范的现代高速密码学哈希函数,安全性可与 SHA-3 相比,在软件上性能显著更高。
Argon2
现代的内存密集型口令哈希与密钥派生函数,在 2015 年口令哈希竞赛中胜出,并由 RFC 9106 标准化。
bcrypt
基于 Blowfish 密钥编排、带可调成本参数的自适应口令哈希函数,由 Provos 与 Mazières 于 1999 年提出。
scrypt
由 Colin Percival 于 2009 年设计、由 RFC 7914 标准化的基于口令的内存密集型 KDF,用于口令哈希,也作为部分加密货币的工作量证明算法。
PBKDF2
由 PKCS #5 / RFC 8018 定义的基于口令的密钥派生函数,使用可配置迭代次数和盐反复调用一个伪随机函数。
HMAC
基于密码学哈希函数的带密钥消息认证码结构,由 RFC 2104 与 FIPS 198-1 定义。
数字签名
一种公钥密码学机制,用于证明消息或文档的真实性、完整性以及不可否认性。
消息认证码(MAC)
使用对称密钥计算的短标签,用于对消息进行认证并检测篡改,计算与验证使用同一个共享密钥。
盐(Salt)
在口令哈希之前与之拼接的唯一随机值,用于抵御彩虹表并使每个用户的哈希都不同。
胡椒(Pepper)
服务端持有的一段秘密,在口令哈希之前与每个口令拼接,与数据库分开存储,用于在哈希泄露后缓解离线破解风险。
随机数(Nonce)
提供给密码学算法的 "一次性数值",用于保证新鲜性,防止重放或密钥/IV 重用。
初始化向量(IV)
分组密码工作模式所使用的随机初始值,用于保证相同明文在同一密钥下加密会得到不同密文。
完美前向保密
协议属性,确保长期密钥即便日后泄露也无法解密以前会话的流量。
密钥派生函数(KDF)
从口令、共享密钥或主密钥等秘密素材派生出一个或多个强加密密钥的密码学函数。
密钥托管
将加密密钥副本交由可信第三方保管的安排,以便在约定条件下由授权实体进行恢复。
密钥轮换
定期用新密钥替换旧密钥的运维实践,用以限制单一密钥所保护的数据量并控制泄露影响。
密码学密钥
高熵的秘密或公开值,用于参数化加密算法,以加密、解密、签名或认证数据。
会话密钥
用于保护单次通信会话的短期对称密钥,会话结束后即予销毁。
主密钥
用于派生其他密钥或直接加密其他密钥的高价值长期密钥。
量子密码学
利用量子力学性质(通常是光子的性质)来获得仅靠经典通信无法实现的安全保证的密码学。
后量子密码学
面向经典计算机与大规模量子计算机均能保持安全的经典密码算法体系。
同态加密
一种加密方案,允许在密文上直接进行计算,得到的加密结果与对明文执行相同操作的结果一致。