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 :


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


Here comes the intricate part in my mind :


Bob should crypt the question (How?) 
Bob sends the encrypted question to Alice
Alice answer to bob with the encrypted decrypting key (How?)
Bob can decrypt his answer, Alice doesn't know what key she gave


Thanks :)
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$.