# Alice answering Bob without knowing the question

I'm a student and I don't know how to solve the following problem :

• Alice is proposing a 10 questions list to Bob.
• Bob choose only 1 question and wants to know the answer without Alice knowing the question.

• Alice wants that Bob can only have 1 correct answer.

Is it possible ? If yes how ?

In my mind it should begin like this :

1. Bob & Alice knows the 10 questions
2. Alice encrypts each answer with a different key
3. Alice sends the 10 encrypted answers to Bob
4. Bob chose a question (ex : question 2)

Here comes the intricate part in my mind :

1. Bob should crypt the question (How?)

2. Bob sends the encrypted question to Alice

3. Alice answer to bob with the encrypted decrypting key (How?)

4. Bob can decrypt his answer, Alice doesn't know what key she gave

Thanks :)

• I think this might be related to the cryptographic sub-field of Private Information Retrieval, which I do not grasp enough to answer the question well. – fgrieu Dec 15 '15 at 12:13

You can use Oblivious transfer protocol for the answers: https://en.wikipedia.org/wiki/Oblivious_transfer

Here is an example with only 2 answers ($m0$ and $m1$) and uses RSA ($e,d,N$) : In your case Alice would have to send $x_0 \ldots x_9$ and Bob would have to pick $b \in \{0,\ldots,9\}$ where $b$ is the number of his question. The operation $m + k$ can be considered as a symmetric encryption of $m$ with the key $k$.

That is possible if and only if oblivious transfer is possible.

Proof:
For the left-to-right implication, Alice just lets the last 8 answers be independent of her inputs.
For the right-to-left implication, Alice creates 6 extra answers that are independent of her inputs, splits each answer into 4 shares, and then for i in {0,1,2,3}, obliviously transfers
to Bob the shares of the 8 answers whose i-th bit is the i-th bit of Bob's input.