Điểm:3

Mã hóa khóa công khai/bất đối xứng nơi bạn chỉ có thể rò rỉ tin nhắn được giải mã bằng cách rò rỉ mật khẩu của mình

lá cờ in

Một nhóm bạn đang sử dụng mã hóa khóa công khai để gửi tin nhắn được mã hóa cho nhau bằng một diễn đàn công khai mở. I E. mỗi người bạn có một khóa chung (mà bạn có thể sử dụng để mã hóa tin nhắn cho họ) và một khóa riêng (mà họ sử dụng để giải mã tin nhắn cho họ).

Bob gửi cho Alice tin nhắn được mã hóa $y$, mà khi được giải mã sẽ tạo ra văn bản $x=$"Tôi sẽ giết bạn trừ khi bạn gửi cho tôi \$1000". Alice, rõ ràng là tức giận, gửi cho mọi người tin nhắn không được mã hóa "Bob là một người xấu. Anh ấy nói $x$ với tôi, mà tất cả các bạn có thể xác minh bằng cách mã hóa nó bằng khóa công khai của tôi để tạo $y$, mà trước đây anh ấy đã đăng trên diễn đàn công cộng của chúng tôi." Đây là một phương pháp đầy đủ bằng chứng để Mary tiết lộ thông điệp của Bob cho mọi người.

Câu hỏi của tôi là, có bất kỳ sơ đồ mã hóa khóa công khai/bất đối xứng nào có thể ngăn Mary tiết lộ thông điệp được mã hóa của Bob cho mọi người không? Ví dụ: một kế hoạch trong đó cách duy nhất Mary có thể chứng minh thông điệp được giải mã của Bob là tiết lộ khóa bí mật của cô ấy (mật khẩu cô ấy sử dụng để giải mã).

Chỉnh sửa: Tôi có một ý tưởng là sơ đồ mã hóa cho phép một số loại nonce hoặc ngẫu nhiên hóa an toàn nội dung thư được mã hóa thành. Ví dụ, nếu $x$ là văn bản mà Bob muốn mã hóa, anh ấy có thể chọn một "nonce" ngẫu nhiên $s$, và sản xuất $y_s$. Sau đó Mary có thể giải mã $y_s$ để có được $x$, nhưng cô ấy sẽ không biết $s$, vì vậy cô ấy không thể chỉ nói rằng $x$ sản xuất $y_s$ trừ khi cô ấy tiết lộ chìa khóa bí mật của mình. Tôi biết khái niệm nonce này tồn tại trong mật mã, nhưng nếu ai đó có thể cho tôi một ví dụ rõ ràng về cách triển khai nó (có lẽ với thứ gì đó đơn giản như RSA), điều đó sẽ được đánh giá rất cao.

lá cờ ph
Có vẻ như bạn chỉ cần mã hóa không mang tính quyết định, đây sẽ là trường hợp của tất cả các chương trình hiện đại.
poncho avatar
lá cờ my
Tôi không biết nếu điều này là có thể; Tôi không biết làm cách nào để ngăn Alice tạo ra Bằng chứng không có tri thức rằng cô ấy biết một khóa giải mã bản mã thành bản rõ...
Điểm:3
lá cờ my

Ý tưởng của bạn về một phương thức mã hóa bao gồm cả nonce và theo cách mà Alice không thể khôi phục nonce là thực tế; tuy nhiên nó không giải quyết được vấn đề của bạn.

Một khả năng sẽ là một biến thể của El Gamal; trong hệ thống này, khóa công khai của Alice là một giá trị $A= G^a \bmod p$, với $a$ là khóa riêng của Alice và $G, p$ là tham số công khai (với $p$ là một số nguyên tố an toàn, và $G$ dư bậc hai).

Để mã hóa một tin nhắn $M < p/2$, Bob sẽ chọn một giá trị ngẫu nhiên $r$, và tạo bản mã $G^r \bmod p, M^2 \cdot A^r \bmod p$.

Để giải mã cặp $X, Y$, Alice sẽ tính toán $M^2 = Y \cdot X^{-a} \bmod p$ (và sau đó lấy căn bậc hai mô-đun của $M^2$ để phục hồi $M$).

Nếu Alice lấy được cặp $X, Y$, cô ấy không biết giá trị $r$, và như vậy, thoạt nhìn, cho thấy rằng $G, A = G^a, X = G^r, Y \cdot M^{-2} = G^{ar}$ là một tập hợp DH là vấn đề Quyết định Diffie-Hellman, nói chung là khó; cô ấy có thể dễ dàng làm như vậy bằng cách phơi bày $a$, tuy nhiên đối với cô ấy, điều đó sẽ đánh bại mục đích.

Tuy nhiên, những gì cô ấy có thể làm là tạo ra một bằng chứng không có kiến ​​thức rằng $G^x = A$$X^x = Y \cdot M^{-2}$ có một giải pháp chung $x$ (điều mà cô ấy có thể làm, vì cô ấy biết giải pháp thông thường đó là gì); bằng chứng không kiến ​​thức này sẽ chỉ ra rằng $M$ là giải mã mà không để lộ khóa riêng của cô ấy.

Điều này dẫn đến quan sát tổng quát hơn; Nếu thuật toán giải mã $D$ và tạo khóa công khai $Gen$ cả hai đều chạy trong đa thời gian, sau đó tuyên bố rằng $D(a, C) = M \land (a, A) = Gen(hạt giống)$ (đối với công chúng $C$$M$ mà Alice tuyên bố là giải mã là một tuyên bố trong NP (với $a$$hạt giống$ là 'nhân chứng') và đối với một tuyên bố như vậy trong NP, người ta có thể xây dựng một bằng chứng không có kiến ​​​​thức, cho thấy rằng $M$ là một giải mã chính xác.

Vì vậy, trừ khi Bob có thể khẳng định rằng anh ấy đã không thực sự gửi bản mã $C$ (và tôi cho rằng bằng cách nào đó người ta cho rằng bằng cách nào đó mọi người đều biết anh ấy đã làm), nó không giống như một vấn đề có thể giải quyết được.

Điểm:1
lá cờ in

Tôi nghĩ rằng tôi đã tìm thấy một giải pháp để biến điều này thành có thể! Khái niệm chính được gọi là Xác thực có thể từ chối, và mục đích là để biết ai đang gửi tin nhắn, nhưng không thể chứng minh điều đó với người khác. Một triển khai thực tế và đơn giản có thể được tìm thấy trong Wei-Bin Lee, Chia-Chun Wu, Woei-Jiunn Tsaur (17 tháng 4 năm 2006) (xem phần 3 "Giao thức được đề xuất của chúng tôi"). Tôi sẽ phác thảo những điểm chính từ nó ở đây.

Nếu Sally người gửi muốn gửi tin nhắn cho Ryan người nhận, nó được thực hiện như thế này.

  1. Cả Sally và Ryan đều có khóa công khai và khóa bí mật.
  2. Sally gửi tin nhắn của cô ấy $M$, cùng với một được tạo ngẫu nhiên $(r , MAC)$, sử dụng kết hợp $M$, cũng như khóa bí mật của Sally và khóa công khai của Ryan.
  3. Được cho $M$ và và $r$, Randy xác minh rằng anh ấy có thể sản xuất $MAC$ sử dụng khóa bí mật của anh ấy và khóa công khai của Sally. Nếu anh ta sản xuất một trận đấu phù hợp $MAC$, điều đó có nghĩa là Sally đã thực sự gửi tin nhắn. Nếu không, nó là giả.

Tại sao một giải pháp như thế này hoạt động? Bởi vì cả Sally VÀ Ryan đều có thể sản xuất $(r , MAC)$ cùng với $M$. Vì vậy, nếu Ryan đến gặp cảnh sát và nói "Sally said $M$= 'Tôi sẽ giết bạn', và đây là $(r, MAC)$ để chứng minh điều đó!!!". Cảnh sát sẽ chỉ nói "Làm sao chúng tôi biết Sally sản xuất những thứ đó chứ không phải bạn?", Và Sally có thể khoe khoang điều tương tự.

Vì vậy, bởi vì cả người gửi và người nhận đều có khả năng hoặc tạo ra cùng một thứ, nên không ai trong số họ có thể chứng minh cho các bên khác biết họ đã nói điều đó.

Ngoài ra, nếu bạn cũng muốn mã hóa tin nhắn, thì Sally và Ryan có thể dễ dàng tạo một bí mật chung (từ diffie-hellman) mà họ sử dụng để mã hóa tin nhắn của mình.

Dù sao, trường hợp đóng tôi nghĩ! Một lần nữa, nếu bạn muốn toán học thực sự thực hiện giao thức này, thì nó khá ngắn và đơn giản. Chỉ cần kiểm tra giấy.

poncho avatar
lá cờ my
Trên thực tế, nếu không có dấu vết giấy tờ nào cho thấy Bob đã gửi tin nhắn, thì câu trả lời dễ nhất cho câu hỏi của OP là thực hiện mã hóa khóa công khai đơn giản, không cần xác định người gửi ...
lá cờ in
@poncho trong trường hợp đó, Alice sẽ không biết ai đã gửi tin nhắn. Bằng cách này, Alice biết rằng Bob đã gửi tin nhắn, nhưng cô ấy không thể chứng minh với những người khác rằng anh ấy đã gửi tin nhắn đó và cô ấy không chỉ bịa đặt.
Điểm:0
lá cờ es

Tôi tin rằng những gì bạn đang tìm kiếm là Không thể nào. Tuy nhiên, tôi sẽ đề xuất cho bạn một cách khác để giải quyết vấn đề này có thể hữu ích dựa trên khả năng từ chối hợp lý.

Đầu tiên, tôi sẽ cố gắng giải thích tại sao tôi tin rằng không thể buộc Alice tiết lộ khóa bí mật của cô ấy khi chứng minh cho người khác thấy thông điệp mà cô ấy đã giải mã. Ngày nay, với sự gia tăng của các bằng chứng Zero-Knowledge mạch chung (ví dụ: STARKS và SNARKS) gần như bất kỳ mối quan hệ nào giữa giá trị bí mật và giá trị công khai đều có thể được chứng minh cho các bên khác.(Mọi quan hệ có thể biểu diễn bằng đa thức số cổng của $VÀ$$HOẶC$)

Nói chung, một hệ thống mật mã khóa công khai được xác định bởi một bộ $(Gen, Enc, Dec)$:

  • $(pk, sk) \leftarrow Gen(\lambda, rnd)$: thuật toán tạo khóa tạo khóa công khai $pk$ và khóa bí mật $sk$ theo tham số bảo mật $\lambda$ và một chuỗi ngẫu nhiên $rnd$.

  • $c \leftarrow Enc(m, pk, rnd)$: thuật toán mã hóa mã hóa tin nhắn $m$ với khóa công khai $pk$ và tạo ra bản mã $c$. Thuật toán này phải là một thuật toán xác suất có nghĩa là nó sẽ tạo ra các bản mã khác nhau mỗi khi chúng tôi chạy nó. Mặt khác, nó không có mức bảo mật khóa công khai thấp nhất (IND-CPA).

  • $m \leftarrow Dec(c, sk)$ thuật toán giải mã là xác định.

Nếu Alice có thể biến $Dec$ thành mạch Không tri thức với giá trị riêng là $sk$ sau đó cô ấy có thể chứng minh rằng một bản mã đã biết $c$ giải mã thành $m$ với chìa khóa bí mật $sk$ tương ứng với $pk$. Không cần biết hệ thống mật mã khóa công khai là gì.

Tuy nhiên, có thể có một cách khác để giải quyết vấn đề bằng cách sử dụng tin nhắn không ghi âm (OTR) khiến giao tiếp dựa trên khóa công khai có thể bị từ chối.

Trong OTR, bất kỳ bản ghi tin nhắn nào được ghi lại đều có thể được tạo ra bởi bất kỳ bên nào của giao tiếp. Theo đó, thật dễ dàng để từ chối mọi thứ.

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