Friday, October 17, 2014

[매드프로젝트 강좌] 암호화에 대해서 알아보자 - 02. 암호화란 무엇인가?

암호화는 '정보(데이터)를 암호화 알고리즘을 통해 암호화된 정보(데이터)로 변형하여 제3자로부터 중요한 정보(데이터)를 보호하는 기술' 이다. 이를 이해하기 쉽도록 그림으로 그려 보았다.

이렇듯 암호화 되지 않은 정보(데이터)는 다른 사람에게 어떠한 통신기술을 이용하여 전달하고자 할 때 중간에서 가로채 데이터를 악용할 수 있게된다. 따라서 암호화는 4가지 목적으로 암호화 하게 된다.
- 인증(Authentication) : 허가 받은 사용자인지 여부 확인
- 기밀성(Confidentiality) : 허가 받은 사용자만 내용 확인
- 무결성(Integrity) : 데이터의 위-변조 방지
- 부인방지(Non-Reputation) : 송-수신자의 발-수신 사실의 부인 불가

과거 역사에서 보면 위대한 왕과 장군들은 효율적인 통신 수단에 의존해 나라를 다스리고 군대를 움직여 왔다 해도 과언이 아니다. 하지만 동시에 이러한 통신 내용이 적의 손에 들어가 귀중한 비밀이 누설되거나 중요한 정보가 들어가지 않을까 늘 우려했다. 이러한 우려가 암호를 만들게 된 시초라고 할 수 있다. 암호의 어원은 그리스어의 비밀이란 뜻을 가진 크립토스(Kryptos)로 알려져 있다. 이는 평문을 해독 불가능한 형태로 변형하거나 암호화된 통신문을 원래의 해독 가능한 상태로 변환하기 위한 모든 수학적인 원리, 수단, 방법 등을 취급하는 기술이나 과학을 말한다.

암호화 기술은 1920년대 세계 1,2차 대전에서 무선 통신 기술의 발전을 기반으로 급격히 발전하기 시작했으며 1970년대 컴퓨터의 사용이 활발해지면서 이를 이용한 암호 기술이 다시한번 급변하였다.

제대로 된 암호화는 메시지 원문의 내용과 암호화 알고리즘을 알아내기 어려운 암호이다. 그러기 위해서는 혼돈과 확산이라는 두 가지 성질을 가져야 한다.
-혼돈(Confusion) : 성질은 메시지 원문의 내용을 짐작하기 어렵게 함.
-확산(Diffusion) : 성질은 암호화 알고리즘의 패턴 추론을 어렵게 함.

좋은 암호는 혼돈과 확산 두 가지 성질 모두를 갖춘 암호이다. 옛날 고전 방식을 이용하여 나타내 보면 아래 그림과 같다.


이 와 같은 방식은 메시지의 원문 내용의 추론을 어렵게 하는 혼돈(Confusion) 성질을 만족하는 방식으로 문자열을 다른 문자열로 이동 교체하는 방식이다.


이 방식은 암호화 알고리즘을 짐작하기 어렵게 하는 확산(Diffusion) 성질을 만족하는 방식으로 무작위로 보이는 '원칙'에 따라 문자열 순서를 바꿔 이동하는 방식이다.
따라서 위의 두가지 방식을 모두 적용 한다면 혼돈과 확산이 동시에 적용된 좋은 암호화 방식이라고 할 수 있다.

현대의 알려진 암호화 방식은 크게 세가지로 분류되는데 '대칭키 암호화', '비대칭키 암호화', '일방향(해쉬함수) 암호화' 로 분류된다. 이 3가지 분류의 암호화에 대해서는 다음 강좌에서 좀 더 자세히 다루기로 한다. 다음 강좌에서는 3가지 분류의 암호화에 대한 개념 정리 및 종류 그리고 최근 가장 많이 사용되는 암호화 알고리즘에 대하여 설명하도록 하겠다.

1 comment :

  1. A very awesome blog post. We are really grateful for your blog post. You will find a lot of approaches after visiting your post. 먹튀검증

    ReplyDelete