Upload
rhonda-caldwell
View
158
Download
0
Embed Size (px)
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
Citation preview
第十三讲 密码执行 ( 下 )
本讲提要 模幂 ( 续 ) 指数译码 多模幂 中国剩余定理加速 RSA Montgomery 约减方法
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
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算法
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
.效率
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算法
2.2.2 k-ary 方法 ( 续 )
)2(
0
0 0 2
0 0 (1)
少预计算开销。的略微修改,目的是减实际是对
。和则令,如果是奇数;,这里
则定可以写,,如果,对于每一个
7算法8算法
.解释
i
iiiih
i
i
u
heuue
etiii
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算法
。和 3 00101)(101101111 11749 2 ke
2.2.3 窗口方法 ( 续 )
2.3 固定指数模幂算法 在许多情况下,我们需要计算指数为固定
值的模幂。例子有 RSA 加密和解密,以及 ElGamal 解密。
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算法
2.3 固定指数模幂算法 ( 续 )
。,,,,,的一条加法链是的长度为。计算
15126 3 2 1
5 15
543210
15
uuuuuu
eg
2.3 固定指数模幂算法 ( 续 )
法链。法链通常不是最短加样建立的给定指数的加比较容易,但是,这到一条加法链相对来说
找的二进制表示,从表示给定一个指数乘法。
次恰好需要,计算对于任意
,的加法链给定的一条长度为对正整数
e
sgg
see
(2)
1
(1)
10算法
.解释
2.4 固定底数模幂算法
2
-1) + (
0 )( 1
0 }{
0
10
可能的选择数字数量。是所有并且,则的整数满足位的基为
是任意一个例如,如果为某个固定的正整数。
,,这里能够写成适宜的界
,满足任何指数是一个整数集合,,,
bhbbbb
teh
hebeee
tbbb
ii
i
t
i ii
t
.思想
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算法
2.4.1 固定基窗口方法 ( 续 )
。
,,,,。首先计算对于和
,,取定。,这里计算
256
641641
4
404 =
4 4 (31132)862
g
ggggi b
htegi
i
e
2.4.1 固定基窗口方法 ( 续 )
个存储空间。,需要,存储
次乘法。时至多需要算
计。因此,符值为也至少一次的一个操作次乘法,但步执行次乘法。第至多执行
步,因此第的初始值为乘法才执行。由于的情况下不为。若仅有两个操作符全假定
计算
1 0 (2)
2
1
1(2.2)
(2.1)1
12
. (1)
ttig
htg
ht
B
ht
ib
e
11算法
.解释
2.4.2 固定基 Euclidean 方法
。,满足,上的整数对于所有
,区间为一个在。定义,满足上的整数对于所有,区间为一个在
定义。为一组整数,这里,,,令
i
N
iM
t
x
xMiti
tNxxt
i tM
txxx
0
][0
0][0
2}{ 10
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算法
2.4.2 固定基 Euclidean 方法 ( 续 )
。,,预计算。,,则
。,,令。,计算256161
16
210
14) 5 (3
256 16 1 862
ggge
bbbeg e
2.4.2 固定基 Euclidean 方法 ( 续 )
的预计算量。少值。这意味算法需要更更大的可以选择比
数尺寸符合对数关系,由于除余算法与输入参大。常没有,算法需要的计算量通给定的基
对于一个。为步的商第在多数情况下,
h
b
q
11算法12
算法11算法
12算法.评论
(2)
1(3.1) )1(
3 指数译码 另一种减少基本二进制算法中乘法数量的方
法就是将指数 e 的二进制表示用其它更少非零元的表示方法代替。由于二进制表示是唯一的,更少非零元的表示方法需要使用除 0和 1 以外的数字。将指数从一种表示变成另一种表示称为指数译码。
3.1 符号数字表示
示的一个特例。表示仅是符号数字表表示并不唯一。二进制一个整数的符号数字与二进制表示不同,对
为基的符号数字表示。的以数被称为一个对整则,
,,,这里,如果
2
)( 0
1}1 {0 2
011
0
e
ddddti
dde
SDtt
iit
i i
6定义
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算法
3.1 符号数字表示 ( 续 )
非邻接表指数译码的查表方法。
3.1 符号数字表示 ( 续 )
。密度是位平均表示中的非在的非零项,也就是,它
示中具有最少表示在全部符号数字表的。,对于任意
特位。比的二进制表示长表示的长度至多比
表示。有唯一一个每一个整数表示的属性非邻接表
1/3
0NAF
NAF (4)
00 (3)
1NAF (2)
NAF (1)
. (NAF)
1
e
ddti
e
e
ii
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算法
4 多模幂 在一些情况下我们需要计算多个模幂的
乘积,它们有不同的指数和底数,例子有 ElGamal 签名的认证。我们这里考虑如何同步计算,而不是分别计算它们,因为实际中我们并不需要这些模幂的中间值。
4.1 Shamir 窍门
。计算 2037 hg
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 算法
4.1 Shamir 窍门 ( 续 )
。元存储需要一个额外的存储单次。次数为
总的乘法次乘法。因此,次平方和需要计算平均情况下,
hg
t
tt
thg ba
(2)
3/44/7
1)/4(3)1( 1/4)(1
(1) 15算法
.解释
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算法
5 中国剩余定理加速 RSA
的具体分解。道模因为用户知来改进执行速度,这是理
,可以使用中国剩余定计算
,就是,给定的解密和签名操作,也
qpn
nCM
Cd
(CRT)
) (mod
RSA
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算法
5 中国剩余定理加速 RSA( 续 )
。
幂值,因为是正确的模
和式
qpM
MMMMpM
MMqM
n
qppqMMMM
0
1)( ) (mod
0 ) (mod
] mod )) (mod )[((
1212
22
1212
.理由
5 中国剩余定理加速 RSA( 续 )
4
CRTCRT (2)
) (mod )( --
1)( mod -- 2
1)( mod -- 1
1 # PKCS (1)
倍。的算法大约快的算法比不使用使用为随机选择,如果。的逆元整数,系数
整数,指数整数,指数
:用户的秘密密钥如下值的数据结构中可以保存在公钥密码标准
d
pq
qd
pd
.解释
6 Montgomery 约减方法
数量相等。中的基本。这个数字大约和宇宙比特来存储
比特,我们需要都有和系统不能负担。假定通常的值将变得非常巨大,因为不进行约减,
的约减需要执行。这是在每一步模幂计算中模
子粒
102 2562)(log )(log
256
8026425622
e
e
e
g
geg
eg
g
n
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事实
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例子
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算法
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
6.2 Montgomery 模幂 ( 续 )
值。步的值和第步的后第束。表显示了每次迭代结,这里令
) (mod(3)) (mod(2)
3 (1011) 11 2
mAmA
te
谢谢 !