JavaCardのDiffieHellmanに問題があります。Diffie Hellman JavaCard
(その大きなファイルので、私はその問題があればわからないペーストビンするuplouded) https://pastebin.com/2F2sQ2Pe(https://github.com/ASKGLab/DHApplet)そして、私はそれの2のインスタンスを作成し、この(ショーのみのインスタンス)のようにそれを呼び出す:私はこのクラスを持っています:
DiffieHellman dh = new DiffieHellman();
dh.init();
dh.getY(hostY, (short)0);
dh.setY(cardY, (short) 0, (short) cardY.length, (short) 0);
AESKey encKey = (AESKey) KeyBuilder.buildKey(KeyBuilder.TYPE_AES_TRANSIENT_RESET, KeyBuilder.LENGTH_AES_128, false);
dh.doFinal(encKey);
hostYとcardYは公開値です。デスクトップアプリで試してみましたので、JavaCardとの通信に問題はありません。だから私の質問は、このSharedSecretのすべてが相違していて、私はY = G^bobPrivKey mod PをRSAの解読で実行してYの転送を取得し、RSAの解読を介してS = Y^a mod pを実行するため、
お返事ありがとうございます。
あなたのカードの実装で2048ビットのDHが利用できないと思われるかもしれませんか? –
デスクトップで試しました(カードなしでも) –
デスクトップ上でjavacard APIをシミュレートするには[jCardSim](https://jcardsim.org/)を使用していますか?または、他の何か? – vlp