当前位置:文档之家› 第5讲 零知识证明

第5讲 零知识证明


Okamoto 身份认证协议就是安全的。该证明过程的基本思想是:识别者 A 通过执行该认证协议多项式次向攻击者 Oscar 识别自己,假定 Oscar 能够获得识别者 A 的秘密指数
1 和 2 的某些信息,那么将可以证明
识别者 A 和攻击者 Oscar 一起能够以很高的概率在多项式时间内计算出 离散对数 ,这和我们认为离散对数问题是安全的假设 相矛盾。因此就证明了 Oscar 通过参加协议一定不能获得关于识别者 A 的指数的任何信息。
Goldwasser等人提出的零知识证明是交
互式的,也就是证明者和验证者之间必 须进行双向对话,才能实现零知识性, 因而称为交互零知识证明。

在交互零知识证明的研究中,目前受到关注的 有两种基本模型。一种是GMR模型,在这种模 型中,证明者具有无限的计算能力,验证者具 有多项式时间的计算能力。需要证明的是语言 成员问题,即输入I是否是语言L中的一个成员。 GMR模型不是真正的零知识证明,这是因为在 证明中,证明者向验证者揭露了有关知识的1比 特信息,即I∈ L是否成立。但除此之外,再没 有其他任何附加的信息泄露给验证者,通常称 这种交互零知识证明为成员零知识证明或定理 零知识证明。


另一种是FFS模型,在这种模型中,证明者 和验证者均具有多项式时间的计算能力,证 明者的目的不是向验证者证明I∈L,而是证 明他知道I是否属于L。 FFS模型是真正的零 知识证明,因为在证明中,验证者没有得到 任何信息,他连I∈L还是I L都不知道,但他 相信这个证明,通常称这种交互零知识证明 为知识零知识证明或身份零知识证明。
Hamilton回路零知识协议
许多计算上困难的问题可以用来构造零知识 协议。 在图论中,图 G中的回路是指始点和终点相 重合的路径,若回路通过图的每个顶点一次 且仅一次,则称图 G为哈密尔顿回路,构造 图 G的哈密尔顿回路是 NPC 问题。

假定 P知道图 G的哈密尔顿回路,并希望向 V证明这一事实,可采用如下协议: (1)P 随机地构造一个与图 G同构的图 W。并将 W 交给 V。 (2)V 随机地要求 P做下述两件工作之一:
n p和q, 计算
pq , p 公开 n , 保密
q 和 ;
2、 随机选择一个大素数
b 作为安全参数,同是选择一个公开的 RSA
加密指数; 3、 选择身份识别过程中要用到的 Hash 函数 h 。
信任中心 TA 向用户 A 颁发证书的过程描述如下: 1、 TA 对申请者的身份进行确认,在此基础上,对每一位申请者指 定一个识别名称
Name ;
m1 , m2 Z q ,并计算
mod p ,将计算结果发给信任中心 TA;
对信息进行签名。
2、 识别者 A 秘密地选择两个随机整数
v
m1 1
2
m2
s Sign ( Name , v ) TA 3、 信任中心 TA 计算
将结果 A。
C ( A) ( Name, v, s)作为认证证书颁发给识别者
在 TA 进行以上处理的基础上,Okamoto 身份识别协议中,识别者 A 和验证者 B 之间的过程描述如下: 1、 识 别 者 A 选 择 两 个 随 机 数
r2 X 1r1 2 mod p ;
r1 , r2 Z q
, 并 计 算
2、 识别者 A 将他的认证证书 C ( A)
( Name, v, s )
Quisquater-Guillon零知识协议

1990年,Quisquater和Guillon提出一种形象 的基本零知识协议的例子。如下图所示,该 图表示一个简单的迷宫,只有知道秘密口令 的人才能打开C 和D之间的密门。现在,P希 望向V证明P能够打开此门,但是又不愿意向 V泄漏P掌握的秘密口令。为此, P采用了所 谓的“分隔与选择”技术实现一个零知识协 议。
p和q;
2、 选择两个参数 1 , 2 Z p ,且 1 和 2 的阶均为 q ; 3、 TA 计算 可行的;
c log1 2 ,保证任何人要得到 c 的值在计算上是不
4、 选择身份识别过程中要用到的 Hash 函数 h 。
信任中心 TA 向用户 A 颁发证书的过程描述如下: 1、 TA 对申请者的身份进行确认,在此基础上,对每一位申请者指 定一个识别名称
零知识证明
概念
“零知识证明”-zero-knowledge
proof, 是由Goldwasser等人在20世纪80年代初 提出的。它指的是证明者能够在不向验 证者提供任何有用的信息的情况下,使 验证者相信某个论断是正确的。

1)A要向B证明自己拥有某个房间的钥匙,假 设该房间只能用钥匙打开锁,而其他任何方法 都打不开。这时有2个方法:(一)A把钥匙出 示给B,B用这把钥匙打开该房间的锁,从而证 明A拥有该房间的正确的钥匙。(二)B确定该 房间内有某一物体,A用自己拥有的钥匙打开 该房间的门,然后把物体拿出来出示给B,从 而证明自己确实拥有该房间的钥匙。后面这个 方法属于零知识证明。好处在于在整个证明的 过程中,B始终不能看到钥匙的样子,从而避 免了钥匙的泄露。
简化的 Feige-Fiat-Shamir 身份鉴别方案

在发放私人密钥之前,仲裁方随机选取一个模数n, n为两个大素数之积。实际中,n应至少为 512 位长, 尽量接近 1024 位。n值可在一组证明者之间共享。
Feige-Fiat-Shamir 身份鉴别方案
其他身份识别协议
Guillou-Quisquater 身份识别方案 Guillou-Quisquater 身份认证协议的安全性基于 RSA 公钥密码体制的安 全性。该协议的建立过程也需要一个信任中心 TA,TA 首先确定以下参 数: 1、 选择两个大素数
Name ;
m Zn
,计算
2、 识 别 者 A 秘 密 地d n 并将计算结果发给信任中心 TA;
3、 TA 对 ( Name, v ) 进行签名得到 中心 TA 将证书
s SignTA ( Name, v) ,信任
发给识别者 A。
可以看出,Guillou-Quisquater 身份认证协议的安全性与 RSA 公钥密码体 制一样,均是基于大数分解的困难性问题,该性质能够保证 Guillou-Quisquater 身份认证协议是计算安全的。
Schnorr 鉴别协议
Okamoto 身份识别方案 Okamoto 身份识别协议是 Schnorr 协议的一种改进方案。 Okamoto 身份识别协议也需要一个信任中心 TA, TA 首先确定以下参 数: 1、 选择两个大素数

在上述协议中,如果P不知道秘密口令,他只 能从来路返回到B点,而不能走另外一条路。 此外, P每一次猜对V要求他走哪一条路的概 率是1/2。因此,每一轮协议P能够欺骗V的概 率是1/2。执行n轮协议后,P成功欺骗V的概 率是1/2n。嘉定n=16,则执行16轮协议后,P 成功欺骗V的概率是1/216=1/65536。于是,如 果P能够16次按V的要求路线返回,V即能证明 P确实知道秘密口令。同时,V无法从上述证 明过程中获取丝毫有关P的秘密口令的消息。 所以,这是一个零知识协议。
和计算结果
X

发送给验证者 B;
3、 验证者 B 应用信任中心 TA 公开的数字签名验证算法 VerTA ,计
VerTA ( Name, v, s ) 来验证签名的有效性;
t e 1 e 2 1、 验证者 B 选择一个随机数 , ,并将 e 发给识别
者 A; 2、 识 别 者 A 计 算
y1 (r1 m1e) mod q

证明图 G和图 W 同构;
指出图 W 的一条哈密尔顿回路。
(3)P 根据要求做下述两件工作之一:
证明图G和图 W 同构,但不指出图 G或图 W 的
哈密尔顿回路; 指出图 W 的哈密尔顿回路,但不证明图 G和图 W 同构。
(4)P 和 V重复以上过程 n 次。

协议执行完后,V 无法获得任何信息使自己可以构 造图 G 的哈密尔顿回路,因此该协议是零知识证明 协议。事实上,如果 P 向 V 证明图 G 和图 W 同构, 这个结论对 V 并没有意义,因为构造图 G的哈密尔 顿回路和构造图 W 的哈密尔顿回路同样困难。如 果 P向 V指出图 W 的一条哈密尔顿回路,这一事实 也无法向 V提供任何帮助,因为求两个图之间的同 构并不比求一个图的哈密尔顿回路容易。在协议的 每一轮中,P都随机地构造一个与图 G同构的新图, 因此不论协议执行多少轮,V 都得不到任何有关构 造图 G 的哈密尔顿回路的信息。
零知识证明实质上是一种涉及两方或更多
方的协议,即两方或更多方完成一项任务 所需采取的一系列步骤。零知识证明必须 包括两个方面,一方为证明者P,另一方 为验证者V。证明者试图向验证者证明某 个论断是正确的,或者证明者拥有某个知 识,却不向验证者透露任何有用的消息。 零知识证明目前在密码学中得到了广泛的 应用,尤其是在认证协议、数字签名方面。

y2 (r2 m2e) mod q ,并将
y1 和 y 2 发给验证者 B;
y1 y2 e X 1 2 v mod p 来验证身份信息 3、 验证者 B 通过计算
的有效性。
Okamoto 身份认证协议与 Schnorr 身份认证协议的主要区别在于:当 选择的计算参数保证
Zp
上的离散对数问题是安全的,则可以证明
X
发送给验证者 B;
VerTA ( Name, v, s) TRUE 来验证信任
e Z b ,并将其发给识别者 A;
3、 验证者 B 选择一个随机整数
e y rm mod n ,并将其发送给验证者 B; 4、 识别者 A 计算
e b X v y mod n 来验证身份信息的有效性。 5、 验证者 B 通过计算
相关主题