Mã hóa công khai ECC
Tổng quan về ECC (Elliptic Curve Cryptography)
Phương thức này phát minh năm 1985 bởi hai nhà toán học Miller và Koblitz.
Mã hoá thông tin lên một nhóm bao gồm những điểm trên đường cong elliptic.
Đường cong elliptic này được định nghĩa trên một trường đại số hữu hạn (finite
field).
Hay nói cho đơn giản hơn, dựa trên những điểm tọa độ số nguyên trên trục tọa độ
Descartes, kể cả một điểm đặc biệt ở vô cực (infinity).
Elliptic thực tế chỉ là những điểm có tọa độ số nguyên, thỏa mãn một phương
trình đại số bậc ba.
Page 1
Mã hóa công khai
ECC
Các khái niệm cơ bản về ECC
Tập điểm (x, y) thỏa mãn đẳng thức:
Điểm O được gọi là điểm vô cùng.
Page 2
Mã hóa công khai
ECC
Đường cong Eliptic trên trường số thực (Dạng Weierstrass)
Phép cộng
Page 3
Mã hóa công khai ECC
Cấu trúc nhóm trên đường cong Elliptic
Phép nhân
Bậc r
Page 4
Mã hóa công khai ECC
Mật mã công khai dùng đường cong Eliptic
Đường cong elliptic được xây dựng trên các trường hữu hạn.
Có hai trường hữu hạn: Trường hữu hạn Fq với q là số nguyên tố hoặc q là 2^m
(m là số nguyên).
Tùy thuộc vào trường hữu hạn Fq, với mỗi bậc của q, tồn tại nhiều đường cong
elliptic.
Do đó, với một trường hữu hạn cố định có q phần tử và q lớn, có nhiều sự lựa
chọn nhóm đường cong Elliptic.
Bài toán logarit rời rạc trên đường cong Eliptic
Cho trước (E) và hai điểm P, Q thuộc E.
Tìm số nguyên k để: Q = kP.
Không thể tìm được k (có thể tìm được trong khoảng thời gian đủ ngắn).
Page 5
Mã hóa công khai ECC
Mô hình mã hóa dữ liệu ECC (Bên gửi B)
Page 6
Mã hóa công khai ECC
Mô hình mã hóa dữ liệu ECC (Bên gửi B)
(x1, y1) = k x P
X2 = (x2, y2) = k × Q
C = Φ(Y, M)
f
Y
(x1, y1)
C
C
B ((E), P, QA, k)
Page 7
Gửi đi
A
Mã hóa công khai ECC
Mô hình giải mã dữ liệu ECC (Bên nhận A)
A nhận giá trị (x1, y1).
A tính giá trị của điểm X2 = (x2, y2) = d × (x1, y1). Trong đó X2
là giá trị bí mật sẽ được sử dụng để tạo khóa giải mã thông
điệp.
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ã.
A giải mã thông điệp C để lấy thông điệp M ban đầu.
M = Φ^-1(C, Y) = C Y (thông thường).
Page 8
Mã hóa công khai ECC
Mô hình giải hóa dữ liệu ECC (Bên gửi B)
Φ^-1(C, Y)
(x1, y1) = k x P
f^(-1)
X2 = (x2, y2) = d x (x1, y1)
A ((E), P, QA, d)
Page 9
Y
M
Mã hóa công khai ECC
Mô hình mã hóa dữ liệu ECC (Ví dụ)
Tham số chung:
(E)y 2
x3 x 1
P = (1, 1) thuộc (E)
Bên A chọn:
d = 2, đây là khóa riêng.
QA = d x P = (-1, -1), đây là khóa công cộng.
Mã hóa (bên B):
QA = (-1, -1), P, (E). B chọn k=1
(x1, y1) = k × P = (1, 1)
X2 = (x2, y2) = kQA = 1(-1,-1) = (-1, -1)
Y = X2 = (-1, -1)
C = M Y = (1, -1) + (-1, -1) = (0, -1)
Page 10
Mã hóa công khai ECC
Mô hình mã hóa dữ liệu ECC (Ví dụ)
Giải mã (bên A):
D=2
(x1, y1) = (1, 1)
C = (0, -1)
(x2, y2) = d × (x1, y1) = 2 x (1, 1) = (-1, 1)
Y = -X2 = -(-1, 1)
M = Φ^-1(C, Y) = C Y = (0, -1) – (-1, 1) = (0, -1) + (-1, -1) = (1,
-1)
Page 11
Mã hóa công khai ECC
Thời gian phá mã ECC (Lời giải bài toán ECDLP: Q=kP)
C có thuật toán nào được xem là hiệu quả để giải quyết bài toán này. Để giải cần phải kiểm
tra tất cả các giá trị nguyên trên [2…n-2].
Nếu điểm P được chọn lựa cẩn thận với n rất lớn thì việc giải bài toán ECDLP xem như
không khả thi.
Các phương pháp giải bài toán ECDLP gồm:
The Pohlig-Hellman algorithm.
Shanks' baby-step-giant-step method.
Pollard's methods.
The Menezes-Okamoto-Vanstone (MOV) attack using the Weil pairing.
The Frey-Rueck attack using the Tate pairing.
The attacks on anomalous elliptic curves due to Semaev, Satoh-Araki and Smart.
Weil descent (for some special finite fields).
Page 12
Mã hóa công khai ECC
Thời gian phá mã ECC (Lời giải bài toán ECDLP: Q=kP)
Lời giải bài toán có độ phức tạp hàm mũ (khó)
Số điểm rời rạc trên đường cong (điểm mà cả tọa độ X và Y là
nguyên) được gọi là bậc của đường cong N.
Giả sử N là số nguyên tố n bit thì để tính k từ biểu thức trên
cần 2^(n/2) thao tác.
Giả sử chiều dài n là 160 bits thì cần khoảng 2^80 thao tác.
Giả sử Hacker có thể thao tác 1 tỉ thao tác trên giây thì C cần
khoảng 2^80/(10^9*365*24*60*60) ≈ 38 triệu năm.
Page 13
Mã hóa công khai ECC
Ưu nhược điểm ECC
Ưu:
Một ưu điểm của ECC là khả năng bảo mật cao
Kích thước khóa nhỏ dựa vào mức độ khó giải quyết của vấn đề ECDLP.
Giảm kích thước tham số của hệ thống mã hóa.
Giảm thời gian tạo khóa.
Nhược:
Khó chọn sử dụng các tham số đường cong.
Khó chọn điểm quy ước chung
Hầu hết các đường cong được đưa ra đều thất bại khi áp dụng vào thực tiễn
Page 14
Mã hóa công khai ECC
Ứng dụng ECC
Áp dụng cho các ứng dụng trên môi trường:
Giới hạn về thông lượng truyền dữ liệu.
Giới hạn về khả năng tính toán.
Giới hạn về khả năng lưu trữ.
PDA, điện thoại di động và thẻ thông minh (smart card).
Mật mã trên đường cong Elliptic (ECC) thích hợp với các ứng dụng
nhúng vì việc cứng hóa cần ít tài nguyên phần cứng hơn.
Page 15