Chào mừng đến với diễn đàn, @vnd !
Câu hỏi của bạn có thể được giải quyết bằng cách sử dụng dựa trên hàm băm k-Ẩn danh? Theo tôi hiểu, cách tiếp cận này sẽ:
- ngăn Mallory phát hiện ra ngày sinh của Alice;
- ngăn Alice biết bất kỳ ngày sinh nào của các bạn cùng lớp của cô ấy; và
- chỉ cho phép Alice khám phá xem có bạn cùng lớp nào có cùng ngày sinh nhật với cô ấy không
Giả sử Alice có 12 bạn cùng lớp có dữ liệu được biểu thị bằng bảng này:
()
Bob 11 THÁNG 1 2001 a40b69b979ef6af5e9f13a49cfc568d8b942d5c2 a40b6
Joe 23 tháng 3 năm 1989 4fde4b6b8e077d5b51eed716ab3d94a6ac04c45e 4fde4
Ngày 9 tháng 6 năm 2002 46885da4ffaa4c3d1b31413f96c38f2cb7e895ea 46885
Điều 4 tháng 12 năm 2005 a40b6425e2a7a93a9ac95ee275a5398397c46dd2 a40b6
Tom 17 tháng 11 năm 1977 a49e374c34333b86ccf08bc10d6e04312e772c41 a49e3
Tim 3 THÁNG 7 1989 39e95ac6c6286e6f036822f3fa31131a2e892b08 39e95
Amy ngày 12 tháng 2 năm 2002 92dac31b3d3a0793fd2845081c93024d0ea8ac8c 92dac
Eva 24 tháng 4 năm 1990 a0ed580e3df29f9a8f22276092ac9f58117401ec a0ed5
Kiện ngày 10 tháng 7 năm 2003 a93703839d02a539c12841f5de2ec8790107925b a9370
Zoe 5 THÁNG 1 2006 a40b6232f910b358e971e4c5f91e273c07499ab0 a40b6
Lía 18/12/1978 addc1fc5fbe7dea93e3bd1d421521f005ba89c8e addc1
Kay 4 THÁNG 8 1990 a4e15e622b89d302f2b0357c2b2efc0d38fba7a0 a4e15
Alice 11 THÁNG 1 2001 a40b69b979ef6af5e9f13a49cfc568d8b942d5c2 a40b6
BẢNG DỮ LIỆU
Bảng này bao gồm tên đã cho; ngày sinh (ở định dạng quân sự, vì lý do thẩm mỹ); giá trị băm của ngày sinh bằng cách sử dụng hàm băm tạo sẵn, không tồn tại (MUH) và 5 biểu đồ đầu tiên của hàm băm (đoạn).
THỦ TỤC
. Alice tính toán thông báo tóm tắt về ngày sinh của cô ấy bằng cách sử dụng hàm băm đã tạo (có thể sử dụng bất kỳ hàm băm nào, kể cả hàm SHA1 yếu).
. Thay vì truyền toàn bộ giá trị băm cho Mallory, điều sẽ được coi là mối đe dọa, Alice chỉ đưa cho Mallory một phần băm của cô ấy: năm biểu đồ đầu tiên (điều này có thể điều chỉnh được).
. Mallory biết ngày sinh của mọi người trong lớp, ngoại trừ Alice. Mallory tính toán hàm băm của ngày sinh nhật của mỗi bạn cùng lớp và trả lại dữ liệu đó cho Alice, nhưng chỉ khi đoạn của Alice khớp với cùng một đoạn của hàm băm đầy đủ.Dữ liệu được trả về không bao gồm đoạn, vì điều này sẽ dư thừa.
   . Sử dụng một đoạn 5 grapheme a40b6
, Mallory sẽ cung cấp dữ liệu sau cho Alice
9b979ef6af5e9f13a49cfc568d8b942d5c2
425e2a7a93a9ac95ee275a5398397c46dd2
232f910b358e971e4c5f91e273c07499ab0
   và Alice sẽ xem liệu đoạn của cô ấy cộng với bất kỳ phản hồi nào có khớp với hàm băm đầy đủ của cô ấy hay không. Trong trường hợp này, cái đầu tiên trùng khớp và Alice có câu trả lời của mình. Bây giờ cô ấy biết rằng một người nào đó trong lớp có cùng ngày sinh nhật với cô ấy, mặc dù cô ấy không biết danh tính của họ.
Trong cuộc trao đổi này, chúng ta thấy rằng Mallory, chỉ nhận được một đoạn, không thể xác định liệu bất kỳ hàm băm nào mà cô ấy đã tính hoàn toàn khớp với hàm băm thực tế của Alice hay không, vì cô ấy không có cách nào tính toán hàm băm đầy đủ của Alice.
Khả năng xảy ra mối đe dọa bị loại bỏ vì quyết định liệu một trận đấu có tồn tại không thể được xác định bởi Mallory (máy chủ thù địch) mà chỉ có thể được xác định bởi Alice (khách hàng trung thực).
Hơn nữa, bằng cách sử dụng dữ liệu do Mallory cung cấp, Alice không thể suy ra ngày sinh của bất kỳ bạn học nào của cô ấy ngoại trừ những người khớp với hàm băm của cô ấy. Các trận đấu một phần là bất phân thắng bại.
Lượng dữ liệu được trả về có thể được điều chỉnh theo kích thước của đoạn:
   . Sử dụng một đoạn ký tự đơn một
, Mallory sẽ cung cấp dữ liệu sau cho Alice:
40b69b979ef6af5e9f13a49cfc568d8b942d5c2
40b6425e2a7a93a9ac95ee275a5398397c46dd2
f9e374c34333b86ccf08bc10d6e04312e772c41
0ed580e3df29f9a8f22276092ac9f58117401ec
93703839d02a539c12841f5de2ec8790107925b
40b6232f910b358e971e4c5f91e273c07499ab0
4e15e622b89d302f2b0357c2b2efc0d38fba7a0
LƯU Ý: Cách tiếp cận này không yêu cầu chúng tôi biết có bao nhiêu ngày sinh có thể có (365). Ba trăm hay bốn triệu cũng không thành vấn đề.