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

Java Platform Standard Edition 7


注: 特定のプロバイダおよびアルゴリズムの情報は、Sun プロバイダのドキュメントに含まれています。


標準名

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 Types

このセクションのタイプは、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 のセキュリティーを参照してください。
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 Types

このセクションのタイプは、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 ブロック暗号
CCM NIST Special Publication SP 800-38C で定義された Counter/CBC Mode。
DES FIPS PUB 46-3 に記述されている Digital Encryption Standard。
DESede トリプル DES 暗号化 (DES-EDE、3DES、またはトリプル DES とも呼ばれます)。データは、DES アルゴリズムを個別に 3 回使用して暗号化されます。データは、最初のサブ鍵を使用して暗号化され、次に 2 番目のサブ鍵を使用して復号化されたあと、3 番目のサブ鍵を使用して暗号化されます。
DESedeWrap RFC 3217 に記述されている DESede 鍵ラッピングアルゴリズム。
ECIES Elliptic Curve Integrated Encryption Scheme
GCM NIST Special Publication SP 800-38D で定義された Galois/Counter Mode。
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 PKCS #1 で定義された RSA 暗号化アルゴリズム

Cipher アルゴリズムモード

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

アルゴリズム名 説明
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 Schneier 著、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> はマスク生成関数でそれぞれ置き換える必要があります。例OAEPWithMD5AndMGF1PaddingOAEPWithSHA-512AndMGF1Padding

OAEPPadding が使用される場合、OAEPPadding に必要な値を提供するために、Cipher オブジェクトが javax.crypto.spec.OAEPParameterSpec オブジェクトによって初期化されます。
PKCS1Padding PKCS #1 に記述されているパディング方式。RSA アルゴリズムとともに使用されます。
PKCS5Padding 「PKCS #5: Password-Based Encryption Standard」バージョン 1.5 (RSA Laboratories、1993 年 11 月) に記述されているパディング方式。
SSL3Padding SSL プロトコルバージョン 3.0 (1996 年 11 月 18 日) のセクション 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 Types

このセクションのタイプは、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 「PKCS #3: 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 アルゴリズムとともに使用する鍵ジェネレータ。

KeyManagerFactory アルゴリズム

このセクションのアルゴリズム名は、KeyManagerFactory のインスタンスの生成時に指定できます。

アルゴリズム名 説明
PKIX X509ExtendedKeyManager のファクトリであり、IETF PKIX ワーキンググループによって RFC 3280 またはその後継で定義された規則に従って、ローカル側の認証に使用する X.509 証明書ベースの鍵ペアを管理します。KeyManagerFactory は、クラス javax.net.ssl.KeyStoreBuilderParameters を使用した初期化をサポートする必要があります。

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 PKCS #12 で定義されている、個人のアイデンティティー情報のための転送構文。

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> パスワードベースのメッセージ認証規格である PKCS #5 v2.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 で定義されたハッシュアルゴリズム。

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

Policy Types

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

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

SaslClient メカニズム

このセクションのメカニズムは、SaslClient のインスタンスの生成時に指定できます。

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

SaslServer メカニズム

このセクションのメカニズムは、SaslServer のインスタンスの生成時に指定できます。

メカニズム 説明
CRAM-MD5 RFC 2195 を参照してください。このメカニズムは、ハッシュ化されたユーザー名/パスワード認証方式をサポートしています。
DIGEST-MD5 RFC 2831 を参照してください。HTTP Digest Authentication を SASL メカニズムとして使用する方法を定義します。
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、v1.5)
  • PBEWithHmacSHA1AndDESede (PKCS5、v2.0)
注:これらは各パスワード文字の下位 8 ビットのみを使用します。
PBKDF2WithHmacSHA1 PKCS #5 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 署名アルゴリズムについては、PKCS #1 を参照してください。
MD2withRSA
MD5withRSA
PKCS #1 で定義された、RSA 暗号を使用した MD2/MD5 署名アルゴリズム。MD2/MD5 ダイジェストアルゴリズムおよび RSA を使用して RSA デジタル署名を作成および検証します。
SHA1withRSA SHA256withRSA
SHA384withRSA
SHA512withRSA
OSI Interoperability Workshop で定義された、SHA-* および RSA 暗号化アルゴリズムを使用した署名アルゴリズム。PKCS #1 に記述されているパディング規則を使用します。
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 など) も同じ形式で指定されています。

PKCS #1 v2.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 をサポートします。ほかのバージョンをサポートする場合もあります
TLSv1.2 RFC 5246: TLS version 1.2 をサポートします。ほかのバージョンをサポートする場合もあります

TrustManagerFactory アルゴリズム

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

アルゴリズム名 説明
PKIX X509ExtendedTrustManager オブジェクトのファクトリであり、IETF PKIX ワーキンググループによって RFC 3280 またはその後継で定義された規則に従って、証明書チェーンを検証します。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 暗号化方式群名

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

SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_anon_EXPORT_WITH_RC4_40_MD5
SSL_DH_anon_WITH_3DES_EDE_CBC_SHA
TLS_DH_anon_WITH_AES_128_CBC_SHA
TLS_DH_anon_WITH_AES_128_CBC_SHA256
TLS_DH_anon_WITH_AES_128_GCM_SHA256
TLS_DH_anon_WITH_AES_256_CBC_SHA
TLS_DH_anon_WITH_AES_256_CBC_SHA256
TLS_DH_anon_WITH_AES_256_GCM_SHA384
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256
SSL_DH_anon_WITH_DES_CBC_SHA
SSL_DH_anon_WITH_RC4_128_MD5
TLS_DH_anon_WITH_SEED_CBC_SHA
SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA
TLS_DH_DSS_WITH_AES_128_CBC_SHA
TLS_DH_DSS_WITH_AES_128_CBC_SHA256
TLS_DH_DSS_WITH_AES_128_GCM_SHA256
TLS_DH_DSS_WITH_AES_256_CBC_SHA
TLS_DH_DSS_WITH_AES_256_CBC_SHA256
TLS_DH_DSS_WITH_AES_256_GCM_SHA384
TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA
TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256
TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA
TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256
SSL_DH_DSS_WITH_DES_CBC_SHA
TLS_DH_DSS_WITH_SEED_CBC_SHA
SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DH_RSA_WITH_AES_128_CBC_SHA
TLS_DH_RSA_WITH_AES_128_CBC_SHA256
TLS_DH_RSA_WITH_AES_128_GCM_SHA256
TLS_DH_RSA_WITH_AES_256_CBC_SHA
TLS_DH_RSA_WITH_AES_256_CBC_SHA256
TLS_DH_RSA_WITH_AES_256_GCM_SHA384
TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA
TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256
TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA
TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256
SSL_DH_RSA_WITH_DES_CBC_SHA
TLS_DH_RSA_WITH_SEED_CBC_SHA
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA
SSL_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA
TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
TLS_DHE_DSS_WITH_AES_256_CBC_SHA
TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256
SSL_DHE_DSS_WITH_DES_CBC_SHA
SSL_DHE_DSS_WITH_RC4_128_SHA
TLS_DHE_DSS_WITH_SEED_CBC_SHA
TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
TLS_DHE_PSK_WITH_AES_128_CBC_SHA
TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
TLS_DHE_PSK_WITH_AES_256_CBC_SHA
TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
TLS_DHE_PSK_WITH_NULL_SHA
TLS_DHE_PSK_WITH_NULL_SHA256
TLS_DHE_PSK_WITH_NULL_SHA384
TLS_DHE_PSK_WITH_RC4_128_SHA
SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
TLS_DHE_RSA_WITH_AES_256_CBC_SHA
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
SSL_DHE_RSA_WITH_DES_CBC_SHA
TLS_DHE_RSA_WITH_SEED_CBC_SHA
TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA
TLS_ECDH_anon_WITH_AES_128_CBC_SHA
TLS_ECDH_anon_WITH_AES_256_CBC_SHA
TLS_ECDH_anon_WITH_NULL_SHA
TLS_ECDH_anon_WITH_RC4_128_SHA
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDH_ECDSA_WITH_NULL_SHA
TLS_ECDH_ECDSA_WITH_RC4_128_SHA
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDH_RSA_WITH_NULL_SHA
TLS_ECDH_RSA_WITH_RC4_128_SHA
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_NULL_SHA
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
TLS_ECDHE_PSK_WITH_NULL_SHA
TLS_ECDHE_PSK_WITH_NULL_SHA256
TLS_ECDHE_PSK_WITH_NULL_SHA384
TLS_ECDHE_PSK_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_NULL_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
TLS_EMPTY_RENEGOTIATION_INFO_SCSV*
SSL_FORTEZZA_DMS_WITH_FORTEZZA_CBC_SHA
SSL_FORTEZZA_DMS_WITH_NULL_SHA
TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5
TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA
TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5
TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA
TLS_KRB5_EXPORT_WITH_RC4_40_MD5
TLS_KRB5_EXPORT_WITH_RC4_40_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_MD5
TLS_KRB5_WITH_IDEA_CBC_SHA
TLS_KRB5_WITH_RC4_128_MD5
TLS_KRB5_WITH_RC4_128_SHA
TLS_PSK_WITH_3DES_EDE_CBC_SHA
TLS_PSK_WITH_AES_128_CBC_SHA
TLS_PSK_WITH_AES_128_CBC_SHA256
TLS_PSK_WITH_AES_128_GCM_SHA256
TLS_PSK_WITH_AES_256_CBC_SHA
TLS_PSK_WITH_AES_256_CBC_SHA384
TLS_PSK_WITH_AES_256_GCM_SHA384
TLS_PSK_WITH_NULL_SHA
TLS_PSK_WITH_NULL_SHA256
TLS_PSK_WITH_NULL_SHA384
TLS_PSK_WITH_RC4_128_SHA
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA
SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5
SSL_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_EXPORT1024_WITH_DES_CBC_SHA
SSL_RSA_EXPORT1024_WITH_RC4_56_SHA
SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA
SSL_RSA_FIPS_WITH_DES_CBC_SHA
TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
TLS_RSA_PSK_WITH_AES_128_CBC_SHA
TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
TLS_RSA_PSK_WITH_AES_256_CBC_SHA
TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
TLS_RSA_PSK_WITH_NULL_SHA
TLS_RSA_PSK_WITH_NULL_SHA256
TLS_RSA_PSK_WITH_NULL_SHA384
TLS_RSA_PSK_WITH_RC4_128_SHA
SSL_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
SSL_RSA_WITH_DES_CBC_SHA
SSL_RSA_WITH_IDEA_CBC_SHA
SSL_RSA_WITH_NULL_MD5
SSL_RSA_WITH_NULL_SHA
TLS_RSA_WITH_NULL_SHA256
SSL_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_SHA
TLS_RSA_WITH_SEED_CBC_SHA
TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA
TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA
TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA
TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA
TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA
TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA
TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA
TLS_SRP_SHA_WITH_AES_128_CBC_SHA
TLS_SRP_SHA_WITH_AES_256_CBC_SHA

* TLS_EMPTY_RENEGOTIATION_INFO_SCSV は、RFC 5746 をサポートするための新しい擬似暗号化方式群です。詳細は、JSSE リファレンスガイドの「Transport Layer Security (TLS) 再ネゴシエーションの問題」セクションを参照してください。

追加の 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 に定義)
TLSv1.2 TLS バージョン 1.2 プロトコル (RFC 5246 に定義)
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 パラメータは、認証のタイプを示します。次の表に、クライアントまたはサーバーの証明書チェーンで使用される標準名を示します。

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

Java SE 7 リリースでは、TLS 1.2 のエンドポイント識別アルゴリズムがサポートされます。javax.net.ssl.SSLParameterssetEndpointIdentificationAlgorithm() メソッドにアルゴリズム名を渡すことができます。次の表に、現在認識される名前を示します。

エンドポイント識別
アルゴリズム名
仕様
HTTPS http://www.ietf.org/rfc/rfc2818.txt
LDAPS http://www.ietf.org/rfc/rfc2830.txt

アルゴリズム

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

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

仕様テンプレート

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

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

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

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

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

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

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

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

アルゴリズムの仕様

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

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

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

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

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

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

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

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

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

Field 説明
名前 MD2withRSA、MD5withRSA、および SHA1withRSA
Signature
説明 それぞれに MD2、MD5、および SHA-1 メッセージアルゴリズムを RSA 暗号化とともに使う署名アルゴリズムです。
KeyPair アルゴリズム RSA
署名フォーマット RSA Laboratories の PKCS #1 で定義された DER エンコード PKCS1 ブロック。暗号化データは署名付きデータのダイジェストです。

DSA 鍵ペア生成アルゴリズム

Field 説明
名前 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 生成アルゴリズム

Field 説明
名前 RSA
KeyPairGenerator
説明 このアルゴリズムは、PKCS #1 に記述されている鍵ペア生成アルゴリズムです。
強度 512 以上で 8 の倍数の任意の整数。

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

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


実装要件

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

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

Java SE 7 プラットフォームの各実装は、次の表の指定されたアルゴリズムをサポートする必要があります。これらの要件は、サードパーティープロバイダには当てはまりません。サポートされているその他のアルゴリズムについては、実装のリリースドキュメントを参照してください。

クラス アルゴリズム名
AlgorithmParameterGenerator
実装は、括弧内のキーサイズをサポートする必要があります。
DiffieHellman (1024)
DSA (1024)
AlgorithmParameters AES
DES
DESede
DiffieHellman
DSA
CertificateFactory X.509
CertPath エンコーディング PKCS7
PkiPath
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 (1024、2048)
RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024、2048)
RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024、2048)
Configuration [1]
KeyAgreement DiffieHellman
KeyFactory DiffieHellman
DSA
RSA
KeyGenerator
実装は、括弧内のキーサイズをサポートする必要があります。
AES (128)
DES (56)
DESede (168)
HmacSHA1
HmacSHA256
KeyPairGenerator
実装は、括弧内のキーサイズをサポートする必要があります。
DiffieHellman (1024)
DSA (1024)
RSA (1024、2048)
KeyStore PKCS12
Mac HmacMD5
HmacSHA1
HmacSHA256
MessageDigest MD5
SHA-1
SHA-256
Policy [1]
SecretKeyFactory DES
DESede
SecureRandom [1]
Signature SHA1withDSA
SHA1withRSA
SHA256withRSA
SSLContext TLSv1 [2]

[1] 特定の Configuration タイプ、Policy タイプ、または SecureRandom アルゴリズムは要求されませんが、実装固有のデフォルトを提供する必要があります。

[2] TLSv1 の実装は、RFC 2246 で定義された暗号化方式群 SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA と、RFC 5746 で定義された安全な再ネゴシエーションのための特別な通知用暗号化方式群 TLS_EMPTY_RENEGOTIATION_INFO_SCSV をサポートする必要があります。

XML 署名アルゴリズム

Java SE 7 プラットフォームの各実装は、次の表の指定された XML 署名アルゴリズムをサポートする必要があります。これらの要件は、サードパーティープロバイダには当てはまりません。サポートされているその他のアルゴリズムについては、実装のリリースドキュメントを参照してください。

クラス アルゴリズム名
TransformService http://www.w3.org/2001/10/xml-exc-c14n# (CanonicalizationMethod.EXCLUSIVE)
http://www.w3.org/TR/2001/REC-xml-c14n-20010315 (CanonicalizationMethod.INCLUSIVE)
http://www.w3.org/2000/09/xmldsig#base64 (Transform.BASE64)
http://www.w3.org/2000/09/xmldsig#enveloped-signature (Transform.ENVELOPED)
XMLSignatureFactory DOM

Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.