대칭 키 암호(symmetric-key algorithm)[1]는 암호화 알고리즘의 한 종류로, 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 의미한다.
대칭 키 암호에서는 암호화를 하는 측과 복호화를 하는 측이 같은 암호 키를 공유해야 한다. 이러한 점은 공개 키 암호에서 공개 키와 비밀 키를 별도로 가지는 것과 구별된다. 대신, 대부분의 대칭 키 암호는 공개 키 암호와 비교하여 계산 속도가 빠르다는 장점을 가진다. 따라서, 많은 암호화 통신에서는 비밀 키 암호를 사용하여 대칭 키 암호의 공통 키를 공유하고, 그 키를 기반으로 실제 통신을 암호화하는 구조를 사용한다.
출처 -위키백과
암호화의 필요한 키인 encryption key-ek와 decryption key-dk가 서로 연결되어있는 암호화 기법이다.
dk를 알면 ek를 정의 하기 쉽고 ek로 부터 dk를 정의 하기 쉽다.
그림을 통하여 설명하자면
어떠한 문구를 암호화 하고 다시 암호화된 문구를 복호화 하는데 같은 키를 가지고 하는 방식이라고 생각하면 쉬울거 같다.이러한 키는 절대 외부인에게 유출되어선 안된다는 점이 특징이다.
집문을 열고 닫을때 가족 구성원 모두가 같은 키를 가지고 열고 닫는것을 생각해도 좋을것 같다,
열쇠는 허용된 구성원들끼리만 사용해야 하고 절대 외부에 유출되선 안되기 때문.
한번 대칭키 암호화를 통해서 직접 문구를 암호화 해보자
를 접속하여 직접 암호화를 해보자
사이트를 살펴보면
Hi every one이 평문(plain text) 즉 암호화 되기전 문구이고
HoyiTT가 우리가 사용할 키 (ek,dk)? 라고 생각하면 좋을거 같다.
오른쪽 아래에 Encrypt를 누르면
z/9xhb0vr8SbG6DrcNVd9Q==
라는 라는 암호화된 문자열(cipher text)가 생성되게 된다 만약에 이 키값(HoyiTT)를 모른다면
평문인 Hi every one 를 알아내기란 하늘의 별 따기 일것이다.
그럼 이번엔 다시 복호화를 해보자
아까와는 반대로 큰 텍스트 박스에
z/9xhb0vr8SbG6DrcNVd9Q==
을 넣고 키 값(HoyiTT)을 넣고 오른쪽 아래에 Decrypt를 눌러주면
원문인 Hi everyone이 나오게 된다.
대칭키 암호화의 기본.
'강의' 카테고리의 다른 글
CS50 1.컴퓨팅 사고 (0) | 2020.08.21 |
---|---|
페도라 리눅스 개정판 3장 정리 (0) | 2020.06.01 |
페도라 리눅스 개정판 2장 정리 (0) | 2020.06.01 |
치환 암호 (Substitution cipher) (1) | 2020.04.11 |
블록 암호(block cipher)-대칭키암호 (0) | 2020.04.11 |