암호

Senior9324 (토론 | 기여)님의 2015년 11월 1일 (일) 15:38 판

Cryptography, 혹은 Password

개요

비밀을 유지하기 위하여 당사자끼리만 알 수 있도록 꾸민 부호나 신호를 뜻하는 말로, 이것도 종류가 여러 가지로 나누는데 여기서는 크립토그래피 쪽을 다루려 한다. 이와 대조되는 게 스테가노그래피인데, 이 스테가노 그래피는 아예 메시지가 있다는 걸 감추는 방식인 데 반해, 크립토그래피의 경우엔 메시지가 있다는 걸 노출시키는 대신에 어렵게 짜놓아 뚫는 사람을 지치게하는 역할을 수행하고 있다. 더 자세히 알고 싶다면 지역 도서관이나 대학 도서관에서 데이비드 칸의 코드 브레이커란 책을 읽는 걸 추천. 이 책을 읽게 되면 다른 암호 관련 서적들이 오징어로 보이는 효과가 나타날 정도로 암호에 관해 폭넓게 다루고 있다.

방법 및 역사

암호에 관한 방법은 수많은 방법들이 있으며, 역사도 아주 오랫동안 지속되어 왔다. 사실 사용이 적은 언어의 경우 충분히 암호가 될 수 있으며, 실제로 우리가 쓰는 한글의 경우, 초기에 누출할시 대역죄인이 될 정도로 보안에 신경을 쓸 정도였으며, 한자의 경우 지배계층의 암호로 사용되기도 하였다. 또한 제2차 세계대전때 미군은 나바호족의 언어를 암호로 쓰기도 하였다.

종류

  • 비밀키(대칭키)
    • 치환형
    • 전치형
  • 공개키
  • 단방향

카이사르 암호

간단한 치환 암호의 하나이다. 알파벳의 순서를 일정 단위로 밀어내는 방식인 것 예를 들어 3글자씩 밀어내는 카이사르 암호로 "Hello"를 표시한다면 ""Khoor"가 되는 방식. 나름 머리를 쓴 방법이지만 몇 글자씩만 밀어내면 되는지 알기만 하면 되는 데다(알파벳이 26자밖에 되지 않으므로 조금만 끈기를 가지고 조합하면 해석이 가능하다), 로마자와 같이 표기가 되는 언어가 아닌, 한글처럼 자모조합으로 글자가 만들어지는 경우와 한자처럼 문자 수가 방대한 경우에는 사용이 어렵거나 불가능하다.

비즈네르 암호

프랑스의 비즈네르(Vigenere)가 카이사르 암호를 더 복잡하게 만든 것이다. 알파벳을 순서대로 늘어놓은 문자열을 왼쪽으로 N(0~25)번 로테이션 한 문자열을 N행에 위치시킨 테이블을 찾는다. 암호화를 원하는 문자를 열에서 찾고, 각 문자의 암호화 키를 행에서 찾아서 행과 열이 만나는 지점의 문자를 찾으면 그것이 암호화된 문자이다.

참고자료

"보안과 암호화 모든 것", H.X. Mel, 인포북