You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Sources/PIRProcessDatabase/PIRProcessDatabase.docc/PIRProcessDatabase.md
+29-3Lines changed: 29 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -154,9 +154,35 @@ other usecase has 57 shards).
154
154
Some PIR algorithms, such as MulPir, include an optimization which returns multiple keyword-value pairs in the PIR
155
155
response, beyond the keyword-value pair requested by the client. However, this may be undesirable, e.g., if the database
156
156
contains sensitive IP. `Symmetric PIR` is a variant of PIR which protects the unrequested server values from the client,
157
-
in addition to the standard PIR guarantee protecting the client's keyword from the server. A best-effort approach
158
-
towards enabling symmetric PIR is to pad the entries, such that only a limited number of entries are in the server
159
-
response. However, this approach will increase server runtime.
157
+
in addition to the standard PIR guarantee protecting the client's keyword from the server.
158
+
159
+
There are two approaches to Symmetric PIR in Swift Homomorphic Encryption. The Fully Oblivious Symmetric PIR approach uses additional cryptographic primitives to guarantee that the client learns only the single keyword-value pair it requested, and is oblivious to other entries. The other is a best-effort approach that imposes an upper bound on the number of additional keyword-value pairs the client learns. We describe both these approaches next.
160
+
161
+
##### Fully Oblivious Symmetric PIR
162
+
163
+
In this approach, the server encrypts each keyword-value pair with a specific key derived from a single database encryption key. When querying, client first makes an extra call to the server, to learn information which would help it decrypt the entry it is interested in. Thus, this approach requires one additional call to the server.
164
+
165
+
To process the database for Symmetric PIR, add the following to the configuration file.
This will generate a fresh database encryption key, write it to `path/to/output/key-file.txt`, and use it for processing the database for Symmetric PIR.
174
+
175
+
In case you want to use a database encryption key file that was generated earlier, you can specify the path in `databaseEncryptionKeyFilePath` instead, as follows.
Copy file name to clipboardExpand all lines: Sources/PrivateInformationRetrieval/PrivateInformationRetrieval.docc/PrivateInformationRetrieval.md
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,8 +14,7 @@ While this *trivial PIR* protocol satisfies the privacy and correctness requirem
14
14
15
15
The PIR implementation in Swift Homomorphic Encryption uses homomorphic encryption to improve upon the trivial PIR protocol.
16
16
17
-
> Warning: PIR is asymmetric, meaning the client may learn keyword-value pairs not requested, as happens in trivial PIR for instance.
18
-
> A variant of PIR, known as *symmetric PIR*, would be required to ensure the client does not learn anything about values it did not request.
17
+
Note that PIR is asymmetric, meaning the client may learn keyword-value pairs not requested, as happens in trivial PIR for instance. Swift Homomorphic Encryption also implements *Symmetric PIR*, a variant of PIR which ensures the client does not learn anything about values it did not request.
19
18
20
19
## Topics
21
20
<!-- Snippets are defined in a different "virtual module", requiring manually linking articles here. -->
0 commit comments