RSA 키 생성 + 암호화/복호화 과정 - 이해하기

정보보안기사 학습자 관점으로, RSA 키 생성 + 암호화/복호화 과정을 “숫자 예제”로 쉽게 풀어쓴 정리입니다. (※ 예제는 이해를 위한 초소형 수를 쓰며, 실무에서는 절대 이렇게 작은 수를 쓰지 않아요!)


1) RSA 한 줄 개념

RSA는 공개키로 암호화하고 개인키로 복호화(또는 반대로 서명/검증)하는 대표적인 비대칭키 암호예요.
핵심은 n = p × q 형태의 큰 수에서 p, q를 찾아내기 어렵다는 점을 이용합니다.


2) RSA 키 생성 알고리즘(절차)

키 생성은 “공개키(e,n)”와 “개인키(d,n)”를 만드는 과정입니다.

키 생성 Steps

  1. 서로 다른 소수 p, q 선택

  2. n = p × q 계산 → (모듈러 n)

  3. 오일러 피함수 φ(n) = (p-1)(q-1) 계산

  4. 공개 지수 e 선택

    • 조건: 1 < e < φ(n) 이고 gcd(e, φ(n)) = 1

  5. 개인 지수 d 계산

    • 조건: d ≡ e^-1 (mod φ(n))

    • 즉, e×d ≡ 1 (mod φ(n))


3) 숫자 예제로 키 만들어보기 (완전 쉬운 버전)

소수는 작게 잡아볼게요.

  • p = 11, q = 17

  • n = 11×17 = 187

  • φ(n) = (11-1)(17-1) = 10×16 = 160

이제 e를 고릅니다.

  • e = 7 선택 (160과 서로소: gcd(7,160)=1 OK)

이제 d7×d ≡ 1 (mod 160)을 만족해야 해요.
7×23 = 161 이므로 161 mod 160 = 1

  • d = 23

✅ 최종 키

  • 공개키: (e, n) = (7, 187)

  • 개인키: (d, n) = (23, 187)


4) RSA 암호화/복호화 알고리즘

(1) 암호화(Encryption)

평문을 숫자 m(단, 0 ≤ m < n)로 놓고,

  • 암호문: c = m^e mod n

(2) 복호화(Decryption)

  • 복호 평문: m = c^d mod n


5) 암호화/복호화 예제

평문 숫자를 하나 정해볼게요.

  • 평문 m = 100

5-1) 암호화: c = 100^7 mod 187

빠르게 계산(반복 제곱)하면:

  • c = 144 (결과)

즉, 암호문은 144.

5-2) 복호화: m = 144^23 mod 187

복호화 계산을 하면,

  • m = 100이 다시 나옵니다.

✅ 공개키로 암호화한 걸 개인키로 복호화하면 원문이 복구됨!


6) 시험/실무에서 꼭 같이 말하는 주의점

  • RSA는 평문을 그대로 m^e mod n로 처리하면 위험해서, 실무에선 안전한 패딩을 꼭 씁니다.

    • 암호화: OAEP

    • 서명: PSS

  • RSA는 대용량 데이터를 직접 암호화하기보단,

    • RSA로 세션키(대칭키)만 안전하게 교환

    • 실제 데이터는 AES 같은 대칭키로 빠르게 암호화
      방식(하이브리드)을 주로 사용합니다.


암기용 요약

  • 키생성: n=pq, φ(n)=(p-1)(q-1), gcd(e,φ)=1, d=e^-1 mod φ(n)

  • 암호화: c = m^e mod n

  • 복호화: m = c^d mod n


댓글 쓰기

새 댓글을 작성할 수 없습니다.*

다음 이전