본문 바로가기
[2-3]operating system/[2-1.4]Algorithm

스트링 암호화와 블록 암호화

by 오늘도 빛나는 너에게 2020. 3. 12.
728x90

스트링 암호화와 블록 암호화

 

암호화는 스트림 암호화와 블록 암호화 두 가지로 구분 할 수 있습니다.

블록 암호화가 데이터를 블록 단위로 잘라 암호화 알고리즘을 거쳐 암호화하는 것과 달리 

스트링 암호화는 데이터의 흐름을 순차적으로 (보통 1비트씩) 어떤 값

 (암호화할 데이터와 길이가 같은 키값)과 XOR 연산하여 암호화합니다.

사실 스트림 암호화는 많이 사용하지 않아서 현재는 개념만 남아 있습니다.

RC4 같은 스트림 암호화 전용 알고리즘도 있기는 하지만,블록 암호화와 비교하면 연구가 그리 활발하지는 않습니다.

그것은 운영모드를 사용하면 블록 암호화를 스트림 암호화처럼 구성할수 있어 스티림 암호화 전용 알고리즘의 활요도가 낮기 때문입니다.

CFB 나 OFB 도 다른 관점에서 보면 난수 성질을 갖는 값을 만들고 여기에 XOR 연산을 수행하는 스트림 암호화 방식으로 볼수 있습니다.

이과정에서 난수를 생성하려고 블록 암호화 알고리즘을 사용한 것이고요

스트림 암호화의 장점은 패딩(블록 암호화에서는 필요)을 하지 않아도 되는 것입니다.

블록 단위로 암호화를 할때는 다른 블록 과 크기가 다른 소위 자투리 블록에 데이터

를 더해 크기를 맞추는 작업을 해야 합니다.이를 데이터 패팅 이라고 합니다,데이터 패딩을 하면 원문보다 암호문의 길이가 늘어날 수 있어 암호화 전후 데이터 길이 변화가 문제가 되는 환경에서는 단점이 됩니다.

스트림 암호화의 또 다른 장점은 XOR연산을 사용하므로 복호화 알고리즘을 따로 만들지 않는다는 점입니다.

암호화 알고리즘 하나로 암호화와 복호화를 모두 수행하므로 구현과 적용이 간편합니다.

블록 암호화를 스트림 암호화처럼 사용하면 스트림 암호화의 장점을 그대로 이용 할수 있습니다.그것뿐 아니라 공인된 블록 암호 알고리즘을 활용하면 안전성 확보와 검증도 간편합니다.

 

728x90

댓글