개념 사전 · 개념
블록암호 운영 모드
블록암호 운영 모드 · Block cipher mode
는 고정 크기 암호 함수를 여러 블록과 스트림에 적용하는 규칙이다. 같은 를 사용해도 IV·Nonce·블록 연결·인증 여부에 따라 노출과 실패 조건이 달라진다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 여러 블록의 처리와 마지막 부분 블록의 규칙을 정한다.
- IV·Nonce·Counter 사용 조건으로 반복 패턴과 재사용 위험을 다룬다.
- 기밀성만 제공하는 모드와 인증까지 제공하는 모드를 구분한다.
02어떤 순서로 동작하나
- 입력 준비
블록 길이에 맞는 패딩 규칙과 요구에 맞는 예측 불가능한 IV를 준비한다. 이면 정확한 배수에도 한 블록을 덧붙인다.
- 첫 블록 암호화
P1과 IV를 XOR한 값을 E_K에 넣어 C1을 만든다.
- 다음 블록 연결
각 P_i와 직전 C_(i-1)을 XOR한 뒤 암호화한다. 앞 암호문이 다음 블록 계산의 입력 문맥이 된다.
- 블록 복호화
먼저 D_K(C_i)를 계산한 뒤 C_(i-1) 또는 IV와 XOR해 P_i를 복원한다.
- 패딩과 인증 경계
패딩을 해석하되 자체가 변조 검증을 제공하지 않음을 구분한다. 패딩 유효성의 외부 차이가 오라클이 되지 않도록 인증 설계를 적용한다.
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상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.