ECDSA κ°μΈν€ ASN.1 νμ
μ΄λ²μλ ECDSA μκ³ λ¦¬μ¦μμ μ¬μ©νλ κ°μΈν€ ν¬λ§·μ λν΄ μμ 보μ
λ¨Όμ ECDSA κ°μΈν€ ν¬λ§·μ RFC5915 μ μ μ λμ΄ μλ€.
ASN.1 νμ
ECPrivateKey { iso(1) identified-organization(3) dod(6)
internet(1) security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-ecprivateKey(65) }
DEFINITIONS EXPLICIT TAGS ::=
BEGIN
-- EXPORTS ALL;
IMPORTS
-- FROM New PKIX ASN.1 [RFC5912]
ECParameters, NamedCurve
FROM PKIXAlgs-2009
{ iso(1) identified-organization(3) dod(6) internet(1)
security(5) mechanisms(5) pkix(7) id-mod(0)
id-mod-pkix1-algorithms2008-02(56) }
;
ECPrivateKey ::= SEQUENCE {
version INTEGER { ecPrivkeyVer1(1) } (ecPrivkeyVer1),
privateKey OCTET STRING,
parameters [0] ECParameters {{ NamedCurve }} OPTIONAL,
publicKey [1] BIT STRING OPTIONAL
}
END
μ£Όμ λ΄μ©μ ECPrivateKey λΆλΆμ΄ ECDSA κ°μΈν€ νμΌ νμμ΄λ€.
μ¬κΈ°μ 보면 νμ κ°μΈν€ νμΌμλ μ£Όμ κ°μ΄ λ²μ , κ°μΈν€, νλΌλ―Έν° κ·Έλ¦¬κ³ κ³΅κ°ν€ μ΄λ κ² 4κ°μ§ κ°μ΄ μ μ λλ€.
- version : νμ¬ μ΄ κ°μ 1 μ κ³ μ κ°μ΄ μ¬μ© λλ€.
- privateKey : μ΄ κ°μ΄ κ°μ₯ λ³΄νΈ λμ΄μΌ ν ECDSA μ κ°μΈν€ κ°μ΄λ€.
- parameters : ECC λλ§€μΈ νλΌλ―Έν° μ΄λ¦μ΄λ€. μ¬κΈ°μλ namedCurve λ°©μμ μ¬μ©ν΄ OID κ°μ΄ μ¬μ©λλ€. (μ΅μ )
- publicKey : 곡κ°ν€ κ° ( μ΅μ )
μ°Έκ³ λ‘ parameters μ publicKey κ°μ΄ μ΅μ μ΄μ λ§ μ€μ μ¬μ©μ μμ΄μλ νμ κ°μ²λΌ μꡬ λλ€.
PEM νμμ μΈμ½λ© ν€λ
μ€μ λ‘ κ°μΈν€λ₯Ό μμ±ν΄μ PEM νμΌμ μμ± νλ©΄ μ¬μ©νλ ν€λλ λ€μ μ²λΌ μ§μ νλ€.
-----BEGIN EC PRIVATE KEY-----
-----END EC PRIVATE KEY-----
OpenSSL ECDSA κ°μΈν€ μμ±
openssl ecparam -name prime256v1 -genkey -noout -out ecdsa_private_key.pem
μ¬κΈ°μ -name prime256v1 μΈ secp256r1 νλΌλ―Έν°λ₯Ό μ¬μ© νλ κ²½μ°λ₯Ό λνλΈλ€.
μμ±ν PEM νμμ 보면 λ€μ μ²λΌ λμ¨λ€.
-----BEGIN EC PRIVATE KEY-----
MHcCAQEEIGT2Um3gW//u0sWCDZQ/XuD6Qizge3mLOZWXPLJrso9XoAoGCCqGSM49
AwEHoUQDQgAEowFoZg9qlBEGZJ46iWBeLV38Xy2P2FQWOMdNQoceqeevT+e1ZIu4
UZ03ePqB6FToUArLqHfW9O6FlsA9Bt2ZCA==
-----END EC PRIVATE KEY-----
ECDSA PrivateKey 보기
μ΄μ μμ± λ κ°μΈν€λ₯Ό BerEditor μ΄μ΄ λ³Έ νλ©΄μ΄λ€.
μ΄λ κ² μ΄λ―Έμ§μμ 보면 κ°μΈν€, νλΌλ―Έν°, 곡κ°ν€ κ°μ νμΈ ν μ μλ€.
νλ©΄μμλ λΉνΈ μ€νΈλ§μ΄μ§λ§ μ€μ λ‘λ ν₯μ¬ κ°μ΄μμ^^
κ°μΈν€ νμΌμλ νλΌλ―Έν° OIDλ 곡κ°ν€ κ°μ΄ μ΅μ μ΄μ§λ§ μ€μ κ°λ° νλ€ λ³΄λ©΄ νμ κ°μ΄ ν¬ν¨μ΄ λμ΄ μλ€.
νλΌλ―Έν° μ 보μ κ²½μ° CHOICE νμμΈλ° κ·Έλ§μ λ€λ₯Έ κ°λ μ‘΄μ¬νλ€κ³ 보면 λλ€.
μ΄ νλΌλ―Έν°μ μ 보λ RFC5480 μμ μ°Έμ‘° νλ©΄ λλ€.
μ€μ λ‘ νλΌλ―Έν°μ OID κ°μΌλ‘ ννλλ κ²½μ°κ° μΌλ°μ μ΄μ§λ§ κ°νΉ νλΌλ―Έν° κ°μ μ λ³΄κ° μΆκ° λκΈ°λ νλ€.
νμ§λ§ μ΄ κ²½μ°λ μ μ¬μ©λμ§λ μλλ€.