Diffie-Hellman问题
# Diffie-Hellman问题
# 两个Diffie-Hellman问题
# Computation Diffie-Hellman / CDH
即给定一个基数与两个指数, 计算合并的指数
- 给定, 求
# Decision Diffie-Hellman / DDH
即给你三个指数, 让你判断最后一个是不是前两个的合并
- 给定 , 判断有没有
注意: 给定的 是 阶元素, 所以上面的运算都是 的
# 辨析: CDH / DDH
- CDH是计算一个数, DDH是判断计算结果是否成立
- 计算难度比较:
(来自课件)
- 直觉上理解: 把可能的答案给出来了让你判断对不对(DDH)肯定比让你自己求答案(CDH)简单, 而要你把对数求出来(离散对数问题)是最难的, 因为和CDH相比, 这相当于先把每个部分的指数算出来, 再计算CDH里面的合并的元素(即先用算 再计算再算出)
# DDH CDH Discrete Logarithm / 三个问题的图灵归约关系
图灵归约 Turing Reduction
把还没解决的问题归约到已经解决的问题上
用已经解决的问题去解决还没解决的问题
密码学原理与实践 Page 167
>
假设我们已经存在一个解决问题 A 的算法
一个A到B的图灵归约即利用构造一个解决问题B的算法, 并且是多项式时间的.
这篇文章译自reductions-and-jokes
> > 一个物理学家和一个数学家正坐在教师休息室里。突然间,休息室里的咖啡机着火了。物理学家就拿了一个垃圾桶,把里面的垃圾清空,跑到水池前,给垃圾桶灌满水,随后扑灭了火。由于这个咖啡机着过一次火了,大家都同意把垃圾桶装满水放在这个咖啡机旁边。
> 第二天,同样的两个人又坐在同样的休息室里,咖啡机又一次着火了。这一次,数学家站了起来,把装满水的垃圾桶拿了起来,把里面的水倒掉,又放了一些垃圾在里面,交给了物理学家。这样就把问题归约到了一个之前已经解决过的问题上。
> 虽然这个笑话是讽刺数学家的,但确实很好地解释了归约这个概念。其想法很简单:我们现在遇到了个问题,可以把它转化到一个某个已解决的问题上,而不是一定要直接解决这个问题。从这个意义上来说,归约其实是一种比较懒的解决问题的方式。
> Instead of putting out a fire,...图灵归约 Turing Reduction
# CDH Discrete Logarithm
很简单, 正如前面已经提到的一样, 可以先用 算 再计算 再算出 .
CDH Discrete Logarithm 说明了 Discrete Logarithm 至少和 CDH 一样难
这样想更清晰: Discrete Logarithm至少比CDH难
# DDH CDH
因为我们都可以求正确的了,我们只需要验证和是不是一样就可以解决DDH了
DDH CDH说明了CDH至少比DDH难
# 一个思考, DDH / CDH / Discrete Logarithm到底哪个最难?
一个错误想法:
有 DDH CDH,
说明 DDH 至少是和 CDH 一样难的(因为解决了 CDH 一定就可以解决 DDH)有 CDH Discrete Logarithm,
说明 CDH 至少是和 Discrete Logarithm 一样难的(因为解决了 Discrete Logarithm 一定就可以解决 CDH)
这样看来, 好像 Discrete Logarithm 最简单. CDH 第二简单, DDH 最难, 但是为什么实际是反过来的呢?
正确想法:
有DDH CDH, 说明CDH至少是和DDH一样难的(因为解决了CDH一定就可以解决DDH)
有CDH Discrete Logarithm, 说明Discrete Logarithm至少CDH是和一样难的(因为解决了Discrete Logarithm一定就可以解决CDH)
这样看来, Discrete Logarithm最难, CDH第二难, DDH最简单
……
CDH是和DLP相关的,但是哪个更难呢?如果我能有效率的解决DLP,那么我就可以找出,然后轻松的计算出就像Bob做的那样,因此我们就解决了CDH.所以我们说能解决DLP那么一定能解决CDH,这就是说DLP至少和CDH一样难.
……
如果对手能够解决DDH(输出正确的x的概率大于1/2).那么就是说一定泄露了一些关于的信息,使得攻击者能把它从随机的元素中分辨出来,尽管不能直接计算出来.而且很明显,如果对手能解决CDH问题,那么它可以有效率的解决DDH,因为它已经可以得到 的值.这意味着,CDH至少和DDH一样难.
这就是我们这篇中讨论的三个问题,我们给出了一个简明的证明对他们的困难性进行排序:DLP最难,然后是CDH,最后是DDH.就像我们看到的那样,DLP有时候是简单的,会让CDH和DDH都变简单.因此群和生成器的选择在做密码学的时候是十分重要的!
# 解CDH的算法和解ElGamal的算法是等价的
in ElGamal:
注意都是公钥
#
由此算出 ,就相当于了
所以
#
所以