본문 바로가기
Infra & Security Eng/Network & Security

암호학(키의 종류와 역할, 공개키 암호화, 전자 서명, 암호화와 전자 서명의 결합 개념과 특징)

by 엔지니어 E 2026. 3. 18.
반응형

1. 키의 종류와 역할

공개키 방식은 서로 다른 두 개의 키를 쌍으로 사용함

1. 공개키: 누구나 가질 수 있는 키. 메시지를 암호화 할때 사용 
2. 개인키: 본인만 간직하는 키. 암호화된 메세지를 복호화(풀기)할 때 사용 

* 비밀키: 기존 대칭키 방식에서 사용하는 키. 

주요특징
1. 비대칭성: 두 키가 서로 다르기 때문에, 암호화 알고리즘과 공개키를 안다고 해도 개인키를 계산해내는 것은 불가능함
2. 보안성: 암호화된 데이터는 오직 그 쌍이 되는 개인키로만 풀 수 있어 제3자의 탈취를 방지

복호화: 암포를 푸는 것

2.1 공개키 암호화 (비밀 메세지를 보낼 때 - 기밀성)

이 과정은 메시지를 누구도 못 읽게 비밀로 전달 할 때 사용함

프로세스
1. A(송신자): 받는 사람 B의 공개키로 평문을 암호화하여 암호문을 만듬
2. 전송: 암호문을 보낸다 

3. B(수신자): 오직 자신만 가진 B의 개인키로 암호문을 복호화하여 내용을 확인함

* 결과: 중간에 누가 훔쳐 가도 B의 개인키가 없어서 절대 못 읽음

 

2.1.1 공개키 암호의 수학적인 원리(계산법)

공개키 암호는 곱하고 나눈 나머지를 구하면, 원래 숫자를 알아내기 어렵다는 성질을 이용한다
원리: 받는 사람(B)의 공개키로 잠그고, 받는 사람(B)의 개인키로만 여는 방식


쉽게 이해가기 위해 평문 숫자: 4를 가지고 원리 설명함 / 나머지 계산 편의성을 위해 mod 10 적용

1. 규칙 정하기 (예시: 10으로 나눈 나머지)
계산 결과의 마지막 일의 자리 숫자만 남기기로 약속한다

2. 키 생성과 배포 
1) B는 공개키:3 과 개인키 7 을 준비 한다 
예시 이유: 둘을 곱하면 21이고, 나머지가 1이 되는 수학적 짝궁(역원)이 되기 때문이다 
2) 키 배포: B는 공개키를 세상 모든 사람이 알 수 있게 공개한다(A도 이 키를 알게 됨)

3) 비밀유지: B는 개인키(7)를 절대 남에게 알리지 않고 본인만 알고 있는다 

3. 송신자(A)의 암호화 및 전송

1) 평문 준비: A는 B에게 비밀 숫자인 4를 보내고 싶어 한다
2) 암호화: A는 B의 공개키(3)를 가져와서 계산함
4(평문) x 3(B의 공개키) = 12
규칙: mod 10 적용: 12 나누기 10을 하면 나머지가 2가 됨
전송: A는 암호문 2를 인터넷을 통해 B에게 보낸다 

4. 수신자(B)의 복호화(원문 복구)
1) 암호화 수신: B는 A가 보낸 암호문 2를 받는다
2) 복호화: B는 오직 자신만 가진 비밀 개인키(7)로 계산을 진행한다 
2(암호문)x7(B의 개인키)=14
규칙: mod 10 적용: 14 나누기 10을 하면 나머지가 다시 4가 된다 

확인: B는 A가 처음 보냈던 원래 숫자 4를 읽을 수 있게 된다 

 

 

2-2 전자서명(인증 및 무결성 보장)

이 과정은 메세지를 누가 보냈는지 증명하고, 내용이 바뀌지 않았음을 확인할 때 사용함
원리: 보내는 사람(A)의 개인키로 잠그고, 보내는 사람(A)의 공개키로 누구나 열어보게 하는 방식

프로세스
1. A(발신자): 평문을 자신의(A) 개인키로 암호화하여 서명문을 만듬
2 전송: 평문과 서명문을 함께 보냄(A의 개인키 없이 가짜 서명을 만들 수 없음)
3. B(수신자): A의 공개키로 서명문을 복호화 함
4. 확인: 풀어낸 내용이 평문과 일치하면 진짜 A가 보낸것임이 증명됨

 

2-2 암호화와 전자서명의 결합(기밀성, 인증 동시 보장) 

이 과정은 누가 보냈는지 확실히 하면서 내용도 비밀로 유지하고 싶을 때 사용함. 두 과정을 합친 방식임
원리: A의 개인키로 먼저 서명하고, 그 결과물을 다시 B의 공개키로 한 번 더 암호화

프로세스
1. A(발신자)
1) 평문을 A의 개인키로 암호화하여 서명문을 만듬
2) 만들어진 서명문을 다시 B의 공개키로 한 번더 암호화하여 최종 암호문을 만듬 
2. 전송: 최종 암호문을 전송함
3. B(수신자)
1) 자신만이 가진 B의 개인키로 겉포장을 풀어 서명문을 얻는다
2) 다시 A의 공개키로 서명문을 풀어 원래의 평문을 확인한다 
4. 결과: B 이외에는 아무도 내용을 볼 수 없고(기밀성), B는 이 메시지가 확실히  A로부터 왔음을 믿을 수 있음(인증)

* 암호화한다: 내용을 감추는 것이 목적임
* 서명한다: 내가 보냈다는 것을 증명하는 것이 목적임