더북(TheBook)

이제 CFB(Cipher FeedBack)와 OFB(Output FeedBack) 운영 모드를 살펴봅시다. 앞서 배운 CBC의 원리를 떠올리면서 CFB와 OFB 단어를 보면 어떤 느낌이 드나요? CFB는 암호문을 피드백하고, OFB는 아웃풋(Output : 결과물)을 피드백한다고 합니다. 눈치가 빠른 사람은 벌써 알아챘겠지만, 여기서 피드백은 ‘다음 블록의 암호화 과정에 관여한다’는 의미입니다. 다음 그림은 CFB 운영 모드의 동작 원리를 보여 줍니다.

 

| CFB 운영 모드의 동작 원리 |

 

그림을 보면 원문을 암호문으로 바꾸기 바로 전에 XOR 연산을 수행합니다. 원문이 암호 알고리즘을 거쳐 바로 암호문이 되는 것이 아니라, ‘암호 알고리즘을 거친 어떤 값’과 원문의 XOR 연산을 수행하여 암호문을 만듭니다. 이때 ‘암호 알고리즘을 거친 어떤 값’을 만들려면 이전 블록의 암호문을 암호 알고리즘 입력으로 활용해야 합니다. 즉, CFB는 ‘이전 블록의 암호문이 암호 알고리즘을 거친 후’에 ‘다음 블록의 원문’을 더해(⊕ 연산) 그 블록의 암호문을 만듭니다. Cipher FeedBack이라는 이름도 이런 특징 때문에 붙은 것입니다. 물론 CBC와 마찬가지로 첫 번째 원문 블록에는 이전 블록의 암호문이 없으므로 운영자는 초기화 벡터를 선택해서 넣고 관리해야 합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.