对安全性证明中DH BDH等相关假设的理解
前言
密码学的安全本质上依赖于数学问题中的未解“难题”。注意,这些“难题”到目前为止还未找到一种多项式的解决算法,至于这种算法是否存在,未来能否被找到则是无法证明的。既然目前不存在一种多项式算法来解决某一难题,那我们就可以假设这个问题很难,在多项式时间内无法被解决。实际上,CDH DDH等假设正是基于这种考虑,就是在假设所对应的CDH DDH问题很难不能在多项式时间内解决。如果你不同意我的假设,你就需要提供存在一种多项式解法(很难的啦)。
为什么要强调多项式时间?因为任何“难题”都只是说没有快速的解法,而非不可解。毕竟在不考虑时间成本时,暴力法是所有问题的通用解法。当然,运气法也可以。
在安全性分析中,当我们想通过某一假设来证明方案的安全性时,我们首先需要将方案的安全性问题归约为对应的问题上。之后,我们可以得出结论:如果假设A成立(引用别人的假设文献作为定理),那么任何攻击者都无法在多项式时间内破解我们的方案,因为任何攻击者都无法在多项式时间内解决问题A。结论是基于假设的,而假设是具有时效性的。例如,如果某一天某个天才破解了问题A,那么上述的推断就不成立了。因此,在未来的某一天,我们现在提出的假设都可能被推翻。
定义
DH假设
DH问题来自于1976年提出的Diffie-Hellman密钥交换协议,其数学定义可以描述为:
给定 < g , p , g a ( m o d p ) , g b ( m o d p ) > <g,p,g^a\ (mod\ p),g^b\ (mod\ p)> <g,p,ga (mod p),gb (mod p)>,攻击者能否在多项式时间内计算出 g a b ( m o d p ) g^{ab}\ (mod\ p) gab (mod p)?
该问题依赖的数学难题是离散对数问题(Discrete Logarithm Problem,DLP)。DH假设的就是在说DLP问题很难,因此DH问题也很难。很明显,这是成立的,因为离散对数问题至今仍未被解决。想要推翻这个假设你就得解决DLP问题,总不能拿不出证据又不承认。
CDH假设和DDH假设
CDH假设(Computational Diffie-Hellman Assumption)和DDH假设(Decisional Diffie-Hellman Assumption)是DH假设的变体,将线性离散问题转移到群论离散问题。我们说过,假设都是对应问题的,两者所对应的问题分别为:
Computational Diffie-Hellman Problem(CDHP):
对于循环群 G G G和生成元 g g g,给定 < G , g , g a , g b > <G,g,g^a,g^b> <G,g,ga,gb>,攻击者能否在多项式时间计算出 g a b g^{ab} g