0

スマートカードと Java カードは初めてです。ElGamal 鍵生成アルゴリズムのバリエーションを実装する予定です。情報を見つけるのは簡単ではないので、Java Card でこのステップを計算することは可能ですか?

  1. 数 x (約 2048 ビット) より大きい最小の素数を検索します。
  2. 数値 g が p を法とする原始根であるかどうかを判別する
  3. 剰余指数、大きな数の算術演算 (約 2048 ビット)

スマート カードで RSA キーの生成が可能であることは知っていますが、生成の個々の手順 (素数の検索など) も可能ですか? そうでない場合、これを行うことができる他の種類のセキュリティ トークンはありますか? NXP J3D081 カードを使用する予定です。

4

2 に答える 2

2

おそらく、javacard の RSA 実装 (CRT バリアントを含む) しかありません。このようにして、(CRT 秘密鍵のコンポーネントとして)いくつかの大きな素数を生成し、モジュラー演算を実行できます(この最近の質問とRSAPrivateCrtKeyクラスを参照してください)。

プラットフォームにはいくつかの制限があり、状況が少し複雑になる場合があります。

何かを手動で実装すると、おそらく遅くなります (カードでサポートされている符号付き 32 ビット整数型があったとしても)。

免責事項: 私はこの種の計算をしたことがないので、私の考えを確認してください。

編集>

OV チップ 2.0 プロジェクトには、大きな数の演算を提供するBignatライブラリが含まれています (ダウンロードはこちら)。

EDIT2>

OpenCrypto プロジェクトは、大きな数と楕円曲線ポイントを使用した数学演算を実装するJCMathLibを提供します。

于 2015-08-22T21:06:13.153 に答える