Các lý thuyết tốn học nền tảng của Elliptic Curve được các nhà khoa học áp dụng khá hiệu quả vào lĩnh vực mã hĩa, bảo mật (Elliptic Curve Cryptography - ECC). Elliptic Curve được sử dụng để mã hĩa dữ liệu, trao đổi khĩa, và ký nhận điện tử .
3.3.2.1. Mã hĩa dữ liệu với Elliptic Curve
Mơ hình mã hĩa dữ liệu với Elliptic Curve (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 = O).
KHOA CNTT –
ĐH KHTN
v 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]. Số nguyên này chính là khĩa riêng
· Tính giá trị của điểm Q = d´P. QỴ E. Q chính là khĩa cơng khai.
3.3.2.1.1. Thao tác mã hĩa
Thao tác mã hĩa sẽ mã hĩa một thơng điệp bằng khĩa cơng khai của người nhận và các tham sốđường cong đã được quy ước thống nhất chung giữa người gởi (B) và người nhận (A).
v Trình tự mã hĩa được thực hiện như sau:
1. B sử dụng khĩa cơng khai của A (QA). 2. B chọn một số nguyên bất kỳkỴ [2, n-2]. 3. B tính giá trị của điểm (x1, y1) = k´P.
4. B tính giá trị của điểm (x2, y2) = k´QA. x2 là giá trị bí mật sẽđược sử dụng để
tạo khĩa mã hĩa thơng điệp.
5. B tạo mặt nạ (mask) Y từ giá trị bí mật x2. Giá trị của Y được tạo thành từ
một hàm mask generation. Tùy theo việc cài đặt hàm mask generation mà Y sẽ cĩ giá trị khác nhau. Y chính là khĩa quy ước để mã hĩa thơng điệp.
6. B tính giá trị C = Y Å M. C chính là thơng điệp đã được mã hĩa. 7. B gởi cho A thơng điệp đã mã hĩa C cùng với giá trị (x1, y1).
v Lưu ý:
· Giá trị k và (x1, y1) được tạo ra khơng phải khĩa riêng và khĩa cơng khai để
giao dịch của B. Đây là cặp khĩa cơng khai – khĩa riêng được phát sinh nhất thời (one-time key pair) nhằm mã hĩa thơng điệp. Mỗi một thơng điệp mã hĩa nên sử dụng một cặp khĩa cơng khai – khĩa riêng được phát sinh ngẫu nhiên.
KHOA CNTT –
ĐH KHTN
· Việc mã hĩa dữ liệu của ECES được thực hiện bằng tốn tử eXclusive – OR khĩa và thơng điệp. Điều này sẽ làm giảm độ bảo mật của thuật tốn mã hĩa. Trên thực tế các hệ thống mã hĩa bằng Elliptic curve thay bước thực hiện XOR thơng điệp bằng cách kết hợp với một thuật tốn mã hĩa quy ước hiệu quả hơn (ví dụ ECAES: kết hợp ECES với AES).[22]
3.3.2.1.2. Thao tác giải mã
Bằng việc sử dụng các tham số quy ước kết hợp với khĩa bí mật của người nhận (A) và giá trị (x1, y1), A thực hiện giải mã thơng điệp được mã hĩa bằng ECES (C) theo trình tự sau:
Trình tự giải mã:
1. A nhận giá trị (x1, y1).
2. A tính giá trị của điểm (x2, y2) = d´(x1, y1). x2 là giá trị bí mật sẽ được sử
dụng để tạo khĩa giải mã thơng điệp.
3. Sử dụng cùng một hàm tạo mặt nạ (mask function) như đã sử dụng ở giai
đoạn mã hĩa, A tạo mặt nạ Y từ giá trị bí mật x2. Y chính là khĩa bí mật để
giải mã.
4. A giải mã thơng điệp C để lấy thơng điệp M ban đầu bằng cách tính giá trị M = C Å Y
3.3.2.2. Trao đổi khĩa theo phương pháp Diffie - Hellman sử dụng
Elliptic Curve (ECDH)
v Mơ hình trao đổi khĩa Diffie-Hellman
Năm 1976, Whitfield Diffie và Martin Hellman đã đưa ra một giao thức để
trao đổi các giá trị khĩa quy ước giữa các đối tác trên đường truyền cĩ độ bảo mật trung bình. Sự ra đời của giao thức trao đổi khĩa Diffie-Hellman được xem là bước mởđầu cho lĩnh vực mã hĩa khĩa cơng khai.
KHOA CNTT –
ĐH KHTN
Giao thức này dựa trên nguyên lý của bài tốn logarit rời rạc trên trường số
nguyên hữu hạn. Các thao tác thực hiện trao đổi khĩa Diffie-Hellman giữa hai đối tác A và B như sau:
1. A và B thống nhất các giá trịg và số nguyên tốp<g.
2. A chọn một số ngẫu nhiên m. A tính giá trị QA = gm và gởi QA cho B. 3. B chọn một số ngẫu nhiên n. B tính giá trị QB = gn và gởi QB cho A. 4. A nhận được QB và tính giá trị k = (QB)m = gn´m.
5. B nhận được QA và tính giá trịk = (QA)n = gm´n.
k chính là giá trị bí mật được quy ước chung.
v Mơ hình trao đổi khĩa Elliptic Curve Diffie - Hellman
Mơ hình trao đổi khĩa Elliptic curve Diffie-Hellman tương tự mơ hình trao
đổi khĩa Diffie-Hellman. ECDH cũng dựa vào nguyên lý của bài tốn logarit rời rạc nhưng ápdụng trên đường elliptic curve. Mơ hình này dùng để thiết lập một hoặc nhiều khĩa quy ước chung giữa hai đối tác A và B.
Các thao tác để trao đổi khĩa bằng ECDH được thực hiện như sau:
1. A và B thống nhất các tham số sẽ sử dụng như: đường elliptic curve E, và
điểm P(x, y)
2. A chọn một giá trị m ngẫu nhiên. A tính giá trị điểm QA = m´P và gởi QA cho B.
3. B chọn một giá trịn ngẫu nhiên. B tính giá trị điểm QB = n´P và gởi QB cho A.
4. A nhận được QB và tính giá trị G = m´QB = m´n´P. 5. B nhận được QA và tính giá trị G = n´QA = n´m´P. Giá trị G = m´n´P chính là giá trị bí mật được quy ước chung.
KHOA CNTT –
ĐH KHTN
Giả sử cĩ một người C tấn cơng vào đường truyền và lấy được các giá trị QA, QB, E, P, C cần lấy được m hoặc nđể tìm G = m´n´P. Điều đĩ chính là C phải giải bài tốn logarit rời rạc trên elliptic curve. Giải bài tốn này địi hỏi chi phí tính tốn tương đương với sử dụng thuật tốn vét cạn trên elliptic curve.