困难问题
出处说明
本文内容摘自外部资源,为方便学员快速学习相关前置数学知识而整理在一起。内容可能较原文有删减,仅保留本课程所需的前置内容,以便学员快速掌握必备知识。
就像你现在知道的那样,密码学经常依赖于'困难问题'。这也就是说,如果我们假设对手不能在合适的时间内解决某个(数学)问题,那么我们设计的密码学协议的安全性就得到了证明。本文介绍了安全证明中被广泛使用的三个这样的问题
The Discrete Logarithm Problem(DLP)
让
给定
这里
一个离散对数问题是难的吗?有时候是,有时候不是.作为反例,令
另一方面,有限域内素数阶乘法下的群(在去掉0之后)即椭圆曲线群都被认为是难的.因为我们还不知道多项式时间的算法来在这些群中找到离散对数.举一个具体的例子,假设我问你'整数模7的乘法群中找到以3为底5的离散对数'.这意味着找到一个整数a,使得
因此
The Computational Diffie-Hellman Problem(CDH)
一个和DLP问题相关的问题是由Whit Diffie和Martin Hellman提出的两方协商密钥在公共信道上不会被窃取的问题:
- Alice和Bob共同确定使用的循环群
,和生成元 - Alice选择一个随机的密钥整数
,Bob选择了一个随机的整数 - Alice计算
在公共信道上发送给Bob,同时Bob也计算出 在公共信道上发送给Alice. - Alice和Bob都计算
通过知道他们自己的随机的整数,这个生成的就是他们协商的密钥.
现在
给定
CDH是和DLP相关的,但是哪个更难呢?如果我能有效率的解决DLP,那么我就可以找出
The Decisional Diffie-Hellman Problem (DDH)
这是另一个离散对数的问题,用于证明难以区分的属性.假如说Alice和Bob执行如上所述的Diffie-Hellman密钥协议,那么
给定
如果对手能够解决DDH(输出正确的x的概率大于1/2).那么就是说
这就是我们这篇中讨论的三个问题,我们给出了一个简明的证明对他们的困难性进行排序:DLP最难,然后是CDH,最后是DDH.就像我们看到的那样,DLP有时候是简单的,会让CDH和DDH都变简单.因此群