Điểm:1

Có bất kỳ khóa công khai nào mà khóa riêng có thể dễ dàng lấy được (ECDSA) không?

lá cờ in

Tôi biết rằng nói chung, không thể tìm thấy khóa riêng tư cho bất kỳ khóa chung nào. Nhưng tôi cũng bắt gặp câu hỏi "Tìm ECDSA PrivKey để PubKey = 0", trong đó giải thích rằng khóa riêng cho khóa chung 0x0000...0000 có thể dễ dàng suy ra.

Từ câu trả lời cho câu hỏi đó, có vẻ như khóa công khai 0x0000...0000 là khóa công khai duy nhất trong trường hợp này, nhưng chưa hiểu rõ về nó để biết chắc chắn.

Vì vậy, câu hỏi đặt ra là, có bất kỳ khóa công khai khả thi nào khác không (ví dụ: 0xffff...ffff hoặc 0x0000...0001) để dễ dàng lấy được khóa riêng tư tương ứng?

Điểm:1
lá cờ in

lời mở đầu

Một mặt của sự an toàn của ECDSA phụ thuộc vào bảo mật logarit rời rạc của Đường cong Elliptic đã sử dụng (gọi nó là $E$). Các đường cong elip tạo thành một nhóm đại số cộng có thứ tự $n$. Nếu nhóm được hình thành bởi đường cong được sử dụng là một nhóm chung thì cuộc tấn công cổ điển tốt nhất là $\mathcal{O}(\sqrt{2^n})$ - Pollard's Rho.

ECDSA

khóa riêng $k$ được tính như một số nguyên ngẫu nhiên trong khoảng $[1,n-1]$ và giữ bí mật mọi lúc. Lưu ý rằng khóa riêng $k$ là một số nguyên, không phải là một điểm trên đường cong $E$.

khóa công khai $P$, mặt khác, được tính như một điểm $p = [k]G$ ở đâu $G$ là điểm cơ sở của đường cong được xác định trong các tiêu chuẩn và hoạt động $[k]G$ được gọi là phép nhân vô hướng được định nghĩa là;

$$[k]G : = \underbrace{G + G + \cdots + G}_{k-times}$$

Điều này không nên nhầm lẫn với phép nhân, không, đây là những gì chúng tôi viết để đơn giản hóa $k$-lần bổ sung.

Các $[k]P$ có thể được tính toán ít nhất bằng thuật toán nhân đôi và cộng để nhanh chóng tính toán trong $\mathcal{O}(\log k)$-thời gian.

Các điểm

Bây giờ như chúng ta có thể thấy, ngay cả $k=0$ không phải là vấn đề trong ECDSA vì nó không phải là giá trị hợp lệ cho $k$.

Nếu nhật ký rời rạc dễ dàng

  • Nếu nhật ký rời rạc dễ dàng trên đường cong này, thì đó là việc tìm kiếm $k$ được cho $[k]G$, thì mọi giá trị đều dễ dàng suy ra.

  • Nếu đường cong được mở cửa sau với một điểm cơ sở khác $H$, tức là ai đó có thể giải logarit rời rạc về cơ số $H$ trên nhóm đường cong. Sau đó, họ có thể sử dụng điều này để giải quyết Dlog trên cơ sở $G$ rất dễ dàng;

    • Họ tính toán $G = [t]H$$t \in [1,n-1]$ chỉ một lần
    • Họ giải quyết $P =[k\cdot a]G$ đến cơ sở $H$$a \in [0,n-1]$. Một lần $ka$ được tìm thấy $k$ có thể được tính như $k = a \cdot k \cdot a^{-1}$ kể từ khi chúng ta biết $a$$a^{-1} \cdot a = 1 \bmod n$.

Nếu nhật ký rời rạc không dễ dàng

Trong trường hợp này, người ta có thể tính toán một số trong số chúng với sức mạnh tối đa của chúng. Giả sử bạn có thể sử dụng siêu máy tính Summit và bạn có khả năng tính toán $2^{70}$ nhân đôi và cộng cho một số nhất định $t$. Các em tính toán và lập bảng băm để truy vấn nhanh sự tồn tại của log rời rạc trong dãy $[1,2^{70}]$. Quá trình chạy trong một năm và dung lượng lưu trữ cần thiết là $2^{70}*256*3$-bit (~147574 Petabyte). Chà, lưu trữ là một trong những vấn đề và vấn đề khác là bảng băm có thể không $\mathcal{O}(1)$ nữa không. Giả sử rằng bạn đã giải quyết được vấn đề này, thì xác suất mà bạn có thể tìm thấy một khóa riêng đã cho từ khóa chung là bao nhiêu. Giá trị chính xác phụ thuộc vào nhóm đường cong, giả sử người ta sử dụng nhóm đường cong có kích thước $2^{256}$ để được an toàn chống lại các cuộc tấn công Dlog tiêu chuẩn. Xác suất trúng là $$\frac{2^{70}}{2^{256}} = \frac{1}{2^{186}}.$$ Điều này thậm chí có ít xác suất hơn nhiều so với $\dfrac{1}{100}$, vì vậy chúng tôi nói điều đó sẽ không xảy ra!

Thay vì các lựa chọn ngẫu nhiên tuần tự của $t$s thay đổi kết quả, KHÔNG!


Lưu ý đặc biệt 1:0x0000...0000 là mã hóa thông thường của $\mathcal{O}(n)$ từ $(0,0)$ không nằm trên đường cong. Điều này không được chấp nhận như một khóa công khai hợp lệ trong GIÂY 1 Phiên bản. 2.0 mục 3.2.2.1.


Lưu ý đặc biệt 2: Một số đường cong elip là đường cong nguyên tố, điều này có nghĩa là nhóm mà chúng tạo thành có thứ tự nguyên tố. Trong trường hợp này, mọi phần tử đều là trình tạo, ngoại trừ phần tử nhận dạng. Nếu thứ tự không phải là số nguyên tố, như trong Curve25519, thì chúng ta có đồng sáng lập $h = \#E(K)/n$ ở đâu $n$ là số nguyên tố lớn nhất chia bậc của đường cong. Nếu sử dụng nhóm đầy đủ, có thể dễ dàng nhận thấy các phần tử có thứ tự nhỏ, chỉ cần kiểm tra $[o]P = \mathcal{O}$ hay không, ở đâu $o$ là thứ tự nhỏ. Đối với Curve25519, $o$ giá trị là $2,4,$$8$. Đây không phải là vấn đề bảo mật vì người dùng hợp pháp luôn chọn $k \equiv 0 \pmod 8$.

kelalaka avatar
lá cờ in
Vâng, tôi đã viết một câu trả lời dài để nói gần như không! Bắn tôi đi!
lá cờ in
Cảm ơn câu trả lời chi tiết, nó rất sâu sắc!

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