Back to Home

Elliptic Curve trên Trường Hữu Hạn

Bạn có thể xem lại bài viết về Elliptic Curve cơ bản trên trường số thực ở bài viết trước của mình.

Đường cong elliptic trên trường hữu hạn là một phần quan trọng trong mật mã học hiện đại. Khác với đường cong elliptic trên trường số thực (trên miền liên tục), đường cong elliptic trong mật mã học được định nghĩa trên các trường hữu hạn số nguyên tố.

Trường hữu hạn thường là:

  • Trường nguyên tố Fp\mathbb F_p

  • Trường nhị phân F2m\mathbb F_{2^m}

Trong bài viết này ta tập trung vào trường nguyên tố Fp\mathbb F_p.

💡 Về mặt tính toán, đường cong elliptic trên trường hữu hạn vẫn giữ nguyên phương pháp như ở trên đường cong elliptic trên trường số thực và bao gồm hay phép tính: phép cộng hai điểm và phép nhân scalar.

Định nghĩa Elliptic Curve trên Fp\mathbb F_p

Cho pp là số nguyên tố p>3p \gt 3. Một Elliptic curve trên Fp\mathbb F_p được định nghĩa là

y2x3+ax+b(modp)y^2 \equiv x^3 + ax + b \pmod p

với a,bFpa,b \in \mathbb F_p và thỏa điều kiện 4a3+27b2≢0(modp)4a^3 + 27b^2 \not \equiv 0 \pmod p để đảm bảo đường cong không có điểm kỳ dị.

Tập điểm của đường cong là:

E(Fp)={(x,yFp2:y2x3+ax+b)}{O}E(\mathbb F_p) = \{(x,y \in \mathbb F_p^2: y^2 \equiv x^3 + ax + b)\} \cup \{O\}

Trong đó OO là điểm ở vô cực, tổng số điểm trên đường cong (nn) kể cả điểm vô cực gọi là bậc của đường cong (curve order). Lưu ý rằng bậc của đường cong không phải là giá trị pp. Theo định lý Hasse, ta có n(p+1)2p|n-(p+1)| \le 2\sqrt p , điều này cho thấy rằng số điểm của đường cong chỉ gần bằng với pp.

Hình dạng của elliptic curve trên trường hữu hạn

Khác với trường số thực, ở đây các điểm của đường cong:

  • x,yx,y chỉ nhận giá trị rời rạc

  • Đồ thị không còn là đường cong liên tục

Ví dụ: Với p=17p=17, đường cong y2x3+2x+2(mod17)y^2 \equiv x^3 + 2x+2 \pmod {17} chỉ có một tập hữu hạn các điểm như: (5,1),(5,16),(6,3),(6,14),(5,1),(5,16),(6,3),(6,14),\dots Vì thế nếu biểu diễn trên mặt phẳng ta sẽ chỉ thấy các chấm rời rạc mà không phải là một đường cong.

Phép cộng điểm

Điều thú vị là các công thức cộng điểm vẫn giống hệt trường số thực.

Giả sử P=(x1,y1),Q=(x2,y2)P=(x_1,y_1), Q=(x_2,y_2). Ta tính:

λ=y2y1x2x1(modp)x3=λ2x1x2(modp)y3=λ(x1x3)y1(modp)\lambda = \frac {y_2 - y_1} {x_2 - x_1} \pmod p \\ x_3 = \lambda^2 - x_1 - x_2 \pmod p\\ y_3 = \lambda(x_1-x_3)-y_1 \pmod p

Khi đó:

P+Q=(x3,y3)P + Q = (x_3,y_3)

Điểm khác biệt duy nhất là mọi phép toán đều thực hiện modulo pp.

Phép nhân vô hướng

Sau khi đã định nghĩa phép cộng điểm trên elliptic curve, chúng ta có thể mở rộng phép toán này bằng cách cộng một điểm nhiều lần, cũng giống hệt như cách ta định nghĩa cho đường cong trên trường số thực.

Cho một điểm PP trên elliptic curve E(Fp)E(\mathbb{F}_p) và một số nguyên kk. Ta định nghĩa:

k×P=P+P++Pn timesk \times P = \underbrace {P+P+\dots +P}_{\text {n times}}

Chu kỳ của các điểm trên elliptic curve

Vì tập điểm của elliptic curve trên Fp\mathbb{F}_p​ là hữu hạn, nên khi ta liên tục cộng điểm PP với chính nó:

P,2P,3P,4P,P, 2P, 3P, 4P, \dots

thì dãy này không thể tăng mãi mà cuối cùng sẽ quay lại điểm đặc biệt OO.

Nói cách khác, tồn tại một số nguyên dương nn sao cho:

n×P=On \times P = O

Trong đó OOđiểm ở vô cực, đóng vai trò phần tử trung tính của phép cộng điểm.

Bậc của một điểm

Số nguyên dương nhỏ nhất nn thỏa mãn:

n×P=On \times P = O

được gọi là bậc (order) của điểm PP. Khi đó ta có:

(n+1)×P=P(n+1) \times P = P

và dãy các điểm bắt đầu lặp lại theo chu kỳ.

Cấu trúc nhóm

Nhờ các tính chất của phép cộng điểm, tập điểm của elliptic curve E(Fp)E(\mathbb F_p) cùng với phép cộng tạo thành một nhóm abelian hữu hạn.

Các tính chất của nhóm bao gồm:

  1. Closure
    Nếu P,QE(Fp)P,Q \in E(\mathbb{F}_p) thì P+QE(Fp)P+Q \in E(\mathbb{F}_p)

  2. Associativity
    Kết hợp (P+Q)+R=P+(Q+R)(P+Q)+R=P+(Q+R)

  3. Identity element
    Tồn tại điểm OO sao cho P+O=PP + O = P

  4. Inverse element

    Với mỗi điểm P=(x,y)P=(x,y) tồn tại điểm P=(x,y)−P=(x,−y) sao cho P+(P)=OP+(−P)=O

  5. Commutativity

    Giao hoán P+Q=Q+PP+Q=Q+P

Xây dựng mật mã từ Elliptic Curve

Trong các hệ mật mã elliptic curve, chúng ta không sử dụng toàn bộ tập điểm của đường cong một cách tùy ý. Thay vào đó, người ta chọn một điểm đặc biệt gọi là điểm sinh.

Giả sử E(Fp)E(\mathbb{F}_p) là tập các điểm trên elliptic curve và GGlà một điểm trên đường cong đó.

Điểm GG được gọi là điểm sinh (generator point) nếu bằng cách thực hiện phép nhân vô hướng, ta có thể tạo ra nhiều điểm khác trong nhóm:

G,2G,3G,4G,G, 2G, 3G, 4G, \dots

Sau một số bước nhất định, dãy này sẽ quay lại điểm đơn vị:

nG=OnG = O

Trong đó OOđiểm ở vô cực (phần tử trung tính của phép cộng).

Số nn nhỏ nhất thỏa mãn điều kiện trên được gọi là bậc của điểm GG.

Tập các điểm:

{G,2G,3G,,(n1)G,O}\{G, 2G, 3G, \dots, (n-1)G, O\}

tạo thành một nhóm con cyclic sinh ra bởi GG của elliptic curve. Trong các hệ mật mã elliptic curve, điểm sinh GG được công bố công khai cùng với các tham số của đường cong.

Người dùng chọn một số bí mật kk (private key) và tính:

Q=kGQ = kG

Trong đó:

  • kkkhóa bí mật

  • QQkhóa công khai

Để ý rằng việc tính QQ từ kkGG tương đối dễ vì chỉ cần thực hiện phép nhân vô hướng. Tuy nhiên nếu chỉ biết GGQQ, việc tìm lại kk là một bài toán rất khó về mặt tính toán. Bài toán này được gọi là Elliptic Curve Discrete Logarithm Problem. Chính độ khó của bài toán này tạo nên độ an toàn của các hệ mật mã elliptic curve.

Demo

Comments

0/300

Leave name/email blank to comment anonymously

No comments yet. Be the first to comment!