기술나눔

암호화 및 보안_공통 블록 암호 소개 ECB, CBC, CFB, OFB 모드

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


여기에 이미지 설명을 삽입하세요.


사전

여기에 이미지 설명을 삽입하세요.
여기에 이미지 설명을 삽입하세요.


개요

여기에 이미지 설명을 삽입하세요.

  1. 블록 암호의 기본 개념을 소개합니다.
  2. ECB 모드의 작동 원리, 장점과 단점, 적용 시나리오를 설명합니다.
  3. CBC 모드의 작동 원리, 장점과 단점, 적용 시나리오에 대해 자세히 소개합니다.
  4. CFB 모드의 작동 원리, 장점과 단점, 적용 시나리오를 설명합니다.
  5. OFB 모드의 작동 원리, 장점과 단점, 적용 시나리오를 설명합니다.
  6. 모드 선택을 요약하고 제안합니다.

모든 길이의 일반 텍스트를 암호화해야 하는 경우 암호화를 위해 그룹 반복이 필요합니다. 블록 암호에는 여러 가지 모드가 있습니다. 모드를 올바르게 선택하지 않으면 텍스트의 기밀성을 완전히 보장할 수 없습니다.



블록 암호 및 스트림 암호의 기본 개념

블록 암호 : 일반 텍스트 데이터를 고정 길이 블록(보통 128 또는 64비트)으로 나눈 다음 블록별로 암호화합니다. 각 블록을 블록이라고 합니다.

스트림 암호: 데이터 스트림의 연속 처리를 위한 암호화 알고리즘, 비트별 또는 바이트별 암호화, 데이터 스트림 암호화에 적합합니다.


패턴이 뭐야?

패턴은 블록 암호에 대한 반복 알고리즘입니다.

예를 들어 DES 알고리즘에서는 ECB 모드를 자주 사용합니다. ECB 모드는 평문을 여러 그룹으로 나누어 하나씩 암호화하는 방식이다. ECB 알고리즘은 계산량이 적고 암호화 및 복호화 속도가 빠르지만 ECB가 신뢰할 수 없는 모드라는 것이 이제 입증되었습니다. 따라서 공식적인 행사에서는 ECB 모드를 사용하지 마십시오.


블록 암호의 일반적인 패턴

1. ECB 모드(전자 코드북 모드)

ECB는 일반 텍스트를 그룹화하고 직접 암호화하여 암호문 그룹을 생성합니다.

여기에 이미지 설명을 삽입하세요.

작동 원리

  • 일반 텍스트를 여러 개의 고정 길이 패킷으로 분할합니다.
  • 각 그룹은 독립적으로 암호화됩니다.

이점

  • 계산은 간단하고 빠릅니다.
  • 병렬 처리를 지원합니다.

결점

  • 동일한 평문 그룹화는 동일한 암호문 그룹화를 생성하며 평문의 패턴과 구조는 숨길 수 없습니다.
  • 통계분석 공격에 취약하다.

애플리케이션 시나리오

  • 민감한 정보의 암호화에는 적합하지 않으며 공식적인 행사에 사용하지 않는 것이 좋습니다.

ECB 모드에서는 일반 텍스트와 암호 텍스트가 일대일 대응을 갖습니다. 동일한 일반 텍스트로 인해 동일한 암호문이 생성되어야 합니다.따라서 암호문으로부터 평문을 직접 유추할 수는 없으나, 암호문의 특성을 기반으로 표적 공격을 수행할 수 있다.

예: Bob은 Alice에게 전송 메시지를 보냅니다.

分组1 = Bob的银行账号 
分组2 = Alice的银行账号 
分组3 = 转账金额

Eve는 (복호화된 데이터가 없기 때문에) 계좌번호와 금액을 직접 수정할 수는 없지만, 그룹 1과 그룹 2를 교환하여 공격을 일으킬 수 있습니다.

分组1 = Alice的银行账号 
分组2 = Bob的银行账号 
分组3 = 转账金额

이 공격 방법은 ECB가 일반 텍스트 정보를 숨기지 않기 때문에 성공합니다.


2. CBC 모드(암호문 그룹 체인 모드)

암호문 그룹 링크 모드

여기에 이미지 설명을 삽입하세요.

작동 원리

  • 첫 번째 일반 텍스트 블록은 초기화 벡터(IV)와 XOR된 후 암호화되어 첫 번째 암호문 블록을 생성합니다.
  • 각 후속 일반 텍스트 그룹은 이전 암호 텍스트 그룹과 XOR된 다음 암호화되어 해당 암호 텍스트 그룹을 생성합니다.

이점

  • 보안을 강화하기 위해 일반 텍스트 패턴과 구조를 숨길 수 있습니다.
  • 병렬 암호 해독을 지원합니다.

결점

  • 암호화 중에는 병렬 처리가 지원되지 않으며 순차적으로 수행되어야 합니다.
  • 특정 암호문 그룹이 손상되면 현재 그룹과 다음 그룹의 복호화에 영향을 미칩니다.

CBC의 핵심 부분은 이전 암호문 그룹을 다음 평문 암호화에 변수로 가져오는 것입니다. 이처럼 평문이 동일하더라도 암호문 XOR 연산 이후에는 다른 결과가 나타나게 됩니다. 이러한 방식으로 일반 텍스트 정보의 난독화 목적이 달성됩니다.

하지만 눈치채셨는지 모르겠습니다. 첫 번째 일반 텍스트 그룹을 어떻게 처리해야 할까요? 첫 번째 일반 텍스트 패킷을 처리할 때 XOR은 0입니다. 그런 다음 암호 텍스트 패킷 A는 ECB 모드로 변환됩니다. 이러한 상황을 피하기 위해서는 초기 암호문 그룹을 인위적으로 보완해야 합니다. 이 초기 암호문 그룹을 IV 구성요소라고 합니다.

여기에 이미지 설명을 삽입하세요.

애플리케이션 시나리오

  • 높은 보안이 필요하고 파일 암호화와 같이 직렬 암호화가 허용될 수 있는 시나리오에 사용됩니다.

3. CFB 모드(암호문 피드백 모드)

CBC 모델의 개선

여기에 이미지 설명을 삽입하세요.
CFB 모드에서는 일반 텍스트 그룹과 암호문 그룹 간에 XOR 연산만 수행됩니다. 현재 암호화 알고리즘의 출력에는 일회성 패드 의미가 있습니다.

작동 원리

  • 첫 번째 일반 텍스트 블록은 초기화 벡터(IV)와 XOR된 후 암호화되어 첫 번째 암호문 블록을 생성합니다.
  • 각 후속 일반 텍스트 그룹은 이전 암호 텍스트 그룹과 XOR된 다음 암호화되어 해당 암호 텍스트 그룹을 생성합니다.

이점

  • 병렬 암호 해독을 지원합니다.
  • 모든 암호문 그룹을 해독할 수 있습니다.

결점

  • 재생 공격에 면역되지 않습니다.

애플리케이션 시나리오

  • 네트워크 데이터 전송 등 실시간 통신을 암호화합니다.

4. OFB 모드(출력 피드백 모드)

출력 피드백 모드. 암호화 알고리즘의 출력은 암호화 알고리즘의 입력으로 다시 피드백됩니다.

OFB는 암호화 알고리즘을 통해 일반 텍스트를 암호화하지 않지만, 암호화 알고리즘의 출력과 일반 텍스트 그룹을 XOR하여 암호문을 생성합니다. 따라서 OFB와 CFB도 다소 유사합니다.

여기에 이미지 설명을 삽입하세요.

작동 원리

  • 초기화 벡터(IV)는 암호화 알고리즘에 입력되어 의사 무작위 출력을 생성합니다.
  • 일반 텍스트 그룹은 의사 난수 출력과 XOR되어 암호 텍스트 그룹을 생성합니다.
  • 의사 난수 출력은 암호화 알고리즘으로 피드백되어 다음 의사 난수 출력을 계속 생성합니다.

이점

  • 패딩이 필요하지 않습니다.
  • 암호문에 잘못된 비트가 포함되어 있으면 해당 일반 텍스트 비트에만 오류가 발생합니다.

결점

  • 병렬 암호 해독은 지원되지 않습니다.
  • 비트 반전 공격의 위험이 있습니다.

애플리케이션 시나리오

  • 비디오 스트림 암호화와 같이 높은 오류 허용 범위가 필요한 시나리오.

모드 선택 제안

  1. ECB 모드: 간단하고 빠르지만 안전하지 않아 권장되지 않습니다.
  2. CBC 모드: 파일 암호화 등 보안 요구 사항이 높은 시나리오에 적합하며 권장됩니다.
  3. CFB 모드: 실시간 통신에 적합하고 병렬 복호화를 지원하지만, 재생 공격을 방지해야 합니다.
  4. OFB 모드: 오류 허용 요구 사항이 높은 시나리오에 적합하지만 병렬 암호 해독을 지원하지 않습니다.

여기에 이미지 설명을 삽입하세요.