Điểm:2

Vận chuyển Ed25519 đến X25519

lá cờ ru

sử dụng

montgomeryX = (edwardsY + 1)*nghịch đảo(1 - edwardsY) mod p

có thể vận chuyển một điểm đường cong Edwards (Ed25519 khóa công khai) vào đường cong Montgomery. Liệu nó có bất kỳ tác dụng phụ nếu Ed25519 khóa công khai không hợp lệ, trong trường hợp tấn công nhóm nhỏ hoặc đường cong không hợp lệ chẳng hạn?

Và nếu có, giải pháp tốt nhất để xử lý đúng cách là gì?

kelalaka avatar
lá cờ in
Tại sao bạn muốn chuyển đổi? Bạn có muốn sử dụng cùng một khóa cho ed25519 và DHKE X25519 không? Chúng [tương đương song phương](https://ed25519.cr.yp.to/ed25519-20110926.pdf) có phải bạn đang hỏi [xác thực 25519 điểm](https://crypto.stackexchange.com/q/87709/18298) hoặc [Trao đổi khóa X22519](https://crypto.stackexchange.com/a/68129/18298)?
FooBar avatar
lá cờ ru
Mục tiêu của tôi là tạo bí mật dùng chung bằng x25519 ECDH, nhưng giao thức hiện tại chia sẻ khóa ed25519. Vì vậy, có một chút khó hiểu, cả hai.
kelalaka avatar
lá cờ in
Bạn đang nói về giao thức nào? X25519 được thiết kế cho ECDH. Người sử dụng Ed25529 cho ECDH sử dụng nó không chính xác. Xem libsodium..
FooBar avatar
lá cờ ru
không phải là một giao thức công cộng, đó là một bước khởi tạo mã hóa nội bộ của khởi tạo kết nối của chúng tôi. Kế hoạch là tạo ra một bí mật được chia sẻ bằng cách sử dụng khóa công khai ed25519 được vận chuyển bằng đường cong montgomery. Tất nhiên ECDH trên ed25519 không phải là mục tiêu.
kelalaka avatar
lá cờ in
Tốt hơn nên tạo một khóa ngẫu nhiên thống nhất và sử dụng KDF như HKDF có hai khóa khác nhau. Nó tốt hơn là sử dụng một phím duy nhất cho cả hai. Một là biến mất tất cả!
kelalaka avatar
lá cờ in
Và chuyển đổi là $$x = \frac{u}{v}\sqrt{-486664}, \quad y = \frac{u - 1}{u + 1}$$ và sử dụng XEd25519 như được sử dụng bởi Signal sử dụng Curve25519?
FooBar avatar
lá cờ ru
tôi có thể thấy quan điểm của bạn. Cho đến nay, tôi đã thấy một số triển khai thực hiện x25519 ECDH bằng cách sử dụng cặp khóa ed25519, chuyển điểm đường cong edwards sang đường cong montgomery. Đó có phải là thực hành xấu?
kelalaka avatar
lá cờ in
Hãy cẩn thận, tín hiệu sử dụng [bánh răng kép cho ECHE](https://dspace.cvut.cz/bitstream/handle/10467/76230/F8-DP-2018-Rubin-Jan-thesis.pdf?sequence=-1) để người ta có thể có các khóa phù du.
knaccc avatar
lá cờ es
Có lý do nào khiến bạn không thể tạo một cặp khóa X25519 mới, tạm thời cho mỗi ECDH và yêu cầu mỗi bên ký khóa công khai X25519 bằng khóa Ed25519 của họ không? Điều đó sẽ cung cấp bí mật về phía trước. Và nếu có lý do chính đáng để có khóa dài hạn cho ECDH, thì có lý do gì mà mọi người không thể xuất trình cả khóa công khai Ed25519 và khóa chung X25519 cho người khác không? Chúng chỉ có 32 byte mỗi cái.
kelalaka avatar
lá cờ in
@knaccc vâng, đó là cách. Tôi thấy bình luận của bạn bây giờ.
Điểm:3
lá cờ in

Curve25519 và Ed25519

Một đường cong Montgomery được xác định trên một trường $K$ được định nghĩa là; $$M_{A,B}: Bv^2 = u^3 + Au^2 + u$$ chắc chắn $A,B \trong K$ và với $B(A^2-4) \neq 0$.

đường cong25519 sử dụng thủ $q = 2^{255} â 19$ để tạo thành trường hữu hạn $\mathbb{F}_q$ và lần đầu tiên được xác định cho ECDH và sau đó được đặt tên X25519. phương trình Montgomery là $$v^2 = u^3+486662 u^2+u$$ với $486664$ là một hình vuông trong $\mathbb{Z}_p$, tức là Nó là Dư lượng Bậc hai (QR). $u = 9$ đã chọn làm điểm gốc. Biểu mẫu Weierstrass (một nhu cầu cho SageMath)

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

Đường cong âCurve25519â này là tương đương hai chiều trên $\mathbb{Z}_p$ đến đường cong Edwards Ed25519 $$x^2 + y^2 = 1 + (121665/121666)x^2y^2$$ với;

$$x = \frac{\sqrt{486664}u}{v}, \quad y = \frac{(u â 1)}{(u + 1)}$$

Các hoạt động ngược lại là;

$$u = \frac{(y + 1)}{(1 - y)}, \quad v = \frac{\sqrt{486664}u}{x}$$

Dạng Edward có một đường cong đẳng cấu

$$-x^2 + y^2 = 1 - (121665/121666)x^2y^2$$ từ $-1$ là QR trong một $\mathbb Z_p$


câu hỏi

montgomeryX = (edwardsY + 1)*nghịch đảo(1 - edwardsY) mod p có thể vận chuyển một điểm đường cong edwards (ed25519 khóa mu) sang đường cong montgomery.

Có, Như đã nêu ở trên, từ Montgomery đến Edwards $$u = \frac{(y + 1)}{(1 - y)}$$

Nó có bất kỳ tác dụng phụ nào không nếu khóa công khai ed25519 không hợp lệ, chẳng hạn như trong trường hợp một nhóm nhỏ hoặc cuộc tấn công đường cong không hợp lệ?

Khóa Edward25519 có thể được chuyển đổi thành Curve25519 và nếu khóa bí mật đã được tạo bằng trách nhiệm của người dùng hợp pháp

  • Người dùng hợp pháp được giả định là tạo các khóa bí mật ngẫu nhiên thống nhất độc lập. Ví dụ, một người dùng có thể tạo 32 byte ngẫu nhiên thống nhất, xóa các bit 0, 1, 2 của byte đầu tiên, xóa bit 7 của byte cuối cùng và đặt bit 6 của byte cuối cùng.

Trong định nghĩa đã đặt, chúng tôi muốn các khóa bí mật của X25519 là

$$\{n: n \in 2^{254} +8\{0,1,2,\dots,2^{251}-1 \}\},$$ nói cách khác, chọn một số ngẫu nhiên thống nhất giữa $[0,2^{251}-1]$ nhân nó với $8$ hơn là thêm $2^{254}$.

Thứ tự của điểm cơ sở là (Little-endian);

edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010

Sự sạch sẽ $0,1,2$ đảm bảo rằng

Dưới đây là giá trị tối đa (little-endian) và chúng ta có thể thấy rằng có hai khóa riêng có thể có cùng khóa chung, tuy nhiên, đây là sự kiện không đáng kể nhưng có thể tìm thấy.

0x8ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 7

thì không cần thiết vì sự tương đương hai tỷ lệ sẽ tạo ra các điểm có thứ tự không nhỏ nếu người dùng hợp pháp đã sử dụng các quy tắc.

Theo sự tương đương song lý của Curve25519 và edwards25519, mỗi khóa công khai X25519 tương ứng với hai khóa công khai Ed25519 có thể). X25519 chỉ sử dụng $x$ tọa độ (nơi tên đến) và Ed25519 sử dụng tọa độ của các điểm. Khi chúng ta chỉ có $x$ tọa độ của một điểm, có hai điểm có thể $(x,y)$$(x,-y)$ ngoại trừ $y=0$.

Và nếu có, giải pháp tốt nhất để xử lý đúng cách là gì?

không có nguy cơ Xác nhận điểm.


một số phụ

Sử dụng cùng một khóa

Tôi không thể trực tiếp nói rằng điều đó là không an toàn, tuy nhiên, quy tắc chung của chúng tôi là không sử dụng cùng một khóa cho các mục đích khác nhau. Cho đến khi một người chứng minh được rằng không có gì nguy hiểm nếu bạn không sử dụng cùng một khóa cho các mục đích khác nhau.

Có thể tốt hơn nếu có một khóa 256 bit ngẫu nhiên thống nhất và lấy hai khóa có mở rộng HKDF cho cả X25519 và Ed25519.

X25519

Hãy nhớ rằng khóa chung là cố định và khi bạn thực thi DHKE, điều này có nghĩa là bạn có DHKE tĩnh-tĩnh. Điều này không có bí mật về phía trước. Tốt hơn là những gì giao thức Tín hiệu làm; gấp đôi và bạn có thể ký khóa công khai mới bằng Ed25519.

Đă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.