5.6 一次性签名

22
5.6 次次次次 次次次次次次次次次次 次次次次次次次次次 次次次 一一。 次次次次 次次次次次次次次次次 次次次次次 次次次次次次 ,。一 次次次次次次次次 次 次次次次次次次次次次次次次次次次 一。一 次次次次 次次次次 次次次次 Lamport Z Y f :

description

5.6 一次性签名. 一次性签名是至多能签一个消息的签名方案。如果签 多个消息,敌手就可以伪造签名。这里每签一个消息就需要 一个新的公私钥对。一次性签名方案的签名和验证都十分有 效。 签名方案 密钥生成 单向函数. Lamport. 在 Y 中随机选取 为私钥 计算 , 及单向函数为公钥。. - PowerPoint PPT Presentation

Transcript of 5.6 一次性签名

Page 1: 5.6  一次性签名

5.6 一次性签名 一次性签名是至多能签一个消息的签名方案。如果签

多个消息,敌手就可以伪造签名。这里每签一个消息就需要

一个新的公私钥对。一次性签名方案的签名和验证都十分有

效。 签名方案

密钥生成 单向函数

Lamport

ZYf :

Page 2: 5.6  一次性签名

在 Y 中随机选取 为私钥

计算 ,

及单向函数为公钥。

,,,, 1,20,21,10,1 yyyy1,0, , kk yy

)( ,, jiji yfz 1,0 ,1 jki

1,0, ,, kk zz

,,,, 1,20,21,10,1 zzzz

签名算法 对明文 的签名是

验证算法 若 包含在公钥中,

则签名合法

11 xxxx kk } ,1|{ , jxkiy iji

}1 ),(|{ ,,, kiyfzz jijiji

Page 3: 5.6  一次性签名

例如: 素数 p=7879 ,3 是 的本原元素。定义

,令 k=3.

私钥

公钥

7879Z

7879mod3)( xxf

58310,1 y 8030,2 y 42850,3 y

7351,1 y 24671,2 y 64491,3 y

20090,1 z 46720,2 z 2680,3 z

38101,1 z 47211,2 z 57311,3 z

7879mod3)( xxf

Page 4: 5.6  一次性签名

对消息 x= 011 的签名为( 4285 , 2467 , 735 )。对方

验证时计算

. 它们都在公钥中,所以签名合法。

对手虽然不能从 求出 ,但是用这个方法对两

个不同的消息签名时,对手就能伪造出另一个消息的签名。

例如上例中对手知道 011 和 101 的签名分别是

38107879mod3735 47217879mod32464

2687879mod34285

jiz , jiy ,

),,( 1,11,20,3 yyy

Page 5: 5.6  一次性签名

和 ,显然 和

分别是 111 和 001 的签名。

),,( 1,10,21,3 yyy ),,( 1,10,20,3 yyy),,( 1,11,21,3 yyy

Page 6: 5.6  一次性签名

5.7 失败—停止数字签名———— Fail-stop

Fail-Stop 数字签名最早是 1990 年由 B.Pfitzmann &

M.Waidner 提出的。它允许实体 A 证明“声称是 A 的签名”实

际上是伪造的签名。其做法是展示“该签名机制所基于的假

设已受到威胁”。 Fail-Stop 数字签名的好处在于即使一个非

常强的对手可能伪造一个签名,但可以察觉出是伪造的,

Page 7: 5.6  一次性签名

与此同时不再使用该签名机制。所以称为“失败而后停止

” 更恰当一些。 Fail-Stop 数字签名应具有如下性质 : (1) 如果签名者依据该机制签署一个消息,则验证者

能验证签名并接受它 .

(2) 伪造者没有指数运算能力就不可能构造“能通过验

证算法的一批签名。

Page 8: 5.6  一次性签名

(3)   如果伪造者以高概率成功地构造出一个能通过

验证算法的签名,那么真正的签名者可以给出“该签名是伪

造的”的证明。

(4) 签名者不能自己构造出一些签名,而后又断言他们

是伪造的。以次保证接收者的安全

Page 9: 5.6  一次性签名

Fail-Stop 数字签名由签名算法、验证算法、“伪造”证明

算法组成。其中“伪造”证明算法是对伪造签名的一种证明。

1992 年 E.Heyst & T.P.Pedersen 提出的 Fail-Stop 数

字签名算法,它是一次性签名,即一个密钥只能用来签名一

次。该数字签名的基本思想是:每个可能的公钥有许多私钥

与之对应,然而签名者只知道其中之一,并用它作签名。

Page 10: 5.6  一次性签名

窃听者搜集被签名的信息,试图从中发现签名者的私

钥。由于私钥很多,所以成功的概率可以忽略不计。

窃听者使用他自己生成的密钥伪造一个信息的签名,

这个签名与签名者的签名不同。

Page 11: 5.6  一次性签名

可信中心密钥生成 p, q=(p-1)/2 是素数,选择 p 使 上的离

散对数问题是难解问题。 是 q阶元

中心选定并公开, 由可信中心选定对任

何人保密。

pZ

*pZ

11 0 qa pa mod 0 , , , qp 由可信

0a

Page 12: 5.6  一次性签名

签名者的密钥生成 对实体 A 选择 为密钥,与

其对应的公钥为 ,其中

2121 ,,, bbaa

21 ,

paa mod 211

pbb mod 212

Page 13: 5.6  一次性签名

签名算法 计算 x 的签名为

验证算法 验证 成立, y 是对信息 x 的

合法签名

伪造证明 可信中心的密钥

有以下基本事实

qxbay mod)( 111 qxbay mod)( 222

),( 21 yyy

pyyx mod 2121

0a

Page 14: 5.6  一次性签名

     具有相同公钥 的私钥 共有 个,

称这些私钥是等价的 .

证明:私钥 与 等价当且仅当 且

21 ,2121 ,,, bbaa 2q

),,,( 2121 bbaa ),,,( 2121 bbaa

paaaa mod 21211

pbbbb mod 21212

       

1,,,0 2121 qbbaa qaaaaaa mod201201

qbabbab mod201201

Page 15: 5.6  一次性签名

确定 , 有 q 中选择。同样确定 ,

也有 q 中选择。所以每个等价类有 个私钥。

     签名者用私钥 k 对明文 x 签名 y 能通过验证。与 k等价

的 私 钥 都可以对该签名进行验证

证明:私钥 k= 与 等价,它们对

消息 x 的签名不同,分别为 :

21 ,aa 21 ,aa 21 ,bb 21 ,bb

2q

k

),,,( 2121 bbaa k ),,,( 2121 bbaa

Page 16: 5.6  一次性签名

qxbay mod111 qxbay mod222

qbxay mod111 qbxay mod222

签名验证通过,即 。由私钥的定义知

,容易证明 = 。用私钥

也可以对该签名进行验证。

pyyx mod 211

xx2121 ) ( xyy

2121 x) ( 21 k

Page 17: 5.6  一次性签名

只有 q个不同且相互等价的私钥,它们对明文 x 的签名 y

都相同的。

证明:已知公钥 对应的私钥为 ,另一

个私钥 与之等价, 即:

21 , ),,,( 2121 bbaa

),,,( 2121 vvuu

pcuuaa mod 121211 quauaaac mod2012011

pcvvbb mod 221212 qvavbabc mod2012012

Page 18: 5.6  一次性签名

要求 与 对 x 的签名相同,即:

),,,( 2121 vvuu ),,,( 2121 bbaa

qyxvuxbay mod~111111 qyxvuxbay mod~

222222

2

1

2

1

2

1

2

1

0

0

010

001

000

001

y

y

c

c

v

v

u

u

x

x

a

a

该方程组系数矩阵的秩为 3 ,有

q 组解 。),,,( 2121 vvuu

Page 19: 5.6  一次性签名

        只有 q个不同私钥,它们对明文 x 的签名 y 都相同的。

但用它们对另外的明文的签名则两两互不相同

证明方法同上,从略。

结论:已知对 x 的签名为 y 和另一个明文 ,敌手 O猜

中对 x’的签名 y’的概率是 。

xx

q

1

Page 20: 5.6  一次性签名

证明:假设与签名者私钥等价的 q 个私钥为 , 它们

对 x 的签名都是 y ,并且对 x’ 的签名两两互不相同。所以敌手

猜中私钥对签名的概率为 。 现假设敌手 O 能够对 x’伪造一个合法签名 并

能通过验证。面对这个合法伪造签名,真正的签名者可以从

他自己对明文 x’的签名 显然能通过验证。

qkkk ,,, 21

q

1

),( 21 yyy

),( 21 yyy

Page 21: 5.6  一次性签名

有 得出

的概率为 ,即 存在的概率

可以计算出 的概率为

真正的签名者以 作为该签名的伪造证明提交给可信中

心。

pyyyyx mod 212121

qyayyay mod201201

qyy mod022 q

11

22 )( yy q

11

qyyyya mod))(( 121110

q

11

0a

Page 22: 5.6  一次性签名

注意:这里假设签名者只有多项式时间计算能力,不能从

计算出 。现在签名者能够计算出 ,仲裁人

接受签名者的“伪造证明”。

若签名者用一个私钥 签了两个不同消息 ,

签名分别是 。可以求出签名者的私钥

,同理 。

所以该方案是一次性数字签名方案。

, 0a

),,,( 2121 bbaa

0a

xx ~ ,

)~,~( ),,( 2121 yyyy

111 xbya )~()~( 111

1 yyxxb )~()~( 221

2 yyxxb

222 xbya