3

キー生成、暗号化、および復号化機能を備えた ElGamal 楕円曲線暗号システムの単純な実装 (Java BigInteger を使用) はありますか? 講義で大学生に説明するために使用できるものはありますか?

たとえば、Paillier 暗号化関数は、一般性を失うことなく、次のようにコーディングできます。

public BigInteger encrypt(BigInteger input) throws PaillierException  {
    if(!isInZN(input)) {
        throw new PaillierException(PaillierException.TYPE_PLAINTEXT_NOT_IN_ZN, input);
    }
    BigInteger plaintext = handleNegative(input);
    BigInteger r = randomInZStarN();
    return (((n.multiply(plaintext).add(BigInteger.ONE)).multiply(r.modPow(n, nSquared)))).mod(nSquared);
}

これには最適化 g=(1+n) が含まれており、暗号文 c = (1 + mn) r^n mod n^2 になります。

Java 7 ネイティブ実装や BouncyCastle 実装を提案しないでください。実際の JCA 準拠の複雑な実装は必要ありませ

ありがとう。

4

2 に答える 2

1

ここでドイツ人の卒業証書を見てみましょう
http://www.cdc.informatik.tu-darmstadt.de/reports/reports/crnjak.diplom.ps

于 2013-08-10T04:16:30.307 に答える