第 12章 身份识别方案
识别( identification)和身份验证
( authentication)区别,
? 当说到身份验证时,通常存在一些承载信息的
消息在通信双发之间交换,其通信的一方或双
方需要被验证。
? 识别(有时称为实体验证)是对一个用户身份
的实时验证,它不需要交换承载信息的消息。
一个安全的识别协议至少应该满足以下两个条件,
? 证明者 A能向验证者 B证明他的确是 A;
? 在证明者 A向验证者 B证明他的身份后,验证者
B没有获得任何有用的信息,B不能模仿 A向第
三方证明他是 A。
无线网络中通常使用质询 -响应识别( challenge-
response identification)或强识别方案,
? A通过密码和用户名向 B登记。
? B发给 A一个随机号码(质询)
? A用一个随机号码的加密值答复,其中使用
了 A的密码作为密钥完成加密(响应)。
? B证明 A确实拥有密钥(密码)。
12.1 Schnorr身份识别方案
? 用户 A将其身份名 I及公开密钥送交验证者 B。验证者
根据 TA的数字签名来验证用户 A的公开密钥;
? 用户 A任选一整数 r,1≤ r≤q-1计算 X=α rmodp,并将
X送给验证者 B;
? 验证者 B任选一整数 e∈ [0,…,2 t-1],送给用户 A;
? 用户 A送给验证者 B,y=r+semod q;
? 验证者 B验证,。 pvX ey m o d?? ?
安全性分析
? 针对一般交互式用户身份证明协议,都必须满足以下三种性质。
? 完全性( Completeness):若用户与验证者双方都是诚实地执
行协议,则有非常大的概率(趋近于 1),验证者将接受用户的
身份。
? 健全性或合理性( Soundness):若用户根本不知道与用户名
字相关的密钥,且验证者是诚实的,则有非常大的概率,验证者
将拒绝接受用户的身份。
? 隐藏性( Witness hiding):若用户是诚实的,则不论协议进
行了多少次以及不论任何人(包括验证者)都无法从协议中推出
用户的密钥,并且无法冒充用户的身份。
12.2 Okamoto身份识别方案
? A随机选择两个数,并计算;
? A将他的证书 和 X发送给 B;
? B通过检测 真来验证 TA的签名;
? B随机选择一个数,并将 e发送给 A;
? A计算 并将 y1,y2
发给 B;
? B验证 。
1,0,,2121 ??? qrrrr pX rr m o d21 21 ???
s)v,( I D ( A),A)(C ?
?),IDV er TA sv,(
tee 21,??
qemryqemry m o d)(,m o d)( 222111 ????
pvX eyy m o d21 21 ???
12,3 Guillou-Quisquater身份识别方案
? A随机选择一个整数 并计算;
? A将他的证书 和 X发送给 B;
? B通过检测 真来验证 TA的签名;
? B随机选择一个数,并将 e发送给 A;
? A计算 并将 y发送给 B;
? B验证 。
10,??? nrr nrX b m o d?
s)v,( I D ( A),A)(C ?
?),IDV er TA sv,(
10,??? bee
nrmy e m o d?
nyvX be m o d?
12.4 基于身份的身份识别方案
12.4.1 Shamir的基于身份的密码方案的基本思想
? 安全性主要依赖于以下几个方面,
? 所使用的密码变换(诸如加密变换、签名变换等)的安全性;
? 存储在密钥产生中心的特权信息的保密性;
? 在密钥产生中心给用户颁布 Smart卡之前所完成的识别检测的严
格性(要求用户
? 提供的身份确实能唯一确定用户,而且用户不能否认);
? 为了阻止用户的 Smart卡的丢失、复制或未授权的使用,用户所
采取的措施。
公钥签名方案和基于身份的签名方案之间
的差别
签名的 产生
消息 m 信道
公钥号码薄
gk
sm,
随机种子 k
合法 / 非法
(a ) 公钥签名方案
vk
密钥的产生
签名的验证
(b ) 基于身份的签名方案
图 1 2, 2 公钥签名方案和基于身份的签名方案之间的差别
签名的产生
消息 m 信道
g
k
Ism,,
随 机种子 k
合法 / 非法
签名者身份
v
k
密钥的产生
签名的验证
I I
要实现 shamir的基于身份的密码方案的思想,我
们需要一个具有下列两个附加条件的公钥密码
体制,
? 当知道种子时,秘密密码能从公钥中很容易地
求出。
? 从一对特定的公开密钥和秘密密钥求出它们的
种子是困难的。
12.4.2 Guillou-Quisquater的基于身份的
识别协议
? A随机选择一个整数 并计算
? A把 ID(A)和 X发送给 B;
? B计算 ;
? B随机选择一个数,并将 e发送给 A;
? A计算 并将 y发送给 B;
? B验证 。
10,??? nrr nrX b m o d?
))(ID( AHv ?
10,??? bee
nruy e m o d?
nyvX be m o d?
12.5 转换身份识别为签名方案
? Schnorr签名方案
设 p及 q是一个大素数,且 q|(p-1),在 Zp上离散对数问
题是难处理的。设 α ∈ Zp*是一个阶为 q的元素。 H是
一个 Hash函数。
,, 。
值 是公开的,s是保密的。对 和
一个(秘密的)随机数 r ∈ Zq*,定义对消息 m的签名
,其中, 。
对 m,X ∈ Zp*和 y ∈ Zq,定义 。
?? pZP qp ZZA ?? * ? ?pvsqpK s m o d|),,,,( ??? ??
vqp,,,? ),,,,( vsqpk ??
),(),(S i g yXrmk ? pX r m o d?? qXmsHry m o d)),(( ??
pvXT r u eyXmV er XmHy m o d),,( ),(???? ?
Okamoto签名方案
当 A对消息签名 m时,首先随机选择两个数
,然后计算,
,,
,
A对消息 m的签名是三重组 (e,y1,y2)。
当接收者 B收到签名 (e,y1,y2)时,B计算
,并验证 。
1,0,,2121 ??? qrrrr
pX rr m o d21 21 ??? ),( mXHe ?
qemryqemry m o d)(,m o d)( 222111 ????
pvX eyy m o d21 21 ??? ),( mXHe ?
Guillou-Quisquater签名方案
A对消息的签名过程为,
? 随机选择一个整数 并计算;
? 计算 ;
? 计算, A对消息 m的签名是对 (e,y)。
接收者 B验证签名的过程为,
? 获得 A的公钥 n,b,v;
? 计算 和 ;
? 验证是否有 e=e’,如果 e=e’,则 B接受 A的签名,否则,
拒绝。
10,??? nrr nrX b m o d?
),( mXHe ?
nruy e m o d?
nyvX be m o d' ? ),( '' mXHe ?
小结
? 本章主要介绍了三类身份识别方案,Schnorr身份识别
方案,Okamoto身份识别方案,Guillou-Quisquater身
份识别方案。这些方案都是较实用的识别方案。
? 在识别协议中,有两类协议是特别诱人的,一类是零
知识识别协议,另一类是基于身份的识别协议。有关
零知识识别协议的典型代表是 Feige-Fiat-Shamir识别
协议。有关基于身份的识别协议是 Shamir首次提出的
一种观点。
? Brickell及 McCurley将 Schnorr协议中的参数略做修改,
发展出一种美国 Sandia国家实验室所用的协议。该协
议数学理论上较 Schnorr协议更完整。