본문 바로가기

Incognito

스트림 암호 (Stream Cipher)

스트림 암호 (Stream Cipher)

- 암호화: 평문 비트열과 키 스트림 XOR 연산

- 복호화: 암호문 비트열과 키 스트림 XOR 연산

- 키 스트림: 키 비트(바이트)열

- 암호화 및 복호화가 매우 빠르고 하드웨어 구현에 적합함

   → 제한된 리소스를 가지는 기기에서 주로 사용됨

- 블록 암호에 비해 약한 안정성을 가짐

   → 스트림 암호가 필요한 경우 블록 암호 모드 중 스트림 암호 형태를 지원하는 방식을 쓰는 것을 추천

- 동기식 & 자기 동기식으로 구분

- 스트림 암호의 예시로 일회용 패드를 들 수 있음

 

 

 

 

 

동기식 스트림 암호 (Synchronous stream cipher)

- 키 스트림이 평문과 암호문에 독립적으로 생성됨

- 이전 내부 상태로부터 현재 내부 상태를 업데이트함

- 내부 상태를 입력으로 키 스트림 생성 알고리즘으로부터 키 스트림 생성

- Sender와 Receiver가 동기화된 내부 state 유지가 필요함

 

 

 

 

 

동기식 스트림 암호 오류 전파

1) 암호문을 전송할 때 네트워크 오류로 비트가 사라지거나 추가된 경우 (ex. 비트 유실, 비트 추가)

   → 오류가 발생한 지점부터 끝까지 복호화에 실패하게 됨

 

- 비트 유실: 암호문에서 유실된 비트의 평문부터 끝까지 복호화에 오류가 생김

- 비트 추가: 기존의 암호문에 있지 않은 새로운 비트가 추가될 경우 비트가 추가된 지점부터 끝까지 복호화에 오류가 생김

 

 

 

2) 암호문을 전송할 때 네트워크 오류로 암호문 중간에 1비트가 오류가 발생한 경우 (비트 유실, 추가 X)

   → 해당 위치의 비트에만 오류가 발생

 

 

 

 

 

 

Linear-Feedback Shift Register (LFSR)

- 의사난수 생성기 (Pseudorandom-number generator)

- 빠르게 의사난수를 생성함

- 선형적임

 

 

 

 

 

 

동기식 스트림 암호 예시

1) A5/1

   - LFSR 기반 스트림 암호

   - GSM 방식의 휴대폰 통신 암호화에 사용

   - 기지평문공격에 취약함

2) RC4

   - 1987년, Rivest가 디자인함

   - LFSR 기반 아님

   - ChaCha 이전에 가장 널리 쓰이던 s/w용 스트림 암호

   - SSL, WEP에 쓰임

3) 일회용 패드

4) 블록암호 기반의 OFB, CRT 모드

 

 

 

 

 

자기 동기식 스트림 암호 (Self-synchronous stream cipher)

- 키 스트림을 생성할 때 키와 함께 암호문 또는 평문 일부를 사용

   → 내부 상태가 이전 내부 상태에 의존하지 않음

   → 암호문의 일부를 키 스트림 생성에 활용함

- CFB 모드: 블록암호 기반 자기 동기식 스트림 암호

 

 

 

 

 

자기 동기식 스트림 암호 오류 전파

- 암호문을 전송할 때 네트워크 오류로 블록이 사라지거나 추가된 경우에도 일부 부분에 대해서만 복호화 실패 발생

'Incognito' 카테고리의 다른 글

기초대수학 문제 풀이  (1) 2022.11.20
블록 암호 모드  (0) 2022.11.12
AES 암호 알고리즘  (0) 2022.10.22
Feistel Network  (0) 2022.10.22
일회용 패드 & 블록 암호  (0) 2022.10.22