ดูhttps://polarssl.org/kb/cryptography/asn1-key-structures-in-der-and-pem (ค้นหาหน้าสำหรับ "BEGIN RSA PRIVATE KEY") ( ลิงก์ลิงก์สำหรับลูกหลานในกรณี)
BEGIN RSA PRIVATE KEY
คือ PKCS # 1 และเป็นเพียงคีย์ RSA มันเป็นเพียงแค่วัตถุสำคัญจาก PKCS # 8 แต่ไม่มีตัวระบุรุ่นหรืออัลกอริทึมด้านหน้า BEGIN PRIVATE KEY
คือ PKCS # 8 และระบุว่ามีการรวมประเภทคีย์ไว้ในข้อมูลคีย์เอง จากลิงค์:
ข้อมูลที่เข้ารหัสที่เข้ารหัส PKCS # 8 เริ่มต้นและสิ้นสุดด้วยแท็ก:
-----BEGIN PRIVATE KEY-----
BASE64 ENCODED DATA
-----END PRIVATE KEY-----
ภายในข้อมูลที่เข้ารหัส base64 โครงสร้าง DER ต่อไปนี้จะปรากฏขึ้น:
PrivateKeyInfo ::= SEQUENCE {
version Version,
algorithm AlgorithmIdentifier,
PrivateKey BIT STRING
}
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL
}
ดังนั้นสำหรับคีย์ส่วนตัว RSA OID คือ 1.2.840.113549.1.1.1 และมี RSAPrivateKey เป็นบิตคีย์ข้อมูล PrivateKey
ตรงข้ามกับBEGIN RSA PRIVATE KEY
ซึ่งมักจะระบุคีย์ RSA และดังนั้นจึงไม่รวมประเภทของคีย์ OID BEGIN RSA PRIVATE KEY
คือPKCS#1
:
ไฟล์คีย์ส่วนตัว RSA (PKCS # 1)
ไฟล์ PEM ของคีย์ RSA เป็นข้อมูลเฉพาะสำหรับคีย์ RSA
มันเริ่มต้นและลงท้ายด้วยแท็ก:
-----BEGIN RSA PRIVATE KEY-----
BASE64 ENCODED DATA
-----END RSA PRIVATE KEY-----
ภายในข้อมูลที่เข้ารหัส base64 โครงสร้าง DER ต่อไปนี้จะปรากฏขึ้น:
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
}