  This paper proposes a new homomorphic functional encryption using modular
multiplications over a hidden ring. Unlike traditional homomorphic encryption
where users can only passively perform ciphertext addition or multiplication,
the homomorphic functional encryption retains homomorphic addition and scalar
multiplication properties, but also allows for the user's inputs through
polynomial variables. The proposed homomorphic encryption can be applied to any
polynomials over a finite field, with their coefficients considered as their
privacy. We denote the polynomials before homomorphic encryption as plain
polynomials and after homomorphic encryption as cipher polynomials. A cipher
polynomial can be evaluated with variables from the finite field, GF(p), by
calculating the monomials of variables modulo a prime p. These properties allow
functional homomorphic encryption to be used for public key encryption of
certain asymmetric cryptosystems to hide the structure of its central map
construction. We propose a new variant of MPKC with homomorphic encryption of
its public key. We propose to use a single plaintext vector and a noise vector
of multiple variables to be associated with the central map, in place of the
secret plaintext vector to be encrypted in MPKC. We call this variant of
encrypted MPKC, a Homomorphic Polynomial Public Key algorithm or HPPK
algorithm. The HPPK algorithm holds the property of indistinguishability under
the chosen-plaintext attacks or IND-CPA. The overall classical complexity to
crack the HPPK algorithm is exponential in the size of the prime field GF(p).
We briefly report on benchmarking performance results using the SUPERCOP
toolkit. Benchmarking results demonstrate that HPPK offers rather fast
performance, which is comparable and in some cases outperforms the NIST PQC
finalists for key generation, encryption, and decryption.
