现代密码学第10讲:密码协议

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

零知识证明
1990年,L. C. Guillou和J. J. Quisquater提出的例子 A
B
C
D
零知识证明
一个迷宫,C与D之间有一道门,需要知道秘 密口令才能打开。现在,证明者P希望向验 证者V证明他拥有这道门的秘密口令,但是 P不愿意向V泄露该口令。
协议开始,为什么验证者 不呆在B口, 而要站在A口
比特承诺
基于对称密码算法的比特承诺方案如下: Alice和 Bob共同选定某种对称加密算法。 Bob产生一个随机比特串并发送给Alice。 Alice随机选择一个密钥,同时生成一个她欲承诺 的比特串(也可以是一个比特),然后利用对称加密 算法对“和”加密,最后将加密后的结果发送给 验证者Bob。 当需要Alice承诺时,她将密钥和承诺的比特发送 给Bob。 Bob利用密钥解密,并利用他的随机串检验比特 的有效性。
5 .验证 X v mod p
y e
零知识证明


从v求s就是求离散对数,在计算上是不可 s 行的。 s [1, q 1], v mod p r 和s都是用户的秘密,假冒者 Eve 是无 法从 y 中得到用户的秘密,当然也就无法 假冒证明者A。
比特承诺

生活实例 股市预测 Alice想对Bob承诺一个比特(也可以是一个比 特序列),但不告诉Bob她的承诺,也就是不 向Bob泄露她承诺的比特值,直到某个时间 以后才提示(或公开)她的承诺;另一方面, Bob可证实在Alice承诺后,她没有改变她的 承诺。
安全多方计算



一群参与者要利用他们每个人的秘密输入来 计算某个多变量复合函数的值。 参与者希望保持某种安全性,如机密性与正 确性。 协议即要保持在发生非协议参与者攻击行 为下的安全性,也要保持在发生协议参与者 攻击行为下的安全性,但不包括协议参与者 的主动欺骗行为,即故意输入错误的秘密数 据的情况。
公平掷币协议
分蛋糕问题:Alice切蛋糕,Bob优先选,所以 Alice要把蛋糕分得尽量均匀 抛币: Alice抛币 Bob猜测是花还是字 如果由一个人来完成,他可以作弊
公平掷币协议
不能见面的两个人通过网络或者电话完成 ⑴ Alice和Bob各有50%的机会获胜; ⑵ 任何一方欺骗则认为其在博弈中失败; ⑶ 协议执行结束后,Alice和Bob都知道结果
零知识证明




验证者V开始停留在位置A。 证明者P一直走到迷宫的深处,随机选择到 位置C或位置D。 V看不到P后,走到位置B,然后命令P从某 个出口返回B。 P服从V的命令,要么原路返回至位置B,要 么使用秘密口令打开门后到达位置B。 P和V重复上述步骤次。
零知识证明
若P不知道秘密口令,就只能原路返回,而P第一次 猜对V要求他哪一条路径的概率为0.5,因此,第 n必须很大 一轮协议P能够欺骗V的概率为0.5。执行轮协议次 后,P成功欺骗V的概率为1/2n。 反例:足球比赛赌博 一个人收到一份邮件,说他有一个先进的数学工具 可以正确猜测足球比赛的结果,如果感兴趣可以 购买他们的产品。并连续10次在赛前给此人寄来 了正确的预测,于是这个人信以为真并汇款购买 ,结果发现是一个骗局。

比特承诺
实例 Alice把消息(承诺)放在一个箱子里并将它 (只有Alice有钥匙) 锁住送给Bob 等到Alice决定向Bob证实消息时,Alice把消 息及钥匙给Bob Bob能够打开箱子并验证箱子里的消息同 Alice出示的消息相同,且Bob确信箱子里的 消息在他保管期间没有被篡改。
零知识证明
例1:假设A告诉B:我知道哥德巴赫猜想的证明? 如果A把证明过程写下来给B看,B记住了证明然后以 自己的名义发表,A将蒙受损失; 如果A不把证明给B看, B如何证实A确实知道? 例2:A告诉B:我知道近期有支股票要涨,我们两个 合作,你出资,我提供信息? 合作协议达成之前,A显然不能透露股票的任何信息 ;但是如果B不能确信他是正确的,肯定不会投资
零知识证明
零知识证明ZKP(Zero Knowledge Proof)是 由S. Goldwasser等人在20世纪80年代引入 该协议的一方称为证明者(Prover),通常用 P表示,协议的另一方是验证者(Verifier), 一般用V表示。零知识证明是指P试图使V相 信某个论断是正确的,但却不向V提供任何 有用的信息,或者说在P论证的过程中V得 不到任何有用的信息。 透露秘密 利用秘密做一些事
零知识证明

证明者A向验证者B证明他身份(Schnorr 认证 协议)
A B
1、I , v A , S T ( I , v A )) (
* p
任选 r Z
2、 X mod p
r
用 TA 的数字签名来 验证 A 的公开密钥
任选整数 e [1, 2 ]
t
3、e
4、 y r se mod q
零知识证明
身份认证实现
p 公开参数: , Z * , ;证明者知道 对 p 的离散对数 x 。 1) 证明者任选随机数 r R {1, 2, , p 1} ,计算 r m o d p ,并将 送给验证者; 2) 验证者任选随机数 b R {0,1} ,并将b送给证明者. 3) 证明者计算y=r+bx mod(p-1) ,把y送给验证者; y b m o d p 是否成立,若成立, 4) 验证者验证 则继续5),否则停止; 5) 重复1)至4)步t次.
零知识证明

Shnorr 身份认证协议需要一个可信中心 TA。 TA为协议选择下列参数: (1)p 及 q 是两个大素数,且 q|(p-1);
(2) Z
* p 为 q 阶元(如可取
g
( p 1 ) / q
, 为Zp g
的生成元。)
(3)选择安全参数t
零知识证明



每个用户自己选定个人秘钥s,并计算公钥v。其 中 s [1, q 1], v s mod p 每位用户必须到TA 注册其公开密钥v。 TA 验明用 户身份后,对每位用户指定一识别名I。I中包括用 户的姓名、性别、生日、职业、电话号码、指纹 信息等识别信息。 TA 对(I,v)的签名为ST(I,v)。 在身份认证过程中,不需要 TA 介入。
《现代密码学》第十讲
密码协议
1
上讲内容回顾



密钥管理简介 密钥分配 密钥协商 PKI及数字证书 秘密共享技术
本章主要内容
密码协议概念 零知识证明 比特承诺 公平抛币协议 安全多方计算 。。。。。。

3
密码协议概念
协议是一系列步骤,它包括两方或多方,设 计它的目的是要完成一项任务。一般包含了 三个方面的含义:

a 1,若满足则计算 q
,其中 n x x 。然后Alice随机猜测Bob选取的是 x 1 , x 2 中 2 的哪一个,并把猜测结果0或1发送给Bob(事先规定 大的用1表示,小的用0表示).
x
1 2
2
x a (mod n ) 的四个根:1 , n x 1 , x 2 , n x 2
公平掷币协议
1) Alice发送一对大素数p,q的乘积n=p*q给Bob.
N应该为 Blum数
2) Bob在 Z 中随机选取一个小于n/2的x, 然后发送 n 2 a x mod n 给Alice. 3) Alice校验 a 是否是模n的二次剩余,即是否满足
a 勒让德符号 1 p
零知识证明
不泄露秘密
m od p
x
(1) (2) (3)

r
m od p m o d ( p 1)
y r bx


解等式(1)(2),即为求离散对数 r为随机数,故已知b、y,不知道x的值
零知识证明
欺骗:欺骗者不知道离散对数x,却冒充证明者
欺骗过程: 1) 欺骗者猜测证明者选取的随机数b R 机选取 y R {1, 2, , p 1} , 计算
公平掷币协议
4) Bob收到1后将第2)步中选择的x x 3 1发送 给Alice. 5) Alice检验x属于Z ,且x x1 3 1,现在Alice知 道她的猜测是错误的,也就是说在博弈当中 Alice失败了,然后Alice将p=11,q=19传送给 Bob. 6) Bob检验p,q是两个不同的素数,且满足 n=p*q=11*19=219. Bob根据3)步Alice传给他 的数值1知道Alice猜测错了.
1 2
1 2
公平掷币协议
例: 1) Alice选择p=11,q=19, 然后把n=11*19=209发 送给Bob. * 2) Bob在 Z 2 0 9 中随机选取x=31<(209/2), 计算 2 2 a x m od n 31 m od 209 125 并把a=125发送给Alice. 3) 因为 a 1 2 5 1 和 a 1 2 5 1,所以a是模p的
零知识证明
用途:身份识别协议 一个安全的身份识别协议至少应满足以下两 个条件: 证明者P能够向验证者V证明他的确是P。 在证明者P向验证者V证明他的身份后,验 证者V不能获得关于P的任何有用信息,使 得V能冒充P向第三方证明V是P。 也就是说,P即能向V证明他的身份,又没 有向V泄露P的识别信息,安全的身份识别 协议应满足零知识证明。
比特承诺
利用基于单向函数的比特承诺方案如下: Alice和 Bob共同选定一个单向函数,如 Hash函数。 Alice生成两个随机数和承诺比特串,计算 单向函数值并将结果(哈希值)和其中一个 随机数发送给Bob。 当Alice向Bob出示消息时,她把承诺比特串 与另一个随机数一起发送给Bob。 Bob计算hash值,并与第②步收到的值做比 较以检验消息的有效性。
1
* 209
安全多方计算
安全多方计算就是指在无可信第三方的情况 下,安全地计算一个约定的函数的值。 在一个安全多方计算协议中,参与方之间一 般是互不信任的,他们各自都有一个不想让 其它任何人了解的秘密数,但是他们要利用 这些秘密数来求得大家都信任的值或答案。 确切地讲,安全多方计算就是满足下述三个 条件的密码协议:

y
{0,1} ,随

百度文库
b
m od p
2) 将 和y按协议分别传送送给验证者; y b m o d p 。即验 若欺骗者猜测b正确,那么, 证者相信欺骗者知道x,认为与自己交互的是证 明者。 重复1)至4)步t次,将欺骗的概率降到2^{-t}
零知识证明


Shnorr 身份认证协议融合了ELGamal协议、FiatShamir协议、和Chaum-Evertse-Van de Graff交互 协议等协议的思想,是一种计算量、通信量均少 ,特别适合智能卡上用户身份识别的方案。 其安全性建立在计算离散对数问题的困难性上。
⑴ 协议需要二个或二个以上的主体参与。 ⑵ 参与者按照一定的次序交替地执行一系列的步 骤,在前一步尚未完成之前,后面的步骤不能被 执行。 ⑶ 参与者必须能够协同地完成某项任务,或达成 某种意向。
密码协议概念
密码协议的目的是参与协议的各方根据协议 中采用的密码算法,执行一系列规定的步骤 和操作,最终完成某项任务或达成一致的意 向。
公平掷币协议
4) Bob收到后0或1后将第2)步中选择的 x 发送给 Alice. * x 是否属于 Z n ,是否属于 { x , x } ,现 5) Alice检验 在Alice根据第3)步和接收到x的可以知道她的猜 测是否正确,然后将p,q值传送给Bob. 6) Bob检验p,q是否是两个不同的素数,且验证 n=p*q是否成立。然后根据 x 2 a (mod p ) 和 2 x a (mod q ) 计算出 x , x ,现在Bob也知道他和 Alice的博弈最终是谁赢了.

p 11
q
19
二次剩余,同时也是模q的二次剩余,所以Alice 验证得出a是模n的二次剩余;求出 x 2 1 2 5 m o d 2 0 9 的四个根是x1 31, n x1 178, x 2 64, n x 2 145. 假 设Alice猜测Bob选取的是 x 2 ,则把1发送给Bob.
相关文档
最新文档