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

Anonim

스트림 암호와 블록 암호 | 상태 암호 대 블록 암호

암호 해독에서 스트림 암호와 블록 암호는 대칭 키 암호 제품군에 속하는 두 가지 암호화 / 암호 해독 알고리즘입니다. 일반적으로 암호는 일반 텍스트를 입력으로 사용하고 암호문을 출력으로 생성합니다. 블록 암호는 가변 길이 블록을 고정 변환 (unvarying transformation)을 사용하여 암호화합니다. 스트림 암호는 다양한 길이의 비트 스트림을 암호화하고 각 비트에서 다양한 변환을 사용합니다.

스트림 암호 란 무엇입니까?

스트림 암호는 대칭 키 암호 계열에 속한다. 스트림 암호는 XOR (배타적 논리합) 연산을 사용하여 일반 텍스트 비트와 의사 임의 암호 비트 스트림을 결합합니다. 스트림 암호는 연속 숫자에 대한 다양한 변환을 사용하여 일반 텍스트 숫자를 한 번에 하나씩 암호화합니다. 각 숫자의 암호화는 암호 엔진의 현재 상태에 따라 다르므로 스트림 암호는 상태 암호라고도합니다. 일반적으로 단일 비트 / 비트는 한 자리 숫자로 사용됩니다. 보안 문제를 피하려면 동일한 시작 상태가 두 번 이상 사용되지 않도록해야합니다. 가장 널리 사용되는 스트림 암호는 RC4입니다.

블록 암호 란 무엇입니까? 블록 암호는 또 다른 대칭 키 암호이다. 블록 암호는 고정 길이의 블록 (비트 그룹)에서 작동합니다. 블록 암호는 블록의 모든 자릿수에 고정 된 (변함없는) 변환을 사용합니다. 예를 들어, x 비트 블록의 일반 텍스트 (비밀 키와 함께)가 블록 암호 엔진에 대한 입력으로 제공되면 해당 x 비트의 암호문 블록을 생성합니다. 실제 변환은 비밀 키에 의존합니다. 유사하게 암호 해독 알고리즘은 암호문의 x 비트 블록과 위의 비밀 키를 입력으로 사용하여 원래의 x 비트 블록의 일반 텍스트를 복구합니다. 입력 메시지가 블록 크기에 비해 너무 길면 블록으로 나누어지며이 블록은 동일한 키를 사용하여 (개별적으로) 암호화됩니다. 그러나 동일한 키가 사용되므로 일반 텍스트의 각 반복 시퀀스는 암호 텍스트에서 동일한 반복 시퀀스가되어 보안 문제가 발생할 수 있습니다. 널리 사용되는 블록 암호는 DES (Data Encryption Standard) 및 AES (Advanced Encryption Standard)입니다.

스트림 암호와 블록 암호의 차이점은 무엇입니까? 스트림 암호들 및 블록 암호들 모두가 대칭 암호들의 패밀리에 속하지만, 몇몇 주요한 차이점이있다. 블록 암호는 고정 길이 블록의 비트를 암호화하고 스트림 암호는 XOR 연산을 사용하여 일반 텍스트 비트와 의사 임의 암호 비트 스트림을 결합합니다. 블록 암호가 동일한 변환을 사용하더라도 스트림 암호는 엔진 상태를 기반으로 다양한 변환을 사용합니다.스트림 암호는 일반적으로 블록 암호보다 빠르게 실행됩니다. 하드웨어 복잡성 측면에서 스트림 암호는 상대적으로 덜 복잡합니다. 블록 암호가 블록 크기보다 짧은 블록에서 직접적으로 동작 할 수 없기 때문에, 평문을 다양한 양 (예를 들어, 보안 와이파이 접속)으로 이용할 수있는 경우, 스트림 암호는 블록 암호에 비해 전형적으로 선호된다. 그러나 때로는 스트림 암호와 블록 암호의 차이가 명확하지 않습니다. 그 이유는 특정 모드의 조작을 사용할 때 블록 암호를 사용하여 사용 가능한 가장 작은 데이터 단위를 암호화함으로써 스트림 암호로 작동 할 수 있기 때문입니다.