Điểm:14

Tra cứu giá trị an toàn bằng mật mã trong một tập hợp

lá cờ cn
vnd

Tôi đang tìm kiếm một giải pháp hay cho vấn đề có vẻ tầm thường là tìm kiếm giá trị cụ thể trong một tập hợp giá trị đã biết mà không tiết lộ giá trị mà chúng tôi tìm kiếm. Hãy để tôi mô tả nó theo một cách cổ điển:

Alice sẽ sớm tổ chức sinh nhật của cô ấy và cô ấy muốn biết liệu có ai trong lớp của cô ấy có sinh nhật cùng ngày với cô ấy không. Thật không may, người duy nhất biết ngày sinh của tất cả những người trong lớp (ngoại trừ Alice) là Malory. Làm sao Alice có thể hỏi Malory xem có ai có sinh nhật cùng ngày mà không tiết lộ ngày của chính cô ấy không?

Giả thiết:

  1. Malory sẵn sàng giúp đỡ Alice và cô ấy sẽ trả lời bất kỳ câu hỏi nào một cách chính đáng. Tuy nhiên, cô ấy chỉ có thể trả lời có hoặc không.
  2. Alice sẽ hỏi Malory một lần duy nhất. Malory không thể tác động đến Alice để khiến cô ấy hỏi lại câu hỏi tương tự.Mặc dù vậy, trong tương lai Alice có thể tự mình hỏi về các ngày khác nhau (ví dụ: sinh nhật của Bob).
  3. Alice không cần và không muốn biết ngày sinh của mọi người trong lớp. Cô ấy muốn nhận được câu trả lời từ Malory khi đặt một câu hỏi duy nhất.

Một cách khá đơn giản để tiếp cận vấn đề này là áp dụng hàm băm. Alice băm ngày sinh của cô ấy và chuyển thông tin này cho Malory, đồng thời yêu cầu cô ấy băm ngày sinh của tất cả những người cô ấy biết và cho cô ấy biết nếu có sự trùng khớp. Vấn đề là Malory, người muốn biết ngày sinh của Alice, có thể liệt kê tất cả các ngày có thể (vì entropy của đầu vào thấp) và kiểm tra từng cái một xem có cái nào khớp với những gì Alice hỏi không. Tôi muốn loại bỏ mối đe dọa đó.

Tôi đã nghĩ đến việc áp dụng ánh xạ một-nhiều cho ngày sinh nhật. Vì một ngày có thể được biểu thị bằng nhiều giá trị, cuộc tấn công liệt kê sẽ trở nên không khả thi. Vấn đề đầu tiên là tôi không thấy có cách nào dễ dàng để Malory thực hiện phép so sánh toán học nguyên tử với chuỗi ngày tháng của cô ấy. Vấn đề thứ hai là nếu việc so sánh như vậy có thể được thực hiện, thì Malory vẫn có thể tạo một bộ mới và thực hiện lại thao tác tra cứu (nghĩa là tấn công liệt kê). Do đó, ánh xạ một-nhiều mà Alice áp dụng phải được tham số hóa bởi tính năng duy nhất của một tập hợp mà Malory sẽ tìm kiếm.

Tôi hy vọng rằng tôi đã không gây ra quá nhiều nhầm lẫn và tôi sẽ đánh giá cao bất kỳ trợ giúp, tài liệu tham khảo, đề cập nào về thuật toán hoặc các vấn đề tương tự! Tôi cũng sẽ đánh giá cao ý kiến ​​của bạn nếu bạn cho rằng vấn đề này không thể giải quyết được với các giả định đã cho! Nếu một số trong số đó không rõ ràng, hãy cho tôi biết và tôi sẽ cố gắng hết sức để làm rõ ý định của mình.

lá cờ cn
vnd
Nói dối là điều không mong muốn nhưng mục tiêu của tôi không phải là ngăn chặn nó. Mục tiêu chính của tôi là ngăn Malory tiết lộ ngày sinh của Alice với giả định rằng Malory sẽ không quan tâm đến việc đưa ra câu trả lời sai.
Mark avatar
lá cờ ng
Có thể hữu ích nếu bạn làm rõ "Alice không cần và không muốn biết ngày sinh của mọi người trong lớp. Cô ấy muốn nhận được câu trả lời từ Malory khi hỏi một câu hỏi duy nhất.". Điều này có thể được đọc là "bạn không cần phải gửi toàn bộ cơ sở dữ liệu (nhưng có thể nếu bạn muốn)" hoặc "giao thức phải có một số thuộc tính kiến ​​thức bằng không" (việc gửi cơ sở dữ liệu sẽ vi phạm). Các câu trả lời cho đến nay đã giả định là câu trả lời thứ hai, nhưng nếu câu trả lời đầu tiên ổn thì nó sẽ *hiệu quả hơn nhiều* trong khi vẫn đáp ứng tất cả các thuộc tính bảo mật mong muốn của bạn.
Điểm:13
lá cờ ru

Bạn đang mô tả vấn đề của 1 trong số $n$ Chuyển giao không rõ ràng với $n=366$ nếu Alice được yêu cầu không nhận được thông tin không liên quan. Các phương pháp của Kolesnikov et al trong bài báo của họ âPRF lãng quên theo đợt hiệu quả với ứng dụng cho giao lộ riêng tưâ mang lại cảm giác về những gì có thể.

Nếu Alice chấp nhận được thông tin bổ sung, thì vấn đề là một trong truy xuất thông tin cá nhân. Bài khảo sát của Ostrovsky và Skeithâs âKhảo sát về truy xuất thông tin cá nhân trên cơ sở dữ liệu đơn: các kỹ thuật và ứng dụng â cung cấp một cái nhìn tổng quan tốt.

kelalaka avatar
lá cờ in
Cuộc khảo sát về PIR này đã cũ và đã có một cuộc khảo sát về phép đo PIR (là UNY nhưng không thể nhớ chính xác tác giả Gene Tsudik?) Rằng nếu khách hàng tải xuống tất cả dữ liệu và xử lý cục bộ thì nhanh hơn tất cả các chương trình hiện có. PIR mới dựa trên [FHE](https://pdfs.semanticscholar.org/bfde/352ba1bdb70bf850b18a08c9da092489b698.pdf) mặc dù máy chủ tính toán các hoạt động của FHE...
Điểm:5
lá cờ es

Thứ hai, cách tiếp cận đơn giản hơn, nhờ nhận xét của @Mikero:

Alice chọn một khóa riêng ngẫu nhiên thống nhất $b$. Sinh nhật của Alice là vào ngày $k$ngày thứ năm. Alice gửi $A = bH_p(k)$ đến Malory, nơi chức năng $H_p()$ có nghĩa là băm đầu vào và diễn giải kết quả dưới dạng điểm EC.

Malory chọn một khóa riêng ngẫu nhiên thống nhất $e$. Malory có chức năng $F_e(i)$ đầu ra nào $eH_p(i)$ nếu ít nhất một người được sinh ra vào ngày đó trong năm và nếu không thì sẽ đưa ra điểm EC được chọn ngẫu nhiên.

Đối với mỗi giá trị của $i$ như vậy mà $0\leq tôi \leq 365$, Malory gửi $F_e(i)$ đến Alice. Ngoài ra, Malory gửi $Q = eA$ đến Alice.

Alice tính toán $Z = b^{-1}Q == b^{-1}eA == b^{-1}ebH_p(k) == eH_p(k)$.

Alice sau đó kiểm tra nếu $Z$ khớp với bất kỳ trong số 366 đầu ra của $F_e(i)$ mà Malory gửi cho Alice. Nếu trùng khớp thì Alice có cùng ngày sinh với người khác.

Giải thích: Chúng tôi đã tạo một "1-OPRF", có nghĩa là một hàm giả ngẫu nhiên không rõ ràng mà Alice có thể truy vấn một lần với sự trợ giúp mù quáng của Malory, nhưng Malory có thể truy vấn nhiều lần.

PRF chỉ đơn giản là Malory làm mù một điểm EC $H_p(i)$ (ở đâu $H_p(i)$ đại diện cho một ngày cụ thể $i$ của năm dưới dạng điểm EC), với khóa riêng của anh ấy $e$, bằng cách tính toán $eH_p(i)$. Do vấn đề nhật ký rời rạc của đường cong elip, không người quan sát nào (kể cả Alice) có thể dự đoán đầu ra của $eH_p(i)$ bất cứ gì $i$ không biết bí mật $e$. Điều này có nghĩa là khi không có ai sinh vào một ngày cụ thể, Alice không thể biết rằng Malory đã gửi một điểm EC ngẫu nhiên thay vì đầu ra thực của PRF, bởi vì đầu ra của PRF là không thể đoán trước đối với Alice.

Alice che khuất thông tin đầu vào của mình đối với PRF bằng cách chọn một yếu tố che khuất $b$ và gửi $bH_p(k)$ đến Malory thay vì gửi (và do đó tiết lộ) $k$. Alice bỏ mù câu trả lời bằng cách đảo ngược phép nhân với $b$, và do đó có thể truy vấn PRF mà Malory không cần biết về đầu vào mà Alice đang sử dụng.

Hậu quả là Malory đã gửi một danh sách các điểm EC cho Alice chỉ bao gồm đầu ra thực sự của PRF cho những ngày trong năm mà ít nhất một người khác được sinh ra vào ngày đó. Ngoài ra, Alice đã có thể truy vấn PRF một cách mù quáng về đầu ra của ngày sinh nhật cụ thể của cô ấy và có thể xem liệu kết quả đó có xuất hiện trong danh sách các đầu ra PRF khả dĩ mà Malory gửi cho cô ấy hay không.

Malory chưa học $k$, và Alice không thể biết được điều gì khác ngoài việc liệu cô ấy có cùng ngày sinh với ít nhất một người khác hay không.

Matthieu M. avatar
lá cờ ru
Tại sao Alice không thể đoán `e` trong sơ đồ này? Họ biết `A` và `Q = eA`, họ không thể "chia" `Q` cho `A` để truy cập `e` sao?
knaccc avatar
lá cờ es
@MatthieuM. Vấn đề nhật ký rời rạc của đường cong elip có nghĩa là bạn không thể "chia" điểm này cho điểm khác. Nếu có thể, bạn có thể dễ dàng xem bất kỳ khóa chung nào và xác định khóa riêng.
Điểm:4
lá cờ cn
Mac

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 đề.

Điểm:4
lá cờ es

Một cách tiếp cận là làm 1-trong-n quên chuyển. Malory sẽ gửi cho Alice một danh sách gồm 366 boolean được mã hóa (để cho phép sinh nhật vào ngày 29 tháng 2), trong đó mỗi boolean sẽ biểu thị liệu có ai có sinh nhật vào ngày đó trong năm hay không.Alice sẽ chỉ có thể giải mã một trong 366 booleans và do đó sẽ chỉ có thể biết liệu có ai khác có sinh nhật vào ngày đó trong năm hay không.

Bài viết trên wikipedia mà tôi đã liên kết đến trong đoạn trên tham khảo một số cách tiếp cận triển khai để đạt được chuyển giao không biết 1 lần. Đây là một cách tiếp cận mà tôi vừa mới nghĩ ra (với sự ghi nhận của @IlmariKaronen vì một cải tiến rất tao nhã):

Alice được sinh ra vào ngày $k$ của năm, ở đâu $0\leq k\leq 365$. Alice gửi khóa công khai $P = xG-kH$ đến Malory, nơi $x$ là một khóa riêng vô hướng ngẫu nhiên thống nhất. $H$ được tính như $H = H_p(G)$, trong đó chức năng $H_p()$ có nghĩa là băm giá trị và diễn giải kết quả dưới dạng điểm EC. Lựa chọn $H$ theo cách này có nghĩa là nhật ký rời rạc của $H$ w.r.t. $G$ là không thể biết được, tức là $h$ không thể được biết như vậy mà $H==hG$.

Malory tính toán 366 khóa công khai $\{Q\}$ của hình thức $Q_i=P+iH$ cho tất cả các giá trị của $i$ ở đâu $0\leq i\leq 365$.

Khóa riêng tương ứng với mỗi khóa chung $Q_i$ sẽ là $q_i == x - kh + ih == x+(i-k)h$.

Vì chúng tôi đã chứng minh rằng $h$ là không thể biết được, điều này có nghĩa là $q_i$ sẽ chỉ có thể được biết bởi Alice khi $i==k$, trong trường hợp $q_k$ sẽ bằng $x$.

Do đó, Malory sẽ tính toán được 366 khóa công khai mà Malory có thể chắc chắn rằng Alice chỉ có thể biết khóa riêng tương ứng với một trong số chúng.

Cho mỗi ngày trong năm $i$, Malory sử dụng lược đồ El Gamal như sau: Malory chọn một đại lượng vô hướng ngẫu nhiên đều $e_i$, và cung cấp cho Alice cặp $(E_i, F_i)$ ở đâu $E_i = e_iG$, $F_i = e_iQ_i + H_p(v_i)$ và ở đâu $v_i$ sẽ được chỉ định là $0$ nếu không có ai có sinh nhật vào ngày đó trong năm, hoặc như $1$ nếu ít nhất một người có sinh nhật vào ngày đó trong năm.

Để giải mã $v_k$, Alice tính toán $V_k = F_k - xE_k$. Alice sau đó kiểm tra xem $V_k\overset{?}{=}H_p(0)$ hoặc $V_k\overset{?}{=}H_p(1)$, và do đó biết nếu $v_k$$0$ hoặc $1$. Điều này hoạt động bởi vì $q_k==x$$Q_k==xG$, và vì thế $xE_k==x\cdot e_kG==e_k\cdot xG==e_kQ_k$.

Alice sẽ chỉ có thể xác định nếu người khác được sinh ra vào ngày $k$ của năm, và Malory sẽ không thể xác định $k$.

lá cờ ar
Tôi không chắc mình hiểu hoàn toàn sơ đồ của bạn, nhưng tôi chợt nhận ra rằng, thay vì loay hoay với chữ ký vòng, Alice không thể để $C_i = (i-k)H_p(G) + c_kG$? Bằng cách đó, Mallory có thể xác minh rằng $C_{i+1} = H_p(G) + C_i$ đúng cho tất cả $C_i$, và do đó có thể tự tin rằng Alice không thể biết nhật ký rời rạc của nhiều hơn một trong số chúng. (Alice thậm chí không thực sự cần phải gửi tất cả các điểm cho Mallory, vì Mallory có thể tính toán tất cả chúng từ $C_0$ bằng cách lặp lại phép cộng điểm.) Hoặc có thể tôi đã nhầm lẫn thứ gì đó; điều đó luôn có thể xảy ra, vì tôi thực sự không rành lắm về ECC.
knaccc avatar
lá cờ es
@IlmariKaronen Điều đó rất thanh lịch, bạn nói đúng, tôi ước tôi đã nghĩ về điều đó! Tôi sẽ sửa đổi câu trả lời của tôi.
lá cờ us
Tôi tin rằng câu trả lời này đang hội tụ về một PRF không rõ ràng. Alice & Mallory chạy một giao thức OPRF trong đó Alice học một hàm ngẫu nhiên $F : \{1,\ldots,365\} \to \{0,1\}^\lambda$ và Mallory học $F(i)$ trong đó $ i$ là sinh nhật của cô ấy. Vì đó là PRF, nên tất cả các kết quả đầu ra khác của $F$ đều có vẻ ngẫu nhiên đối với cô ấy. Sau đó, Alice có thể gửi $\{ F(j) \mid j \in \mbox{Birthdays}\}$ và Mallory có thể xem liệu có kết quả trùng khớp hay không. [Thực sự có thể](https://ia.cr/2020/1043) để thực hiện loại OPRF này với giao tiếp liên tục. Liên kết đó chứa giao thức bảo mật UC; Tôi nghi ngờ một trong câu hỏi này là UC an toàn.
knaccc avatar
lá cờ es
@Mikero cảm ơn, đó là một bài báo thú vị. Tôi đã không hoàn toàn làm theo những gì bạn nói, nhưng tôi đã thêm câu trả lời thứ hai cho câu hỏi này kết hợp phương pháp 1-OPRF từ bài báo này. Có cải tiến nào so với phương pháp của tôi không?
knaccc avatar
lá cờ es
@Mikero Có phải bạn muốn nói rằng Malory sẽ gửi $\{F(j)\}$ cho Alice, chứ không phải ngược lại?
lá cờ us
Vâng, tôi tin rằng tôi đã vô tình đổi tên của hai bên (quá muộn để chỉnh sửa nhận xét bây giờ).
Điểm:3
lá cờ in

Có một cuốn tiểu thuyết Truy xuất thông tin cá nhân với các hệ thống đồng hình hoàn toàn,

Đây là Lược đồ mã hóa riêng có thể có giá trị tại chỉ mục $i$ từ mảng trên máy chủ bán trung thực. Máy chủ không học được gì và chỉ trả về giá trị tại chỉ mục $i$. Chúng tôi có thể sửa đổi điều này như;

Sơ đồ cơ bản
  1. Mallory mã hóa tất cả các ngày sinh nhật hiện có $b_i$, $0 \leq i \leq 366 $ với khóa công khai FHE của Alice. (Mã hóa của $366\cdot 8$ bit, không nhất thiết phải là tất cả các ngày, các ngày sinh tồn tại là đủ và điều này giúp tiết kiệm không gian trong các tập hợp lớn.

    $$c_i = \operatorname{FHE-Enc}(A_{pub}, b_i)$$

    Nếu chúng tôi sử dụng dựa trên bit (HLibe, TFHE) thì mỗi $c_i$ là một kích thước mảng 8.

  2. Alice gửi sinh nhật của cô ấy $A$ được mã hóa bằng khóa công khai của cô ấy tới Mallory (Mã hóa 8-bit).

    $$a = \operatorname{FHE-Enc}(A_{pub}, A)$$

  3. Mallory thực hiện Mạch đẳng thức FHE vào mỗi ngày sinh nhật được mã hóa

    $$t_i = \operatorname{FHE-So sánh}(A_{pub}, c_i,a)$$

  4. Mallory HOẶC kết quả với FHE sử dụng cách tiếp cận cây nhị phân để giảm độ sâu của mạch (có thể tính tổng thay vì HOẶC) và trả lại kết quả cho Alice.

    $$o = \operatorname{FHE-OrAll}(A_{pub}, [t_0,\ldots,t_n])$$

  5. Alice giải mã kết quả chút với khóa riêng của họ;

    $$ b = \operatorname{FHE-Dec}(A_{priv})$$

    • nếu $b=1$ thì có ít nhất một sinh viên có ngày $A$
    • nếu $b=0$ sau đó không có sinh viên với ngày $A$.

những gì được đảm bảo;

  1. Mallory không thể tìm hiểu dữ liệu được truy vấn là gì $A$ vì nó được mã hóa bằng FHE - bảo mật ngữ nghĩa tồn tại.
  2. Mallory không thể lấy dữ liệu được truy vấn từ kết quả vì lý do tương tự như trên; từ $(A,o)$.
  3. Mạch không tiết lộ bất cứ điều gì về phần bên trong của dữ liệu ngoài chức năng được tính toán - mạch tính toán sự tồn tại của dữ liệu mà không tiết lộ kết quả.
  4. Alice chỉ biết được sự tồn tại của ngày sinh nhật mà thôi! Alice được chỉ một bit $b$, tồn tại hay không. Điều này không trả về số ngày sinh bằng nhau.
  5. Alice chỉ truy vấn một lần.
  6. Mallory chỉ gửi mã hóa một bit $b$! Do đó, một chương trình khá hiệu quả về băng tần.
Đề án cải tiến cho thời gian xử lý chủ yếu
  1. Mallory chuẩn bị một mảng bit có kích thước 366 được khởi tạo bằng 0. $$B = [b_0,b_1,\ldots,b_{366}] = 0$$

  2. Mallory đặt ngày sinh nhật hiện có thành 1. Thích; $$B = [0,0,1,\ldots,0] $$

  3. Mallory mã hóa mảng bit bằng khóa công khai của Alice (khóa công khai FHE) và nhận được một mảng khác có kích thước 366.

    $$c_i = \operatorname{FHE-Enc}(A_{pub}, B[i]) \;\; \text{cho }\; 0\leq i \leq 366 $$

  4. Alice chuẩn bị một mảng bit khác có kích thước 366 trong đó chỉ có ngày sinh nhật của cô ấy được đặt thành 1 phần còn lại được đặt thành 0. $$A = [0,0,0,\ldots,1,\ldots,0] $$

  5. Tương tự với Mallory, Alice tạo mảng bằng khóa chung của cô ấy và gửi mảng kết quả tới Mallory.

    $$a_i = \operatorname{FHE-Enc}(A_{pub}, A[i]) \;\; \text{cho }\; 0\leq i \leq 366 $$

  6. Mallory thực thi thành phần hoạt động FHE-AND một cách khôn ngoan trên các mảng được mã hóa. $$c_i = \operatorname{FHE-And}(A_{pub}, A[i], B[i])$$

  7. Mallory HOẶC bit của mảng kết quả và trả lại kết quả cho Alice.

    $$b = \operatorname{FHE-OrAll}(A_{pub}, [c_0,\ldots,c_{366}])$$

  8. Alice giải mã kết quả chút với khóa riêng của họ;

    $$ b = \operatorname{FHE-Dec}(A_{priv})$$

    • nếu $b=1$ thì có ít nhất một sinh viên có ngày $A$
    • nếu $b=0$ sau đó không có sinh viên với ngày $A$.

những gì được đảm bảo;

  1. Giống như sơ đồ cơ bản.
  2. Lần này thay vì mã hóa 9-bit, Alice mã hóa 366-bit (tăng ~40 lần chi phí/thời gian gửi ban đầu)
  3. Mặt khác, Mallory đã nhận được rất nhiều cải tiến về thời gian và bộ nhớ
    1. Không cần một hoạt động bình đẳng FHE nặng nề.
    2. Kích thước của bản mã được lưu trữ đã giảm ~40.
  4. Mặt khác, kết quả vẫn là mã hóa 1 bit.
  5. Đề án này tiết kiệm rất nhiều thời gian cho quá trình này.

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