암호학

{{{#!wiki style="background-color:#fff"

{{{#!wiki style="margin:5px; display:inline-block"

}}}{{{#!wiki style="margin:5px; display:inline-block"

}}}}}}

형식과학의 일반적 분류

수학

통계학

논리학

암호학

1. 개요
2. 고전 암호
2.1. 카이사르 암호
2.2. 비즈네르 암호
2.3. 스키테일
2.4. 단일문자 체계
3. 현대 암호
3.1. 양방향 암호 시스템
3.1.1. 대칭 키 암호 시스템
3.1.1.1. 블록 암호
3.1.1.2. 스트림 암호
3.1.2. 공개 키 암호 시스템
3.1.2.2. 타원 곡선 암호
3.1.3. 양자 암호
3.2. 단방향 암호 시스템
4. 관련 문서

1. 개요

정보를 보호하기 위한 수학적, 언어학적인 방법을 다루는 학문이다. 컴퓨터과학, 수학, 언어학과 관련 깊다. 전시에서의 통신 수단으로도 많이 쓰이기 때문에 군사 기술과도 관계가 깊다.

암호학은 크게 두 가지 분류로 나누어진다. 후술할 대칭키 암호 시스템과 공개키 암호 시스템이며, 역사적으로는 대칭키 암호 시스템이 먼저 등장하였다.

암호학에 대해서 설명할 경우에는 앨리스(Alice)와 밥(Bob)이 자주 등장한다. 이는 A가 B에게 메세지를 전달한다고 하는 것이 별로 재미가 없을 뿐만 아니라, 딱딱하게 "Person A", "Person B" 계속 운운하는 것보다는 성별이 뚜렷히 드러나는 이름인 앨리스와 밥을 도입해서 인칭대명사(He, She 등)를 써먹으려는 영어권 학자들의 센스가 반영된 결과이다. C의 캐롤(Carol), D의 데이브(Dave)가 등장하기도 하지만, 학문이 학문이니만큼 앨리스와 밥 다음으로 자주 나타나는 인물은 E의 이브(Eve). Eavesdropper(엿듣는 사람)의 별칭이며, 대개 암호 프로토콜을 공격하려는 제3자이다. xkcd에서 이와 관련한 우스갯소리를 그려낸 바 있는데, 컴퓨터과학자들이 지루한 이야기에 집중하게 하는 법 Eve의 사연Alice와 Bob 이외의 이름을 정리해놓은 글

수학과에서는 4학년 때 응용 수학으로서 배우게 된다. 그리고 국가정보원, CIA 등 정보기관의 가장 대표적인 이미지를 만들어주는 학문으로 정보기관 채용 모집인원도 암호학 전공자가 아주 많은 편이다.

2. 고전 암호

2.1. 카이사르 암호

역사상 가장 오래된 암호의 형태 중 하나로 알려져 있으며, 카이사르가 사용했다 하여 이렇게 이름이 붙었다. 한 글자를 다른 글자로 치환하는 치환 암호이며, 총 가능한 키의 개수는 25가지이다. 보통 카이사르 암호는 글자 빈도 분석으로 바로 알아낼수가 있다.아니면 하나하나 넣다 보면 바로 알 수 있다. 어느 정도 익숙한 사람들은 그냥 암호문을 보기만 해도 알 수 있을 정도로...

제작 방법은 원문이 있을 때, 그 원문을 키에 해당하는 글자[1]의 수만큼 뒤로 보내서 만든다. 다음은 그 예시이다.

원문

b

r

u

t

u

s

i

s

b

e

t

r

a

y

e

r

d

d

d

d

d

d

d

d

d

d

d

d

d

d

d

d

암호문

F

V

Y

X

Y

W

M

W

F

I

X

V

E

C

I

V

2.2. 비즈네르 암호

카이사르 암호를 키값이 26개 밖에 존재하지 않는다는 단점을 보완해서 만든 암호이다.

여기서 키는 한 글자가 아닌 하나의 단어로 키 칸에 계속 반복되게 적는다. 그럼 같은 단어라도 키에서 다른 위치에 걸리게 되면 암호화된 글자는 달라지게 된다.

상세히 적자면, A에 0, B에 1, ..., Z에 25의 숫자를 대입해서 원문과 키의 숫자를 더한 결과값을 나타낸 것이다.

다음은 그 예시다. 이 예시에서 키는 'dog' 라고 하자.

원문

b

r

u

t

u

s

i

s

b

e

t

r

a

y

e

r

d

o

g

d

o

g

d

o

g

d

o

g

d

o

g

d

암호문

E

F

A

W

I

Y

L

G

H

H

H

X

D

M

K

U

암호문에 HHH 라는 연속된 글자가 나오지만, 이것의 원본은 bet 로 각각 다르다. 그만큼 해독이 어려워진다.

2.3. 스키테일

주로 스파르타에서 전쟁에 나가 있는 군대에 메시지을 전할때 썼던 암호이다.

이 암호를 암호화 하고 복호화 하는 과정은 스키테일(Scytale) 이라는 원통형 나무 막대기를 이용한다.

이것으로 암호화하는 과정은 다음과 같다.

1. 이 막대기에 종이를 왼쪽부터 오른쪽으로 위에서 아랫방향으로 돌려 싼 다음 왼쪽에서 오른쪽으로 메세지를 적는다.

2. 빈칸은 아무렇게나 채운 다음 종이를 스키테일에서 푼다.

이것을 복호화 할 때는 같은 굵기의 스키테일에 감아서 확인을 해보면 된다.

2.4. 단일문자 체계

2.5. 에니그마

  자세한 내용은 에니그마(기계) 문서를 참고하십시오.

3. 현대 암호

3.1. 양방향 암호 시스템

평문과 암호문 사이의 변환이 자유로운 암호 체계.

3.1.1. 대칭 키 암호 시스템

대칭 키 암호 시스템은 암호화와 복호화에 사용되는 키가 같은 암호 알고리즘 체계이다.

두 사람이 대칭키 암호를 이용하여 데이터를 주고 받기 위해서는 동일한 키를 나눠가져야 하므로 키 분배 방법이 매우 중요하게 다뤄진다. 일반적으로 키 동의, 키 합의 방법으로 DH 알고리즘을 사용하거나 SSL/TLS 처럼 공개키 암호를 이용하여 키를 분배한다.

3.1.1.1. 블록 암호
3.1.1.2. 스트림 암호
  • RC-4

3.1.2. 공개 키 암호 시스템

공개 키 암호 시스템은 위의 대칭키 암호 시스템에서의 보안성과 기하급수적으로 늘어나는 키의 개수를 개선하기 위한 방법으로, 암호화에 사용되는 키와 복호화에 사용되는 키가 다르고, 공개 키로부터 비밀 키를 계산하기 매우 어렵다. 처리해야 하는 정보량이 많기 때문에 컴퓨터가 발명되고 난 뒤에 생겼다.

3.1.2.1. RSA

  자세한 내용은 RSA 암호화 문서를 참고하십시오.

3.1.2.2. 타원 곡선 암호

3.1.3. 양자 암호

양자의 특징인 불확정성, 양자얽힘 등을 이용하여 암호화하는 기법.

현재 상용화되거나 연구중인 양자암호 기술은 대부분 양자 키 분배 기술이며, 실질적인 양자 암호화는 거리가 있으므로 주의해야 한다.

3.2. 단방향 암호 시스템

평문에서 암호문으로 만드는 것은 자유지만, 그 반대는 아니란다로 대표되는 암호 체계. 대부분이 해쉬 암호화 체계이다.

이는 일반적으로 password 를 저장하는 용도로 사용된다. 예를 들어 초창기 유닉스/리눅스는 유저의 password 를 암호화 하여 /etc/passwd 파일에 저장해 두었다. 보안을 위해서 암호화 방식도 어려운 것으로 변경되었을 뿐만 아니라 저장 위치도 /etc/shadow 라는 파일로 변경하고, 관리자가 아니면 볼수도 없도록 제한을 걸어놨다.

예를 들여 어떤 사용자의 password 를 12345678 라고 한다면, 이를 MD5 로 암호화했을때 25d55ad283aa400af464c76d713c07ad 이 되는데, 이를 저장해 둔다. 그리고, 누군가가 로그인 시도할때 12345678 을 입력하고 이를 MD5 로 암호화 해서 그결과를 비교해보면 같은 값이 나옴을 알 수 있다. 하지만, 반대로 암호화된 문자열로 부터 원래 암호를 복호화하는 것은 아주 어렵다. 다만, 컴퓨터의 발전으로 인해서 MD5 같은 알고리즘은 더이상 안전하지 않다.

3.2.1. MD5

  자세한 내용은 MD5 문서를 참고하십시오.

3.2.2. SHA

  자세한 내용은 SHA 문서를 참고하십시오.

4. 관련 문서


  1. [1] a=1, b=2...

분류

최종 확인 버전:

cc by-nc-sa 2.0 kr

Contents from Namu Wiki

Contact - 미러 (Namu)는 나무 위키의 표가 깨지는게 안타까워 만들어진 사이트입니다. (21.93ms)