이번에는 블록암호의 운용 방식에 대해 알아보자.
하나의 키 하에 블록 암호를 반복적으로 안전하게 이용하게하는 절차를 말한다.
여러가지 방식들이 있다.
1. ECB (Electronic Code Book)
한국말로 번역하면 전자 코드북이다. 가장 간단한 구조를 가진 운용 방식이다.
평문을 여러 블록으로 나누어 각각 암호화는 방식을 말한다.
Ci = Ek(Pi), Pi = Dk(Ci)
같은 암호화 키를 사용하기 때문에, 만약 여러 블록이 같은 값을 가지면 암호화한 값도 같다.
그래서 반복 공격에 취약하다. (Subject to block replay)
2. CBC (Cipher Block Chaining)
암호 블록 체인 방식이다. 각 블록이 암호화 되기 전에 이전 블록의 암호화 값과 XOR 연산을 하는 것이다.
첫 블록은 XOR할 이전 블록이 없으니까 초기화 백터를 사용한다. 근데 초기화 백터는 값이 같으니까
암호화마다 다른 값을 사용해야 함.
Ci = Ek(Pi xor Ci-1), Pi = Dk(Ci) xor Ci-1
C1 = Ek(P1 xor IV)
이런 구조 덕분에 ECB가 취약했던 블록 반복공격에 강하다.
3. CFB (Cipher FeedBack)
이건 암호 피드백방식이다. 2번의 암호 블록 체인 방식의 변형이다. 그림부터 봐.
CBC와 비교하면 뭐가 다른가. CBC는 이전의 암호문과 평문을 XOR하는데,
CFB는 이전의 암호문과 KEY가 암호화 알고리즘을 거친 결과를 XOR하는 것이다.
4. OFB (Output FeedBack)
출력 피드백 방식이다. 블록 암호를 동기식 스트림 암호로 변환하는 것이다.
CFB 과정은 XOR한 결과를 넘겨줬는데 이건 XOR하기 전의 출력값을 바로 전달한다.
5. CTR (Counter) mode
이것은 카운터 모드라고 하는 것이다.
블록 암호를 스트림 암호로 바꿔준다. 이전 과정에 종속되지 않기 때문에 병렬적인 수행이 가능하다.
ATM, IPsec에서 사용된다. 이점이라고 하면 효율적이고, 각 암호문들이 랜덤한 패턴 접근이 가능하다.
그림 출처, 참고 url
http://ko.wikipedia.org/wiki/%EB%B8%94%EB%A1%9D_%EC%95%94%ED%98%B8_
%EC%9A%B4%EC%9A%A9_%EB%B0%A9%EC%8B%9D
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
RSA (Rivest, Shamir, and Adleman) 알고리즘 (0) | 2021.04.16 |
---|---|
공개키 암호 (Public-Key Cryptography) (0) | 2021.04.16 |
AES 알고리즘 (Advanced Encryption Standard) (0) | 2021.04.16 |
대칭키 암호 알고리즘 (Symmetric key Cipher) (0) | 2021.04.16 |
암호학에서의 치환 그리고 전위 (0) | 2021.04.16 |