擬似乱数生成プログラム

Java言語で記述された擬似乱数生成プログラムです.

乱数生成クラス(BBSRand)

その強さが証明されている強力な乱数ジェネレータである Blum Blum Shub 擬似乱数ジェネレータのクラスです.大きな素数を用いべき乗剰余演算を利用するものです. ソースプログラムは, BBSRand.java です.

プログラムはJavaのクラスで,SecureRandom クラスのエンジンクラスとして実装されています (SecureRandomSpi クラスを継承).サービスプロバイダの乱数生成クラスに登録して利用します.

 public BBSRand()  // コンストラクタ
 public void generateParam(int bitLen)  // パラメータ生成

基本的な使い方は,以下のようになります.

  1. プロバイダクラス myProvider (任意) に乱数生成クラス名 "BBS"として登録する.
  2. SecureRandom クラスを "BBS" として生成する.
    SecureRandom rng = SecureRandom.getInstance("BBS", myProvider);
  3. SecureRandom クラスのメソッドにより,乱数生成処理を行う.

その他,利用上の注意点は,以下です.

乱数生成クラス(DevRand)

OS が提供するランダムデータ収集用デバイスファイルである /dev/urandom を用いて乱数データを生成するクラスです. ソースプログラムは,DevRand.java です.

プログラムは Java のクラスで,SecureRandom クラスのエンジンクラスとして実装されています (SecureRandomSpi クラスを継承).サービスプロバイダの乱数生成クラスに登録して利用します.

デバイスファイル名は,プログラム内に次のような定数として定義されています.必要に応じて変更します.

 private static final String RANDOM_DEV_NAME = "/dev/urandom";

基本的な使い方は,以下のようになります.

  1. プロバイダクラス myProvider (任意) に乱数生成クラス名 "DevRand"として登録する.
  2. SecureRandom クラスを "DevRand" として生成する.
    SecureRandom rng = SecureRandom.getInstance("DevRand", myProvider);
  3. SecureRandom クラスのメソッドにより,乱数生成処理を行う.

その他,利用上の注意点は,以下です.

inserted by FC2 system