ElGamal 签名
- 密钥生成:随机选取𝑥, 设置𝑦 =
- 签名:选一个随机的k,gcd (𝑘, 𝑝 − 1) = 1
- 认证:给与一个签名𝜎 = (𝑟, 𝑠), 检查它是否满足
- 工作原理:
数字签名算法 - Digital Signature Algorithm (DSA)
- 密钥生成:生成p,q两个质数以及x,y两个随机数,
- 签名:选择一个随机数k,
- 工作原理:给与一个签名𝜎 = (𝑟, 𝑠), 检查它是否满足
DSA签名安全
- 安全性取决于离散对数不可行
- k必须是独一无二的:如果𝑘 重复使用,两者𝑘, 𝑥 可以计算:
在所有签名算法中,都有一个秘密随机值k,它不能重复使用,甚至不能部分公开,否则该方案可能会被破坏。
数字签名的应用
公钥证书
- (简化的)公钥证书
- 任何知道𝑝𝑘𝐼 的人都可以验证证书,即验证𝑝𝑘A
- 可转让:𝐴 可以从获得证书𝐼 并将其发送到𝐵
- 不需要安全通道,因为签名是不可伪造的
- 可以链接:𝐼1证明𝐼2的公共(验证)密钥,𝐼2证明𝐴
公钥基础设施
- 集中式证书颁发机构 - certificate authorities(CA)的层次结构
- PKIX:X.509证书,受信任的证书颁发者
- 在操作系统、浏览器中分发(硬编码)的顶级“根”CA公钥
- 通过单独的证书吊销列表 - Certificate Revocation Lists(CRL)处理吊销
Authenticated Key Exchange (AKE) - 经过身份验证的密钥交换
单向TLS 1.3(简化版):
- 保密性:对于对手来说,密钥和随机密钥是无法区分的,即使对手从其他运行中看到了会话密钥
- 真实性:成功运行后,密钥与服务器共享,客户端知道它正在与预期的服务器通信
- 完美的前向保密:即使泄露了长期秘密,前几届会议的保密性也不会受到损害