密码学
公钥
定义
非对称密钥对中可自由分发的一方,用于加密发给所有者的数据,或验证由对应私钥生成的数字签名。
公钥是公钥密码体制中的非保密部分,可通过目录、网页、X.509 证书或 DNS 记录公开分发,而不会削弱对应私钥的安全性。它用于加密只有对应私钥持有者才能解密的数据,验证由私钥生成的签名,并参与 ECDHE 等经过认证的密钥交换协议。公钥通常以经过证书颁发机构签名的证书形式分发(PKI),或通过 DNSSEC/DANE、SSHFP、首次信任(TOFU)等机制进行绑定。其关键不在于保密,而在于真实性:若攻击者替换公钥,即便其值公开仍可发起中间人攻击。
示例
- 嵌入在网站 X.509 证书中的 RSA 或 ECDSA 公钥。
- 添加到服务器 ~/.ssh/authorized_keys 中的 SSH 公钥。
相关术语
私钥
非对称密钥对中保密的一方,用于解密发给所有者的密文或生成可证明其身份的数字签名。
公钥密码学
使用成对的公钥与私钥实现加密、密钥交换、数字签名和身份认证的密码学分支,无需事先共享秘密。
非对称加密
使用数学上相关的密钥对——公钥加密、私钥解密——的密码方案,无需事先共享秘密即可实现安全通信。
数字签名
一种公钥密码学机制,用于证明消息或文档的真实性、完整性以及不可否认性。
RSA 算法
由 Rivest、Shamir 与 Adleman 于 1977 年提出的公钥算法,其安全性基于对两个大素数乘积进行因数分解的困难性。
椭圆曲线密码学(ECC)
基于有限域上椭圆曲线代数结构的公钥算法族,以远小于 RSA 的密钥实现等同安全强度。