정보보안 일반 - 스트림 암호
다음 중 스트림 암호의 특징으로 알맞지 않은 것은? 2
① 원타임 패스워드를 실용적으로 구현할 목적으로 개발되었다.
② 짧은 주기와 높은 선형복잡도가 요구되며 주로 LFSR을 이용한다.
③ 블록단위 암호화 대비 비트단위로 암호화하여 암호화 시간이 더 빠르다.
④ 블록 암호의 CFB, OFB 모드는 스트림 암호와 비슷한 역할을 한다.
스트림 암호
스트림 암호(Stream Cipher)는 대칭 키 암호의 구조 중 하나로, 유사난수를 연속적(스트림)으로 생성하여 암호화하려는 자료와 결합하는 구조를 가진다. 블록 단위로 암호화·복호화되는 블록암호와는 달리 이진화된 평문 스트림과 이진 키스트림의 배타적 논리합(XOR) 연산으로 1비트의 암호문을 생성하는 방식이다.
스트림 암호는 일회용 난수표(OTP)를 유사난수로 대체한 것으로 볼 수 있다.
스트림 암호는 키스트림이 평문과 관계없이 생성되어 동기식으로 사용해야만 하는 동기식 스트림 암호, 키스트림이 평문 혹은 암호문의 함수관계에 의해 생성되기 때문에 복호화 시 동기가 흐트러졌더라도 스스로 동기화가 이루어져서 복호화가 가능한 자기 동기식 스트림 암호가 있다.
스트림 암호는 하드웨어 구현이 간편하며 속도가 빠르기 때문에 무선 통신 등의 환경에 주로 사용된다. 대표적으로 RC4가 널리 사용되며, 이외에도 A5/1, A5/2 등의 알고리즘이 존재한다.
주기, 선형복잡도 등 안전성과 관련된 수학적 분석이 가능하고, 알고리즘 구현이 쉬워 군사 및 외교용으로 많이 사용되고 있다. 또한 구현 여건이 제약되는 이동통신 환경에서도 구현이 용이하여 이동통신 등의 무선데이터 보호에 많이 사용된다.
종류
스트림 암호의 난수열을 암호화할 입력값과 독립적으로 생성하는 경우를 동기식(synchronous) 스트림 암호로 부른다. 반대로 입력값이 난수열 생성에 영향을 끼치는 경우 비동기식(asynchronous) 혹은 자기 동기(self-synchronizing) 스트림 암호로 부른다.
동기식 스트림 암호
동기식 스트림 암호는 난수열을 생성하기 위해 내부 상태(internal state)를 유지하며, 이전 내부 상태에서 새로운 내부 상태와 유사난수를 얻는다. 문자열의 암호화 및 복호화는 생성된 유사난수열과 입력값을 XOR하는 방식으로 이루어진다.
동기식 스트림 암호에서는 암호화 및 복호화할 문자열에서 특정 위치 비트를 변경할 경우 암호화된 결과에서도 같은 위치 비트가 변경되며, 다른 위치의 비트는 변경되지 않는다. 따라서 암호화 문자열을 전송할 시에 특정 비트가 다른 값으로 손상되었어도 복호화 시 다른 비트에는 영향을 미치지 않는다. 하지만 전송 오류에서 비트가 사라지거나 잘못된 비트가 추가되는 경우 오류가 난 시점 이후의 복호화가 실패하게 되며, 따라서 전송 시에 동기화(synchronize)가 필요하다.
또한, 같은 암호화 키로 여러 입력값을 사용할 수 있으면 이를 이용한 암호공격(cryptanalysis)이 가능하다.
동기식 스트림 암호의 한 예는 RC4가 있다.
자기 동기 스트림 암호
자기 동기 스트림 암호는 난수열을 생성할 때 암호화 키와 함께 이전에 암호화된 문자열 일부를 사용한다. 이 암호의 내부 상태는 이전 내부 상태에 의존하지 않는다. 따라서 암호화 문자열을 전송할 시에 일부 비트가 값이 바뀌거나, 혹은 비트가 사라지고 추가되는 오류가 발생하여도, 일부분만이 복호화에 실패하며 그 이후에는 다시 정상적인 복호화 값을 얻을 수 있는 자기 동기성을 가진다.
자기 동기 스트림 암호의 한 예는 블록 암호에 CFB 운용 모드를 결합한 것이다.
[출처]
[네이버 지식백과] 스트림 암호 (훤히 보이는 정보보호, 2008. 11. 25., 정교일, 이병천, 진승헌, 조현숙)
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%8A%B8%EB%A6%BC_%EC%95%94%ED%98%B8
'IT > 정보보안' 카테고리의 다른 글
정보보안 일반 - BlowFish, SEED, Diffie-Hellman, 3DES (0) | 2019.08.26 |
---|---|
정보보안 일반 - 초기화 벡터, 패팅, 스트림 블록, 운영모드 (0) | 2019.08.26 |
정보보안 일반 - 키 분배 프로토콜 (0) | 2019.08.26 |
정보보안 일반 - 커버로스 프로토콜(Kerberos Protocol) – 서버 접근 권한 관리 (0) | 2019.08.26 |
정보보안 일반 - PRNG, HRNG, TRNG (0) | 2019.08.26 |
댓글