CoderTools

RSA 암호화/복호화 도구

키 생성 및 디지털 서명이 가능한 공개키 암호화, 개인키 복호화

RSA 암호화 정보

RSA는 1977년 Ron Rivest, Adi Shamir, Leonard Adleman이 발명한 비대칭 암호화 알고리즘입니다. RSA는 가장 널리 사용되는 공개키 암호화 알고리즘 중 하나로 데이터 암호화, 디지털 서명, 키 교환에 사용됩니다.

RSA 보안은 큰 정수를 인수분해하는 어려움에 기반합니다. 암호화를 위한 공개 키와 복호화를 위한 개인 키의 쌍을 사용합니다. 공개 키는 공개적으로 배포할 수 있지만 개인 키는 비밀로 유지해야 합니다.

기능

  • 키 쌍 생성: 1024, 2048, 4096비트 키 크기 지원
  • 공개키 암호화: 공개 키로 민감한 데이터 암호화
  • 개인키 복호화: 개인 키로 암호화된 데이터 복호화
  • 디지털 서명: 개인 키로 메시지 서명
  • 서명 검증: 공개 키로 서명 진위 검증
  • 다중 해시 알고리즘: SHA-1, SHA-256, SHA-384, SHA-512
  • 패딩 모드 선택: OAEP(권장) 및 PKCS#1 v1.5(레거시 호환성) 지원
  • 다중 형식: 입출력이 텍스트, Base64, Hex 등을 지원

키 크기 선택

적절한 키 크기를 선택하는 것은 보안과 성능에 중요합니다:

  • 1024-bit: 1024비트: 새 시스템에 권장하지 않음, 몇 년 내에 해독될 수 있음
  • 2048-bit: 2048비트: 현재 권장되는 최소값, 대부분의 애플리케이션에 적합
  • 4096-bit: 4096비트: 최고 보안 제공, 그러나 암호화/복호화가 느림

패딩 모드

이 도구는 두 가지 RSA 패딩 모드를 지원합니다. 보안 요구사항과 호환성 필요에 따라 선택하세요:

  • OAEP: 최적 비대칭 암호화 패딩, 의미론적 보안을 제공하고 선택 암호문 공격으로부터 보호합니다. 새 시스템에 권장됩니다.
  • PKCS#1 v1.5: 알려진 Bleichenbacher 공격 취약점이 있는 레거시 패딩 모드입니다. 레거시 시스템과의 호환성을 위해서만 권장됩니다.

형식 옵션

이 도구는 다양한 시스템과의 쉬운 통합을 위해 여러 데이터 형식을 지원합니다:

  • 텍스트: 직접 UTF-8 텍스트 입출력, 일반 문자열에 적합
  • Base64: Base64 인코딩 형식, 네트워크 전송 및 이진 데이터 저장에 일반적으로 사용됨
  • Hex: 16진수 형식, 이진 데이터 보기 및 디버깅에 편리

사용 사례

  • 안전한 통신: 전송 전 민감한 데이터 암호화
  • 디지털 서명: 메시지 진위 및 무결성 검증
  • 키 교환: 대칭 키 안전하게 교환
  • 신원 인증: 발신자 신원 확인
  • 소프트웨어 라이선싱: 라이선스 생성 및 검증

보안 권장사항

  • 최소 2048비트 키 크기 사용
  • 개인 키를 안전하게 보관하고 안전하지 않은 채널을 통해 전송하지 마세요
  • 정기적으로 키 쌍 교체
  • 매우 민감한 데이터의 경우 4096비트 키 고려
  • 대용량 데이터에는 하이브리드 암호화(RSA + 대칭) 사용

RSA 제한사항

  • RSA는 제한된 데이터 길이만 암호화할 수 있습니다(키 크기 및 패딩에 따라 다름)
  • RSA 암호화/복호화는 대칭 암호화보다 훨씬 느립니다
  • 일반적으로 대칭 키를 암호화하는 데 사용되며 대용량 데이터를 직접 암호화하지 않습니다

참조