Điểm:3

Chứng minh rằng $x$ là tổng của các số được ký điện tử mà không làm lộ mệnh đề

lá cờ pg

Hãy tưởng tượng điều này:

  • Charlie chọn hai số nguyên $x_1$$x_2$ và ký từng số nguyên này bằng cùng một khóa riêng.
  • Charlie gửi những điều sau đây cho Alice:
    • $x_1$$x_2$,
    • hai chữ ký và
    • khóa công khai của mình.
  • Alice tính toán $x = x_1 + x_2$ và gửi thông tin sau cho Bob:
    • $x$
    • Khóa công khai của Charlie.

Alice có thể chứng minh cho Bob (không liên quan đến Charlie) rằng $x$ là tổng của hai số đã được ký bởi Charlie, mà không tiết lộ $x_1$$x_2$ gửi Bob?

Một ví dụ trong thế giới thực có thể là: Tôi có thể chứng minh bằng mật mã rằng hai thẻ tín dụng của tôi cùng nhau có thể thanh toán một khoản phí mà không tiết lộ thông tin về từng thẻ tín dụng không?

Tôi biết rất ít về mật mã và thực sự không biết tìm giải pháp ở đâu.Tôi nghĩ rằng điều này có thể đi theo hướng tính toán bảo vệ quyền riêng tư và có lẽ là bằng chứng không có kiến ​​​​thức? Bất kỳ gợi ý được chào đón!

Điểm:4
lá cờ my

Như Mark đã nói, về mặt lý thuyết, đó là một vấn đề có thể giải quyết được (chúng tôi biết cách thực hiện; các phương pháp đã biết không đơn giản).

Tuy nhiên, bằng cách điều chỉnh mọi thứ xung quanh một chút, chúng ta có thể làm cho vấn đề này trở nên dễ dàng.

Giải pháp của tôi dựa trên các cam kết của Pedersen; chúng dựa trên một nhóm có kích thước nguyên tố lớn (trong đó vấn đề nhật ký rời rạc gặp khó khăn) và hai thành viên nhóm $g$$h$ (không có mối quan hệ đã biết; cụ thể, không ai biết giải pháp $x$ đến $g^x = h$).

Cam kết của Pedersen về giá trị $x$ là giá trị $g^x h^r$, đối với một số ngẫu nhiên $r$; tính chất; chúng tôi có thể đưa ra cam kết (bằng cách công bố giá trị $g^x h^r$), rồi sau đó mở cam kết (bằng cách xuất bản các giá trị $x, r$; bất kỳ ai cũng có thể xác minh rằng những giá trị đó mang lại cam kết.

  • Ai đó đang nhìn $g^x h^r$ không thể xác định những gì $x$ là (trên thực tế, đối với mọi giá trị có thể có của $x$, có một giá trị $r$ điều đó sẽ mang lại giá trị cam kết đó)

  • Tổ chức phát hành không thể mở cam kết theo hai cách; nghĩa là, nếu anh ta đưa ra một cam kết $g^x h^r$, anh ta không thể tìm thấy một giá trị $r'$ như vậy mà $g^{x'} h^{r'}$ đánh giá về cùng một giá trị.

Với nền tảng đó trong tâm trí, anh ấy là đề xuất của tôi:

Charlie gửi các giá trị sau cho Alice:

  • $x_1$$x_2$

  • Các cam kết đã ký đối với các giá trị đó, nghĩa là các bản sao đã ký của $g^{x_1} h^{r_1}$$g^{x_2}h^{r_2}$

  • Các giá trị ngẫu nhiên $r_1$$r_2$ (vì anh ấy đã đưa ra những giá trị mà anh ấy cam kết, nên việc đưa cho anh ấy những giá trị ngẫu nhiên này là vô hại)

  • Khóa công khai của anh ấy

Alice sau đó tính toán $x = x_1 + x_2$và tạo ra một bằng chứng không biết rằng tổng của hai giá trị được cam kết bởi $g^{x_1} h^{r_1}$$g^{x_2}h^{r_2}$$x$. Điều này có thể được thực hiện bằng cách tạo ra một bằng chứng về kiến ​​thức mà Alice biết giá trị $s$ như vậy mà $h^s = g^{x_1} h^{r_1} \cdot g^{x_2}h^{r_2} \cdot g^{-x}$; Alice chỉ có thể tạo ra một bằng chứng như vậy nếu $x_1 + x_2 = x$

Alice sau đó chuyển tiếp cho Bob giá trị $x$, hai cam kết đã ký, khóa công khai (để Bob có thể xác minh chữ ký) và bằng chứng không biết (mà Bob cũng có thể xác minh).

Điều này dường như để giải quyết mục tiêu cuối cùng (và khá đơn giản; có một số chi tiết mà tôi chỉ lướt qua một cách mơ hồ, tuy nhiên một chút nghiên cứu sẽ làm sáng tỏ những điều đó).

Elias Strehle avatar
lá cờ pg
Cảm ơn, đây có thể chính xác là những gì tôi đang tìm kiếm! Phương pháp này cũng có thể được thực hiện để hoạt động với $x_1 * x_2$ không? Và liệu có thể mở rộng điều này cho các bộ giá trị đã ký $(c, x_1), (c, x_2)$ và chứng minh không chỉ rằng $x = x_1 + x_2$ mà còn cả các hằng số $c$ giống hệt nhau mà không tiết lộ $c$ ? ... đối với phần mở rộng sau, cách giải thích trong thế giới thực là tôi chỉ có thể sử dụng thẻ tín dụng do chính tên mình cấp (= c).
poncho avatar
lá cờ my
@EliasStrehle: các bộ dữ liệu đã ký sẽ dễ dàng; tạo riêng các cam kết cho $c$ và $x_1$ (và ký cả hai cam kết dưới dạng một tin nhắn); tương tự cho $c$ và $x_2$. Sau đó, tạo bằng chứng rằng cả $x = x_1 + x_2$ và hai $c$ đều có cùng giá trị. Đối với sản phẩm, đó là phức tạp hơn. Bạn không chỉ nghĩ ra một cách dễ dàng ngay lập tức mà còn gặp vấn đề là (nếu bạn đang nhân với $\mathbb{Z}$), bạn có thể đưa tích $x_1 \times x_2$ ra thừa số chỉ với một số khả năng cho $x_1, x_2$ (và trừ khi sản phẩm đó khá lớn, còn không thì rất dễ)
Elias Strehle avatar
lá cờ pg
Trên thực tế, nó sẽ là phép nhân trong $\mathbb{R}$ ...vì vậy tôi cho rằng điều đó giải quyết được một vấn đề với cái giá phải trả là một vấn đề lớn hơn ;-) Nhưng cảm ơn rất nhiều vì nhận xét của bạn! Thật đáng kinh ngạc những gì người ta có thể đạt được với mật mã.
Elias Strehle avatar
lá cờ pg
Chuyển đổi nhật ký có hoạt động đối với phép nhân không? Tức là, Charlie cam kết $\log x_1$ và $\log x_2$ và Alice gửi $x = x_1 * x_2$ cho Bob và chứng minh rằng $\log x = \log(x_1 * x_2) = \log x_1 + \log x_2$. Tuy nhiên, không chắc điều đó có thực tế hay không, khi nghĩ đến các lỗi làm tròn ...
poncho avatar
lá cờ my
@EliasStrehle: điều đó nghe có vẻ khả thi (với điều kiện là $\log$ đang được tính toán bên ngoài tiền điện tử). Tất nhiên, bạn cần chèn một hệ số tỷ lệ; tuy nhiên, do kích thước của các nhóm (và do đó, kích thước của các giá trị mà chúng tôi có thể cam kết) là khá lớn (ít nhất là 256 bit, có thể lớn hơn), có *rất nhiều* không gian để làm như vậy...
Điểm:1
lá cờ ng

Bạn đang tìm kiếm khái niệm về một chữ ký đồng hình bổ sung. Nói chung, đồng cấu là một hàm "tôn trọng một phép toán", nghĩa là:

$$f : A\to B,\qquad f(a_0+a_1) = f(a_0)\oplus f(a_1)$$

ở đây, tôi sử dụng $+, \oplus$ để viết hai "hoạt động cộng" (có khả năng khác nhau). Vì vậy, một đồng cấu phụ gia hoạt động tốt đối với phép nhân. Tương tự,

$$f : A\to B,\qquad f(a_0\times a_1) = f(a_0) \otimes f(a_1)$$

sẽ là một phép đồng hình bội (mặc dù điều này không quan trọng ở đây).

Trong ngôn ngữ này, tất cả những gì bạn muốn là một chữ ký đồng hình bổ sung. Nhiều tồn tại, xem ví dụ tờ giấy này. Thật không may, tôi không biết bất kỳ điều gì đặc biệt đơn giản (điều này hơi khác so với mã hóa đồng cấu bổ sung --- có một số sơ đồ đơn giản). Nhưng những gì bạn muốn ít nhất là một khái niệm nổi tiếng về mặt lý thuyết.

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