|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.KeyPairGeneratorSpi | +--java.security.KeyPairGenerator
KeyPairGenerator クラスは、公開鍵と非公開鍵のペアを生成するために使用します。鍵ペアジェネレータは、getInstance
ファクトリメソッド (指定されたクラスのインスタンスを返す static メソッド) を使用して構築されます。
特定のアルゴリズムに対応する鍵ペアジェネレータは、このアルゴリズムで使用される公開鍵および非公開鍵のペアを作成します。また、アルゴリズム特有のパラメータを、生成された両方の鍵に関連付けます。
鍵ペアを生成するには 2 通りの方法、すなわち、アルゴリズムに依存しない方法とアルゴリズムに固有の方法があります。この 2 つの方法は、オブジェクトの初期化だけが違います。
すべての鍵ペアジェネレータは、「鍵のサイズ」と乱数発生の元という概念を共有します。鍵のサイズの解釈はアルゴリズムによって異なります (たとえば、DSA アルゴリズムの場合、サイズはビットで表したモジュラスの長さに対応)。この KeyPairGenerator クラスには、initialize というメソッドがあり、全体に共通する型の 2 つの引数をとります。また、引数に keysize
だけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの SecureRandom
の実装を使用する initialize メソッドもあります。SecureRandom
を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
上記のアルゴリズムに依存しない initialize
メソッドを呼び出した場合、パラメータが指定されないため、それぞれの鍵に関連付けられるアルゴリズムに特有のパラメータが存在する場合、これをどのように扱うかはプロバイダに任されます。
アルゴリズムが DSA で、鍵のサイズ (モジュラスのサイズ) が 512、768、または 1024 の場合、Sun プロバイダはパラメータ p
、q
、および g
に計算済みの値のセットを使います。モジュラスサイズが上記のどれでもない場合、Sun プロバイダはパラメータのセットを新しく作成します。プロバイダによっては、上記の 3 種類だけではなく、もっと多くのモジュラスサイズに対応するパラメータのセットを持っていることもあります。逆に、計算済みのパラメータのリストを持たず、常に新しいパラメータのセットを作成するプロバイダもあります。
アルゴリズムに固有のパラメータ (たとえば、DSA のコミュニティパラメータ) がすでに存在している場合は、引数に AlgorithmParameterSpec
をとる 2 種類の initialize メソッドが利用できます。このうち一方は引数に SecureRandom
をとりますが、もう一方は引数に keysize
だけをとり、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの SecureRandom
の実装を使用します。SecureRandom
を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
クライアントが、initialize
メソッドを呼び出すことにより KeyPairGenerator を明示的に初期化しない場合は、それぞれのプロバイダはデフォルトの初期化を提供し、これをドキュメント化しなければなりません。たとえば、Sun プロバイダがデフォルトで使用するモジュラスサイズ (鍵のサイズ) は 1024 ビットです。
このクラスは、歴史的な事情から KeyPairGeneratorSpi
クラスを継承した abstract クラスになっています。アプリケーションの開発者は、この KeyPairGenerator
クラスで定義されたメソッドだけに配慮してください。スーパークラスのすべてのメソッドは、鍵ペアジェネレータの独自の実装を提供する必要がある暗号サービスプロバイダで使用されることを想定しています。
AlgorithmParameterSpec
コンストラクタの概要 | |
protected |
KeyPairGenerator(String algorithm)
指定されたアルゴリズムに対する KeyPairGenerator を作成します。 |
メソッドの概要 | |
KeyPair |
genKeyPair()
鍵ペアを生成します。 |
String |
getAlgorithm()
この鍵ペアジェネレータのアルゴリズムの標準名を返します。 |
static KeyPairGenerator |
getInstance(String algorithm)
指定されたダイジェストアルゴリズムを実装する KeyPairGenerator オブジェクトを作成します。 |
static KeyPairGenerator |
getInstance(String algorithm,
String provider)
指定されたプロバイダから指定されたアルゴリズムが使用可能な場合に、そのプロバイダから提供されるそのアルゴリズムを実装する KeyPairGenerator オブジェクトを作成します。 |
Provider |
getProvider()
この鍵ペアジェネレータオブジェクトのプロバイダを返します。 |
void |
initialize(AlgorithmParameterSpec params)
指定されたパラメータのセットと、乱数発生の元として、もっとも高い優先順位でインストールされているプロバイダの SecureRandom の実装を使用して、鍵ペアジェネレータを初期化します。 |
void |
initialize(AlgorithmParameterSpec params,
SecureRandom random)
指定されたパラメータのセットと乱数発生の元を使って鍵ペアジェネレータを初期化します。 |
void |
initialize(int keysize)
任意の鍵のサイズに対する鍵ペアジェネレータを初期化します。 |
void |
initialize(int keysize,
SecureRandom random)
任意の鍵のサイズ対する鍵ペアジェネレータを初期化します。 |
クラス java.security.KeyPairGeneratorSpi から継承したメソッド |
generateKeyPair |
クラス java.lang.Object から継承したメソッド |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
コンストラクタの詳細 |
protected KeyPairGenerator(String algorithm)
algorithm
- アルゴリズムの標準名を表す文字列。標準アルゴリズム名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照メソッドの詳細 |
public String getAlgorithm()
public static KeyPairGenerator getInstance(String algorithm) throws NoSuchAlgorithmException
algorithm
- アルゴリズムの標準名を表す文字列。標準アルゴリズム名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照public static KeyPairGenerator getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
algorithm
- アルゴリズムの標準名を表す文字列。標準アルゴリズム名については、「Java 暗号化アーキテクチャ API 仕様 & リファレンス」の付録 A を参照provider
- プロバイダ名の文字列Provider
public final Provider getProvider()
public void initialize(int keysize)
SecureRandom
の実装を使用します。SecureRandom
を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。keysize
- 鍵のサイズ。モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有の尺度public void initialize(int keysize, SecureRandom random)
keysize
- 鍵のサイズ。モジュラスの長さのような、ビット長で指定されたアルゴリズムに固有の尺度random
- 乱数発生の元public void initialize(AlgorithmParameterSpec params) throws InvalidAlgorithmParameterException
SecureRandom
の実装を使用して、鍵ペアジェネレータを初期化します。SecureRandom
を提供するプロバイダが 1 つもインストールされていない場合は、システムが提供する乱数発生の元が使用されます。
この具象メソッドは直前に定義された abstract クラスに追加されたものです。このメソッドは、KeyPairGeneratorSpi クラスの initialize メソッドを呼び出します。initialize
メソッドの呼び出しの際には、引数として params
と乱数発生の元 (インストールされているプロバイダのうち、もっとも優先順位の高いプロバイダが提供する乱数発生の元。プロバイダが乱数発生の元を提供しない場合は、システムが提供する乱数発生の元) を渡します。この initialize
メソッドは、プロバイダによってオーバーライドされていない限り、必ず UnsupportedOperationException をスローします。
params
- 鍵を生成するために使用されるパラメータのセットpublic void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException
この具象メソッドは直前に定義された abstract クラスに追加されたものです。このメソッドは、params
と random
を渡して、KeyPairGeneratorSpi クラスの initialize メソッドを呼び出します。この initialize
メソッドは、プロバイダによってオーバーライドされていない限り、必ず UnsupportedOperationException をスローします。
params
- 鍵を生成するために使用されるパラメータのセットrandom
- 乱数発生の元public final KeyPair genKeyPair()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |