随机语言机模型--ROM

Posted AnWen~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了随机语言机模型--ROM相关的知识,希望对你有一定的参考价值。

【1】、什么是预言机(Random Oracle)?

​ (理论的黑箱),对任何输入都回传一个真正均匀随机的输出。任何有限的函数均不是一个随机预言机函数,所以定义就要求是一个无限大的函数。

​ 1993年,Bellare和Rogaway提出的ROM模型

​ 随机预言机模型中有这么个预言机Oracle来回答你的问题,他有一个列表,包含了所有可能问的问题,还有一个列表,包含了所有问题的答案,然后问题列表中的问题都被完全随机的指定一个答案列表中的答案。在安全证明中,随机预言机模型是现实中哈希函数的”理想化替代品“,因为现实中哈希函数不可能是随机函数,输出并不能保证是完全随机且均匀分布的,虽然看起来很随机,为了安全证明的目的,就需要将哈希函数建模为随机函数。

​ 在随机预言机模型下,通常设计一个方案并证明是安全的;而在方案的实际执行中,用具体的哈希函数来替换方案中的预言机模型。在随机预言机模型下证明安全的方案在实际具体实现中未必安全的。

【2】、建立随机预言机模型

​ 关于如何建立随机预言模型,还有最后一个(而且是一种巧妙的)技巧。 在内部,一个随机预言只是实现了一个巨大的表,这个表将输入值映射到随机输出字符串。 既然如此,我们的安全性证明可以“懒惰地”填满这张表。 与其从填满整个表开始分析,不如从一个空表开始分析然后生成它,而不是从整个填满的表开始。它是这样工作的:

  1. 在游戏开始时,预言的表格是空的。

  2. 每当一方要求预言机对消息进行哈希时,预言机首先检查该输入值是否已存储在表中。

  3. 如果没有,则会生成一个随机输出字符串,将输入消息和新输出字符串存储在表中,并将输出字符串返回给调用方。

  4. 如果预言确实在表中找到了输入值,它将返回已经存储在表中的输出值。

如果稍微思考一下这个问题,你就会意识到,对于各方来说,这种方法“看起来”完全相同,就像是预言从一个完整的表开始。
【3】、

​ 与标准模型相比,为了降低证明的难度,往往在安全性归约过程中加入其他的假设条件,在随机预言机模型中加入了针对散列函数的随机预言机假设。在这种假设下进行安全归约得到的安全性称为随机预言机模型下的可证明安全。

​ 随机预言机是一种散列函数,可以理解为完美的散列函数:

一致性:对于相同的输入,输出必定相同

可计算性:输出的计算可以在多项式时间内完成

均匀分布性:预言机的输出在取值空间内均匀分布,无碰撞。

​ 可以说随机预言机模型是一种过于理想的假设,要求敌手不利用散列函数的弱点来进行攻击,所有有些在随机预言机模型下安全的一些方案,在使用现实的散列函数之后就不安全了。

【4】、

​ 在随机预言机模型中,归约论断如下进行:

​ 首先对方案满足的安全性进行形式化定义:假设在概率多项式算法中,攻击者能够以不可忽略概率成功攻击方案;

​ 其次,为攻击者提供其所需的模拟环境,即随机预言机,对攻击者的询问予以回答;

​ 最后,将数学上的困难问题嵌入模型中,利用攻击结果解决数学难题。

​ 在模型证明过程中,用哈希函数模拟随机预言机,参与者都能对其进行访问,通过利用攻击者的攻击行为来求解困难问题。利用上述证明过程得到的模型即随机预言机模型。

【5】、标准模型

​ 不依赖随机预言机模型在方案证明时,仅仅使用了哈希函数可以实现大的特性。敌手只受时间和计算能力的约束,而没有其他的假设。很多方案在标准模型下建立安全性归约是比较困难的,也就是说难于证明在安全模型下的安全性。标准模型虽然也是通过预言机对于询问进行应答,但与ROM不同,预言机内部映射要符合方案中的具体函数关系,因此,增加了设计难度。

【【参考文献忘记参考那几篇了,这些也是自己在阅读地时候随手记下的!!】】

以上是关于随机语言机模型--ROM的主要内容,如果未能解决你的问题,请参考以下文章

随机语言机模型--ROM

敌手模型1

敌手模型1

敌手模型1

敌手模型1

R语言编写自定义函数计算分类模型评估指标:准确度特异度敏感度PPVNPV数据数据为模型预测后的混淆矩阵比较多个分类模型分类性能(逻辑回归决策树随机森林支持向量机)