モジュラ累乗は、一般に、生のRSA(パディングなしのRSA)またはJava CardでのDiffie-Hellman計算によって使用できます。このようにして、一般にハイエンドのJava Card実装に存在するコプロセッサーを直接使用することができます。暗号コプロセッサのハードウェア支援モンゴメリ計算では、非常にの大きなマージンで特定の計算より優れています。非常に多数の計算を行うことは、効率の問題のためにローエンドのプロセッサを使用することさえできません。
通常、Java Cardの実装ではint
は利用できません。Java Card API全体がint
をどこでも使用していないからです。これは、プロセッサが浮動小数点プロセッサ(FPU)を含む可能性が極めて低いため、double
では2倍になります。だから、一般的にあなたは(署名された)short
値で立ち往生しています。もちろん、short
を使用してあらゆる種類の計算を実行することができます。私の答えはhereですが、それほど高速ではありません。
JavaのJava Cardサブセットは、簡単にTuring-complete machineです。そう、はい、何かが可能になるまでは、メモリまたは実際には時間が足りなくなります。
セキュリティ対策は、一般的なモジュール式の演算に使用するなど、生のRSAなどのいくつかのトリックを不可能にする場合があります。 DHを最初に試し、マニュアルに深く掘り下げて、特定のプラットフォームの要件がどのようなものかを調べることをお勧めします。