标准模型(standard model)与随机语言模型(random oracle model)
标准模型(Standard Model)
标准模型下,敌手只受时间和计算能力的约束,而没有其他假设,如果在此条件下,可以将密码学方案归约到困难性问题上,则称为该归约是基于标准模型的,也称方案具有在标准模型下的可证明安全性。然而在实际中,很多方案在标准模型下建立安全性归约是比较困难的,也就是难于证明在安全模型下的安全性。因此为了降低证明的难度,往往在安全性归约过程中加入其他的假设条件,就是下面将要讨论的随机预言机模型。
随机预言机模型(Random Oracle Model)
随机预言机模型在安全模型之上,加入了针对散列函数的随机预言机假设。这种假设下进行安全归约得到的安全性也称为随机预言机模型下的可证明安全性。随机预言机模型,是从散列函数抽象出来的一种模型,是在可证明安全中被广泛使用的证明方法。随机预言机是一种散列函数,我们可以把它理解为完美的散列函数:
1)一致性:对于相同的输入,其输出必然相同;
2)可计算性:输出的计算可以在多项式时间内完成;原像碰撞 pre-image resistant
3)均匀分布性:预言机的输出在取值空间内均匀分布,无碰撞。抗碰撞性 collision resistant
在随机预言机模型中,假定敌手不会利用散列函数的弱点来攻击密码学方案,否则该方案不安全。换句话说,即使将方案中的实际散列函数换成随机预言机,敌手仍然可以成功攻击,该方案不安全。随机预言机虽然广泛应用与密码学方案的证明,为可证明安全提供了很大的方便,但人们对随机预言机模型下的安全性证明的有效性仍存在争议的。随机预言机是一种过于理想的假设,要求敌手不利用散列函数的弱点来对方案进行攻击。而在现实中,并不存在这样一种完美的散列函数,因此在随机预言机模型下安全的一些方案,在使用真实的散列函数之后,就不再安全了。因为这种模型下的证明是一种具有很强假设性的,即敌手不可以利用散列函数的弱点。但是在现实中,散列函数是确定的,其输出并不能保证是完全随机且均匀分布的。所以,随机预言机模型下证明安全的一些方案,在用真实的散列函数代替随机预言机后,就不再安全了。尽管如此,基于随机预言机模型的安全证明除了散列函数外的环节都可以达到安全要求,目前大多数的可证明安全方案也是基于随机预言机模型的。因此,随机预言机模型仍被认为是可证明安全中最成功的应用。
参考:
https://blog.csdn.net/u012601009/article/details/53081266