Số nguyên tố trong định nghĩa của đường cong Secp256k1
thủ tướng $p$ là một phần của thiết kế, phân tích và định nghĩa đường cong xác định $\mathbb{F_P}$. Nếu ai đó sử dụng một cách khác $p$ sau đó chúng có các đường cong khác nhau cần được phân tích rồi xuất bản và phân phối để giao tiếp với đường cong này.
Để giao tiếp $p$, phương trình đường cong ( ở đây $(a,b)$), điểm gốc $G$, điểm ở vô cực, thứ tự đường cong $n$, và đồng yếu tố $h$ được cung cấp trong tiêu chuẩn.
Đây là bộ sáu $T = (p,a,b,G,n,h)$ va cho bí mật256k1 Là;
- ''p'' = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F
- = $2^{256} - 2^{32} - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1$
đường cong $E: y^2 = x^3+ax+b$ trên $\mathbb{F}_p$ được định nghĩa bởi:
- ''a'' = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
- ''b'' = 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000007
Điểm cơ sở G ở dạng nén là:
- ''G'' = 02 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798
và ở dạng không nén là:
- ''G'' = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D9 59F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448 A6855419 9C47D48BF
Cuối cùng thứ tự ''n'' của ''G'' và đồng sáng lập là:
- ''n'' = FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364141
- ''h'' = 01
Các $a,b,p,G$ là đủ để giao tiếp, tuy nhiên, không cần phải tính toán lại phần còn lại.
Một ví dụ nhỏ để chứng minh rằng chúng hoàn toàn khác nhau.
K = GF(19)
E = EllipticCurve(K,[0,7])
in(E)
in(E.order())
in(E.abelian_group())
sau đó $n = 12$ và nhóm đường cong đẳng cấu với $\mathbb{Z}_6 \oplus \mathbb{Z}_2$
K = GF(31)
E = EllipticCurve(K,[0,7])
in(E)
in(E.order())
in(E.abelian_group())
sau đó $n = 21$ và nhóm đường cong đẳng cấu với $\mathbb{Z}_{21}$
Tất nhiên, có thể tìm thấy hai bộ dữ liệu, $(p_1,a_1,b_1)$ và $(p_2,a_2,b_2)$ sao cho chúng có cùng nhóm điểm.Điều này không đáng lo ngại, người ta chỉ cần bộ sáu chuẩn hóa.
Có phải chúng ta bị hạn chế $\mathbb{F}_p$?
Nếu bạn đang hỏi, chúng ta nên luôn sử dụng trường nguyên tố $\mathbb{F}_p$ thì câu trả lời là không. Trường hữu hạn bất kỳ $\mathbb{F}_{p^m}$ là tốt miễn là an toàn và nhanh chóng. Nhìn thấy của Fgrieu trả lời để biết chi tiết.
Thứ tự nhóm đường cong
Một số đường cong như secp256k1 được thiết kế để có thứ tự nguyên tố (tức là số điểm là số nguyên tố). Những người khác như Curve25519 và Curve448 không có đơn đặt hàng chính. Điều này giúp họ có biểu diễn Montgomery có phép nhân vô hướng nhanh bằng Thang Montgomery. Những người khác có thể có thang Joyce kém hiệu quả hơn.
Chúng tôi không muốn thứ tự đường cong bằng $p$ trong trường hợp này, đường cong là một đường cong dị thường và nó không an toàn.
Mô đun trong Phép nhân vô hướng
Các nhân bản vô tính $[k]P$ điều này thực sự có nghĩa là thêm $P$ chính nó $k$-lần. Chính thức hơn;
để cho $k \in \mathbb{N}\dấu gạch chéo ngược\{ 0\}$
\begin{align}
[k]:& E \đến E\
&P\mapsto [k]P=\underbrace{P+P+\cdots+P}_{\text{$k$ times}}.\end{align}
và bằng cách là bản sắc $[0]P = \mathcal{O}$.
Trong khi tính toán điều này, chúng tôi sử dụng thứ tự của điểm $P$, nếu đường cong có thứ tự nguyên tố như secp256k1 thì tất cả các phần tử ngoại trừ danh tính đều có cùng thứ tự nguyên tố. Chúng ta có sự bình đẳng này
$$[k]P = [k \bmod \text{ord}(P)]P$$
và chúng tôi sử dụng $P$'s với thứ tự chính để giảm thiểu các cuộc tấn công.