암호학

반응형


  암호학(Cryptology)란, 평문(Plain text)을 암호문(Cipher text)으로 만드는 암호기술(Cryptography)과, 이를 제3자가 해독하는 방법을 분석하는 암호해독(Cryptanalysis)에 대하여 연구하는 학문을 말다.  평문은 암호화하기 전의 메시지이고, 암호문은 암호화한 메시지를 의미다. 암호기술을 이용해서 메시지의 기밀성을 보장다.


  암호 기법, 즉, 암호 구현 기법에는, 치환(Substitution), 전치(Transposition), 블록(Block), 스트림(Stream) 등이 있다.  또한 치환과 전치를 합성시킨 기법들도 있다. 치환 암호(대치 암호, Substitution Cipher)란, 각 글자를 교환하여 다른 글자로 대체하는 것을 의미다. 비트, 문자, 문자 블록을 다른 비트, 문자, 문자 블록들로 대체다. 예를 들면, 1을 a로 바꾸거나, 2를 b로 바꾸는 경우이다. 이렇게 문자들을 교환할 때, 일대일 대응이 아니어도 관계가 없다. 전치 암호(Transposition Cipher)란, 원문의 위치를 바꾸는 것이다. 비트, 문자, 문자 블록들이 원래의 위치에서 다른 위치로 이동된다. 위치만 바꾸는 것이기 때문에, 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일하게 된다. 반면에 치환 암호의 경우, 문자 자체를 다른 것으로 변경할 수 있는 것이기 때문에, 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 문자의 집합이 동일하지 않을 수 있다. 정리하면 치환은 교환하는 것이고, 전치는 위치를 바꾸는 것이다. 그리고 블록 암호(Block Cipher)란, 평문을 일정 크기의 블록으로 나누어서 암호화를 하는 것이다. round라는 것을 사용하여 반복적으로 암호화 과정을 수행다. 블록 암호 기법에서 치환과 전치가 사용된다. 이와 다르게 스트림 암호(Stream Cipher)란, 비트 혹은 바이트 단위로 순차적으로 암호화하는 것이다. 이때, 평문과 동일한 크기의 키 스트림과 평문을 XOR 해서 암호화를 진행다. XOR 연산을 위해서 초기값이 처음에 필요하다. 비교하면, 블록 암호의 암호화 단위가 블록인 것과 다르게, 스트림 암호의 암호화 단위는 비트이다. 블록 암호에 비해 스트림 암호가 속도가 빠른 편이다. 또한 스트림 암호는 오디오, 비디오 스트리밍, 무선통신의 환경에서 많이 사용된다. 블록 암호의 사례로는 DES, SEED, IDEA, RC5, AES, ECB, CBC, PCBC 등이 있고, 스트림 암호의 사례로는 LFSR, RC4 등이 있다. 또한 키의 형태에 따라서 비밀키(대칭키) 암호화와 공개키(비대칭키) 암호화로 구분하기도 하는데, 이 내용은 중요한 부분이라 따로 정리할 예정이다.


  이러한 암호화(Encryption)의 역과정이 복호화이다. 복호화(Decryption)란, 암호문으로부터 평문을 얻어내는 것이다. 참고로 복호화와 암호해독은 같을 것 같지만 같은 의미가 아니다. 복호화는, 복호화키를 합법적으로 가지고 있는 수신자가 암호문으로부터 평문을 얻어내는 것을 의미다. 반면에 암호해독이란, 복호화키를 모르는 제3자가 복호화키를 찾아내거나 평문을 얻어내는 비정상적인 활동을 의미다. 그밖에 알고 있으면 좋을 개념으로, 확산(Diffusion)과 혼돈(Confusion)이라는 개념이 있다. 확산이란, 평문의 통계적 성질을 암호문 전반에 퍼뜨려 숨기는 것을 의미다. 다시 말해 평문과 암호문 사이의 관계를 숨기는 것이다. 혼돈이란, 암호문과 키의 관계를 숨기는 것을 말다. 당연히 확산과 혼돈 성질을 보다 더 높게 만족시키는 것이 암호화 강도를 증가시킨다. 암호화 강도를 증가시킨다는 것은, 공격자의 공격을 좌절시킨다는 의미이다. 앞서 설명했듯이, 블록 암호는, 치환과 전치 기법을 사용하여 이 확산과 혼돈 성질을 만족시킨다.

반응형

+ Recent posts