第21讲--身份识别和零知识证明(密码学)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

零知识证明
设p和q是两个大素数,n=pq.假设P知道n的因 子.如果P想让V相信他知道n的因子,并且P不
想让V知道n的因子,则P和V可以执行怎样的
协议?
零知识证明
(1) V随机选取一个大整数x,计算 y=x4 modn V将结果y告诉P (2) P计算 Z= y modn P将结果z告诉V (3)V验证 z=x2 modn 是否成立. 上述协议可以重复执行多次,如果P每次都能正确地计 y modn,则V就可以相信P知道n的因子p和q. 算
(1) V站在A点;
(2) P进入洞中任一点C或D;
(3) 当P进洞之后,V走到B点; (4) V叫P从左边出来,或从右边出来; (5) P按要求实现(以咒语,即解数学难题帮助); (6) P和V重复执行 (1)~(5)共n次。
若P不知咒语,则在B点,只有50 %的机会猜中V的要 求,协议执行n次,则只有2-n的机会完全猜中,若n=16,则 若每次均通过V的检验,V受骗机会仅为1/65 536
第九章
身份识别和零知识证明
一、身份证明技术
传统的身份证明: 一般是通过检验“物”的有效性来确认 持该物的人身份。徽章、工作证、信用卡、 驾驶执照、身份证、护照等,卡上含有个 人照片(易于换成指纹、视网膜图样、牙 齿等)。 信息系统常用方式: 用户名和口令
交互式证明
两方参与 示证者P(Prover),知道某一秘密,使V相信 自己掌握这一秘密; 验证者V(Verifier),验证P掌握秘密;每轮V 向P发出一询问,P向V做应答。V检查P是否 每一轮都能正确应答。
哈米尔顿回路
(1) A将G进行随机置换,对其顶点进行移动,并改变其标号得 到一个新的有限图 H 。因 G H ,故 G 上的Hamilton回路与 H 上的Hamilton回路一一对应。已知 G 上的Hamilton回路易于找 GH 出H上的相应回路; (2)A将H的复本给B; (3) B向A提出下述问题之一:(a) 出示证明G和H同构,(b) 出 示H上的Hamilton回路; (4) A执行下述任务之一:(a) 证明G和H同构,但不出示H上的 Hamilton回路,(b) 出示 H 上的Hamilton回路但不证明 G 和 H 同 构; (5) A和B重复执行 (1)~(4)共n次。
二、零知识证明
最小泄露证明和零知识证明:
以一种有效的数学方法,使V可以检验每 一步成立,最终确信P知道其秘密,而又 能保证不泄露P所知道的信息。
零知识证明的基本协议
例[Quisquater等1989] 。
A B
设P知道咒语, 可 打开C和D之间的秘 密门,不知道者 都将走向死胡同中。
C
D
零知识证明的基本协议
Guillou-Quisquater身份识别方案
在Guillou-Quisquater身份识别方案中,用户A需要一个证书,
证书中包含了经由TA签名的有关A的身份的一些信息,用户 A的证书由TA颁发.证书是公开的,TA向用户A颁发证书的 协议如下:
(1)TA建立用户A的身份并产生一个表示A身份的字符串ID(A) (2)A秘密选取一个与n互素的整数u(0≤u≤n-1).A计算 v=(u-1)b modn,并将v传送给TA
零知识证明
说明:
计算 y modn等价于对n进行因子分解.如 果P不知道n的因子p和q,则计算 y modn是 一个困难的问题.因此,如果P不知道n的因 子,则在多次重复执行上述协议的情况下, P每次都能正确地计算 y modn的概率是非 常小的。显然,在上述协议中,V没有得到 关于n的因子p和q的任何信息,因此上述协 议是一个零知识证明协议.
零知识证明的基本协议
说明: 在上述协议的执行过程中,V没有得到关于
咒语的任何信息,因此上述协议是一个零知
识证明协议.
零知识证明的基本协议
哈米尔顿回路
图论中有一个著名问题,对有 n个顶点的全连通 图G,若有一条通路可通过且仅通过各顶点一次, 则称其为哈米尔顿回路。Blum[1986] 最早将其 用于零知识证明。当n大时,要想找到一条 Hamilton回路,用计算机做也要好多年,它是一 种单向函数问题。若A知道一条回路,如何使B相 信他知道,且不告诉他具体回路?
(3)TA产生签名
s=SigTA(ID(A),v),
并将证书C(A)=(ID(A),v,s)传送给A
Guillou-Quisquater身份识别方案
当A要向B证明自己的身份时,A和B执行下面的协议: (1)A随机选取整数k(0≤k≤n-1),然后A计算 r=kb modn (2)A将其证书C(A)=(ID(A),v,s)和r传送给B (3)B利用TA公开的签名验证算法来检验s是否为TA对 (ID(A),v) 的签名 (4)B随机选取整数t (0≤t≤b-1),B将t传送给A (5)A计算 y=kut modn,A将y传送给B (6)B验证ቤተ መጻሕፍቲ ባይዱr=vt yb modn是否成立.如果上式成立则B接受A的身 份证明;否则拒绝A的身份证明.
Guillou-Quisquater身份识别方案
Guillou-Quisquater身份识别方案的安全
性主要是基于RSA公钥密码体制的安全性.
Guillou-Quisquater身份识别方案需要一
个可信当局,简称TA.
Guillou-Quisquater身份识别方案
参数的选取: (1)TA选取两个大素数p和q,计算n=pq,p和q保密, 而n公开. (2)TA选取一个大素数b作为安全参数,b公开,b所起 的作用相当于RSA公钥密码体制中的加密密钥,可 以防止攻击者模仿A. (3)TA选取一个Hash函数和一个签名方案. 假设TA的保密的签名算法为SigTA 。公开的签名验 证算法为VerTA .TA在对一个消息进行签名之前,首先 对消息做Hash变换,然后对Hash变换后的消息进行 签名。
交互证明与数学证明的区别
数学证明的证明者可自己独立的完成证明 交互证明由P产生证明,V验证证明的有效性来
实现,双方之间要有通信 交互系统应满足

完备性:如果P知道某一秘密,V将接收P的证明 正确性:如果P能以一定的概率使V相信P的证明, 则P知道相应的秘密
身份识别方案的要求
假设A和B是通信的双方,当A与B进行通信时, A首先要向B证明自己的身份。 一个安全的身份识别方案至少应该满足以下两 个要求: (1)A能向B证明自己的确是A (2)当A向B证明了自己的身份后,B得不到任何用 于模仿A的有用信息,B无法向第三方声称自己 是A.
相关文档
最新文档