密码学|6.4.2 椭圆Elgamal公钥密码系统

密码学 1年前 (2023) admin
281 0 0

6.4.2 Elliptic Elgamal Public Key Cryptosystem

同样的我们也能够很轻易的将椭圆曲线应用到 2.4 一节介绍的 Elgmal 公钥密码系统中。简单来说, Bob 和 Alice 首先协商一个公用的素数  和 曲线 ,以及基点 。Alice 选择一个秘密乘数 ,并公开点  作为她的公钥。Bob 的信息转化为一个在曲线  上的点 ,他选择一个随机数  并计算

然后将点  发送给 Alice。
而Alice 只需要计算下式就能够得到明文 

整个过程如表 6.6 所示

密码学|6.4.2 椭圆Elgamal公钥密码系统
理论上我们使用椭圆曲线结构的 Elgmal 公钥密码系统没有什么问题,但是这里有几点实践起来会比较困难:
  1. 没有一个公认的方法将一段消息映射到椭圆曲线  的一个点上。
  2. 椭圆曲线下的 Elgmal 密码系统具有 4:1 的消息拓展(即传递一个单位的信息需要发送四个单位的数据),相比之下有限域  下的椭圆曲线只有 2:1 的消息拓展。
根据 Hasse 定理(定理 6.11),椭圆曲线  下大约有  个点,因此只能映射  个不同的明文消息。
而之所以椭圆曲线下的 Elgmal 密码系统具有 4:1 的消息拓展,是因为密文  ,每个点包含 2 个坐标,因此总共有4个模  下的数。而消息一般只映射到一个点的单个坐标中(例如  坐标)
为此,人们已经提出了各种方法来解决这些问题。例如,通过随机选择  并将其用作实际明文的掩码(与明文异或),可以避免如何将明文与点相关联的困难。另外,也有相应的减少消息扩展的方法。
为了减少消息拓展,一个很自然的想法就是只发送密文  的  轴坐标,不过,由于 Alice 需要计算 ,所以他需要正确的  的  轴坐标以及  轴坐标。(注意  和  是两个完全不一样的点)但是,由于  轴坐标决定了  坐标的绝对值,因此 Bob 可以再额外发送一个 比特信息,例如,如果 ,则额外比特为 0;如果 ,则额外比特为 1。这样,Bob只需要发送  和  的  轴坐标,再加上两个额外的比特。这种想法有时被称为点压缩。

6.4.3 Elliptic Curve Signatures

表6.7中描述的椭圆曲线数字签名算法(ECDSA)是第4.3一节中表4.3中描述的数字签名算法的直接模拟。ECDSA在现实中被广泛使用,特别是(但不仅限于)在签名大小很重要的情况下。《Table 6.7: The elliptic curve digital signature algorithm (ECDSA)》,《Standards for Efficient Cryptography, SEC 2: recommended elliptic curve domain parameters (Version 1)》中描述了实施ECDSA的官方规范。(另请参阅第8.8节,了解现实世界中如何使用ECDSA实现数字现金)
密码学|6.4.2 椭圆Elgamal公钥密码系统
为了证明ECDSA有效,即验证步骤成功验证了有效签名,我们计算

于是

因此签名被视为有效。
       

原文始发于微信公众号(山石网科安全技术研究院):密码学|6.4.2 椭圆Elgamal公钥密码系统

版权声明:admin 发表于 2023年5月6日 下午2:01。
转载请注明:密码学|6.4.2 椭圆Elgamal公钥密码系统 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...