Điểm:0

Chứng minh dữ liệu được mã hóa bằng các khóa khác nhau khớp nhau

lá cờ in

Giả sử người dùng A mã hóa một số dữ liệu bằng khóa công khai của mình và lưu trữ dữ liệu công khai. Sau này, người dùng A muốn chuyển công khai cùng dữ liệu đó cho người dùng B bằng cách mã hóa dữ liệu đó bằng khóa chung của người dùng B.

Cách tốt nhất để xác minh rằng cùng một dữ liệu đã được chuyển cho người dùng B mà không cần biết dữ liệu, người dùng A và khóa riêng của người dùng B là gì?

Ievgeni avatar
lá cờ cn
Có phải là bài tập về nhà?
lá cờ in
không, cố gắng tìm hiểu xem điều này có khả thi hay không và tôi nên đọc thêm về điều gì. Muốn tạo một thứ gì đó thuộc loại này trên Ethereum để dữ liệu bí mật có thể được chuyển một cách an toàn giữa mọi người một cách công khai.
Ievgeni avatar
lá cờ cn
Câu hỏi: Đây có phải là sơ đồ mã hóa xác định không?
lá cờ in
Tôi không biết liệu điều này có khả thi vào thời điểm này hay không nên còn quá sớm để đặt ra bất kỳ ranh giới nào. Sẽ tốt hơn nếu nó mang tính quyết định.
Ievgeni avatar
lá cờ cn
Câu hỏi khác : $A$ có được phép thêm dữ liệu mới (như bằng chứng ZK) để giúp B thực hiện xác minh không? Nếu có những ràng buộc bảo mật là gì?
lá cờ in
@levgeni Có, dữ liệu bổ sung có thể được thêm vào, tuy nhiên, việc xác minh phải diễn ra trước khi chuyển (trước khi Người dùng B có dữ liệu). Tôi đang tìm kiếm một cái gì đó như thế này: 1. Người dùng A -> lưu trữ dữ liệu được mã hóa bằng khóa chung của Người dùng A trong hợp đồng công khai. 2. Người dùng A -> lần này cố gắng chuyển cùng một dữ liệu được mã hóa bằng khóa công khai của Người dùng B thông qua cùng một hợp đồng công khai. 3. Hợp đồng xác minh nếu Người dùng A không nói dối (chuyển dữ liệu khác).Nếu xác minh thành công, dữ liệu sẽ được lưu trữ, nếu không, yêu cầu sẽ bị từ chối. Hợp đồng phải xác minh điều này, không phải người dùng B.
lá cờ in
^ Trong ví dụ trên, hợp đồng không biết dữ liệu và không biết khóa riêng của Người dùng A và người dùng B. Hợp đồng biết khóa chung của A và B, dữ liệu được mã hóa bằng khóa chung của A và dữ liệu được mã hóa bằng khóa công khai của B. Bất kỳ siêu dữ liệu bổ sung nào cũng có thể được thêm vào để hỗ trợ quá trình xác minh này mà không làm lộ dữ liệu.
ming alex avatar
lá cờ in
Có một số ví dụ để giải quyết câu hỏi của bạn trong phần 20.2 của [cuốn sách](http://toc.cryptobook.us/book.pdf)
Điểm:1
lá cờ cn

Bằng chứng không kiến ​​thức có vẻ phù hợp với mục tiêu của bạn. $A$ phải chứng minh rằng nó tồn tại $M$ như vậy mà $C=Enc(M, pk_A)$, và $C^\prime=Enc(M, pk_B)$. ZKP này có thể được thực hiện mà không tiết lộ bất kỳ thông tin nào về dữ liệu $M$ (đó là lý do tại sao chúng tôi gọi nó là Zero-Knowledge). Để khởi tạo cụ thể, bạn có thể sử dụng mã hóa El Gamal và Các kỹ thuật chống ZK của Groth-Sahai :

https://en.wikipedia.org/wiki/ElGamal_encryption

https://eprint.iacr.org/2007/155

Lưu ý rằng bạn không cần sử dụng khóa riêng của $B$ để xác minh sự bình đẳng nhưng nếu đó là liên hệ xác minh thì có lẽ tốt hơn.

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