当前位置:文档之家› 椭圆曲线密码体制理论与安全性分析

椭圆曲线密码体制理论与安全性分析


λ u = d (mod n) ,代入(5)式, 得到 d Q = λ v P ,必存在一 k ,满足 λ v = d k (mod n) ,
进而得到 Q = k
P+
j
⎛n⎞ ⎜⎝ l ⎟⎠
P ,其中 (0 ≤
j
≤d
−1) ,代入每个可能的
j 值,直到该等式成
立,即求得 l 。
( ) Pollard ρ算法是时问复杂度为 O

阶为大素数或含大素数因子的椭圆曲线为安全椭圆曲线。一般来说有4种 寻找安全椭圆曲 线的方法:
-4-

F 1)有限域 上随机生成一椭圆曲线,直接计算其阶,判断阶是否为大素数或含大素数 q
因子,若是即确定,否则继续选取曲线,直至符合条件。
2)取具有一定特殊性椭圆曲线的系数,计算该椭圆曲线的阶,对该阶进行判断,直至找 到所需要的安全椭圆曲线。
3.1.3 Pollard ρ算法⑤
( F ) S S S Step1:将 E
划分为大致相等的3个集合: , , ;
q
123
r r Step2:定义一个序列 , =P,对于 i ≥ 0
i
0
⎧ + Q,
r⎪⎪ i
r 2r i+1 = ⎨
,
i
⎪⎪⎩r i + P,
如果r i ∈S1 如果r i ∈S2 如果r i ∈S3
q
q
q
q
是曲线E上阶为n的点,设n是不同于p的素数。曲线E的n挠点(即n倍点为无穷远点的点)的集
e F 合记为E[n]={P ∈ E | nP = O} ,Weil对是一个函数 : E [n]* E [n] → ,且具有下面
n
q
性质:
-3-

e (1)恒等性,对所有P∈E[n], ( P, P) =1; n
-1-

A 这时相应的椭圆曲线E即是方程(3)在仿射平面
2
⎜⎛

K
⎟⎞
的所有点及一个特殊点——无穷远
⎝⎠
点O的集合。即
K K y a a x a x a a — —
2
E={(x,y) ∈ * | +
xy +
3
y= +
2
+
x + } Υ {O} (4)
1
3
的ECDLP问题 。
( ) ( ) ( ) F F F F 设 为q元有限域,已知 E
=n,P为 E
的生成元,Q∈ E
,求 l ,
q
q
q
q
使得Q= l P (0 ≤ l ≤ n −1) 。
3.1.1 穷搜法④ 这是一种最直观的方法,就是简单地计算P的连续倍数:P,2P,3P,4P直到得到Q为止。这
种方法的最坏情况是用O(n)次比较,需要存储空间O(n)个椭圆点,这里n为P的阶。当n较大 时,上述操作不可行。
2 F q 3)如果q= m ,其中m能被一个比较小的整数d整除,首先在有限域上
q( 1
=2d)选
1
E F 择一椭圆曲线 ' 并计算其阶,根据此值,利用Well定理⑩计算该曲线在其扩域 上的阶, q
E F 若此阶符合安全标准,再找曲线 ' 在域 上的嵌入E,则E即为所需的安全椭圆曲线。 q 4)首先给出具有安全条件的曲线阶,然后构造一具有此阶的椭圆曲线。 目前国内外比较流行的计算椭圆曲线阶的算法有complex multiplication算法、SEA算法、
3.1.2 大步小步算法②
Step1:令m= ⎢⎣ n ⎥⎦ ,构造由记录 ( J , JP) 构成的表,其中 (0 ≤ J ≤ m) 。并用第二项 JP
对表进行排序
Step2:计算 −mP ,并令Y=Q Step3:For I = 0 to m − 1 do
-2-

根据上面Weil对的性质,可以得到下面归约算法: 输入E上阶为n的点P,另一个点Q:
输出 一个整数 l , (0 ≤ l ≤ n −1) ,使得Q= l P。
( F ) (1)确定k,使得E[n]= E k ; q
e (2)找R∈E[n],使得α = ( P, R) 是n阶元素; n
e (3)计算 β = (Q, R) ; n
F (4)计算 β 关于α 在 k 中的离散对数 l ; q
(5)输出 l 。
MOV证明了当E是超奇异椭圆曲线的时候,扩域次数k≤6。所谓超奇异椭圆曲线,就是
F ( F ) 的特征标是p整除q+1- # E
的曲线。由此可以说明这类椭圆曲线是有亚指数时间
q
q
攻击的。
3.2.2 FR攻击
Frey、Muller和Ruck利用Tate对,类似于MOV攻击给出了椭圆曲线离散对数的一个攻击
2
⎜⎛ ⎝

K
⎟⎞ ⎠
,F在P点的3个偏导数
∂F ∂X
,∂F ∂Y
,∂F ∂Z
必不全为0,则称Weierstrass方程(1)是非奇异的。
P 设域K上的Weierstrass方程(1)是非奇异的,该方程在
2
⎜⎛

K
⎟⎞
上的所有解组成的集合E:
⎝⎠
P E={(X:Y:Z}∈
2
⎜⎛

K
⎟⎞
|
F
(
X
,
Y
,
2
4
6
为明确用E/K表示K上的椭圆曲线E,E/K中两个仿射坐标均属于K的点及无穷远点O的点
称为E/K的K-有理点。E/K的所有有理点组成的集合记为 E(K )。
在椭圆曲线E/K中,按“弦切法”定义加法运算“+”使<E,+>成为Abel群,< E(K ),+>构成
其子群,称之为E/K的有理点子群。所谓椭圆曲线密码体制,即是建立在Abel群 E(K )上的
πn 2
的概率算法。Oorschot和Wiener将Pollard ρ算法
( ) ⑥
并行化 ,使得该算法在r个处理器并行执行时,时间复杂度下降为 O
π n 2r 。Pollard ρ
算法是目前求解一般ECDLP的最有效算法,但他仍然是指数级时问的复杂度。
3.2 对特殊曲线的离散对数攻击方法(攻击现状)
r a b 这样序列中的每个元素都形如 = Q + P
i
i
i
r r a b a b Step 3:计算上述序列,直至找到一个 i 使得 = ,令 Q + P = Q + P ,
i
2i
i
i
2i
2i
a a b b 令 u = - , v = - ,从而得到 u Q = v P
i
2i
2i i
(5)
Step4:利用扩展欧几里得算法计算 d =gcd (u, n) = λ u + µ n ,从而得到
P e ( P ) P e ( P P ) (4)非退化性,如果 ∈E[n],则
, 0 =l;如果对所有 ∈E[n],
, =l,
1
n1
2
n 12
P 则 =O; 1
(F ) e (P P ) F P P (5)如果E[n] ⊆ E
k ,则
q
n
,
1

2
k ,对所有的
q
,
1
∈E[n];
2
e (6)存在Q∈E[n],使得 ( P,Q) 是一个n次单位根。 n
{①检查Y是否表中元素;②若Y= JP ,返回 (l = Im+ J ) ;③令Y = Y − mP ;}
( ) ( ) 该算法需要存储 O n 个椭圆点,造表需要进行 O n 次椭圆点的加法,排序需要 ( ( ) ( ) 进行 O n ㏑ n) 次比较,通过该表步骤3需要进行 O n 次椭圆点的加法和 O n 次表 ( ) 的查找。总体的时问复杂度为 O n ,是指数级的。当n足够大时,该算法失效。
Satoh算法。
5. 结束语
椭圆曲线加密算法是一种安全性高、计算量小、存储消耗小、带宽要求低的非对称加密 算法,适合当今电子商务需要快速反应的发展潮流,在快速加解密、密钥交换、身份认证、 数字签名、移动通信、智能卡的安全保密等领域,具有广阔的市场前景。
参考文献
[1] 杨超,高海燕.椭圆曲线密码体制理论与其安全性研究.电脑知道与技术 [2] 彭庆军,李凤高.椭圆曲线密码体制的安全性探讨.湖南理工学院学报,2005.6 [3] Darrel Hankerson, Alfred Menezes 著,张焕国等译.椭圆曲线密码学导论.电子工业出版社,2005.8 [4] 刘培,藤玲莹,佘堃,周明天.椭圆曲线密码体制的安全性分析.计算机工程与设计 16 期 27 卷,2006.8 [5 Pollard J M. Monte Carlo methods for index computation(mod p)[J].Mathematics of
制。
3. 椭圆曲线密码体制的安全性
椭圆曲线密码体制的安全性取决于椭圆曲线离散对数问题的难解性,即求解该ECDLP 的最有效算法的时问复杂度,对ECDLP的攻击可分为两类:对所有曲线的离散对数的攻击 和对特殊曲线的离散对数的攻击。
3.1 对所有曲线的离散的对数攻击方法
一般椭圆曲线上ECDLP的求解算法不依赖于曲线的参数选取,适应于各种椭圆曲线上
( ) ( ) P P e P P e P P (2)交错性,对所有 , ∈E[n],
,=
, -1;
1
2
n
12
n
21
P P P (3)双线性,对所有 , , ∈E[n],
相关主题