IT

RSA 암호화가 뭐에요? (feat. AES, DES, Blowfish/Twofish, ECC, SHA, MD5)

jaewon_sss 2024. 12. 20. 14:42
반응형

RSA 암호화공개 키 암호화 방식 중 하나로, 데이터를 안전하게 암호화하고 인증하는 데 사용됩니다. 이 알고리즘은 1977년 Ron Rivest, Adi Shamir, Leonard Adleman에 의해 개발되었으며, 이름은 이들의 이니셜에서 따왔습니다.


1. RSA의 핵심 원리

RSA는 수학적 원리를 기반으로 한 비대칭 암호화 알고리즘입니다.

  • 비대칭 암호화: 공개 키(Encryption Key)와 개인 키(Decryption Key)라는 두 가지 키를 사용합니다.
    • 공개 키: 데이터를 암호화할 때 사용되며, 누구나 볼 수 있습니다.
    • 개인 키: 데이터를 복호화할 때 사용되며, 소유자만 알고 있어야 합니다.

RSA의 보안성은 큰 소수의 곱셈 결과를 소인수 분해하기 어려운 문제(즉, 정수 분해 문제)의 복잡성에 기반합니다.


2. RSA 암호화 과정

(1) 키 생성

  1. 두 개의 큰 소수 ppqq를 선택합니다.
  2. n=p×qn = p \times q를 계산합니다. nn은 키 길이를 결정하는 값입니다.
  3. ϕ(n)=(p−1)(q−1)\phi(n) = (p-1)(q-1)를 계산합니다.
    • ϕ(n)\phi(n): 오일러 피 함수.
  4. ee를 선택합니다.
    • ee는 1보다 크고 ϕ(n)\phi(n)보다 작은 값이며, eeϕ(n)\phi(n)이 서로소여야 합니다.
  5. dd를 계산합니다.
    • d×emod  ϕ(n)=1d \times e \mod \phi(n) = 1이 되는 dd를 찾습니다. dd는 개인 키입니다.

(2) 공개 키와 개인 키 생성

  • 공개 키: (e,n)(e, n)
  • 개인 키: (d,n)(d, n)

(3) 암호화

  • 평문 MM (숫자로 표현된 메시지)을 암호화하려면: C=Memod  nC = M^e \mod n 여기서 CC는 암호화된 메시지(암호문)입니다.

(4) 복호화

  • 암호문 CC를 복호화하려면: M=Cdmod  nM = C^d \mod n 여기서 MM은 복호화된 원래 메시지(평문)입니다.

3. RSA의 주요 특징

  1. 보안성:
    • RSA의 보안은 n=p×qn = p \times q에서 ppqq를 분리하는 소인수 분해가 매우 어려운 수학적 문제에 기반합니다.
    • 키 길이가 길수록 보안성이 높아지지만 연산 속도는 느려집니다.
  2. 비대칭 구조:
    • 데이터는 공개 키로 암호화되며, 오직 개인 키로만 복호화할 수 있습니다.
    • 개인 키로 서명된 데이터는 공개 키로 검증할 수 있습니다.
  3. 활용성:
    • 데이터 암호화.
    • 디지털 서명.
    • 키 교환 프로토콜(TLS/SSL 등)에서 사용.

4. RSA의 장단점

장점:

  • 비대칭 구조로 인해 키 교환의 보안성이 뛰어남.
  • 메시지 인증 및 데이터 무결성 검증에 유용(디지털 서명).
  • 공개 키를 이용한 신뢰할 수 있는 키 분배.

단점:

  • 연산 속도가 느림(대칭 키 암호화보다).
  • 큰 데이터 암호화에는 적합하지 않음.
    • 일반적으로 RSA는 대칭 키(예: AES) 암호화를 위한 키 교환에 사용됨.

5. 실무에서의 RSA 활용

  1. TLS/SSL:
    • 웹 브라우저와 서버 간 안전한 연결을 설정할 때 RSA로 키 교환 수행.
  2. 디지털 서명:
    • 데이터의 진위와 무결성을 확인하는 데 사용.
  3. 파일 암호화:
    • RSA로 대칭 키(AES 등)를 암호화한 뒤, 대칭 키로 실제 데이터를 암호화.

 

 

이 외에도 여러 종류의 암호화 방식이 존재합니다. 암호화는 대칭 키 암호화, 비대칭 키 암호화, 해시 함수 등으로 분류되며, 각각의 방식은 목적과 사용 사례에 따라 다릅니다.


1. 대칭 키 암호화 (Symmetric Key Encryption)

  • 특징:
    • 하나의 키로 데이터를 암호화(Encryption)하고 복호화(Decryption)합니다.
    • 암호화와 복호화에 사용되는 키가 동일합니다.
    • 키를 안전하게 공유하는 것이 가장 큰 과제입니다.
    • 비대칭 암호화보다 속도가 빠릅니다.
  • 대표 알고리즘:
    1. AES (Advanced Encryption Standard):
      • 현대 대칭 암호화의 표준.
      • 128, 192, 256비트 키 길이를 지원.
      • TLS, VPN, 파일 암호화 등에서 널리 사용.
    2. DES (Data Encryption Standard):
      • 과거에 사용되던 암호화 방식(현재는 보안성이 낮아 사용하지 않음).
    3. Blowfish/Twofish:
      • 고속 암호화 알고리즘으로 일부 애플리케이션에서 사용.
  • 사용 사례:
    • 대용량 데이터 암호화.
    • 네트워크 트래픽 암호화(VPN, HTTPS).

2. 비대칭 키 암호화 (Asymmetric Key Encryption)

  • 특징:
    • 공개 키(Encryption Key)와 개인 키(Decryption Key)를 사용합니다.
    • 데이터를 암호화하는 키와 복호화하는 키가 다릅니다.
    • 속도는 느리지만, 키 분배가 안전합니다.
  • 대표 알고리즘:
    1. RSA:
      • 비대칭 암호화의 표준. 보안성은 소인수분해 문제에 기반.
    2. ECC (Elliptic Curve Cryptography):
      • RSA보다 키 길이가 짧고 계산 효율이 높음.
      • 모바일 기기, IoT 등 자원이 제한된 환경에서 사용.
    3. Diffie-Hellman (DH):
      • 키 교환을 위한 암호화 방식.
      • 데이터를 암호화하지는 않으며, 안전하게 대칭 키를 교환하는 데 사용.
  • 사용 사례:
    • TLS/SSL 인증서.
    • 디지털 서명.
    • 안전한 키 교환.

3. 해시 함수 (Hash Function)

  • 특징:
    • 데이터를 암호화하는 대신 고정 길이의 해시 값을 생성합니다.
    • 동일한 입력은 항상 동일한 출력(해시 값)을 생성합니다.
    • 복호화할 수 없으며, 데이터 무결성 검증에 사용됩니다.
  • 대표 알고리즘:
    1. SHA (Secure Hash Algorithm):
      • SHA-256, SHA-512 등 다양한 변종 존재.
      • 데이터 무결성 검증에 널리 사용.
    2. MD5 (Message Digest 5):
      • 과거에 많이 사용되었지만 충돌 문제가 있어 보안용으로는 더 이상 권장되지 않음.
    3. HMAC (Hash-based Message Authentication Code):
      • 해시 함수에 대칭 키를 결합하여 무결성과 인증을 동시에 보장.
  • 사용 사례:
    • 파일 무결성 검증.
    • 디지털 서명.
    • 비밀번호 저장(해시 형태로 저장).

4. 양자 암호화 (Quantum Cryptography)

  • 특징:
    • 양자 컴퓨팅 기술을 기반으로 하며, 데이터 전송의 보안성을 보장.
    • 현재 양자 컴퓨터가 기존 암호화 방식을 깨뜨릴 가능성이 있으므로 이에 대응하기 위해 연구 중.
  • 사용 사례:
    • 고도의 보안이 요구되는 환경(예: 금융, 군사).

암호화 방식 비교

암호화 방식특징장점단점

대칭 키 하나의 키로 암호화 및 복호화 속도가 빠름 키 분배 문제
비대칭 키 공개 키와 개인 키 사용 키 분배 안전, 인증 가능 속도가 느림
해시 함수 데이터 무결성 확인 비밀번호 저장, 무결성 보장 복호화 불가능
양자 암호화 양자 기술 기반 이론적으로 완벽한 보안 가능 구현 및 비용 문제

5. 하이브리드 암호화

  • 특징:
    • 대칭 키 암호화와 비대칭 키 암호화를 결합하여 성능과 보안을 모두 만족.
    • 비대칭 암호화로 대칭 키를 안전하게 교환한 뒤, 대칭 암호화를 통해 데이터를 암호화.
  • 사용 사례:
    • TLS/SSL 프로토콜.

 

 

 

 

 

 

끗!

 

반응형