公钥密码学经典方案30篇 学习笔记(初次阅读)
本文是 荔枝橙味拱腰觅马糕守
一文的后继,主要内容是对于 方案构造学习
一章中的
尝试发现方案构造错误
一节下的
30个经典方案
的学习笔记
经过初次阅读尝试,发现笔者英文阅读能力较低,不足以在短暂时间内完成大量论文的阅读;故选择了在翻译器和人工智能的帮助下来进行阅读,以提升效率,并为第二次阅读打好基础
1984, A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms. [34]
引言
1976年,Diffie和Hellman首次提出了公钥密码的概念,并依赖离散对数问题和素数域上的计算复杂性来构造其密钥交换协议。ElGamal的工作正是基于这种思想,进一步提出了一个可以实现消息加密和解密的公钥加密系统,以及一个数字签名方案。
公钥密码系统
公钥密码体制的基本思想是使用 Diffie-Hellman
密钥交换的基础
首先,通信双方选择一个大质数
然后双方分别选取自己的私钥(分别是
这提供了一个安全的共享密钥,但计算此密钥的过程难度等同于计算离散对数。该系统的加密过程与Diffie-Hellman方案相关,但使用了随机数
数字签名方案
ElGamal提出的数字签名方案依赖于消息的签名和验证。具体来说,签名生成过程如下:
- 发送方选择一个随机数
,并保证 与 互质 - 计算
- 使用发送者的私钥
来解决方程 ,从而得到签名对
验证方只需使用公钥
签名方案的安全性依赖于离散对数问题的计算难度。ElGamal指出,攻击者试图伪造签名或推导私钥将面临离散对数问题的挑战。文章还讨论了在某些情况下可能的攻击方式,但大多无法打破系统的安全性
本质上就是用 DH 获得一个密钥,然后用它加解密消息。
详细代码见 ElGamal是个啥子玩意(和本篇论文内容不尽相同,但是殊途同归)
安全性分析
文章详细探讨了针对签名方案的可能攻击方式,并指出这些攻击大多数情况下等价于计算离散对数问题。虽然尚未严格证明破解此签名方案与计算离散对数之间的等价性,但已知的攻击方式都未能有效破坏该系统。
- 如果随机数
被重复使用,攻击者可能通过解决线性方程组来推导出私钥。 - 攻击者可以尝试通过文档的多个签名来恢复私钥,但计算复杂性极高
系统特性及比较
与其他基于整数分解问题的公钥系统(如RSA)相比,ElGamal系统在某些方面有所不同。
- 由于加密过程中的随机性,同一条消息的密文不会重复,有效地防止了已知明文攻击
- 虽然密文的大小是原消息的两倍,但由于解密只需要一次指数计算,故系统具有较好的计算效率
ElGamal离散对数问题的算法复杂性与因子分解问题类似,都是次指数级的复杂度。因此系统的安全性与RSA类似,公共文件的大小相对较大,但这是可接受的
1991, Efficient Signature Generation by Smart Cards. [35]
引言与背景
- 公钥密码学的基本概念:公钥密码学利用一对密钥(公钥和私钥)来加密和解密信息。公钥可以公开,而私钥则保持秘密。
- 应用场景:公钥密码学广泛应用于安全通信、数字签名和身份验证等领域。
经典公钥密码方案
- RSA算法:
- 构造方法:通过选择两个大素数
和 ,计算 。公钥是 ,私钥是 ,其中 是 的模 的逆元。 - 安全性:基于大数分解问题的困难性。
- 构造方法:通过选择两个大素数
- 椭圆曲线密码学(ECC):
- 构造方法:在椭圆曲线上定义操作,利用点加法和标量乘法生成公钥和私钥。
- 安全性:基于椭圆曲线离散对数问题的困难性,ECC提供了更小的密钥长度而保持相同的安全性。
- ElGamal密码方案:
- 构造方法:基于离散对数问题。生成一个大素数
和生成元 ,然后选择一个私钥 计算公钥 。 - 安全性:依赖于离散对数问题的复杂性。
- 构造方法:基于离散对数问题。生成一个大素数
安全证明
- 安全性定义:
- 通常包括选择明文攻击(CPA)和选择密文攻击(CCA)的安全性。
- 安全性证明方法:
- 归约法:将密码方案的安全性归约到已知的难题上。例如,证明RSA的安全性可以归约到大数分解的难度。
- 随机预言机模型:假设存在一个理想的随机预言机,用于模拟加密和解密过程,从而分析方案的安全性。
实例与应用
- 应用实例:可以介绍一些实际应用,如SSL/TLS协议、PGP等,如何利用这些公钥方案确保数据传输的安全性。
- 最新研究进展:提到一些后量子密码学方案的发展,因为传统公钥方案可能面临量子计算威胁。
总结与未来方向
- 总结:公钥密码方案在现代安全通信中至关重要,确保信息的机密性和完整性。
- 未来研究方向:研究如何提高现有公钥方案的效率,及其在新兴技术(如量子计算)下的安全性。