ldsec / lattigo-polls-demo

26 stars 7 forks source link

key issue #5

Closed macknight closed 2 years ago

macknight commented 2 years ago

Hi, when running the demo, I would like to confirm that for each row in the demo web page, each row(person) is using different(from other rows(person)) public key to encrypt his own poll data, right?

BR

macknight commented 2 years ago

Another question is that in this diagram, where are the evaluation keys? image

BR

ChristianMct commented 2 years ago

Hi,

For your first question: no. In the current demo, the participant all encrypt their response with the poll creator's pk. The demo implements a simple use-case (described here) where the clients and the server are assumed honest and non-colluding.

For your second question: the evaluation key is part of the cpk. Since evaluation-keys are public-keys themselves, it is common to simplify the notation with cpk=(epk, evk) and give access to this key to both Encrypt and Eval. In other words, to refer to all the needed public-key material as "cpk".

macknight commented 2 years ago

Hi,

For your first question: no. In the current demo, the participant all encrypt their response with the poll creator's pk. The demo implements a simple use-case (described here) where the clients and the server are assumed honest and non-colluding.

For your second question: the evaluation key is part of the cpk. Since evaluation-keys are public-keys themselves, it is common to simplify the notation with cpk=(epk, evk) and give access to this key to both Encrypt and Eval. In other words, to refer to all the needed public-key material as "cpk".

OK, evaluation key is part of the cpk(collective public key), it's omitted in the legend. A small question, epk stands for e...what public key? evk stands for evaluation key?

BR

ChristianMct commented 2 years ago

In the above, I was referring to the following keys: epk: the collective public Encryption-key evk: the collective public evaluation-key

Note that I used the epk notation only in the context of this explanation. In most cases, we use the term "collective public-key" as a shortcut for "collective public encryption-key" because the traditional purpose of a pk in crypto is encryption. FHE introduces the need for additional public material, which we can abstract as being part of "the public key" to simplify the high-level picture. At a lower level, however, it is useful to separate encryption- and evaluation-related keys.