Intel Paillier Cryptosystem Library is an open-source library which provides accelerated performance of a partial homomorphic encryption (HE), named Paillier cryptosystem, by utilizing Intel® IPP-Crypto on AVX512IFMA instructions. Intel Paillier Cryptosystem Library is certified for ISO compliance.
@justalittlenoob We might need a dedicated thread manager, that is initialized when IPCL library is called, which essentially generates a few "worker" threads - 1 for QATmodExp, a few (or maybe one) for IPPmodExp
Essentially the main thread and the workers will be inactive, with std::condition_variable where:
main thread - when modexp is needed, wake up the workers to standby. Start distributing batches of base/exponent/mod to workers)
workers - receive batch, change status to busy, perform modexp, release and return
@justalittlenoob We might need a dedicated thread manager, that is initialized when IPCL library is called, which essentially generates a few "worker" threads - 1 for QATmodExp, a few (or maybe one) for IPPmodExp
Essentially the main thread and the workers will be inactive, with
std::condition_variable
where: main thread - when modexp is needed, wake up the workers to standby. Start distributing batches of base/exponent/mod to workers) workers - receive batch, change status to busy, perform modexp, release and returnWhat do you think?