270 Journal of Cryptologic Research 密码学报 Vol.1, No.3, Jun. 2014
本文的结构组织如下: 第 2 节对双线性对算法和故障攻击进行了简要介绍. 针对不同构造的双线性对
算法, 本文在第 3 节分别给出了分支故障攻击的详细方案. 第 4 节讨论了故障注入的方法, 并给出了抵抗
故障攻击的多种保护策略. 最后, 第 5 节对全文作了总结. 本文附录部分还给出了所提出攻击的具体例子.
2 双线性对算法和故障攻击
2.1 双线性对算法简介
双线性对是一个映射
[19]
:
12 3
ˆ
:eG G G
(1)
其中,
1
G 和
2
G 是加法群,
3
G 是乘法群.
它满足以下条件:
(1) 双线性: 对于任意
12
,, ,
ST G G , 有
ˆˆˆ
,,,eR ST eRTeST
ˆˆˆ
,,,eRS T eRS eRT
(2)
非退化性: 对任意的
12
,PGG ,
ˆ
,1ePP
.
(3)
ˆ
e
可以被高效计算.
双线性对密码算法按其所在数学结构分类, 可以分为基于素数域普通曲线的双线性对与基于二、
三元域超奇异曲线的双线性对. 近年来, 基于二、三元域的双线性对密码被发现存在安全隐患, 而素数
域上定义的双线性对拥有更好的应用前景. 在不失通用性的前提下, 本文主要以素域中基于
Barreto-Naehrig(BN)曲线
[20]
、采用 Jacobian 坐标的 Tate 双线性对算法为例进行安全性分析. 下面对这种双
线性对进行简要介绍.
Tate
双线性对
[21]
的定义如下:
1
,
p
GEF
2
,
k
p
GEF
*
3
k
GE . 让
1
,PG
2
QG
, 则计算 P, Q 的
Tate 双线性对可以用公式(2)表示, 其中输入点 P、Q 均可作为密钥点.
1
,
ˆ
,
k
r
rP
ePQ f Q
(2)
其中,
F 是特征值为 p 的素数域,
EF 是定义在
F 上的椭圆曲线. n 是
EF 的阶, r 是整除 n 的最大
素数, k 是符合 1
k
rp 的最小整数, k 被称作嵌入度, 通常作为双线性对计算的安全乘数. 让
aP表示一个
标量
aZ 与一个点 PE
相乘, E 表示无穷远点. 则 Miller 函数
,rP
f
是曲线 E 上的有理函数, 其除
子为
:
,
div 1
rP
frPrPr
(3)
Tate
双线性对算法的具体流程如算法 1 所示. 第 3 步至第 10 步之间是 Miller 循环, 第 11 步是最终模
幂运算. 函数
T
Q 表示椭圆曲线 E 在点 T 处的切线方程, 函数
,PT
Q 表示椭圆曲线 E 上过点 P 和 T 的
直线方程.
算法 1: Tate 双线性对算法
[22]
Input:
0
,,2,0,1
k
n
i
pii
i
p
PEF rQEF rr r r
其中
Output:
1
,
k
r
rP
fQ