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


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


標準名

Java SE Security APIは、様々なアルゴリズム、証明書、およびキーストアのタイプの標準名を必要とし、これらを使用します。

SEの実装で、この仕様に定義されていないその他のアルゴリズムをサポートする場合があることに注意してください。ベスト・プラクティスとしては、アルゴリズムがこの仕様の後続のバージョンに定義されており、それより前の仕様の実装でアルゴリズムをサポートする場合、実装では、後続バージョンで定義されるアルゴリズムの標準名を使用します。各SEの実装でも、サポートする、またはその後の更新リリースでサポートを追加するアルゴリズムを文書に記載します。アルゴリズムは、リリース・ノートやJDKセキュリティ・プロバイダのドキュメントなどの個別のドキュメントに記載される場合があります。

場合によっては、複数のプロバイダの実装にわたって名前の一貫性を維持できるように、明示的に記載されていない名前の命名規約が提案されることがあります。山カッコで囲まれた項目(<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>アルゴリズムとともに使用するパラメータ。例: PBEWithMD5AndDESおよびPBEWithHmacSHA256AndAES_128
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の詳細は、「PKCS #7: 暗号メッセージ構文」を参照してください。
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ビットのキーをサポートします。

有効なキー・サイズが1つのみのAES暗号を使用するには、AES_<n>形式を使用します(<n>は128、192または256)。

AESWrap

RFC 3394に記述されているAESキー・ラッピング・アルゴリズム。

有効なキー・サイズが1つのみのAESWrap暗号を使用するには、AESWrap_<n>形式を使用します(<n>は128、192または256)。

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に記述されているDigital Encryption Standard。
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 PKCS#1で定義されたRSA暗号化アルゴリズム

Cipherアルゴリズム・モード

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

アルゴリズム名 説明
NONE モードなし。
CBC FIPS PUB 81で定義されたCipher Block Chaining Mode。
CCM NIST Special Publication SP 800-38Cで定義されたCounter/CBC 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モード(通常、このモードは複数のデータ・ブロックには使用しないでください)。
GCM NIST Special Publication SP 800-38Dで定義されたGalois/Counter Mode。
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 楕円曲線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
HmacSHA224
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プロバイダによって提供されている独自のキーストア実装。
dks ドメイン・キーストアは、単一の論理的なキーストアとして表されるキーストアの集合です。「DomainLoadStoreParameter」で説明されている構文を持つ構成データによって指定されます。
pkcs11 PKCS #11トークンに基づくキーストア。
pkcs12 PKCS#12で定義されている、個人のアイデンティティ情報のための転送構文。

Macアルゴリズム

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

アルゴリズム名 説明
HmacMD5 RFC 2104「HMAC: Keyed-Hashing for Message Authentication」(1997年2月)で定義されたHMAC-MD5キー・ハッシュ・アルゴリズム。
HmacSHA1
HmacSHA224
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-224
SHA-256
SHA-384
SHA-512
FIPS PUB 180-4で定義されたハッシュ・アルゴリズム。

電子データ(メッセージ)の圧縮された表現を計算するためのセキュアなハッシュ・アルゴリズム(SHA-1、SHA-224、SHA-256、SHA-384、SHA-512)。長さが2^64ビット未満(SHA-1、SHA-224およびSHA-256)または2^128未満(SHA-384およびSHA-512)のメッセージがハッシュ・アルゴリズムに入力されると、その結果はメッセージ・ダイジェストと呼ばれる出力になります。メッセージ・ダイジェストの長さは、アルゴリズムに応じて160-512ビットになります。

Policyタイプ

このセクションのタイプは、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 (PKCS #5、1.5)
  • PBEWithHmacSHA256AndAES_128 (PKCS #5、2.0)
注: これらは各パスワード文字の下位8ビットのみを使用します。
PBKDF2With<prf> PKCS #5 2.0にあるパスワードベースのキー派生アルゴリズム。指定された擬似乱数関数(<prf>)を使用します。例: PBKDF2WithHmacSHA256。

SecureRandom乱数生成アルゴリズム

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

アルゴリズム名 説明
NativePRNG 基盤となるネイティブOSから乱数を取得します。乱数生成のブロック性については何も表明されません。
NativePRNGBlocking 基盤となるネイティブOSから乱数を取得し、必要に応じてブロック化します。たとえば、UNIX系システムの/dev/randomなど。
NativePRNGNonBlocking 基盤となるネイティブOSから乱数を取得しますが、アプリケーションの速度低下を避けるためブロック化しません。たとえば、UNIX系システムの/dev/urandomなど。
PKCS11 基盤となるインストールおよび構成済みのPKCS11ライブラリから乱数を取得します。
SHA1PRNG Sunプロバイダが提供する擬似乱数生成(PRNG)アルゴリズム。このアルゴリズムは、PRNGの基盤としてSHA-1を使用します。各操作につき値が1増加する64ビット・カウンタを使って鎖状につながった真にランダムなシード値から、SHA-1ハッシュを計算します。160ビットのSHA-1出力のうち、64ビットだけが使用されます。
Windows-PRNG 基盤となるWindows OSから乱数を取得します。

サービス属性

暗号化サービスは、常に特定のアルゴリズムまたはタイプに関連付けられています。たとえば、デジタル署名サービスは常に特定のアルゴリズム(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
SHA224withRSA
SHA256withRSA
SHA384withRSA
SHA512withRSA
OSI Interoperability Workshopで定義された、SHA-*およびRSA暗号化アルゴリズムを使用した署名アルゴリズム。PKCS#1に記述されているパディング規則を使用します。
NONEwithDSA FIPS PUB 186-2で定義されたデジタル署名アルゴリズム。このデータの長さは正確に20バイトである必要があります。このアルゴリズムは、rawDSAとも呼ばれています。
SHA1withDSA
SHA224withDSA
SHA256withDSA
FIPS PUB 186-3で定義された、SHA-1、SHA-224またはSHA-256ダイジェスト・アルゴリズムを使用してデジタル署名を作成および検証するDSA署名アルゴリズム。
NONEwithECDSA
SHA1withECDSA
SHA224withECDSA
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暗号化方式群と機能的に同等です。

* 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"になります。

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

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

アルゴリズム

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

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

仕様テンプレート

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

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

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

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

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

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

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

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

アルゴリズムの仕様

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

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

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

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

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

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

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

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

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

フィールド 説明
名前 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を使用します。

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

DSAキー・ペア生成アルゴリズム

フィールド 説明
名前 DSA
KeyPairGenerator
説明 このアルゴリズムは、DSAに関するNIST FIPS 186に記述されているキー・ペア生成アルゴリズムです。
キー・サイズ モジュラスpの長さ(ビット単位)。これは、512から1024の範囲で64の倍数であるか、または2048である必要があります。デフォルトのキー・サイズは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

(L,N)のペアで識別されるより大きなDSAキー・サイズに対するデフォルト値を次に示します。

(L,N) = (2048, 256)

SEED =
b0b44176 01b59cbc 9d8ac8f9 35cadaec 4f5fbb2f 23785609 ae466748
d9b5a536

counter = 497

p =
95475cf5 d93e596c 3fcd1d90 2add02f4 27f5f3c7 210313bb 45fb4d5b
b2e5fe1c bd678cd4 bbdd84c9 836be1f3 1c077772 5aeb6c2f c38b85f4
8076fa76 bcd8146c c89a6fb2 f706dd71 9898c208 3dc8d896 f84062e2
c9c94d13 7b054a8d 8096adb8 d5195239 8eeca852 a0af12df 83e475aa
65d4ec0c 38a9560d 5661186f f98b9fc9 eb60eee8 b030376b 236bc73b
e3acdbd7 4fd61c1d 2475fa30 77b8f080 467881ff 7e1ca56f ee066d79
506ade51 edbb5443 a563927d bc4ba520 08674617 5c888592 5ebc64c6
14790677 3496990c b714ec66 7304e261 faee33b3 cbdf008e 0c3fa906
50d97d39 09c9275b f4ac86ff cb3d03e6 dfc8ada5 934242dd 6d3bcca2
a406cb0b

q =
f8183668 ba5fc5bb 06b5981e 6d8b795d 30b8978d 43ca0ec5 72e37e09
939a9773

g =
42debb9d a5b3d88c c956e087 87ec3f3a 09bba5f4 8b889a74 aaf53174
aa0fbe7e 3c5b8fcd 7a53bef5 63b0e985 60328960 a9517f40 14d3325f
c7962bf1 e049370d 76d1314a 76137e79 2f3f0db8 59d095e4 a5b93202
4f079ecf 2ef09c79 7452b077 0e135078 2ed57ddf 794979dc ef23cb96
f1830619 65c4ebc9 3c9c71c5 6b925955 a75f94cc cf1449ac 43d586d0
beee4325 1b0b2287 349d68de 0d144403 f13e802f 4146d882 e057af19
b6f6275c 6676c8fa 0e3ca271 3a3257fd 1b27d063 9f695e34 7d8d1cf9
ac819a26 ca9b04cb 0eb9b7b0 35988d15 bbac6521 2a55239c fc7e58fa
e38d7250 ab9991ff bc971340 25fe8ce0 4c4399ad 96569be9 1a546f49
78693c7a

(L,N) = (2048, 224)

SEED =
58423608 0cfa43c0 9b023541 35f4cc51 98a19efa da08bd86 6d601ba4

counter = 2666

p =
8f7935d9 b9aae9bf abed887a cf4951b6 f32ec59e 3baf3718 e8eac496
1f3efd36 06e74351 a9c41833 39b809e7 c2ae1c53 9ba7475b 85d011ad
b8b47987 75498469 5cac0e8f 14b33608 28a22ffa 27110a3d 62a99345
3409a0fe 696c4658 f84bdd20 819c3709 a01057b1 95adcd00 233dba54
84b6291f 9d648ef8 83448677 979cec04 b434a6ac 2e75e998 5de23db0
292fc111 8c9ffa9d 8181e733 8db792b7 30d7b9e3 49592f68 09987215
3915ea3d 6b8b4653 c633458f 803b32a4 c2e0f272 90256e4e 3f8a3b08
38a1c450 e4e18c1a 29a37ddf 5ea143de 4b66ff04 903ed5cf 1623e158
d487c608 e97f211c d81dca23 cb6e3807 65f822e3 42be484c 05763939
601cd667

q =
baf696a6 8578f7df dee7fa67 c977c785 ef32b233 bae580c0 bcd5695d

g =
16a65c58 20485070 4e7502a3 9757040d 34da3a34 78c154d4 e4a5c02d
242ee04f 96e61e4b d0904abd ac8f37ee b1e09f31 82d23c90 43cb642f
88004160 edf9ca09 b32076a7 9c32a627 f2473e91 879ba2c4 e744bd20
81544cb5 5b802c36 8d1fa83e d489e94e 0fa0688e 32428a5c 78c478c6
8d0527b7 1c9a3abb 0b0be12c 44689639 e7d3ce74 db101a65 aa2b87f6
4c6826db 3ec72f4b 5599834b b4edb02f 7c90e9a4 96d3a55d 535bebfc
45d4f619 f63f3ded bb873925 c2f224e0 7731296d a887ec1e 4748f87e
fb5fdeb7 5484316b 2232dee5 53ddaf02 112b0d1f 02da3097 3224fe27
aeda8b9d 4b2922d9 ba8be39e d9e103a6 3c52810b c688b7e2 ed4316e1
ef17dbde

RSA KeyPair生成アルゴリズム

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

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

フィールド 説明
名前 DSA
AlgorithmParameterGenerator
説明 このアルゴリズムは、DSAに関するNIST FIPS 186に記述されているパラメータ生成アルゴリズムです。
強度

モジュラスpの長さ(ビット単位)。これは、512から1024の範囲で64の倍数であるか、または2048である必要があります。デフォルトのキー・サイズは1024です。

または、DSAGenParameterSpecクラスを使ってDSAパラメータを生成します。このクラスはDSA標準の最新バージョンであるFIPS PUB 186-3をサポートし、特定の長さの素数PおよびQのみが使用可能です。素数Pとサブ素数Qの長さの有効なサイズは次のとおりです。

  • (1024, 160)
  • (2048, 224)
  • (2048, 256)


実装要件

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

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

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

クラス アルゴリズム名
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署名アルゴリズム

JDK 8プラットフォームの各実装は、次の表の指定された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, 2020, Oracle and/or its affiliates. All rights reserved.