개발 etc

RSA 암호화 알고리즘이란?

묠니르묘묘 2022. 3. 18. 20:02

🚀 RSA 암호화 알고리즘이란?

  • 공개키 암호 시스템 중 하나
  • 암호화 뿐만 아니라 전자서명이 가능한 최초의 알고리즘
  • 전자상거래에서 가장 흔히 쓰이는 공개키 알고리즘
  • 암호화 알고리즘의 핵심은 큰 정수의 소인수 분해가 어렵다는 점을 이용하여 암호화

 

암호화할 때는 마음대로지만 해독할 때는 아니다.

 

🚀 그렇다면 공개키(public key)는 무엇일까?

  • 대칭키 암호화와 달리 암호화와 복호화에 서로 다른 키를 사용하는 암호화 방식
  • 공개키 암호화는 공개키와 비밀키(private key)를 사용하여 암호화 및 복호화하는 기술

 

공개키를 더 알아보기전에 대칭키를 간단하게 알아보자

 

1. 대칭키 기법

  • 비밀키 하나만 사용
  • 암호화 및 복호화에 같은 키(대칭)를 사용하는 암호화 알고리즘
  • 키를 안전하게 교환하는 것이 가장 중요한 부분이며, 대칭키 탈취 시 쉽게 암호화된 데이터 알 수 있음

 

2. 공개키 기법

  • 공개키와 비밀키 두 개를 사용하여 암호화 및 복호화
  • 공개키(Public Key) : 누구나 알아도 되는 키
  • 비밀키(Private Key) : 소유자만 아는 키

공개키 암호를 구성하는 알고리즘을 대칭키 암호 방식과 비교하여 비대칭 암호라고도 불린다.

암호화와 복호화에 사용하는 키가 서로 다르다.(비대칭)

 

  • 공개키 암호화 → 비밀키 복호화
  • 비밀키 암호화 → 공개키 복호화

 

2-1. 공개키 암호화

공개키 암호화

  • 공개키는 누구나 아는 키이므로, A가 B에게 보낼 때 B의 공개키로 암호화하여 전송
  • 이 때, B의 공개키로 암호화했기에 B의 비밀키로 복호화 가능
  • 해커가 탈취해도 정보를 알 수 없음 (대칭키의 키값 교환 문제 해결)
  • 해커가 파일 탈취하여 B의 공개키로 이상한 파일을 암호화하여 보낼 위험성 존재

 

2-2. 개인키(비밀키) 암호화

개인키 암호화

  • A의 비밀키로 암호화하여 B에게 전송할 경우, A의 공개키로 복호화 가능
  • 이 때, 모든 이가 A의 공개키를 알기에 해커가 탈취해서 열어볼 수 있음
  • 누구나 열 수 있기에 보안 위험성 존재하지만, A가 보낸것이 100% 신뢰 가능하다는 점
    • 즉, 누가 보냈는지에 대한 인증에 관한 문제 해결
    • A의 비밀키는 A만 가지고 있으므로 A만 비밀키로 암호화 가능
  • 이 기술은 전자서명 등의 공인인증체계의 기본이 되기도 함

 

2-3. 공개키 암호화와 비밀키 암호화 둘 다 문제점이 있는데 위험한 것 아닌가?

결론은 두 번 암호화를 하면 된다.

RSA 암호화 기법

  • A의 공개키로 안열리면 A가 보낸 것 X
  • A의 공개키로 열어도 B의 비밀키로 정보를 열어야 확인 가능
    • B의 비밀키는 B만 가지고 있기에 아무나 정보를 알 수 없음
  • 즉, A가 보내는 정보는 안전하게 B에게 전송 가능하며 아무나 정보를 알 수 없음