대칭 키 암호

대칭 키 암호(symmetric-key algorithm)는 암호화 알고리즘의 한 종류로, 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미한다.

대칭 키 암호에서는 암호화를 하는 측과 복호화를 하는 측이 같은 암호 키를 공유해야 한다. 이러한 점은 공개 키 암호에서 공개 키와 비밀 키를 별도로 가지는 것과 구별된다. 대신, 대부분의 대칭 키 암호는 공개 키 암호와 비교하여 계산 속도가 빠르다는 장점을 가진다. 따라서, 많은 암호화 통신에서는 공개 키 암호를 사용하여 대칭 키 암호의 공통 키를 공유하고, 그 키를 기반으로 실제 통신을 암호화하는 구조를 사용한다(즉 전송 계층 보안(TLS)).

종류 

대칭 키 암호는 암호화하는 단위에 따라 스트림 암호와 블록 암호로 나눌 수 있다.
 스트림 암호는 연속적인 비트/바이트를 계속해서 입력받아, 그에 대응하는 암호화 비트/바이트를 생성하는 방식이다.
 블록 암호는 정해진 한 단위(블록)를 입력받아 그에 대응하는 암호화 블록을 생성하는 방식이다.
블록 암호의 경우 적절한 운용 모드를 조합하면 블록 단위보다 큰 입력을 처리할 수 있으며, 또한 스트림 암호와 유사하게 지속적인 입력에 대해 동작할 수 있다(대신 입출력 단위는 스트림 암호보다 큰, 블록 단위가 된다).

특징

각주 

암호 알고리즘