Đ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:
2 R x s s a 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 E2m(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 tố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 tốn một chiều được sử dụng là bài tốn phân tích 1 số ngun 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).
có thể dễ dàng tính ra được điểm Q dựa vào các thuật tốn nhân, trong đó có nhiều thuật tố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 tố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 tố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 tồ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
Comment [u22]: Darrel Hankerson ,
Alfred Menezes, Scott Vanstone (2004), "Guide to Elliptics Curve Cryptography", Springer publisher, pp 154
khắc phục những điểm yếu của thuật tố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 :
2 3
: mod a.x+b mod
E y p x p
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 F2m
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 F2m. Bao gồm các tham số sau: [7]
, ( ), , , , ,
T m f x a b G n h
Trong đó :
Comment [u23]: Certicom Research
(2010), "SEC2 : Recommended Elliptic Curve Domain Parameters", pp 3
Comment [u24]: Certicom Research
(2010), "SEC2 : Recommended Elliptic Curve Domain Parameters", pp13
m: là số nguyên dương xác định trường nhị phân hữu hạn F2m 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 F2m :
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(F2m)/n. Với #E(F2m) là
số các điểm thuộc đường cong E(F2m).
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 tốn. Ví dụ, thơng điệp sẽ có dạng tổng qt 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 F2m).
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 tốn sinh khóa
Thuật tốn sinh khóa của ECC đơn giản hơn thuật tố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 tố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