# Lý thuyết mật mã trên Elliptic Curve ## 1. Các đường cong Ellip - Đường cong Ellip thực: - Đường cong Ellip được định nghĩa bởi phương trình với 2 biến $x,y$ và hệ số thực - Xét đường cong Ellip bậc 3 có dạng: - $y^{2} = x^{3} + ax + b$; trong đó $x,y,a,b$ là các số thực và định nghĩa thêm điểm $O$ - Có phép cộng đối với đường cong Ellip - Về hình học tổng của $P$ và $Q$ là điểm đối xứng của giao điểm $R$ - Điểm $O$ đóng vai trò là đơn vị đối với phép cộng và nó là điểm vô cực ![](https://i.imgur.com/n7GIqZz.png) - Đường cong Ellip hữu hạn: - Mã đường cong Ellip sử dụng đường cong Ellip mà các biến số và hệ số là hữu hạn - Có hai họ đường cong nói chung: - Đường cong nguyên tố **$E_{p}(a,b)$** được xác định trên $Z_{p}$ - Sử dụng các số nguyên modulo số nguyên tố - Tốt nhất trong phần mềm - Đường cong nhị phân **$E_{2^{n}}(a,b)$** xác định trên $GF(2^{n})$ - Sử dụng đa thức với hệ số nhị phân - Tốt nhất trong phần cứng ## 2. Đường cong Elliptic(Elliptic Curve) - Định nghĩa: - Cho $p>3$ là số nguyên tố, đường cong Elliptic $y^{2}=x^{2}+ax+b \pmod p$, trong đó $a,b \in Z_{p}$ là các hằng số thỏa mãn $4a^{3}+27b^{2}\neq0\pmod p$ cùng với điểm đặc biệt $O$ gọi là điểm vô cực. - Phép cộng 2 điểm trên Elliptic Curve: - Giả sử $P = (x_1,y_1), Q = (x_2,y_2)$ là 2 điểm thuộc $E_p(a,b)$, phép cộng được định nghĩa như sau: - Nếu $x_2=x_1,y_2=-y_1$ thì $P+Q=O$ - Ngược lại $P+Q=(x_3,y_3)$ thì: - $x_3=\lambda^2-x_1-x_2$ - $y_3=\lambda(x_1-x_3)-y_1$ - $\lambda = \begin{cases} \frac{y_2-y_1}{x_2-x_1} & \quad \text{if } P \neq Q \\\frac{3x_1^2 +a}{2y_1} & \quad \text{if } P = Q \end{cases}$ - Tính chất của phép cộng trên $E$: - $P+O=O+P=P$, $\forall P \in E$ - $P+(-P)=O$, $\forall P \in E$ - $(P+Q)+R=P+(Q+R)$, $\forall P,Q,R \in E$ - $P+Q=Q+P$, $\forall P,Q \in E$ - Nghịch đảo của $P$: $-P=-(x_1,y_1) = (x_1,-y_1)$, trường hợp $E$ được xác định trên $Z_p$ thì $-P=(x_1,p-y_1)$ $\implies$ Tập hợp các điểm thuộc $E$ tạo thành 1 nhóm giao hoán (abelian group) - Khi cho $E$ là đường cong Elliptic: $y^2=x^3+ax+b$ trên $Z_p$ ta cần xác định các điểm trên $E$ - Với mỗi $x_0\in Z_p$, ta xác định được $z=y_0^2=x_0^3+ax_0+b \pmod p$ - Kiểm tra xem $z$ có phải là thặng dư bậc 2 trên $Z_p$ không - Nếu $z$ là thặng dư bậc 2 trên $Z_p$ thì căn bậc 2 của $z$ trên $Z_p$, đó chính là các giá trị của $y_0$ tương ứng với $x_0$