NB: what I meant is with implementation of the BGV-cryptosystem, not the CKKS cryptosystem which is designed with floating point arithmetic in mind.

HElib as I understand it only supports fixed-point arithmetic (or binary arithmetic). Why is this the case when everyone who works with computation uses floating point representation?

Is it that it is difficult to implement the rounding that has to occur in floating point operations? Is it slower to compute in floating point representation? Or is it some other hard barrier which comes from working with the specific cryptosystem?

Any insights is welcome.

  • 4
    $\begingroup$ "everyone who works with computation uses floating point representation" is domain-dependent. When computing number of votes, attendance, money spent, total billing amount, pills dispensed, pixel color, energy used... integers (sometime with an appropriate unit: cents rather than $, kWh rather than Joule) are preferred. In fact, no example comes to my mind where homomorphic encryption is relevant, and integers with a fixed scaling are not appropriate. Perhaps a relevant example should be added to the question. $\endgroup$
    – fgrieu
    Apr 29 at 11:58
  • $\begingroup$ Yeah you are right that there are a lot of domain where integers are the most useful. However there are many applications where data represented as floating point numbers is the most suitable. This is some time away, but let's say we want to train a neural network on medical data $\endgroup$
    – jaykopp
    Apr 29 at 13:01
  • $\begingroup$ Many cryptosystems operate on groups, represented by (big) integers. What you are suggesting seems to be a top-down approach. Cryptography is often bottom up: a mathematician designs a nice cryptosystem given a generic problem, and then we find out how to use it. You'd have to specifically design for floating point arithmetic. $\endgroup$
    – Maarten Bodewes
    Apr 29 at 15:22
  • $\begingroup$ But why would you have to design from the top to get floating point arithmetic? Couldn't you encrypt bit wise and do floating point arithmetic on the bits? $\endgroup$
    – jaykopp
    Apr 30 at 7:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.