博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
密码学读书笔记——Fiat-Shamir
阅读量:2169 次
发布时间:2019-05-01

本文共 1191 字,大约阅读时间需要 3 分钟。

密码学读书笔记——Fiat-Shamir

交互式的身份验证

在中心准备签发智能卡时,会信选择出一个模数n和一个伪随机函数f,这个伪随机函数f可以将任意的字符串与[0,n)当中的一个数联系起来。n是两个秘密(只有中心知道)素数p和q的乘积。

当一个合法的用户希望申请一个智能卡时,中心会解析它的所有相关信息,包括名字、地址、ID、物理特征描述等,这些信息会被包括在一个字符串当中,同时有关卡片本身的一些信息也会被包含在其中(发行日期,有效性限制等)。这些信息一旦被确认发行之后就无法修改,所以保证它正确很有必要。
以下是中心对于字符串I的操作:

  1. 计算vj=f(I,j),j 是一些很小的数;
  2. 选择k个不同的j,使得vj是n的平方剩余,同时计算关于vj-1(mod n)的最小平方根sj,其中vj-1应该是vj关于n的欧拉函数的逆;
  3. 发行这张新的智能卡,在这张智能卡中包括了字符串I,k个*sj*和它们所对应的索引。

当用户使用智能卡时,验证者需要对该智能卡进行验证,通常在验证的机器中值保存着模数n和伪随机函数f。智能卡向验证者证明它知道*s1,…,sk*的值,同时不会泄露这些值给验证者。

证明协议包括以下协议步骤(其中A是证明者,B是验证者):

  1. A将I发送给B;

  2. B计算vj=f(I,j),j=1,…,k;

    以下3-6步骤将重复t次,i=1,…,t:

  3. A选择一个随机数ri ∈ \in [0,n),计算xi=ri2(mod n)发送给B;

  4. B选择一个随机向量(ei1,…,eik ∈ \in {0,1},发送给A;

  5. A计算yi,并发送给B;

在这里插入图片描述

  1. B计算以下公式,如果成立,则证明A是合法的。
    在这里插入图片描述

非交互式的签名方案

在交互式的签名方案中,B需要发送eij矩阵给A,A和B之间存在交互,下面将介绍一种非交互验证方案,使得两者之间不需要通过交互即可验证A的合法性。

在证明者这一端:

  1. A选择随机的r1,…,rt ∈ \in [0,n),同时计算xi=ri2(mod n);
  2. A计算 f(m,x1,…,xt),同时使用计算结果的钱kt位作为矩阵eij的值(1 ≤ \leq i ≤ \leq t,1 ≤ \leq j ≤ \leq k);
  3. A计算yi,通是将I,m和eij矩阵发送给验证者B。

在这里插入图片描述

在验证者这一端,验证A在消息m上的签名是否合法:

  1. B计算vj=f(I,j),j=1,…,k;

  2. B计算

    在这里插入图片描述

  3. B验证*f(m,z1,…,zt)的前kt位是否等于eij.如果成立证明A的签名合法。

关于Fait-Shamir安全性的思考

在交互式的身份验证方案中,随机矩阵eij是由验证者决定和发送的,而在非交互式的身份签名方案中,随机矩阵eij是由证明者通过随机函数计算结果所选择的,这个矩阵的随机性完全依赖于韩系函数f,一旦f被破解,也就会带来安全问题,证明者可以控制它的那几个值会被验证。

转载地址:http://yxxzb.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>
深度学习的主要应用举例
查看>>
word2vec 模型思想和代码实现
查看>>
怎样做情感分析
查看>>
用深度神经网络处理NER命名实体识别问题
查看>>
用 RNN 训练语言模型生成文本
查看>>
RNN与机器翻译
查看>>
用 Recursive Neural Networks 得到分析树
查看>>
RNN的高级应用
查看>>
TensorFlow-7-TensorBoard Embedding可视化
查看>>