# Notes of Oblivious Transfer Protocol From Homomorphic Encryption Schemes
https://eprint.iacr.org/2020/647.pdf
## OT Problem
1. A sender has two secrets (m0 and m1)
2. A receiver wants to learn one of them (mσ where σ is 0 or 1)
Two Main condition on OT Schema is:
**Condition_1** : Receiver learns nothing about other message
**Condition_2** : Sender shouldn't learn about what receiver asked for i.e `mσ`
## Generic OT Schema

### Different Variations of OT:
1. OT²₁: Basic 1-out-of-2 transfer
2. OTⁿ₁: 1-out-of-n transfer
3. OTⁿₖ: k-out-of-n transfer
vikas todos!
Todo_1 ✅: OT protocol based on Diffie-Hellman key exchange
Todo_2 ⏳: Hauck and Loss improved it to be fully UC-secure (Universal Composability secure)
## Chou and Orlandi’s OT²₁
https://eprint.iacr.org/archive/2015/267/1527602042.pdf
- Sender has two messages (m₀, m₁)
- Receiver has a choice bit σ ∈ {0,1}
- Sender doesn't learn which message was chosen
- Receiver only learns mσ

1. At the sender's side, you will compute two keys, k0 and k1, and create two encrypted messages, c0 and c1.
2. On the receiver's side, since we already know the σ bit (either 0 or 1), we will simply choose either c0 or c1 according to the bit and use this function
3. The protocol involves three rounds: sender sends A, receiver responds with B, and sender transmits {c₀, c₁}.
4. Regarding security considerations, it's important to note that this protocol is not fully UC-secure and requires secure random number generation. Additionally, keys should be reused in the initial setups!
### Hauck and Loss’s OT²₁ protocol