# Implement CKKS- coefficient encoding multiplication

**URL:** <https://openfhe.discourse.group/t/implement-ckks-coefficient-encoding-multiplication/2164>\
**Category:** Library Questions\
**Created:** [September 8, 2025, 3:14pm UTC](https://openfhe.discourse.group/t/implement-ckks-coefficient-encoding-multiplication/2164 "2025-09-08T15:14:32Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![ypolyakov](https://yyz1.discourse-cdn.com/flex031/user_avatar/openfhe.discourse.group/ypolyakov/32/47_2.png) [@ypolyakov](https://openfhe.discourse.group/u/ypolyakov)\
**Post date:** [April 29, 2026, 4:49pm UTC](https://openfhe.discourse.group/t/implement-ckks-coefficient-encoding-multiplication/2164/4 "2026-04-29T16:49:28Z")

</div>

Logically speaking, I would first consider using BFV or BGV in OpenFHE if you just need the multiplication without functional bootstrapping. You can encode the plaintext using MakeCoeffPackedPlaintext. You can scale up real numbers using integers by multiplying them by 2^x or 10^y, where x and y would correspond to the desired precision. Then you would make sure the plaintext modulus is large enough for the result not to wrap around the plaintext modulus. If you need larger moduli, you can use plaintext CRT (see [Big plaintext moduli - #2 by Caesar](https://openfhe.discourse.group/t/big-plaintext-moduli/1739/2) for more details).

If you need more than multiplication, i.e., you want to do functional bootstrapping followed by a CKKS coefficient multiplication, you can perform it right after the trigonometric Hermite evaluation, i.e., between steps 6 and 7 of Algorithm 1 in [2024/1623](https://eprint.iacr.org/2024/1623). You would have to create custom subroutines for this since this is not supported out of the box now.

---

_[View the full topic](https://openfhe.discourse.group/t/implement-ckks-coefficient-encoding-multiplication/2164)._
