Đường cong elliptic đóng vai trò cực kỳ quan trọng trong công nghệ mật mã hiện đại vì tính hiệu quả trong không gian lưu trữ và bảo mật vượt trội so với các công nghệ mã khóa công khai truyền thống như RSA. Hãy xem bảng so sánh bên dưới để thấy sự hiệu quả của mã hóa trên đường cong so với RSA:

Ở bài viết này, mình muốn giới thiệu một số phép toán được định nghĩa trên đường cong trên trường số thực để bạn đọc dễ hình dung. Tuy nhiên, trong công nghệ mật mã, người ta sử dụng đường cong elliptic trên trường hữu hạn các số nguyên tố, mình sẽ giới thiệu ở bài viết sau. Trong bài viết này chúng ta sẽ tìm hiểu:
Phương trình của elliptic curve
Hình dạng của đường cong
Quy tắc cộng hai điểm trên đường cong
Quy tắc nhân một điểm với một scalar
Một elliptic curve trên trường số thực thường được định nghĩa bởi phương trình:
trong đó là các số thực. Một elliptic curve trên trường số thực thường được định nghĩa bởi phương trình:
Điều kiện này đảm bảo rằng đường cong không có điểm kỳ dị (singular point), chẳng hạn như điểm nhọn hoặc giao cắt với chính nó. Nếu điều kiện này được thỏa mãn, đường cong được gọi là non-singular elliptic curve. Về mặt đồ thị, đường cong có 2 dạng như bên dưới:

Lý do là vì phương trình có chưa nên nếu nằm trên đường cong thì cũng nằm trên đường cong.
Một điểm được gọi là singular nếu tại đó:
đường cong có góc nhọn (cusp), hoặc
hai nhánh của đường cong giao nhau (self-intersection).
Những điểm như vậy phá vỡ cấu trúc hình học của elliptic curve.
Tại sao cần điều kiện ?
Xét hàm , một điểm trên đường cong là singular nếu cả hai đạo hàm riêng đều bằng . Nghĩa là:
Ta có: và . Khi cả hai đều bằng nghĩa là và . Thay vào phương trình elliptic curve
Sau khi rút gọn ta được điều kiện: nghĩa là nếu điều này xảy ra thì đường cong xuất hiện điểm kỳ dị. Vì vậy để tránh trường hợp này ta yêu cầu:
Vai trò của điều kiện này:
Đảm bảo có đường cong trơn
Không có singular point
Phép cộng điểm được định nghĩa hợp lệ (ta sẽ nói kỹ hơn về phép cộng điểm ở phần sau bài này)
Tập điểm trên đường cong tạo thành một nhóm abelian
Để định nghĩa phép toán trên elliptic curve, người ta thêm một điểm đặc biệt gọi là điểm vô cực, ký hiệu là . Tập các điểm trên elliptic curve khi đó là:
Điểm đóng vai trò phần tử đơn vị trong phép cộng điểm. Nghĩa là với mọi điểm trên đường cong thì:
Giả sử ta có hai điểm , ta định nghĩa phép cộng 2 điểm trên đường cong như sau:
Vẽ đường thẳng đi qua hai điểm và .
Đường thẳng này sẽ cắt elliptic curve tại một điểm thứ ba.
Lấy điểm đối xứng qua trục hoành của điểm thứ ba đó.
Điểm thu được chính là .

Một lưu ý là nếu hai điểm đối xứng nhau qua trục hoành thì và lúc này:
Với là phần tử đơn vị.
Khi điểm lúc này ta có . Tuy nhiên lúc này ta không thể vẽ đường thẳng qua hai điểm khác nhau nữa. Thay vào đó ta:
Vẽ tiếp tuyến của đường cong tại điểm
Tiếp tuyến này sẽ cắt đường cong tại một điểm thứ ba
Lấy điểm đối xứng của điểm đó qua trục hoành
Điểm kết quả chính là . Phép toán này được gọi là point doubling. Từ công thức này ta suy ra được công thức nhân một điểm với một scalar bất kỳ
Có một lưu ý rằng tồn tại một số điểm trên đường cong mà tiếp tuyến tại điểm đó không cắt đường cong. Ví dụ:

Rõ ràng tiếp tuyến tại sẽ song song với trục tung và không cắt đường cong. Theo quy ước của elliptic curve thì giao điểm được xem như ở vô cực . Do đó:
Mặc dù cách giải thích bằng hình học rất trực quan, nhưng trong thực tế ta sử dụng công thức đại số.
Nếu :
Khi đó
Nếu :
Các công thức này cho phép máy tính thực hiện các phép toán trên elliptic curve.
Một điều đáng ngạc nhiên là các điểm trên elliptic curve cùng với phép cộng vừa định nghĩa tạo thành một nhóm abelian. Cụ thể các tính chất sau đều được thỏa mãn:
Đóng (closure)
Kết hợp (associativity)
Có phần tử đơn vị
Có phần tử nghịch đảo
Giao hoán (commutative)
Chính cấu trúc nhóm này làm cho elliptic curve trở nên cực kỳ hữu ích trong toán học và mật mã.
No comments yet. Be the first to comment!