# dealing with real numbers in Integer Vector Homomorphic Encryption lib

I am using Integer Vector Homomorphic Encryption for the encryption lib.

I have to multiply a learning rate of 0.01 (i.e. between 0 and 1) by the encrypted data (vector) but it is not integer. I had wanted to multiply by 1/10 instead. Is it possible? because it is know that HE scheme doesn't support division. Is the any way out?

• What is the name of the scheme you are using? Would you have some link to that lib? – Hilder Vitor Lima Pereira Mar 23 '16 at 20:16
• As the question is currently written, it’s more about “using a specific library” (which is rather off-topic here) than it is about cryptography as defined in our help center. You might want to edit your question to make it a bit more on-topic… removing the reference to the library and reformulating your question in a more general way (meaning: asking about “Homomorphic Encryption for Integer Vectors” instead of the “Integer Vector Homomorphic Encryption lib”) should void the problem. – e-sushi Mar 24 '16 at 3:01

If the message space of your scheme is $\mathbb{Z}_t$, then you can
1. Multiply all the plaintexts by $10^k$ before encrypting them and instead of multiply those vectors by a learning rating between $0$ and $1$, multiply them by an integer learning rate between $0$ and $10^k$.
2. Remove the divisions and track the changes introduced by this remotion. For instance, instead of evaluate $x = \frac{c_0 + c_1}{10}$, do $y = c_0 + c_1$ and keep in mind that $y = 10x$ so you can find the right answer after decrypting. Take a look to the section 3.2 (Division-Free Integer Algorithms for Classification) of this paper...