Semi-Honest Oblivious Transfer (OT ) Primitives
This page describes a few basic protocols for oblivious transfer (
Semi-Honest Base OT: Syntax and Semantics
Semi-honest Alice (
Generalization
The definition for
-out-of- 1 oblivious transfer can be extended to 2 -out-of- 𝑘 oblivious transfer in a natural way: Sender has 𝑛 messages 𝑛 out of which the receiver can choose any { 𝑚 0 , ⋯ , 𝑚 𝑛 − 1 } of them but must remain oblivious to the rest of 𝑘 messages. Furthermore, the sender should remain oblivious to the messages that the receiver selected. 𝑛 − 𝑘 We use the notation
to mean ( 2 1 ) -out-of- 1 oblivious transfer, and 2 to mean ( 𝑛 𝑘 ) -out-of- 𝑘 oblivious transfer. 𝑛 NOTE: The ordering of
and 𝑚 0 is arbitrary and nothing prevents a malicious sender from swapping 𝑚 1 with 𝑚 0 . This, and other potential deviations from the prescribed protocol, need to be handled using a maliciously secure oblivious transfer scheme which is not covered in this document. This document only considers semi-honest adversary, which never deviates from the prescribed protocol. (Of course, a semi-honest adversary is not much of an adversary, but it’s a useful building block for almost all maliciously secure OT schemes.) 𝑚 1
The correctness requirements for an OT protocol are obvious: If Bob’s choice bit is
Notation
Let
be a function that 𝑓 ( 𝑥 1 , ⋯ , 𝑥 𝑛 ) parties 𝑛 wish to compute jointly, where each party wants to keep its input P 1 , ⋯ , P 𝑛 secret. Let 𝑥 𝑖 be the protocol executed by party 𝜋 𝑖 to jointly evaluate P 𝑖 . Abusing notation, we will use 𝑓 ( 𝑥 1 , ⋯ , 𝑥 𝑛 ) to mean the overall protocol (an interactive Turing machine) that produces all the necessary outputs that are exchanged between parties. 𝜋 Given the protocol
, the following notation is used throughout this document: 𝜋
As always, the inputs to
from the same party are listed consecutively and separated by a semicolon ‘ 𝜋 ’. In particular, OT as a (co-operatively evaluated) function is represented as: ; OT ( 𝑚 0 , 𝑚 1 ; 𝑏 ) → 𝑚 𝑏 As a boolean function,
can be expressed as: OT OT ( 𝑚 0 , 𝑚 1 ; 𝑏 ) = ( 𝑚 0 ∧ ¬ 𝑏 ) ⊕ ( 𝑚 1 ∧ 𝑏 ) Similarly,
can also be expressed as an arithmetic function over a finite field OT as { 0 , 1 } ⊆ 𝔽 OT ( 𝑚 0 , 𝑚 1 ; 𝑏 ) = 𝑚 0 ⋅ ( 1 − 𝑏 ) + 𝑚 1 ⋅ 𝑏 Alice’s view while interacting with Bob is denoted by
View 𝔸 ( 𝑚 0 , 𝑚 1 , 𝑟 𝔸 ; 𝑏 ) where
is Alice’s private randomness used during that particular execution of the protocol. 𝑟 𝔸 consists of all of Alice’s local inputs View 𝔸 ( 𝑚 0 , 𝑚 1 , 𝑟 𝔸 ; 𝑏 ) as well as all the messages she has received from Bob. Note that at any point in time, Alice’s view contains all the information she needs to deterministically generate all outgoing messages from Alice to Bob. ( 𝑚 0 , 𝑚 1 , 𝑟 𝔸 ) Similarly Bob’s view is denoted by
View 𝔹 ( 𝑏 , 𝑟 𝔹 ; 𝑚 0 , 𝑚 1 ) which includes Bob’s local inputs
as well as all messages received from Alice. ( 𝑏 , 𝑟 𝔹 ) For a given execution of a protocol, all messages sent between Alice and Bob is collectively called the (communication) transcript and is denoted by
𝜏 ( 𝑚 0 , 𝑚 1 , 𝑏 ; 𝑟 𝔸 , 𝑟 𝔹 ) : = ⟨ 𝔸 , 𝔹 ⟩ ( 𝑚 0 , 𝑚 1 , 𝑏 ) where
and 𝑟 𝔸 is the specific choice of randomness that was used during that particular execution of the protocol, and 𝑟 𝔹 denotes the messages that were seen on the wire. When the role of ⟨ 𝔸 , 𝔹 ⟩ ( ⋯ ) and 𝑚 0 , 𝑚 1 , 𝑏 , 𝑟 𝔸 is understood from context, we simply use 𝑟 𝔹 to denote 𝜏 . 𝜏 ( 𝑚 0 , 𝑚 1 , 𝑏 ; 𝑟 𝔸 , 𝑟 𝔹 ) Since each execution of the protocol uses fresh randomness,
is a random variable across different runs the protocol even for the same value of 𝜏 ( 𝑟 𝔸 , 𝑟 𝔹 ) . Furthermore, since the protocol is required to terminate after a finite number of steps, the maximum number of random bits used in any execution of the protocol is finite. We use the notation ( 𝑚 0 , 𝑚 1 , 𝑏 ) 𝕋 ( 𝑚 0 , 𝑚 1 , 𝑏 ) : = { 𝜏 ( 𝑚 0 , 𝑚 1 , 𝑏 ; 𝑟 𝔸 , 𝑟 𝔹 ) ∣ 𝑟 𝔸 , 𝑟 𝔹 $ ← { 0 , 1 } ∗ } to denote the set of all possible transcripts that the protocol can generate by varying
and 𝑟 𝔸 . Since the set of values for 𝑟 𝔹 and 𝑟 𝔸 is finite, the size of the set 𝑟 𝔹 is finite. 𝕋 ( 𝑚 0 , 𝑚 1 , 𝑏 ) Note that:
- Given the views of Alice and Bob, the transcript can be generated deterministically.
- While the views of Alice and Bob are private, the transcript is public and known to both Alice and Bob.
The privacy requirements for Alice and Bob can be summarized as:
Privacy Requirements
-
Alice’s Privacy: Let Bob’s choice bit be
and let𝑏 be a polynomial time algorithm (called a distinguisher) that a corrupt Bob is trying to use to glean extra information aboutD from its message transcript𝑚 1 − 𝑏 𝜏 : = ⟨ 𝔸 , 𝔹 ⟩ ( 𝑚 0 , 𝑚 1 , 𝑏 ) An OT scheme preserves Alice’s privacy if, given
- the transcript
,𝜏 - Bob’s input bit
, and𝑏 - the result
𝑚 𝑏
the probability with which
can distinguishD from𝑚 1 − 𝑏 (or, for that matter,1 ) with probability significantly greater than0 is negligible, i.e.,1 2 ∀ D ∈ p.p.t ∧ ∀ 𝜏 : 𝐏 𝐫 [ D ( 𝑏 , 𝑚 𝑏 , 𝜏 ) = 1 ] < 1 2 + negl where the probability is taken over the private random choices of Alice and Bob (i.e.,
and𝑟 𝔸 ) as well as the internal randomness of𝑟 𝔹 .D - the transcript
-
Bob’s Privacy: Let
be a polynomial time distinguisher that corrupt Alice is trying to use to find information aboutD ′ from her message transcript𝑏 . An OT scheme preserves Bob’s privacy if, given𝜏 , the probability that𝜏 can guess the value ofD ′ with probability significantly greater than𝑏 is negligible, i.e.,1 2 ∀ D ′ ∈ p.p.t ∧ ∀ 𝜏 : 𝐏 𝐫 [ D ′ ( 𝑚 1 , 𝑚 0 , 𝜏 ) = 𝑏 ] < 1 2 + negl where the probability is taken over the private random choices of Alice and Bob as well as the internal randomness of
.D ′
OT Theoretical Results
This section lists some well known theoretical results related to Oblivious Transfer.
Theorem
Information theoretically secure oblivious transfer schemes don’t exist.
We will prove this theorem in two stages: First we will show that given any oblivious transfer scheme
one can use it as a black box to construct a two party MPC protocol
Second, we will prove that there does not exist any information
theoretically secure
Proof [
] : OT ⟹ 2 pc ∧ Suppose
has bit Alice and 𝑎 has bit Bob and 𝑏 and Alice want to jointly compute Bob using 2pc ∧ ( 𝑎 ; 𝑏 ) as a black box. OT ( 𝑚 0 , 𝑚 1 ; 𝑏 )
Here’s how the two parties proceed (See figure above for pictorial representation of these steps):
acts as the Alice sender and OT acts as the Bob receiver. OT - As an
sender, OT feeds her two inputs as Alice and 𝑚 0 : = 0 to the 𝑚 1 : = 𝑎 black box. OT - As an
receiver, OT feeds his choice bit Bob into the 𝑏 : = 𝑏 black box. OT broadcasts the final result of Bob back to OT . Alice Claim: The output of above oblivious transfer setup securely computes
. Reason: 𝑎 ∧ 𝑏
Correctness holds because
. OT ( 0 , 𝑎 ; 𝑏 ) = [ 0 ∧ ( ¬ 𝑏 ) ] ⊕ [ 𝑎 ∧ 𝑏 ] = 𝑎 ∧ 𝑏
’s privacy holds because of Alice sender’s privacy guarantee: Namely, if OT then the receiver always gets 𝑏 = 0 as its output — regardless of the value of 0 ! Note that when 𝑎 , then any 2-party MPC 𝑏 = 1 andprotocol will reveal the value of, but that’s not a privacy breach because even an ideal world implementation of 𝑎 andfunction will leak this information. Furthermore, ifis maliciously secure or semi-honestly secure, then so is OT . 2 pc ∧
’s privacy holds because of Bob receiver’s privacy guarantees. In particular, OT guarantees that the sender will never learn the value of OT with non-negligible probability. 𝑏
We now prove that its impossible to have an information theoretically secure two party
Lemma
There is no information theoretically secure
MPC scheme with (a) perfect correctness and (b) perfect privacy. 2 pc ∧
Suppose there exists such an information theoretically secure
Proof:
The high level idea of the proof is to build a distinguisher for
by exploiting the properties of the transcript set 𝑏 𝕋 ( 𝑎 , 𝑏 ) : = { 𝜏 ( 𝑎 , 𝑏 ; 𝑟 Alice , 𝑟 Bob ) ∣ 𝑟 Alice , 𝑟 Bob $ ← { 0 , 1 } ∗ } for different values of
and 𝑎 . In particular, it’s based on the observation that the transcript set of any 𝑏 MPC protocol with perfect correctness and perfect privacy must be identical when either 2 pc ∧ ( 𝑎 ; 𝑏 ) or 𝑎 = 0 , i.e., 𝑏 = 0 𝕋 ( 0 , 0 ) = 𝕋 ( 1 , 0 ) = 𝕋 ( 0 , 1 ) but very distinct when
and 𝑎 = 1 , namely, 𝑏 = 1 𝕋 ( 0 , 1 ) ∩ 𝕋 ( 1 , 1 ) = 𝜙 A computationally unbounded
will use these facts (which are proved later in this section), to build a distinguisher to decide if the protocol transcript Alice is an element of 𝜏 ( 0 , 𝑏 ) or 𝕋 ( 0 , 0 ) and breach 𝕋 ( 0 , 1 ) ’s privacy. Bob Here’s the concrete strategy
can use: Alice
Since
is computationally unbounded, she can enumerate all possible random values (i.e., Alice and 𝑟 Alice ) used by the protocol to build a table corresponding to the transcript set 𝑟 Bob 𝕋 ( 1 , 0 ) = { 𝜏 ( 1 , 0 ; 𝑟 Alice , 𝑟 Bob ) ∣ 𝑟 Alice , 𝑟 Bob $ ← { 0 , 1 } ∗ } in her spare time.
- After this table is built,
runs her protocol Alice with input 2 pc ∧ ( 𝑎 ; 𝑏 ) to obtain the transcript 𝑎 = 0 . Notice that the table 𝜏 ( 0 , 𝑏 ) has built is for Alice and 𝑎 = 1 , but the actual protocol runs over the values 𝑏 = 0 and 𝑎 = 0 unknown to 𝑏 . Alice Given that particular run of the transcript
, 𝜏 ( 0 , 𝑏 ; ⋅ , ⋅ ) searches through the table Alice to find if 𝕋 ( 1 , 0 ) is present or not and concludes: 𝜏 ( 0 , 𝑏 ; ⋅ , ⋅ ) 𝜏 ( 0 , 𝑏 ; ⋅ , ⋅ ) ∈ 𝕋 ( 1 , 0 ) ⟹ { 𝑏 = 0 if true 𝑏 = 1 otherwise The reason this strategy succeeds is because as sets
and 𝕋 ( 0 , 0 ) are identical. Concretely that means, if 𝕋 ( 1 , 0 ) corresponds to random coin tosses 𝜏 ( 0 , 0 ; 𝑟 Alice , 𝑟 Bob ) during protocol execution, then there must exist some other random choices ( 𝑟 Alice , 𝑟 Bob ) for which ( 𝑟 ′ Alice , 𝑟 ′ Bob ) = 𝜏 ( 1 , 0 ; 𝑟 ′ Alice , 𝑟 ′ Bob ) . Furthermore, since 𝜏 ( 0 , 0 ; 𝑟 Alice , 𝑟 Bob ) , presence of 𝕋 ( 1 , 0 ) ∩ 𝕋 ( 1 , 1 ) = 𝜙 in 𝜏 ( 0 , 𝑏 ) , implies absence from 𝕋 ( 1 , 0 ) . Therefore, testing for set membership of 𝕋 ( 1 , 1 ) in 𝜏 ( 0 , 𝑏 ) is sufficient to conclude if 𝕋 ( 1 , 0 ) or 𝑏 = 0 . 𝑏 = 1 The only thing left to prove is that
and 𝕋 ( 0 , 0 ) = 𝕋 ( 1 , 0 ) . We prove these as two claims separately: 𝕋 ( 1 , 0 ) ∩ 𝕋 ( 1 , 1 ) = 𝜙 Claim:
𝕋 ( 0 , 0 ) = 𝕋 ( 1 , 0 ) Proof: First note that the output of
is the same when either 2 pc ∧ ( 𝑎 ; 𝑏 ) or 𝑎 = 0 . We will show that if 𝑏 = 0 then it will lead to the breach of perfect privacy assumption. 𝕋 ( 0 , 0 ) ≠ 𝕋 ( 1 , 0 ) Let’s suppose that
. That means, there must exist at least one transcript 𝕋 ( 0 , 0 ) ≠ 𝕋 ( 1 , 0 ) that is present in 𝛾 but not in 𝕋 ( 0 , 0 ) (or vice versa). Let 𝕋 ( 1 , 0 ) be the private randomness that was used to generate transcript 𝑟 𝛾 : = ( 𝑟 𝛾 Alice , 𝑟 𝛾 Bob ) . Since the protocol must terminate in finite number of steps, the length of 𝛾 is finite. That means, a computationally unbounded adversary can enumerate all possible bit strings of length 𝑟 𝛾 and run the protocol on ∣ 𝑟 𝛾 ∣ and ( 𝑎 , 𝑏 ) : = ( 0 , 0 ) and find out whether ( 𝑎 , 𝑏 ) : = ( 1 , 0 ) corresponds to 𝛾 or ( 𝑎 = 0 ) ∧ ( 𝑏 = 0 ) In other words, based on ( 𝑎 = 1 ) ∧ ( 𝑏 = 0 ) . alone, the adversary can find out if 𝛾 of 𝑎 = 0 with non-zero probability. This, however, is a breach of perfect privacy assumption, therefore 𝑎 = 1 . 𝕋 ( 0 , 0 ) = 𝕋 ( 1 , 0 ) Claim:
𝕋 ( 1 , 0 ) ∩ 𝕋 ( 1 , 1 ) = 𝜙 Proof: This follows immediately from perfect correctness of
. If 2 pc ∧ ( 𝑎 ; 𝑏 ) , that means there exists a transcript 𝕋 ( 1 , 0 ) ∩ 𝕋 ( 1 , 1 ) ≠ 𝜙 such that 𝛾 ′ and 𝛾 ′ ∈ 𝕋 ( 1 , 0 ) . However the output of 𝛾 ′ ∈ 𝕋 ( 1 , 1 ) is completely determined by 2 pc ∧ ( 𝑎 ; 𝑏 ) and the transcript ( 𝑎 , 𝑏 ) (Note that the internal coin tosses of the protocol implicitly gives rise to different transcripts of the protocol, so one only needs to consider the transcript, which acts as a proxy for the internal coin tosses of the protocol). But since the output of 𝛾 ′ . but 2 pc ∧ ( 1 ; 0 ) = 0 it would be a breach of perfect correctness if the same 2 pc ∧ ( 1 ; 1 ) = 1 could output both 𝛾 ′ and 0 based on the internal coin tosses of the protocol. Therefore, under perfect correctness assumption 1 𝕋 ( 1 , 0 ) ∩ 𝕋 ( 1 , 1 ) = 𝜙
Together, these results prove that one cannot have information theoretically secure oblivious transfer scheme, with perfect privacy and perfect correctness.
Semi-honest OT Constructions
( 2 1 ) OT from RSA Hardcore predicate
Let
A result by Alexi, Chor, Goldreich, and Schnorr states that give
Assuming semi-honest adversary, the following scheme uses RSA hardcore predicate to build a 1-out-of-2
Setup:
Based on security parameter
(say 𝜆 ), the 𝜆 = 2 0 4 8 sender Alice ( OT ), generates two random primes 𝔸 and 𝑝 of size 𝑝 and computes 𝜆 / 2 , 𝑛 = 𝑝 ⋅ 𝑞 , 𝜙 ( 𝑛 ) and 𝑒 as described before. This one time setup can be reused for different runs of the 𝑑 Protocol with potentially different receivers. After computing these values, OT sends 𝔸 to the ( 𝑛 , 𝑒 ) receiver Bob ( OT ) and keeps 𝔹 private. ( 𝑛 , 𝑒 , 𝑑 )
Protocol Execution:
: 𝔹 ⟶ 𝔸 ’s choice bit is [ 𝔹 𝑏 ∈ { 0 , 1 } ]
samples two random numbers as follows 𝔹 𝑠 $ ← ( ℤ / 𝑛 ℤ ) × 𝑇 $ ← ( ℤ / 𝑛 ℤ ) × and computes
𝑆 : = 𝑠 𝑒 m o d 𝑛 Depending upon the choice bit
, 𝑏 prepares a message 𝔹 consisting of two Ring element from Ω as follows: ℤ / 𝑛 ℤ Ω : = { ( 𝑆 , 𝑇 ) if 𝑏 = 0 ( 𝑇 , 𝑆 ) if 𝑏 = 1 and sends
to Ω in the left to right tuple order (i.e., sends 𝔸 then 𝑆 if 𝑇 , otherwise, sends 𝑏 = 0 then 𝑇 ). 𝑆 : 𝔸 ⟶ 𝔹 ’s input messages are [ 𝔸 𝑚 0 , 𝑚 1 ∈ { 0 , 1 } ]
Suppose
receives 𝔸 . Since Ω = ( 𝑋 , 𝑌 ) has access to RSA trapdoor information 𝔸 , it computes 𝑑 𝑥 = 𝑋 𝑑 m o d 𝑛 𝑦 = 𝑌 𝑑 m o d 𝑛 and extracts the hardcore bits directly as
and lsb ( 𝑥 ) and prepares the response message lsb ( 𝑦 ) as follows: Δ 𝑐 0 : = 𝑚 0 ⊕ lsb ( 𝑥 ) 𝑐 1 : = 𝑚 1 ⊕ lsb ( 𝑦 ) Δ : = ( 𝑐 0 , 𝑐 1 )
then sends 𝔸 to Δ . 𝔹
Selection: Depending upon the choice bit 𝔹 , 𝑏 computes 𝔹 as follows: 𝑚 𝑏 𝑚 𝑏 = 𝑐 𝑏 ⊕ lsb ( 𝑠 )
Perfect Correctness
When both
and 𝔸 are honest, the trapdoor information 𝔹 allows 𝑑 to compute the exact value of 𝔸 from 𝑠 . Given ( 𝑋 , 𝑌 ) , 𝑠 can be thought of one-time pad encryption of message 𝑐 𝑏 , which 𝑚 𝑏 can correctly decrypt. 𝔹
Perfect Privacy
’s privacy against computationally bounded semi-honest 𝔸 : Since 𝔹 is semi-honest, it follows the protocol exactly as described. In particular, it only knows the value of 𝔹 and not the value of 𝑠 = 𝑆 𝑑 m o d 𝑛 . (By construction, 𝑡 = 𝑇 𝑑 m o d 𝑛 was selected randomly and 𝑇 doesn’t know 𝔹 that it could use to compute 𝑑 with significant probability). Therefore, it can only decrypt one of 𝑡 or 𝑐 0 with high probability. 𝑐 1 More formally, assuming that
hardcore predicate of the RSA function can be predicted with probability lsb ( ⋅ ) , given 1 / 2 + 𝜖 and 𝑐 1 − 𝑏 , 𝑇 can predict the value of 𝔹 with probability 𝑚 1 − 𝑏 . 1 / 2 + 𝜖
’s privacy against computationally unbounded malicious 𝔹 : Since 𝔸 and 𝑆 are identically distributed 𝑇 cannot predict with probability greater than 𝔸 which bit 1 / 2 is interested in. Therefore, 𝔹 ’s privacy is information theoretically guaranteed. (NOTE: it’s important that 𝔹 is sampled uniformly from the group of units of 𝑇 , otherwise a computationally unbounded ℤ / 𝑛 ℤ will be able to breach 𝔸 ’s privacy.) 𝔹
The figure below summarizes the protocol pictorially:
( 2 1 ) String-OT from DDH Assumption [Naor and Pinkas, SODA ‘01]
In a String-
Let
Assuming semi-honest adversary, the following scheme use DDH assumption to build a
Setup:
Based on the security parameter
the 𝜆 sender Alice ( OT ) and Bob ( 𝔸 ) agree upon: 1. An appropriate cyclic group 𝔹 of prime order 𝔾 such that DDH assumption holds with ℓ distinguishing probability 2. A generator 2 − 𝜆 3. A message encoding scheme that encodes bit strings to group elements. From now on, we assume 𝑔 ∈ 𝔾 𝑚 0 , 𝑚 1 ∈ 𝔾
String-
: 𝔹 ⟶ 𝔸 ’s choice bit is [ 𝔹 𝑏 ∈ { 0 , 1 } ]
samples three random numbers 𝔹 and computes ( 𝑞 , 𝑟 , 𝑡 ) as follows 𝑠 𝑞 $ ← ℤ / ℓ ℤ 𝑟 $ ← ℤ / ℓ ℤ 𝑠 = 𝑞 × 𝑟 𝑡 $ ← ℤ / ℓ ℤ and further computes
𝑄 = 𝑔 𝑞 𝑅 = 𝑔 𝑟 𝑆 = 𝑔 𝑠 𝑇 = 𝑔 𝑡 Depending upon the choice bit
, 𝑏 prepares a message 𝔹 consisting of four group elements as follows: Ω Ω : = { ( 𝑄 , 𝑅 , 𝑆 , 𝑇 ) if 𝑏 = 0 ( 𝑄 , 𝑅 , 𝑇 , 𝑆 ) if 𝑏 = 1 and sends
to Ω . 𝔸 : 𝔸 ⟶ 𝔹 ’s input messages are encoded as group elements [ 𝔸 𝑚 0 , 𝑚 1 ∈ 𝔾 ]
Suppose
receives 𝔸 . Ω = ( 𝑄 , 𝑅 , 𝑋 , 𝑌 ) randomly samples 𝔸 𝑢 0 $ ← ℤ / ℓ ℤ 𝑣 0 $ ← ℤ / ℓ ℤ 𝑢 1 $ ← ℤ / ℓ ℤ 𝑣 1 $ ← ℤ / ℓ ℤ
then computes encryption keys 𝔸 as follows 𝑘 0 , 𝑘 1 𝑊 0 = 𝑄 𝑢 0 𝑔 𝑣 0 = 𝑔 𝑞 ⋅ 𝑢 0 + 𝑣 0 𝑊 1 = 𝑅 𝑢 1 𝑔 𝑣 1 = 𝑔 𝑟 ⋅ 𝑢 1 + 𝑣 1 𝑘 0 = 𝑋 𝑢 0 𝑅 𝑣 0 = { 𝑔 ( 𝑞 ⋅ 𝑢 0 + 𝑣 0 ) ⋅ 𝑟 if 𝑏 = 0 𝑔 𝑡 ⋅ 𝑢 0 + 𝑟 ⋅ 𝑣 0 if 𝑏 = 1 𝑘 1 = 𝑋 𝑢 1 𝑅 𝑣 1 = { 𝑔 𝑡 ⋅ 𝑢 1 + 𝑟 ⋅ 𝑣 1 if 𝑏 = 0 𝑔 ( 𝑞 ⋅ 𝑢 1 + 𝑣 1 ) ⋅ 𝑟 if 𝑏 = 1 and encrypts it’s two messages
as 𝑚 0 , 𝑚 1 ∈ 𝔾 𝐶 0 = 𝑚 0 ⋅ 𝑘 0 𝐶 1 = 𝑚 1 ⋅ 𝑘 1 and formats the response message as four group elements
Δ : = ( 𝑊 0 , 𝐶 0 , 𝑊 1 , 𝐶 1 )
then sends 𝔸 to Δ . 𝔹
Selection: Depending upon the choice bit 𝔹 , 𝑏 computes 𝔹 as follows: 𝑚 𝑏 𝑚 𝑏 = 𝐶 𝑏 ⋅ 𝑊 − 𝑟 𝑏
Perfect Correctness
When both
and 𝔸 are honest, 𝔹 ∀ 𝑏 ∈ { 0 , 1 } : 𝐶 𝑏 ⋅ 𝑊 − 𝑟 𝑏 = ( 𝑚 𝑏 ⋅ 𝑔 ( 𝑞 ⋅ 𝑢 𝑏 + 𝑣 𝑏 ) ⋅ 𝑟 ) ⋅ ( 𝑔 ( 𝑞 ⋅ 𝑢 𝑏 + 𝑣 𝑏 ) ) − 𝑟 = 𝑚 𝑏
Perfect Privacy
’s privacy against computationally bounded semi-honest 𝔸 : We analyze the 𝔹 ’s privacy for different values of 𝔸 separately. 𝑏
Case
: In this case, the information sent by 𝑏 = 0 is 𝔸 Since ( 𝑔 𝑞 ⋅ 𝑢 0 + 𝑣 0 , 𝑚 0 ⋅ 𝑔 ( 𝑞 ⋅ 𝑢 0 + 𝑣 0 ) ⋅ 𝑟 , 𝑔 𝑞 ⋅ 𝑢 1 + 𝑣 1 , 𝑚 1 ⋅ 𝑔 ( 𝑡 ⋅ 𝑢 1 + 𝑟 ⋅ 𝑣 1 ) ) and 𝑢 0 are sampled independently from 𝑣 0 , the entries corresponding 𝑢 1 , 𝑣 1 is independent from 𝑊 1 , 𝐶 1 . Furthermore, 𝑊 0 , 𝐶 0 and 𝑊 1 = 𝑔 𝑞 ⋅ 𝑢 1 + 𝑣 1 = ( 𝑔 𝑞 ) 𝑢 1 ⋅ 𝑔 𝑣 1 Assuming semi-honest 𝐶 1 = 𝑚 1 ⋅ ( 𝑔 𝑡 ) 𝑢 1 ⋅ ( 𝑔 𝑟 ) 𝑣 1 , given that 𝔹 is a prime order group, 𝔾 , and 𝑔 𝑞 , 𝑔 𝑟 are also generators of 𝑔 𝑡 . Furthermore since 𝔾 and 𝑢 1 were randomly selected by 𝑣 1 , 𝔸 and 𝑊 1 are random elements of the group for a computationally bounded DDH-adversary 𝐶 1 / 𝑚 1 . Therefore, the probability with which 𝔹 can make inference about 𝔹 is negligible. 𝑚 1 Case
: This case is identical to 𝑏 = 1 , except for 𝑏 = 0 and 𝑢 0 playing the role that 𝑣 0 and 𝑢 1 . 𝑣 1
’s privacy against computationally bounded semi-honest 𝔹 : Since 𝔸 receives tuples either of the form 𝔸 when ( 𝑔 𝛼 , 𝑔 𝛽 , 𝑔 𝛼 ⋅ 𝛽 , 𝑔 𝛾 ) or of the form 𝑏 = 0 , when ( 𝑔 𝛼 , 𝑔 𝛽 , 𝑔 𝛾 , 𝑔 𝛼 ⋅ 𝛽 ) , by DDH assumption semi-honest 𝑏 = 1 cannot distinguish whether it’s in 𝔸 or 𝑏 = 0 case with non-negligible probability (this can he shown using hybrid argument). This guarantees 𝑏 = 1 ’s privacy. 𝔹
The figure below summarizes the protocol pictorially:
( 𝑛 1 ) OT from ( 2 1 ) String-OT [Naor and Pinkas, STOC ‘99]
In an
The scheme by Naor and Pinkas achieves
where
Define
and associate each pair
Given the list of key pairs
-
Define a new PRF
whose key is thẽ 𝐹 : ( { 0 , 1 } 𝜆 ) ℓ × { 0 , 1 } 𝑚 → { 0 , 1 } 𝑚 -tupleℓ as:𝑆 𝑗 ̃ 𝐹 ( 𝑆 𝑗 , 𝑥 ) : = ⊕ 𝑠 ∈ 𝑆 𝑗 𝐹 ( 𝑠 , 𝑥 ) -
Given index
and message𝑗 ∈ [ 𝑛 ] , where𝑥 𝑗 is public information, the OTP encryption of any message𝑗 is defined as:𝑥 ∈ { 0 , 1 } 𝑚 enc 𝑗 ( 𝑥 ) : = 𝑥 ⊕ ̃ 𝐹 ( 𝑆 𝑗 , 𝑗 )
Based on the above encryption scheme, a semi-honest sender
Since
NOTE: When evaluating
Let
Once
Notice that the
For the security proof to work, it’s important that
Example
Let
and 𝑛 = 4 . Let the list of key-pairs be ℓ = 2 𝑆 : = { ( 𝑠 0 0 , 𝑠 1 0 ) , ( 𝑠 0 1 , 𝑠 1 1 ) } In this notation, the number in subscript indicates the bit position and number in superscript indicates the binary value present at that bit position.
Based on this notation, for any index
, the key to be used when bit-0 of 𝑗 ∈ { 0 , 1 , 2 , 3 } has value 𝑗 is 0 ; and 𝑠 0 0 when its value is 𝑠 1 0 . Similarly, the key to be used when bit-1 has value 1 is 0 ; and 𝑠 0 1 when its value is 𝑠 1 1 . 1 Therefore, the tuple of keys for different indices are
𝑆 0 = ( 𝑠 0 0 , 𝑠 0 1 ) 𝑆 1 = ( 𝑠 1 0 , 𝑠 0 1 ) 𝑆 2 = ( 𝑠 0 0 , 𝑠 1 1 ) 𝑆 3 = ( 𝑠 1 0 , 𝑠 1 1 ) Notice that for any two indexes
where 𝑖 , 𝑗 , the keys 𝑖 ≠ 𝑗 and 𝑆 𝑖 are distinct and differ in at least one key. 𝑆 𝑗 If the semi-honest sender
has messages 𝔸 to send, it should compute ciphertexts as { 𝑥 0 , 𝑥 1 , 𝑥 2 , 𝑥 3 } 𝐶 0 = 𝑥 0 ⊕ 𝐹 ( 𝑠 0 0 , 0 ) ⊕ 𝐹 ( 𝑠 0 1 , 0 ) 𝐶 1 = 𝑥 1 ⊕ 𝐹 ( 𝑠 1 0 , 1 ) ⊕ 𝐹 ( 𝑠 0 1 , 1 ) 𝐶 2 = 𝑥 2 ⊕ 𝐹 ( 𝑠 0 0 , 2 ) ⊕ 𝐹 ( 𝑠 1 1 , 2 ) 𝐶 3 = 𝑥 3 ⊕ 𝐹 ( 𝑠 1 0 , 3 ) ⊕ 𝐹 ( 𝑠 1 1 , 3 ) Suppose the receiver
is interested in index 𝔹 . The bit decomposition of 𝑖 = 2 is 𝑖 (this is LSB-first bit decomposition). The receiver should then do two oblivious transfers: One for bit position zero, with sender messages ⃗ 2 = ( 0 , 1 ) 2 and another one for bit position one, with sender messages ( 𝑠 0 0 , 𝑠 0 1 ) . The receiver’s choice bits for the first ( 𝑠 1 0 , 𝑠 1 1 ) is OT (since bit zero of 0 has value 2 ) and the receiver choice bits for the second 0 is OT (bit one of 1 has value 2 ). At the end of 1 invocations, receiver OT will have access to 𝔹 and 𝑠 0 0 , based on which it can compute: 𝑠 1 1 𝑥 2 = 𝐶 2 ⊕ 𝐹 ( 𝑠 0 0 , 2 ) ⊕ 𝐹 ( 𝑠 1 1 , 2 ) Privacy guarantees: * The sender’s privacy guarantees afforded by
ensures that the transfer of ( 2 1 ) OT from messages 𝑠 0 0 completely hides information about ( 𝑠 0 0 , 𝑠 1 0 ) . Similarly the transfer of 𝑠 1 0 from messages 𝑠 1 1 completely hides information about ( 𝑠 0 1 , 𝑠 1 1 ) . Furthermore, for all 𝑠 1 0 , 𝑗 ≠ 𝑘 , therefore 𝑆 𝑘 ∖ 𝑆 𝑗 ≠ 𝜙 which ensures that the receiver cannot decrypt any message index other than 𝐏 𝐫 [ ̃ 𝐹 ( 𝑆 𝑘 , ⋅ ) = ̃ 𝐹 ( 𝑆 𝑗 , ⋅ ) ∣ 𝑗 ≠ 𝑘 ] < 1 2 𝑚 − 1 ≤ 1 2 𝜆 . This guarantees sender’s privacy. * The receiver’s privacy guarantees afforded by 𝑖 ensures that the bits of ( 2 1 ) OT (i.e., 𝑖 ) remain hidden from the sender during individual { 𝐼 𝑘 } 𝑘 ∈ [ 𝑒 𝑙 𝑙 ] invocations. This guarantees receiver’s privacy. OT
The figure below summarizes the protocol pictorially:
Comments
You can use MathJax/TeX syntax in comments and check rendered text in Preview tab.