第十三讲 密码执行 ( 下 )

43
第第第第 第第第第 ( 第 )

Upload: rhonda-caldwell

Post on 03-Jan-2016

160 views

Category:

Documents


0 download

DESCRIPTION

第十三讲 密码执行 ( 下 ). 本讲提要. 模幂 ( 续 ) 指数译码 多模幂 中国剩余定理加速 RSA Montgomery 约减方法. 2.2.2 k -ary 方法. 2.2.2 k -ary 方法 ( 续 ). 2.2.2 k -ary 方法 ( 续 ). 2.2.2 k -ary 方法 ( 续 ). 2.2.2 k -ary 方法 ( 续 ). 2.2.3 窗口方法. 2.2.3 窗口方法 ( 续 ). 2.3 固定指数模幂算法 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第十三讲 密码执行 ( 下 )

第十三讲 密码执行 ( 下 )

Page 2: 第十三讲 密码执行 ( 下 )

本讲提要 模幂 ( 续 ) 指数译码 多模幂 中国剩余定理加速 RSA Montgomery 约减方法

Page 3: 第十三讲 密码执行 ( 下 )

2.2.2 k-ary 方法

比特位。的。接着一次扫描,,,的值,这里

方法首先计算。和注意

我们可以定义。个端添加,则最多在指数的最前不能整除。如果

的块,因此,有每个长度为的二进制表示可以分成

方法

二进制方法的思想:计算

kei

gkeee

f fffe

knkn

ktke

keeeee

ffffe

g

k

iikt

i ik

i

jk

jjkikikkikkii

btt

nn

e

1232 =

ary-2 120

2 )(

0111

)1(

ary-)(

)(

0

1

0221

011

2011

Page 4: 第十三讲 密码执行 ( 下 )

2.2.2 k-ary 方法 ( 续 )

。则,如果。,则如果

:。

。因此,。:

。预计算。输出:

。,这里,正整数和输入:

模幂从左向右

)Return( (4)

· 0 (3.2)

(3.1)

following thedo 0 down to from For (3)

1 (2)

) ( do )12( to2 from For (1.2)

(1.1)

. (1)

1 2 )(

ary-

2

1

1

011

A

gAAe

AAti

t i

A

ggg ggi

gg

g

kbeeeeeg

k

i

k

ei

iiii

k

e

kbtt

7算法

Page 5: 第十三讲 密码执行 ( 下 )

2.2.2 k-ary 方法 ( 续 )

个空间。,需要,存储

。平均:

,最小:

,最大:

为:。因此,总的乘法数量我们有。个数

的非重量的是,这里:步第乘。:步第平方

。:步第预计算

计算

12 121 (2)

)2/11()1( 22

122

1 22

1)(1

)

0(Hamming)( )()(3.2) (

)(3.1) (

22112 )(1.2) (

(1)

kki

kk

k

k

b

bbb

kk

ig

ttk

tk

ttk

teH

eeHeH

tk

.效率

Page 6: 第十三讲 密码执行 ( 下 )

2.2.2 k-ary 方法 ( 续 )

。则,如果

:。

。:

。,

预计算。输出:

。,,这里和正整数输入:

模幂修改从左向右

)Return( (4)

) · ( 0

following thedo 0 down to from For (3)

1 (2)

do )12( to1 from For (1.2)

(1.1)

. (1)

1 2)(

ary-

22

21212

221

011

A

gAAu

t i

A

g ggi

gggg

g

kbeeeeeg

k

ih

i

ihk

ui

iik

e

kbtt

8算法

Page 7: 第十三讲 密码执行 ( 下 )

2.2.2 k-ary 方法 ( 续 )

)2(

0

0 0 2

0 0 (1)

少预计算开销。的略微修改,目的是减实际是对

。和则令,如果是奇数;,这里

则定可以写,,如果,对于每一个

7算法8算法

.解释

i

iiiih

i

i

u

heuue

etiii

Page 8: 第十三讲 密码执行 ( 下 )

2.2.3 窗口方法

。,并且做:,和

,满足找出最长的比特串,否则。,,则如果

:。,

。:

。,

预计算。输出:

。而整数这里,和正整数输入:窗口模幂

)Return( (4)

1 1 1

0) ( (3.2)

1 0 (3.1)

following thedo 0 While(3)

1 (2)

do )12( to1 from For (1.2)

(1.1)

. (1)

1 1 )(

21

1+

)(2

1

2

21212

221

2011

A

ligAAekl+i

eeee

iiAA e

i

tiA

g ggi

gggg

g

keeeeeeg

lii

li

eeel

liii

i

iik

e

ttt

9算法

Page 9: 第十三讲 密码执行 ( 下 )

。和 3 00101)(101101111 11749 2 ke

2.2.3 窗口方法 ( 续 )

Page 10: 第十三讲 密码执行 ( 下 )

2.3 固定指数模幂算法 在许多情况下,我们需要计算指数为固定

值的模幂。例子有 RSA 加密和解密,以及 ElGamal 解密。

Page 11: 第十三讲 密码执行 ( 下 )

2.3 固定指数模幂算法 ( 续 )

。:。。输出:

。,里这,,,,以及相关的序列,,,,

的加法链的一条长度为正整数,输入:加法链模幂

)Return( (3)

do to1 from For (2)

(1)

) (

) (

21

0

21

2110

s

iii

e

i

ss

g

gggsi

gg

g

iiw

wwwuuu

Vseg

10算法

Page 12: 第十三讲 密码执行 ( 下 )

2.3 固定指数模幂算法 ( 续 )

。,,,,,的一条加法链是的长度为。计算

15126 3 2 1

5 15

543210

15

uuuuuu

eg

Page 13: 第十三讲 密码执行 ( 下 )

2.3 固定指数模幂算法 ( 续 )

法链。法链通常不是最短加样建立的给定指数的加比较容易,但是,这到一条加法链相对来说

找的二进制表示,从表示给定一个指数乘法。

次恰好需要,计算对于任意

,的加法链给定的一条长度为对正整数

e

sgg

see

(2)

1

(1)

10算法

.解释

Page 14: 第十三讲 密码执行 ( 下 )

2.4 固定底数模幂算法

2

-1) + (

0 )( 1

0 }{

0

10

可能的选择数字数量。是所有并且,则的整数满足位的基为

是任意一个例如,如果为某个固定的正整数。

,,这里能够写成适宜的界

,满足任何指数是一个整数集合,,,

bhbbbb

teh

hebeee

tbbb

ii

i

t

i ii

t

.思想

Page 15: 第十三讲 密码执行 ( 下 )

2.4.1 固定基窗口方法

。。

:。,

。输出:

。和,,,,,输入:

幂固定基窗口方法计算模

)Return( (3)

(2.2)

:do for which each For (2.1)

following thedo 1 down to )1( fromFor (2)

11 (1)

}{

010

A

BAA

gBBjei

h j

BA

g

hbeeg gg

i

t

bi

e

t

i iibbb

11算法

Page 16: 第十三讲 密码执行 ( 下 )

2.4.1 固定基窗口方法 ( 续 )

,,,,。首先计算对于和

,,取定。,这里计算

256

641641

4

404 =

4 4 (31132)862

g

ggggi b

htegi

i

e

Page 17: 第十三讲 密码执行 ( 下 )

2.4.1 固定基窗口方法 ( 续 )

个存储空间。,需要,存储

次乘法。时至多需要算

计。因此,符值为也至少一次的一个操作次乘法,但步执行次乘法。第至多执行

步,因此第的初始值为乘法才执行。由于的情况下不为。若仅有两个操作符全假定

计算

1 0 (2)

2

1

1(2.2)

(2.1)1

12

. (1)

ttig

htg

ht

B

ht

ib

e

11算法

.解释

Page 18: 第十三讲 密码执行 ( 下 )

2.4.2 固定基 Euclidean 方法

。,满足,上的整数对于所有

,区间为一个在。定义,满足上的整数对于所有,区间为一个在

定义。为一组整数,这里,,,令

i

N

iM

t

x

xMiti

tNxxt

i tM

txxx

0

][0

0][0

2}{ 10

Page 19: 第十三讲 密码执行 ( 下 )

2.4.2 固定基 Euclidean 方法 ( 续 )

。和中决定指标,,,在。,,

:。和中决定指标,,,在

。,:

。输出:

。,和,,,,输入:

方法计算模幂固定基

) Return( (4)

} { (3.2)

)(mod )( (3.1)

following thedo 0 While(3)

} { (2)

following thedo to0 from For (1)

}{

Euclidean

10

10

010

M

i

t

xM

t

NMMNq

MNNM

N

t

iib

i

e

t

i iibbb

g

NMx xx

xxxggg/xxq

x

NMx xx

exgg ti

g

hbeeg gg

12算法

Page 20: 第十三讲 密码执行 ( 下 )

2.4.2 固定基 Euclidean 方法 ( 续 )

。,,预计算。,,则

。,,令。,计算256161

16

210

14) 5 (3

256 16 1 862

ggge

bbbeg e

Page 21: 第十三讲 密码执行 ( 下 )

2.4.2 固定基 Euclidean 方法 ( 续 )

的预计算量。少值。这意味算法需要更更大的可以选择比

数尺寸符合对数关系,由于除余算法与输入参大。常没有,算法需要的计算量通给定的基

对于一个。为步的商第在多数情况下,

h

b

q

11算法12

算法11算法

12算法.评论

(2)

1(3.1) )1(

Page 22: 第十三讲 密码执行 ( 下 )

3 指数译码 另一种减少基本二进制算法中乘法数量的方

法就是将指数 e 的二进制表示用其它更少非零元的表示方法代替。由于二进制表示是唯一的,更少非零元的表示方法需要使用除 0和 1 以外的数字。将指数从一种表示变成另一种表示称为指数译码。

Page 23: 第十三讲 密码执行 ( 下 )

3.1 符号数字表示

示的一个特例。表示仅是符号数字表表示并不唯一。二进制一个整数的符号数字与二进制表示不同,对

为基的符号数字表示。的以数被称为一个对整则,

,,,这里,如果

2

)( 0

1}1 {0 2

011

0

e

ddddti

dde

SDtt

iit

i i

6定义

Page 24: 第十三讲 密码执行 ( 下 )

3.1 符号数字表示 ( 续 )

。。

。:

。。的非邻接表表示输出:

。且输入:一个正整数

指数译码非邻接表

))Return(( (3)

2 (2.2)

)/2( (2.1)

following thedo to0 from For (2)

0 (1)

)(

0

)(

(NAF)

011

1

11

0

011

1

20111

NAFtt

iiii

iiii

NAFtt

tt

ttt

dddd

cced

c e ec

ti

c

dddde

ee

eeeeee

13算法

Page 25: 第十三讲 密码执行 ( 下 )

3.1 符号数字表示 ( 续 )

非邻接表指数译码的查表方法。

Page 26: 第十三讲 密码执行 ( 下 )

3.1 符号数字表示 ( 续 )

。密度是位平均表示中的非在的非零项,也就是,它

示中具有最少表示在全部符号数字表的。,对于任意

特位。比的二进制表示长表示的长度至多比

表示。有唯一一个每一个整数表示的属性非邻接表

1/3

0NAF

NAF (4)

00 (3)

1NAF (2)

NAF (1)

. (NAF)

1

e

ddti

e

e

ii

Page 27: 第十三讲 密码执行 ( 下 )

3.2 使用 NAF 表示 的二进制方法

。。则,如果

。则,如果。则,如果

:。。输出:

。和正整数输入:模幂表示的从左向右二进制使用

)Return( (3)

1 (2.3)

1 (2.2)

(2.1)

following thedo 0 down to from For (2)

1 (1)

)(

NAF

1

011

A

gAAd

gAAd

AAAti

t i

A

g

dddde Gg

i

i

e

NAFtt

14算法

Page 28: 第十三讲 密码执行 ( 下 )

4 多模幂 在一些情况下我们需要计算多个模幂的

乘积,它们有不同的指数和底数,例子有 ElGamal 签名的认证。我们这里考虑如何同步计算,而不是分别计算它们,因为实际中我们并不需要这些模幂的中间值。

Page 29: 第十三讲 密码执行 ( 下 )

4.1 Shamir 窍门

。计算 2037 hg

Page 30: 第十三讲 密码执行 ( 下 )

4.1 Shamir 窍门 ( 续 )

。。则,,,如果

。则,如果

。。计算并存储

。输出:

。,和正整数,输入:

窍门

)Return( (4)

0) (0)( (3.2)

(3.1)

:following thedo 0 down to from For (3)

1 )2(

(1)

)

()(

Shamir

201

12011

A

hgAAba

AAAti

ti

A

hg

hg

bb

bbbaaaaaGhg

ii baii

ba

tttt

15 算法

Page 31: 第十三讲 密码执行 ( 下 )

4.1 Shamir 窍门 ( 续 )

。元存储需要一个额外的存储单次。次数为

总的乘法次乘法。因此,次平方和需要计算平均情况下,

hg

t

tt

thg ba

(2)

3/44/7

1)/4(3)1( 1/4)(1

(1) 15算法

.解释

Page 32: 第十三讲 密码执行 ( 下 )

4.2 扩展 Shamir 窍门

。。,则,,如果

。则,如果:

。。,,,,,存储或计算和

。,译码为非邻接表表示和将

。输出:

。,和正整数,输入:窍门扩展

)Return( (5)

0) (0)( (4.2)

(4.1)

following thedo 0 down to from For (4)

1 )3(

)( (2)

)(

)( (1)

)()(

Shamir

111111

011

011

20112011

A

hgAAba

AAAti

ti

A

hghghghghg

ffffb

ddddaba

hg

bbbbbaaaaaGhg

ii fdii

NAFtt

NAFtt

ba

tttt

16算法

Page 33: 第十三讲 密码执行 ( 下 )

5 中国剩余定理加速 RSA

的具体分解。道模因为用户知来改进执行速度,这是理

,可以使用中国剩余定计算

,就是,给定的解密和签名操作,也

qpn

nCM

Cd

(CRT)

) (mod

RSA

Page 34: 第十三讲 密码执行 ( 下 )

5 中国剩余定理加速 RSA( 续 )

。。计算

。计算

。计算

。输出:明文消息。,,

预计算值,和素数,输入:密文消息算法加速

)Return( (4)

] mod )) (mod )[(( (3)

) (mod (2)

) (mod (1)

) (mod )1( mod )1( mod

RSACRT

1212

2

1

12

1

2

1

M

qppqMMMM

qCM

pC M

M

pqqddpd

dqpC

d

d

17算法

Page 35: 第十三讲 密码执行 ( 下 )

5 中国剩余定理加速 RSA( 续 )

幂值,因为是正确的模

和式

qpM

MMMMpM

MMqM

n

qppqMMMM

0

1)( ) (mod

0 ) (mod

] mod )) (mod )[((

1212

22

1212

.理由

Page 36: 第十三讲 密码执行 ( 下 )

5 中国剩余定理加速 RSA( 续 )

4

CRTCRT (2)

) (mod )( --

1)( mod -- 2

1)( mod -- 1

1 # PKCS (1)

倍。的算法大约快的算法比不使用使用为随机选择,如果。的逆元整数,系数

整数,指数整数,指数

:用户的秘密密钥如下值的数据结构中可以保存在公钥密码标准

d

pq

qd

pd

.解释

Page 37: 第十三讲 密码执行 ( 下 )

6 Montgomery 约减方法

数量相等。中的基本。这个数字大约和宇宙比特来存储

比特,我们需要都有和系统不能负担。假定通常的值将变得非常巨大,因为不进行约减,

的约减需要执行。这是在每一步模幂计算中模

子粒

102 2562)(log )(log

256

8026425622

e

e

e

g

geg

eg

g

n

Page 38: 第十三讲 密码执行 ( 下 )

6.1 Montgomery 乘法

) (

) (mod (2)

) (mod )/( ) (mod )/(

2 )/( )/(

) (mod )/((1)

) (mod

)/()/( )(mod

0

) (mod 1)(

1

11

1

1

1

。和也就是可以通过两个乘法计算,则来表示并且如果所有整数以基等于

。或者

。因此,,则和的一个估计。由于是对

是一个整数并且,则。如果为任意整数,满足并且令

,另,,,这里和给定整数

mUmTU

mRTbRb

m

mRTRmUTmRTRmUT

mRRmRmRmUTRU

RmTmRTRmUT

mRT

RmUTRmUTRmT

U RmT T

RmmRmRm

n

.评述

1事实

Page 39: 第十三讲 密码执行 ( 下 )

6.1 Montgomery 乘法 ( 续 )

,,则如果。

,,则。如果而,,

则,,令

mm RT

RmUT RmT

UTm RT

RmUT RmTU

TmRm

mRRm

) mod(

188 )/ (185)(mod

1125 ) mod( 63

)/ (61 )(mod 563

127 63 ) mod(125

) (mod 190 187

1

1

1

13例子

Page 40: 第十三讲 密码执行 ( 下 )

6.1 Montgomery 乘法 ( 续 )

。。,则如果

。。

。输出:

。并且,,,满足

,,,,满足,,输入:整数乘法

)Return( (5)

(4)

/)( (3)

)(mod (2)

(1)

.) mod(

0 )(mod 1 = ) (

0

Montgomery

1

1

A

mAAmA

RmUAA

RmyxU

yxA

mRyx

Rmyx RmmRm

mRmyxyxm

18算法

Page 41: 第十三讲 密码执行 ( 下 )

6.2 Montgomery 模幂

乘法。描述的为。

。,。,,则如果。,,则如果:。,,

。输出:

。,,一个整数,满足,,输入:整数

模幂

Montgomery8)Mont(//

)Return( (4)

)1 Mont( (3)

)~Mont(1 (2.2)

)Mont( (2.1)

following thedo 0 down to fromFor (2)

) (mod )) (modMont(~ (1)

) (mod

0 1) (

2 ) (

Montgomery

2

201

2021

1算法

19算法

A

AA

xAAe

AAAti

ti

mRAmRxx

mx

mxxeeee

eRmmmm

i

e

ttt

lll

Page 42: 第十三讲 密码执行 ( 下 )

6.2 Montgomery 模幂 ( 续 )

值。步的值和第步的后第束。表显示了每次迭代结,这里令

) (mod(3)) (mod(2)

3 (1011) 11 2

mAmA

te

Page 43: 第十三讲 密码执行 ( 下 )

谢谢 !