RSA 키 쌍 생성기
RSA 키 쌍은 수학적으로 연관된 두 개의 숫자로 구성됩니다: 사용자가 공개하는 공개 키와 보호해야 하는 비공개 키입니다. 이 생성기는 암호학적으로 안전한 난수원을 사용하여 표준 PEM 인코딩 방식으로 두 키를 모두 생성합니다. 이를 활용하면 명령줄에 접근하지 않고도 JWT 서명자를 부트스트랩하거나 스테이징 박스용 TLS 인증서를 생성하며 SSH 신원을 발급할 수 있습니다.
RSA 키 쌍 생성 방법
-
1
키 크기 선택
2048비트, 3072비트 또는 4096비트 중 하나를 선택하세요. 긴 키는 보안성이 뛰어나지만 서명 및 검증 속도가 느립니다.
-
2
생성
이 도구는 WebCrypto 프리미티브를 사용하여 새로운 모듈과 사설 지수를 생성합니다.
-
3
복사하거나 다운로드하세요
PEM 인코딩된 비공개 키(BEGIN PRIVATE KEY)와 이에 대응하는 공개 키(BEGIN PUBLIC KEY)를 가져오세요.
-
4
개인 키를 안전하게 저장하세요
이를 비밀 관리기나 키체인에 저장하세요. 절대 채팅, 이메일 또는 공개 리포지토리에 붙여서는 안 됩니다.
어떤 키 크기를 사용해야 할까요?
더 크면 자동으로 더 좋다는 것은 아닙니다. 적절한 크기는 키가 사용될 기간과 각 서명에 소요되는 CPU 사용량에 따라 결정됩니다.
NIST 지침 개요
| 키 크기 | 보안 수준 | 일반적인 사용 사례 | 상대적 서명 비용 |
|---|---|---|---|
| 2048비트 | 약 112비트 | JWT 서명, 단기 유효 시간의 TLS 인증서, 대부분의 API | 1회 |
| 3072비트 | 약 128비트 | 장기간 운영 가능한 루트 CA, FIPS > 2030 규정 준수 | 약 3배 |
| 4096비트 | 약 140비트 | 높은 보안성을 갖춘 루트 기반의 장기 문서 서명 방식 | 약 7배 |
PEM은 어디에 들어맞는가
키는 PKCS#8/SPKI로 래핑되고 -----BEGIN----- 및 -----END----- 마커 사이에 base64로 인코딩됩니다. 이는 모든 주류 라이브러리가 요구하는 표준 형식입니다: OpenSSL, Node.js의 crypto, Python의 cryptography, Go의 crypto/rsa, Java의 KeyFactory 등이 모두 이 형식을 따릅니다.
운영 팁
- 광범위한 적용 범위를 갖는 서명 키의 경우 최소 연 1회 이상 회전 처리해야 합니다.
- 새로운 시스템의 경우 ECDSA(P-256) 또는 Ed25519를 사용하는 것이 권장됩니다. 이 방식은 처리 속도가 빠르며 서명 크기도 훨씬 작습니다.
- 관련이 없는 시스템 간에 키페어를 재사용하지 마십시오. 한 개의 키가 유출될 경우 하류의 모든 시스템이 위협받게 됩니다.
- 개인 키를 디스크에 저장할 때는 비밀번호를 사용하십시오. 암호화된 PEM 파일(
BEGIN ENCRYPTED PRIVATE KEY)이 표준입니다.
자주 묻는 질문
네, 대부분의 API 및 세션 서명에 적용됩니다. NIST와 BSI는 여전히 2048비트 RSA를 최소한 2030년까지는 적절하다고 간주하고 있으나, 그 이상의 기간 동안 사용해야 하는 경우에는 3072비트가 권장됩니다.
PEM 사설 키는 ssh-keygen -y -f key.pem와 함께 사용하여 ssh-rsa 공개 키를 생성합니다. 일상적인 SSH 연결에서는 Ed25519를 사용하는 것이 권장됩니다. 이 키의 크기가 작고 처리 속도도 빠릅니다.
첫 번째는 PKCS#1(RSA 전용)입니다. 두 번째는 알고리즘에 관계 없는 랩 방식인 PKCS#8로, 현대의 라이브러리들이 일반적으로 사용하는 방식입니다. 이 도구는 PKCS#8 형태의 결과를 출력합니다.
그렇지 않습니다. 키 생성은 WebCrypto API를 통해 로컬에서 수행되며, PEM 파일은 페이지에 표시되기 전에 메모리 내에서 구성됩니다.
관련 도구
파일 해시 계산기
붙여 넣은 텍스트나 파일 내용의 MD5, SHA-1, SHA-256, SHA-512 해시를 계산하여 다운로드와 파일 무결성을 확인하세요.
암호화 식별자
암호문 또는 해시 값을 붙여넣으면 식별자에 따라 MD5, SHA, bcrypt, AES, RSA, Base64 등 가능한 알고리즘이나 인코딩 방식이 제시됩니다.
숫자-문자 암호
퍼즐, 수수께끼, 방탈출 단서에 쓰이는 A=1, B=2 암호(A1Z26)로 숫자를 문자로, 문자를 숫자로 변환하세요.
ETH → USD 변환기
실시간 ETH/USD 환율 또는 직접 입력한 환율로 이더리움(ETH)을 미국 달러로 변환하세요. 어떤 ETH 수량의 USD 가치도 확인할 수 있습니다.
CSR 생성기
PEM 형식의 인증서 서명 요청과 그에 맞는 RSA 개인 키를 생성합니다. common name, 조직 필드, 키 크기(2048, 3072, 4096비트)를 지정할 수 있습니다.
암호 식별기
암호문을 붙여 넣으면 Base64, hex, 이진수, 모스, 시저 또는 치환, JWT, 일반적인 해시 등 가능성이 높은 인코딩/암호 방식을 제안합니다.
이 도구는 다른 언어로도 제공됩니다
- Generador de pares de claves RSA [ES]
- Générateur de paire de clés RSA [FR]
- RSA nyckelpargenerator [SV]
- เครื่องสร้างคู่กุญแจ RSA (RSA Key Pair Generator) [TH]
- RSA鍵ペア生成器 [JA]
- RSA-Schlüsselpaar-Generator [DE]
- RSA-sleutelpaargenerator [NL]
- Bộ tạo cặp khóa RSA [VI]
- Generator Pasangan Kunci RSA [ID]
- مولد زوج المفتاح RSA [AR]
- Generator par kluczy RSA [PL]
- Gerador de Par de Chaves RSA [PT]
- RSA Key Pair Generator [EN]
- Generatore di coppie di chiavi RSA [IT]
- Генератор пар ключей RSA [RU]
- RSA Anahtar Çifti Oluşturucu [TR]
- RSA密钥对生成器 [ZH]