Điểm:2

Đường cong STARK có phải là Đường cong an toàn không?

lá cờ in

SafeCurve xác định các tiêu chí để chọn các đường cong an toàn trong mật mã đường cong elip.

đường cong STARK định nghĩa một đường cong elip thân thiện với Stark có thể được sử dụng với ECDSA.

Tôi đã tự hỏi: Đường cong STARK có phải là Đường cong an toàn không?

kelalaka avatar
lá cờ in
Không rõ tại sao $G$ đó lại được chọn, con số vô nghĩa?
oberstet avatar
lá cờ in
Không chắc tôi hiểu ý của bạn (tôi không phải là chuyên gia về EC) - ý bạn là điểm Trình tạo cụ thể được sử dụng trong sơ đồ ECDSA mà trang web STARK Curve xác định có thể được Starkware (tác giả) chọn cụ thể để ẩn/ backdoor bí mật mở ra trong đường cong?
kelalaka avatar
lá cờ in
Vâng, đó là nó.
oberstet avatar
lá cờ in
được rồi cảm ơn! có ý nghĩa, và đây chắc chắn là một câu hỏi mà tôi sẽ đào sâu.đó cũng là một câu hỏi - không phải câu hỏi tôi đã hỏi, nhưng rõ ràng là một câu hỏi rất hay;) ngay cả khi dạng đường cong chung là an toàn (nếu có thể nói), các thông số cụ thể có thể không dẫn đến một đường cong cụ thể an toàn ..
poncho avatar
lá cờ my
@kelalaka: thực ra, có thể chứng minh rằng $G$ cụ thể cũng mạnh như bất kỳ trình tạo nào khác trong đường cong đó.
kelalaka avatar
lá cờ in
@poncho mạnh theo nghĩa của ai? Có thể người sáng tạo đã tạo một bảng nhật ký nhiều nhất có thể cho chính họ và vẫn đang tiếp tục. Chà, khi xem xét kích thước của đường cong, lợi thế của họ sẽ không nhiều hơn là không đáng kể, tuy nhiên, người ta vẫn cho rằng người ta nên đưa ra lý do như đã chỉ ra trên các đường cong an toàn (được cường điệu hóa?). Tại sao không phải là $x$ đầu tiên như trong Curve25519? Cuối cùng, Chúng tôi biết rằng con số không có gì trong tay áo của tôi là sinh lý .
poncho avatar
lá cờ my
@kelalaka: theo nghĩa rõ ràng là, nếu bạn có thể giải quyết vấn đề DLog (hoặc CDH) bằng $G$ cụ thể đó, thì bạn có thể giải quyết vấn đề DLog (hoặc CDH) bằng bất kỳ trình tạo nào. Điều này trái ngược với (giả sử) chính phương trình EC; có lẽ họ đã nghĩ đến một điểm yếu cụ thể với các đường cong $A=1$? Có thể: không; mặt khác, chúng tôi không có bất kỳ bằng chứng nào.
kelalaka avatar
lá cờ in
@poncho vâng, tôi biết rằng chúng ta có thể chuyển đổi bất kỳ cơ sở dlog nào sang cơ sở khác để giải quyết ở đó. Điều tôi muốn nói, có thể đã triển khai một chỉ số dlog khổng lồ và vượt xa bất kỳ ai, kể cả trong trường hợp này, lợi thế của họ là không đáng kể so với những kẻ tấn công khác. Có, đối với $A=1$, chúng tôi không biết. Lý do này và lý do khác để xem xét đường cong này _ hơi cứng nhắc_ $A$ nhỏ có thể làm giảm một số tính toán, đó là tất cả những gì tôi biết. Cảm ơn, một lần nữa.
poncho avatar
lá cờ my
@kelalaka: "Điều tôi muốn nói, có thể đã triển khai một chỉ số dlog khổng lồ và vượt xa bất kỳ ai"; điều này đúng không phụ thuộc vào cách họ chọn $G$; do đó, việc có một giá trị không phải NUMS không làm cho nó có nhiều khả năng hơn ...
Điểm:3
lá cờ in
kết luận

Đường cong STARK dường như là một lựa chọn hợp lý cho ECDSA.

Đường cong STARK

Các đường cong STARK xác định hơn $\mathbb{F}_p$ với $p = 2^{251} + 17*2^{192} +1$ với phương trình Weierstrass ngắn

$$y^2 = x^3 + A x + B$$

với

  • $A = 1$, và
  • $B = 3141592653589793238462643383279502884197169399375105820974944592307816406665$
Chi tiết từ các tham số đã cho
  • Thứ tự của nhóm đường cong (số điểm) là $n = \#E(\mathbf{F}_p )$$n= 3618502788666131213697322783095070105526743751716087489154079457884512865583$

    Và đây là một dấu hiệu số nguyên tố rằng

    • Mọi phần tử ngoại trừ danh tính ( $\mathcal{O})$ có thể là một máy phát điện.Con số vô nghĩa của đường cong này (cảm ơn Aria đã chỉ), đến từ $\pi$.

      Cho nên Starks có hơi cứng nhắc ít nhất là cho đến bây giờ.

      Cuối cùng, con số không có gì trong tay áo của tôi khá sinh lý.

    • đồng nhân tố là $h=1$ điều này có nghĩa là không có biểu diễn Montgomery của đường cong, do đó, không có thang Montgomery nhanh (yêu cầu một yếu tố bậc 2, tức là 2|đồng yếu tố), thang Joyce vẫn có thể với hiệu suất chậm hơn. Trong ECDSA, điều này rất hữu ích trong việc tính toán $[k]G$ chỉ vì $x$ tọa độ được sử dụng.

    • Không có cuộc tấn công nhóm nhỏ nào để xem xét, mặc dù đây không phải là vấn đề đối với người dùng hợp pháp của ECDSA. Nếu người dùng không hợp pháp thì họ có thể sử dụng điều này để chi tiêu gấp đôi tiền như đã làm trong cong25519 tuy nhiên đây không phải là trường hợp của đường cong STARK.

    • Nhóm đường cong đẳng cấu với $\mathbb{Z_n}$

  • Các $n$ có biểu diễn nhị phân 252-bit và điều này có nghĩa là nó có khoảng $126$-bit bảo mật chống lại các vấn đề logarit rời rạc cổ điển tốt nhất.

  • Kích thước của đường cong không cho va chạm của $k$ nếu một trình tạo số ngẫu nhiên tốt được sử dụng. Nếu vẫn lo sợ điều này, người ta có thể sử dụng ECDSA xác định được đưa ra trong rfc-6979.

  • Bảo mật xoắn (không liên quan đến ECDSA); độ xoắn bậc hai của đường cong này là $$y^2 = x^3 + 5^2*x +B*5^3$$ *

    • Lực lượng của vòng xoắn = "618502788666131213697322783095070105623107215331596699973092056135872020481"
    • Các yếu tố của nhóm xoắn = "499669 * 26023817775804638430931 * 278275836047110893120702478691334736277272165979" và điều này mang lại bảo mật khoảng 158 bit. Mức độ vừa phải.
  • Và chúng ta có $2*p+2 = Thứ tự(E) + Thứ tự(\text{E_quaratic_twist})$

  • $n \neq p$ do đó nó không phải là một đường cong bất thường nơi nhật ký rời rạc có thể được giải quyết nhanh chóng.

Hiền Mã Toán Học
một = 1
b = 3141592653589793238462643383279502884197169399375105820974944592307816406665
p = 2^251 + 17*2^192 +1

E = EllipticCurve(GF(p), [0,0,0,a,b])

in(E)
Et = E.quadratic_twist()
in(và)

print("E abelian =", E.abelian_group())
print("E xoắn a = ", Et.abelian_group())

thẻ = E.cardinality()
cardEt = Et.cardinality()

in ("cardinality E =",thẻ)
print("độ xoắn E =",thẻ)


print("thừa số E ",thừa số(thẻ))
in ("thừa số Et ",hệ số (thẻEt))

Phần #Generator không dành cho xoắn bậc hai.
#G = E (8747394510780077766457464989774322083649278607533249481
#n = G.order()
#print("Thứ tự máy phát =", n)

in(log(thẻ,2).n()+1)

khẳng định(2*p+2 == thẻ + thẻEt)

*Thật không may, vòng xoắn bậc hai được hình thành với QNR 5, nó không hoạt động như mong muốn. Nhờ Poncho chỉ ra điều này. Tôi giữ phương trình để người ta có thể nhìn thấy vấn đề. Thay vào đó, tôi đã sử dụng bậc hai_twist chức năng của SageMath khá chậm.

oberstet avatar
lá cờ in
Tuyệt vời=) Cảm ơn bạn rất nhiều vì đã phân tích sâu về một số thuộc tính mật mã của đường cong STARK. Không phải là tôi thực sự hiểu chi tiết;) Nhưng tôi đoán nó kiểm tra (một số) 11 cờ cho SafeCurves như trong bảng tổng quan ở đó. Dù sao đi nữa, tôi đã cố gắng tìm hiểu sự lựa chọn của G, đã hỏi một anh chàng từ Starkware: "Về việc lựa chọn máy phát điện, tôi không nhớ. ... Đối với câu hỏi, bạn có thể hỏi Daira Hopwood từ ZCash": https://electriccoin .co/blog/people-behind-zcash-technology-daira-hopwood-engineer-and-protocol-designer/ https://github.com/daira
kelalaka avatar
lá cờ in
3 từ danh sách chỉ là tham số, điểm cơ bản là về độ cứng, không phải tất cả đều liên quan đến bảo mật. Ladder hỏi về Montgomery trong một thời gian liên tục, tuy nhiên, Joyce Ladder xử lý việc này. Tôi sẽ tìm điểm cơ sở, cảm ơn vì đã chỉ.
kelalaka avatar
lá cờ in
sau này, tôi sẽ tìm kiếm những người khác nếu tôi có thể ...
oberstet avatar
lá cờ in
fwiw, đây là một số đoạn khác trong quá trình đào bới của tôi: Tôi nghĩ_ họ các đường cong được gọi là "Barreto-Naehrig (BN)" https://eprint.iacr.org/2010/429.pdf. Tôi không thể tìm thấy các tham số cụ thể của đường cong STARK trong https://neuromancer.sk/std/bn/https://tools.ietf.org/id/draft-kasamatsu-bncurves-01.html. zCash (một dự án khác với Starkware), mà những người của Starkware đã gợi ý, trước đây đã sử dụng BN254, nhưng đã chuyển sang BLS12-381 vào năm 2017 https://github.com/zcash/zcash/issues/2502 https://cp4space.hatsya .com/2020/12/27/barreto-naehrig-curves-and-cryptographic-pairings/
poncho avatar
lá cờ my
"Xoắn ... có cùng một lực lượng ngụ ý cùng một bảo mật"; là thứ tự một twist một số nguyên tố? Nếu không, điều đó ngụ ý rằng vòng xoắn có độ bảo mật thấp hơn
kelalaka avatar
lá cờ in
@poncho Tôi thấy vòng xoắn có cùng lực lượng. Bạn có thể kiểm tra với mã của tôi. Tôi tự hỏi phần đó, vì tôi chưa thấy một đường cong như thế này.
kelalaka avatar
lá cờ in
@poncho và $G$ rõ ràng cũng không nằm trên đường cong.
poncho avatar
lá cờ my
Lực lượng của một đường cong cộng với lực lượng của đường xoắn của nó luôn có tổng bằng $2p+2$; điều này có thể thấy được bởi vì, đối với bất kỳ tọa độ x khả dĩ nào, nó tương ứng với hai điểm trên đường cong hoặc với hai điểm trên đường xoắn hoặc một điểm trên cả hai (nếu $y=0$, điều này không xảy ra trên đường cong này ). Thêm vào hai điểm vô cực (một trên đường cong, một trên đường xoắn) và bạn sẽ ở đó. Cách duy nhất điều này có thể xảy ra là nếu thứ tự của đường cong là $p+1$, đây không phải là trường hợp của đường cong này.
kelalaka avatar
lá cờ in
@poncho đó là sự thật, tôi đã không kiểm tra điều đó. Tôi sẽ xóa phần đó cho đến khi nó được giải quyết.
kelalaka avatar
lá cờ in
@poncho cảm ơn, tôi không biết tại sao $d=5$ không hoạt động, tôi đã giải quyết vấn đề với quadratic_twist của SageMath, mặc dù cách đó chậm hơn nhiều.
kelalaka avatar
lá cờ in
@oberstet Không thể là đường cong BN vì $p \equiv 1 \bmod 4$, đường cong BN yêu cầu $p \equiv 3 \bmod 4$
oberstet avatar
lá cờ in
đúng rồi. Tôi đoán rằng tôi đã tìm kiếm quá nhiều một "tên đường cong chính thức/thích hợp";) nhưng, như đã đề xuất, tôi đã DM'ed Daria Hopwood (ở trên) qua Keybase và bao gồm một liên kết tới bài đăng ở đây. Hãy xem nào.
Ariel avatar
lá cờ cn
"Không có gì trong tay áo của tôi", [generator](https://github.com/starkware-libs/starkex-resources/blob/44a15c7d1bdafda15766ea0fc2e0866e970e39c1/crypto/starkware/crypto/signature/signature.py#L50) là thứ hai trong [mảng] này(https://github.com/starkware-libs/starkex-resources/blob/44a15c7d1bdafda15766ea0fc2e0866e970e39c1/crypto/starkware/crypto/signature/pedersen_params.json#L25), được tạo từ các chữ số của $ \pi$.
kelalaka avatar
lá cờ in
@Ariel cảm ơn vì các liên kết.
oberstet avatar
lá cờ in
@Ariel cảm ơn! Tôi có thể xác minh rằng: tập lệnh `nothing_up_my_sleeve_gen.py` thực sự sử dụng số Pi để tính toán G và tệp JSON chính xác là đầu ra của tập lệnh https://gist.github.com/oberstet/35b55f21a73a94fb1d1c13f4d6dd5323 https://github.com /starkware-libs/starkex-resources/blob/44a15c7d1bdafda15766ea0fc2e0866e970e39c1/crypto/starkware/crypto/signature/nothing_up_my_sleeve_gen.py#L56
Dan Carmon avatar
lá cờ us
@kelalaka $d=5$ không hoạt động vì 5 _is_ dư bậc hai modulo $p$ (dễ kiểm tra $p \equiv 1 \pmod 5$). Thay vào đó, bạn có thể lấy $d=3$, đây là giá trị không dư kể từ $p \equiv 5 \pmod {12}$.
kelalaka avatar
lá cờ in
@DanCarmon à. Tính toán QR của tôi đã có một sai lầm sau đó. Cảm ơn. Tôi sẽ kiểm tra lại cả hai ...

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.