PKCS

PKCS (Public-Key Cryptography Standards) は、RSAセキュリティにより考案され公開された公開鍵暗号標準のグループを示す。

RSAセキュリティは、RSA暗号アルゴリズムの（2000年に期限が切れた）特許に対するライセンス権を割り当て、幾つかの他の鍵に関する特許（例：Schnorr特許）も同様に取得した。このように、RSAセキュリティおよび、その研究部門である RSA Labs は、公開鍵技術利用の普及と促進に関心を持っており、その結果、RSA は PKCS 標準を開発した。RSA は彼らが必要であると考えた変更や改良は行うと告知し、PKCS 標準を管理し続けた。そのため PKCS 標準は多くの意味において、その名前にかかわらず本当の産業標準ではなかった。全てではないが、近年になって PKCS の一部は一つ以上の標準化組織（有名なところではIETF PKIX ワーキンググループ）により'標準化'手続きに入っている。

 PKCS標準の一覧 

  バージョン  名前   説明   2.2  RSA暗号標準   参照。RSA暗号鍵、公開鍵および秘密鍵のフォーマットの規定。Not encrypted. PKCS #2  -  廃案  現在、無効。メッセージダイジェストのRSA暗号を扱っていたが、PKCS#1に統合された。 PKCS #3 1.4  Diffie-Hellman鍵共有標準  お互いに事前知識を持たない2つの組織が連携して安全でない通信チャンネルを上でも共通鍵を確立できるようにする暗号プロトコル。 PKCS #4 -  廃案  現在、無効。RSA 鍵の構文を扱っていたが、PKCS#1に統合された。 PKCS #5 2.1  パスワードに基づく暗号化の標準   および PBKDF2 を参照。 PKCS #6 1.5  拡張された証明書構文の標準  古いX.509v1証明書の仕様に対する拡張を規定。X.509v3により破棄。  PKCS #7  1.5  暗号メッセージ構文標準   参照。PKI の下でメッセージを署名や暗号化するのに使用される。証明書の配布のためにも用いられる（例えば、PKCS #10メッセージの応答として）。現在、 に基づいている S/MIME の基礎を構成し、暗号メッセージ構文標準 (CMS) として更新されている。 PKCS #8 1.2  秘密鍵情報構文の標準   参照。詳細は後述。 PKCS #9 2.0  選択された属性タイプ    参照。PKCS #6 証明書拡張、PKCS #7 デジタル署名メッセージ、PKCS #8 秘密鍵情報、および PKCS #10 証明書署名要求で利用される属性タイプの選択された定義。 PKCS #10 1.7  証明書署名要求   参照。公開鍵の認証を要求するために認証局へ送信されるメッセージのフォーマット。証明書署名要求を参照。  2.40  暗号トークンインタフェース (Cryptoki)  暗号トークンへの汎用インタフェースを定義するAPI。（も参照の事）  1.1  個人情報交換構文の標準   参照。パスワードに基づく鍵（暗号）により保護された秘密鍵と、それに関連する公開鍵証明書を保管するために一般に利用されるファイルフォーマットの定義。PFXは PKCS#12 の旧称である。

これは、複数の組み込みオブジェクト、例えば複数の証明書を格納できるコンテナフォーマットである。通常、パスワードにより保護/暗号化される。

Java の鍵ストアのフォーマットとして利用できる。Tomcatでは利用できるがApache HTTP Serverでは利用できない。 PKCS #13 –  楕円曲線暗号の標準  （策定中）98年の提案から進展なし。 PKCS #14 –  擬似乱数  （策定中）EMCのサイトからは削除されている。 PKCS #15 1.1  暗号トークン情報フォーマットの標準  暗号トークンのユーザが、アプリケーションの Cryptoki の実装 (PKCS #11) や他のAPIに依存せず、アプリケーションに対し自身を特定できるようにするための標準の規定。RSA は、この標準のICカードに関する部分を ISO/IEC 7816-15に対し譲渡した。

 PKCS 8

PKCS #8は、PKCSのうち、鍵の構文についての標準である。

最新バージョンの1.2はとして利用されている - Public-Key Cryptography Standards (PKCS) #8: Private-Key Information Syntax Specification Version 1.2。

PKCS #8の秘密鍵は、複数のciphersをサポートするPKCS #5標準を使用したで暗号化されている場合もある。

2010年に新しいバージョン2がS. Turnerによりとして提案された - Asymmetric Key Packages。

鍵はbase64エンコードされたPEMのフォーマットで記述される。以下にPEMフォーマットの秘密鍵の例を示す。

-----BEGIN PRIVATE KEY-----
MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAq7BFUpkGp3+LQmlQ
Yx2eqzDV+xeG8kx/sQFV18S5JhzGeIJNA72wSeukEPojtqUyX2J0CciPBh7eqclQ
2zpAswIDAQABAkAgisq4+zRdrzkwH1ITV1vpytnkO/NiHcnePQiOW0VUybPyHoGM
/jf75C5xET7ZQpBe5kx5VHsPZj0CBb3b+wSRAiEA2mPWCBytosIU/ODRfq6EiV04
lt6waE7I2uSPqIC20LcCIQDJQYIHQII+3YaPqyhGgqMexuuuGx+lDKD6/Fu/JwPb
5QIhAKthiYcYKlL9h8bjDsQhZDUACPasjzdsDEdq8inDyLOFAiEAmCr/tZwA3qeA
ZoBzI10DGPIuoKXBd3nk/eBxPkaxlEECIQCNymjsoI7GldtujVnr1qT+3yedLfHK
srDVjIT3LsvTqw==
-----END PRIVATE KEY-----
-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIBrzBJBgkqhkiG9w0BBQ0wPDAbBgkqhkiG9w0BBQwwDgQImQO8S8BJYNACAggA
MB0GCWCGSAFlAwQBKgQQ398SY1Y6moXTJCO0PSahKgSCAWDeobyqIkAb9XmxjMmi
hABtlIJBsybBymdIrtPjtRBTmz+ga40KFNfKgTrtHO/3qf0wSHpWmKlQotRh6Ufk
0VBh4QjbcNFQLzqJqblW4E3v853PK1G4OpQNpFLDLaPZLIyzxWOom9c9GXNm+ddG
LbdeQRsPoolIdL61lYB505K/SXJCpemb1RCHO/dzsp/kRyLMQNsWiaJABkSyskcr
eDJBZWOGQ/WJKl1CMHC8XgjqvmpXXas47G5sMSgFs+NUqVSkMSrsWMa+XkH/oT/x
P8ze1v0RDu0AIqaxdZhZ389h09BKFvCAFnLKK0tadIRkZHtNahVWnFUks5EP3C1k
2cQQtWBkaZnRrEkB3H0/ty++WB0owHe7Pd9GKSnTMIo8gmQzT2dfZP3+flUFHTBs
RZ9L8UWp2zt5hNDtc82hyNs70SETaSsaiygYNbBGlVAWVR9Mp8SMNYr1kdeGRgc3
7r5E
-----END ENCRYPTED PRIVATE KEY-----

 関連項目 
 暗号メッセージ構文 (CMS)
 ASN.1 (Abstract Syntax Notation One)

 注釈・参考文献 
 Jean-Sébastien Coron, Marc Joye, David Naccache, and Pascal Paillier, New Attacks on PKCS #1 v1.5 Encryption, EUROCRYPT 2000, pp. 69-381. 

 出典 

 外部リンク 
 EMC内RSA Laboratories PKCS
 PSS (Probabilistic Signature Scheme)
 PKCS#12 FAQ, OpenSSLのStephen Hensonによる
 https://qiita.com/hotpepsi/items/128f3a660cee8b5467c6

Category:暗号技術