암호

Pikabot (토론 | 기여)님의 2022년 5월 25일 (수) 19:16 판 (추적용 분류 강제 갱신 겸 이름 변경 반영)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

암호(暗號, 영어: Cryptography, Password)는 비밀을 유지하기 위해 당사자끼리만 알 수 있도록 꾸민 부호 혹은 신호를 뜻하는 말이다. 리브레 위키의 본 문서에서는 암호 중 특히 스테가노그래피가 아닌 크립토그래피에 중심을 두고 서술한다.

개요[편집 | 원본 편집]

암호는 암호화 방식 및 형식에 따라 종류가 여러 가지로 나뉘는데, 흔히 암호 하면 떠올리는 이상야릇한 메세지, 언뜻 봐서는 알 수 없는 난수 등은 크립토그래피에 속한다.

크립토그래피와 대조되는 것은 스테가노그래피이다. 이 스테가노그래피는 아예 메시지가 있다는 걸 감추는 방식인 데 반해, 크립토그래피의 경우엔 메시지가 있다는 걸 노출시키는 대신에 어렵게 짜놓아 뚫는 사람을 지치게 하는 역할을 수행하고 있다. 대표적으로 마이크로 필름이 있다.

더 자세히 알고 싶다면 지역 도서관이나 대학 도서관에서 데이비드 칸의 코드 브레이커란 책을 읽는 걸 추천한다. 이 책을 읽게 되면 다른 암호 관련 서적들이 오징어로 보이는 효과가 나타날 정도로 암호에 관해 폭넓게 다루고 있다.

방법 및 역사[편집 | 원본 편집]

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

  • 카이사르 암호
    간단한 치환 암호의 하나이다. 알파벳의 순서를 일정 단위로 밀어내는 방식인 것 예를 들어 3글자씩 밀어내는 카이사르 암호로 "Hello"를 표시한다면 "Khoor"가 되는 방식. 나름 머리를 쓴 방법이지만 몇 글자씩만 밀어내면 되는지 알기만 하면 되는 데다(알파벳이 26자밖에 되지 않으므로 조금만 끈기를 가지고 조합하면 해석이 가능하다), 로마자와 같이 표기가 되는 언어가 아닌, 한글처럼 자모조합으로 글자가 만들어지는 경우와 한자처럼 문자 수가 방대한 경우에는 사용이 어렵거나 불가능하다.
  • 비즈네르 암호
    프랑스의 비즈네르(Vigenere)가 카이사르 암호를 더 복잡하게 만든 것이다. 알파벳을 순서대로 늘어놓은 문자열을 왼쪽으로 N(0~25)번 로테이션 한 문자열을 N행에 위치시킨 테이블을 찾는다. 암호화를 원하는 문자를 열에서 찾고, 각 문자의 암호화 키를 행에서 찾아서 행과 열이 만나는 지점의 문자를 찾으면 그것이 암호화된 문자이다.
  • 코드북
    주요 단어와 글자 등을 숫자 코드로 바꾸는 방법. 원문과 암호를 대응시켜 놓은 책자 등을 코드북이라고 한다. 코드북이 있는 사람이라면 특별한 암호학 지식 없이도 해독 가능하지만, 코드북이 탈취된다면 적에게 즉각 정보가 노출된다. 미군은 소수 인디언을 징집하여 그들의 언어를 코드북으로 활용했다고 알려져 있다. 근대에 자주 쓰였으며, 현대에도 낮은 비밀은 간단하게 이걸로 통신하기도 한다. 대한민국 국군이 운용하는 음어가 이 방식.
  • 컴퓨터의 도래
    구형 암호 체계의 창과 방패의 특징이라면 창에 언어학자들이 있었다는 점이다. 이는 치환형 암호로 만든 암호문에서 언어 사용 습관을 분석해내고, 이를 평문으로 대체해가면서 복호화를 해왔기 때문이다. 하지만 이는 에니그마의 출현으로 한계에 부딫쳤고, 처음으로 암호학에 컴퓨터를 도입하는 계기를 마련한다. 연합군 암호실에서 제작한 'Bomba'가 에니그마 해독에 톡톡한 역할을 해주므로써 전세 역전의 발판이 되었다.
    알고리즘 해석 능력의 발달로 1976년 대칭 암호의 약점을 해결한 RSA가 발표되었다.[1]

종류[편집 | 원본 편집]

  • 비밀키(대칭키)
    • 치환형 : 정해진 규약에 따라 글자/단어를 치환한다.
    • 전치형 : 정해진 순서에 따라 글자를 뒤섞는다.
  • 공개키
  • 단방향
    단방향 암호화는 비밀 유지보다는 무결성 확인에 의의를 두고 있다. 특정 파일을 단방향 암호화에 집어넣었을 때 값(Hash)이 공개된 것과 다르다면 손상되거나 변조된 파일이 된다.

암호 용어[편집 | 원본 편집]

  • 평문(Plaintext) : 비밀스러운 형식으로 전환될 메시지
  • 스테가노그래피(Steganography) : 메시지의 존재 자체를 숨기는 방식
  • 크립토그래피 (Cryptography) : 비밀 메시지의 존재 자체를 숨기지 않으며, 평문의 다양한 변형을 통해 외부인이 알아보지 못하게 한다.
  • 전위(Transposition) : 평문 또는 암호문의 배치 순서를 뒤섞어 놓은 것
  • 치환(Subsitiution) : 평문의 글자들이 다른 글자나 숫자, 상징으로 치환
  • 동음이자(Homophone) : 평문 1자에 다양한 기호를 동시에 할당하는 것으로 통계적 기법을 이용한 해독을 회피하고자 사용한다.
  • 영(Null) : 아무 의미 없는 기호를 중간에 끼운 것으로 암호 해독자를 엿먹인다.
  • 단일문자 체계(Monalphabetic) : 하나의 암호 알파벳을 사용하는 체계
  • 다중문자 체계(Polyalphabetic) : 두 개 이상의 암호 알파벳이 미리 정해진 어떤 유형에 따라 사용되는 경우
  • 명칭일람(Nomenclator) : 1400년대부터 1850년대까지 반은 코드고 반은 암호인 체계. 코드와 비슷한 이름들, 단어들, 음절들의 목록과 동음이의자를 가진 분리된 암호 알파벳으로 이루어져 있었다.
  • 키(Key) : 암호 알파벳 글자들을 배열 또는 변환할 때 교묘하게 뒤섞는 방법, 암호 기계의 설정과 같은 일들을 지정
  • 초암호화(Superenchiphment) : 암호 안전을 위해 한번 더 다른 체계나 비슷한 체계로 암호화 하는 것. 예를 들자면 같은 암호를 돌리는 3DES
    • 플라코드(Placode) : 초암호화 단계에서 해독된 것. 암호화 되지 않은 코드
    • 엔시코드(Encicode) : 초암화화 단계에서 변형된 것. 암호화된 코드
  • 암호화(Enchiper)나 코드화(Encode) : 평문을 변형
    • 암호원본(Ciphertext), 코드원본(Codetext)
  • 암호문(Cryptogram) : 최종 비밀 메시지
  • 해독(Decipher, decode) : 변형 과정을 되돌려 원본 메시지를 드러내기 위해 합법적으로 열쇠와 암호체계를 소유한 사람에게 해당
  • 암호분석(Cryptanalysis, Codebreaking) : 열쇠나 암호체계를 소유하지 않은 제 3자, 즉 적이 암호문을 푸는 것
  • 암호학(Cryptology) : 암호작성(Cryptography)과 암호분석(Cryptanalysis)를 모두 포함하는 학문, 혹은 신호를 안전하게 전달하고 그 신호에서 정보를 추출하는 두 가지 분야 전반을 포괄적으로 지시.

참고자료[편집 | 원본 편집]

각주

  1. 사실 영국의 GCHQ가 5년 더 빨리 발명하였으나 기밀로 하였다.