Java ™ 暗号化アーキテクチャー標準アルゴリズム名のドキュメント

JavaTM Platform Standard Edition 6


目次

標準名

AlgorithmParameterGenerator アルゴリズム

AlgorithmParameters アルゴリズム

CertificateFactory タイプ

CertPathBuilder アルゴリズム

CertPath 符号化

CertPathValidator アルゴリズム

CertStore タイプ

Cipher (暗号化) アルゴリズム

Configuration タイプ

免責機構

GSSAPI 機構

KeyAgreement アルゴリズム

KeyFactory アルゴリズム

KeyGenerator アルゴリズム

KeyPairGenerator アルゴリズム

KeyStore タイプ

Mac アルゴリズム

MessageDigest アルゴリズム

Policy タイプ

SaslClient 機構

SaslServer 機構

SecretKeyFactory アルゴリズム

SecureRandom 乱数生成 (RNG) アルゴリズム

サービス属性

Signature アルゴリズム

SSLContext アルゴリズム

TrustManagerFactory アルゴリズム

XML 署名 (XMLSignatureFactory/KeyInfoFactory/TransformService) 機構

XML 署名変換 (TransformService) アルゴリズム

追加の JSSE 標準名

アルゴリズム

仕様テンプレート

アルゴリズムの仕様

実装要件



注: 特定のプロバイダおよびアルゴリズムの情報は、「Sun Provider Documentation」にあります。


標準名

JDK Security API は、さまざまなアルゴリズム、証明書、およびキーストアのタイプの標準名を必要とし、これらを使用します。ここに記載の仕様は、標準名として以下の名前を確立するものです。

場合によっては、複数のプロバイダの実装にわたって名前の一貫性を維持できるように、明示的に記載されていない名前の命名規約が提案されることがあります。山括弧で囲まれた項目 (<digest><encryption> など) は、特定のメッセージダイジェスト、暗号化アルゴリズム、またはその他の名前で置き換えるためのプレースホルダです。


注: 標準名の大文字と小文字は区別されません。


このドキュメントには、次のセキュリティーのサブ領域に関連する標準名の対応一覧が記載されています。

AlgorithmParameterGenerator アルゴリズム

この項のアルゴリズム名は、AlgorithmParameterGenerator のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
DiffieHellman Diffie-Hellman アルゴリズムとともに使用するパラメータ。
DSA デジタル署名アルゴリズムとともに使用するパラメータ。

AlgorithmParameters アルゴリズム

この項のアルゴリズム名は、AlgorithmParameters のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
AES AES アルゴリズムとともに使用するパラメータ。
Blowfish Blowfish アルゴリズムとともに使用するパラメータ。
DES DES アルゴリズムとともに使用するパラメータ。
DESede DESede アルゴリズムとともに使用するパラメータ。
DiffieHellman DiffieHellman アルゴリズムとともに使用するパラメータ。
DSA デジタル署名アルゴリズムとともに使用するパラメータ。
OAEP OAEP アルゴリズムとともに使用するパラメータ。
PBEWith<digest>And<encryption> PBEWith<digest>And<encryption> アルゴリズムとともに使用するパラメータ。例: PBEWithMD5AndDESPBEWithHmacSHA1AndDESede
PBE PBE アルゴリズムとともに使用するパラメータ。上記のより具体的な PBE アルゴリズム名に優先してこの名前を使用しないでください。
RC2 RC2 アルゴリズムとともに使用するパラメータ。

CertificateFactory タイプ

この項のアルゴリズム名は、CertificateFactory のインスタンスの生成時に指定できます。

説明
X.509 X.509 に定義されている証明書のタイプ。RFC 3280 からも入手可能

CertPathBuilder アルゴリズム

この項のアルゴリズム名は、CertPathBuilder のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
PKIX ValidationAlgorithm サービス属性で定義されている PKIX 証明書パスの検証アルゴリズム。このアルゴリズムを実装している CertPathBuilder インスタンスの出力は、PKIX 検証アルゴリズムに従って検証された証明書パスです。

CertPath 符号化

次の符号化は、CertPathgetEncoded メソッドまたは CertificateFactorygenerateCertPath(InputStream inStream, String encoding) メソッドに渡すことができます。

符号化 説明
PKCS7 証明書の重要なフィールドだけを持つ PKCS#7 SignedData オブジェクト。特に、署名および内容は無視されます。証明書が存在しない場合、長さが 0 の CertPath であるとみなされます。警告: PKCS#7 では、証明書パス内の証明書の順序は維持されません。したがって、CertPath が PKCS#7 で符号化されたバイトに変換されてから、元に戻された場合、証明書の順序が変更されたり、CertPath が無効になる場合があります。ユーザーは、この動作を知っておく必要があります。PKCS7 の詳細は、「RSA Security」を参照してください。
PkiPath ASN 1 DER で符号化された証明書のシーケンス。次のように定義されます。
    PkiPath ::= SEQUENCE OF Certificate
シーケンス内で、証明書は、最初の証明書の主体が 2 番目の証明書の発行元というような順序になります。PkiPath 内の各証明書は一意です。どの証明書も、PkiPath 内の Certificate の値に 1 回ずつ現れます。PkiPath 形式は、X.509 (2000) に対する欠陥レポート 279 内で定義されており、ITU-T Recommendation X.509 (2000) の Technical Corrigendum 1 (DTC 2) に組み込まれています。詳細は、ITU の Web サイトを参照してください。

CertPathValidator アルゴリズム

この項のアルゴリズム名は、CertPathValidator のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
PKIX ValidationAlgorithm サービス属性で定義されている PKIX 証明書パスの検証アルゴリズム。

CertStore タイプ

この項のタイプは、CertStore のインスタンスの生成時に指定できます。

説明
Collection 証明書および CRL を Collection から取得する CertStore 実装です。このタイプの CertStore は、署名付きメールメッセージや SSL ネゴシエーションなど、バッグまたはある種の添付ファイルで証明書または CRL を受信するアプリケーションで特に有用です。
LDAP LDAPSchema サービス属性に定義されている方式を使って、証明書および CRL を LDAP ディレクトリからフェッチする CertStore 実装です。

Cipher (暗号化) アルゴリズム

Cipher アルゴリズム名

Cipher のインスタンスを要求する場合、次の名前を変換内の algorithm コンポーネントとして指定できます。

アルゴリズムの名前 説明
AES NIST によって FIPS 197 に指定されている Advanced Encryption Standard。Joan Daemen、Vincent Rijmen 両氏による Rijndael アルゴリズムとも呼ばれています。AES は 128 ビットのブロック暗号であり、128 ビット、192 ビット、256 ビットの鍵をサポートします。
AESWrap RFC 3394 に説明されている AES 鍵ラッピングアルゴリズム。
ARCFOUR Ron Rivest が開発した RC4 暗号と完全に相互運用可能なストリーム暗号。詳細については、K. Kaukonen、R. Thayer 著「A Stream Cipher Encryption Algorithm 'Arcfour'」、Internet Draft (expired)、draft-kaukonen-cipher-arcfour-03.txt を参照
Blowfish Bruce Schneier 氏の設計による Blowfish ブロック暗号
DES FIPS PUB 46-3 で定義されているデータ暗号化規格。
DESede トリプル DES 暗号化 (DES-EDE、3DES、または トリプル DES とも呼ばれます)。データは、DES アルゴリズムを個別に 3 回使用して暗号化されます。データは、最初のサブ鍵を使用して暗号化され、次に 2 番目のサブ鍵を使用して復号化されたあと、3 番目のサブ鍵を使用して暗号化されます。
DESedeWrap RFC 3217 に説明されている DESede 鍵ラッピングアルゴリズム。
ECIES Elliptic Curve Integrated Encryption Scheme
PBEWith<digest>And<encryption> PBEWith<prf>And<encryption> PKCS 5 にあるパスワードベースの暗号アルゴリズム。指定されたメッセージダイジェスト (<digest>) または擬似暗号関数 (<prf>)、暗号化アルゴリズム (<encryption>) を使用します。例:
RC2 RSA Data Security, Inc の Ron Rivest により開発された可変キーサイズ暗号化アルゴリズムです。
RC4 RSA Data Security, Inc の Ron Rivest により開発された可変キーサイズ暗号化アルゴリズム。上記の ARCFOUR に関する注を参照してください。
RC5 RSA Data Security, Inc の Ron Rivest により開発された可変キーサイズ暗号化アルゴリズムです。
RSA PKCS1 で定義されている RSA 暗号化アルゴリズム

Cipher アルゴリズムモード

Cipher のインスタンスを要求する場合、次の名前を変換内のモードコンポーネントとして指定できます。

アルゴリズムの名前 説明
NONE モードなし
CBC FIPS PUB 81 で定義された Cipher Block Chaining Mode。
CFB、CFBx FIPS PUB 81 で定義された Cipher Feedback Mode。

CFB や OFB などのモードを使用すると、ブロック暗号は暗号の実際のブロックサイズよりも小さい単位でデータを暗号化できます。このようなモードを要求する場合、「DES/CFB8/NoPadding」および「DES/OFB32/PKCS5Padding」変換に示されるように、この数値をモード名に追加することにより、一度に処理するビット数をオプションで指定できます。数値を指定しない場合、プロバイダ固有のデフォルトが使用されますたとえば、SunJCE プロバイダではデフォルトの DES の 64 ビットが使用されます。したがって、ブロック暗号は、CFB8 や OFB8 などの 8 ビットモードを使用して、バイト指向のストリーム暗号に変換できます。
CTR OFB を単純化したもの。Counter モードは、カウンタとして入力ブロックを更新します。
CTS 『Applied Cryptography-Second Edition』(Bruce Scheneier 著、John Wiley and Sons 発行、1996) に説明されている、Cipher Text Stealing。
ECB FIPS PUB 81 で定義された Electronic Codebook モード。
OFB、OFBx FIPS PUB 81 で定義された Output Feedback Mode。

CFB や OFB などのモードを使用すると、ブロック暗号は暗号の実際のブロックサイズよりも小さい単位でデータを暗号化できます。このようなモードを要求する場合、「DES/CFB8/NoPadding」および「DES/OFB32/PKCS5Padding」変換に示されるように、この数値をモード名に追加することにより、一度に処理するビット数をオプションで指定できます。数値を指定しない場合、プロバイダ固有のデフォルトが使用されますたとえば、SunJCE プロバイダではデフォルトの DES の 64 ビットが使用されます。したがって、ブロック暗号は、CFB8 や OFB8 などの 8 ビットモードを使用して、バイト指向のストリーム暗号に変換できます。
PCBC Kerberos V4 で定義された Propagating Cipher Block Chaining。

Cipher アルゴリズムパディング

Cipher のインスタンスを要求する場合、次の名前を変換内の padding コンポーネントとして指定できます。

アルゴリズムの名前 説明
NoPadding パディングなし
ISO10126Padding このブロック暗号用パディングは、W3C の「XML Encryption Syntax and Processing」ドキュメントの 5.2 Block Encryption Algorithms に記載されている
OAEPPadding, OAEPWith<digest>And<mgf>Padding PKCS1 に定義されている Optimal Asymmetric Encryption Padding 方式。<digest> はメッセージダイジェスト、<mgf> はマスク生成関数で置き換える必要があります。例: OAEPWithMD5AndMGF1Padding および OAEPWithSHA-512AndMGF1Padding

OAEPPadding が使用される場合、OAEPPadding に必要な値を提供するために、Cipher オブジェクトが javax.crypto.spec.OAEPParameterSpec オブジェクトによって初期化されます。
PKCS1Padding PKCS1 で説明されているパディング方式。RSA アルゴリズムとともに使用されます。
PKCS5Padding 「PKCS5: Password-Based Encryption Standard」バージョン 1.5 (RSA Laboratories、1993 年 11 月) で規定されたパディング方式。
SSL3Padding SSL Protocol バージョン 3.0 のセクション 5.2.3.2 (CBC ブロック暗号) で規定されたパディング方式
    block-ciphered struct {
	opaque content[SSLCompressed.length];
	opaque MAC[CipherSpec.hash_size];
	uint8 padding[
	    GenericBlockCipher.padding_length];
	uint8 padding_length;
    } GenericBlockCipher;
GenericBlockCipher のインスタンスのサイズは、ブロック暗号のブロック長の倍数でなければなりません。

パディングは、パディング長 (常に存在) に影響を受けます。次の式が当てはまる場合を考えましょう。
    sizeof(content) + sizeof(MAC) % block_length = 0, 
この場合、padding_length が存在するため、パディング長を (block_length - 1) バイトにする必要があります。

このため、パディング方式は PKCS5Padding に類似した (全く同一ではない) ものになります。パディング長は、パディング内で符号化され、1 ~ block_length の範囲の値になります。SSL 方式では、パディングのサイズは、常に存在する padding_length 内で符号化されるため、0 ~ block_length-1 の範囲の値になります。

Configuration タイプ

この項のタイプは、javax.security.auth.login.Configuration のインスタンスの生成時に指定できます。

説明
JavaLoginConfig ConfigFile class specification に説明されている、SUN プロバイダのデフォルトの Configuration 実装。 このタイプは、有効な Configuration.Parameter タイプとして java.security.URIParameter を受け入れます。このパラメータが指定されていない場合は、ConfigFile クラス仕様に記述されているソースから構成情報がロードされます。このパラメータが指定されている場合は、指定されている URI からのみ構成情報がロードされます。

免責機構

暗号化制限を「免責された」と見なされるアプリケーションに付属するアクセス権ポリシーファイル内で、次の免責機構名を指定できます。

アルゴリズムの名前 説明
KeyEscrow バックアップ暗号解読機能付き暗号化システム。このシステムを利用すると、特定条件下で、承認された人物 (ユーザー、組織役員、政府職員) が、特別なデータ復元鍵を保持する信頼できる 1 つ以上のパーティーの提供する情報を利用して、暗号解読を実行できます。
KeyRecovery 暗号化データのロックに使用する秘密鍵を取得するメソッド。これは、災害発生時に、企業独自の暗号化情報への復旧アクセスを実行する手段として使用できます。
KeyWeakening 鍵の一部をエスクローまたは復元可能なメソッド

GSSAPI 機構

GSSAPI を使用する場合は、次の機構を指定できます。GSSAPI 標準との一貫性を維持するために、名前の代わりにオブジェクト識別子 (OID) が指定されます。

機構 OID 説明
1.2.840.113554.1.2.2 RFC 4121 に定義されている Kerberos v5 GSS-API 機構。
1.3.6.1.5.5.2 RFC 4178 で定義されている Simple and Protected GSS-API Negotiation (SPNEGO) 機構です。

KeyAgreement アルゴリズム

KeyAgreement のインスタンスを要求する際、次のアルゴリズム名を指定できます。

アルゴリズムの名前 説明
DiffieHellman 「PKCS3: Diffie-Hellman Key-Agreement Standard」バージョン 1.4 (RSA Laboratories、1993 年 11 月) で定義された Diffie-Hellman 鍵協定。
ECDH Elliptic Curve Diffie-Hellman。ANSI X9.63 に定義されており、RFC 3278:「Use of Elliptic Curve Cryptography (ECC) Algorithms in Cryptographic Message Syntax (CMS)」に記載されています。
ECMQV www.secg.org の 「Elliptic Curve Cryptography」 に定義されている Elliptic Curve Menezes-Qu-Vanstone。

KeyFactory アルゴリズム

特に指定されている場合を除き、これらのクラスは、Key.getAlgorithm() が標準アルゴリズム名を返すキーを作成します。

この項のタイプは、KeyFactory のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
DiffieHellman Diffie-Hellman KeyAgreement アルゴリズムの鍵。

注: key.getAlgorithm() は、「DiffieHellman」ではなく「DH」を返します。

DSA デジタル署名アルゴリズムの鍵。
RSA RSA アルゴリズム (Signature/Cipher) の鍵。
EC Elliptic Curve アルゴリズムの鍵。

KeyGenerator アルゴリズム

KeyGenerator のインスタンスを要求する際、次のアルゴリズム名を指定できます。

アルゴリズムの名前 説明
AES AES アルゴリズムとともに使用する鍵ジェネレータ。
ARCFOUR ARCFOUR (RC4) アルゴリズムとともに使用する鍵ジェネレータ。
Blowfish Blowfish アルゴリズムとともに使用する鍵ジェネレータ。
DES DES アルゴリズムとともに使用する鍵ジェネレータ。
DESede DESede (トリプル DES) アルゴリズムとともに使用する鍵ジェネレータ。
HmacMD5 HmacMD5 アルゴリズムとともに使用する鍵ジェネレータ。
HmacSHA1 HmacSHA256 HmacSHA384 HmacSHA512 HmacSHA アルゴリズムのさまざまなフレーバとともに使用する鍵ジェネレータ。
RC2 RC2 アルゴリズムとともに使用する鍵ジェネレータ。

KeyPairGenerator アルゴリズム

特に指定されている場合を除き、これらのクラスは、Key.getAlgorithm() が標準アルゴリズム名を返すキーを作成します。

この項のアルゴリズム名は、KeyPairGenerator のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
DiffieHellman Diffie-Hellman KeyAgreement アルゴリズムの鍵ペアを生成します。

注: key.getAlgorithm() は、「DiffieHellman」ではなく「DH」を返します。

DSA デジタル署名アルゴリズムの鍵ペアを生成します。
RSA RSA アルゴリズム (Signature/Cipher) の鍵ペアを生成します。
EC Elliptic Curve アルゴリズムの鍵ペアを生成します。

KeyStore タイプ

この項のアルゴリズム名は、KeyStore のインスタンスの生成時に指定できます。

説明
jceks 「SunJCE」プロバイダによって提供されている独自のキーストア実装。
jks 「SUN」プロバイダによって提供されている独自のキーストア実装。
pkcs12 PKCS12 に定義されている、個人のアイデンティティー情報のための転送構文。

Mac アルゴリズム

Mac のインスタンスを要求する際、次のアルゴリズム名を指定できます。

アルゴリズムの名前 説明
HmacMD5 RFC 2104「HMAC: Keyed-Hashing for Message Authentication」 (1997 年 2 月) で定義された HMAC-MD5 キーハッシュアルゴリズム。
HmacSHA1
HmacSHA256
HmacSHA384
HmacSHA512
RFC 2104「HMAC: Keyed-Hashing for Message Authentication」 (1997 年 2 月) で定義された、SHA-* をメッセージダイジェストアルゴリズムとする HmacSHA* アルゴリズム。
PBEWith<mac> パスワードベースのメッセージ認証規格、PKCS5 v 2.0 で使用される Mac。<mac> はメッセージ認証コードのアルゴリズム名。例: PBEWithHmacSHA1

MessageDigest アルゴリズム

この項のアルゴリズム名は、MessageDigest のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
MD2 RFC 1319 で定義されている MD2 メッセージダイジェストアルゴリズム。
MD5 RFC 1321 で定義されている MD5 メッセージダイジェストアルゴリズム。
SHA-1
SHA-256
SHA-384
SHA-512
FIPS PUB 180-2 で定義されている Hash アルゴリズム。

SHA-256 は、衝突攻撃に備えて 128 ビットのセキュリティーを提供するための 256 ビットハッシュ機能であり、SHA-512 は、256 ビットのセキュリティーを提供するための 512 ビットハッシュ機能です。SHA-512 の出力を切り詰めることによって、384 ビットのハッシュを得ることができます。

Policy タイプ

この項のタイプは、Policy のインスタンスの生成時に指定できます。

説明
JavaPolicy PolicyFile ガイドに説明されている、SUN プロバイダのデフォルトの Policy 実装。このタイプは、有効な Policy.Parameter タイプとして java.security.URIParameter を受け入れます。このパラメータが指定されていない場合は、PolicyFile ガイドの ポリシーファイルのデフォルトの場所 セクションに記述されているソースからポリシー情報がロードされます。このパラメータが指定されている場合は、指定されている URI からのみポリシー情報がロードされます。

SaslClient 機構

この項の機構は、SaslClient のインスタンスの生成時に指定できます。

機構 説明
CRAM-MD5 RFC 2195 を参照してください。この機構は、ハッシュされたユーザー名/パスワード認証方式をサポートしています。
DIGEST-MD5 RFC 2831 を参照してください。この機構は、SASL 機構として HTTP ダイジェスト認証を使用する方法を定義します。
EXTERNAL RFC 2222 を参照してください。この機構は、TLS や IPsec などの外部チャネルから認証情報を取得します。
GSSAPI RFC 2222 を参照してください。この機構は、認証情報を取得するときに GSSAPI を使用します。Kerberos v5 認証をサポートしています。
PLAIN RFC 2595 を参照してください。この機構は、クリアテキストユーザー名/パスワード認証をサポートしています。

SaslServer 機構

この項の機構は、SaslServer のインスタンスの生成時に指定できます。

機構 説明
CRAM-MD5 RFC 2195 を参照してください。この機構は、ハッシュされたユーザー名/パスワード認証方式をサポートしています。
DIGEST-MD5 RFC 2831 を参照してください。この機構は、SASL 機構として HTTP ダイジェスト認証を使用する方法を定義します。
GSSAPI RFC 2222 を参照してください。この機構は、認証情報を取得するときに GSSAPI を使用します。Kerberos v5 認証をサポートしています。

SecretKeyFactory アルゴリズム

SecretKeyFactory のインスタンスを要求する際、次のアルゴリズム名を指定できます。

アルゴリズムの名前 説明
AES AES アルゴリズムとともに使用する秘密鍵を構築します。
ARCFOUR ARCFOUR アルゴリズムとともに使用する秘密鍵を構築します。
DES DES アルゴリズムとともに使用する秘密鍵を構築します。
DESede DESede (トリプル DES) アルゴリズムとともに使用する秘密鍵を構築します。
PBEWith<digest>And<encryption>
PBEWith<prf>And<encryption>
パスワードベースの暗号化 PKCS5 で使用される秘密鍵ファクトリ。<digest> はメッセージダイジェスト、<prf> は擬似ランダム関数、<encryption> は暗号化アルゴリズム。

例:

  • PBEWithMD5AndDES (PKCS5、v 1.5)、
  • PBEWithHmacSHA1AndDESede (PKCS5、v 2.0)
注: これらは各パスワード文字の下位 8 ビットのみを使用します。
PBKDF2WithHmacSHA1 PKCS5 v2.0 にあるパスワードベースキー派生機能を使用して秘密鍵を構築します。

SecureRandom 乱数生成 (RNG) アルゴリズム

この項のアルゴリズム名は、SecureRandom のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
SHA1PRNG Sun プロバイダが提供する擬似乱数生成 (PRNG) アルゴリズム。このアルゴリズムは、PRNG の基盤として SHA-1 を使用します。各操作につき値が 1 増加する 64 ビットカウンタを使って鎖状につながった真にランダムなシード値から、SHA-1 ハッシュを計算します。160 ビットの SHA‐1 出力のうち、64 ビットだけが使用されます。

サービス属性

暗号化サービスは、常に特定のアルゴリズムまたはタイプに関連付けられています。たとえば、デジタル署名サービスは常に特定のアルゴリズム (DSA など) に、CertificateFactory サービスは常に特定の証明書タイプ (X.509 など) にそれぞれ関連付けられています。

ここで示されている属性は、暗号化サービス用のものです。サービス属性は、プロバイダを選択するためのフィルタとして使用できます。

属性名および属性値は両方とも大文字と小文字を区別しません。

属性 説明
KeySize プロバイダが暗号化サービスのためにサポートしている最大のキーサイズ
ImplementedIn 暗号化サービスの実装がソフトウェアとハードウェアのどちらで行われているか。この属性の値は、「software」と「hardware」のどちらかになります。
ValidationAlgorithm CertPathBuilder または CertPathValidator がサポートする証明書パス検証アルゴリズムの実装を定義する仕様の名前。RFC は、「RFC#」 (例:「RFC3280」) のように指定します。 Internet Draft は、ドラフト名で指定します (例:「draft-ietf-pkix-rfc2560bis-01.txt」)。この属性の値を Security.getProviders メソッドの選択基準として指定した場合、String.equalsIgnoreCase メソッドにより値の比較が行われます。CertPathBuilder および CertPathValidator のすべての PKIX 実装は、この属性の値を提供する必要があります。
LDAPSchema LDAP CertStore の実装が証明書と CRL の取得に使用する LDAP 方式を定義する仕様の名前です。この属性の形式およびセマンティクスは、ValidationAlgorithm 属性の場合と同じです。CertStore のすべての LDAP 実装は、この属性の値を提供する必要があります。

例を示します。

	map.put("KeyPairGenerator.DSA",
	    "sun.security.provider.DSAKeyPairGenerator");
	map.put("KeyPairGenerator.DSA KeySize", "1024");
	map.put("KeyPairGenerator.DSA ImplementedIn", "Software");

Signature アルゴリズム

この項のアルゴリズム名は、Signature のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
NONEwithRSA RSA 操作を行う前にダイジェストアルゴリズム (MD5/SHA1 など) を使用しない RSA 署名アルゴリズム。RSA 署名アルゴリズムについては、PKCS1 を参照してください。
MD2withRSA
MD5withRSA
PKCS1 に定義されている RSA 暗号を使用した MD2/MD5 署名アルゴリズム。MD2/MD5 ダイジェストアルゴリズムおよび RSA を使用して RSA デジタル署名を作成および検証します。
SHA1withRSA SHA256withRSA
SHA384withRSA
SHA512withRSA
OSI Interoperability Workshop に定義されている SHA-* および RSA 暗号化アルゴリズムを使用した署名アルゴリズム。PKCS1 で説明されているパディング規則を使用します。
NONEwithDSA FIPS PUB 186-2 で定義されているデジタル署名アルゴリズム。このデータの長さは正確に 20 バイトである必要があります。このアルゴリズムは、rawDSA とも呼ばれています。
SHA1withDSA FIPS PUB 186 に定義されている SHA-1 を使用した DSA 署名アルゴリズム。SHA-1 ダイジェストアルゴリズムおよび DSA を使用して DSA デジタル署名を作成および検証します。
NONEwithECDSA
SHA1withECDSA
SHA256withECDSA
SHA384withECDSA
SHA512withECDSA
(ECDSA)
ANSI X9.62 で定義されている ECDSA 署名アルゴリズム。

注: 「ECDSA」は「SHA1withECDSA」アルゴリズムのあいまいな名前であるため、使用しないでください。代わりに、正式な名前「SHA1withECDSA」を使用します。

<digest>with<encryption> この形式を使用して、特定のメッセージ ダイジェスト (MD2、MD5 など) とアルゴリズム (RSA、DSA など) を使用する署名アルゴリズムの名前を指定します。この節で紹介した明示的に定義されている標準名 (MD2withRSA など) も同じ形式で指定されています。

PKCS1 v 2.0 に定義された新しい署名方式の場合は、<digest>with<encryption> の形式では不十分なため、<digest>with<encryption>and<mgf> の形式を使用して、名前を指定できます。<mgf> は、MGF1 などのマスク生成機能に置き換える必要があります。例: MD5withRSAandMGF1

SSLContext アルゴリズム

この項のアルゴリズム名は、SSLContext のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
SSL SSL の一部のバージョンをサポートする。他のバージョンをサポートする場合もある
SSLv2 SSL バージョン 2 以降をサポートします。ほかのバージョンをサポートする場合もあります。
SSLv3 SSL バージョン 3 をサポートする。他のバージョンをサポートする場合もある
TLS TLS の一部のバージョンをサポートする。他のバージョンをサポートする場合もある
TLSv1 RFC 2246: TLS version 1.0 をサポートします。ほかのバージョンをサポートする場合もあります。
TLSv1.1 RFC 4346: TLS version 1.1 をサポートします。ほかのバージョンをサポートする場合もあります。

TrustManagerFactory アルゴリズム

この項のアルゴリズム名は、TrustManagerFactory のインスタンスの生成時に指定できます。

アルゴリズムの名前 説明
PKIX RFC 3280 の IETF PKIX ワーキンググループまたはその後継者によって定義されている規則に従って証明書チェーンを検証する X509TrustManagers のファクトリ。TrustManagerFactory は、クラス javax.net.ssl.CertPathTrustManagerParameters を使用した初期化をサポートする必要があります。

XML 署名 (XMLSignatureFactory/KeyInfoFactory/TransformService) 機構

この項の機構は、XMLSignatureFactoryKeyInfoFactory、または TransformService のインスタンスの生成時に指定できます。この機構は、XML 署名や KeyInfo 構造を解析および生成するときに実装によって内部で使用される XML 処理機構を識別します。また、各 TransformService インスタンスは、機構だけでなく特定の変換アルゴリズムもサポートします。変換アルゴリズムの標準名は次の項で定義されています。

機構 説明
DOM ドキュメントオブジェクトモデル。DOM 実装の追加要件については、DOM 機構の要件を参照してください。

XML 署名変換 (TransformService) アルゴリズム

この項のアルゴリズム名は、TransformService のインスタンスの生成時に指定できます。XML 署名標準との一貫性を維持するために、名前の代わりに URI が指定されます。これらの URI ごとに API 定数が定義されており、次の表内で各 URI のあとの括弧内に示されています。

アルゴリズムの URI 説明
http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (CanonicalizationMethod.INCLUSIVE) Canonical XML (without comments) に定義されている正規化アルゴリズム。
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS) Canonical XML with comments に定義されている正規化アルゴリズム。
http://www.w3.org/2001/10/xml-exc-c14n# (CanonicalizationMethod.EXCLUSIVE) Exclusive Canonical XML (without comments) に定義されている正規化アルゴリズム。
http://www.w3.org/2001/10/xml-exc-c14n#WithComments (CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS) Exclusive Canonical XML with comments に定義されている正規化アルゴリズム。
http://www.w3.org/2000/09/xmldsig#base64 (Transform.BASE64) Base64 に定義されている変換アルゴリズム。
http://www.w3.org/2000/09/xmldsig#enveloped-signature (Transform.ENVELOPED) Enveloped Signature に定義されている変換アルゴリズム。
http://www.w3.org/TR/1999/REC-xpath-19991116 (Transform.XPATH) XPath に定義されている変換アルゴリズム。
http://www.w3.org/2002/06/xmldsig-filter2 (Transform.XPATH2) XPath Filter 2 に定義されている変換アルゴリズム。
http://www.w3.org/TR/1999/REC-xslt-19991116 (Transform.XSLT) XSLT に定義されている変換アルゴリズム。

追加の JSSE 標準名

X509KeyManagerchooseClientAlias メソッド、chooseServerAlias メソッド、getClientAliases メソッド、getServerAliases メソッドに渡される keyType パラメータは、公開鍵の型を指定します。以下の表には、指定された証明書のタイプ別に、keyType で使用される標準名を一覧表示します。

名前 証明書のタイプ
RSA RSA
DSA DSA
DH_RSA Diffie-Hellman (RSA 署名を使用)
DH_DSA Diffie-Hellman (DSA 署名を使用)
EC Elliptic Curve
EC_EC Elliptic Curve (ECDSA 署名を使用)
EC_RSA Elliptic Curve (RSA 署名を使用)

SSLSocketsetEnabledProtocols メソッドに渡される protocols パラメータは、接続で使用できるプロトコルのバージョンを指定します。以下の表には、setEnabledProtocols に渡される標準名、または SSLSocket getSupportedProtocols メソッドと getEnabledProtocols メソッドから返される標準名を一覧表示します。

名前 プロトコル
SSLv2 SSL バージョン 2 プロトコル
SSLv3 SSL バージョン 3 プロトコル
TLSv1 TLS バージョン 1.0 プロトコル (RFC 2246 に定義)
TLSv1.1 TLS バージョン 1.1 プロトコル (RFC 4346 に定義)
SSLv2Hello 現在、SSLv3、TLSv1、および TLSv1.1 プロトコルを使用すると、SSLv3、TLSv1、および TLSv1.1 の hello を SSLv2 形式の hello にカプセル化して送信できます。これらのプロトコルでこのような互換性を許可する理由については、該当する RFC (上記) の付録 E を参照してください。

一部の SSL/TLS サーバーでは v2 hello 形式がサポートされていません。このため、クライアント hello は SSLv3 または TLSv1 のクライアント hello 形式に準拠している必要があります。

SSLv2Hello オプションは、SSLv2 カプセル化を制御します。クライアントで SSLv2Hello が無効になっている場合、すべての発信メッセージは SSLv3/TLSv1 のクライアント hello 形式に準拠します。サーバーで SSLv2Hello が無効になっている場合、すべての着信メッセージは SSLv3/TLSv1 のクライアント hello 形式に準拠する必要があります。

X509TrustManagercheckClientTrusted メソッドと checkServerTrusted メソッドに渡される authType パラメータは、認証のタイプを示します。以下の表には、クライアントまたはサーバーの証明書チェーンで使用される標準名を示します。

クライアントまたはサーバーの証明書チェーン 認証の標準名
クライアント 実際に使用する証明書によって異なる。たとえば、RSAPublicKey を使用する場合、authType は "RSA" になる
サーバー 暗号群の鍵交換アルゴリズム部分が、"RSA"、"DHE_DSS" のような文字列で表される。注: エクスポート可能な暗号群では、実行時、ハンドシェーク中に鍵交換アルゴリズムが決定される場合がある。たとえば、TLS_RSA_EXPORT_WITH_RC4_40_MD5 の authType は、一時的な RSA 鍵を使って鍵交換を行う場合は "RSA_EXPORT"、サーバー証明書の鍵を使用する場合は "RSA" になる。それ以外の場合は "UNKNOWN"

さまざまなグループによって、SSL/TLS 名前空間に新しい暗号群定義が段階的に追加されました。一部の暗号群の名前は、TLSv1.0 がファイナライズされる前に定義されました。このため、SSL_* 接頭辞が付与されています。接頭辞 TLS_* が付与されて TLS RFC 内で説明されている名前は、接頭辞 SSL_* が付与されている JSSE 暗号群と機能的に同等です。

次の表は、標準の暗号群の名前を示しています。

暗号群
SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA
SSL_DH_DSS_WITH_DES_CBC_SHA
SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_RSA_WITH_DES_CBC_SHA
SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA
SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
SSL_DHE_DSS_WITH_DES_CBC_SHA
SSL_DHE_DSS_WITH_RC4_128_SHA
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
SSL_DHE_RSA_WITH_DES_CBC_SHA
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA
SSL_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA
TLS_DH_anon_WITH_AES_128_CBC_SHA
TLS_DH_anon_WITH_AES_256_CBC_SHA
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
SSL_DH_anon_WITH_DES_CBC_SHA
SSL_DH_anon_WITH_RC4_128_MD5
SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5
SSL_FORTEZZA_DMS_WITH_NULL_SHA
SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
SSL_RSA_WITH_DES_CBC_SHA
SSL_RSA_WITH_IDEA_CBC_SHA
SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_NULL_MD5
SSL_RSA_WITH_NULL_SHA
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_RSA_EXPORT1024_WITH_RC4_56_SHA
SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA
SSL_RSA_FIPS_WITH_DES_CBC_SHA
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
TLS_KRB5_WITH_3DES_EDE_CBC_MD5
TLS_KRB5_WITH_3DES_EDE_CBC_SHA
TLS_KRB5_WITH_DES_CBC_MD5
TLS_KRB5_WITH_DES_CBC_SHA
TLS_KRB5_WITH_IDEA_CBC_SHA
TLS_KRB5_WITH_IDEA_CBC_MD5
TLS_KRB5_WITH_RC4_128_MD5
TLS_KRB5_WITH_RC4_128_SHA
TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5
TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA
TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA
TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5
TLS_KRB5_EXPORT_WITH_RC4_40_MD5
TLS_KRB5_EXPORT_WITH_RC4_40_SHA
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDH_ECDSA_WITH_RC4_128_SHA
TLS_ECDH_ECDSA_WITH_NULL_SHA
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDH_RSA_WITH_RC4_128_SHA
TLS_ECDH_RSA_WITH_NULL_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
TLS_ECDHE_ECDSA_WITH_NULL_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_NULL_SHA
TLS_ECDH_anon_WITH_AES_128_CBC_SHA
TLS_ECDH_anon_WITH_AES_256_CBC_SHA
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA
TLS_ECDH_anon_WITH_RC4_128_SHA
TLS_ECDH_anon_WITH_NULL_SHA


アルゴリズム

この項では、このドキュメントで定義したいくつかのアルゴリズムに関する詳細を示します。一覧されているアルゴリズムの実装を提供するプロバイダは、この付録の仕様に従うことが必要です。

ここに記載のない新しいアルゴリズムを追加するには、まず最初にプロバイダパッケージの供給先に問い合わせて、該当アルゴリズムが追加済みでないかどうかを確認します。すでに追加されている場合は、可能であれば開示されている定義を使います。まだ追加されていない場合は、アルゴリズムの仕様を添えて、この項に記載のテンプレートに類似した使用可能なテンプレートを作成します。

仕様テンプレート

次の表に、アルゴリズムの仕様のフィールドを示します。.

フィールド 説明
名前 アルゴリズムの認識名。これは、既存のアルゴリズムオブジェクト名を判別するために、(アルゴリズムの要求時に) getInstance メソッドに渡される名前で、getAlgorithm メソッドによって返されます。これらのメソッドは、関連エンジンクラス、SignatureMessageDigestKeyPairGenerator、および AlgorithmParameterGenerator 内にあります。
アルゴリズムの型。SignatureMessageDigestKeyPairGenerator、および ParameterGenerator 内にあります。
説明 アルゴリズムに関する一般注意。アルゴリズムにより実装される標準、実用向き特許などを含みます。
KeyPair アルゴリズム (オプション指定) このアルゴリズムの KeyPair アルゴリズムを示します。
キーサイズ (オプション指定) 鍵アルゴリズムまたは鍵生成アルゴリズムの場合は、正しいキーサイズを示します。

サイズ (オプション指定)

アルゴリズムパラメータ生成アルゴリズムの場合は、アルゴリズムパラメータ生成の正しい「サイズ」を示します。

パラメータのデフォルト値 (オプション指定)

鍵生成アルゴリズムの場合は、デフォルトのパラメータ値を示します。

署名 フォーマット (オプション指定)

Signature アルゴリズムの場合は、署名のフォーマットを示します。つまり、検証メソッドの入力と署名メソッドの出力です。

アルゴリズムの仕様

SHA-1 メッセージダイジェストアルゴリズム

名前 SHA-1
MessageDigest
説明 NIST の FIPS 180-2 で定義したメッセージダイジェストアルゴリズム。このアルゴリズムの出力は 160 ビットのダイジェストです。

MD2 メッセージダイジェストアルゴリズム

名前 MD2
  MessageDigest
説明 RFC 1319 で定義されているメッセージダイジェストアルゴリズム。このアルゴリズムの出力は 128 ビット (16 バイト) のダイジェストです。

MD5 メッセージダイジェストアルゴリズム

名前 MD5
MessageDigest
説明 RFC 1321 で定義されているメッセージダイジェストアルゴリズム。このアルゴリズムの出力は 128 ビット (16 バイト) のダイジェストです。

デジタル署名アルゴリズム

名前 SHA1withDSA
署名
説明 このアルゴリズムは、NIST FIPS 186 に記述の署名アルゴリズムです。DSA は SHA-1 メッセージダイジェストアルゴリズムを使います。
KeyPair アルゴリズム DSA
署名フォーマット ASN.1 の 2 つの INTEGER 値のシーケンス。r および s (この順序):
SEQUENCE ::= { r INTEGER, s INTEGER }

RSA ベースの署名アルゴリズム、MD2、MD5 または SHA-1 を使用します。

名前 MD2withRSA、MD5withRSA、および SHA1withRSA
署名
説明 それぞれに MD2、MD5、および SHA‐1 メッセージアルゴリズムを RSA 暗号化とともに使う署名アルゴリズムです。
KeyPair アルゴリズム RSA
署名フォーマット RSA Laboratory の「公開鍵暗号化標準ノート #1」で定義の DER 符号化 PKCS1 ブロック。暗号化データは署名付きデータのダイジェストです。

DSA KeyPair 生成アルゴリズム

名前 DSA
KeyPairGenerator
説明 このアルゴリズムは、DSA 対応 NIST FIPS 186 に記載の鍵のペア生成アルゴリズムです。
キーサイズ 係数 p の長さ (ビット単位)。512 から 1024 の範囲で、64 の倍数である必要があります。デフォルトのキーサイズは 1024 です。
パラメータのデフォルト値:

以下のデフォルトのパラメータ値は、512、768、および 1024 ビットのキーサイズ用に使います。

512 ビットの鍵パラメータ
SEED = b869c82b 35d70e1b 1ff91b28 e37a62ec dc34409b
counter = 123
p = fca682ce 8e12caba 26efccf7 110e526d b078b05e decbcd1e b4a208f3
    ae1617ae 01f35b91 a47e6df6 3413c5e1 2ed0899b cd132acd 50d99151
    bdc43ee7 37592e17
q = 962eddcc 369cba8e bb260ee6 b6a126d9 346e38c5

g = 678471b2 7a9cf44e e91a49c5 147db1a9 aaf244f0 5a434d64 86931d2d
    14271b9e 35030b71 fd73da17 9069b32e 2935630e 1c206235 4d0da20a
    6c416e50 be794ca4
768 ビットの鍵パラメータ
SEED = 77d0f8c4 dad15eb8 c4f2f8d6 726cefd9 6d5bb399
counter = 263
p = e9e64259 9d355f37 c97ffd35 67120b8e 25c9cd43 e927b3a9 670fbec5
    d8901419 22d2c3b3 ad248009 3799869d 1e846aab 49fab0ad 26d2ce6a
    22219d47 0bce7d77 7d4a21fb e9c270b5 7f607002 f3cef839 3694cf45
    ee3688c1 1a8c56ab 127a3daf
q = 9cdbd84c 9f1ac2f3 8d0f80f4 2ab952e7 338bf511
g = 30470ad5 a005fb14 ce2d9dcd 87e38bc7 d1b1c5fa cbaecbe9 5f190aa7
    a31d23c4 dbbcbe06 17454440 1a5b2c02 0965d8c2 bd2171d3 66844577
    1f74ba08 4d2029d8 3c1c1585 47f3a9f1 a2715be2 3d51ae4d 3e5a1f6a
    7064f316 933a346d 3f529252
1024 ビットの鍵パラメータ
SEED = 8d515589 4229d5e6 89ee01e6 018a237e 2cae64cd
counter = 92
p = fd7f5381 1d751229 52df4a9c 2eece4e7 f611b752 3cef4400 c31e3f80
    b6512669 455d4022 51fb593d 8d58fabf c5f5ba30 f6cb9b55 6cd7813b
    801d346f f26660b7 6b9950a5 a49f9fe8 047b1022 c24fbba9 d7feb7c6
    1bf83b57 e7c6a8a6 150f04fb 83f6d3c5 1ec30235 54135a16 9132f675
    f3ae2b61 d72aeff2 2203199d d14801c7
q = 9760508f 15230bcc b292b982 a2eb840b f0581cf5

g = f7e1a085 d69b3dde cbbcab5c 36b857b9 7994afbb fa3aea82 f9574c0b
    3d078267 5159578e bad4594f e6710710 8180b449 167123e8 4c281613
    b7cf0932 8cc8a6e1 3c167a8b 547c8d28 e0a3ae1e 2bb3a675 916ea37f
    0bfa2135 62f1fb62 7a01243b cca4f1be a8519089 a883dfe1 5ae59f06
    928b665e 807b5525 64014c3b fecf492a

RSA KeyPair 生成アルゴリズム

名前 RSA
KeyPairGenerator
説明 このアルゴリズムは、PKCS1 に記載の鍵のペア生成アルゴリズムです。
強度 512 以上で 8 の倍数の任意の整数

DSA パラメータ生成アルゴリズム

名前 DSA
ParameterGenerator
説明 このアルゴリズムは、NIST FIPS 186 for DSA に記載のパラメータ生成アルゴリズムです。
強度 係数 p の長さ (ビット単位)。512 から 1024 の範囲で、64 の倍数である必要があります。デフォルトのキーサイズは 1024 です。


実装要件

この項では、Java SE 6 実装のセキュリティーアルゴリズム要件を定義します。この要件は、Java SE 6 実装とこのアルゴリズムを使用するアプリケーションの相互運用性を向上することを意図しています。

実装要件には、次の 2 つがあります。

  • 推奨: Java SE 6 の各実装は、指定されたアルゴリズムをデフォルトで (インストール時に) サポートしているべきです。
  • 必須: Java SE 6 の各実装は、指定されたアルゴリズムをデフォルトで (インストール時に) サポートしている必要があります。

この項での要件は、アルゴリズムの強度またはセキュリティーの指標とはなりません。たとえば、近年発達した暗号解析によって、MD5 MessageDigest アルゴリズムの強度に弱点が見つかりました。アルゴリズムがアプリケーションのセキュリティー要件を満たしているかどうかを判断する必要があります。

アルゴリズムまたはエンジンがリストに示されていない場合、そのアルゴリズムまたはエンジンは指定された要件に従っていません。

Java 暗号化および PKI アルゴリズム

Java SE 6 の各実装は、次の表の指定されたアルゴリズム (すべて推奨) をデフォルトで (インストール時に) サポートしているべきです。Java SE (7) の次のリリースでは、次の表内の各アルゴリズムは必須に変更される予定です。これらの要件は、サードパーティープロバイダには当てはまりません。

推奨
エンジン アルゴリズム名 要件
AlgorithmParameters DSA
推奨
CertificateFactory X.509
推奨
CertPathBuilder PKIX
推奨
CertPathValidator PKIX
推奨
CertStore Collection
推奨
Cipher (アルゴリズムは変換として指定)。実装は、括弧内の鍵サイズまでサポートする必要があります。 AES/CBC/NoPadding (128)
AES/CBC/PKCS5Padding (128)
AES/ECB/NoPadding (128)
AES/ECB/PKCS5Padding (128)
DES/CBC/NoPadding (56)
DES/CBC/PKCS5Padding (56)
DES/ECB/NoPadding (56)
DES/ECB/PKCS5Padding (56)
DESede/CBC/NoPadding (168)
DESede/CBC/PKCS5Padding (168)
DESede/ECB/NoPadding (168)
DESede/ECB/PKCS5Padding (168)
RSA/ECB/PKCS1Padding (2048)
RSA/ECB/OAEPPadding (2048)
推奨
KeyFactory (実装は、括弧内の鍵サイズまでサポートする必要があります) DSA (1024)
RSA (2048)
推奨
KeyGenerator (実装は、括弧内の鍵サイズまでサポートする必要があります) AES (128)
DES (56)
DESede (168)
HmacMD5 (128)
HmacSHA1 (160)
HmacSHA256 (160)
推奨
KeyPairGenerator (実装は、括弧内の鍵サイズまでサポートする必要があります) DSA (1024)
RSA (2048)
推奨
KeyStore jks
pkcs12
推奨
Mac (実装は、括弧内の鍵サイズまでサポートする必要があります) HmacMD5 (128)
HmacSHA1 (160)
HmacSHA256 (160)
推奨
MessageDigest MD5
SHA-1
SHA-256
SecretKeyFactory (実装は、括弧内の鍵サイズまでサポートする必要があります) AES (128)
DES (56)
DESede (168)
推奨
署名 MD5withRSA
SHA1withDSA
SHA1withRSA
SHA256withRSA
推奨

XML 署名アルゴリズム

次の表は、XML 署名 (JSR 105) 実装のアルゴリズム要件を示しています。

エンジン アルゴリズム名 要件
TransformService http://www.w3.org/2001/10/xml-exc-c14n# (CanonicalizationMethod.EXCLUSIVE)
必須
TransformService http://www.w3.org/2001/10/xml-exc-c14n#WithComments (CanonicalizationMethod.EXCLUSIVE_WITH_COMMENTS)
推奨
TransformService http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (CanonicalizationMethod.INCLUSIVE)
必須
TransformService http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments (CanonicalizationMethod.INCLUSIVE_WITH_COMMENTS)
推奨
TransformService http://www.w3.org/2000/09/xmldsig#base64 (Transform.BASE64)
必須
TransformService http://www.w3.org/2000/09/xmldsig#enveloped-signature (Transform.ENVELOPED)
必須
TransformService http://www.w3.org/TR/1999/REC-xpath-19991116 (Transform.XPATH)
推奨
TransformService http://www.w3.org/2002/06/xmldsig-filter2 (Transform.XPATH2)
推奨
XMLSignatureFactory http://www.w3.org/2000/09/xmldsig#sha1 (DigestMethod.SHA1)
必須
XMLSignatureFactory http://www.w3.org/2000/09/xmldsig#hmac-sha1 (SignatureMethod.HMAC_SHA1)
必須
XMLSignatureFactory http://www.w3.org/2000/09/xmldsig#dsa-sha1 (SignatureMethod.DSA_SHA1)
必須
XMLSignatureFactory http://www.w3.org/2000/09/xmldsig#rsa-sha1 (SignatureMethod.RSA_SHA1)
推奨