BLS方案在随机预言机下的安全归约证明构造过程

        给出一个方案如何根据方案去使用安全归约证明方案的安全性呢? 

        博主也是刚入密码学的小白,因此在这里分享自己对安全归约的理解,有错误的地方欢迎大家一块来讨论进步。

        首先,我们要知道安全证明有哪些部分组成。可以大致分为三部分:模拟、求解、分析。因为要求我们自己来构造方案的安全证明,我把它详细化,我们需要完成以下几步:定理、证明、初始化、H-Query(如果有用到随机预言机的化)、Query、Forgery、困难问题的解、不可区分性分析、成功模拟和有用攻击分析、优势和时间开销。

        以下蓝色字是我自己瞎写的安全证明过程,括号内是我看过答案后的思考。

定理

        如果CDH问题是困难的,那么BSL方案在随机预言模型下是可证明安全的 (在这一块,我们要说明用什么问题归约到该方案。归约通俗就是说A问题可以通过解决B问题来解决。在安全归约,我们通过解决方案来解决困难问题。这里使用CDH问题作为底层难题,在定理这一块,要指出方案在哪个安全模型下是安全的,缺少了损失)

证明

        存在一个敌手A可以以(t,ε,qs)攻破在随机预言机安全模型下方案。

        初始化 

               明白一点,CDH问题可以归约到该方案,我们设计一个模拟方案,如何将CDH的问题实例映射到模拟方案中?或者说我们要给那些参数给模拟器和敌手呢?((g,ga,gb)(问题实例(g,ga,gb),和我们之前训练的例子不同两个归约关系A和B他们之间所需要的参数个数不同,然后我就不知道要怎么设置了。事实上在方案上,我们应该想的是,模拟器如何通过敌手伪造的签名将这个签名转换成问题实例的解。因为这个解一定是可以规约过去的(从上帝视角)。不能归约那写的安全规约就是有问题的。真实方案只需要一个pk=gα,那我们就让这个问题实例中ga让α=a就可以了,至于gb没有用到我们可以在random oracle 的回应中设置相关的b。这里的随机预言机就是搞了一个trapdoor到输出里面以至于模拟器在不知道私钥的情况下也可以做出合法签名)

H-Query

                对于m的哈希查询 用H(m)=g^xb+y去模拟。当i*不等于i时x=0,反之x=1。(随机预言机很好用,有三个作用,我们需要记住第一种就是预言机输出的内容是一种trapdoor,这种trapdoor就是可关系到可模拟和可归约的。第二就是将输出引到特殊的集合。第三种作用就是知道敌手询问过的信息。文件中有对具体应用的分析笔记)

Query

                签名查询如果x!=0签名不可以模拟,中止。如果x=0,模拟器可以模拟返回消息m的签名。这里解释以下为什么会终止吧。因为我一开始无厘头的看这些方案,就是没有自己的思考,书本上说什么条件是中止就中止。由于模拟器需要依靠敌手去破解难题的,如果x=0,那么敌手伪造的签名,我模拟器自己也可以伪造那我还需要敌手干嘛。敌手拥有无限的计算能力,因此,敌手可以从你给他的条件中知道底数具体是多少,指数具体是多少。由这些已知信息去构造符合方案的签名。此外,我这边缺少了对伪造签名的合法性分析。合法性的验证:通过真实方案的计算公式,以及模拟器可计算出来的签名,两者作比较,模拟参数带到公式中如果算出来等于模拟器可计算的签名就说是有效的。

Forgery

                σm=(g^xb+y)a,其中x=1。才可归约。

困难问题的解

                通过(σm/(gay))算出gab。

不可区分性分析

成功模拟和有用攻击分析

优势和时间开销

        对于分析这块就略过了。下面给出原文的安全证明过程:

 以上材料均来自郭福春老师的卧村密码学报和安全规约导论。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值