HElib is an open-source software library that implements homomorphic encryption. It supports the BGV scheme with bootstrapping and the Approximate Number CKKS scheme. HElib also includes optimizations for efficient homomorphic evaluation, focusing on effective use of ciphertext packing techniques and on the Gentry-Halevi-Smart optimizations.
Namely,Just as in "Homomorphic Evaluation of the AES Circuit",the element in slot is in F{2^8}.For example,the byte is"6f",which is "0110 1111",Now what I want is left shift 2 in this slot,in another word, just want to get the ciphertxt of "10 1111 00".How to achieve this result? If just multiply "100",which is X^2,only works when the first two bits are all "0",but when the first two bits are"01"、"10"、"11“ ,it will modulu G(X) = x8 + x4 + x3 + x + 1,So I cannot get "10 1111 00".Above all,what shoult I do to shift left two bits no matter what the fisrt two bits are?
Any idea or advice?THX
Namely,Just as in "Homomorphic Evaluation of the AES Circuit",the element in slot is in F{2^8}.For example,the byte is"6f",which is "0110 1111",Now what I want is left shift 2 in this slot,in another word, just want to get the ciphertxt of "10 1111 00".How to achieve this result? If just multiply "100",which is X^2,only works when the first two bits are all "0",but when the first two bits are"01"、"10"、"11“ ,it will modulu G(X) = x8 + x4 + x3 + x + 1,So I cannot get "10 1111 00".Above all,what shoult I do to shift left two bits no matter what the fisrt two bits are? Any idea or advice?THX