암호화에는 다양한 부분이 있습니다. 일부 데이터를 암호화하려는 경우 대칭 암호화 알고리즘과 비대칭 암호화 알고리즘의 두 가지 유형의 알고리즘을 사용할 수 있습니다. 전체적인 개념은 동일하고 데이터를 암호화할 수 있지만 서로 다른 원칙에 따라 작동하고 사용 사례가 다릅니다. 그러나 제목의 차이점은 암호화 키를 설명합니다. 대칭 암호화 알고리즘은 단일 공유 키를 사용하여 데이터를 암호화하고 해독합니다. 비대칭 암호화 알고리즘은 두 개의 연결된 키(하나는 해독용, 다른 하나는 해독용)를 사용합니다.
대칭 암호화 알고리즘의 속성
위에서 설명한 것처럼 대칭 암호화 알고리즘의 주요 특징은 단일 키를 사용하여 데이터를 암호화하고 해독한다는 사실입니다. 가능한 암호화 키가 하나만 있는 것은 아닙니다. 하나의 키로 무언가를 암호화하는 경우 동일한 키를 사용하여 암호를 해독해야 합니다. 공유 키 암호화라고도 합니다. 이는 각 참가자가 동일한 키를 알아야 하므로 공유해야 하기 때문입니다.
동일한 키를 사용하여 암호화 및 해독하는 이러한 속성은 약간의 문제가 될 수 있습니다. 대칭 암호화 알고리즘을 사용하려면 안전하게 통신할 수 있어야 합니다. 그러나 안전한 통신 수단이 없으면 그렇게 할 수 없습니다. 고맙게도 이 문제는 비대칭 암호화로 해결할 수 있지만 이해할 가치가 있습니다.
대칭 암호화 알고리즘의 키는 적어도 비대칭 암호화와 비교할 때 상당히 작은 경향이 있습니다. 따라서 느린 네트워크 연결을 통해 상대적으로 쉽게 전송할 수 있으며 신뢰할 수 없는 네트워크의 오류에 덜 취약합니다. 대칭 암호화 알고리즘은 비대칭 알고리즘에 비해 빠릅니다.
이러한 모든 속성은 데이터의 대량 암호화에 특히 유용한 대칭 암호화 알고리즘을 만듭니다. 속도가 문제인 경우 특히 그렇습니다.
스트림 암호 및 블록 암호
AES는 아마도 가장 잘 알려진 대칭 암호화 알고리즘일 것입니다. 그것은 많은 데이터를 암호화하는 거의 모든 것에 사용되며 HTTPS에서 사용되는 암호화 제품군의 표준 부분입니다. AES는 128비트 블록을 사용하는 블록 암호입니다. 블록 암호는 한 번에 데이터 블록을 암호화하여 작동합니다. 각 블록의 크기는 동일해야 합니다. 나머지 데이터가 블록 크기보다 클 때는 괜찮지만 블록을 완성하기 위해 어떤 형태의 패딩을 사용해야 함을 의미합니다.
스트림 암호는 한 번에 훨씬 적은 양의 데이터(일반적으로 한 번에 1바이트)를 암호화하여 작동합니다. 이 개념의 변형은 문자에서 작동하는 대체 암호입니다. 대체 암호는 빈도 분석에 취약하므로 일반적으로 신뢰할 수 없고 사용되지 않습니다. 그러나 스트림 암호에는 이 문제가 없습니다.
대칭 알고리즘은 알려진 일반 텍스트 공격, 선택된 일반 텍스트 공격, 차등 암호 분석 및 선형 암호 분석에 취약한 경향이 있습니다. 그러나 최신 알고리즘은 이를 염두에 두고 신중하게 설계되었으므로 이러한 문제는 문제가 되지 않습니다.
결론
대칭 암호화는 동일한 키를 사용하여 데이터를 암호화하고 해독하는 암호화 형식입니다. 어떤 경우에는 알고리즘 자체가 암호화 및 암호 해독과 동일하지만 반드시 그런 것은 아닙니다. 암호화 키는 상대적으로 짧고 전송하기 쉬운 경향이 있습니다. 그러나 키는 관련된 모든 당사자 간에 전달되어야 하므로 보안 채널을 통해 전송되어야 합니다. 대칭 암호화 알고리즘은 비대칭 암호화 알고리즘보다 훨씬 빠른 경향이 있습니다.