2 mod R P Q x s x x p mod R P P R y y s x x p Với : 2 mod 3 mod 2 Q P Q P P P y y p x x s x a p y Với P ≠ Q Với P ≡ Q
Phép nhân với hệ số nguyên với điểm P đƣợc định nghĩa là tổng của các phép cộng. Ví dụ : 3P = P + P + P Ví dụ: Xét 2 điểm P = (3, 10) và Q = (9, 7) thuộc E23(1,1). Ta tính đƣợc: Hệ số 7 10 mod 23 1 mod 23 11 9 3 2 s
Suy ra: xR(112 3 9) mod 23 17
yR ( 10 11(3 17)) mod 23 20
Vậy R = P + Q = (17, 20)
Từ 4 luật trên, tƣơng tự nhƣ tập các điểm của đƣờng cong Elliptic trên trƣờng số thực, tập các điểm của đƣờng cong Elliptic trên trƣờng nguyên tố hữu hạn cũng là một nhóm Abel. Để xét độ an toàn của hệ mật mã, ta cần phải xét số phần tử trong nhóm Abel, trong trƣờng hợp này với nhóm Abel là tập các điểm thuộc Ep(a,b), số lƣơng phần tử của nhóm là N đƣợc giới hạn bởi cận trên và cận dƣới [30]:
1 2 1 2
p p N p p
Bằng giới hạn này, ta thấy N có giá trị xấp xỉ bằng số phần tử của Zp (bằng p)
b. Đƣờng cong Elliptic trên trƣờng nhị phân hữu hạn F2 m
Trƣờng nhị phân hữu hạn F2m là trƣờng đƣợc biểu diễn thông qua 1 đa thức bậc (m-1) với các hệ số {0,1}, do vậy trƣờng đó đƣợc gọi là trƣờng nhị phân. Số phần tử của trƣờng F2
m
là 2m phần tử, các phép toán cộng và nhân trong trƣờng F2 m
đều đƣợc thực hiện thông qua phép cộng và nhân đa thức [25]. Có một điều đặc biệt là, do F2
m
là trƣờng nhị phân hữu hạn, do vậy các phép tính trên F2 m
có thể đƣợc thực hiện thông qua phép toán nhị phân, do vậy việc cài đặt F2
m
trên các thiết bị phần cứng là rất hiệu quả.
Đƣờng cong ECC đƣợc biểu diễn trên trƣờng nhị phần hữu hạn F2 m
bằng 1 phƣơng trình bậc 3, với các biến, các hệ số và các phép toán trên F2
m
:
2 3 ax2
y xy x b
Ta ký hiệu E2
m(a,b) là tập các nghiệm (x,y) thỏa mãn phƣơng trình (9) và điểm vô cùng .
Ví dụ: Ta xét trƣờng F24 sử dụng đa thức bất khả quy f(x) = x4 + x +1. Phần tử sinh của F4
(9)
Comment [u20]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 308
Comment [u21]: William Stalling (2005) “Cryptography and Network Security”, Prentice Hall Publisher, pp 120
nên g4 = g + 1. Dựa vào mối quan hệ này ta có thể xây dựng đƣợc bảng các thành phần trong trƣờng F2 4 là: g0 = 0001 g4 = 0011 g8 = 0101 g12 = 1111 g1 = 0010 g5 = 0110 g9 = 1010 g13 = 1101 g2 = 0100 g6 = 1100 g10 = 01111 g14 = 1001 g3 = 1000 g7 = 1011 g11 = 1110 g15 = 0001 Ví dụ, ta có thể tính g5 = g4 x g= (g + 1) x g = g2 + g = 0110. Xét đƣờng cong Elliptic E2 4 (g4,1), tƣơng ứng với a = g4 , b = g0 =1. Có phƣơng trình là : 4 2 3 x2 1 y xy x g Ta nhận thấy điểm (g5
,g3) là 1 điểm nằm trên đƣờng cong E2 4 (g4,1). Thật vậy, thay số vào (CT 10) ta có: 3 2 5 3 5 3 4 5 2 (g ) g g (g ) g (g ) 1 8 15 14 6 1 g g g g 1100 0101 0001 1001 0001 1001 1001 Đƣờng cong E2 4
(g4,1) có tập các điểm đƣợc liệt kê trong bảng 3.4 dƣới đây :
(0, 1) (g5, g3) (g9, g13) (1, g6) (g5, g11) (g10, g) (1, g13) (g6, g8) (g10, g8) (g3, g8) (g6, g14) (g12, 0) (g3, g13) (g9, g10) (g12, g12) Bảng 3.3 : Các giá trị trƣờng F2 4 (10)
Xét tập các điểm thuộc E2
m(a,b), với b ≠ 0. Ta định nghĩa các luật sau:
Điểmlà phần tử đặc biệt, nằm ở vô cực, đƣợc gọi là phần tử trung hòa.
Với P = (xP, yP) thì tồn tại điểm Q = (xQ, yQ) = (xP, xP + yP) là phần tử đối của P, thỏa mãn P + Q =
Cho P = (xP, yP) và Q = (xQ, yQ) là 2 điểm phân biệt. Khi đó điểm tổng R= P + Q = (xR, yR) đƣợc xác định nhƣ sau: 2 R P Q x s s x x a ( ) R P R R P x s x x x x a Với : Q P P Q y y s x x
Nếu P = (xP, yP), điểm R = 2P = (xR, yR) là điểm nhân đôi của điểm P. Đƣợc xác định theo công thức sau:
Hình 3.4 : Các điểm thuộc đƣờng cong E2 4
2 ( 1) P R R x s x x Với P P P y x sx
Với 4 luật nhƣ trên, tập các điểm thuộc E2
m(a,b) là một nhóm Abel.
3.1.2. Hệ mật mã công khai ECC
Nhƣ đã nêu ở các phần trƣớc, cơ sở toán học để xây dựng một hệ mật mã công khai là các bài toán một chiều. Tức các bài toán “dễ giải” theo chiều thuận, nhƣng “rất khó giải” theo chiều ngƣợc lại. Ví dụ, trong hệ mật mã công khai RSA, bài toán một chiều đƣợc sử dụng là bài toán phân tích 1 số nguyên dƣơng rất lớn thành tích của 2 thừa số nguyên tố, hệ mật mã Diffie-Hellman đƣợc xây dựng dựa vào bài toán logarit rời rạc. Tƣơng tự nhƣ hệ mật mã Diffie-Hellman, hệ mật mã đƣờng cong Elliptic (ECC – Elliptics Curve Cryptography) đƣợc xây dựng trên cơ sở bài toán logarit trên đƣờng cong Elliptic.
Xét phƣơng trình trên đƣờng cong Elliptic Q=k.P, trong đó P, Q ∈ E(a,b). Theo nhƣ nội dung đã trình bày trong phần 3.1.1, từ điểm P cho trƣớc và hệ số k. Ta có thể dễ dàng tính ra đƣợc điểm Q dựa vào các thuật toán nhân, trong đó có nhiều thuật toán nhanh, và có thể đƣợc tối ƣu hóa bằng phần cứng. Tuy nhiên để tìm ra k từ điểm Q và điểm P thì là một bài toán “rất khó” nếu hệ số k là một số lớn 224 bit (Ta có thể so sánh độ an toàn của ECC với thuật toán RSA đƣợc nếu trong bảng 4.1).
Ta xét một ví dụ đƣợc đƣa ra bởi Certicom (www.certicom.com) Xét tập các điểm thuộc đƣờng cong E23(9, 17) đƣợc xác định bởi phƣơng trình :
2mod 23 3 9 17 mod 23
y x x
Biết P = (16, 5), Q= (4, 5). Tìm hệ số k thỏa mãn Q= k.P?
Phƣơng pháp đơn giản và tự nhiên nhất để tính hệ số k là ta nhân các hệ số nguyên tăng dần từ 2 với P rồi so sánh với điểm Q, ta có các kết quả sau:
P = (16, 5), 2P = (20, 20), 3P = (14, 14), 4P = (19, 20), 5P = (13, 10), 6P = (7, 3), 7P = (8, 7), 8P = (12, 17), 9P = (4, 5)
Đến đây, ta tính đƣợc 9P = Q = (4,5). Do vậy hệ số k phải tìm là k = 9. Trong thực tế, các ứng dụng ECC sẽ phải sử dụng hệ số k có độ lớn để tránh bị tấn công vét cạn
Hệ mật mã công khai ECC là hệ mật mã đƣợc xây dựng trên cơ sở bài toán lograrit rời rạc trong phép nhân xét trên tập các điểm thuộc đƣờng cong Elliptic. Hệ mật mã công khai ECC cung cấp đầy đủ 4 dịch vụ an ninh: Mã hóa, xác thực, ký số và trao đổi khóa. Trong phần này, ta sẽ xét các thuật toán của các dịch vụ an ninh đó.
3.1.2.1. Các tham số của hệ mật mã hóa ECC
Đã có một số các nghiên cứu mật mã công khai ECC đã đƣợc công bố nhằm tối ƣu hóa việc lựa chọn tham số nhằm nâng cáo tính an toàn và hiệu quả việc sử dụng hệ mật mã ECC. Ta có thể kể tên một số các khuyến nghị sau : “Recommend Elliptic Curves For Federal and Government use” (năm 1999), “Public Key Cryptography for the Financial Services Industry, The Elliptic Curve Digital Signature Algorithm (ECDSA)” ANSI X9.62 (Năm 2005), “SEC2 : Recommended Elliptic Curve Domain Parameters” Certicom reseach (Năm 2010).
Hiện nay, để tấn công hệ mật mã ECC, các nhà nghiên cứu công bố 4 phƣơng pháp chính [9]: Tấn công Pohlig-Hellman, tấn công Polland rho, tấn công theo phƣơng pháp giải tích “index-calculus”, và tấn công đẳng cấu (Isomorphism Attacks). Việc nghiên cứu lựa chọn các tham số của hệ mã hóa ECC nhằm mục đích khắc phục những điểm yếu của thuật toán, để tránh đƣợc những hình thức tấn công kể trên. Do vậy, việc sử dụng và lựa chọn các tham số ECC là một việc rất quan trọng. Trong phần phụ lục, luận văn có giới thiệu một số tham số đƣợc đƣa ra trong khuyến nghị “SEC2 : Recommended Elliptic Curve Domain Parameters”.
a. Tham số hệ mật mã ECC trên trƣờng nguyên tố hữu hạn Fp
Tổ chức tiêu chuẩn mật mã hiệu quả (SECG – Standards for Efficient Cryptography Group) trong bản khuyến nghị “SEC2 : Recommended Elliptic Curve Domain Parameters” (version 2 - 2010), đã định nghĩa các tham số của hệ mật mã ECC trên truyền nguyên tố hữu hạn Fp, bao gồm [6]:
, , , , ,
T p a b G n h
Trong đó :
p: là số nguyên dƣơng xác định trƣờng nguyên tố hữu hạn Fp và
2
log p 192, 224, 256,384,512
a,b : Là 2 hệ số a,b ∈ Fp, xác định đƣờng cong Elliptic E(Fp) trên trƣờng Fp :
Comment [u22]: Darrel Hankerson , Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 154
Comment [u23]: Certicom Research (2010), "SEC2 : Recommended Elliptic Curve Domain Parameters", pp 3
G: Là điểm cơ sở thuộc E(Fp)
n : Là một số nguyên tố và là thứ tự của điểm cơ sở G.
h : Là phần phụ đại số (cofactor) thỏa mãn h = #E(Fp)/n. Với #E(Fp) là số các điểm thuộc đƣờng cong E(Fp).
b. Tham số hệ mật mã ECC trên trƣờng nhị phân hữu hạn F2 m
Tƣơng tự nhƣ phần a, SECG định nghĩa các tham số của hệ mật mã ECC trên trƣờng nhị phân hữu hạn F2
m
. Bao gồm các tham số sau: [7] , ( ), , , , ,
T m f x a b G n h
Trong đó :
m: là số nguyên dƣơng xác định trƣờng nhị phân hữu hạn F2 m
và 163, 233, 239, 283, 409,571
m
f(x) : Là một đa thức bất khả quy, có bậc m và là đa thức cơ sở biểu diễn trƣờng F2m
a,b : Là 2 hệ số a,b ∈ F2m xác định đƣờng cong Elliptic E(F2m) trên trƣờng F2 m : 3 2 2 ax : . b E y x yx
G: Là điểm cơ sở thuộc E(Fp)
n : Là một số nguyên tố và là thứ tự của điểm cơ sở G.
h : Là phần phụ đại số (cofactor) thỏa mãn h = #E(F2 m
)/n. Với #E(F2 m
) là số các điểm thuộc đƣờng cong E(F2
m
).
3.1.2.2. Các kiểu dữ liệu trong hệ mật mã ECC
Để có thể áp dụng các phƣơng pháp mã hóa, giải mã, ký số và xác thực các thông điệp, việc đầu tiên là phải có bƣớc chuyển đổi dữ liệu từ các dạng khác nhau để áp dụng thuật toán. Ví dụ, thông điệp sẽ có dạng tổng quát là các xâu bit. Tuy nhiên các xâu bit này sẽ không thể đƣợc sử dụng trong các thao tác điểm trên đƣờng cong Elliptic, do vậy ta phải có các bƣớc chuyển đổi.
Hệ mật mã công khai ECC sử dụng 5 kiểu dữ liệu có thể chuyển đổi đƣợc cho nhau đó là : Kiểu xâu bit, kiểu số nguyên, kiểu điểm trên đƣờng cong Elliptic, kiểu xâu Octect, và kiểu thành phần trƣờng ( các thành phần trong trƣờng Fp hoặc F2
m
).
Comment [u24]: Certicom Research (2010), "SEC2 : Recommended Elliptic Curve Domain Parameters", pp13
Do phạm vi của luận văn, mặt khác các thuật toán chuyển đổi đã đƣợc nêu chi tiết trong khuyến nghị “SEC1: Elliptic Curve Cryptography ” (version 2 - 2009) nên luận văn xin phép không đƣợc đi chi tiết các thuật toán chuyển đổi. Các quan hệ chuyển đổi các kiểu dữ liệu đƣợc mô tả trong hình 3.5 dƣới đây:
3.1.2.2. Thuật toán sinh khóa
Thuật toán sinh khóa của ECC đơn giản hơn thuật toán của sinh khóa của RSA, đƣợc thực thi theo các bƣớc sau:
Thuật toán 3.2 : Thuật toán sinh khóa ECC
Input : Đƣờng cong Elliptic với tham số T(p,a,b,G,n,h) hoặc T(m,f(x),a,b,G,n,h)
Output : Khóa công khai và khóa bí mật của ECC 1 : Sinh ngẫu nhiên số nguyên dƣơng k với k < n 2 : Tính điểm Q = k . G
3: Khóa bí mật là (k,Q), khóa công khai là Q Kiểu xâu bit
Kiểu xâu octet
Điểm điểm Kiểu trƣờng Kiểu số nguyên