ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2020-11-22 18:58:29  阅读:387  来源: 互联网

标签:Fiat eij 验证 vj 读书笔记 随机 交互式 智能卡 密码学


密码学读书笔记——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被破解,也就会带来安全问题,证明者可以控制它的那几个值会被验证。

标签:Fiat,eij,验证,vj,读书笔记,随机,交互式,智能卡,密码学
来源: https://blog.csdn.net/little_pants/article/details/109960279

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有