Network Working Group                                         B. Kaliski
Request for Comments: 2898                              RSA Laboratories
Category: Informational                                   September 2000
        
           PKCS #5: Password-Based Cryptography Specification
                              Version 2.0
        

Status of this Memo

このメモの位置付け

This memo provides information for the Internet community. It does not specify an Internet standard of any kind. Distribution of this memo is unlimited.

このメモはインターネットコミュニティのための情報を提供します。それはどんな種類のインターネット標準を指定しません。このメモの配布は無制限です。

Copyright Notice

著作権表示

Copyright (C) The Internet Society (2000). All Rights Reserved.

著作権(C)インターネット協会(2000)。全著作権所有。

Abstract

抽象

This memo represents a republication of PKCS #5 v2.0 from RSA Laboratories' Public-Key Cryptography Standards (PKCS) series, and change control is retained within the PKCS process. The body of this document, except for the security considerations section, is taken directly from that specification.

このメモはRSA Laboratoriesの公開鍵暗号規格(PKCS)シリーズからPKCS#5 v2.0のの再発行を表し、および制御を変更するPKCSプロセス内に保持されます。このドキュメントの本体は、セキュリティ上の考慮事項のセクションを除いて、その仕様から直接取得されます。

This document provides recommendations for the implementation of password-based cryptography, covering key derivation functions, encryption schemes, message-authentication schemes, and ASN.1 syntax identifying the techniques.

この文書では、キー導出関数、暗号化方式、メッセージ認証方式、および技法を識別するASN.1構文をカバーする、パスワードベースの暗号化の実施のための勧告を提供します。

The recommendations are intended for general application within computer and communications systems, and as such include a fair amount of flexibility. They are particularly intended for the protection of sensitive information such as private keys, as in PKCS #8 [25]. It is expected that application standards and implementation profiles based on these specifications may include additional constraints.

勧告は、コンピュータおよび通信システム内の一般的な用途のために意図され、そのようなものとして、柔軟性のかなりの量が含まれます。これらは、特にPKCS#8 [25]のように、そのような秘密鍵などの機密情報の保護のために意図されています。これらの仕様に基づいてアプリケーションの標準と実装プロファイルが追加の制約を含むことができることが期待されています。

Other cryptographic techniques based on passwords, such as password-based key entity authentication and key establishment protocols [4][5][26] are outside the scope of this document. Guidelines for the selection of passwords are also outside the scope.

このようなパスワードベースのキーエンティティ認証及び鍵確立プロトコルとしてパスワードに基づいて他の暗号化技術には、[4] [5] [26]この文書の範囲外です。パスワードの選択のためのガイドラインは適用範囲外でもあります。

Table of Contents

目次

   1.   Introduction ...............................................  3
   2.   Notation ...................................................  3
   3.   Overview ...................................................  4
   4.   Salt and iteration count ...................................  6
       4.1  Salt ...................................................  6
       4.2  Iteration count ........................................  8
   5.   Key derivation functions ...................................  8
       5.1  PBKDF1 .................................................  9
       5.2  PBKDF2 .................................................  9
   6.   Encryption schemes ......................................... 11
       6.1  PBES1 .................................................. 12
            6.1.1  Encryption operation ............................ 12
            6.1.2  Decryption operation ............................ 13
       6.2  PBES2 .................................................. 14
            6.2.1  Encryption operation ............................ 14
            6.2.2  Decryption operation ............................ 15
   7.   Message authentication schemes ............................. 15
       7.1  PBMAC1 ................................................. 16
            7.1.1  MAC generation .................................. 16
            7.1.2  MAC verification ................................ 16
   8.   Security Considerations .................................... 17
   9.   Author's Address............................................ 17
   A.   ASN.1 syntax ............................................... 18
       A.1  PBKDF1 ................................................. 18
       A.2  PBKDF2 ................................................. 18
       A.3  PBES1 .................................................. 20
       A.4  PBES2 .................................................. 20
       A.5  PBMAC1 ................................................. 21
   B.   Supporting techniques ...................................... 22
       B.1  Pseudorandom functions ................................. 22
       B.2  Encryption schemes ..................................... 23
       B.3  Message authentication schemes ......................... 26
   C.   ASN.1 module ............................................... 26
   Intellectual Property Considerations ............................ 30
   Revision history ................................................ 30
   References ...................................................... 31
   Contact Information & About PKCS ................................ 33
   Full Copyright Statement ........................................ 34
        
1. Introduction
1. はじめに

This document provides recommendations for the implementation of password-based cryptography, covering the following aspects:

このドキュメントは以下の側面をカバーする、パスワードベースの暗号化の実装のための勧告を提供します。

- key derivation functions - encryption schemes - message-authentication schemes - ASN.1 syntax identifying the techniques

- キー導出関数 - 暗号化方式 - メッセージ認証スキーム - 技術を識別するASN.1シンタックス

The recommendations are intended for general application within computer and communications systems, and as such include a fair amount of flexibility. They are particularly intended for the protection of sensitive information such as private keys, as in PKCS #8 [25]. It is expected that application standards and implementation profiles based on these specifications may include additional constraints.

勧告は、コンピュータおよび通信システム内の一般的な用途のために意図され、そのようなものとして、柔軟性のかなりの量が含まれます。これらは、特にPKCS#8 [25]のように、そのような秘密鍵などの機密情報の保護のために意図されています。これらの仕様に基づいてアプリケーションの標準と実装プロファイルが追加の制約を含むことができることが期待されています。

Other cryptographic techniques based on passwords, such as password-based key entity authentication and key establishment protocols [4][5][26] are outside the scope of this document. Guidelines for the selection of passwords are also outside the scope.

このようなパスワードベースのキーエンティティ認証及び鍵確立プロトコルとしてパスワードに基づいて他の暗号化技術には、[4] [5] [26]この文書の範囲外です。パスワードの選択のためのガイドラインは適用範囲外でもあります。

This document supersedes PKCS #5 version 1.5 [24], but includes compatible techniques.

この文書では、PKCS#5バージョン1.5 [24]を優先したが、互換性のある技術を含みます。

2. Notation
2.記法

C ciphertext, an octet string

Cの暗号文、オクテット文字列

c iteration count, a positive integer

C反復回数、正の整数

DK derived key, an octet string

DK派生キー、オクテット文字列

dkLen length in octets of derived key, a positive integer

導出鍵のオクテットdkLen長、正の整数

EM encoded message, an octet string

EMエンコードされたメッセージ、オクテットストリング

Hash underlying hash function

基本となるハッシュ関数をハッシュ

hLen length in octets of pseudorandom function output, a positive integer

擬似ランダム関数の出力、正の整数のオクテット長さhLen

l length in blocks of derived key, a positive integer

導出鍵のブロック内のL長、正の整数

IV initialization vector, an octet string

IVの初期化ベクトル、オクテット文字列

K encryption key, an octet string

Kの暗号化キー、オクテット文字列

KDF key derivation function

KDF鍵導出関数

M message, an octet string

Mメッセージ、オクテット文字列

P password, an octet string

Pパスワード、オクテット文字列

PRF underlying pseudorandom function

PRF基本となる擬似ランダム機能

PS padding string, an octet string

PSパディング文字列、オクテット文字列

psLen length in octets of padding string, a positive integer

パディング文字列のオクテットでpsLen長、正の整数

S salt, an octet string

S塩、オクテット文字列

T message authentication code, an octet string

Tメッセージ認証コード、オクテットストリング

T_1, ..., T_l, U_1, ..., U_c intermediate values, octet strings

T_1、...、T_L、U_1、...、U_c中間値、オクテット文字列

01, 02, ..., 08 octets with value 1, 2, ..., 8

01、02、...、値1、2と08オクテット、...、8

\xor bit-wise exclusive-or of two octet strings

\のXORビット単位の排他的論理和の2つのオクテット文字列

|| || octet length operator

|| ||オクテット長演算子

|| concatenation operator

||連結演算子

<i..j> substring extraction operator: extracts octets i through j, 0 <= i <= j

<i..j>サブストリング抽出演算子は:= J iはjを介して、0 <= iが<オクテットを抽出します

3. Overview
3.概要

In many applications of public-key cryptography, user security is ultimately dependent on one or more secret text values or passwords. Since a password is not directly applicable as a key to any conventional cryptosystem, however, some processing of the password is required to perform cryptographic operations with it. Moreover, as passwords are often chosen from a relatively small space, special care is required in that processing to defend against search attacks.

公開鍵暗号方式の多くのアプリケーションでは、ユーザーのセキュリティは、一つ以上の秘密のテキスト値やパスワードに最終的に依存しています。パスワードは、任意の従来の暗号鍵として直接適用できないので、しかし、パスワードの一部の処理は、それによる暗号化操作を実行するために必要とされます。パスワードは、多くの場合、比較的小さな空間から選択される。また、特別なケアは、検索攻撃を防御するためにその処理に必要とされます。

A general approach to password-based cryptography, as described by Morris and Thompson [8] for the protection of password tables, is to combine a password with a salt to produce a key. The salt can be viewed as an index into a large set of keys derived from the password, and need not be kept secret. Although it may be possible for an opponent to construct a table of possible passwords (a so-called "dictionary attack"), constructing a table of possible keys will be difficult, since there will be many possible keys for each password. An opponent will thus be limited to searching through passwords separately for each salt.

モリスとトンプソンによって記載されているように、パスワードベースの暗号化の一般的なアプローチは、[8]、パスワードテーブルの保護のために、キーを生成するために塩とパスワードを組み合わせることです。塩はパスワード由来の鍵の大規模なセットへのインデックスとして表示することができ、かつ秘密にする必要はありません。相手が構築、可能なパスワードのテーブル(いわゆる「辞書攻撃」)を構築することが可能であるかもしれないが可能なキーの表は、各パスワードのための多くの可能なキーがあるでしょうから、難しいだろう。対戦相手は、このように、各塩のために個別にパスワードを検索に制限されます。

Another approach to password-based cryptography is to construct key derivation techniques that are relatively expensive, thereby increasing the cost of exhaustive search. One way to do this is to include an iteration count in the key derivation technique, indicating how many times to iterate some underlying function by which keys are derived. A modest number of iterations, say 1000, is not likely to be a burden for legitimate parties when computing a key, but will be a significant burden for opponents.

パスワードベースの暗号化するための別のアプローチは、それによって、網羅的な探索のコストが増大する、比較的高価である鍵導出手法を構築することです。これを行う1つの方法は、キーが誘導されることにより、いくつかの基本的な機能を反復する回数を示す、鍵導出法における反復回数を含めることです。繰り返しの控えめな数は、1000年を言う、キーを計算するとき、正当な当事者にとって負担になりそうではありませんが、相手にとって大きな負担となります。

Salt and iteration count formed the basis for password-based encryption in PKCS #5 v1.5, and adopted here as well for the various cryptographic operations. Thus, password-based key derivation as defined here is a function of a password, a salt, and an iteration count, where the latter two quantities need not be kept secret.

塩と繰り返し回数は、PKCS#5バージョン1.5でのパスワードベースの暗号化のための基礎を形成し、様々な暗号化操作のためにここにも採用しました。したがって、ここで定義されるようなパスワードに基づく鍵導出は後者の二つの量は、秘密にする必要はなく、パスワード、塩、及び繰り返し回数の関数です。

From a password-based key derivation function, it is straightforward to define password-based encryption and message authentication schemes. As in PKCS #5 v1.5, the password-based encryption schemes here are based on an underlying, conventional encryption scheme, where the key for the conventional scheme is derived from the password. Similarly, the password-based message authentication scheme is based on an underlying conventional scheme. This two-layered approach makes the password-based techniques modular in terms of the underlying techniques they can be based on.

パスワードベースのキー派生関数からは、パスワードベースの暗号化とメッセージ認証方式を定義することは簡単です。 PKCS#5バージョン1.5のように、ここでパスワードベースの暗号化方式は従来方式のための鍵はパスワードから導出される基礎となる、従来の暗号化方式に基づいています。同様に、パスワードベースのメッセージ認証方式は、基礎となる従来方式に基づいています。この二層のアプローチは、彼らがに基づいて行うことができる基礎となる技術の面で、パスワードベースの技術をモジュールになります。

It is expected that the password-based key derivation functions may find other applications than just the encryption and message authentication schemes defined here. For instance, one might derive a set of keys with a single application of a key derivation function, rather than derive each key with a separate application of the function. The keys in the set would be obtained as substrings of the output of the key derivation function. This approach might be employed as part of key establishment in a session-oriented protocol. Another application is password checking, where the output of the key derivation function is stored (along with the salt and iteration count) for the purposes of subsequent verification of a password.

パスワードベースのキー派生関数は、ここで定義されたばかりの暗号化とメッセージ認証方式以外のアプリケーションを見つけることが期待されています。例えば、一つは鍵導出関数の単一のアプリケーションにキーのセットを導出するのではなく、機能の別のアプリケーションとの各キーを導出するかもしれません。セット内のキーは、キー導出関数の出力のサブストリングとして得られるであろう。このアプローチは、セッション指向プロトコルで鍵確立の一部として使用されるかもしれません。別のアプリケーションは、鍵導出関数の出力は、パスワードのその後の検証の目的のために(塩と反復カウントと共に)格納されているパスワードチェックです。

Throughout this document, a password is considered to be an octet string of arbitrary length whose interpretation as a text string is unspecified. In the interest of interoperability, however, it is recommended that applications follow some common text encoding rules. ASCII and UTF-8 [27] are two possibilities. (ASCII is a subset of UTF-8.)

このドキュメントでは、パスワードが解釈するテキスト文字列が指定されていないとして、任意の長さのオクテット文字列であると考えられています。相互運用性の関心では、しかし、アプリケーションがいくつかの一般的なテキストエンコーディング規則に従うことをお勧めします。 ASCIIとUTF-8 [27]は二つの可能性があります。 (ASCIIはUTF-8のサブセットです。)

Although the selection of passwords is outside the scope of this document, guidelines have been published [17] that may well be taken into account.

パスワードの選択は、このドキュメントの範囲外ですが、ガイドラインが発表されている[17]それは十分に考慮してもよいです。

4. Salt and Iteration Count
4.塩と繰り返し回数

Inasmuch as salt and iteration count are central to the techniques defined in this document, some further discussion is warranted.

塩と反復回数は、この文書で定義された技術の中心である限り、いくつかの更なる議論が保証されています。

4.1 Salt
4.1塩

A salt in password-based cryptography has traditionally served the purpose of producing a large set of keys corresponding to a given password, among which one is selected at random according to the salt. An individual key in the set is selected by applying a key derivation function KDF, as

パスワードベース暗号における塩は、伝統的に一方が塩に応じてランダムに選択されている間所定のパスワードに対応するキーの大規模なセットを製造する目的を果たしています。セット内の個々のキーは、以下のように、鍵導出関数KDFを適用することにより選択されます

DK = KDF (P, S)

DK = KDF(P、S)

where DK is the derived key, P is the password, and S is the salt. This has two benefits:

DKは派生キーであり、Pはパスワードで、Sは塩です。これには2つの利点があります。

1. It is difficult for an opponent to precompute all the keys corresponding to a dictionary of passwords, or even the most likely keys. If the salt is 64 bits long, for instance, there will be as many as 2^64 keys for each password. An opponent is thus limited to searching for passwords after a password-based operation has been performed and the salt is known.

1.それは、パスワード、あるいは最も可能性の高いキーの辞書に対応するすべてのキーを事前計算するために、相手のために困難です。塩は、例えば、64ビット長である場合には、各パスワードなど、多くの64 ^ 2のようなキーが存在します。対戦相手は、このように、パスワードベースの操作が行われたと塩が知られた後、パスワードの検索に制限されています。

2. It is unlikely that the same key will be selected twice. Again, if the salt is 64 bits long, the chance of "collision" between keys does not become significant until about 2^32 keys have been produced, according to the Birthday Paradox. This addresses some of the concerns about interactions between multiple uses of the same key, which may apply for some encryption and authentication techniques.

2.同じキーを2回選択されることはほとんどありません。塩は64ビット長である場合、約2 ^ 32のキーが生成されるまで、再び、キー間の「衝突」の可能性は、誕生日パラドックスによれば、重要とはなりません。これは、いくつかの暗号化と認証技術を申請することができ、同じキーの複数の用途、間の相互作用についての懸念の一部に対処しています。

In password-based encryption, the party encrypting a message can gain assurance that these benefits are realized simply by selecting a large and sufficiently random salt when deriving an encryption key from a password. A party generating a message authentication code can gain such assurance in a similar fashion.

パスワードベースの暗号化では、メッセージを暗号化する当事者は、これらの利点は、パスワードから暗号化キーを導出する際に大規模で十分にランダムな塩を選択することで簡単に実現されているという保証を得ることができます。メッセージ認証コードを生成する当事者は、同様の方法で、そのような保証を得ることができます。

The party decrypting a message or verifying a message authentication code, however, cannot be sure that a salt supplied by another party has actually been generated at random. It is possible, for instance, that the salt may have been copied from another password-based operation, in an attempt to exploit interactions between multiple uses of the same key. For instance, suppose two legitimate parties exchange a encrypted message, where the encryption key is an 80-bit key derived from a shared password with some salt. An opponent could take the salt from that encryption and provide it to one of the parties as though it were for a 40-bit key. If the party reveals the result of decryption with the 40-bit key, the opponent may be able to solve for the 40-bit key. In the case that 40-bit key is the first half of the 80-bit key, the opponent can then readily solve for the remaining 40 bits of the 80-bit key.

メッセージを解読するか、メッセージ認証コードを検証する当事者は、しかし、別の関係者によって提供される塩は、実際にランダムに生成されていることを確認することはできません。これは、塩は、同じキーの複数回使用の間の相互作用を利用する試みにおいて、別のパスワードベースの操作からコピーされたことを、例えば、可能です。例えば、2人の正当な当事者が暗号化キーは、いくつかの塩と共有パスワードから派生80ビットキーで暗号化されたメッセージを、交換したとします。対戦相手は、その暗号化から塩を取ると、それは40ビットキーのためであるかのように、当事者の一方にそれを提供することができます。パーティーは40ビットの鍵と復号化の結果を明らかにした場合、相手は40ビットの鍵を解くことができるかもしれません。 40ビットのキーは80ビット鍵の最初の半分である場合に、相手は次に、容易に80ビットキーの残りの40ビットを解くことができます。

To defend against such attacks, either the interaction between multiple uses of the same key should be carefully analyzed, or the salt should contain data that explicitly distinguishes between different operations. For instance, the salt might have an additional, non-random octet that specifies whether the derived key is for encryption, for message authentication, or for some other operation.

いずれか、このような攻撃を防御するために同じキーの複数の用途間の相互作用を慎重に分析する必要があり、または塩は、明示的に異なる操作を区別したデータが含まれている必要があります。例えば、塩は、メッセージ認証のために、派生鍵は、暗号化のためであるかどうかを指定する、またはいくつかの他の操作のための追加、非ランダムオクテットを持っているかもしれません。

Based on this, the following is recommended for salt selection:

これに基づき、以下は塩の選択のために推奨されます。

1. If there is no concern about interactions between multiple uses of the same key (or a prefix of that key) with the password-based encryption and authentication techniques supported for a given password, then the salt may be generated at random and need not be checked for a particular format by the party receiving the salt. It should be at least eight octets (64 bits) long.

1.指定したパスワードの入力をサポートパスワードベースの暗号化および認証技術と同じキー(またはそのキーの接頭辞)の複数の用途間の相互作用についての心配がない場合、塩はランダムに生成されていない必要がありますすることができます塩を受けた当事者が特定の形式をチェックします。それは長い、少なくとも8つのオクテット(64ビット)でなければなりません。

2. Otherwise, the salt should contain data that explicitly distinguishes between different operations and different key lengths, in addition to a random part that is at least eight octets long, and this data should be checked or regenerated by the party receiving the salt. For instance, the salt could have an additional non-random octet that specifies the purpose of the derived key. Alternatively, it could be the encoding of a structure that specifies detailed information about the derived key, such as the encryption or authentication technique and a sequence number among the different keys derived from the password. The particular format of the additional data is left to the application.

2.それ以外の場合、塩は、明示的に、少なくとも8つのオクテット長であり、このデータは、塩を受けるパーティーによって確認された又は再生されなければならないランダムな部分に加えて、さまざまな操作と異なるキーの長さを区別したデータが含まれている必要があります。例えば、塩は、派生キーの目的を指定する追加の非ランダムオクテットを持つことができます。あるいは、そのような暗号化や認証技術として導出鍵、及びパスワードに由来する異なるキー間の配列番号についての詳細な情報を指定する構造の符号化であってもよいです。付加データの特定のフォーマットは、アプリケーションに任されています。

Note. If a random number generator or pseudorandom generator is not available, a deterministic alternative for generating the salt (or the random part of it) is to apply a password-based key derivation function to the password and the message M to be processed. For instance, the salt could be computed with a key derivation function as S = KDF (P, M). This approach is not recommended if the message M is known to belong to a small message space (e.g., "Yes" or "No"), however, since then there will only be a small number of possible salts.

注意。乱数発生器または擬似乱数生成器が使用できない場合は、塩(またはそのランダム一部)を生成するための決定論的代替は、パスワードと、処理対象のメッセージMにパスワードベースの鍵導出関数を適用することです。例えば、塩は、S = KDF(P、M)のような鍵導出関数を用いて計算することができます。メッセージMが小さいメッセージ空間に属することが知られている場合、このアプローチは推奨されない(例えば、「はい」または「いいえ」)、しかし、それ以来、唯一可能な塩の少数が存在するであろう。

4.2 Iteration Count
4.2繰り返し回数

An iteration count has traditionally served the purpose of increasing the cost of producing keys from a password, thereby also increasing the difficulty of attack. For the methods in this document, a minimum of 1000 iterations is recommended. This will increase the cost of exhaustive search for passwords significantly, without a noticeable impact in the cost of deriving individual keys.

反復回数は、伝統的に、それによっても、攻撃の難易度が高く、パスワードからのキーの製造コストを増加させる目的を務めています。この文書に記載されているメソッドについては、1000回の反復の最小値が推奨されます。これは、個々のキーを導出するコストの顕著な影響を与えることなく、大幅にパスワードの網羅的な探索のコストが増加します。

5. Key Derivation Functions
5.鍵導出関数

A key derivation function produces a derived key from a base key and other parameters. In a password-based key derivation function, the base key is a password and the other parameters are a salt value and an iteration count, as outlined in Section 3.

鍵導出関数は、基本キーおよび他のパラメータから導出鍵を生成します。パスワードベースの鍵導出関数では、ベースキーは、パスワードであり、第3節で概説されるように他のパラメータは、ソルト値と反復回数です。

The primary application of the password-based key derivation functions defined here is in the encryption schemes in Section 6 and the message authentication scheme in Section 7. Other applications are certainly possible, hence the independent definition of these functions.

ここで定義されたパスワードベースのキー派生機能の主な用途は、これらの機能の独立したので、定義、セクション6と7その他のアプリケーションは確かに可能であり、セクションのメッセージ認証方式で暗号化方式です。

Two functions are specified in this section: PBKDF1 and PBKDF2. PBKDF2 is recommended for new applications; PBKDF1 is included only for compatibility with existing applications, and is not recommended for new applications.

PBKDF1とPBKDF2:二つの機能は、このセクションで指定されています。 PBKDF2は、新しいアプリケーションのために推奨されます。 PBKDF1は、既存のアプリケーションとの互換性のために含まれ、そして新しいアプリケーションのために推奨されていません。

A typical application of the key derivation functions defined here might include the following steps:

ここで定義されたキー導出関数の典型的なアプリケーションでは、次の手順が含まれる場合があります。

1. Select a salt S and an iteration count c, as outlined in Section 4.

1.第4節で概説したように、塩Sと繰り返しカウントcを選択します。

2. Select a length in octets for the derived key, dkLen.
2.派生キー、dkLenためのオクテットの長さを選択します。

3. Apply the key derivation function to the password, the salt, the iteration count and the key length to produce a derived key.

3.パスワード、塩、反復回数および派生鍵を生成するための鍵の長さに鍵導出関数を適用します。

4. Output the derived key.
4.出力派生キー。

Any number of keys may be derived from a password by varying the salt, as described in Section 3.

第3節で説明したように、キーの任意の数は、塩を変えることによって、パスワードに由来してもよいです。

5.1 PBKDF1
5.1 PBKDF1

PBKDF1 applies a hash function, which shall be MD2 [6], MD5 [19] or SHA-1 [18], to derive keys. The length of the derived key is bounded by the length of the hash function output, which is 16 octets for MD2 and MD5 and 20 octets for SHA-1. PBKDF1 is compatible with the key derivation process in PKCS #5 v1.5.

PBKDF1は、キーを導出するために、MD2 [6]、MD5 [19]またはSHA-1 [18]とするハッシュ関数を適用します。導出鍵の長さは、MD2とMD5のために16オクテットとSHA-1の20オクテットであるハッシュ関数の出力の長さによって制限されます。 PBKDF1は、PKCS#5 V1.5における鍵導出プロセスと互換性があります。

PBKDF1 is recommended only for compatibility with existing applications since the keys it produces may not be large enough for some applications.

それが生成するキーは、いくつかの用途のために十分な大きさではないかもしれないので、PBKDF1のみを既存のアプリケーションとの互換性のために推奨されます。

PBKDF1 (P, S, c, dkLen)

PBKDF1(P、S、C、dkLen)

Options: Hash underlying hash function

オプション:ハッシュハッシュ関数の基礎となります

Input: P password, an octet string S salt, an eight-octet string c iteration count, a positive integer dkLen intended length in octets of derived key, a positive integer, at most 16 for MD2 or MD5 and 20 for SHA-1

入力:Pパスワードは、オクテットストリングS塩、8オクテット列cの繰り返し回数は、正の整数dkLenは、SHA-1のための最もMD2またはMD5のために16及び20で導出鍵、正の整数のオクテットの長さを意図しました

Output: DK derived key, a dkLen-octet string

出力:DK派生キー、dkLenオクテット文字列

Steps:

ステップ:

1. If dkLen > 16 for MD2 and MD5, or dkLen > 20 for SHA-1, output "derived key too long" and stop.

1 SHA-1、出力用MD2およびMD5、またはdkLen> 20 dkLen> 16 "由来キーが長すぎる" と停止します。

2. Apply the underlying hash function Hash for c iterations to the concatenation of the password P and the salt S, then extract the first dkLen octets to produce a derived key DK:

2.導出鍵DKを生成する第dkLenオクテットを抽出し、次に、パスワードPの連結及び塩SとCの反復のための基礎となるハッシュ関数Hashを適用します。

                   T_1 = Hash (P || S) ,
                   T_2 = Hash (T_1) ,
                   ...
                   T_c = Hash (T_{c-1}) ,
                   DK = Tc<0..dkLen-1>
        
3. Output the derived key DK.
3.出力派生キーDK。
5.2 PBKDF2
5.2 PBKDF2

PBKDF2 applies a pseudorandom function (see Appendix B.1 for an example) to derive keys. The length of the derived key is essentially unbounded. (However, the maximum effective search space for the derived key may be limited by the structure of the underlying pseudorandom function. See Appendix B.1 for further discussion.) PBKDF2 is recommended for new applications.

PBKDF2は、鍵を導出するために(例えば、付録B.1を参照してください)擬似ランダム関数を適用します。導出鍵の長さは、本質的に無制限です。 (ただし、派生キーの最大有効探索空間は、基礎となる擬似ランダム機能の構造によって制限される場合があります。さらなる議論については、付録B.1を参照してください。)PBKDF2は、新しいアプリケーションのために推奨されます。

PBKDF2 (P, S, c, dkLen)

PBKDF2(P、S、C、dkLen)

Options: PRF underlying pseudorandom function (hLen denotes the length in octets of the pseudorandom function output)

オプション:PRF基礎となる擬似ランダム関数(さhLenは、擬似ランダム関数の出力のオクテットの長さを示します)

Input: P password, an octet string S salt, an octet string c iteration count, a positive integer dkLen intended length in octets of the derived key, a positive integer, at most (2^32 - 1) * hLen

入力: - さhLen * Pパスワード、オクテットストリングS塩、オクテットストリングのC反復カウント、正の整数dkLen(1 2 ^ 32)最大で、派生鍵、正の整数のオクテットの長さを意図しました

Output: DK derived key, a dkLen-octet string

出力:DK派生キー、dkLenオクテット文字列

Steps:

ステップ:

1. If dkLen > (2^32 - 1) * hLen, output "derived key too long" and stop.

1. dkLen>(2 ^ 32から1)した場合*さhLen、出力は "派生キーが長すぎる" と止めます。

2. Let l be the number of hLen-octet blocks in the derived key, rounding up, and let r be the number of octets in the last block:

2. lは切り上げ、派生キーにさhLenオクテットブロックの数とし、rは最後のブロックにオクテットの数とします。

                   l = CEIL (dkLen / hLen) ,
                   r = dkLen - (l - 1) * hLen .
        

Here, CEIL (x) is the "ceiling" function, i.e. the smallest integer greater than, or equal to, x.

ここで、CEIL(x)は「天井」機能、すなわち最小より大きい整数、またはそれに等しい、Xです。

3. For each block of the derived key apply the function F defined below to the password P, the salt S, the iteration count c, and the block index to compute the block:

導出鍵の各ブロックについて3. Fは、パスワードP、塩S、繰り返し回数cに以下に定義する機能、及びブロックを計算するためのブロックインデックスを適用します。

                   T_1 = F (P, S, c, 1) ,
                   T_2 = F (P, S, c, 2) ,
                   ...
                   T_l = F (P, S, c, l) ,
        

where the function F is defined as the exclusive-or sum of the first c iterates of the underlying pseudorandom function PRF applied to the password P and the concatenation of the salt S and the block index i:

関数Fは、PRFがパスワードPに印加される基礎となる擬似ランダム関数と塩Sの連結及びブロックインデックスiの最初のC反復の排他的論理和の合計として定義されます。

F (P, S, c, i) = U_1 \xor U_2 \xor ... \xor U_c

F(P、S、C、I)= U_1 \ XOR U_2 \ XOR ... \ XOR U_c

where

どこ

                   U_1 = PRF (P, S || INT (i)) ,
                   U_2 = PRF (P, U_1) ,
                   ...
                   U_c = PRF (P, U_{c-1}) .
        

Here, INT (i) is a four-octet encoding of the integer i, most significant octet first.

ここで、INT(i)は、最初の整数I、最も重要なオクテットの4オクテットの符号化です。

4. Concatenate the blocks and extract the first dkLen octets to produce a derived key DK:

4.ブロックを連結し、導出鍵DKを生成する第dkLenオクテットを抽出します。

DK = T_1 || T_2 || ... || T_l<0..r-1>

DK = T_1 || T_2 || ... || T_L <0..r-1>

5. Output the derived key DK.
5.出力派生キーDK。

Note. The construction of the function F follows a "belt-and-suspenders" approach. The iterates U_i are computed recursively to remove a degree of parallelism from an opponent; they are exclusive-ored together to reduce concerns about the recursion degenerating into a small set of values.

注意。関数Fの構成は、「ベルト・アンド・サスペンダー」アプローチに従います。反復はU_iは、相手からの並列度を除去するために再帰的に計算されます。彼らは排他的論理和値の小さなセットに再帰変性の懸念を軽減するために一緒にされています。

6. Encryption Schemes
6.暗号化方式

An encryption scheme, in the symmetric setting, consists of an encryption operation and a decryption operation, where the encryption operation produces a ciphertext from a message under a key, and the decryption operation recovers the message from the ciphertext under the same key. In a password-based encryption scheme, the key is a password.

暗号方式は、対称的な設定では、暗号化操作と暗号化操作はキーの下のメッセージから暗号文を生成し、復号化操作が同じキーで暗号文からメッセージを回復する復号化操作からなります。パスワードベースの暗号化方式では、キーがパスワードです。

A typical application of a password-based encryption scheme is a private-key protection method, where the message contains private-key information, as in PKCS #8. The encryption schemes defined here would be suitable encryption algorithms in that context.

パスワードベースの暗号化方式の代表的なアプリケーションは、メッセージがPKCS#8のように、秘密鍵の情報が含まれている秘密鍵保護方法、です。ここで定義された暗号化方式は、そのコンテキストで適切な暗号化アルゴリズムになります。

Two schemes are specified in this section: PBES1 and PBES2. PBES2 is recommended for new applications; PBES1 is included only for compatibility with existing applications, and is not recommended for new applications.

PBES1とPBES2:二つの方式が、このセクションで指定されています。 PBES2は、新しいアプリケーションのために推奨されます。 PBES1は、既存のアプリケーションとの互換性のために含まれ、そして新しいアプリケーションのために推奨されていません。

6.1 PBES1
6.1 PBES1

PBES1 combines the PBKDF1 function (Section 5.1) with an underlying block cipher, which shall be either DES [15] or RC2(tm) [21] in CBC mode [16]. PBES1 is compatible with the encryption scheme in PKCS #5 v1.5.

PBES1はDES [15]またはCBCモードでRC2(商標)[21] [16]のいずれかでなければならない根本的なブロック暗号でPBKDF1機能(セクション5.1)を組み合わせました。 PBES1は、PKCS#5バージョン1.5での暗号化方式と互換性があります。

PBES1 is recommended only for compatibility with existing applications, since it supports only two underlying encryption schemes, each of which has a key size (56 or 64 bits) that may not be large enough for some applications.

それはいくつかの用途のために十分な大きさではないかもしれないキーのサイズ(56ビットまたは64ビット)をそれぞれ有する2つだけの基礎となる暗号化方式をサポートしているのでPBES1は、唯一の既存のアプリケーションとの互換性のために推奨されます。

6.1.1 Encryption Operation
6.1.1暗号化操作

The encryption operation for PBES1 consists of the following steps, which encrypt a message M under a password P to produce a ciphertext C:

PBES1の暗号化操作は、暗号文Cを生成するパスワードPの下のメッセージMを暗号化し、以下のステップ、から構成されています。

1. Select an eight-octet salt S and an iteration count c, as outlined in Section 4.

1.第4節で概説したように、8オクテット塩Sと繰り返しカウントcを選択します。

2. Apply the PBKDF1 key derivation function (Section 5.1) to the password P, the salt S, and the iteration count c to produce at derived key DK of length 16 octets:

2. PBKDF1鍵導出関数パスワードPに(セクション5.1)、塩S、及び長さ16オクテットの導出鍵DKに生成する反復回数Cを適用

DK = PBKDF1 (P, S, c, 16) .

DK = PBKDF1(P、S、C、16)。

3. Separate the derived key DK into an encryption key K consisting of the first eight octets of DK and an initialization vector IV consisting of the next eight octets:

3. DKと次の8つのオクテットからなる初期ベクトルIVの最初の8つのオクテットからなる暗号鍵Kに導出鍵DKを分離:

                 K   = DK<0..7> ,
                 IV  = DK<8..15> .
        

4. Concatenate M and a padding string PS to form an encoded message EM:

4.を連結Mおよびパディング列PSは、符号化されたメッセージEMを形成します。

EM = M || PS ,

EM = M || PS、

where the padding string PS consists of 8-(||M|| mod 8) octets each with value 8-(||M|| mod 8). The padding string PS will satisfy one of the following statements:

パディング列PSは、8から成る場合(|| M || MOD 8)(|| M || MOD 8)値8-と各オクテット。パディング文字列PSは、以下のステートメントのいずれかを満たすことになります。

                 PS = 01, if ||M|| mod 8 = 7 ;
                 PS = 02 02, if ||M|| mod 8 = 6 ;
                 ...
                 PS = 08 08 08 08 08 08 08 08, if ||M|| mod 8 = 0.
        

The length in octets of the encoded message will be a multiple of eight and it will be possible to recover the message M unambiguously from the encoded message. (This padding rule is taken from RFC 1423 [3].)

符号化されたメッセージのオクテットの長さが8の倍数となり、コード化されたメッセージから明白にメッセージMを回復することが可能となります。 (このパディング規則は、RFC 1423から取られる[3]。)

5. Encrypt the encoded message EM with the underlying block cipher (DES or RC2) in cipher block chaining mode under the encryption key K with initialization vector IV to produce the ciphertext C. For DES, the key K shall be considered as a 64-bit encoding of a 56-bit DES key with parity bits ignored (see [9]). For RC2, the "effective key bits" shall be 64 bits.

5.暗号化DESのための暗号文Cを生成するための初期ベクトルIVと暗号鍵Kの下の暗号ブロック連鎖モードでは、基礎となるブロック暗号(DESまたはRC2)でエンコードされたメッセージEM、鍵Kを64とみなします無視されたパリティビットと56ビットDES鍵のビット符号化([9]参照)。 RC2については、「効果的なキーのビットが」64ビットでなければなりません。

6. Output the ciphertext C.
6.出力暗号文C.

The salt S and the iteration count c may be conveyed to the party performing decryption in an AlgorithmIdentifier value (see Appendix A.3).

塩Sと繰り返しカウントcが(付録A.3を参照)のAlgorithmIdentifier値で復号化を行う者に伝えることができます。

6.1.2 Decryption Operation
6.1.2復号化操作

The decryption operation for PBES1 consists of the following steps, which decrypt a ciphertext C under a password P to recover a message M:

PBES1の復号動作は、メッセージMを回復するためにパスワードPの下で暗号文Cを復号以下のステップ、から構成されています。

1. Obtain the eight-octet salt S and the iteration count c.
1. 8オクテットの塩Sと繰り返しカウントcを取得します。

2. Apply the PBKDF1 key derivation function (Section 5.1) to the password P, the salt S, and the iteration count c to produce a derived key DK of length 16 octets:

2. PBKDF1鍵導出関数パスワードPに(セクション5.1)、塩S、及び長さ16オクテットの導出鍵DKを生成するために反復回数Cを適用

DK = PBKDF1 (P, S, c, 16)

DK = PBKDF1(P、S、C、16)

3. Separate the derived key DK into an encryption key K consisting of the first eight octets of DK and an initialization vector IV consisting of the next eight octets:

3. DKと次の8つのオクテットからなる初期ベクトルIVの最初の8つのオクテットからなる暗号鍵Kに導出鍵DKを分離:

                 K = DK<0..7> ,
                 IV  = DK<8..15> .
        

4. Decrypt the ciphertext C with the underlying block cipher (DES or RC2) in cipher block chaining mode under the encryption key K with initialization vector IV to recover an encoded message EM. If the length in octets of the ciphertext C is not a multiple of eight, output "decryption error" and stop.

前記エンコードされたメッセージEMを回復するための初期ベクトルIVと暗号鍵Kの下で暗号ブロック連鎖モードでは、基礎となるブロック暗号(DESまたはRC2)を用いて暗号文Cを復号化。暗号文Cのオクテットの長さが8の倍数でない場合は、出力「解読エラー」と止めます。

5. Separate the encoded message EM into a message M and a padding string PS:

5.メッセージM及びパディング列PSにエンコードされたメッセージEMを分離:

EM = M || PS ,

EM = M || PS、

where the padding string PS consists of some number psLen octets each with value psLen, where psLen is between 1 and 8. If it is not possible to separate the encoded message EM in this manner, output "decryption error" and stop.

パディング列PSはpsLenは1と8との間にある値psLen、といくつかの数psLenオクテットそれぞれから成る場合には、このように、出力「復号エラー」コード化されたメッセージEMを分離し、停止することができない場合。

6. Output the recovered message M.
6.出力回収メッセージM.
6.2 PBES2
6.2 PBES2

PBES2 combines a password-based key derivation function, which shall be PBKDF2 (Section 5.2) for this version of PKCS #5, with an underlying encryption scheme (see Appendix B.2 for examples). The key length and any other parameters for the underlying encryption scheme depend on the scheme.

PBES2は、基礎となる暗号化方式(例については、付録B.2を参照)で、PKCS#5のこのバージョンのためのPBKDF2(セクション5.2)しなければならないパスワードベースのキー派生関数を、兼ね備えています。キーの長さと基本的な暗号化方式のための他のパラメータは、スキームに依存しています。

PBES2 is recommended for new applications.

PBES2は、新しいアプリケーションのために推奨されます。

6.2.1 Encryption Operation
6.2.1暗号化操作

The encryption operation for PBES2 consists of the following steps, which encrypt a message M under a password P to produce a ciphertext C, applying a selected key derivation function KDF and a selected underlying encryption scheme:

PBES2の暗号化操作は、選択された鍵導出関数KDFと選択された基礎となる暗号方式を適用し、暗号文Cを生成するパスワードPの下で、メッセージMを暗号化し、以下のステップ、から構成されています。

1. Select a salt S and an iteration count c, as outlined in Section 4.

1.第4節で概説したように、塩Sと繰り返しカウントcを選択します。

2. Select the length in octets, dkLen, for the derived key for the underlying encryption scheme.

2.基本的な暗号化方式の派生キーのオクテットの長さ、dkLenを、選択します。

3. Apply the selected key derivation function to the password P, the salt S, and the iteration count c to produce a derived key DK of length dkLen octets:

3.パスワードP、塩S、長さdkLenオクテットの派生キーDKを生成するために、反復回数cに選択された鍵導出関数を適用します。

DK = KDF (P, S, c, dkLen) .

DK = KDF(P、S、C、dkLen)。

4. Encrypt the message M with the underlying encryption scheme under the derived key DK to produce a ciphertext C. (This step may involve selection of parameters such as an initialization vector and padding, depending on the underlying scheme.)

前記暗号化暗号文Cを生成するために派生鍵DKの下の基礎となる暗号化方式を使用してメッセージM(このステップは、下層の方式に応じて、そのような初期化ベクトル及びパディングのようなパラメータの選択を含んでもよいです。)

5. Output the ciphertext C.
5.出力暗号文C.

The salt S, the iteration count c, the key length dkLen, and identifiers for the key derivation function and the underlying encryption scheme may be conveyed to the party performing decryption in an AlgorithmIdentifier value (see Appendix A.4).

塩S、繰り返し回数C、鍵長dkLen、および鍵導出関数の識別子とその下の暗号化方式は、のAlgorithmIdentifier値で復号化を行う者に伝えることができる(付録A.4を参照)。

6.2.2 Decryption Operation
6.2.2復号化操作

The decryption operation for PBES2 consists of the following steps, which decrypt a ciphertext C under a password P to recover a message M:

PBES2の復号動作は、メッセージMを回復するためにパスワードPの下で暗号文Cを復号以下のステップ、から構成されています。

1. Obtain the salt S for the operation.
1.操作のための塩Sを取得します。
2. Obtain the iteration count c for the key derivation function.
2.鍵導出関数のための反復回数cを取得します。

3. Obtain the key length in octets, dkLen, for the derived key for the underlying encryption scheme.

3.基本的な暗号化方式の派生キーのために、dkLenをオクテットでキーの長さを取得します。

4. Apply the selected key derivation function to the password P, the salt S, and the iteration count c to produce a derived key DK of length dkLen octets:

4.パスワードP、塩S、長さdkLenオクテットの派生キーDKを生成するために、反復回数cに選択された鍵導出関数を適用します。

DK = KDF (P, S, c, dkLen) .

DK = KDF(P、S、C、dkLen)。

5. Decrypt the ciphertext C with the underlying encryption scheme under the derived key DK to recover a message M. If the decryption function outputs "decryption error," then output "decryption error" and stop.

5.メッセージM.復号機能出力した場合、「復号エラー」、出力「復号エラー」を回復し、停止する派生鍵DKの下の基礎となる暗号方式と暗号文Cを復号化。

6. Output the recovered message M.
6.出力回収メッセージM.
7. Message Authentication Schemes
7.メッセージ認証スキーム

A message authentication scheme consists of a MAC (message authentication code) generation operation and a MAC verification operation, where the MAC generation operation produces a message authentication code from a message under a key, and the MAC verification operation verifies the message authentication code under the same key. In a password-based message authentication scheme, the key is a password.

メッセージ認証方式は、MAC(メッセージ認証コード)生成動作とMAC生成動作は、キーの下のメッセージからメッセージ認証コードを生成し、MAC検証動作は、下のメッセージ認証コードを検証MAC検証動作、から成り同じキー。パスワードベースのメッセージ認証方式では、キーがパスワードです。

One scheme is specified in this section: PBMAC1.

PBMAC1:一つのスキームは、このセクションで指定されています。

7.1 PBMAC1
7.1 PBMAC1

PBMAC1 combines a password-based key derivation function, which shall be PBKDF2 (Section 5.2) for this version of PKCS #5, with an underlying message authentication scheme (see Appendix B.3 for an example). The key length and any other parameters for the underlying message authentication scheme depend on the scheme.

PBMAC1は、基礎となるメッセージ認証スキーム(例えば、付録B.3を参照)を用いて、PKCS#5のこのバージョンのPBKDF2(セクション5.2)でなければならないパスワードに基づく鍵導出関数を組み合わせます。鍵の長さとその下のメッセージ認証方式のための任意の他のパラメータは、スキームに依存します。

7.1.1 MAC Generation
7.1.1 MACジェネレーション

The MAC generation operation for PBMAC1 consists of the following steps, which process a message M under a password P to generate a message authentication code T, applying a selected key derivation function KDF and a selected underlying message authentication scheme:

PBMAC1のMAC生成動作は、選択された鍵導出関数KDFと選択された下層のメッセージ認証方式を適用する、メッセージ認証コードTを生成するパスワードPの下で、メッセージMを処理し、以下のステップ、から構成されています。

1. Select a salt S and an iteration count c, as outlined in Section 4.

1.第4節で概説したように、塩Sと繰り返しカウントcを選択します。

2. Select a key length in octets, dkLen, for the derived key for the underlying message authentication function.

2.基本的なメッセージ認証機能の派生キーのために、dkLenをオクテットでキーの長さを選択します。

3. Apply the selected key derivation function to the password P, the salt S, and the iteration count c to produce a derived key DK of length dkLen octets:

3.パスワードP、塩S、長さdkLenオクテットの派生キーDKを生成するために、反復回数cに選択された鍵導出関数を適用します。

DK = KDF (P, S, c, dkLen) .

DK = KDF(P、S、C、dkLen)。

4. Process the message M with the underlying message authentication scheme under the derived key DK to generate a message authentication code T.

4.プロセス導出鍵DKの下の基礎となるメッセージ認証方式のメッセージMは、メッセージ認証コードTを生成します

5. Output the message authentication code T.
前記出力メッセージ認証コードT.

The salt S, the iteration count c, the key length dkLen, and identifiers for the key derivation function and underlying message authentication scheme may be conveyed to the party performing verification in an AlgorithmIdentifier value (see Appendix A.5).

塩S、繰り返し回数C、鍵長dkLen、および鍵導出関数の識別子とその下のメッセージ認証方式は、のAlgorithmIdentifier値で検証を行う者に伝えることができる(付録A.5を参照)。

7.1.2 MAC Verification
7.1.2 MAC検証

The MAC verification operation for PBMAC1 consists of the following steps, which process a message M under a password P to verify a message authentication code T:

PBMAC1のMAC検証動作は、メッセージ認証コードTを検証するパスワードPの下のメッセージMを処理し、以下のステップ、から構成されています。

1. Obtain the salt S and the iteration count c.
1.塩Sと繰り返しカウントcを取得します。

2. Obtain the key length in octets, dkLen, for the derived key for the underlying message authentication scheme.

2.基本的なメッセージ認証スキームの派生キーのため、dkLenをオクテットでキーの長さを取得します。

3. Apply the selected key derivation function to the password P, the salt S, and the iteration count c to produce a derived key DK of length dkLen octets:

3.パスワードP、塩S、長さdkLenオクテットの派生キーDKを生成するために、反復回数cに選択された鍵導出関数を適用します。

DK = KDF (P, S, c, dkLen) .

DK = KDF(P、S、C、dkLen)。

4. Process the message M with the underlying message authentication scheme under the derived key DK to verify the message authentication code T.

4.プロセス導出鍵DKの下の基礎となるメッセージ認証方式のメッセージMは、メッセージ認証コードTを検証します

5. If the message authentication code verifies, output "correct"; else output "incorrect."

前記メッセージ認証コードを検証する場合、出力は「正しいです」。他の出力「が正しくありません。」

8. Security Considerations
8.セキュリティの考慮事項

Password-based cryptography is generally limited in the security that it can provide, particularly for methods such as those defined in this document where off-line password search is possible. While the use of salt and iteration count can increase the complexity of attack (see Section 4 for recommendations), it is essential that passwords are selected well, and relevant guidelines (e.g., [17]) should be taken into account. It is also important that passwords be protected well if stored.

パスワードベースの暗号化は、一般に、それは特に、オフラインパスワード検索が可能であり、この文書で定義されたもののような方法のために、提供することができるセキュリティ制限されます。塩と反復回数の使用は(推奨事項については、第4章を参照)攻撃の複雑さを増すことができますが、パスワードがうまく選択されていることが不可欠であり、関連するガイドライン(例えば、[17])が考慮されるべきです。保存された場合は、パスワードが十分に保護することも重要です。

In general, different keys should be derived from a password for different uses to minimize the possibility of unintended interactions. For password-based encryption with a single algorithm, a random salt is sufficient to ensure that different keys will be produced. In certain other situations, as outlined in Section 4, a structured salt is necessary. The recommendations in Section 4 should thus be taken into account when selecting the salt value.

一般的に、異なるキーが意図しない相互作用の可能性を最小限にするために異なる用途のためのパスワードから導出されるべきです。単一のアルゴリズムでパスワードベースの暗号化のために、ランダムな塩は異なるキーが生成されることを保証するのに十分です。セクション4に概説されるように特定の他の状況では、構造化された塩が必要です。ソルト値を選択するとき、セクション4の推奨事項は、このように考慮されるべきです。

9. Author's Address
9.著者のアドレス

Burt Kaliski RSA Laboratories 20 Crosby Drive Bedford, MA 01730 USA

バート・カリスキーRSA Laboratories社20クロスビー・ドライブベッドフォード、MA 01730 USA

EMail: bkaliski@rsasecurity.com

メールアドレス:bkaliski@rsasecurity.com

APPENDICES

付録

A. ASN.1 Syntax

A. ASN.1構文

This section defines ASN.1 syntax for the key derivation functions, the encryption schemes, the message authentication scheme, and supporting techniques. The intended application of these definitions includes PKCS #8 and other syntax for key management, encrypted data, and integrity-protected data. (Various aspects of ASN.1 are specified in several ISO/IEC standards [9][10][11][12][13][14].)

このセクションでは、キー導出関数、暗号化方式、メッセージ認証方式、及び支持技術のためのASN.1構文を定義します。これらの定義の意図する用途には、PKCS#8と鍵管理、暗号化されたデータ、および整合性保護されたデータのための他の構文が含まれています。 (ASN.1の様々な態様は、いくつかのISO / IEC規格で規定されている[9] [10] [11] [12] [13] [14])。

The object identifier pkcs-5 identifies the arc of the OID tree from which the PKCS #5-specific OIDs in this section are derived:

オブジェクト識別子PKCS-5は、このセクションのPKCS#5固有のOIDが由来するOIDツリーのアークを識別する。

   rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) 113549}
   pkcs OBJECT IDENTIFIER   ::= {rsadsi 1}
   pkcs-5 OBJECT IDENTIFIER ::= {pkcs 5}
        

A.1 PBKDF1

A.1 PBKDF1

No object identifier is given for PBKDF1, as the object identifiers for PBES1 are sufficient for existing applications and PBKDF2 is recommended for new applications.

PBES1のためのオブジェクト識別子は、既存のアプリケーションには十分であるとPBKDF2は、新しいアプリケーションのために推奨されてませオブジェクト識別子は、PBKDF1のために与えられていません。

A.2 PBKDF2

A.2 PBKDF2

The object identifier id-PBKDF2 identifies the PBKDF2 key derivation function (Section 5.2).

オブジェクト識別子ID-PBKDF2はPBKDF2鍵導出関数(5.2節)を識別する。

   id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type PBKDF2-params:

AlgorithmIdentifierにこのOIDに関連したパラメータフィールドは型PBKDF2-のparamsを持っていなければなりません。

   PBKDF2-params ::= SEQUENCE {
       salt CHOICE {
           specified OCTET STRING,
           otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}
       },
       iterationCount INTEGER (1..MAX),
       keyLength INTEGER (1..MAX) OPTIONAL,
       prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT
       algid-hmacWithSHA1 }
        

The fields of type PKDF2-params have the following meanings:

タイプPKDF2-のparamsの分野には、以下の意味を持っています:

- salt specifies the salt value, or the source of the salt value. It shall either be an octet string or an algorithm ID with an OID in the set PBKDF2-SaltSources, which is reserved for future versions of PKCS #5.

- 塩は塩の値、または塩値のソースを指定します。これは、オクテットストリングまたはPKCS#5の将来のバージョンのために予約され、セットPBKDF2-SaltSourcesでOIDとアルゴリズムIDでなければならないのいずれか。

The salt-source approach is intended to indicate how the salt value is to be generated as a function of parameters in the algorithm ID, application data, or both. For instance, it may indicate that the salt value is produced from the encoding of a structure that specifies detailed information about the derived key as suggested in Section 4.1. Some of the information may be carried elsewhere, e.g., in the encryption algorithm ID. However, such facilities are deferred to a future version of PKCS #5.

塩ソースアプローチは、ソルト値がアルゴリズムIDのパラメータ、アプリケーションデータ、あるいはその両方の関数として生成する方法を示すことを意図しています。例えば、それは塩の価値が4.1節で示唆されるように誘導されたキーについての詳細な情報を指定する構造の符号化から製造されることを示すことができます。情報の一部は暗号化アルゴリズムIDに、例えば、他の場所で行うことができます。しかし、このような施設は、PKCS#5の将来のバージョンに延期されています。

In this version, an application may achieve the benefits mentioned in Section 4.1 by choosing a particular interpretation of the salt value in the specified alternative.

このバージョンでは、アプリケーションが指定した別の方法で塩値の特定の解釈を選択することにより、4.1節で述べた利点を達成することができます。

   PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... }
        

- iterationCount specifies the iteration count. The maximum iteration count allowed depends on the implementation. It is expected that implementation profiles may further constrain the bounds.

- iterationCountは、反復回数を指定します。許容される最大反復回数は、実装に依存します。実装プロファイルは、さらに範囲を制約することが期待されています。

- keyLength, an optional field, is the length in octets of the derived key. The maximum key length allowed depends on the implementation; it is expected that implementation profiles may further constrain the bounds. The field is provided for convenience only; the key length is not cryptographically protected. If there is concern about interaction between operations with different key lengths for a given salt (see Section 4.1), the salt should distinguish among the different key lengths.

- KEYLENGTH、オプションフィールドは、導出鍵のオクテットの長さです。許容される最大キー長は実装に依存します。実装プロファイルは、さらに範囲を制約することが期待されています。フィールドは便宜のためにのみ提供されます。キーの長さは、暗号で保護されていません。与えられた塩のために異なる鍵の長さと操作の間の相互作用が懸念される場合には(セクション4.1を参照)、塩は異なるキーの長さを区別すべきです。

- prf identifies the underlying pseudorandom function. It shall be an algorithm ID with an OID in the set PBKDF2-PRFs, which for this version of PKCS #5 shall consist of id-hmacWithSHA1 (see Appendix B.1.1) and any other OIDs defined by the application.

- PRFは、基礎となる擬似ランダム機能を識別します。これは、PKCS#5のこのバージョンのID-hmacWithSHA1(付録B.1.1を参照)、アプリケーションによって定義された任意の他のOIDで構成しなければならないセットPBKDF2-のPRFにおけるOIDとアルゴリズムIDでなければなりません。

      PBKDF2-PRFs ALGORITHM-IDENTIFIER ::=
          { {NULL IDENTIFIED BY id-hmacWithSHA1}, ... }
        

The default pseudorandom function is HMAC-SHA-1:

デフォルトの擬似ランダム関数は、HMAC-SHA-1であります:

      algid-hmacWithSHA1 AlgorithmIdentifier {{PBKDF2-PRFs}} ::=
          {algorithm id-hmacWithSHA1, parameters NULL : NULL}
        

A.3 PBES1

A.3 PBES1

Different object identifiers identify the PBES1 encryption scheme (Section 6.1) according to the underlying hash function in the key derivation function and the underlying block cipher, as summarized in the following table:

異なるオブジェクト識別子は、次の表にまとめたように、鍵導出関数とその下のブロック暗号における基礎となるハッシュ関数に従ってPBES1暗号化方式(6.1節)を同定します。

        Hash Function  Block Cipher      OID
             MD2           DES         pkcs-5.1
             MD2           RC2         pkcs-5.4
             MD5           DES         pkcs-5.3
             MD5           RC2         pkcs-5.6
            SHA-1          DES         pkcs-5.10
            SHA-1          RC2         pkcs-5.11
        
   pbeWithMD2AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 1}
   pbeWithMD2AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 4}
   pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3}
   pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6}
   pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10}
   pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11}
        

For each OID, the parameters field associated with the OID in an AlgorithmIdentifier shall have type PBEParameter:

各OIDのために、のAlgorithmIdentifierでOIDに関連付けられたパラメータフィールドは、タイプPBEParameterを持たなければなりません。

   PBEParameter ::= SEQUENCE {
       salt OCTET STRING (SIZE(8)),
       iterationCount INTEGER }
        

The fields of type PBEParameter have the following meanings:

型PBEParameterのフィールドは以下の意味があります。

- salt specifies the salt value, an eight-octet string.

- 塩は塩の値は、8オクテット文字列を指定します。

- iterationCount specifies the iteration count.

- iterationCountは、反復回数を指定します。

A.4 PBES2

A.4 PBES2

The object identifier id-PBES2 identifies the PBES2 encryption scheme (Section 6.2).

オブジェクト識別子ID-PBES2はPBES2暗号化方式(セクション6.2)を識別する。

   id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type PBES2-params:

AlgorithmIdentifierにこのOIDに関連したパラメータフィールドは型PBES2-のparamsを持っていなければなりません。

   PBES2-params ::= SEQUENCE {
       keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},
       encryptionScheme AlgorithmIdentifier {{PBES2-Encs}} }
        

The fields of type PBES2-params have the following meanings:

タイプPBES2-のparamsの分野には、以下の意味を持っています:

- keyDerivationFunc identifies the underlying key derivation function. It shall be an algorithm ID with an OID in the set PBES2-KDFs, which for this version of PKCS #5 shall consist of id-PBKDF2 (Appendix A.2).

- keyDerivationFuncは、基礎となる鍵導出関数を識別します。これは、PKCS#5のこのバージョンのID-PBKDF2(付録A.2)で構成する組PBES2-KDFsでOIDとアルゴリズムIDでなければなりません。

   PBES2-KDFs ALGORITHM-IDENTIFIER ::=
       { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
        

- encryptionScheme identifies the underlying encryption scheme. It shall be an algorithm ID with an OID in the set PBES2-Encs, whose definition is left to the application. Example underlying encryption schemes are given in Appendix B.2.

- encryptionSchemeは、基礎となる暗号化方式を識別します。これは、定義アプリケーションに任されているセットPBES2-ENCS、中OIDを持つアルゴリズムのIDでなければなりません。暗号化方式の基礎となる例は、付録B.2に記載されています。

   PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }
        

A.5 PBMAC1

A.5のPBMAC1

The object identifier id-PBMAC1 identifies the PBMAC1 message authentication scheme (Section 7.1).

オブジェクト識別子ID-PBMAC1はPBMAC1メッセージ認証スキーム(7.1節)を識別する。

   id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type PBMAC1-params:

AlgorithmIdentifierにこのOIDに関連したパラメータフィールドは型PBMAC1-のparamsを持っていなければなりません。

   PBMAC1-params ::=  SEQUENCE {
       keyDerivationFunc AlgorithmIdentifier {{PBMAC1-KDFs}},
       messageAuthScheme AlgorithmIdentifier {{PBMAC1-MACs}} }
        

The keyDerivationFunc field has the same meaning as the corresponding field of PBES2-params (Appendix A.4) except that the set of OIDs is PBMAC1-KDFs.

keyDerivationFuncフィールドは、OIDのセットがPBMAC1-KDFsであることを除いてPBES2-paramsは(付録A.4)の対応するフィールドと同じ意味を有します。

   PBMAC1-KDFs ALGORITHM-IDENTIFIER ::=
       { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
        

The messageAuthScheme field identifies the underlying message authentication scheme. It shall be an algorithm ID with an OID in the set PBMAC1-MACs, whose definition is left to the application. Example underlying encryption schemes are given in Appendix B.3.

messageAuthSchemeフィールドは、基本的なメッセージ認証スキームを識別します。これは、定義アプリケーションに任されているセットPBMAC1-MACは、中OIDを持つアルゴリズムのIDでなければなりません。暗号化方式の基礎となる例は、付録B.3に記載されています。

   PBMAC1-MACs ALGORITHM-IDENTIFIER ::= { ... }
        

B. Supporting Techniques

技術サポートB.

This section gives several examples of underlying functions and schemes supporting the password-based schemes in Sections 5, 6 and 7.

このセクションでは、セクション5、図6及び図7にパスワードベースのスキームを支持する基礎となる機能と方式のいくつかの例を与えます。

While these supporting techniques are appropriate for applications to implement, none of them is required to be implemented. It is expected, however, that profiles for PKCS #5 will be developed that specify particular supporting techniques.

これらの支援技術は実装するアプリケーションに適していますが、それらのどれを実装する必要がありません。しかしながら、PKCS#5のプロファイルが開発されることがそれは特定の支援技術を指定し、期待されています。

This section also gives object identifiers for the supporting techniques. The object identifiers digestAlgorithm and encryptionAlgorithm identify the arcs from which certain algorithm OIDs referenced in this section are derived:

このセクションでは、支援技術のためのオブジェクト識別子を提供します。オブジェクト識別子digestAlgorithmとencryptionAlgorithmこのセクションで参照される特定のアルゴリズムのOIDが由来するアークを特定します:

   digestAlgorithm OBJECT IDENTIFIER ::= {rsadsi 2}
   encryptionAlgorithm OBJECT IDENTIFIER ::= {rsadsi 3}
        

B.1 Pseudorandom functions

B.1擬似ランダム機能

An example pseudorandom function for PBKDF2 (Section 5.2) is HMAC-SHA-1.

PBKDF2(セクション5.2)のための例示的な擬似ランダム関数は、HMAC-SHA-1です。

B.1.1 HMAC-SHA-1

B.1.1 HMAC-SHA-1

HMAC-SHA-1 is the pseudorandom function corresponding to the HMAC message authentication code [7] based on the SHA-1 hash function [18]. The pseudorandom function is the same function by which the message authentication code is computed, with a full-length output. (The first argument to the pseudorandom function PRF serves as HMAC's "key," and the second serves as HMAC's "text." In the case of PBKDF2, the "key" is thus the password and the "text" is the salt.) HMAC-SHA-1 has a variable key length and a 20-octet (160-bit) output value.

HMAC-SHA-1 [7] SHA-1ハッシュ関数に基づいてHMACメッセージ認証コードに対応する擬似ランダム関数である[18]。擬似ランダム関数は、メッセージ認証コードは、完全長の出力と、計算されることにより、同様の機能です。 (擬似乱数関数PRFの最初の引数は「キー」HMACのように機能し、第二には、HMACのように機能する「テキスト」PBKDF2の場合には、「キー」は塩パスワードと「テキスト」であることです。) HMAC-SHA-1は、可変鍵長と20オクテット(160ビット)の出力値を有しています。

Although the length of the key to HMAC-SHA-1 is essentially unbounded, the effective search space for pseudorandom function outputs may be limited by the structure of the function. In particular, when the key is longer than 512 bits, HMAC-SHA-1 will first hash it to 160 bits. Thus, even if a long derived key consisting of several pseudorandom function outputs is produced from a key, the effective search space for the derived key will be at most 160 bits. Although the specific limitation for other key sizes depends on details of the HMAC construction, one should assume, to be conservative, that the effective search space is limited to 160 bits for other key sizes as well.

HMAC-SHA-1の鍵の長さは、本質的に無制限であるが、擬似ランダム関数の出力のための効果的な探索空間は、関数の構造によって制限され得ます。キーが長い512ビット未満である場合、特に、HMAC-SHA-1は、第1の160ビットにそれをハッシュ化します。したがって、いくつかの擬似ランダム関数の出力からなる長い導出鍵は、鍵から生成された場合でも、派生鍵のための有効な探索空間は最大で160ビットとなります。他の鍵サイズに特異的な制限がHMAC構造の詳細に依存するが、一方が有効な探索空間は、他のキーサイズを160ビットに限定されることは、保守的であることが、想定すべきです。

(The 160-bit limitation should not generally pose a practical limitation in the case of password-based cryptography, since the search space for a password is unlikely to be greater than 160 bits.)

(パスワードの探索空間が160ビットを超える可能性は低いので、160ビットの制限は、一般に、パスワードベースの暗号化の場合には実用的な制限を課すべきではありません。)

The object identifier id-hmacWithSHA1 identifies the HMAC-SHA-1 pseudorandom function:

オブジェクト識別子ID-hmacWithSHA1はHMAC-SHA-1擬似ランダム関数を識別する。

   id-hmacWithSHA1 OBJECT IDENTIFIER ::= {digestAlgorithm 7}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type NULL. This object identifier is employed in the object set PBKDF2-PRFs (Appendix A.2).

AlgorithmIdentifierにこのOIDに関連したパラメータフィールドは、タイプNULLを持たなければなりません。このオブジェクト識別子はPBKDF2-のPRF(付録A.2)設定オブジェクトで使用されています。

Note. Although HMAC-SHA-1 was designed as a message authentication code, its proof of security is readily modified to accommodate requirements for a pseudorandom function, under stronger assumptions.

注意。 HMAC-SHA-1メッセージ認証コードとして設計されたが、セキュリティのその証明が容易に強い仮定の下で、擬似ランダム関数の要件に適合するように修正されます。

A hash function may also meet the requirements of a pseudorandom function under certain assumptions. For instance, the direct application of a hash function to to the concatenation of the "key" and the "text" may be appropriate, provided that "text" has appropriate structure to prevent certain attacks. HMAC-SHA-1 is preferable, however, because it treats "key" and "text" as separate arguments and does not require "text" to have any structure.

ハッシュ関数は、一定の仮定の下で擬似ランダム機能の要件を満たすことがあります。例えば、「キー」と「テキスト」の連結のためにハッシュ関数の直接適用は、「テキスト」は、特定の攻撃を防ぐための適切な構造を有していることを条件とする、適切であり得ます。それは別の引数として「キー」と「テキスト」を扱い、任意の構造を有するように「テキスト」を必要としないため、HMAC-SHA-1が、しかし、好ましいです。

B.2 Encryption Schemes

B.2の暗号化方式

Example pseudorandom functions for PBES2 (Section 6.2) are DES-CBC-Pad, DES-EDE2-CBC-Pad, RC2-CBC-Pad, and RC5-CBC-Pad.

PBES2(セクション6.2)のための例示的な擬似ランダム関数は、DES-CBC-パッド、DES-EDE2-CBC-パッド、RC2-CBC-パッド、およびRC5-CBC-パッドです。

The object identifiers given in this section are intended to be employed in the object set PBES2-Encs (Appendix A.4).

このセクションで指定されたオブジェクト識別子はPBES2-ENCS(付録A.4)設定オブジェクトで使用されることが意図されます。

B.2.1 DES-CBC-Pad

B.2.1 DES-CBC-パッド

DES-CBC-Pad is single-key DES [15] in CBC mode [16] with the RFC 1423 padding operation (see Section 6.1.1). DES-CBC-Pad has an eight-octet encryption key and an eight-octet initialization vector. The key is considered as a 64-bit encoding of a 56-bit DES key with parity bits ignored.

DES-CBC-パッドは、RFC 1423パディング動作とCBCモードで単一キーDES [15] [16](セクション6.1.1を参照します)。 DES-CBC-パッドは8オクテットの暗号化キーと8オクテットの初期化ベクトルを持っています。キーは無視され、パリティビットを有する56ビットDES鍵の64ビットエンコーディングとして考えられています。

The object identifier desCBC (defined in the NIST/OSI Implementors' Workshop agreements) identifies the DES-CBC-Pad encryption scheme:

(NIST / OSI実装者ワークショップ契約で定義された)オブジェクト識別子DESCBCはDES-CBCパッド暗号化方式を識別する。

   desCBC OBJECT IDENTIFIER ::=
       {iso(1) identified-organization(3) oiw(14) secsig(3)
        algorithms(2) 7}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type OCTET STRING (SIZE(8)), specifying the initialization vector for CBC mode.

AlgorithmIdentifierこのOIDに関連付けられたパラメータフィールドは、CBCモードの初期化ベクトルを特定タイプオクテットSTRING(SIZE(8))でなければなりません。

B.2.2 DES-EDE3-CBC-Pad

B.2.2 DES-EDE3-CBC-パッド

DES-EDE3-CBC-Pad is three-key triple-DES in CBC mode [1] with the RFC 1423 padding operation. DES-EDE3-CBC-Pad has a 24-octet encryption key and an eight-octet initialization vector. The key is considered as the concatenation of three eight-octet keys, each of which is a 64-bit encoding of a 56-bit DES key with parity bits ignored.

DES-EDE3-CBC-パッドは、RFC 1423パディング動作に[1] CBCモードで三キートリプルDESです。 DES-EDE3-CBC-パッドは、24オクテットの暗号化キーと8オクテットの初期化ベクトルを持っています。キーは無視され、パリティビットを有する56ビットDES鍵の64ビット符号化でそれぞれが3〜8オクテットの鍵の連結として考えられています。

The object identifier des-EDE3-CBC identifies the DES-EDE3-CBC-Pad encryption scheme:

オブジェクト識別子DES-EDE3-CBCはDES-EDE3-CBCパッド暗号化方式を識別する。

   des-EDE3-CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 7}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type OCTET STRING (SIZE(8)), specifying the initialization vector for CBC mode.

AlgorithmIdentifierこのOIDに関連付けられたパラメータフィールドは、CBCモードの初期化ベクトルを特定タイプオクテットSTRING(SIZE(8))でなければなりません。

Note. An OID for DES-EDE3-CBC without padding is given in ANSI X9.52 [1]; the one given here is preferred since it specifies padding.

注意。パディング無しDES-EDE3-CBCのためのOIDは、ANSI X9.52 [1]に記載されています。それはパディングを指定しますので、ここで指定されたものが好ましいです。

B.2.3 RC2-CBC-Pad

B.2.3 RC2-CBC-パッド

RC2-CBC-Pad is the RC2(tm) encryption algorithm [21] in CBC mode with the RFC 1423 padding operation. RC2-CBC-Pad has a variable key length, from one to 128 octets, a separate "effective key bits" parameter from one to 1024 bits that limits the effective search space independent of the key length, and an eight-octet initialization vector.

RC2-CBC-パッドは、RFC 1423パディング動作とCBCモードでRC2(TM)暗号化アルゴリズム[21]です。 RC2-CBC-パッドは、キーの長さの効果的な探索空間の独立、8オクテットの初期化ベクトルを制限する1 1024ビットから1から128オクテット、別個の「有効なキービット」パラメータに、可変キーの長さを有しています。

The object identifier rc2CBC identifies the RC2-CBC-Pad encryption scheme:

オブジェクト識別子rc2CBCはRC2-CBC-パッド暗号化方式を識別します。

   rc2CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 2}
        

The parameters field associated with OID in an AlgorithmIdentifier shall have type RC2-CBC-Parameter:

AlgorithmIdentifierにOIDに関連付けられたパラメータフィールドは、タイプRC2-CBC-パラメータを持っていなければなりません。

   RC2-CBC-Parameter ::= SEQUENCE {
       rc2ParameterVersion INTEGER OPTIONAL,
       iv OCTET STRING (SIZE(8)) }
        

The fields of type RC2-CBCParameter have the following meanings:

タイプRC2-CBCParameterのフィールドは以下の意味があります。

- rc2ParameterVersion is a proprietary RSA Security Inc. encoding of the "effective key bits" for RC2. The following encodings are defined:

- rc2ParameterVersionはRC2のための「効果的なキービット」の独自のRSA Security Inc.のエンコーディングです。以下のエンコーディングが定義されています。

         Effective Key Bits         Encoding
                 40                    160
                 64                    120
                128                     58
               b >= 256                  b
        

If the rc2ParameterVersion field is omitted, the "effective key bits" defaults to 32. (This is for backward compatibility with certain very old implementations.)

rc2ParameterVersionフィールドが省略された場合、「効果的なキービット」32.デフォルトは(これは、特定の非常に古い実装との後方互換性のためのものです。)

- iv is the eight-octet initialization vector.

- IVは8オクテットの初期化ベクトルです。

B.2.4 RC5-CBC-Pad

B.2.4 RC5 - CBC - パッド

RC5-CBC-Pad is the RC5(tm) encryption algorithm [20] in CBC mode with a generalization of the RFC 1423 padding operation. This scheme is fully specified in [2]. RC5-CBC-Pad has a variable key length, from 0 to 256 octets, and supports both a 64-bit block size and a 128-bit block size. For the former, it has an eight-octet initialization vector, and for the latter, a 16-octet initialization vector. RC5-CBC-Pad also has a variable number of "rounds" in the encryption operation, from 8 to 127.

RC5-CBC-パッドは、RFC 1423パディング動作の一般化とCBCモードでRC5(TM)暗号化アルゴリズム[20]です。このスキームは、完全[2]で指定されています。 RC5-CBC-パッドは0 256オクテットから、可変キーの長さを有し、64ビットのブロック・サイズと、128ビットのブロックサイズの両方をサポートします。前者の場合、それは、8オクテットの初期化ベクトルを有し、後者は、16オクテットの初期化ベクトル。 RC5-CBC-パッドはまた、8から127に、暗号化動作における「ラウンド」の可変数を有します。

Note: The generalization of the padding operation is as follows. For RC5 with a 64-bit block size, the padding string is as defined in RFC 1423. For RC5 with a 128-bit block size, the padding string consists of 16-(||M|| mod 16) octets each with value 16-(||M|| mod 16).

注:次のようにパディング操作の一般化です。 64ビットのブロックサイズでRC5ため、パディング列が128ビットのブロックサイズでRC5は、RFC 1423で定義されているように、パディング列は16で構成され(|| M || MOD 16)の値を持つそれぞれのオクテット16-(M || || MOD 16)。

The object identifier rc5-CBC-PAD [2] identifies RC5-CBC-Pad encryption scheme:

オブジェクト識別子RC5-CBC-PAD [2] RC5-CBCパッド暗号化方式を識別する。

   rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9}
        

The parameters field associated with this OID in an AlgorithmIdentifier shall have type RC5-CBC-Parameters:

AlgorithmIdentifierにこのOIDに関連したパラメータフィールドは、タイプRC5-CBC-パラメータを持っていなければなりません。

   RC5-CBC-Parameters ::= SEQUENCE {
       version INTEGER {v1-0(16)} (v1-0),
       rounds INTEGER (8..127),
       blockSizeInBits INTEGER (64 | 128),
       iv OCTET STRING OPTIONAL }
        

The fields of type RC5-CBC-Parameters have the following meanings:

タイプRC5-CBC-パラメータのフィールドは以下の意味があります。

- version is the version of the algorithm, which shall be v1-0.

- バージョンはv1-0しなければならないアルゴリズムのバージョンです。

- rounds is the number of rounds in the encryption operation, which shall be between 8 and 127.

- ラウンドは、8と127の間でなければならない暗号化操作におけるラウンドの数です。

- blockSizeInBits is the block size in bits, which shall be 64 or 128.

- blockSizeInBitsは64または128でなければならないビットのブロックサイズです。

- iv is the initialization vector, an eight-octet string for 64-bit RC5 and a 16-octet string for 128-bit RC5. The default is a string of the appropriate length consisting of zero octets.

- IVは、初期化ベクトル、64ビットのRC5と128ビットのRC5 16オクテットストリングは8オクテットストリングです。デフォルトはゼロオクテットからなる適切な長さの文字列です。

B.3 Message Authentication Schemes

B.3メッセージ認証スキーム

An example message authentication scheme for PBMAC1 (Section 7.1) is HMAC-SHA-1.

PBMAC1(セクション7.1)のための例示的なメッセージ認証方式はHMAC-SHA-1です。

B.3.1 HMAC-SHA-1

B.3.1 HMAC-SHA-1

HMAC-SHA-1 is the HMAC message authentication scheme [7] based on the SHA-1 hash function [18]. HMAC-SHA-1 has a variable key length and a 20-octet (160-bit) message authentication code.

HMAC-SHA-1 [7] SHA-1ハッシュ関数[18]に基づいてHMACメッセージ認証方式です。 HMAC-SHA-1は、可変鍵長と20オクテット(160ビット)メッセージ認証コードを有しています。

The object identifier id-hmacWithSHA1 (see Appendix B.1.1) identifies the HMAC-SHA-1 message authentication scheme. (The object identifier is the same for both the pseudorandom function and the message authentication scheme; the distinction is to be understood by context.) This object identifier is intended to be employed in the object set PBMAC1-Macs (Appendix A.5).

オブジェクト識別子ID-hmacWithSHA1は(付録B.1.1参照)HMAC-SHA-1メッセージ認証方式を識別する。 (オブジェクト識別子は、擬似ランダム関数およびメッセージ認証方式の両方に対して同じであり、違いは、文脈によって理解されるべきである。)このオブジェクト識別子はPBMAC1-マック(付録A.5)設定オブジェクトで使用されることが意図されます。

C. ASN.1 Module

C. ASN.1モジュール

For reference purposes, the ASN.1 syntax in the preceding sections is presented as an ASN.1 module here.

参考のために、前のセクションのASN.1構文はここでASN.1モジュールとして提示されます。

-- PKCS #5 v2.0 ASN.1 Module -- Revised March 25, 1999

- PKCS#5バージョン2.0のASN.1モジュール - 1999年3月25日改訂

-- This module has been checked for conformance with the -- ASN.1 standard by the OSS ASN.1 Tools

- OSSのASN.1ツールによってASN.1標準 - このモジュールは、との適合性をチェックされています

PKCS5v2-0 {iso(1) member-body(2) us(840) rsadsi(113549) pkcs(1) pkcs-5(5) modules(16) pkcs5v2-0(1)}

PKCS5v2-0 {ISO(1)部材本体(2)米国(840)RSADSI(113549)PKCS(1)PKCS-5(5)モジュール(16)pkcs5v2-0(1)}

   DEFINITIONS ::= BEGIN
        

-- Basic object identifiers

- 基本的なオブジェクト識別子

   rsadsi OBJECT IDENTIFIER ::= {iso(1) member-body(2) us(840) 113549}
   pkcs OBJECT IDENTIFIER ::= {rsadsi 1}
        
   pkcs-5 OBJECT IDENTIFIER ::= {pkcs 5}
        

-- Basic types and classes

- 基本的なタイプとクラス

   AlgorithmIdentifier { ALGORITHM-IDENTIFIER:InfoObjectSet } ::=
     SEQUENCE {
       algorithm ALGORITHM-IDENTIFIER.&id({InfoObjectSet}),
       parameters ALGORITHM-IDENTIFIER.&Type({InfoObjectSet}
       {@algorithm}) OPTIONAL
   }
        
   ALGORITHM-IDENTIFIER ::= TYPE-IDENTIFIER
        

-- PBKDF2

- PBKDF2

   PBKDF2Algorithms ALGORITHM-IDENTIFIER ::=
       { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ...}
        
   id-PBKDF2 OBJECT IDENTIFIER ::= {pkcs-5 12}
        
   algid-hmacWithSHA1 AlgorithmIdentifier {{PBKDF2-PRFs}} ::=
       {algorithm id-hmacWithSHA1, parameters NULL : NULL}
        
   PBKDF2-params ::= SEQUENCE {
       salt CHOICE {
         specified OCTET STRING,
         otherSource AlgorithmIdentifier {{PBKDF2-SaltSources}}
       },
       iterationCount INTEGER (1..MAX),
       keyLength INTEGER (1..MAX) OPTIONAL,
       prf AlgorithmIdentifier {{PBKDF2-PRFs}} DEFAULT
       algid-hmacWithSHA1
   }
        
   PBKDF2-SaltSources ALGORITHM-IDENTIFIER ::= { ... }
        
   PBKDF2-PRFs ALGORITHM-IDENTIFIER ::=
       { {NULL IDENTIFIED BY id-hmacWithSHA1}, ... }
        

-- PBES1

- PBES1

   PBES1Algorithms ALGORITHM-IDENTIFIER ::= {
        

{PBEParameter IDENTIFIED BY pbeWithMD2AndDES-CBC} | {PBEParameter IDENTIFIED BY pbeWithMD2AndRC2-CBC} | {PBEParameter IDENTIFIED BY pbeWithMD5AndDES-CBC} | {PBEParameter IDENTIFIED BY pbeWithMD5AndRC2-CBC} | {PBEParameter IDENTIFIED BY pbeWithSHA1AndDES-CBC} | {PBEParameter IDENTIFIED BY pbeWithSHA1AndRC2-CBC}, ... }

{pbeWithMD2AndDES-CBC BY IDENTIFIED PBEParameter} | {pbeWithMD2AndRC2-CBC BY IDENTIFIED PBEParameter} | {PBEWithMD5AndDESは-CBC BY IDENTIFIED PBEParameter} | {pbeWithMD5AndRC2-CBC BY IDENTIFIED PBEParameter} | {pbeWithSHA1AndDES-CBC BY IDENTIFIED PBEParameter} | {pbeWithSHA1AndRC2-CBC BY IDENTIFIED PBEParameter}、...}

   pbeWithMD2AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 1}
   pbeWithMD2AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 4}
   pbeWithMD5AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 3}
   pbeWithMD5AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 6}
   pbeWithSHA1AndDES-CBC OBJECT IDENTIFIER ::= {pkcs-5 10}
   pbeWithSHA1AndRC2-CBC OBJECT IDENTIFIER ::= {pkcs-5 11}
        
   PBEParameter ::= SEQUENCE {
       salt OCTET STRING (SIZE(8)),
       iterationCount INTEGER
   }
        

-- PBES2

- PBES2

   PBES2Algorithms ALGORITHM-IDENTIFIER ::=
       { {PBES2-params IDENTIFIED BY id-PBES2}, ...}
        
   id-PBES2 OBJECT IDENTIFIER ::= {pkcs-5 13}
        
   PBES2-params ::= SEQUENCE {
       keyDerivationFunc AlgorithmIdentifier {{PBES2-KDFs}},
       encryptionScheme AlgorithmIdentifier {{PBES2-Encs}}
   }
        
   PBES2-KDFs ALGORITHM-IDENTIFIER ::=
       { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
        
   PBES2-Encs ALGORITHM-IDENTIFIER ::= { ... }
        

-- PBMAC1

- PBMAC1

   PBMAC1Algorithms ALGORITHM-IDENTIFIER ::=
       { {PBMAC1-params IDENTIFIED BY id-PBMAC1}, ...}
        
   id-PBMAC1 OBJECT IDENTIFIER ::= {pkcs-5 14}
        
   PBMAC1-params ::=  SEQUENCE {
       keyDerivationFunc AlgorithmIdentifier {{PBMAC1-KDFs}},
       messageAuthScheme AlgorithmIdentifier {{PBMAC1-MACs}}
        

}

   PBMAC1-KDFs ALGORITHM-IDENTIFIER ::=
       { {PBKDF2-params IDENTIFIED BY id-PBKDF2}, ... }
        
   PBMAC1-MACs ALGORITHM-IDENTIFIER ::= { ... }
        

-- Supporting techniques

- サポート技術

   digestAlgorithm OBJECT IDENTIFIER     ::= {rsadsi 2}
   encryptionAlgorithm OBJECT IDENTIFIER ::= {rsadsi 3}
        
   SupportingAlgorithms ALGORITHM-IDENTIFIER ::= {
       {NULL IDENTIFIED BY id-hmacWithSHA1} |
       {OCTET STRING (SIZE(8)) IDENTIFIED BY desCBC} |
       {OCTET STRING (SIZE(8)) IDENTIFIED BY des-EDE3-CBC} |
       {RC2-CBC-Parameter IDENTIFIED BY rc2CBC} |
       {RC5-CBC-Parameters IDENTIFIED BY rc5-CBC-PAD},
       ...
   }
        
   id-hmacWithSHA1 OBJECT IDENTIFIER ::= {digestAlgorithm 7}
        
   desCBC OBJECT IDENTIFIER ::=
       {iso(1) identified-organization(3) oiw(14) secsig(3)
        algorithms(2) 7} -- from OIW
        
   des-EDE3-CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 7}
        
   rc2CBC OBJECT IDENTIFIER ::= {encryptionAlgorithm 2}
        
   RC2-CBC-Parameter ::= SEQUENCE {
       rc2ParameterVersion INTEGER OPTIONAL,
       iv OCTET STRING (SIZE(8))
   }
        
   rc5-CBC-PAD OBJECT IDENTIFIER ::= {encryptionAlgorithm 9}
        
   RC5-CBC-Parameters ::= SEQUENCE {
       version INTEGER {v1-0(16)} (v1-0),
       rounds INTEGER (8..127),
       blockSizeInBits INTEGER (64 | 128),
       iv OCTET STRING OPTIONAL
   }
        

END

終わり

Intellectual Property Considerations

知的財産権に関する注意事項

RSA Security makes no patent claims on the general constructions described in this document, although specific underlying techniques may be covered. Among the underlying techniques, the RC5 encryption algorithm (Appendix B.2.4) is protected by U.S. Patents 5,724,428 [22] and 5,835,600 [23].

具体的な基盤となる技術が覆われていてもよいが、RSAセキュリティは、この文書に記載された一般的な構成には、特許請求の範囲を負いません。根底にある技術の中で、RC5暗号化アルゴリズム(付録B.2.4)は、米国特許5724428 [22]及び5835600 [23]によって保護されています。

RC2 and RC5 are trademarks of RSA Security.

RC2とRC5は、RSA Securityの商標です。

License to copy this document is granted provided that it is identified as RSA Security Inc. Public-Key Cryptography Standards (PKCS) in all material mentioning or referencing this document.

この文書をコピーするためのライセンスは、それがすべての重要な言及にRSA Security Inc.の公開鍵暗号規格(PKCS)として識別されていることを提供するか、この文書を参照して付与されます。

RSA Security makes no representations regarding intellectual property claims by other parties. Such determination is the responsibility of the user.

RSAセキュリティは、他の当事者による知的財産の請求に関していかなる表明も行いません。このような決意は、ユーザーの責任です。

Revision history

改訂履歴

Versions 1.0-1.3

バージョン1.0から1.3

Versions 1.0-1.3 were distributed to participants in RSA Data Security Inc.'s Public-Key Cryptography Standards meetings in February and March 1991.

バージョン1.0から1.3には、2月と1991年3月におけるRSAデータセキュリティ社の公開鍵暗号規格会議の参加者に配布しました。

Version 1.4

バージョン1.4

Version 1.4 was part of the June 3, 1991 initial public release of PKCS. Version 1.4 was published as NIST/OSI Implementors' Workshop document SEC-SIG-91-20.

バージョン1.4はPKCSの1991年6月3日、最初のパブリックリリースの一部でした。バージョン1.4は、NIST / OSI実装者ワークショップのドキュメントSEC-SIG-91から20として出版されました。

Version 1.5

バージョン1.5

Version 1.5 incorporated several editorial changes, including updates to the references and the addition of a revision history.

バージョン1.5は、参照への更新および改訂履歴の追加など、いくつかの編集上の変更を、組み込まれています。

Version 2.0

バージョン2.0

Version 2.0 incorporates major editorial changes in terms of the document structure, and introduces the PBES2 encryption scheme, the PBMAC1 message authentication scheme, and independent password-based key derivation functions. This version continues to support the encryption process in version 1.5.

バージョン2.0は、文書構造の面で主要な編集上の変更を組み込んだ、とPBES2暗号化方式、PBMAC1メッセージ認証方式、および独立したパスワードベースのキー派生機能を紹介します。このバージョンは、バージョン1.5での暗号化処理をサポートし続けています。

References

リファレンス

[1] American National Standard X9.52 - 1998, Triple Data Encryption Algorithm Modes of Operation. Working draft, Accredited Standards Committee X9, July 27, 1998.

[1]アメリカ国立標準X9.52 - 1998、運用のトリプルデータ暗号化アルゴリズムモード。ワーキングドラフト、認定基準委員会X9、1998年7月27日。

[2] Baldwin, R. and R. Rivest, "The RC5, RC5-CBC, RC5-CBC-Pad, and RC5-CTS Algorithms", RFC 2040, October 1996.

[2]ボールドウィン、R.及びR.リベスト、 "RC5、RC5-CBC、RC5-CBC-パッド、およびRC5-CTSアルゴリズム"、RFC 2040、1996年10月。

[3] Balenson, D., "Privacy Enhancement for Internet Electronic Mail: Part III: Algorithms, Modes, and Identifiers", RFC 1423, February 1993.

[3] Balenson、D.、 "インターネット電子メールのためのプライバシー増進:パートIII:アルゴリズム、モード、および識別子"、RFC 1423、1993年2月。

[4] S.M. Bellovin and M. Merritt. Encrypted key exchange: Password-based protocols secure against dictionary attacks. In Proceedings of the 1992 IEEE Computer Society Conference on Research in Security and Privacy, pages 72-84, IEEE Computer Society, 1992.

[4] S.M. Bellovin氏とM.メリット。暗号化キーの交換:辞書攻撃に対して安全なパスワードベースのプロトコル。セキュリティの研究に1992 IEEEコンピュータ学会の会議の議事録やプライバシー、ページ72-84、IEEEコンピュータ学会、1992。

[5] D. Jablon. Strong password-only authenticated key exchange. ACM Computer Communications Review, October 1996.

[5] D. Jablon。強力なパスワードのみのキー交換を認証されました。 ACMコンピュータコミュニケーションレビュー、1996年10月。

[6] Kaliski, B., "The MD2 Message-Digest Algorithm", RFC 1319, April 1992.

[6] Kaliski、B.、 "MD2メッセージダイジェストアルゴリズム"、RFC 1319、1992年4月。

[7] Krawczyk, H., Bellare, M. and R. Canetti, "HMAC: Keyed-Hashing for Message Authentication", RFC 2104, February 1997.

[7] Krawczyk、H.、ベラー、M。およびR.カネッティ、 "HMAC:メッセージ認証のための鍵付きハッシュ化"、RFC 2104、1997年2月。

[8] Robert Morris and Ken Thompson. Password security: A case history. Communications of the ACM, 22(11):594-597, November 1979.

[8]ロバート・モリスとケン・トンプソン。パスワードのセキュリティ:病歴。 ACM、22(11)の通信:594-597、1979年11月。

[9] ISO/IEC 8824-1:1995: Information technology - Abstract Syntax Notation One (ASN.1) - Specification of basic notation. 1995.

[9] ISO / IEC 8824から1:1995:情報技術 - 抽象構文記法1(ASN.1) - 基本的な記法の仕様。 1995。

[10] ISO/IEC 8824-1:1995/Amd.1:1995 Information technology - Abstract Syntax Notation One (ASN.1) - Specification of basic notation - Amendment 1 - Rules of extensibility. 1995.

[10] ISO / IEC 8824から1:1995 / Amd.1:1995情報技術 - 抽象構文記法1(ASN.1) - 基本的な表記法の仕様 - 改正1 - 拡張のルール。 1995。

[11] ISO/IEC 8824-2:1995 Information technology - Abstract Syntax Notation One (ASN.1) - Information object specification. 1995.

[11] ISO / IEC 8824から2:1995情報技術 - 抽象構文記法1(ASN.1) - 情報オブジェクトの仕様。 1995。

[12] ISO/IEC 8824-2:1995/Amd.1:1995 Information technology - Abstract Syntax Notation One (ASN.1) - Information object specification - Amendment 1 - Rules of extensibility. 1995.

[12] ISO / IEC 8824から2:1995 / Amd.1:1995情報技術 - 抽象構文記法1(ASN.1) - 情報オブジェクトの仕様 - 改正1 - 拡張のルール。 1995。

[13] ISO/IEC 8824-3:1995 Information technology - Abstract Syntax Notation One (ASN.1) - Constraint specification. 1995.

[13] ISO / IEC 8824から3:1995情報技術 - 抽象構文記法1(ASN.1) - 制約仕様。 1995。

[14] ISO/IEC 8824-4:1995 Information technology - Abstract Syntax Notation One (ASN.1) - Parameterization of ASN.1 specifications. 1995.

[14] ISO / IEC 8824から4:1995情報技術 - 抽象構文記法1(ASN.1) - ASN.1仕様のパラメータ化。 1995。

[15] National Institute of Standards and Technology (NIST). FIPS PUB 46-2: Data Encryption Standard. December 30, 1993.

[15]米国国立標準技術研究所(NIST)。 FIPS PUBの46-2:データ暗号化規格。 1993年12月30日。

[16] National Institute of Standards and Technology (NIST). FIPS PUB 81: DES Modes of Operation. December 2, 1980.

[16]米国国立標準技術研究所(NIST)。 FIPS PUBの81:DES運転モード。 1980年12月2日。

[17] National Institute of Standards and Technology (NIST). FIPS PUB 112: Password Usage. May 30, 1985.

[17]米国国立標準技術研究所(NIST)。 FIPS PUBの112:パスワードの使用。 1985年5月30日。

[18] National Institute of Standards and Technology (NIST). FIPS PUB 180-1: Secure Hash Standard. April 1994.

[18]米国国立標準技術研究所(NIST)。 FIPS PUB 180-1の:セキュアハッシュ標準。 1994年4月。

[19] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.

[19]リベスト、R.、 "MD5メッセージダイジェストアルゴリズム"、RFC 1321、1992年4月。

[20] R.L. Rivest. The RC5 encryption algorithm. In Proceedings of the Second International Workshop on Fast Software Encryption, pages 86-96, Springer-Verlag, 1994.

[20] R.L.リベスト。 RC5暗号化アルゴリズム。高速ソフトウェア暗号化に関する第2回国際ワークショップの議事録、ページ86から96、シュプリンガー・フェアラーク、1994年。

[21] Rivest, R., "A Description of the RC2(r) Encryption Algorithm", RFC 2268, March 1998.

[21]リベスト、R.、RFC 2268、1998年3月 "RC2(R)暗号化アルゴリズムの説明"。

[22] R.L. Rivest. Block-Encryption Algorithm with Data-Dependent Rotations. U.S. Patent No. 5,724,428, March 3, 1998.

[22] R.L.リベスト。データ依存型回転にブロック暗号化アルゴリズム。米国特許第5724428、1998年3月3日。

[23] R.L. Rivest. Block Encryption Algorithm with Data-Dependent Rotations. U.S. Patent No. 5,835,600, November 10, 1998.

[23] R.L.リベスト。データ依存型回転にブロック暗号化アルゴリズム。米国特許第5835600、1998年11月10日。

[24] RSA Laboratories. PKCS #5: Password-Based Encryption Standard. Version 1.5, November 1993.

[24] RSA研究所。 PKCS#5:パスワードベース暗号化規格。バージョン1.5、1993年11月。

[25] RSA Laboratories. PKCS #8: Private-Key Information Syntax Standard. Version 1.2, November 1993.

[25] RSA研究所。 PKCS#8:プライベート・キー情報の構文標準。バージョン1.2、1993年11月。

[26] T. Wu. The Secure Remote Password protocol. In Proceedings of the 1998 Internet Society Network and Distributed System Security Symposium, pages 97-111, Internet Society, 1998.

[26] T.ウー。セキュアリモートパスワードプロトコル。 1998インターネット協会ネットワークと分散システムセキュリティシンポジウム、ページ97-111、インターネット協会、1998年の議事録。

[27] Yergeau, F., "UTF-8, a transformation format of ISO 10646", RFC 2279, January 1998.

[27] Yergeau、F.、 "UTF-8、ISO 10646の変換フォーマット"、RFC 2279、1998年1月。

Contact Information & About PKCS

連絡先&PKCSについて

The Public-Key Cryptography Standards are specifications produced by RSA Laboratories in cooperation with secure systems developers worldwide for the purpose of accelerating the deployment of public-key cryptography. First published in 1991 as a result of meetings with a small group of early adopters of public-key technology, the PKCS documents have become widely referenced and implemented. Contributions from the PKCS series have become part of many formal and de facto standards, including ANSI X9 documents, PKIX, SET, S/MIME, and SSL.

公開鍵暗号規格は、公開鍵暗号の展開を促進する目的のために、世界中の安全なシステムの開発者と協力してRSA研究所によって生成仕様です。まず、公開鍵技術の早期導入の小グループとの会合の結果として、1991年に出版され、PKCSドキュメントは、広く参照され、実装になってきました。 PKCSシリーズからの拠出金は、ANSI X9ドキュメント、PKIX、SET、S / MIME、およびSSLを含む多くの正式なデファクトスタンダードの一部となっています。

Further development of PKCS occurs through mailing list discussions and occasional workshops, and suggestions for improvement are welcome. For more information, contact:

PKCSのさらなる開発は、メーリングリストでの議論と時折ワークショップを介して行われ、改善のための提案を歓迎します。詳細については、お問い合わせください:

        PKCS Editor
        RSA Laboratories
        20 Crosby Drive
        Bedford, MA  01730  USA
        pkcs-editor@rsasecurity.com
        http://www.rsalabs.com/pkcs/
        

Full Copyright Statement

完全な著作権声明

Copyright (C) The Internet Society (2000). All Rights Reserved.

著作権(C)インターネット協会(2000)。全著作権所有。

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

この文書とその翻訳は、コピーして他の人に提供し、それ以外についてはコメントまたは派生物は、いかなる種類の制限もなく、全体的にまたは部分的に、準備コピーし、公表して配布することができることを説明したり、その実装を支援することができます、上記の著作権表示とこの段落は、すべてのそのようなコピーや派生物に含まれていることを条件とします。しかし、この文書自体は著作権のための手順はで定義されている場合には、インターネット標準を開発するために必要なものを除き、インターネットソサエティもしくは他のインターネット関連団体に著作権情報や参照を取り除くなど、どのような方法で変更されないかもしれませんインターネット標準化プロセスが続く、または英語以外の言語に翻訳するために、必要に応じなければなりません。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上記の制限は永久で、インターネット学会やその後継者や譲渡者によって取り消されることはありません。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

この文書とここに含まれている情報は、基礎とインターネットソサエティおよびインターネットエンジニアリングタスクフォースはすべての保証を否認し、明示または黙示、その情報の利用がない任意の保証を含むがこれらに限定されない「として、」上に設けられています特定の目的への権利または商品性または適合性の黙示の保証を侵害します。

Acknowledgement

謝辞

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC Editor機能のための基金は現在、インターネット協会によって提供されます。