스트림 암호방식과 블록암호방식에 대해 알고싶어요
안녕하세요?
스트림 암호방식과 블록암호방식, 그리고 차이점입니다.
스트림 암호(stream cipher)는
블록 단위로 암호화·복호화되는 블록암호와는 달리 이진화된 평문 스트림과 이진 키스트림의 배타적 논리합(XOR : A와 B를 더해서 서로 다르면 1, 같으면 0) 연산으로 암호문을 생성하는 방식입니다.
스트림 암호는 동기식(synchronous) 암호와 자기 동기식(self-synchronizing) 암호가 있습니다.
동기식 암호는 키스트림이 평문과 관계없이 생성되어 동기식으로 사용해야만 하며, 자기동기식 암호는 키스트림이 평문 혹은 암호문의 함수관계에 의해 생성되기 때문에 복호화 시 동기가 흐트러졌더라도 스스로 동기화가 이루어져서 복호화가 가능합니다.
1970년대부터 유럽을 중심으로 발달한 스트림 암호는 안정성, 알고리즘 구현의 용이 등의 장점으로 군사용, 외교용,이동통신의 무선데이터 보호에 많이 사용됩니다. 또한 스트림암호는 블록암호 만큼 일반적으로 사용되지 않습니다.
블록암호(block cipher)는
기밀성 있는 정보를 정해진 블록 단위로 암호화하는 대칭키 암호 시스템으로, 만약 암호화하려는 정보가 블록의 길이보다 길 경우에는 특정한 운용 모드가 사용됩니다.
블록암호의 종류로는 전자 코드북(Electronic Codebook; ECB), 암호 블록체인(Cipher Block Chaining; CBC), 암호 피드백(Ciper Feedback; CFB), 출력 피드백(Output Feedback; OFB), 카운터(Counter; CTR) 방식 등이 있습니다.
스트림암호와 블록암호의 차이점