BouncyCastle を暗号化プロバイダーとして使用するネットワーク アプリケーションを構築しています。キーペアを生成するためにこれがあるとしましょう:
ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("prime192v1");
KeyPairGenerator g = KeyPairGenerator.getInstance("ECDSA", "BC");
g.initialize(ecSpec, new SecureRandom());
KeyPair pair = g.generateKeyPair();
ECDSA KeyPairGeneratorのインスタンスを取得している理由がわかりません。ECとしか言わないのはなぜですか?BouncyCastle に同梱されている ECDH キー タイプがあることは知っていますが、この 2 つは曲線上のポイントについて同じものを表していると思いました。それとも、その背後にある理論に完全に誤りがありますか?
私が尋ねる理由は、現在、私のアプリケーションは ECDH を使用して AES 秘密鍵を確立していますが、ECDSA を使用して各メッセージに署名するために同じ EC キーを使用したいからです。