IT/정보보안

[암호학] 암호기법의 분류 - 치환암호, 전치암호, 블록암호, 스트림암호, 링크암호, 종단간암호, 하드웨어암호, 소프트웨어 암호

액트 2019. 11. 12. 14:00

null


암호기법의 분류

null

 

1. 치환 암호와 전치 암호

  (1) 치환 암호(대치 암호, Substitution Cipher)

    ① 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.

    ② 치환 암호의 엄밀한 의미는 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다. 

    ③ 즉, 평문의 문자를 다른 문자로 "교환하는 규칙" 이다. 이때 교환 규칙은 일대일 대응이 아니어도 상관없다.

  (2) 전치 암호(Transposition Cipher)

    ① 비트, 문자 또는 블록을 문자 집합 내부에서 "자리를 바꾸는 규칙"이다. 평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응 규칙을 갖는다는 점이 특징이다.

 

2. 블록 암호와 스트림 암호

  (1) 블록 암호(Block cipher)

     블록 암호(block cipher)는 어느 특정 비트 수의 "집합"을 한 번에 처리하는 암호 알고리즘을 총칭한다. 이 "집합"을 블록(block)이라고 하며, 블록의 비트 수를 블록 길이(block length)라고 한다.

    ② 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화한다. 일반적으로 블록의 크기는 8비트(ASCII) 또는 16비트(Unicode)에 비례한다.

    ③ 스트림 암호화와는 다르게 Round를 사용하고, 반복적으로 암호화 과정을 수행해 암호화 강도를 높힌다.

null

  (2) 스트림 암호(Stream cipher)

    ① 한번에 1비트 혹은 1바이트의 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이며, 암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.

    ② 블록 암호는 블록 단위로 처리가 완료되므로 어디까지 암호화가 진행되었는가 하는 내부 상태를 가질 필요가 없다. 한편 스트림 암호는 데이터의 흐름을 순차적으로 처리해 가기 때문에 내부 상태를 가지고 있다.

    ③ 스트림 암호는 군사 및 외교용으로 널리 사용되고 있으며, 일부 상용으로도 활발히 사용되고 있다. 또한, 스트림 암호는 이동 통신 환경에서 구현이 용이하고, 안전성을 수학적으로 엄밀하게 분석할 수 있어 이동 통신 등의 무선 데이터 보호에 적합하다.

null

구분 블록 암호 스트림 암호
장점 암호화 속도가 빠름, 에러 전파현상 없음 높은 확산, 기밀성, 해시함수 등
단점 느린 암호화, 에러 전달 낮은 확산
사례 DES, IDEA, SEED, RC5, AES LFSR, MUX generator
암호화 단위 블록 비트
주요 대상 음성, 오디오/비디오 스트리밍 일반 데이터 전송, 스토리지 저장

◆ 블록 암호는 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화

◆ 스트림 암호는 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이며, 암호화 방식은 평문과 키 스트림을 XOR하여 생성

 

3. 위치에 따른 암호화의 구분

  (1) 링크 암호화(Link Encryption)

    ① 모든 정보는 암호화되고, 패킷은 라우터나 다른 중간에 있는 장비가 이 패킷을 다음에 어디로 보내야 하는지 알아야 하기 때문에 각 홉에서 해독되어야 한다. 

◆ 홉(hop) : 패킷이 그것의 목적지에 도달할 수 있도록 돕는 장비이다. 

    ② 라우터는 패킷의 헤더 부분을 해독하고, 헤더 내의 라우팅과 주소 정보를 읽고, 그런 다음 그것을 다시 암호화하고 진행 방향으로 보내야 한다.

    ③ 링크 암호화는 데이터 링크 또는 물리적 계층에서 일어난다. 하드웨어 암호화 장치들은 물리적 계층과의 인터페이스를 가지고 그것을 통과하는 모든 데이터를 암호화한다.

  (2) 종단감 암호화(End-to-End Encryption)

    ① 종단간 암호화에서는 헤더와 트레일러가 암호화되지 않기 때문에 패킷을 각 홉에서 해독하고 암호화할 필요가 없다. 근원지와 목적지 사이에 있는 장비들은 단지 필요한 라우팅 정보만 읽고 패킷을 그 진행 방향으로 통과시키게 된다.

    ② 종단간 암호화는 보통 근원지 컴퓨터의 사용자에 의해 시작된다. 이것은 사용자가 어떤 메시지를 암호화할 것인지 하지 않을 것인지를 결정할 수 있는 보다 나은 유연성을 제공한다.

    ③ 종단간 암호화는 애플리케이션 계층에서 암호화가 이루어진다.

링크 암호화: 헤더를 포함한 모든 데이터를 암호화

종단간 암호화; 헤더(라우팅 정보)는 암호화하지 않음

null

구분 링크 암호화 종단간 암호화
특징 ISP나 통신업자가 암호화
●헤더를 포함한 모든 데이터를 암호화
● 유저가 알고리즘 통제 불가
● 사용자가 암호화
● 헤더(라우팅 정보)는 암호화하지 않음
● 알고리즘에 대한 통제는 사용자가 함
장점 ● User-transparent하게 암호화되므로 운영이 간단
● 트래픽분석을 어렵게 함
● 온라인으로 암호화
● 사용자 인증 등 높은 수준의 보안 서비스를 제공 가능
● 중간 노드에서도 데이터가 암호문으로 교체
단점 ● 중간 노드에서 데이터가 평문으로 노출
● 다양한 보안서비스를 제공하는데 한계
● 모든 노드가 암호화 장비를 갖추어야 하므로 네트워크가 커지면 비용 과다 
트래픽분석이 취약
 오프라인으로 암호화

 

4. 하드웨어와 소프트웨어 암호시스템

  (1) 하드웨어 암호시스템

    ① 하드웨어로 실현하기 위해 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용 암호처리용 하드웨어를 설치하여 데이터를 암호화한다.

    ② 전용 하드웨어로 암호화함으로써 컴퓨터 CPU에 부담을 주지 않고 빠른 속도로 암호화가 가능하며, 이는 보안성 확보를 위해 바람직하다.

  (2) 소프트웨어 암호시스템

     소프트웨어에 의한 실현은 암호처리용 소프트웨어를 사용한 데이터 암호화로 가능하다.

    ② 저렴한 비용으로 실현 가능, CPU의 처리속도 향상으로 인한 암호화 처리속도 향상