CS/Network

[Chapter 17] 암호화와 네트워크 보안 (암호화의 이해)

devrabbit22 2025. 2. 19. 15:03

외부 침입자로부터 문서를 보호하기 위해 문서 내용을 암호화 하여 목적지에 전송하는 방법은 컴퓨터 네트워크가 보급되기 전 부터 사용하던 방식이다. 이때 문서의 송수신자는 암호문을 작성하고 해석하는 과정에서 자신들만 아는 비밀키를 사용한다.

암호학 관련 용어

컴퓨터 네트워크에서 송신자와 수신자는 중간의 전송 매체를 통해 메시지를 송수신한다. 네트워크는 기본적으로 개방형시스템이므로 제 3자가 임의로 접근할 수 있고 전송 메시지는 외부 접근에 노출되어 있다. 따라서 전송 과정에서 비권한적 접근을 시도하는 침입자로부터 메시지를 안전하게 보호해야 한다.

외부 침입자가 전송 메시지에 가하는 공격 행동은 다음의 세가지로 나눌 수 있다. 

 

메시지 읽기 : 전송 선로를 흐르는 신호를 도청하여 메시지의 내용을 읽는다. 인터넷에서 신호 도청을 차단하기는 쉽지 않으므로 암호화 기법으로 해결해야 한다.

전송 방해 : 전송 메시지가 수신자에게 도착하지 못하게 함으로써 송수신자 간의 통신을 방해한다. 인터넷에서 방화벽 기능을 통해 불법 사이트에 접속하지 못하도록 차단하는 것도 이에 해당한다.

메시지 수정 : 전송되는 메시지의 ㄴ용을 수정하는 것으로, 송수신자가 교환하는 메시지의 의미를 왜곡한다.

암호화 용어

외부 침입자가 송수신자 사이에 전송되는 메시지를 읽거나 수정하는 등의 위해 행위를 막기 위해 컴퓨터 네트워크에서 사용하는 일반 기법은 암호화이다.

암호화는 메시지의 내용을 변형하여 원래의 의미를 알아볼 수 없도록 변형하는 작업이다. 메시지의 의미는 언어로 표현되기 때문에 송수신자만 해독할 수 있는 표현 방식을 사용해 침입자기 메시지의 내용을 알아볼 수 없게 전송해야 한다. 암호화된 문서를 원래 언어로 변형하여 수신자가 알아보기 위해서는 해독 과정이 필요하다.

암호화와 해독 과정

암호화 과정은 송신 호스트에서 메시지를 전송하기 전에 이루어지며, 해독 과정은 수신 호스트에서 암호문을 수신하는 과정에서 처리된다. 따라서 송수신자 사이의 전송 매체에서 외부에 노출될 가능성이 있는 경우는 암호문 상태로 전송될 때이다. 외부 침입자가 암호문을 해독할 능력이 없으면 메시지의 내용을 읽거나 수정하는 등의 위해 행동을 할 수 없다.

암호화 알고리즘

암호화와 해독 과정에서 키(Key)를 사용하는데, 키의 종류에는 암호키와 해독키가 있다. a는 암호화와 해독 과정에서 동일한 하나의 키를 사용하는 경우이다. b는 암호화 과정에서 사용하는 암호키와 해독 과정에서 사용하는 해독키가 서로 다른 경우이다.

키의 종류

대칭키(Symmetric key)라고도 하는 단일키 (single key) 방식을 사용할 떄는 송수신자 외의 제 3자가 키 값을 알지 못하도록 하는 것이 중요하다. 기본적으로 둘 이상의 호스트가 키 값을 아는 환경에서는 보안을 유지하기가 쉽지 않다. 암호키 관리를 위해 송수신자가 주기적으로 키 값을 변경할 수 있는데, 이를 처리하는 과정에서 특히 외부로 유출되지 않도록 주의해야 한다.

b 처럼 송수신자가 서로 다른 키를 사용하는 것을 비대칭키(Asymmetric key) 방식이라 한다. 이 방식에서는 보통 키 하나가 공개되므로, 공개되지 않는 나머지 키에 대해 송신자나 수신자 스스로 보안에 주의해야 한다.

대체 암호화

암호문을 작성하는 방법은 사용하는 알고리즘에 따라 다양하다. 가장 간단한 방식은 특정 문자를 다른 문자로 일대일(1:1) 대체하는 것인데, 이 때는 문자와 대체 문자를 나열한 표가 암호키와 해독키가 된다. 이와 같이 임의의 문자를 다른 문자로 대체하는 암호화를 대체 암호화(Substitution Cipher)라 한다. 대체 암호화 방식의 예로는 시저 암호화, 키워드 암호화, 복수 개의 분자 변환표 사용 방식 등이 있다.

시저 암호화

시저 암호화(Caesar Cipher)는 줄리어스 시저가 처음 사용했을 것이라는 의미에서 붙은 이름이다. 알파벳 문자를 순차적으로 세 문자씩 오른쪽으로 이동하면서 대체 문자를 사용하는 방식이다. 시저 암호화에서 암호키에 해당하는 문자 변환표는 아래와 같다. 편의상 원문서의 문자는 대문자로, 암호문의 문자는 소문자로 표기한다.

시저 암호화, 복호화

 

시저 암호화 방식의 장점은 단순함이다. 특히 세 문자 간격으로 이동된 암호키를 쉽게 기억할 수 있음로 간단한 수작업만으로도 암호문을 작성하고 해독할 수 있다. 그러나 이런 단순함은 외부 침입자도 쉽게 해도할 수 있어 단점도 된다.

키워드 암호화

시저 암호화 방식의 단점을 부분적으로 보완한 대체 암호화로 키워드 암호화(Keyword Chipher)가 있다. 키워드 암호화는 키워드로 지정한 단어를 암호문 앞줄에 먼저 적고, 키워드에 표시된 문자를 뺀 나머지 문자를 알파벳 순으로 기술하는 방식이다.

키워드 암호화

키워드를 모르면 시저 암호화보다 대체 문자 변환표를 추측하기가 훨씬 어렵다. 그러나 대체 문자 변환표의 오른쪽으로 갈 수 록 원문과 암호문의 문자가 같아질 확률이 높아 사저 암호화보다 나쁜 결과를 초래할 수 있다.

복수 개의 문자 변환표

변환표를 둘 이상 사용해도 된다.

두 개의 문자 변환표

a와 b를 통해 홀수 위치와 짝수 위치에 있는 암호화 하는데 사용한다.

이 방식의 장점은 원 문서의 동일 문자가 암호문에서는 다르게 해독되므로 해독을 더 어렵게 한다는 것이다.

위치 암호화

대체 암호화 방식은 원문서에 포함된 각 문자의 배열 순서가 일정하게 유지된다. 대신 특정 문자를 다른 문자로 대체함으로써 암호문을 해독하기 어렵게 한다.

이와 달리 문자의 배열 순서를 변경해 암호화하는 위치 암호화(Transposition Chipher)방식이 있다. 위치 암호화는 각 문자의모양은 그대로 유지한 채, 문자의 배열 위치를 임의로 변경하여 암호화한다. 위치 암호화 방식의 예로는 컬럼 암호화, 키워드 암호화 등이 있다.

컬럼 암호화

위치 암호화에서 가장 간단한 방식인 컬럼 암호화(Column Cupeher)는 전체 문장을 컬럼을 기준으로 다시 배치한다.

컬럼 암호화 예

일반적으로 컬럼 암호화 방식은 맨 마지막 줄에도 데이터를 채우기 때문에 빈 공간이 있으면 임의의 문자를 채워 암호화 한다. 컬럼 암호화를 두 번 수행하는 2중 컬럼 암호화 방식은 해독을 더 어렵게 한다. 이 때 첫 번째 컬럼 암호화와 두 번째 컬럼 암호화의 컬럼 길이를 다르게 하는 것이 유리하다.

키워드 암호화

일반적으로 위치 암호화 방식에서는 중복된 문자를 포함하지 않는 임의의 단어를 암호키로 제공하는 키워드 암호화(Keyword Cipher)가 사용된다.

키워드 암호화 예


Reference

쉽게 배우는 데이터 통신과 컴퓨터 네트워크

https://step-by-step-developer.tistory.com/10

 

암호화와 네트워크 보안

암호화의 이해 네트워크는 개방형 시스템으로 외부 노출 가능성이 있다. 암호화 관련 용어 - 메시지 읽기: 전송 선로를 도청, 암호화 기법으로 해결함 - 전송 방해: 송수신자 간의 통신을 방해,

step-by-step-developer.tistory.com

 

https://soso-hyeon.tistory.com/115

 

[쉽게 배우는 데이터 통신과 네트워크] CH17. 암호화와 네트워크 보안 (최종)

01 암호화의 이해1 암호화 관련 용어메시지 읽기: 인터넷에서 신호 도청을 차단하기는 쉽지 않으므로 암호화 기법으로 해결해야 한다.전송 방해: 전송 메시지가 수신자에게 도착하지 못하게 함

soso-hyeon.tistory.com

 

https://steemit.com/kr-dev/@codingman/c--1550621310494

 

[C언어] 추억의 암호학 개론(시저 암호) — Steemit

[C언어] 추억의 암호학 개론(시저 암호) 어느정도 C언어에 대한 이해를 하게 되었을 때 암호학개론을 배우게 되었네요. 여기에서도 다양한 암호 알고리즘을 배웠었는데 이 학문도 꽤 재밌는 학문

steemit.com