暗号プログラム (Java言語版)

Java言語で記述された暗号関連のプログラムのサンプルを紹介します.

暗号性能測定

各種共通鍵暗号アルゴリズムの性能を測定するプログラム(Javaアプリケーション)です.ソースプログラムは,CipherPerform.java です.

プログラムは,javaコマンドにより以下のよう起動します.

 java Blanclux.tools.CipherPerform
               provider [alg [keyLength [dataLength [count [loop]]]]]

  パラメータ:
    provider: 暗号プロバイダ名称 (SunJCE等)
    alg: 暗号アルゴリズム (AES,DES等)
    keyLength : 鍵長(ビット)
    dataLength: データ長(バイト)
    count: 繰り返し回数
    loop: 性能測定用ループ回数

性能値として,鍵生成時間,暗号化時間,復号時間が測定されます. 暗号化のモードは,CBC/PKCS5Padding です.

loop は,各機能の性能測定時の繰り返し回数です.また,count は全体の処理(鍵生成,暗号化,復号)の繰り返し回数です.したがって,各機能は count × loop 回実行されます.各性能値はその平均で求めています.

パラメータの provider 以外は省略可能で,省略した場合は以下の値が用いられます.

なお,パラメータとして provider のみを ? として指定すると,現在のJava環境で利用可能なプロバイダ名称と暗号アルゴリズムの一覧が表示されます.

コンパイル時の注意点は,以下です.

署名性能測定

各種署名アルゴリズムの性能を測定するプログラム(Javaアプリケーション)です.ソースプログラムは,SignPerform.java です.

プログラムは,javaコマンドにより以下のよう起動します.

 java Blanclux.tools.SignPerform
    provider [keyAlg [signAlg [keyLength [dataLength [count [loop]]]]]]

  パラメータ:
    provider: 暗号プロバイダ名称 (SunJSSE等)
    keyAlg: 鍵生成アルゴリズム (RSA等)
    SignAlg: 署名アルゴリズム (SHA1withRSA等)
    keyLength : 鍵長(ビット)
    dataLength: データ長(バイト)
    count: 繰り返し回数
    loop: 性能測定用ループ回数

性能値として,鍵生成時間,署名生成時間,署名検証時間が測定されます.

loop は,各機能の性能測定時の繰り返し回数です.また,count は全体の処理(鍵生成,署名生成,署名検証)の繰り返し回数です.したがって,各機能は count × loop 回実行されます.各性能値はその平均で求めています.

パラメータの provider 以外は省略可能で,省略した場合は以下の値が用いられます.

なお,パラメータとして provider のみを ? として指定すると,現在のJava環境で利用可能なプロバイダ名称と暗号アルゴリズムの一覧が表示されます.

コンパイル時の注意点は,以下です.

ダイジェスト性能測定

各種ダイジェストアルゴリズムの性能を測定するプログラム(Javaアプリケーション)です.ソースプログラムは,DigestPerform.java です.

プログラムは,javaコマンドにより以下のよう起動します.

 java Blanclux.tools.DigestPerform
    algName [dataLength [count [provider]]]

  パラメータ:
    algName: ダイジェストアルゴリズム (MD5, SHA1等)
    dataLength: データ長(バイト)
    count: 繰り返し回数
    provider: 暗号プロバイダ名称 (SUN等)

性能値として,ダイジェスト時間が測定されます.

count はダイジェスト処理の繰り返し回数です.性能値はその平均で求めています.

パラメータの algName 以外は省略可能で,省略した場合は以下の値が用いられます.

コンパイル時の注意点は,以下です.

inserted by FC2 system