Java言語で記述された擬似乱数生成プログラムです.
その強さが証明されている強力な乱数ジェネレータである Blum Blum Shub 擬似乱数ジェネレータのクラスです.大きな素数を用いべき乗剰余演算を利用するものです. ソースプログラムは, BBSRand.java です.
プログラムはJavaのクラスで,SecureRandom クラスのエンジンクラスとして実装されています (SecureRandomSpi クラスを継承).サービスプロバイダの乱数生成クラスに登録して利用します.
public BBSRand() // コンストラクタ public void generateParam(int bitLen) // パラメータ生成
基本的な使い方は,以下のようになります.
SecureRandom rng = SecureRandom.getInstance("BBS", myProvider);
その他,利用上の注意点は,以下です.
public class BBSRand extends SecureRandomSpiを
public class BBSRand extends SecureRandomに変更し,次のようにクラスを生成します.
SecureRandom rng = new Blanclux.crypto.prng.BBSRand();
OS が提供するランダムデータ収集用デバイスファイルである /dev/urandom を用いて乱数データを生成するクラスです. ソースプログラムは,DevRand.java です.
プログラムは Java のクラスで,SecureRandom クラスのエンジンクラスとして実装されています (SecureRandomSpi クラスを継承).サービスプロバイダの乱数生成クラスに登録して利用します.
デバイスファイル名は,プログラム内に次のような定数として定義されています.必要に応じて変更します.
private static final String RANDOM_DEV_NAME = "/dev/urandom";
基本的な使い方は,以下のようになります.
SecureRandom rng = SecureRandom.getInstance("DevRand", myProvider);
その他,利用上の注意点は,以下です.
public class DevRand extends SecureRandomSpiを
public class DevRand extends SecureRandomに変更し,次のようにクラスを生成します.
SecureRandom rng = new Blanclux.crypto.prng.DevRand();