어떤 문자 apple을 암호화하고 복호화를 하는 방식에 대해 알아보자. (대칭키와 비대칭키에 대해서만 알아볼거다)
요즘은 암호화 알고리즘이 있을 때 키(key)를 이용해서
암호화를 하고 복호화를 한다.
암호화 복호화
apple -> @#TXV @#TXV -> apple
키 사용 키 사용
A라는 키를 이용하여 암호화 했다면,
A라는 키를 이용하여 복호화 한다는 것은 전혀 이상할 것 없는 말이다.
실제로도 그렇게 사용이 된다. 이를 대칭키 방식이라고 한다.
다만 문제가 하나 있다면, 복호화를 하기 위해서 암호화 할 때 사용했던 키를 알아야한다는 것이다.
보통 암호화를 하면, 암호화 된 정보를 상대방에게 전해주고, 상대방은 암호화 된 정보를 해독해서 원래 정보를 읽을 것이다.
문제는 웹(HTTP)의 세계에서는 내가 원하는 상대방에게 키를 알려주기가 쉽지 않다는 점이다.
만약 내가 원하는 상대방에게 키를 알려주는 과정에 다른 누군가가 키정보를 훔쳐본다던가의 행위를 하면 내 암호화 한 정보는 내가 원하지 않는 사람도 해독하여 볼 수 있게 된다.
이를 해결하기 위해 나온 방식이 바로 비대칭키 방식이고, 이는 공개키 방식이라고도 불린다.
비대칭키 방식은 공개키, 비밀키 총 2개의 키가 존재하는데
비대칭키 방식을 사용하는 암호화 알고리즘은
공개키를 이용하여 암호화를 하면, 비밀키를 이용해서만 복호화를 할 수 있고
비밀키를 이용하여 암호화를 하면, 공개키를 이용해서만 복호화를 할 수 있다는 특이한 점이 있다.
(비밀키를 이용하여 공개키를 만든다.)
암호화 복호화
apple -> @#TXV @#TXV -> apple
공개키 사용 비밀키 사용
암호화 복호화
apple -> @#TXV @#TXV -> apple
비밀키 사용 공개키 사용
더 나아가 공개키를 상대방에게 공개를 하고 그 상대방이 해당 공개키를 이용하여 암호화를 하게 만든다.
그리고 본인은 암호화 된 정보를 받은 후, 본인만 알고 있는 비밀키를 이용하여 암호화 된 정보를 해독하여 원래 정보를 읽는다.
이렇게 되면 본인은 비밀키를 다른 누군가에게 알려야한다는 걱정없이 암호화 된 정보를 받아서 읽을 수 있게 되는 것이다.
'살짝 정리' 카테고리의 다른 글
AWS Cloud Practitioner Essentials 모듈1 (0) | 2021.06.29 |
---|---|
컴포넌트의 내부 구현을 숨기자 (0) | 2021.06.26 |
이진탐색 (0) | 2021.06.24 |
producer-consumer 패턴 (0) | 2021.06.16 |
JPA 관계 생각해보기 (0) | 2021.06.08 |