개념 사전 · 개념

블록암호 운영 모드

블록암호 운영 모드 · Block cipher mode

는 고정 크기 암호 함수를 여러 블록과 스트림에 적용하는 규칙이다. 같은 를 사용해도 IV·Nonce·블록 연결·인증 여부에 따라 노출과 실패 조건이 달라진다.

밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.

01무엇이고, 어떤 일을 하나

  • 여러 블록의 처리와 마지막 부분 블록의 규칙을 정한다.
  • IV·Nonce·Counter 사용 조건으로 반복 패턴과 재사용 위험을 다룬다.
  • 기밀성만 제공하는 모드와 인증까지 제공하는 모드를 구분한다.

02어떤 순서로 동작하나

  1. 입력 준비

    블록 길이에 맞는 패딩 규칙과 요구에 맞는 예측 불가능한 IV를 준비한다. 이면 정확한 배수에도 한 블록을 덧붙인다.

  2. 첫 블록 암호화

    P1과 IV를 XOR한 값을 E_K에 넣어 C1을 만든다.

  3. 다음 블록 연결

    각 P_i와 직전 C_(i-1)을 XOR한 뒤 암호화한다. 앞 암호문이 다음 블록 계산의 입력 문맥이 된다.

  4. 블록 복호화

    먼저 D_K(C_i)를 계산한 뒤 C_(i-1) 또는 IV와 XOR해 P_i를 복원한다.

  5. 패딩과 인증 경계

    패딩을 해석하되 자체가 변조 검증을 제공하지 않음을 구분한다. 패딩 유효성의 외부 차이가 오라클이 되지 않도록 인증 설계를 적용한다.

03먼저 알아둘 용어와 구성요소

각 평문 블록을 독립적으로 같은 키로 변환하는 방식.
이전 암호문 블록과 현재 평문을 XOR한 뒤 암호화하는 방식.
암호화한 Counter의 키스트림을 평문과 XOR하는 방식.
기반 암호화와 인증 태그를 결합한 AEAD 방식.
블록암호 출력의 피드백으로 스트림 형태의 처리를 구성하는 모드.
블록 경계까지 필요한 바이트 수를 같은 값으로 채우는 패딩 방식.

04예제로 따라가기

  • 조건: -에 패딩을 적용하면 블록 크기는 16바이트다. 평문 17바이트에는 15바이트를 덧붙여 32바이트를 만든다.
  • 패딩 값: 추가하는 각 바이트 값은 15, 즉 0x0F다. 추가 길이와 각 바이트 값이 같다는 규칙으로 패딩을 해석한다.
  • 포장: 교육용 포맷이 IV 16바이트와 암호문 32바이트를 붙인다면 48바이트다. 이 계산에는 별도 MAC·헤더가 없다.
  • 포장: 다른 교육용 포맷이 Nonce 12바이트·암호문 17바이트·태그 16바이트를 붙이면 45바이트다. 은 이 평문에 블록 패딩을 붙이지 않는다.
  • 비교 조건: 포맷·태그 길이·헤더 정책이 달라지면 총 길이도 달라진다. 45와 48이라는 예를 모든 프로토콜의 고정 오버헤드로 일반화하지 않는다.

05혼동하기 쉬운 점과 확인 기준

  • 키·Nonce 문맥: 키 세대·방향·Nonce 구성·재시작 후 Counter 초기화를 확인한다. 같은 값 재사용을 피하는 설계는 수명보다 넓은 범위가 필요할 수 있다.
  • AAD 일치: 송수신자가 헤더·길이·문자 인코딩을 같은 AAD 바이트로 구성했는지 본다. 눈에 같은 문자열도 바이트가 다르면 태그가 다르다.
  • 오류 응답: 의 패딩·MAC 오류가 외부 응답이나 시간으로 세밀하게 구분되지 않도록 검증 경로를 설계한다.

06상세 노트 · 실습 자료

헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.

공식 문서 · 표준

기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.