Các kỹ thuật mã hóa đường cong elliptic năm 2024

Mã hóa hiện đại được thành lập dựa trên ý tưởng rằng khóa sử dụng để mã hóa dữ liệu có thể được công bố trong khi khóa dùng cho hoạt động giải mã dữ liệu phải được giữ bí mật. Vì vậy, các hệ thống này được biết đến dưới tên hệ thống mã hóa khóa công khai. Nói chung, một hệ thống mã hóa khóa công khai có hai thành phần, một khóa công khai và một khóa riêng. Mã hóa là hoạt động chuyển đổi một khối thông tin ban đầu, được gọi là bản rõ, thành một khối thông tin khác, được gọi là bản mã. Một phép mã hóa được chấp nhận nếu không thể tìm lại bản rõ từ bản mã nếu không có thông tin phù hợp (khóa). Giải mã là chuyển đổi ngược từ bản mã thành bản rõ bằng khóa đúng. Mã hóa với khóa công khai chỉ có thể được hoàn tác bằng cách giải mã với khóa riêng.

Năm 1985, thuật toán mã hóa khóa công khai mới được đề xuất dựa trên đường cong Elliptic. Một đường cong Elliptic là tập hợp các điểm thỏa mãn một phương trình toán học cụ thể. Các phương trình cho một đường cong Elliptic trông giống như sau: y2 = x3 + ax + b.

Tính chất của ECC

Một trong những tính chất quan trọng nhất của đường cong elliptic là đối xứng ngang. Bất cứ điểm nào trên đường cong cũng có thể lấy đối xứng qua trục x và vẫn sẽ thuộc đường cong. Một thuộc tính nữa là bất kỳ đường kẻ không thẳng đứng sẽ giao với đường cong tại nhiều nhất là ba điểm. Lấy ví dụ đường cong này là các thiết lập cho một bàn billiard. Lấy bất kỳ hai điểm trên đường cong và vẽ một đường thẳng đi qua chúng, đường này sẽ giao với đường cong tại tại duy nhất tại một điểm khác hai điểm đã lấy. Trong trò billiard này, khi lấy một viên bi tại điểm A, bắn nó hướng tới điểm B. Khi viên bi chạm vào đường cong sẽ chuyển động hoặc thẳng lên (nếu nó dưới trục x) hoặc thẳng xuống (nếu nó ở trên trục x) sang phía bên kia của đường cong.

Phép cộng hai điểm trên đường cong elliptic.

Cộng một điểm với chính nó trên đường cong elliptic.

Ký hiệu việc di chuyển của viên bi qua hai điểm là ” “, hay còn gọi là phép cộng trên đường cong Elliptic. Từ bất kỳ hai điểm nào trên đường cong cũng có thể dùng để tìm ra một điểm mới khi tuân theo phép cộng này.

A B = C

Từ đó cũng có thể tạo một chuỗi chuyển động từ một điểm duy nhất:

A A = B

A B = C

A C = D

Việc này chỉ ra rằng nếu có hai điểm, với điều kiện một điểm thực hiện “ ” chính nó n lần ra điểm còn lại, thì việc tìm ra n khi mà chỉ biết điểm đầu và điểm cuối là rất khó khăn. Áp dụng cho chính ví dụ về trò billiard, nếu một người chơi trò chơi này một mình trong một căn phòng trong một khoảng thời gian ngẫu nhiên. Rất dễ dàng cho anh ta để đánh bi đi theo các quy tắc mô tả ở trên. Đến khi một người khác bước vào phòng sau đó và nhìn thấy vị trí viên bi, ngay cả khi họ biết tất cả các quy tắc của trò chơi và vị trí bắt đầu, họ không thể xác định số lần viên bi được đánh mà không chơi qua toàn bộ trò chơi một lần nữa. Dễ thực hiện, khó suy ngược, đây chính là tính chất của một TF tốt.

Một hệ thống ECC có thể được định nghĩa bằng cách chọn một số nguyên tố làm giới hạn, một phương trình đường cong và một điểm trên đường cong đó. Một khóa riêng là một số priv, và một khóa công khai là kết quả của việc cộng điểm ban đầu với chính nó priv lần. Tính toán các khóa riêng từ khóa công khai trong hệ thống mã hóa này được gọi là logarit rời rạc trên đường cong Elliptic – Elliptic Curve Discrete Logarithm Problem (ECDLP). Đây chính là TF đang tìm kiếm.

Độ bảo mật của ECC

ECDLP là vấn đề khó khăn làm cơ sở cho ECC. Sau gần ba thập kỷ nghiên cứu, các nhà toán học vẫn chưa tìm ra một thuật toán để giải quyết vấn đề này có hiệu quả hơn việc tiếp cận sơ khai. Nói cách khác, không giống với phân tách số, dựa trên toán học hiện tại vẫn chưa thể thu hẹp khoảng cách độ khó hai chiều tính toán của một TF dựa trên ECC. Điều này có nghĩa với các số có cùng độ lớn, giải quyết ECDLP là khó khăn hơn nhiều lần so với phân tách số, do đó ECC khó phá hơn RSA.

So sánh độ dài khóa ECC và RSA ở cùng mức bảo mật.

So sánh thời gian bẻ khóa ECC và RSA ở cùng độ dài.

Ứng dụng ECC trong thực tế

ECC hiện đang được sử dụng trong một loạt các ứng dụng: chính phủ Mỹ sử dụng để bảo vệ thông tin liên lạc nội bộ, các dự án Tor sử dụng để giúp đảm bảo ẩn danh, đây cũng là cơ chế được sử dụng để chứng minh quyền sở hữu trong Bitcoins, cung cấp chữ ký số trong dịch vụ iMessage của Apple, để mã hóa thông tin DNS với DNSCurve, và là phương pháp tốt để xác thực cho các trình duyệt web an toàn qua SSL/TLS. Thế hệ đầu tiên của thuật toán mã hóa khóa công khai như RSA và Diffie-Hellman vẫn được duy trì trong hầu hết các lĩnh vực, nhưng ECC đang nhanh chóng trở thành giải pháp thay thế cho RSA.

Cụ thể hơn nếu truy cập vào phiên bản HTTPS của các trang web phổ biến, như Google.com, Amazon.com, Facebook.com… từ một trình duyệt như Chrome hoặc Firefox, trình duyệt sẽ sử dụng ECC – như là sử dụng ECDHE_ECDSA. ECDHE là viết tắt của Elliptic Curve Diffie Hellman Ephemeral và là một cơ chế trao đổi khóa dựa trên đường cong Elliptic. ECDSA là Elliptic Curve Digital Signature Algorithm là cơ chế tạo chữ ký số để xác thực kết nối với máy chủ.

Sự cải thiện hiệu suất của ECDSA hơn RSA là rất rõ ràng. Ngay cả với một phiên bản cũ của OpenSSL không có tối ưu cho ECC, tạo một chữ ký ECDSA với khóa 256-bit là nhanh hơn 20 lần so với một chữ ký RSA với khóa 2048-bit.

Trong kỷ nguyên công nghệ thông tin và truyền thông hiện nay, nhu cầu đảm bảo an toàn thông tin là không thể thiếu. Với việc khóa mã hóa có độ dài ngày tăng dần theo thời gian, ECC đang là ứng viên phù hợp để thay thế RSA trong việc tạo ra các khóa mã ngắn hơn mà vẫn đảm bảo an toàn, từ đó có thể triển khai trên nhiều nền tảng thiết bị từ các mạch điện tử đơn giản đến máy tính lớn, dễ dàng tạo ra hệ thống mạng đáng tin cậy phục vụ tốt hơn cho xã hội.