Điểm:2

Bí mật phép tính nhân hai số thuộc sở hữu của hai người

lá cờ br
Leo

Ví dụ, Alice và Bob có hai số $a$$b$, tương ứng. Họ muốn tính phép nhân $a\cdot b$ mà Alice không biết $b$ hoặc Bob biết $a$ và gửi phép nhân này $a\cdot b$ đến Carol. Carol sẽ sử dụng cái này $a\cdot b$ để làm ứng dụng tiếp theo. Carol sẽ không thông đồng với Alice hay Bob. Có cách nào và thư viện/công cụ trong Golang để đạt được điều này không? Cảm ơn bạn!

Điểm:1
lá cờ cn

Một giải pháp mà không giả định rằng $a$$b$ khác không và không cần phải tính toán nghịch đảo nhân, điều này cũng không liên quan đến giao tiếp giữa Alice và Bob, ngoài việc có thỏa thuận trước về một chuỗi ngẫu nhiên chung (điều này được gọi là mô hình "thông báo đồng thời riêng tư"):

Alice và Bob đồng ý về $r,s,t$ (ba số ngẫu nhiên). Alice gửi $c = a+r, c' = c\cdot s + t$ cho Carol, và Bob gửi $d = b+s, d' = b\cdot r - t$ đến Carol. Carol tính toán $c\cdot d - (c' + d')$.

Ở đây, tổng có thể được thực hiện modulo $n$, ở đâu $n$ là giới hạn trên công khai trên $a$$b$và "ngẫu nhiên" có nghĩa là một yếu tố ngẫu nhiên thống nhất của $\mathbb{Z}/n\mathbb{Z}$.

Lưu ý: điểm mấu chốt trong câu hỏi của bạn là giả định rằng Carol sẽ không thông đồng với Alice và Bob. Một kết quả cổ điển là tính toán an toàn không yêu cầu bất kỳ giả định về mật mã hoặc tính toán nào ngay khi số lượng các bên có thể thông đồng hoàn toàn dưới một nửa tổng số, đó là trường hợp ở đây. Do đó, bạn sẽ không cần các thư viện/công cụ đặc biệt trong Golang, ngoài số học cơ bản.

Geoffroy Couteau avatar
lá cờ cn
Bạn nói đúng, tôi nên kiểm tra những gì tôi đã viết trước khi gửi. Tôi đã loại bỏ giải pháp đầu tiên và thay thế bằng giải pháp thứ hai. Cảm ơn!
knaccc avatar
lá cờ es
Nhân tiện, bạn đang nói rằng bộ ba $(r,s,t)$ tương tự có thể được sử dụng lại mà không ảnh hưởng đến tính bảo mật của chương trình? Đây có vẻ là một kỹ thuật thực sự hữu ích - các biến thể của nó có được sử dụng trong bất kỳ ứng dụng thực tế nào mà bạn biết không?
Geoffroy Couteau avatar
lá cờ cn
Không, không thể sử dụng lại $r,s,t$: ví dụ: nếu $r$ được sử dụng lại với một $a'$ mới, Carol sẽ học được $a-a'$.Tuy nhiên, cách tiếp cận phổ biến ở đây là sử dụng giả ngẫu nhiên: Alice và Bob chỉ đồng ý về một hạt giống ngắn và mở rộng nó thành một số lượng gấp ba tùy ý $(r_i,s_i,t_i)$ khi cần, ngay lập tức mà không cần sử dụng thêm tương tác (ví dụ: sử dụng hàm giả ngẫu nhiên)
Geoffroy Couteau avatar
lá cờ cn
Sơ đồ tôi đã mô tả về bản chất là mã hóa ngẫu nhiên cho chức năng sản phẩm. Mã hóa ngẫu nhiên có nhiều ứng dụng mạnh mẽ trong mật mã học (xem [bài báo này](https://ieeexplore.ieee.org/document/892118) và nhiều phần tiếp theo của nó). Kỹ thuật này khá thực tế và có thể dễ dàng được sử dụng trong các ứng dụng trong thế giới thực, mặc dù tôi không biết về bất kỳ ứng dụng thực tế cụ thể nào sử dụng chúng (nếu phải đặt cược, tôi vẫn sẽ đặt cược rằng một số ứng dụng thực tế sử dụng kỹ thuật này).
Điểm:1
lá cờ es

Tôi giả định rằng số của bạn là số nguyên lớn hơn 0 và nhỏ hơn $n$.

Alice chọn một yếu tố mù ngẫu nhiên thống nhất $k$ ở đâu $0<k<n$, và gửi $k\cdot a$ đến Bob và $k$ đến Carol. Bob gửi $k\cdot a\cdot b$ đến Carol. Carol tính toán $a\cdot b=k^{-1}\cdot k\cdot a\cdot b$.

Tất cả các hoạt động cần phải được thực hiện $mod\ n$. Sản phẩm $a\cdot b$ Phải nhỏ hơn $n$, trừ khi bạn đang xử lý các khóa vô hướng/khóa riêng, trong trường hợp Carol lấy được sản phẩm không thành vấn đề $mod\ n$.

$k^{-1}$ có nghĩa là những nghịch đảo nhân mô-đun của $k$. Vì vậy, bạn nên đảm bảo sự lựa chọn của bạn $n$ là nguyên tố.

Tùy thuộc vào ứng dụng của bạn, bạn có thể sử dụng các số này làm khóa riêng, trong trường hợp đó bạn nên chọn $n$ sao cho nó là thứ tự nhóm chính của trình tạo của bạn. Ví dụ. đối với Curve25519 hoặc Ed25519, hãy sử dụng thứ tự được chỉ định trong rfc7748, hoặc sử dụng $q$ giá trị được nêu cho một nhóm MODP trong rfc5114.

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