5.6一次性签名

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

验证时计算 3735 mod7879 3810
32464 mod7879 4721
34285 mod7879 268 .它们都在公钥中,所以签名合法。
对手虽然不能从 z i , j 求出 yi , j ,但是用这个方法对两 个不同的消息签名时,对手就能伪造出另一个消息的签名。 例如上例中对手知道011和101的签名分别是
,
计算出 a0 。现在签名者能够计算出 a0 ,仲裁人 接受签名者的“伪造证明”。
~ 若签名者用一个私钥 (a1 , a2 , b1 , b2 ) 签了两个不同消息x, x ,
~ ~ 签名分别是 ( y1 , y2 ), ( y1 , y2 ) 。可以求出签名者的私钥
~ x ) 1 ( y2 。 y2 ) b1 ( x ~ x ) 1 ( y1 ~ y1 ) a1 y1 xb1 ,同理 b2 ( x ~
证明:假设与签名者私钥等价的 q 个私钥为 k1 , k 2 ,, k q ,它们 对x的签名都是y ,并且对x’的签名两两互不相同。所以敌手
1 猜中私钥对签名的概率为 。 q
, y2 ) 并 现假设敌手O能够对x’伪造一个合法签名 y ( y1
能通过验证。面对这个合法伪造签名,真正的签名者可以从
yk ,0 , yk ,1 为私钥
计算
zi, j f ( yi, j ),1 i k , j 0,1
z1,0 , z1,1 , z 2,0 , z 2,1 ,
, z k ,0 , z k ,1
及单向函数为公钥。
签名算法 对明文 x xk xk 1 x1 的签名是{yi , j | 1 i k , xi j}
( y3,0 , y2,1 , y1,1 )

( y3,1 , y2,0 , y1,1 )
,显然 ( y3,1 , y2,1 , y1,1 ) 和
( y3,0 , y2,0 , y1,1 )
分别是 111 和 001 的签名。
5.7 失败—停止数字签名
————
Fail-stop
Fail-Stop数字签名最早是1990年由B.Pfitzmann & M.Waidner提出的。它允许实体A证明“声称是A的签名”实 际上是伪造的签名。其做法是展示“该签名机制所基于的假 设已受到威胁”。Fail-Stop数字签名的好处在于即使一个非 常强的对手可能伪造一个签名,但可以察觉出是伪造的,
与此同时不再使用该签名机制。所以称为“失败而后停止
”更恰当一些。Fail-Stop数字签名应具有如下性质:
(1) 如果签名者依据该机制签署一个消息,则验证者 能验证签名并接受它. (2)伪造者没有指数运算能力就不可能构造“能通过验 证算法的一批签名。
(3) 如果伪造者以高概率成功地构造出一个能通过 验证算法的签名,那么真正的签名者可以给出“该签名是伪 造的”的证明。 (4)签名者不能自己构造出一些签名,而后又断言他们 是伪造的。以次保证接收者的安全
y y x ,容易证明 1 2 =
1 2
1( 2) x
。用私钥 k
也可以对该签名进行验证。
l 只有q个不同且相互等价的私钥,它们对明文x的签名y 都相同的。 证明:已知公钥 1 , 2 对应的私钥为 (a1 , a2 , b1 , b2 ) ,另一 个私钥 (u1 , u 2 , v1 , v2 ) 与之等价, 即:
2 q 也有q中选择。所以每个等价类有 个私钥。
l 签名者用私钥k对明文x签名y能通过验证。与k等价 的 私 钥 k 都可以对该签名进行验证 证明:私钥k= (a1 , a2 , b1 , b2 ) 与
, a2 , b1 , b2 ) 等价,它们对 k (a1
消息x的签名不同,分别为:
1 q
,即 ( y2 y2 ) 1 存在的概率 1
1
1 q
y1 )( y1 y2 ) modq 的概率为 可以计算出 a0 ( y1
1
1 q
真正的签名者以 a0作为该签名的伪造证明提交给可信中 心。
注意:这里假设签名者只有多项式时间计算能力,不能从
Fail-Stop数字签名由签名算法、验证算法、“伪造”证明 算法组成。其中“伪造”证明算法是对伪造签名的一种证明。 1992年E.Heyst & T.P.Pedersen 提出的 Fail-Stop数 字签名算法,它是一次性签名,即一个密钥只能用来签名一 次。该数字签名的基本思想是:每个可能的公钥有许多私钥
y1 a1 xb1 modq
y2 a2 xb2 modq
a2 xb2 modq a1 xb1 modq y2 y1
y y x 签名验证通过,即 1 mod p。由私钥的定义知
1 2
1( 2) x 1
x 2
1 a0 q 1
a mod p
0
p, q, , 由可信
中心选定并公开,a0 由可信中心选定对任 何人保密。
签名者的密钥生成
对实体A选择 a1 , a2 , b1 , b2 为密钥,与 其对应的公钥为 1 , 2 ,其中
1 a a mod p
1 2
1 a
1
1
a2
u1
1
u2
c1 mod p
2
c1 a1 a0 a2 u1 a0u2 modq
2 b b v v c mod p
2 2
c2 b1 a0 b2 v1 a0 v2 modq
要求 (u1 , u 2 , v1 , v2 ) 与 (a1 , a2 , b1 , b2 ) 对x的签名相同,即:
5.6 一次性签名
一次性签名是至多能签一个消息的签名方案。如果签
多个消息,敌手就可以伪造签名。这里每签一个消息就需要
一个新的公私钥对。一次性签名方案的签名和验证都十分有
效。 Lamport 签名方案 密钥生成 单向函数
f :Y Z
在Y中随机选取 y1,0 , y1,1 , y2,0 , y2,1 ,
验证算法 若 {zi, j | zi, j f ( yi, j ), 1 i k} 包含在公钥中, 则签名合法
例如: 素数 p=7879 ,3 是 Z 7879 的本原元素。定义
f ( x) 3x mod7879 ,令
k=3.
y2,0 803
y2,1 2467
私钥
y1,0 5831
a2 y 2 xb2
所以该方案是一次性数字签名方案。
与之对应,然而签名者只知道其中之一,并用它作签名。
窃听者搜集被签名的信息,试图从中发现签名者的私 钥。由于私钥很多,所以成功的概率可以忽略不计。 窃听者使用他自己生成的密钥伪造一个信息的签名, 这个签名与签名者的签名不同。
可信中心密钥生成
p, q=(p-1)/2是素数,选择p使Z p 上的离
散对数问题是难解问题。 Z p * 是q阶元
mod p 且 2 b1
b2
b1
b2
mod p
0 a1 , a2 , b1 , b2 q 1 , a1 a0 a2 a1 a0 a2 modq
a0b2 modq b1 a0b2 b1
b1, b2 , a2 有 q中选择。同样确定 b1 , b2 , 确定 a1 , a 2,a1

2 b b mod p
1 2签名算法计算源自y1 (a1 xb1 ) mod q
y2 (a2 xb2 ) mod q
x 的签名为 y ( y1 , y2 ) 验证算法 验证
x 1 2 y
1
y2
mod p 成立,y 是对信息x的
合法签名 伪造证明 可信中心的密钥 a0 有以下基本事实
y1 a1 xb1 u1 xv1 ~ y1 modq
y2 a2 xb2 u2 xv2 ~ y2 modq
1 a0 0 0 1 0 0 1
0 u1 c1 0 a 0 u 2 c 2 y x 0 v1 1 0 x v 2 y 2 0
l 具有相同公钥 1 , 2 的私钥 a1 , a2 , b1 , b2 共有 q 2 个, 称这些私钥是等价的.
l
, a2 , b1 , b2 ) 等价当且仅当 证明:私钥(a1 , a2 , b1 , b2 ) 与 (a1
1 a
1
a2
a1
a 2
该方程组系数矩阵的秩为3,有
q 组解
(u1 , u 2 , v1 , v2 ) 。
l
只有q个不同私钥,它们对明文x的签名y都相同的。
但用它们对另外的明文的签名则两两互不相同 证明方法同上,从略。 结论:已知对x的签名为y和另一个明文 x x ,敌手O猜
1 中对x’的签名y’的概率是 。 q
y3,0 4285
y3,1 6449
z3,0 268
y1,1 735
公钥
z1,0 2009 z 2,0 4672
z1,1 3810
z 2,1 4721
z3,1 5731 及
f ( x) 3 x mod7879
对消息 x= 011 的签名为(4285,2467,735)。对方
, y2 ) 显然能通过验证。 他自己对明文x’的签名 y ( y1
a0 y 2 y1 a0 y2 modq 有 1 2x y y y y mod p 得出 y1
1 2 1 2
y2 0 modq 的概率为 y2
相关文档
最新文档