Xem https://pologistssl.org/kb/cryptography/asn1-key-strucenses-in-der-and-pem (tìm kiếm trang "BEGIN RSA PRIVATE KEY") ( liên kết lưu trữ cho hậu thế, chỉ trong trường hợp).
BEGIN RSA PRIVATE KEYlà PKCS # 1 và chỉ là khóa RSA. Nó thực chất chỉ là đối tượng chính từ PKCS # 8, nhưng không có phiên bản hoặc mã định danh thuật toán ở phía trước. BEGIN PRIVATE KEYlà PKCS # 8 và chỉ ra rằng loại khóa được bao gồm trong chính dữ liệu chính. Từ liên kết:
Dữ liệu được mã hóa PKCS # 8 không được mã hóa bắt đầu và kết thúc bằng các thẻ:
-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----
Trong dữ liệu được mã hóa base64, cấu trúc DER sau đây có mặt:
PrivateKeyInfo ::= SEQUENCE {
version Version,
algorithm AlgorithmIdentifier,
PrivateKey BIT STRING
}
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
Vì vậy, đối với khóa riêng RSA, OID là 1.2.840.113549.1.1.1 và có RSAPrivateKey làm chuỗi bit dữ liệu của khóa PrivateKey.
Trái ngược với BEGIN RSA PRIVATE KEY, luôn chỉ định khóa RSA và do đó không bao gồm loại khóa OID. BEGIN RSA PRIVATE KEYlà PKCS#1:
Tệp khóa riêng RSA (PKCS # 1)
Tệp PEM của khóa riêng RSA dành riêng cho các khóa RSA.
Nó bắt đầu và kết thúc với các thẻ:
-----BEGIN RSA PRIVATE KEY-----
BASE64 ENCODED DATA
-----END RSA PRIVATE KEY-----
Trong dữ liệu được mã hóa base64, cấu trúc DER sau đây có mặt:
RSAPrivateKey ::= SEQUENCE {
version Version,
modulus INTEGER, -- n
publicExponent INTEGER, -- e
privateExponent INTEGER, -- d
prime1 INTEGER, -- p
prime2 INTEGER, -- q
exponent1 INTEGER, -- d mod (p-1)
exponent2 INTEGER, -- d mod (q-1)
coefficient INTEGER, -- (inverse of q) mod p
otherPrimeInfos OtherPrimeInfos OPTIONAL
}