Điểm:0

Thuật toán để xác thực 1 trong số N đầu vào là một phần của hàm băm đầu ra

lá cờ us

Có thuật toán nào cho phép chứng minh rằng đầu vào x1 đã được sử dụng làm 1 trong số N đầu vào để tạo hàm băm đầu ra y, mà không cần biết các đầu vào khác?

I E. ví dụ: nếu có 5 người dùng cung cấp hàm băm đầu vào, chúng tôi có thể tạo hàm băm đầu ra cho phép mỗi người dùng riêng lẻ xác minh đầu vào của mình là một phần của đầu vào mà không cần biết tất cả các đầu vào khác không?

(bạn có thể tìm hiểu tất cả các đầu vào trong quá trình xác thực, đầu vào không bí mật chỉ là không khả thi)

Một số thông tin thêm về usecase cụ thể:

  1. Tôi cần biểu diễn trạng thái của hệ thống một cách ngắn gọn (băm?).
  2. Trạng thái thay đổi/phát triển liên tục dựa trên đầu vào của người dùng mới.
  3. Cần phải có một cách để kiểm tra xem đầu vào của người dùng cụ thể đã được phản ánh trong trạng thái hiện tại hay chưa.

Cách tiếp cận thẳng thắn sẽ là biểu thị trạng thái hệ thống dưới dạng danh sách đầu vào nhưng cách này không hoạt động do một số hạn chế.
Vì vậy, tôi đã hy vọng có thể có một chức năng mật mã cho phép biểu diễn trạng thái một cách ngắn gọn. Tôi đã xem xét các cây merkle, sơ đồ đa chữ ký, v.v. nhưng cho đến nay vẫn chưa tìm thấy thứ gì thực sự phù hợp với dự luật.

lá cờ ph
Có vẻ như bạn có thể giải quyết vấn đề của mình bằng Cây Merkle https://en.wikipedia.org/wiki/Merkle_tree
TommyF avatar
lá cờ us
@ bmm6o rất tiếc là không, điều đó cũng yêu cầu kiến ​​thức về các đầu vào khác hoặc hàm băm tổng hợp của chúng, nhưng cảm ơn bạn đã gợi ý!
lá cờ ph
Đúng vậy, cây sẽ cần phải có sẵn cho bất kỳ ai muốn xác minh tính toán.
SEJPM avatar
lá cờ us
Vì vậy, điều bạn muốn chứng minh là với một giá trị $y$ đã cho, tồn tại một số $x_i$ từ một tập kích thước $N$ của các giá trị $S=\{x_1,x_2,\ldots,x_N\}$ sao cho $y=H(x_i)$ và bạn biết đã nói $x_i$ (có thể không tiết lộ?)? Sự tương tác có được phép trong một bằng chứng như vậy hay nó bắt buộc phải là một tuyên bố có thể so sánh với giá trị băm?
TommyF avatar
lá cờ us
@SEJPM Tôi đã bổ sung thêm thông tin về ca sử dụng cụ thể của mình để làm rõ hơn. Cảm ơn bạn đã cố gắng để giúp đỡ!
Ben Voigt avatar
lá cờ cn
@TommyF: Bạn đã thử nghiệm ý tưởng này theo Nguyên tắc Pigeonhole chưa? Nghĩa là, nếu mỗi đầu vào *N* có độ dài *k* bit và đầu ra hàm băm có độ dài `x` bit, thì nếu `x > N*k` thì cùng một đầu ra có thể được tạo bởi nhiều đầu vào khác nhau (2* *(x - N*k)) và do đó, ngay cả khi bạn có đầu vào hoàn chỉnh và sao chép phép tính băm đến cùng một đầu ra, bạn không bao giờ có thể biết liệu mình có đầu vào ban đầu hay chỉ là xung độ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.