簡単に言えば、ElGamal
暗号化された数値で乗算を実行するために暗号化を使用する必要があります。
私は現在使用Kotlin
してOpenJDK 1.8
おり、Bouncy Castle と呼ばれる JCE の優れたプロバイダーを見つけました。ElGamal
標準内で暗号化を提供しますJCE API
。ただし、暗号化されたメッセージに対して乗算を実行する方法がまったくわかりません。
Security.addProvider(BouncyCastleProvider())
val keys = KeyPairGenerator.getInstance("ElGamal", "BC").generateKeyPair()
val cipher = Cipher.getInstance("ElGamal/None/NoPadding", "BC")
cipher.init(Cipher.ENCRYPT_MODE, keys.public)
val eleven = BigInteger.valueOf(11)
val three = BigInteger.valueOf(3)
val eleven_e = cipher.doFinal(eleven.toByteArray())
val three_e = cipher.doFinal(three.toByteArray())
//Do three_e * eleven_e