암호 피드백 모드 (CFB)
CFB는 "Cipher Feedback"의 약자로, 블록 암호화 모드 중 하나입니다.
CFB 모드에서 평문은 암호화 과정에서 이전 암호문 블록과 XOR 연산을 수행하여 생성됩니다.
이 때, 이전 암호문 블록은 평문이 아닌 이전에 생성된 암호문 블록을 사용합니다.
CFB 모드는 암호화에 사용되는 블록 크기와 상관없이 임의의 비트 수를 사용하여 암호화할 수 있습니다.
이 모드의 가장 큰 특징은 피드백 메커니즘에 있습니다.
CFB 모드에서는 암호화된 이전 블록이 다음 블록을 암호화하기 위한 입력으로 사용되기 때문에, 암호화 된 결과를 복호화하려면 이전 블록들이 필요합니다.
이로 인해 CFB 모드는 연속된 데이터 블록들을 암호화하고 복호화하는 데 유용합니다.
CFB 암호화
CFB 암호화의 흐름은 초기값(IV)을 입력으로 받아 쉬프트 레지스터를 이용해 피드백된 데이터를 만들고, 그 데이터와 평문의 XOR 연산을 통해 암호문을 생성하는 방식이다
CFB 암호화는 전체 암호화 중 일부분만을 수행하기 때문에 병렬처리가 가능하며, 오류 전파 특성이 없어서 특정 비트에서의 오류가 전체적인 암호문에 영향을 주지 않는다는 특징을 가진다.
또한 쉬프트 레지스터의 크기를 조절하면 블록 크기보다 작은 데이터를 암호화할 수 있다는 유연성을 가진다.
CFB 암호화에서 쉬프트 레지스터의 쓰임은 피드백 모드에서 현재 암호화 블록을 만들기 위해 사용되는 데이터를 만드는 데에 이용된다.
쉬프트 레지스터는 이전 블록의 암호문의 일부분을 받아서 새로운 데이터를 생성하고, 이 생성된 데이터를 평문과 XOR 연산을 하여 현재 블록의 암호문을 만드는데 사용된다.
CFB 복호화
CFB 복호화의 흐름은 초기값(IV)을 입력으로 받아 쉬프트 레지스터를 이용해 피드백된 데이터를 만들고, 그 데이터와 암호문의 XOR 연산을 통해 평문을 복호화하는 방식이다.
CFB 암호화와 마찬가지로 전체 복호화 중 일부분만을 수행하기 때문에 병렬처리가 가능하며, 오류 전파 특성이 없어서 특정 비트에서의 오류가 전체적인 평문에 영향을 주지 않는다는 특징을 가진다.
암호 블록 체인 모드 (CBC)과의 차이점
CFB 모드와 CBC 모드는 둘 다 블록 암호화 모드 중 하나이지만, 다음과 같은 차이점이 있습니다.
- 피드백 메커니즘:
- CBC: 암호화된 블록을 이전 평문 블록과 XOR 연산하여 생성
- CFB: 암호화된 이전 블록을 이전 평문 블록과 XOR 연산하여 생성
- 병렬 처리 가능 여부:
- CBC: 블록이 이전 블록의 결과에 의존하기 때문에 병렬 처리가 불가능
- CFB: 블록이 이전 블록의 결과에 의존하지 않기 때문에 병렬 처리가 가능
- 오류 전파:
- CBC: 암호화된 블록에서 발생한 오류는 이후 블록에 영향을 미침
- CFB: 오류는 해당 블록에서만 영향을 미치고 이후 블록에는 영향을 미치지 않음
- 암호화 결과의 예측 가능성:
- CBC: 동일한 평문 블록에 대해서는 항상 같은 암호문 블록을 생성하기 때문에, 암호문 패턴을 예측하기가 쉬움
- CFB: 암호문 패턴이 무작위적이기 때문에 예측하기가 어려움
CBC(Cipher Block Chaining) 모드는 입력 블록을 이전 암호화된 블록과 XOR하여 출력 블록을 생성합니다.
이전 블록이 다음 블록의 암호화에 사용되므로, 오류 전파가 있는 동기 암호화 모드입니다.
CFB와 CBC의 차이점은 입력 블록 암호화에 사용되는 이전 암호화된 블록의 크기입니다.
CFB 모드는 일부분을 암호화하여 사용하는 반면, CBC 모드는 전체 블록을 사용합니다.
또한, CFB 모드는 오류 전파가 없지만 평문 수정 공격에 취약하고, CBC 모드는 오류 전파가 있지만 평문 수정 공격에는 강하다는 차이가 있습니다.
'Computer Science > Security' 카테고리의 다른 글
비대칭 암호를 이용한 키 분배 (0) | 2023.04.19 |
---|---|
컴퓨터 네트워크 보안 4장 연습 문제 (0) | 2023.04.18 |
페이스텔 암호의 암호화와 복호화 증명 (0) | 2023.04.18 |
TEA 알고리즘 (0) | 2023.04.18 |
Kerberos 심층 이해 (0) | 2023.04.17 |