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. Ví dụ đối với thuật toán RSA, bài toán một chiều là phân tích một số nguyên dƣơng rất lớn thành tích của hai thừa số nguyên tố, phƣơng pháp Diffie-Hellman dựa vào bài toán logarit rời rạc. Tƣơng tự nhƣ vậy, chúng ta xây dựng hàm một chiều cho hệ mã hóa đƣờng cong Elliptic nhƣ sau:
Trong nhóm AbelE a bp( , ) xây dựng từ đƣờng cong Elliptic Zp, xét phƣơng trình:
....
Q P P P kP (điểm Q là tổng của k điểm P, k p ) Cho trƣớc k và P, việc tính Q thực hiện dễ dàng. Tuy nhiên nếu cho trƣớc P
và Q việc tìm ra k là công việc khó khăn. Đây chính là hàm logarit rời rạc của đƣờng cong Elliptic. Ví dụ: Xét nhóm E23(9,17) với phƣơng trình: 2 3 23 mod 23 ( 9 7) mod 23 , , , y x x a b x y Z
Cho điểm P (16,5),Q (4,5), ta chỉ có cách là vét cạn các giá trị của k từ 2 đến p 1để tìm k:
(16,5); 2 (20, 20); 3 (14,14); 4 (19, 20); 5 (13,10)
P P P P P
6P (7,3); 7P (8, 7); 9P (4,5)
Vì 9P Q nên ta xác định đƣợc k 9. Trong thực tế chứng ta sẽ sử dụng đƣờng cong Elliptic Zp với giá trị p lớn, sao cho việc vét cạn khóa là bất khả thi.
Phép nhân một số nguyên với một điểm thuộc đƣờng cong Elliptic (hay còn gọi là phép nhân điểm) là một phép tính rất quan trọng trong hệ mã hóa ECC. Chính vì vậy, có rất nhiều các thuật toán nhằm tối ƣu thời gian thực hiện phép nhân điểm đã đƣợc giới thiệu. Trong tài liệu [11], tác giả có đƣa ra 14 phƣơng pháp để thực hiện phép nhân điểm. Tuy nhiên, trong phạm vi đồ án học viên chỉ trình bày một thuật toán đơn giản nhất để minh họa cho quá trình này, đó là thuật toán nhị phân phải sang trái.
Phương pháp nhị phân phải sang trái để thực hiện phép nhân điểm
Đầu vào: k (kt 1, ...,k k1, 0 2) , P E Z( p) Đầu ra: kP. 1. Q 2. Cho i chạy từ 0 đến t 1 2.1 Nếu ki 1 thì Q Q P 2.2 P 2P
3. Trả về (Q)
Nếu số lƣợng bit 1 dự kiến có trong k là m/ 2, thì thời gian dự kiến để thực hiện thuật toán sẽ xấp xỉ thời gian để thực hiện / 2m phép cộng điểm và m phép nhân điểm:
2
m
t A mD
Trong đó: A là thời gian để thực hiện một phép cộng điểm, D là thời gian để thực hiện một phép nhân điểm.
Dựa vào hàm một chiều trên chúng ta có 3 cách sử dụng đƣờng cong Elliptic trong lĩnh vực mã hóa là trao đổi khóa EC Diffie – Hellman và mã hóa EC, chữ ký số ECDSA.