블록 및 스트림 암호는 모두 일반 텍스트를 암호 텍스트로 직접 변환하는 데 주로 사용되며 대칭 키 암호 계열에 속하는 암호화 방법입니다.
다음은 블록 암호와 스트림 암호의 중요한 차이점입니다.
Sr. 아니요. | 키 | 블록 암호 | 스트림 암호 |
---|---|---|---|
1 | 정의 | 블록 암호는 한 번에 블록을 가져와 일반 텍스트 변환을 수행하는 암호화 유형입니다. | 반면 스트림 암호는 한 번에 1바이트의 일반 텍스트를 가져와 일반 텍스트를 변환하는 암호화 유형입니다. |
2 | 비트 변환 | 블록 암호는 한 번에 블록을 사용하므로 스트림 암호에 비해 상대적으로 더 많은 비트가 변환됩니다. 특히 한 번에 64비트 이상이 변환될 수 있습니다. | 반면 스트림 암호의 경우 최대 8비트가 한 번에 변환될 수 있습니다. |
3 | 원칙 | 블록 암호는 암호화에 필요한 변환을 위해 혼동과 확산 원리를 모두 사용합니다. | 반면 스트림 암호는 변환을 위해 혼동 원칙만 사용합니다. |
4 | 알고리즘 | 일반 텍스트 암호화를 위해 Block Cipher는 ECB(Electronic Code Book) 및 CBC(Cipher Block Chaining) 알고리즘을 사용합니다. | 한편 Stream Cipher는 CFB(Cipher Feedback)와 OFB(Output Feedback) 알고리즘을 사용합니다. |
5 | 복호화 | Block Cipher의 경우 더 많은 비트의 조합으로 암호화되므로 역암호화 또는 복호화가 Stream Cipher에 비해 비교적 복잡합니다. | 반면 Stream Cipher는 일반 텍스트로 쉽게 되돌릴 수 있는 암호화에 XOR을 사용합니다. |
6 | 구현 | 블록 암호의 주요 구현은 Feistel 암호입니다. | 반면에 Stream Cipher의 주요 구현은 Vernam Cipher입니다. |