• 沒有找到結果。

橢圓曲線密碼系統是一種公開金鑰系統,利用基礎於有限場 (finite field) 的橢圓 曲 線 , 其 通 用 格 式 為y2 +a xy1 +a y3 =x3 +a x2 2 +a x4 +a6 , 也 稱 為 通 用 Weierstrass 方程式 ﹙generalized Weierstrass equation﹚ ,滿足曲線方程的所有點 及一個無窮遠點 (point at infinity) 所成的集合,形成一個加法群 (additive group) 。橢圓曲線上的點能夠進行兩點間的加法,以幾合的角度來看,我們想 算出通過這兩點的直線,並與橢圓曲線相交於第三點,再將此點對 x 鏡射,即可 得到結果。顯示各種可能的加法,P+Q=R,若 P 不等於 Q,,P=Q 及 P=-Q 三種 情形,若橢圓曲線上的三點共線,則三點相加的和即為無窮遠點。

P

Q

R

-R=R P=Q

R=2P

-R P=(x,y)

-P=(x,-y)

1:橢圓曲線加法運算

假設 p> 是一個質數,基礎於大小為 p 的有限體之橢圓曲線可以記為GF p3 ( ) , 其方程式寫做y2 =x3 +ax + ,其中a b GF pb , ∈ ( )且 a4 3 +27b2 ≠ 0 (mod ) ,p 則存在一群 x y( , ) 的有序對,其 x ,y 皆屬於GF p( ) 且滿足曲線方程式,加上定義 的無窮遠點,這些點形成可交換群(abelian group)。假設欲相加在曲線四的兩點:

p p

P =( , )x yQ =( ,x yQ Q),首先我們先計算通過P 、Q 兩點直線的斜率λ,則

P Q P Q

P +Q =(x + ,y + )為:

P Q p Q

橢圓曲線密碼系統基礎於一些難題:假設G 是一個橢圓曲線加法群,是由 ( )q

PE F 產生出來並且P 的 order 為q ,Q 為曲線上除了P 以外的點。

橢圓曲線離對數問題 (ECDLP) :

鐺定P 、Q ∈ ,求得一個整數G a ∈ Ζq*滿足Q=aP

計算 Diffie-Hellman 問題 (CDHP) :

給定P ,aP ,bPGa b ∈ Ζ, q*,求得abP

決定 Diffie-Hellman 問題 (DDHP) :

給定P ,aP ,bP ,cPG,a b c ∈ Ζ, , *q, 決定是否c =ab

2.1.1 Divisor 理論[27][28]

假設f 是一個非零的有理函數﹙rational function﹚,而且點PE,若f P( )= 則0 說f 在P 點有個 zero;若 f P( ) = ∞ 則說 f 在P 點有個 pole,而 divisor 就是用來 了解有理函數的zeros 和 poles,同時也能提供在橢圓曲線上的有理函數,其上發 生zero 或是 pole 的點和這些點的次數﹙order﹚,divisor D 可以定義為橢圓曲線E 上點的formal sum: p

p E

D n P( )

= ,其中n 皮表點P 的 zero 或 pole 的特性與其p

對應的次數。若np >0則代表點P 為 zero,若np <0,則代表點P 為 pole。例 如:若P ,Q ,RED1 =1( )P +2( ) 5( )QR 代表divisor 在P ,Q 有 zero,且在 Rpole,P ,Q ,R的次數分別為1, 2 , 5 。 D2 =7( )P + −2( 2 ) 2( )PO 則是代表 在P ,−2Pzero,且在O 有 pole,P ,−2P,O 的次數分別為7,2 ,2 。要注意的 是,括號是用來分開次數與特定點,例如2( ) 指的是在點P P 有個 zero 且次數為 2,而 P(2 ) 指的是在點2 有個 zero 且次數為1 P

E 上的一群divisors組成可交換群,記為Div E( ) ,並有下列的加法特性:若

一個principal divisor p

p E

p

p E

P n P E

=使得D ( ) ( )P O 。換句話說,D 永遠可以寫成 canonical 形式:D =( ) ( )PO +div f( ),其中f 為有理函式。

最後要介紹的是如何相加兩個canonical 形式的 divisor,使得結果任為 canonical 形式。這個過程提供了一個在給定divisorD 的悄況下,找尋有理函數 f 的方法,

使 得 div f( ) =D 。 假 設 D1 , D2Div E( ) , 且 D1 =( ) ( )P1O +div f( )1D2 =( ) ( )P2O +div f( )2P1 +P2 = ,假設P3 hP P1, 2( , ) =x y ay+bx + 為通過Pc 1P2 的 直 線 , h x yP3( , ) = +x d 為 垂 直 通 過 P3 的 直 線 。 接 著 我 們 有

div h( P P1, 2)=( )P1 +( )P2 + −( P3)−3( )O ,因為P1,P2, P− 在直線3 hP P1,2( , )上,所以x y 為 zeros ,而div h( P3)=( )P3 + −( P3) 2( )− O , 因 為P3 和− 在直線P3 hP3 。 所 以 divisorD1,D2的加法寫做:

P P P

P P P

D D P P O div f f

P O div f f div h div h P O div f f h h

1 2 3

1 2 3

1 2 1 2 1 2

3 1 2 ,

3 1 2 ,

( ) ( ) 2( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( / )

+ = + − +

= − + + −

= − +

上式將用於Weil pairing 的計算。

2:橢圓曲線的加法律

2.1.2 Weil Pairing 和 Miller 演算法

Weil 對為一線性映射函數,由一個群對應到另一群,而定義域 (G ) 通常為定義1 在大質數上的加法群,群上的點都符合橢圓曲線方程式,我們假設其生成元素 (generator) 為P ,而對應域 (G ) 通常為定義在大質數上的乘法群。我們假設在2G 和1 G 的離散對數問題是困難的。 2

給 定 一 個 基 礎 於 有 限 體K 的 橢 圓 曲 線 E , 假 設 m 和 k 的 characteristic char K( ) [29]互質。例如:char GF p( ( )) = 、p char GF( (2 ))n = 。Weil pairing 為2 一個函數對應關係:

e E m: [ ]×E m[ ]→Um

其中E m[ ]={ |P mP =O P, ∈E},稱為 m-torsion 群,U 是在K 中1的m 次方m 根,而K 為K 的 algebraic closure[29]。Weil pairing e P Q( , ) 的計算定義如下:給 定兩個 m-torsion 的點 P , QE m[ ],存在 divisorD ,P DQDiv E0( ),使得

DP ∼( ) ( )PO , DQ ∼( ) ( )QO , 任 意 選 擇 兩 點 T 和 U , 並 指 定 DP =(P +T) ( )− TDQ ∼( ) ( )QO 。因為mP =mQ = ,概據定理,O mD 及P mD 為 principal divisor , 且 存 在 有 理 函 數Q f 和P f , 其 中Q div f( ) =P mDP

Q Q

div f( ) =mD , 假 設 D 和P D 有 完 全 不 一 樣 的 support , 也 就 是 說Q

P Q

supp D( )∩supp D( )=φ,則 P Q

Q P

e P Q f D

f D ( ) ( , )

( )

= 。■

第一個計算e P Q( , ) 的演算法為 Miller 演算法[30],我們將步驟說明如下:

輸入:P ,QE m[ ] 輸出:e P Q( , )

步 驟 一 : 任 意 選 擇 兩 點T 和 U , 滿 足 P+T T Q, , +U U, 皆 不 同 , 並 指 定

DP =(P +T) ( )− TDQ ∼( ) ( )QO

步驟二:計算f QP( +U f U f P), ( ), (P Q +T f T), ( )Q ,其中f ,P f 滿足Q div f( ) =P mDP

Q Q

div f( ) =mD

步驟三:計算 P Q P Q

Q P Q P

f D f Q U f T e P Q

f D f P T f U ( ) ( ) ( ) ( , )

( ) ( ) ( )

= = +

+ ■

我們列舉Weil 雙線性映射函數e G: 1×G1G2,滿足下列特性:

一、 雙線性 (Bilinearity) :∀P Q R G, , ∈ 1, (e P+R Q, )=e P Q e R Q( , ) ( , )且 ( , ) ( , ) ( , )

e P+Q R =e P R e Q R

二、 不退化性 (Non-degeneracy) : ∃P Q, ∈G1, ( , )e P Q ≠ 1

三、 可計算性 (Computability) :∀P Q, ∈G1,計算 ( , )e P Q ab是多項式時間 (Polynomial Time) 可完成。

以下說明雙線性密碼系統所基硬的難題:

雙線性 Diffie-Hellman 問題 (BDHP) :

給定 P aP bP cP, , , , a b c ∈ Ζ, , *p, 計算出dG2,使得d =e P P( , )abcG2