Điểm:3

Thủ thuật Strauss-Shamir về phép nhân EC với vô hướng

lá cờ cn

Tôi đang nghiên cứu về ECDSA và hầu như tất cả các bài viết chi tiết đều nói về việc sử dụng thủ thuật Strauss-Shamir ở bước xác minh.
Sau đó, tôi đã tìm kiếm, và tìm thấy cái này giải thích (giống như một tuyên bố) cho thuật toán, và sau đó cái này khác pdf (trang 7) giải thích chi tiết hơn một chút. Nhưng không ai trong số họ cung cấp một lời giải thích tại sao nó hoạt động.
Tôi muốn có một số loại trình diễn hoặc ví dụ về nó từng bước? Anyhting đi từ một Shamir-Straus cho người giả đối với một cuộc biểu tình chính thức hoặc một tài liệu tham khảo cho bất kỳ tác phẩm nào đối với tôi, toán học không phải là một vấn đề.

fgrieu avatar
lá cờ ng
Bạn có hiểu thủ thuật Shamir cơ bản có thể sử dụng được trong DSA (không phải EC) để tính toán $g^u\,y^v\bmod p$ nhanh hơn đáng kể so với $(g^u\bmod p)\,(y) ^v\bmod p)\bmod p$? Nó cũng có thể sử dụng được trong ECDSA. Tôi nghĩ thủ thuật Strauss-Shamir là một phần mở rộng. Tôi không quen với nó.
lá cờ cn
Tôi sợ rằng tôi đã không nghe nói về nó.
fgrieu avatar
lá cờ ng
Ah, tôi nghĩ thủ thuật Shamir đó là một bước hữu ích. Trước đó: bạn có hiểu lũy thừa mô-đun theo bình phương và nhân với quét số mũ bắt đầu từ bit quan trọng nhất không? Ví dụ. rằng người ta có thể tính $g^{21}\bmod p$ với 4 phép bình phương mô-đun và 2 phép nhân mô-đun, với các bước trung gian $g^2\bmod p$, $g^4\bmod p$, $g^5\bmod p$, $g^{10}\bmod p$, $g^{20}\bmod p$, và cuối cùng là $g^{21}\bmod p$ ?
lá cờ cn
Tôi đã xem [câu hỏi này](https://math.stackexchange.com/questions/119374/modular-exponentiation-by-repeated-squaring) để hiểu những gì bạn nói và tôi đã đi đến kết luận rằng tôi loại có được ý tưởng đằng sau nó. $ g^{21} = g^{(10101)_2} = g^{16}*g^{4}*g $, do đó, bạn chỉ cần tính $ g^{20} $ bằng cách tính các phép nhân nhỏ nhất quyền hạn thấp nhất có thể để có được kết quả. (Tuy nhiên, tôi vẫn không hiểu thủ thuật Shamir-Strauss về phép nhân EC theo vô hướng).
lá cờ cn
Nhưng việc hiểu những gì bạn đề xuất chắc chắn đã cho tôi một số thông tin để thử và hiểu sâu hơn các tài liệu tham khảo đã nêu, cảm ơn bạn!
lá cờ pe
[Khảo sát của Bernstein](https://cr.yp.to/papers/pippenger-20020118-retypeset20220327.pdf) về phương pháp lũy thừa bao gồm phương pháp của [Straus](https://www.jstor.org/stable/2310929) trên Phần 3.
Điểm:3
lá cờ ng

Tôi sẽ mô tả thủ thuật Shamir tiêu chuẩn phù hợp với ngữ cảnh của xác minh chữ ký ECDSA. Giảm một số chỉ số, phần tính toán đắt tiền của nó là tính toán $$u\cdot G+v\cdot Q$$ ở đâu $u$$v$ là (chúng tôi giả sử, hoàn toàn tích cực) số nguyên, $G$$Q$ là các điểm Đường cong Elliptic và $+$ là điểm cộng (để đơn giản hóa, tôi xem xét một hộp đen, mà việc thực thi chi phối chi phí tính toán). Nhớ lại rằng theo định nghĩa, $$u\cdot G=\underbrace{G+G+\ldots+G+G}_{u\text{ term}}$$

Đáng lưu ý $\mathbin\|u\mathbin\|$ cho số bit trong số nguyên $u$, đó là $\left\lfloor\log_2(u)+1\right\rfloor$; giống với $\mathbin\|v\mathbin\|$.

Một cách tính toán phổ biến $u\cdot G$ là để

  • bộ $R:=G$
  • cho bit $b$ được sao chép từ biểu diễn nhị phân của $u$, bắt đầu từ chỉ số $\mathbin\|u\mathbin\|-1$ (bit đầu tiên bên phải của ngoài cùng bên trái $1$ bit) xuống tới $0$ (bit ngoài cùng bên phải)
    • bộ $R:=R+R$
    • nếu $b=1$, bộ $R:=R+G$

Cách tính cơ bản $u\cdot G+v\cdot Q$ sẽ là để tính toán $u\cdot G$, sau đó $v\cdot Q$ bằng phương pháp tương tự, sau đó cộng hai kết quả. Thủ thuật của Shamir cải thiện điều đó:

  • bộ $H:=G+Q$
  • nếu $\mathbin\|u\mathbin\|>\mathbin\|v\mathbin\|$, bộ $R:=G$;
  • khác nếu $\mathbin\|u\mathbin\|<\mathbin\|v\mathbin\|$, bộ $R:=Q$;
  • khác (nghĩa là nếu $\mathbin\|u\mathbin\|=\mathbin\|v\mathbin\|$ ), bộ $R:=H$;
  • cho bit $b$ (tương ứng $c$) được sao chép từ biểu diễn nhị phân của $u$ (tương ứng $v$), với các đại diện của $u$ hoặc $v$ đệm trái với số 0 khi cần thiết, tại chỉ mục từ $\max(\mathbin\|u\mathbin\|,\mathbin\|v\mathbin\|)-1$ xuống đến $0$
    • bộ $R:=R+R$
    • nếu $b=1$$c=0$, bộ $R:=R+G$
    • (khác) nếu $b=0$$c=1$, bộ $R:=R+Q$
    • (khác) nếu $b=1$$c=1$, bộ $R:=R+H$

Tuyên bố này gần tương đương với tuyên bố được đưa ra trong câu trả lời này dưới cái tên thủ thuật Strauss-Shamir (khi tôi biết thủ thuật này là của Shamir). Biến thể tôi đưa ra tránh nhu cầu biết nhóm trung lập, nhưng yêu cầu $\max(u,v)>0$.

Tính đúng đắn của phép nhân điểm tiêu chuẩn và mẹo của Shamir có thể được chứng minh chính thức bằng quy nạp.

Đối với ngẫu nhiên lớn $u$$v$ của $k$ bit, thuật toán ngây thơ để tính toán $u\cdot G+v\cdot Q$ thực hiện trung bình $\xấp xỉ3k$ bổ sung điểm, thủ thuật của Shamir làm giảm điều đó xuống $\khoảng 1,75k$, chẳng hạn như ít hơn 42% (lợi ích chi phí thấp hơn, phần lớn là do nhân đôi điểm $R:=R+R$ là loại cộng điểm nhanh nhất và là loại bị giảm nhiều nhất). Có những cải tiến hơn nữa có thể, ví dụ: nhóm các bit thành hai hoặc nhiều hơn một chút, có lẽ với "cửa sổ trượt" khi $b=0=c$.

Lưu ý rằng trong bối cảnh xác minh chữ ký, $u$, $v$, $G$$Q$ tất cả đều công khai, do đó, các kênh phụ (thời gian, mức tiêu thụ năng lượng, phát xạ, bộ nhớ cache...) không phải là vấn đề bảo mật vì chúng đang trong quá trình tạo chữ ký.

Tôi không biết thủ thuật Strauss-Shamir của câu hỏi tài liệu tham khảo khác, nhưng nghi ngờ một cách mơ hồ rằng nó sẽ cải thiện hơn nữa vấn đề này bằng cách đôi khi thực hiện phép trừ thay vì phép cộng và/hoặc tương thích hơn với kỹ thuật tăng tốc để cộng điểm.

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