PKCS
Public-Key Cryptography Standards
RSAセキュリティのRSAやX.509 PKI関連の仕様など
現在はIETFに移管されRFCで管理している
PKCS #1 RFC 8017 RSA暗号 Version 2.2 FIPS PUB 186-5 IEEE 1363 ?
RSA
暗号/復号 Section 5.1.
RSAEP 公開鍵 暗号
RSADP 秘密鍵 復号
署名/検証 Section 5.2. (ハッシュ未使用)
RSASP1 秘密鍵 署名
RSAVP1 公開鍵 検証
暗号化スキーム(ハッシュ関数を使用 Paddingとか)
RSAES-OAEP-ENCRYPT 公開鍵 ハッシュ関数を使用
RSAES-OAEP-DECRYPT 秘密鍵
EME-OAEP
RSAES-PKCS1-v1_5-ENCRYPT
RSAES-PKCS1-v1_5-DECRYPT
EME-PKCS1_v1_5
RSASSA 一般的な署名・検証に使えるのはこれかな ハッシュ使用
RSASSA-PKCS1_v1_5 旧式 (JWSなどでも使われているが)
RSASSA-PSS
など
PKCS #2 廃止 Message Digestっぽいもの #1 に統合? RSAESかRSASSAのこと?
RFC 1186 MD4 RFC 1321 MD5など
PKCS #3 RFC 2631, 2409, 3526 Diffie-Hellman っぽい鍵交換のいろいろ
PKCS #4 RSA鍵の構文など #1 に統合
PKCS #5 RFC 8018 パスワード拡張方法など
PBES2 パスワードをPBKDF2でkeyとivに拡張する暗号化
PBKDF2 鍵導出関数(KDF) HMACで鍵のための乱数生成
PBMAC1 MAC
RFC 6070 PBKDF2 Test Vectors
PBES1 PBKDF1 古いもの
PKCS #6 X.509v1の拡張 X.509v3へ統合のため廃止
RFC 5280?
PKCS #7 RFC 2315→5652 Cryptographic Message Syntax CMSとしてメール系RFCに統合
RFC 3370
RFC 3369 → 3852
RFC 5083
RFC 5084
RFC 5911
PKCS #8 RFC 5208 Private-Key Information Syntax Specification Version 1.2 → 5958 Asymmetric Key Packages としてCMS系に統合?
ASN.1 構文
RFC 5959 Algorithms for Asymmetric Key Package Content Type
5911?
5912?
8351 The PKCS #8 EncryptedPrivateKeyInfo Media Type
8479 Storing Validation Parameters in PKCS#8
PKCS #9 RFC 2985 Selected Object Classes and Attribute Types
PKCS #10 RFC 2986→5280+5967 証明書リクエスト構文仕様 Version 1.7
RFC 4211 ?
RFC 2459 → 3280 → 5280 Certificate
PKCS #11 暗号トークンインターフェース
PKCS #12 RFC 7292 Personal Information Exchange Syntax v1.1
RFC 9579 Use of Password-Based Message Authentication Code 1 (PBMAC1) in PKCS #12 Syntax
PKCS #15 ISO/IEC 7816-15
2008年版リストガイド PKCS #1 の署名の日本語解説的なもの
https://www.cryptrec.go.jp/report/cryptrec-tr-2002-2008.pdf
PKCS #8
X.690 DER で符号化すること
X.690 DERを含むBER で復号できること
ASN.1 module の定義
暗号化もある #12 形式も記述あり
拡張子 .p8 か BASE64 (RFC 4648)化した .pem
PKCS #12
依存関係?
PKCS #8
PKCS #5 のパスワードベース暗号化を利用
PKCS #1 RSAなどを格納可能
PKCS #10
PKCS #7 CMS署名
PKCS #9 Attribute
RFC 5280 Certificate
PKCS #12
PKCSではASN.1 (X.680)フォーマットDER (X.690)とBASE64なPEMが主に使われているので構造を知っておいてもいいのかも