# ๊ฐ์ธํค ์์ฑ
openssl genpkey -algorithm RSA -out private_rsa.pem -pkeyopt rsa_keygen_bits:2048
# ๊ณต๊ฐํค ์ถ์ถ
openssl rsa -in private_rsa.pem -pubout -out public_rsa.pem
# ์์ ํ์ผ ์ค๋น
echo "๊ธฐ์ ์ฌ ์ํ ๋๋น RSA ์๋ช
์์ " > message.txt
# ํด์(SHA-256) ํ ์๋ช
์์ฑ
openssl dgst -sha256 -sign private_rsa.pem -out signature_rsa.bin message.txt
๐ก
-sign: ๊ฐ์ธํค๋ก ์๋ช (์ํธํ)
๋ด๋ถ์ ์ผ๋ก ํด์ โ ๊ฐ์ธํค ์ํธํ ์งํ
# ๊ณต๊ฐํค๋ก ๊ฒ์ฆ
openssl dgst -sha256 -verify public_rsa.pem -signature signature_rsa.bin message.txt
๊ฒฐ๊ณผ:
Verified OK๋๋Verification Failure
openssl dgst -sha256 message.txt
์์ ์ถ๋ ฅ:
SHA256(message.txt)= a2f1c3d2f0cbd48e... (64์ ํด์)
๐ก ๋จ์ ๋ฌด๊ฒฐ์ฑ ํ์ธ์ฉ
๋ณตํธํ ๋ถ๊ฐ๋ฅํ ๋จ๋ฐฉํฅ ํด์
# ๊ฐ์ธํค ์์ฑ (prime256v1์ NIST P-256 ๊ณก์ )
openssl ecparam -genkey -name prime256v1 -noout -out private_ecdsa.pem
# ๊ณต๊ฐํค ์ถ์ถ
openssl ec -in private_ecdsa.pem -pubout -out public_ecdsa.pem
openssl dgst -sha256 -sign private_ecdsa.pem -out signature_ecdsa.bin message.txt
openssl dgst -sha256 -verify public_ecdsa.pem -signature signature_ecdsa.bin message.txt
| ๋จ๊ณ | RSA ๋ช ๋ น์ด | ECDSA ๋ช ๋ น์ด |
|---|---|---|
| ๊ฐ์ธํค ์์ฑ | openssl genpkey -algorithm RSA | openssl ecparam -genkey -name prime256v1 |
| ๊ณต๊ฐํค ์ถ์ถ | openssl rsa -pubout | openssl ec -pubout |
| ์๋ช ์์ฑ | openssl dgst -sha256 -sign | ๋์ผ |
| ์๋ช ๊ฒ์ฆ | openssl dgst -sha256 -verify | ๋์ผ |
OpenSSL์ "์ ์์๋ช ๊ณต์ฅ" ๊ฐ์ ๊ฑฐ์์!
- ๋ฌธ์ ๋ฃ๊ณ
- ๊ฐ์ธํค๋ก ๋์ฅ ์ฐ๊ณ
- ๊ณต๊ฐํค๋ก ์ง์ง์ธ์ง ํ์ธํ๋ ๊ฑฐ์ฃ .