추천, 2024

에디터의 선택

블록 암호와 스트림 암호의 차이점

블록 암호 및 스트림 암호는 일반 텍스트를 암호문으로 직접 변환하고 대칭 키 암호 제품군에 속하는 데 사용되는 방법입니다.

블록 암호와 스트림 암호 간의 주요 차이점은 블록 암호가 한 번에 텍스트 블록을 암호화하고 암호 해독한다는 것입니다. 반면에 스트림 암호는 한 번에 한 바이트의 텍스트를 가져와 텍스트를 암호화하고 해독합니다.

비교 차트

비교 근거블록 암호스트림 암호
기본
한 번에 블록을 가져 와서 일반 텍스트를 변환합니다.
한 번에 1 바이트의 일반 텍스트를 가져 와서 텍스트를 변환합니다.
복잡성
심플한 디자인
비교적 복잡한
사용 된 비트 수
64 비트 이상
8 비트
혼란과 확산
혼란과 확산을 모두 사용합니다.혼란에만 의지 함
사용 된 알고리즘 모드
ECB (전자 코드북)
CBC (Cipher Block Chaining)
CFB (암호 피드백)
OFB (출력 피드백)
가역성
암호화 된 텍스트를 뒤집는 것은 어렵습니다.
XOR을 사용하여 쉽게 일반 텍스트로 되돌릴 수 있습니다.
이행
파이 스텔 사이퍼
버넌 사이퍼

블록 암호의 정의

Block Cipher는 메시지를 가져 와서 고정 된 크기의 블록으로 나누고 즉시 한 블록의 메시지를 변환합니다. 예를 들어 일반 텍스트 "STREET_BY_STREET"로 암호화해야하는 메시지가 있습니다. bock 암호를 사용하여 "STREET"을 먼저 암호화하고 "_BY_", 마지막으로 "STREET"을 암호화해야합니다.
실제로는 통신은 비트 단위로만 이루어집니다. 따라서 STREET은 실제로 STREET의 ASCII 문자와 동일한 이진수를 의미합니다. 이후, 어떤 알고리즘이 이들을 암호화합니다. 결과 비트는 다시 ASCII로 변환됩니다.

Block ciphers의 사용에 관한 명백한 문제는 동일한 암호가 생성되는 반복 텍스트 입니다. 따라서 암호 해독에 대한 힌트를 제공하여 반복되는 일반 텍스트 문자열을 쉽게 파악할 수 있습니다. 결과적으로 메시지 전체를 나타낼 수 있습니다.

이 문제를 극복하기 위해 체인 모드 가 사용됩니다. 이 기법에서는 앞선 암호문 블록이 현재 블록과 섞여 있으므로 암호 텍스트 막연한 부분까지 동일한 내용의 블록을 반복적으로 피할 수 있습니다.

스트림 암호의 정의

스트림 암호는 일반적으로 블록을 사용하는 대신 그 순간에 메시지의 1 바이트를 암호화합니다. 예를 들어, 원본 메시지 (일반 텍스트)가 ASCII (즉, 텍스트 형식)의 "blue sky"라고 가정합니다. 이 ASCII를 동등한 이진 값으로 변환하면 0과 1의 형식으로 출력됩니다. 010111001로 번역합시다.

암호화와 복호화를 위해, 키와 일반 텍스트가로드되는 의사 랜덤 비트 생성기 가 사용됩니다. 의사 난수 생성기는 임의로 키 스트림으로 알려진 8 비트 숫자의 스트림을 만듭니다. 입력 키가 100101011이라고합시다. 이제 키와 일반 텍스트가 XOR됩니다. XOR 로직은 이해하기 쉽습니다.
XOR은 하나의 입력이 0이고 다른 하나가 1이면 출력을 생성합니다. 입력이 모두 0이거나 입력이 모두 1이면 출력은 0입니다.

혼돈 은 암호문이 원본 평문에 대한 단서를 제공하지 못하도록 보장하는 방법입니다.
확산 은 행과 열을 통해 일반 텍스트를 분산시켜 일반 텍스트의 중복성을 향상시키는 데 사용되는 전략입니다.

Block Cipher와 Stream Cipher의 주요 차이점

  1. 블록 암호 기법은 한 번에 한 블록의 텍스트를 암호화하는 것을 포함합니다. 마찬가지로 텍스트를 한 블록 뒤집어서 해독합니다. 대조적으로, 스트림 암호 기술은 한 번에 한 바이트의 텍스트를 암호화하고 암호 해독합니다.
  2. 블록 암호는 혼란과 확산을 모두 사용하는 반면 스트림 암호는 혼란에만 의존합니다.
  3. 블록의 일반적인 크기는 블록 암호에서 64 또는 128 비트가 될 수 있습니다. 반대로, 한 번에 1 바이트 (8 비트)가 스트림 암호로 변환됩니다.
  4. 블록 암호는 ECB (전자 코드북 )CBC (암호 블록 체이닝) 알고리즘 모드를 사용합니다. 반대로 스트림 암호는 CFB (암호 피드백)OFB (출력 피드백) 알고리즘 모드를 사용합니다.
  5. 스트림 암호는 일반 텍스트를 암호 텍스트로 변환하는 XOR 함수를 사용하므로 XOR 된 비트를 쉽게 반전 할 수 있습니다. 반면 블록 암호는 XOR을 사용하지 않습니다.
  6. 블록 암호는 동일한 키를 사용하여 각 블록을 암호화하고 스트림 암호는 각 바이트에 대해 다른 키를 사용합니다.

결론:

Block Cipher와 Stream Cipher는 일반 텍스트가 암호화되고 암호 해독되는 방식이 다릅니다. 블록 암호의 기본 개념은 일반 텍스트를 블록으로 암호화하여 해당 블록을 암호화하는 것입니다. 스트림 암호는 일반 텍스트를 스트림과 비슷한 비트 단위로 변환합니다.

Top