본문 바로가기

Programming/네트워크/보안

암호화 알고리즘 - 고전암호

  • 단순치환 암호(Simple Substitution) : 평문을 키 n 만큼 위치이동 시켜 암호문 만듬, 이동시켜서 만들지 않고 임의의 문자 순열로 치환 해도 됨

예 : a b c d e f g h i j k l m n o p q r s t u v w x y z 를 키를 3으로 하여 치환 한다면

      d e f g h i j k l m n o p q r s t u v w x y z a b c 로 대치 될 수 있다.

단점 : 평문에 쓰인 문자의 빈도수가 그대로 노출 됨


  • 이중전위 암호(Double Transposition) : 평문을 주어진 크기 형태의 행렬로 변환하고 행과 열을 기술된 순서로 바꿈

-> 키는 행렬의 크기와 열/행의 순열

-> 평문에 나타나는 문자를 감추지는 않음. 하지만 평문의 통계적 특성이 암호문 전체에 흩어져서 평문속에 포함된 통계적 정보에 의존하는 공격 막을수 있음


  • 일회성 암호(One-Time Pad) : 평문과 길이가 같은 키로 평문의 각문자열과 키의 각문자열비트를 xor 함 -> xor연산의 특성상 같은것을 xor하면 0이 되므로 복호화도 그대로 키와 암호문을 xor하면 됨

-> 키가 임의로 만들어 졌고 한번만 사용 된다면 암호문으로 평문의 길이 외에 아무 정보도 유추 할 수 없음 -> 암호화 하기전에 더미코드를 문자열에 추가 할수도 있으므로 메시지의 길이를 알아도 무용지물  -> 수학적으로 안전성이 증명됨

-> 동일키가 여러번 사용되면 이 암호문들에는 깊이가 있게되고 이를 이용해 암호문을 깰수 있게 될 가능 성 생김 -> 실제 구 소련 에서 사용하던게 이런식으로 깨짐(VENONA 프로젝트)

-> 키의 사이즈가 평문 사이즈와 같아야 하므로 비실용적


  • 코드북 암호(Codebook Cipher) : 단어와 해당 단어에 할당 된 코드를 수록하고 있는 사전을 가지고 평문을 암호화 -> 치환 암호의 일종

-> word순으로 정렬된 코드북으로 암호화, code word순으로 정렬된 코드북으로 복호화

-> 같은 코드북으로 여러번 암호화 하면 frequency 등으로 유추가 가능 하므로 Additive를 이용 하기도 함 -> 코드북으로 일단 암호화 한 뒤 Additive book의 임의의 위치에 있는 additive 를 암호 문에 더함

'Programming > 네트워크/보안' 카테고리의 다른 글

안전한 패스워드 생성  (0) 2013.04.27
정보보안에 쓰이는 용어  (0) 2013.04.27