[암호학] 암호기법의 분류 - 치환암호, 전치암호, 블록암호, 스트림암호, 링크암호, 종단간암호, 하드웨어암호, 소프트웨어 암호
암호기법의 분류
1. 치환 암호와 전치 암호
(1) 치환 암호(대치 암호, Substitution Cipher)
① 비트, 문자 또는 문자의 블록을 다른 비트, 문자 또는 블록으로 대체한다.
② 치환 암호의 엄밀한 의미는 평문에서 사용하는 문자의 집합과 암호문에서 사용하는 집합이 다를 수 있다.
③ 즉, 평문의 문자를 다른 문자로 "교환하는 규칙" 이다. 이때 교환 규칙은 일대일 대응이 아니어도 상관없다.
(2) 전치 암호(Transposition Cipher)
① 비트, 문자 또는 블록을 문자 집합 내부에서 "자리를 바꾸는 규칙"이다. 평문에 사용된 문자와 암호문에 사용된 문자가 일대일 대응 규칙을 갖는다는 점이 특징이다.
2. 블록 암호와 스트림 암호
(1) 블록 암호(Block cipher)
① 블록 암호(block cipher)는 어느 특정 비트 수의 "집합"을 한 번에 처리하는 암호 알고리즘을 총칭한다. 이 "집합"을 블록(block)이라고 하며, 블록의 비트 수를 블록 길이(block length)라고 한다.
② 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화한다. 일반적으로 블록의 크기는 8비트(ASCII) 또는 16비트(Unicode)에 비례한다.
③ 스트림 암호화와는 다르게 Round를 사용하고, 반복적으로 암호화 과정을 수행해 암호화 강도를 높힌다.
(2) 스트림 암호(Stream cipher)
① 한번에 1비트 혹은 1바이트의 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이며, 암호화 방식은 평문과 키 스트림을 XOR하여 생성한다.
② 블록 암호는 블록 단위로 처리가 완료되므로 어디까지 암호화가 진행되었는가 하는 내부 상태를 가질 필요가 없다. 한편 스트림 암호는 데이터의 흐름을 순차적으로 처리해 가기 때문에 내부 상태를 가지고 있다.
③ 스트림 암호는 군사 및 외교용으로 널리 사용되고 있으며, 일부 상용으로도 활발히 사용되고 있다. 또한, 스트림 암호는 이동 통신 환경에서 구현이 용이하고, 안전성을 수학적으로 엄밀하게 분석할 수 있어 이동 통신 등의 무선 데이터 보호에 적합하다.
구분 | 블록 암호 | 스트림 암호 |
장점 | 암호화 속도가 빠름, 에러 전파현상 없음 | 높은 확산, 기밀성, 해시함수 등 |
단점 | 느린 암호화, 에러 전달 | 낮은 확산 |
사례 | DES, IDEA, SEED, RC5, AES | LFSR, MUX generator |
암호화 단위 | 블록 | 비트 |
주요 대상 | 음성, 오디오/비디오 스트리밍 | 일반 데이터 전송, 스토리지 저장 |
◆ 블록 암호는 평문을 일정한 크기의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화
◆ 스트림 암호는 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘의 총칭이며, 암호화 방식은 평문과 키 스트림을 XOR하여 생성
3. 위치에 따른 암호화의 구분
(1) 링크 암호화(Link Encryption)
① 모든 정보는 암호화되고, 패킷은 라우터나 다른 중간에 있는 장비가 이 패킷을 다음에 어디로 보내야 하는지 알아야 하기 때문에 각 홉에서 해독되어야 한다.
◆ 홉(hop) : 패킷이 그것의 목적지에 도달할 수 있도록 돕는 장비이다.
② 라우터는 패킷의 헤더 부분을 해독하고, 헤더 내의 라우팅과 주소 정보를 읽고, 그런 다음 그것을 다시 암호화하고 진행 방향으로 보내야 한다.
③ 링크 암호화는 데이터 링크 또는 물리적 계층에서 일어난다. 하드웨어 암호화 장치들은 물리적 계층과의 인터페이스를 가지고 그것을 통과하는 모든 데이터를 암호화한다.
(2) 종단감 암호화(End-to-End Encryption)
① 종단간 암호화에서는 헤더와 트레일러가 암호화되지 않기 때문에 패킷을 각 홉에서 해독하고 암호화할 필요가 없다. 근원지와 목적지 사이에 있는 장비들은 단지 필요한 라우팅 정보만 읽고 패킷을 그 진행 방향으로 통과시키게 된다.
② 종단간 암호화는 보통 근원지 컴퓨터의 사용자에 의해 시작된다. 이것은 사용자가 어떤 메시지를 암호화할 것인지 하지 않을 것인지를 결정할 수 있는 보다 나은 유연성을 제공한다.
③ 종단간 암호화는 애플리케이션 계층에서 암호화가 이루어진다.
◆ 링크 암호화: 헤더를 포함한 모든 데이터를 암호화
◆ 종단간 암호화; 헤더(라우팅 정보)는 암호화하지 않음
구분 | 링크 암호화 | 종단간 암호화 |
특징 | ● ISP나 통신업자가 암호화 ●헤더를 포함한 모든 데이터를 암호화 ● 유저가 알고리즘 통제 불가 |
● 사용자가 암호화 ● 헤더(라우팅 정보)는 암호화하지 않음 ● 알고리즘에 대한 통제는 사용자가 함 |
장점 | ● User-transparent하게 암호화되므로 운영이 간단 ● 트래픽분석을 어렵게 함 ● 온라인으로 암호화 |
● 사용자 인증 등 높은 수준의 보안 서비스를 제공 가능 ● 중간 노드에서도 데이터가 암호문으로 교체 |
단점 | ● 중간 노드에서 데이터가 평문으로 노출 ● 다양한 보안서비스를 제공하는데 한계 ● 모든 노드가 암호화 장비를 갖추어야 하므로 네트워크가 커지면 비용 과다 |
● 트래픽분석이 취약 ● 오프라인으로 암호화 |
4. 하드웨어와 소프트웨어 암호시스템
(1) 하드웨어 암호시스템
① 하드웨어로 실현하기 위해 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용 암호처리용 하드웨어를 설치하여 데이터를 암호화한다.
② 전용 하드웨어로 암호화함으로써 컴퓨터 CPU에 부담을 주지 않고 빠른 속도로 암호화가 가능하며, 이는 보안성 확보를 위해 바람직하다.
(2) 소프트웨어 암호시스템
① 소프트웨어에 의한 실현은 암호처리용 소프트웨어를 사용한 데이터 암호화로 가능하다.
② 저렴한 비용으로 실현 가능, CPU의 처리속도 향상으로 인한 암호화 처리속도 향상