더북(TheBook)

OFB의 원리도 이와 비슷합니다. O의 아웃풋이 무엇을 의미하는지 알면 됩니다.

 

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

 

OFB 역시 XOR 연산을 거쳐 원문을 암호문으로 바꿉니다. 하지만 원문과 어떤 값으로 XOR 연산을 수행하는지가 다릅니다. OFB에서는 ‘처음에 넣은 초기화 벡터 값이 암호 알고리즘을 반복해서 거치는 값’과 ‘각 블록의 원문’을 더해(⊕ 연산) 암호문을 만듭니다. 따라서 초기화 벡터만 정하면 원문 블록과 더할(⊕ 연산) 각 값을 미리 연산할 수 있습니다. 이는 블록 단위로 순차적으로 암호 알고리즘을 수행할 필요 없이 XOR하기 직전 값들을 미리 계산해 두었다가 한꺼번에 암호화할 수 있다는 의미입니다. XOR 연산을 동시에 여러 개 할 수 있는 환경에서는 한꺼번에 암호화할 수 있어, 이를 암호화를 병렬로 처리할 수 있다고 표현합니다. 이처럼 OFB는 ‘빠른 암호화가 가능하다’는 장점(정확하게는 한꺼번에 많은 양을 암호화할 수 있다는 장점)이 있으나, ‘초기화 벡터가 암호 알고리즘을 반복해서 거치는 과정에서 암호화 알고리즘 수행 결과 값에서 주기성이 발견되면 안전성에 문제가 생길 수 있다’는 단점도 있습니다. 이는 암호 알고리즘이 안전해도 운영 모드가 단위 암호 시스템의 안전성을 확보하지 못한 것이라고 할 수 있습니다.

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