Đường cong Elliptic trên trường hữu hạn

Một phần của tài liệu Mật mã trên đường cong elliptic (Trang 26)

2.1.5.1 Trường hữu hạn

Các ứng dụng về mật mã của đường cong Elliptic đa số chỉ sử dụng các đường cong trên trường hữu hạn.

Xét là một trường hữu hạn (hữu hạn số phần tử số nguyên dương): = {0, 1, 2 . . . , q − 1}

q là một số nguyên tố hoặc có dạng q = pm với p là một số nguyên tố và

m là một số nguyên dương. Khi này p được gọi là đặc số char(q) = p và m là bậc mở rộng của .

Trong thực tế và đặc biệt trong các thiết bị phần cứng [18], người ta thường sử dụng trường hữu hạn . Khi đó phép cộng trong trường này đơn giản chỉ là phép toán XOR (Exclusive OR). Nhiều tài liệu cho thấy làm việc với hiệu quả hơn 40% so với làm việc với trường . Nhóm thực hiện Đề tài cấp Nhà nước KC01.18 do người viết làm hủ nhiệm đề tài đã cài đặt toàn bộ các phép toán về đường cong Elliptic trên trường cho Chip Spartan 6 của Xilinx cho bài toán xác thực và trao đổi khóa phiên trong thiết bị VPN IPSec.

Trường thường được biểu diễn dưới dạng tổ hợp tuyến tính của các vector gồm m phần tử {α0, α1, . . . , αm−1}, mọi phần tử α ∈ đều có thể được biển diễn dưới dạng:

α = a0α0 + a0α0 + . . . + am−1αm−1, ai ∈ {0, 1}

Có nhiều phương pháp để xây dựng cơ sở của : đa thức cơ sở và cơ sở chuẩn tắc. Các thuật toán để thực hiện các phép toán trên EC có thể tìm thấy trong [ 6 ].

Đa thức cơ sở

Xét đa thức (với ) là một đa thức bất khả quy bậc m trên trường , nghĩa là không thể phân tích f(x) thành các đa thức thừa số khác có bậc nhỏ hơn m. f(x) gọi là đa thức rút gọn. Trường hữu hạn sẽ là tập tất cả các đa thức trên F2 có bậc nhỏ hơn hoặc bằng m.

= {am−1xm−1 + . . . + a2x2 + a1x + a0 : ai ∈ {0, 1}}

Các phần tử (am−1xm−1 + . . . + a2x2 + a1x + a0) thường được biểu diễn dưới dạng chuỗi bit (am−1 . . . a1a0) có độ dài là m

Các phép toán trong trường :

 Phép cộng:

(cm−1 . . . c1c0) = (am−1 . . . a1a0) + (bm−1 . . . b1b0),ci = ai⊕ bi.

Trong đó

Đa thức rút gọn f(x) thường có dạng sau:

 Trinomial basis (TPB):

.

 Pentanomial basis (PPB):

Cơ sở chuẩn tắc

sử dụng cơ sở có dạng với β ∈ , khi đó mỗi phần tử a ∈ đều có dạng và cũng được biểu diễn dưới dạng chuỗi bit (a0a1 . . . am−1) có độ dài là m. Với cơ sở này phép bình phương sẽ thực hiện rất đơn giản chỉ bằng cách quay bit. Các phép toán trong trường :

 Phép cộng:

(c0c1 . . . cm−1) = (a0a1 . . . am−1) + (b0b1 . . . bm−1), ci = (ai + bi) mod 2.

 Phép bình phương:

 Phép nhân:

Xét là phần tử bậc T, định nghĩa chuỗi F(1), F(2), . . . , F(p − 1) ta sẽ có:

2.1.5.2 Tổng số điểm của đường cong Elliptic trên trường hữu hạnFq Fq

E là đường cong Elliptic trên trường Fq, bởi vì cặp (x, y) với x, y ∈ Fq

là hữu hạn do đó nhóm E(Fq) cũng sẽ là nhóm hữu hạn. Các giá trị x, y là các số nguyên, dễ dàng nhận thấy không phải với mọi giá trị x đều tìm được giá trị nguyên y bởi vì không phải bao giờ y2 cũng là một số nguyên dương. Câu hỏi đặt ra là số điểm của của đường cong Elliptic trên trường Fq là bao nhiêu? Xác định số điểm trên đường cong E nhằm xác định không gian khóa của hệ mật.

Sau đây là phần trình bày về việc tính tổng số điểm của đường cong Elliptic trên trường hữu hạn Fq.

M và N là hai ma trận 2 × 2. , với các số nguyên a, b ta có: (*)

Chứng minh. Theo định nghĩa về định thức ta có:

(**)

Khi a = b = 1 áp dụng công thức ở trên ta có:

(***)

Nhân cả 2 vế (***) với ab sau đó trừ vào (**) sẽ được kết quả (*) là điều cần phải chứng minh.

Định nghĩa 2. Điểm n-xoắn (Torsion): Cho đường cong Elliptic E được

định nghĩa trên trường K, cho n là số nguyên dương, tập các điểm Torsion E[n] là tập các điểm trên đường cong có tính chất như sau:

là đóng đại số của K.

Định nghĩa 3. Divisor: Cho đường cong Elliptic E được định nghĩa trên

trường K, với mỗi điểm P ∈ E() định nghĩa một ký hiệu hình thức (formal symbol) [P], khi đó divisor D sẽ là:

f là một hàm trên E mà khác 0, khi đó divisor của f sẽ là:

( )

div( ) ord ( )[ ] Div( )P

P E K

f f P E

 � �

, với và , định nghĩa bậc của f tại P là:

Định nghĩa 4. Cặp Weil: là một ánh xạ từ 2 điểm trong nhóm các điểm

Torsion thành giá trị bậc thứ n của đơn vị:

Bổ đề 5. Với mọi tự đồng cấu bất khả tách α trên E, và với mọi S, S1, S2, T, T1, T2 ∈ E[n] ta có:

en(α(S), α(T )) = en(S, T )deg(α)

en(T, T ) = 1

en(S, T1 + T2) = en(S, T1)en(S, T2) Chứng minh có thể xem trong [ 7 ].

Giả thiết {T1, T2} là cơ sở của E[n], mỗi phần tử trong E[n]đều có thể biểu diễn dưới dạng tổ hợp tuyến tính m1T1 + m2T2. α là một tự đồng cấu trong E[n], n là một số nguyên không chia hết bởi char(K). Tồn tại các số a, b, c, d ∈ Z sao cho:

Do đó mỗi tự đồng cấu α đều có thể được biểu diễn bởi ma trận 2 × 2:

Bổ đề 6. α là một tự đồng cấu trong E[n], n là một số nguyên không

chia hết bởi char(K) khi đó det(αn) ≡ deg(α) mod n. Chứng minh. Đặt ζ = en(T1, T2), theo bổ đề 1.6.5 ta có:

ζdeg(α) = en(α(T1), α(T2)) = en(aT1 + cT2, bT1 + dT2) = en(T1, T1)aben(T1, T2)aden(T2, T1)cben(T2, T2)cd

= ζad−bc = ζdet(αn)

Nếu α, β là 2 tự đồng cấu trên E, và a, b là các số nguyên thì tự đồng cấu aα+bβ được định nghĩa như sau:

(aα + bβ)(P ) = aα(P ) + bβ(P )

Bổ đề 7 deg(aα + bβ) = a2 deg α + b2 deg β + ab(deg(α + β) − deg α

− deg β) Chứng minh.

Biểu diễn các tự đồng cấu α, β bằng các ma trận αn, βn (với một số cơ sở

trong E[n]), theo đó aα + bβ sẽ được biểu diễn bằng aαn + bβn. Áp dụng công thức (1.40) ta có:

det(aαn + bβn) = a2 det(αn) + b2 det(βn) +

ab(det(αn + βn) det(αn)

det(βn))

Theo bổ đề 1.6.6 chúng ta sẽ có:

deg(+ ) = a2 deg(α) + b2 deg(β) +

ab(deg(α + β) deg(α) deg(β))

Định lý 1.6.8. (Hasse) Nếu E là đường cong Elliptic trên trường , và #

E() là tổng số điểm trên đường cong đó thì:

q + 1 − 2≤ #E() ≤ q + 1 + 2

Chứng minh. Trước tiên xét ánh xạ Probenius được định nghĩa như sau:

→ , Có thể viết một cách khác:

Khi thay các giá trị xq, yq vào phương trình (1.1) dễ thấy (x, y) cũng nằm

trên đường cong E. Ánh xạ φq là một tự đồng cấu và có thể biểu diễn bằng hàm đa thức hữu tỷ có bậc là q. Đạo hàm của xq là qxq−1 sẽ bằng 0 bởi vì q = 0 trong trường . Do đạo hàm bằng 0 nên φq là khả tách (separable).

Bởi vì φq là tự đồng cấu trong E do đó φ2 = φq ◦ φq cũng là tự đồng cấu và φn cũng là tự đồng cấu trong E. Phép nhân với −1 cũng là tự đồng cấu do đó tổng φn – 1 là đồng cấu trong E.

φq là khả tách (separable) nhưng φq − 1 sẽ là bất khả tách do đó bậc của

nó sẽ bằng số phần tử của hạch φq − 1 có nghĩa là số điểm trên đường

cong E sẽ là:

#E() = deg(φq − 1)

Với các số nguyên r, s, áp dụng bổ đề 1.6.7 ta có:

deg(rφq − s) = r2 deg(φq) + s2 deg(−1) + rs(deg(φq − 1) − deg(φq) − deg(−1))

Bởi vì deg(−1) = 1 và deg(φq) = q nên:

deg(rφq − s) = r2q + s2 + rs(deg(φq − 1) − q − 1))

Đặt a = −(deg(φq − 1) − q − 1) = q + 1 − #E(), bởi vì vì deg(rφq − s) ≥ 0 suy ra r2q + s2 + rsa ≥ 0 hay với mọi r, s ta có:

Do đó ∆ = a2 4q ≤ 0 hay là cũng có nghĩa là và đó là điều phải chứng minh.

2.2 Mật mã trên đường cong Elliptic 2.2.1 Thiết lập cơ sở

Alice muốn gửi một văn bản, thường được gọi là bản rõ (Plaintext), tới Bob. Cô ấy mã hóa văn bản để thu được bản mã (Ciphertext). Để mã hóa văn bản, Alice sử dụng một khóa mã hóa (Encryption key). Bob sử dụng một khóa giải mã (Decryption key) để giải mã bản mã nhận được.

Có hai cách mã hóa cơ bản. Trong mật mã đối xứng (Symmetric Encryption), khóa mã hóa và khóa giải mã là như nhau. Một dạng khác của mã hóa là mật mã khóa công khai (Public Key Encryption), hoặc mật mã không đối xứng (Asymmetric Encryption).

2.2.1 Bài toán lô ga rít rời rạc (DLP) trên đường cong elliptic

Định nghĩa : Giả sử G là một nhóm cyclic hữu hạn có cấp n. Gọi  là phần tử sinh của G và  là một phần tử cũng thuộc G. Khi đó Lô-ga-rít rời rạc của

theo cơ sở  trên G, được ký hiệu là log, là một số nguyên duy nhất x với 0  x  n - 1 sao cho  = x.

Trên mọi cấu trúc nhóm cyclic nếu biết trước  và x mà cần tính  = x thì đây là một việc dễ và được thực hiện trong thời gian đa thức. Ngược lại biết

,  mà tính x thì đây là một việc nói chung là khó và được thực hiện trong thời gian hàm mũ.

Độ khó của bài toán Lô-ga-rít cũng phụ thuộc vào cấu trúc đại số mà trên đó nó được xác định.

Giả sử P là một điểm có bậc hữu hạn trên đường cong elliptic, khi đó tập <kP: kZ> với phép công điểm là nhóm cyclic với P là phần tử sinh. Người ta chứng minh được rằng, nếu số điểm trên đường cong elliptic là số nguyên tố N thì mọi điểm P trên nó đều là phần tử sinh của nó, nghĩa là P có bậc N.

Bài toán lô-ga-rít rời rạc trên đường cong Elliptic (ECDLP)

Cho trước một đường cong Elliptic E xác định trên trường hữu hạn GF(q). Giả sử P là một điểm có bậc n và Q là một điểm của E. Hãy xác định số nguyên k, 0  k  n - 1 sao cho Q = kP nếu số nguyên k như vậy tồn tại.

Còn hai bài toán liên quan nữa là bài toán Diffie-Hellman Elliptic ( ECDHP) và bài toán quyết định Diffie-Hellman Elliptic (ECDDHP).

Bài toán ECDHP:

Cho trước các điểm P, aP và bP của E trên GF(q). Hãy tính abP.

Rõ ràng bài toán này có thể giải được nếu bài toán ECDLP là giải được.

Bài toán ECDDHP:

Cho trước P, aP và bP của E trên GF(q) và cho trước điểm Q  E. Hãy xác định xem Q = abP hay không?

M1:= Bài toán lô-ga-rít rời rạc trên đường cong Elliptic ( ECDLP) trên trường hữu hạn GF(q) được sử dụng để xây dựng các thuật toán mật mã có độ an toàn cao nhất hiện nay vì người ta chưa tìm được các thuật toán có thời gian tiểu hàm mũ tấn công được bài toán này.

2.2.2 Trao đổi khóa

Trong các mục còn lại, chuyên đề sẽ đề cập đến một số thuật toán ứng dụng trong trao đổi khóa, mã hóa và ký số cơ bản. Chuẩn do công ty Certicom xây dựng [1] mô tả chi tiết việc triển khai ứng dụng ECC. Tác giả D. Hankerson [2] phân tích việc triển khai ECC bằng phần mềm, trong khi đó

tác giả L. Cao [3] phân tích thực hiện các giao thức cơ bản của ECC bằng phần cứng.

2.2.2.1 Trao đổi khóa Diffie-Hellman ECDH

Năm 1998, Laurie và cộng sự đề xuất giao thức trao đổi khóa dựa trên ECC [ 4 ]. Sau đó giao thức này đã được đưa vào các tiêu chuẩn ANSI X9.42, ANSI X9.63 và IEEE P1363.

Hai bên A và B cần tạo khóa phiên bí mật trao đổi trong một kênh truyền công khai, hai bên cùng thỏa thuận điểm cơ sở P trên E. Bên A tạo khóa bí mật dA và gửi giá trị dAP cho bên B, ngược lại bên B tạo khóa bí mật dB nhân với P sau đó gửi lại cho A. Khi đó khóa phiên của bên A sẽ là KA = dAdBP, và của bên B sẽ là KB = dBdAP. Dễ dàng nhận thấy KA = KB, khóa này chỉ riêng hai bên A và B có thể tính được. Xem sơ đồ dưới đây:

Bên A Bên B

dA dAP dAP

dBP dBP dB

KA = dAdBP KB = dBdAP

Đánh giá bảo mật: Để tìm được khóa chia sẻ KA hoặc KB, Hacker buộc phải tìm được cả 2 khóa bí mật dA, dB, trong khi chỉ có thể bắt được thông tin trên đường truyền là dAP và dBP, khi biết P, Hacker buộc phải giải bài toán Logarithm rời rạc dA = logP(dAP) và dB = logP(dBP) và đây là bài toán khó không giải được trong thời gian đa thức.

2.2.2.2 Tạo khóa bí mật chia sẻ ECMQV

Tên đầy đủ của giao thức là Elliptic Curve Menezes-Qu-Vanstone. Thuật toán đã được đưa vào trong các chuẩn ANSI X9.63, IEEE 1363- 2000, và ISO/IEC 15946-3. Theo các tiêu chuẩn này điểm cơ sở được ký hiệu là G thay vì là P như thường gặp. Lược đồ này thường được sử dụng khi các bên A và B có cặp khóa công khai và bí mật cố định, tương ứng là (a, aG) và (c, cG).

Bên A sinh cặp số ngẫu nhiên (b,bG) và bên B tương ứng sinh cặp số ngẫu (d,dG), và trao đổi 2 cặp nay cho nhau giá trị bG và dG. Kí hiệu hàm x:E⏊N, lấy giá trị x của một điểm trên đường cong E.

INPUT: Các tham số của hệ mật (K, E, q, h, G), các số a, b, aG, bG, cG, dG.

OUTPUT: Khóa bí mật chia sẻ Q (chia sẻ với với đối tượng có khóa công khai cG). 1: n ← \log2(#k) 1/2. 2: u← (x(bG)(mod 2n) + 2n. 3: s ← b + ua((mod q). 4: v← (x(dG)(mod 2n) + 2n. 5: Q ← s(dG + v(cG)). 6: if Q = ∞ then

7: Quay lại bưóc 1. 8: end if

9: Trả về khóa Q.

Bên B có thể tính ra cùng số Q bằng cách thay (a, b, c, d) trong thuật toán trên bằng (c, d, a, b). Bên A sẽ có các giá trị uA, vA, sA và bên B sẽ có uB, vB , sB. Dễ dàng nhận thấy [ 5 ]:

uA =vB

uB =vA

QA = sA(dG + vA(cG)) = sA(d + vAc)G = sA(d + uBc)G = sAsBG QB = sB(bG + vB(aG)) = sB(b + vBa)G = sB(b + uAa)G = sBsAG QA = QB =Q

Đánh giá bảo mật: Để hack được khóa chia sẻ, Hacker cần phải tính

được các giá trị a, b, c, d, muốn vậy Hacker phải giải các bài toán Logarithm rời rạc a = logG(aG), b = logG(bG), c = logG(cG), d = logG(dG). Đây là các bài toán khó không thể giải được trong thời gian đa thức.

2.2.3 Mã hóa - Giải mã

Mô hình mã hóa dữ liệu sử dụng đường cong elliptic (Elliptic Curve Encryption Scheme - ECES) bao gồm 2 thao tác: mã hóa và giải mã.

Trước khi thực hiện việc mã hóa dữ liệu với Elliptic Curve, người gởi và người nhận cần phải sở hữu một cặp khóa công khai – khóa riêng. Các giá trị sau được quy ước chung giữa người gởi và người nhận, gọi là các tham số chung của hệ thống mã hóa:

• Đường cong elliptic curve E.

• Điểm P, P ∈ E. Điểm P có bậc n (n × P = ∞) Quá trình tạo khóa được thực hiện như sau:

• Chọn một số nguyên bất kỳ d, d ∈ [2, n − 2]. Đây chính là khóa riêng. • Tính giá trị của điểm Q = d × P ∈ E. Đây chính là khóa công khai.

2.2.3.1 Mã hóa Massey-Omura

Massey-Omura là hai tác giả đề xuất lược đồ mã hóa được mô tả trong Patent vào năm 1986. Lược đồ mã hóa này ít được sử dụng trong thực tế nhưng nó lại có ý nghĩa về mặt lịch sử.

Bên A Bên B

Biểu diễn thông điệp như M ∈ E (�II) Chọn mA | gcd(mA, N) = 1 M1 = mAM M1 M2 M2 = mBM1 Chọn mB | gcd(mB, N) = 1 Tính mA-1 ∈�N M3 = mA-1 M2 M3 M = mB-1 M3 Dễ dàng nhận thấy: mB-1 mA-1mB mAM = M

Đánh giá bảo mật: Muốn phá khóa trong lược đồ này, Hacker phải tìm

được giá trị mA và mB để tìm các giá trị này Hacker lần lượt phải giải hai bài toán Logarithm rời rạc mA = logMM1 và mB = log M1M2, và đây là hai bài toán chưa giải được trong thời gian đa thức.

2.2.3.2 Mã hóa ElGamal

Trên cơ sở hệ mật ElGamal, lược đồ mã hóa được phát triển như sau:

Bên A Bên B

Thông điệp M ∈ E (�II) Chọn cặp khóa (xB, YB) | YB = xBP Chọn k, tính M1 = kP Tính M2 = M + kYB M1, M2 M1, M2 M = M2 - xBM1

Chứng minh tính đúng đắn của lược đồ mã hóa:

M = M2 - xBM1 = M + kYB - xBM1 = M + k(xBP) - xB(kP) = M

Đánh giá bảo mật: Để giải mã được văn bản M, Hacker buộc phải tìm

được k và xB, do đó Hacker cần phải giải 2 bài toán Logarithm rời rạc k = logPM1 và xB = logPYB, và đây là hai bài toán khó.

2.2.3.3 Mã hóa ECIES

ECIES (The Elliptic Curve Integrated Encryption System) do Bellare và Rogaway đề xuất và là một biến thể của mã hóa dùng hệ mật ElGamal,

sau đó thuật toán này được đưa vào chuẩn ANSI X9.63 và ISO/IEC 15946-3, IEEE P1363a.

Tham số D = (q, FR, S, a, b, P, n, h) được chọn tương tự như với ECDSA. Ở đây cần lựa chọn thêm các hàm mã hóa/giải mã đối xứng ký

Một phần của tài liệu Mật mã trên đường cong elliptic (Trang 26)

Tải bản đầy đủ (DOCX)

(49 trang)
w