T도구모음

RSA 키 쌍 생성기

브라우저에서 RSA 공개키/개인키 쌍을 생성합니다. PEM, JWK 형식 지원.

모든 키 생성은 브라우저에서 수행되며, 서버로 전송되지 않습니다. 페이지를 떠나면 키는 삭제됩니다.

RSA 키 생성기 — 공개키 암호화의 핵심 도구

RSA(Rivest-Shamir-Adleman)는 1977년 발표된 비대칭 암호 알고리즘으로, 두 개의 큰 소수의 곱을 인수분해하기 어렵다는 수학적 원리에 기반합니다. NIST FIPS 186-5 및 PKCS#1(RFC 8017)에 표준화되어 있으며, TLS 인증서, 디지털 서명, JWT, SSH 인증 등 현대 인프라 보안의 핵심 구성요소입니다. 이 도구는 Web Crypto API를 사용하여 브라우저 내에서 RSA 키 쌍을 생성하며, 키는 서버로 전송되지 않습니다.

키 크기와 안전 강도 — NIST SP 800-57 기준

RSA 키 길이안전 강도(비트)NIST 권장 기한
2048112~2030년까지 허용
30721282031년 이후 권장
4096~140장기 보관 데이터용

PKCS#1 vs PKCS#8 — 키 인코딩 형식

PKCS#1(RFC 8017)은 RSA 전용 형식으로 -----BEGIN RSA PRIVATE KEY----- 헤더를 사용합니다.PKCS#8(RFC 5958)은 알고리즘 독립적 형식으로 -----BEGIN PRIVATE KEY----- 헤더를 사용하며, 이 도구가 내보내는 기본 형식입니다. 공개키는 SPKI(Subject Public Key Info) 형식으로 내보냅니다. JWK(RFC 7517)는 JSON 구조로 키를 표현하여 웹 API 환경에서 키 교환에 적합합니다.

OpenSSL로 키 확인하기

# PEM 개인키 정보 확인
openssl rsa -in private_key.pem -text -noout

# PEM → PKCS#1 변환
openssl rsa -in private_key.pem -traditional -out rsa_key.pem

# PEM → DER 변환
openssl rsa -in private_key.pem -outform DER -out key.der

# 공개키 추출
openssl rsa -in private_key.pem -pubout -out public_key.pem

JWT RS256 서명 예시 (Node.js)

const jwt = require('jsonwebtoken');
const fs = require('fs');

const privateKey = fs.readFileSync('private_key.pem');
const token = jwt.sign(
  { sub: 'user-123', role: 'admin' },
  privateKey,
  { algorithm: 'RS256', expiresIn: '1h' }
);

아키텍처별 RSA 키 운영 전략

소규모 프로젝트: PEM 파일을 .gitignore에 등록하고 로컬에서 관리합니다.중규모 팀: AWS KMS, GCP Cloud KMS 등 관리형 키 저장소에 보관하고 IAM으로 접근을 통제합니다.대규모 엔터프라이즈: HSM(Hardware Security Module)에 키를 저장하여 FIPS 140-2 Level 3 이상 물리적 보안을 확보하고, 키 로테이션 정책을 자동화합니다.

보안 베스트 프랙티스

  • RSA 2048 비트 미만의 키는 절대 사용하지 마세요 — NIST는 2024년부터 1024비트 키를 완전 폐기했습니다.
  • 개인키는 패스프레이즈로 암호화하여 저장하세요 (openssl rsa -aes256).
  • RSA-OAEP(RFC 8017)를 사용하세요 — PKCS#1 v1.5 암호화는 Bleichenbacher 공격에 취약합니다.
  • 양자 컴퓨팅 대비가 필요한 경우 NIST PQC 표준(ML-KEM, ML-DSA)으로의 전환 로드맵을 준비하세요.
  • 키 유효 기간을 설정하고 주기적으로 로테이션하세요 (권장: 1~2년).

관련 도구

대칭 키 암호화가 필요하다면 AES 암호화 도구를 활용하세요. API 서명 검증에는 HMAC 생성기가 유용하며, SSH 접속에 이 키를 활용하려면 SSH Config 생성기로 IdentityFile 경로를 설정하세요.

참고 자료

  • NIST FIPS 186-5 — Digital Signature Standard (DSS)
  • RFC 8017 — PKCS#1: RSA Cryptography Specifications v2.2
  • RFC 7517 — JSON Web Key (JWK)
  • NIST SP 800-57 Part 1 — Recommendation for Key Management

자주 묻는 질문

관련 도구