스트림 암호는 실시간 하드웨어 애플리케이션에 매우 적합합니다.
암호는 읽을 수 있는 텍스트 또는 일반 텍스트를 읽을 수 없는 텍스트 또는 암호문으로 변환하는 데 사용되는 일련의 수학적 규칙 또는 알고리즘입니다. 스트림 암호와 블록 암호의 주요 차이점은 스트림 암호는 한 번에 1비트 또는 1바이트의 텍스트 스트림에서 작동하는 반면 블록 암호는 텍스트 블록에서 작동한다는 것입니다.
스트림 암호
스트림 암호의 기본 아이디어는 텍스트를 1비트 또는 1바이트 길이의 작은 블록으로 나누고 이전의 많은 블록에 따라 각 블록을 인코딩하는 것입니다. 스트림 암호는 각 비트 또는 바이트에 대해 다른 암호화 키(알고리즘에 입력해야 하는 값)를 사용하므로 동일한 비트 또는 바이트가 암호화될 때마다 다른 암호문을 생성합니다. 일부 스트림 암호는 임의 또는 거의 임의의 비트 스트림을 생성하는 키 스트림 생성기를 사용합니다. 암호는 키스트림의 비트와 일반 텍스트의 비트 간에 배타적 논리합이라고 하는 부울 연산을 수행하여 암호문을 생성합니다.
오늘의 비디오
블록 암호
블록 암호의 기본 아이디어는 텍스트를 비교적 큰 블록(일반적으로 64 또는 128비트 길이)으로 나누고 각 블록을 개별적으로 인코딩하는 것입니다. 각 블록에 동일한 암호화 키가 사용되며, 이를 결정하는 것은 암호화 키입니다. 대체, 운송 및 기타 수학적 기능이 각각에 대해 수행되는 순서 블록. 강력한 알고리즘은 암호를 리버스 엔지니어링하거나 각 블록에서 어떤 기능이 순서대로 수행되었는지 결정하는 것이 사실상 불가능하다는 것을 의미합니다.
확산과 혼란
블록 암호는 혼동 및 확산으로 알려진 기술을 사용하여 평문을 암호문으로 암호화합니다. 혼란의 이면에 있는 아이디어는 암호화 키와 암호문 간의 관계를 가능한 한 복잡하게 만드는 것입니다. 이상적으로는 암호화 키의 모든 문자가 암호문의 모든 문자에 영향을 미쳐야 합니다. 대조적으로, 확산은 암호문의 여러 문자에 걸쳐 평문의 각 문자의 영향을 분산시켜 암호를 통계적 공격에 덜 취약하게 만듭니다.
장점과 단점
스트림 암호가 데이터를 한 번에 한 비트씩 암호화하고 해독한다는 사실은 오디오 및 비디오 애플리케이션과 같은 실시간 하드웨어 애플리케이션에 특히 적합하다는 것을 의미합니다. 스트림 암호는 소프트웨어 응용 프로그램과 관련하여 블록 암호보다 약하고 덜 효율적이며 해당 영역에서 덜 자주 사용됩니다. 블록 암호는 소프트웨어에서 이미 사용하는 길이의 블록으로 데이터를 암호화하기 때문에 소프트웨어에서 구현하기가 더 쉽습니다. 암호화 키는 블록 크기와 길이가 같은 경우가 많습니다.