-
11/1 TIL | 대칭 키와 비대칭 키 암호화 방식📝 기록/매일의 기록 2022. 11. 1. 17:14
이번 주 강의는 로그인, 회원가입 그리고 인가를 배우는 만큼 암호화에 대해서도 공부를 하는 주간이다. 책을 읽으면서도 한 번에 이해 안 가는 부분들이 많아 각 개념들을 정리해서 소화하고, 다시 책을 읽는 방식으로 1주 1개발서적 챌린지를 진행하려고 한다. 하여 오늘은 '대칭 키와 비대칭 키 암호화 방식'에 대해 정리해보고자 한다.
암호화는 크게 대칭키, 비대칭키, Hash 이렇게 크게 세 가지로 분류된다. (참고로 Hash는 이번 포스팅에서 다루지 않음)
💡대칭키와 비대칭키
- 대칭키: 암호화/복호화에 사용되는 키가 동일하다.
- 비대칭키: 암호화/복호화에 사용되는 키가 다르다.우선 대칭 키 암호화 방식부터 정리해보자면, 양방향 암호화 방식 중에 널리 사용되는 방식으로 암호화와 복호화에 사용되는 키가 동일한 방식이다. 암•복호화를 할 때 대칭되는, 즉 동일한 키를 사용하기 때문에 대칭 키 암호화 방식이라고 한다. '비밀 키 암호화 방식'이라고도 불린다. 그렇기 때문에 키는 당연히 비공개이다. 정보 교환 당사자 간에 동일한 키를 공유해야 하므로, 여러 사람과 정보 교환 시 많은 키를 유지하고 관리하기가 어렵다는 단점이 있다. 또한 비대칭 키 암호화 방식과 비교했을 때 예전부터 사용해왔으므로 '전통 암호 시스템'이라고도 한다.
두번째로, 비대칭 키 암호화 방식은 암호화와 복호화에 사용되는 키가 서로 다른 키로 이루어진 암호화 방식이다. 타인에게 절대 노출되어서는 안 되는 private key(개인 키)와 공개적으로 개방되어 있는 public key(공개 키)가 쌍으로 이루어진 형태이다. '공개 키 암호화 방식'이라고도 불린다. 비대칭 키 방식은 데이터 암호화 속도가 대칭 키 암호화 방식에 비해 느리기 때문에 일반적으로 대칭 키 암호화 방식의 키 분배 또는 카드 번호와 같은 작은 크기의 데이터 암호화에 많이 사용된다.
앞서 말한 대칭 키 방식의 경우 암•복호화할 때 키가 동일하여 서로 정보가 연결되기 때문에 기능이 하나 뿐이다. 반면, 비대칭 키 방식은 암호화 과정에서 공개 키와 개인 키 중 무엇을 사용하는지에 따라 서로 다른 기능을 제공한다. 그 두 기능이 바로 공개 키 암호화와 전자서명이다.
💡비밀 키와 개인 키
- 비밀 키(secret key): 대칭 키 방식에서 동일하게 사용되는 키로, 당사자들만이 아는 키이므로 공유 비밀키라고도 한다.
- 개인 키(private key): 비대칭 키 방식에서 암호화/복호화를 위해 비밀 메시지를 교환하는 당사자만이 알고 있는 키로, 각 개인 별로 관리하는 키이다. 하여 소유자 개념으로 생각하면 된다.
즉, 비밀 키는 암호문을 해독하게 하고 싶은 사람끼리는 공유할 수 있는 키인 반면, 개인 키는 반드시 소유가 허락된 개인만 가져야 한다. 둘은 완전히 다른 개념이기 때문에 정확하게 차이점을 구분할 수 있어야 한다.
그렇다면 비대칭 키 암호화 방식의 기능 중 공개 키 암호화의 동작 과정을 한번 살펴보자.
1. 제나는 보니의 공캐 키를 이용해 '배고프다'라는 메시지를 암호화한다.
2. 암호화된 메시지를 보내고 싶은 보니에게 보낸다.
3. 전달 과정에서 암호화된 메시지를 여러 사람들이 접근하고 확인할 수 있지만, 원문을 알 수는 없다.
4. 메시지를 전달받은 보니는 자신만이 가지고 있는 개인 키를 이용해 해당 메시지를 복호화한다.이렇게 제나와 보니 사이에 암호화된 메시지를 풀 수 있는 키가 공유될 필요가 없다. 보니의 공개 키로 암호화된 메시지는 보니의 개인 키로만 복호화할 수 있다. 이것이 공개 키 암호화 방식이다.
두번째로, 전자 서명도 알아보자.
앞서 설명했듯 어떤 메시지를 보니라는 사람의 공개 키로 암호화한다면, 그 공개 키와 매칭되는 보니의 개인 키로만 복호화할 수 있다. 그말인 즉슨, 그 반대도 가능하다는 것인데 만약 보니가 자신의 개인 키로 어떤 메시지를 암호화한다면, 그건 그 개인 키와 매칭되는 공개 키로만 복호화할 수 있다.
1. 보니가 제나에게 전하고 싶은 말인 '용돈으로 100만원 부쳤다. 간식이라도 사먹어'라는 메시지를 자신의 개인 키로 암호화한다.
2. 보니의 공개 키를 가지고 있는 사람이라면 누구나 그 메시지를 알아볼 수 있다.
3. 하지만 이 메시지를 암호화시킬 수 있는 사람은 오로지 개인 키를 가진 보니 뿐이다.즉, 이 메시지를 보니 본인의 개인 키로 암호화함으로써, 이 메시지의 작성자가 보니임을 보증할 수 있게 되는 것이다. 실제로 우리가 편지나 계약서에 서명하는 것처럼 디지털 메시지에 서명을 할 수 있는 것이다. 이게 바로 공개 키 암호화 방식이 제공하는 전자 서명 기능이다.
전자 서명을 통해 누군가 메시지를 조작하거나 변경하는 것을 방지할 수 있다. 누군가 제나에게 100만원 부친 사실을 다른 사람에게 부친 거처럼 조작하고자 해도, 보니의 개인 키가 없는 이상 불가능하다. 그러니까 보니가 개인 키로 서명한 메시지는 작성자가 보니이고, 중간에 공격을 받더라도 변경되지 않음을 보증한다.
이렇게 TIL로 한번 정리하고 나니 어떤 식으로 돌아가는지 흐름을 대강 파악할 수 있었다. 이제 큰 숲을 희미하게 나마 볼 수 있게 되었으니 다시 책을 읽으면서 세세한 나무들을 살펴보도록 하자!💪
'📝 기록 > 매일의 기록' 카테고리의 다른 글
11/3 TIL | 난 몰랐어 코테가 이리 다채로운지!🕺🏻 (1) 2022.11.03 11/2 TIL | 그리디 알고리즘(Greedy Algorithm) (0) 2022.11.02 10/31 TIL | HandlerInterceptor란? (0) 2022.10.31 10/30 TIL | getReferenceById & findById 정리. (0) 2022.10.30 10/29 TIL | 인증(Authentication)과 인가(Authorization) (0) 2022.10.29