Closed b-rohit closed 3 years ago
Hi,
I am not sure what exactly are you asking. Do you want to know how c
and OTP
are calculated? OTP is just a random vector that gets created by the central authority during master keys generation (function GenerateMasterKeys
) and OTPkey is then derived out of it for the decryption. Not sure what you mean by c0 and c1, please explain a bit more precise.
Best, Tilen
Yes, I want to know how c is calculated not in terms of encryption and decryption but in simple maths operations.
I am guessing that by c
you mean the variable defined in the implementation of the decryption. The algorithm is an implementation of algorithm in Figure 3 in this paper. In the paper these values are named D_i
. They are the decryptions using the underlying DDH based scheme. If you want to see the exact math operations used to get them check the algorithm used in the decryption of DDH based scheme in this paper. You can also directly check the code here
I followed the example given in the README file. I understood the Decrypt function returns the mod after executing decryption for number of Slots times. I am interested in how can I calculate intermediate values (c, OTPKey) defined in the Decrypt function. I put some debug logs in the function and checked the research paper but could not come up with formula. Use following sample values.
Could someone explain how c0, c1 and OTPKey can be calculated ?