티스토리 뷰
1.3 고대 암호
아주 먼 옛날에도 암호화의 필요성은 존재했었습니다. 가령 전쟁 중에 중요한 비밀 문서를
전달 해야 할 상황이 발생 했을 때, 비밀 문서가 적에게 넘어 가더라도, 적이 그 문서의 내용을 알아 볼 수 없게 하기 위해서
비밀 문서의 내용을 암호화 했던 것이죠. 여기서 암호화란 암호화 규칙을 아는 사람만이 그 내용을 해독 할 수 있게 메시지
내용을 변조 시켰다는 것을 의미 합니다. 역사 적으로, 가장 중요한 고대 암호 방법은 치환 암호화 전치 암호 입니다. 이 두
암호화 방법은 몇 천 년부터 사용되어 왔던 오래된 암호화 방법입니다.
비록 이 두 암호 법이 오래 되었지만, 이 두 암호화 방법은 지금도 일부분 사용 되고 있을 정도로 암호 학에서는 중요한
암호화 방법 입니다. 그럼 이 두 가지 암호화 방법을 알아 보겠습니다.
1.3.1 치환 암호 ( Substitution Cipher )
치환 암호는 평문의 각 문자를
예로 ABCDEFGHIGKLMNOPQRSTUVWXYZ 문자를
BCDEFGHIGKLMNOPQRSTUVWXYZA 로
그럼 I LOVE YOU 라는 평문은
J MPWF ZPV 로 변환 될 것입니다.
암호화 규칙을 모르는 사람은 암호문을 보고는 이 것이 무엇을 의미 하는지 알 수 없을 것입니다.
그러나 이 치환 암호는 각 문자가
통계적 방법으로 쉽게 풀 수 있습니다. 예를 들면, 영어 문장에서 가장 많이 나타나는 문자는 E (12.7%) ,
T (9.1 %) , A (8.2 %) 의 순입니다. 이 사실을 가지고 암호문의 각 문자의 분포를 측정하면 암호문을
풀 수 있게 되는 것 입니다. 물론 현대는 이렇게 간단한 치환 방법을 통한 암호화는 사용 하지 않습니다.
현대의 암호학에서 치환 암호는 매우 복잡한 알고리즘을 통해 이루어 집니다.
1.3.2 전치 암호 (Transposition Cipher )
전치 암호는 평문의 문자를 재 배열 하는 방법입니다. 어떤 규칙에 의하여 평문 전체의 문자의 순서를
재 배열 함으로서 평문을 암호화 합니다.
예로 1 2 3 4 의 순서로 된 평문을 4 3 2 1 의 순서로 바꾸기로 합시다.
그럼 LOVE 라는 평문은 EVOL 로 변환 될것입니다.
이 암호화 방법 역시 암호화 규칙을 모르는 사람은 암호문을 보고는 이 것이 무엇을 의미 하는지
알 수 없을 것입니다. 그러나 전치 암호는 문장의 패턴을 분석 함으로서 암호를 해독 할 수 있습니다.
예를 들어서 영어 문장에서의 in , to , of 같은 전치사나 the 같은 단어는 매우 많이 나오기 때문에
이의 빈도나 패턴을 분석하여 암호를 해독합니다. 위에서 설명한 치환 암호화 전치 암호는 비록 간단 하지만
암호화에 있어 중요한 개념을 발견 할 수 있습니다. 그것은 확산(Diffusion) 과 혼돈(Confusion)입니다.
확산 이라는 것은 원래의 문장을 무작위로 흩뿌려 놓은 것처럼 보이게 암호문을 만드는 것입니다.
암호문을 보는 누군가는 문자들의 연관성을 찾을 수 없으므로 원래의 문장을 알 수 없게 될 것입니다.
혼돈 이라는 것은 암호문을 누군가가 보았을 때 그 암호문만을 가지고 원래의 문장에서 암호문을
만들어 내는 규칙을 찾기 어렵다는 것을 말합니다. 위에서 설명한 두 가지 예는 암호문을 보고
매우 쉽게 암호문을 작성 하는 규칙을 찾을 수 있었습니다. 따라서 혼돈 이 적은 암호화 방법이라고
할 수 있습니다. 현대 암호는 이 확산 과 혼돈의 원리를 상대방이 해독하기 어렵게 매우 복잡한 알고리즘을
사용 하여 구현 합니다.
'P rogramming > E ncryption' 카테고리의 다른 글
| 메시지 다이제스트 ( MD ) (0) | 2012.08.06 |
|---|---|
| MD5 (0) | 2012.08.03 |
| 1.3 고대 암호 예문 (0) | 2012.08.03 |
| 1.2 해커와 대응 방법 (0) | 2012.08.03 |
| 1.1 암호화 (0) | 2012.08.03 |
- Total
- 331,919
- Today
- 0
- Yesterday
- 89
- 알프스목초지1-4
- Joseph Redmon
- 리눅스
- C# 패널
- 자신만의향
- PolyBridge1-4
- DaleEvans
- C# 패널 예제
- PolyBridge1-3
- 믿는다는것
- 알프스목초지1-3
- PolyBridge1-5
- PolyBridge하는법
- 인생의시간
- 알프스목초지1-2
- PolyBridge1-1
- OnlyICan
- 분할작업
- Nina Fedoroff
- 1Day1Sentence
- c#
- 알프스목초지1-1
- 사람의인생
- ted
- PolyBridge
- 좋은글귀
- 알프스목초지1-5
- PolyBridge1-2
- 폴리브릿지
- C# 판넬 예제
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 2017/08 (4)
