블록 암호는 공유 개인 키를 사용하여 일정한 크기의 정보 블록에서 작동하는 대칭 암호화 알고리즘입니다. 암호화하는 동안 평문을 사용할 수 있으며 그 결과 암호화된 텍스트를 암호문이라고 합니다. 평문의 암호화와 암호문의 복호화 모두에 유사한 키를 사용할 수 있습니다.
블록 암호에는 다음과 같은 다양한 작업 모드가 있습니다. -
전자 코드북(ECB) 모드 - 가장 쉬운 모드입니다. 이 모드에서 일반 텍스트는 각 블록이 64비트인 블록으로 나뉩니다. 따라서 각 블록은 독립적으로 암호화됩니다. 모든 블록의 암호화에 동등 키를 사용할 수 있습니다. 각 블록은 키를 사용하여 암호화되어 암호문 블록을 생성합니다.
Electronic Code Book은 암호화하기 위해 모든 평문의 블록에 대해 개별적으로 암호 기능을 처리합니다(그리고 그것을 해독하기 위해 모든 암호문의 블록에 대한 역함수). 이것은 CBC가 여러 블록을 병렬로 암호화 및 해독할 수 있음을 정의할 수 있으며(서로에 기반하지 않기 때문에) 프로세스 속도를 높일 수 있습니다.
암호문 블록 체인(CBC) 모드 − CBC 모드에서 각 평문 블록은 암호화되기 전에 이전 암호문 블록과 배타적 논리합(Exclusive-OR)됩니다. 첫 번째 블록의 경우 초기화 벡터는 발신자를 EX-OR하는 데 사용할 수 있으며 수신자는 미리 표시된 초기화 벡터에 동의합니다.
CBC는 메시지를 암호화하는 데 사용할 수 있지만 체인 구조로 인해 병렬 처리가 적용되지 않습니다. 랜덤 액세스 파일 정보를 암호화 및 해독하는 데 사용할 수 없습니다.
출력 피드백(OFB) 모드 − CFB 모드와 동일하지만 한 가지 차이점이 있습니다. 암호문의 각 비트는 이전 비트와 독립적입니다. 이것은 한 블록에서 다른 블록으로 오류의 흐름을 방지할 수 있습니다.
이 방법의 이점은 전송의 비트 오류가 재현되지 않는다는 것입니다. 이 방법의 단점은 CFB보다 메시지 흐름 변경 공격에 더 취약하다는 것입니다.
암호화 피드백(CFB) 모드 − 이 모드에서는 각 단위가 8비트인 단위 설계로 데이터를 암호화합니다. 스트림 암호화를 필요로 하는 애플리케이션에서 스트림 암호화를 수행하는 데 사용할 수 있습니다.
또한 각 암호문 블록은 암호화 절차 중에 다음 일반 텍스트 블록에 대한 입력으로 도입됩니다. CFB 모드는 또한 각 암호문 블록 암호화가 입력된 일반 텍스트 블록, 암호화 키 및 이전 암호문 블록을 기반으로 하기 때문에 ECB 모드와 다릅니다.
CFB 모드는 일반적으로 블록 대신 더 작은 정보 단위에서 작동하도록 생성된 애플리케이션에서 사용됩니다.
카운터 모드 - 카운터는 평문과 유사한 블록 크기를 사용합니다. 암호화의 경우 카운터가 암호화되어 일반 텍스트 블록과 XOR되어 암호문 블록이 됩니다.
암호 해독을 위해 암호문 블록과 XOR된 각 암호화된 카운터에 대해 유사한 카운터 값 시퀀스를 사용할 수 있습니다. CTR 모드는 하드웨어 및 소프트웨어 효율성, 전처리, 보호 및 무결성에 사용됩니다.