ECDSA 서명 도구
타원 곡선 디지털 서명 알고리즘
ECDSA 키 쌍 생성
선택한 곡선에 대한 새로운 무작위 ECDSA 키 쌍을 생성합니다. 개인 키는 비밀로 유지해야 하며, 공개 키는 공유할 수 있습니다.
개인 키에서 공개 키 유도
기존 개인 키를 입력하여 해당하는 공개 키를 계산합니다.
문서
ECDSA(타원 곡선 디지털 서명 알고리즘)는 타원 곡선 암호학에 기반한 널리 사용되는 디지털 서명 체계입니다. RSA와 동일한 보안 수준을 훨씬 작은 키 크기로 제공하여 모바일 장치와 블록체인 네트워크 같은 리소스 제한 환경에 이상적입니다.
주요 특징
- 작은 키 크기: 256비트 ECDSA는 3072비트 RSA와 비슷한 보안 제공
- 빠른 연산: 서명과 검증이 RSA보다 훨씬 빠름
- 컴팩트한 서명: ECDSA 서명은 RSA 서명보다 훨씬 작음
- 다중 곡선: secp256k1, P-256, P-384, P-521 곡선 지원
- 업계 표준: 비트코인, 이더리움, TLS 및 많은 프로토콜에서 사용
지원되는 곡선
- secp256k1: 비트코인과 이더리움에서 사용하는 곡선. 256비트 보안, 효율적인 구현에 최적화.
- P-256 (secp256r1): NIST 표준 곡선, TLS, 정부 애플리케이션, WebCrypto API에서 널리 사용.
- P-384 (secp384r1): 192비트 보안 수준을 제공하는 NIST 표준 곡선, 고보안 애플리케이션에 사용.
- P-521 (secp521r1): 256비트 보안 수준을 제공하는 NIST 표준 곡선, 최고 보안 ECDSA 곡선.
해시 알고리즘
- SHA-256: 대부분의 애플리케이션에 표준 선택. P-256 및 secp256k1 곡선과 함께 사용.
- SHA-384: 보안 수준에 맞게 P-384 곡선에 권장.
- SHA-512: P-521 곡선에 권장. 256비트 보안 제공.
- Keccak-256: 이더리움에서 트랜잭션 서명에 사용. SHA-3가 아닌 256비트 출력의 원본 Keccak.
일반적인 사용 사례
- 비트코인 및 블록체인: 트랜잭션 서명에 secp256k1과 SHA-256 이중 해시 사용.
- 이더리움: 트랜잭션 및 메시지 서명에 secp256k1과 Keccak-256 사용.
- TLS/SSL 인증서: HTTPS 인증서 서명에 P-256 곡선 사용.
- 코드 서명: 소프트웨어 릴리스에 서명하여 진위성과 무결성 보장.
- API 인증: API 요청에 서명하여 변조 방지 및 신원 확인.
보안 모범 사례
- 개인 키 보호: 개인 키를 절대 노출하거나 공유하지 마세요. 중요한 애플리케이션에는 HSM 사용.
- 안전한 난수 사용: ECDSA는 암호학적으로 안전한 난수가 필요. 이 도구는 Web Crypto API 사용.
- 공개 키 검증: 서명을 수락하기 전에 항상 신뢰할 수 있는 채널을 통해 공개 키 검증.
- 클라이언트 측 처리: 이 도구는 브라우저에서 완전히 실행됩니다. 키가 장치를 떠나지 않습니다.
- 서명 가변성: ECDSA 서명은 가변적일 수 있음. 필요시 정규(low-S) 서명 사용.
ECDSA vs 다른 서명 체계
| 특징 | ECDSA (P-256) | RSA-2048 | Ed25519 |
|---|---|---|---|
| 개인 키 크기 | 32 바이트 | 256 바이트 | 32 바이트 |
| 공개 키 크기 | 64 바이트 | 256 바이트 | 32 바이트 |
| 서명 크기 | 64 바이트 | 256 바이트 | 64 바이트 |
| 서명 속도 | 빠름 | 느림 | 매우 빠름 |
| 검증 속도 | 보통 | 빠름 | 매우 빠름 |
| 결정적 서명 | RFC 6979 | 예 | 예 |