정보보안기사 학습자 관점으로, RSA 키 생성 + 암호화/복호화 과정을 “숫자 예제”로 쉽게 풀어쓴 정리입니다. (※ 예제는 이해를 위한 초소형 수를 쓰며, 실무에서는 절대 이렇게 작은 수를 쓰지 않아요!)
1) RSA 한 줄 개념
RSA는 공개키로 암호화하고 개인키로 복호화(또는 반대로 서명/검증)하는 대표적인 비대칭키 암호예요.
핵심은 n = p × q 형태의 큰 수에서 p, q를 찾아내기 어렵다는 점을 이용합니다.
2) RSA 키 생성 알고리즘(절차)
키 생성은 “공개키(e,n)”와 “개인키(d,n)”를 만드는 과정입니다.
키 생성 Steps
-
서로 다른 소수
p, q선택 -
n = p × q계산 → (모듈러 n) -
오일러 피함수
φ(n) = (p-1)(q-1)계산 -
공개 지수
e선택-
조건:
1 < e < φ(n)이고gcd(e, φ(n)) = 1
-
-
개인 지수
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)
이제 d는 7×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