Script
공개 키 암호 기법과 닫힌 자물쇠 본문
공개 키 암호 기법
공개 키 암호 기법은 비밀 키 암호 기법과는 완전히 다른 아이디어로, 1976년에 발명되었다.
공개 키 암호 체계에서는 사람마다 공개 키와 개인 키로 구성된 키 쌍을 가지고 있다.
쌍으로 된 키는 수학적으로 연관성이 있고, 둘 중 하나의 키로 암호화 된 메시지는 다른 하나의 메시지로만
해독할 수 있으며 그 반대도 마찬가지이다.
키가 충분히 길다면 공격자가 비밀메시지를 해독하거나 공개 키에서 개인 키를 추론하는 것은 계산상
불가능하다.
실제로 사용될 때 공개 키는 정말로 공개되며, 모든 사람이 사용할 수 있다.
따라서 개인 키는 엄격히 비공개로 유지되어야 한다.
이 방식은 키 분배 문제를 해결해준다.
분배해야 할 공유된 비밀이 없기 때문이다.
공개 키 암호기법은 인터넷에서 이루어지는 보안 통신의 필수 구성요소이지만,
한가지 결점은 알고리즘이 더 느린 경향이 있다는 것이다.
따라서 모든 정보를 공개키로 암호화하기보다는 2단계 절차를 사용한다.
먼저 공개키를 사용하여 임시 비밀 키에 대해 합의한 다음, AES를 사용하여 대량으로 데이터를 전송한다.
이러면 각 단계에서 보안이 유지된다.
이때 브라우저 HTTPS 프로토콜로 연결되어 있다는 것을 보여주고 연결이 암호화되었음을 나타내는 닫힌
자물쇠 아이콘을 표시한다.
공개 키 암호 기법이 모든 문제를 해결해주지는 않는다.
개인 키가 공개되면 여태까지 보낸 모든 메시지를 해독할 수 있기 때문이다.
이와 관련해서는 순방향 비밀성 기법이 도움이 된다.
이는 개별 메시지가 일회용 비밀번호로 암호화 되고, 비밀번호는 폐기되는 방식을 말한다.
자주 쓰이는 공개 키 알고리즘
가장 널리 사용되는 공개 키 알고리즘은 RSA이다.
RSA 알고리즘은 매우 큰 합성수는 인수분해하기 어렵다는 점에 기반을 두고 있다.
RSA는 큰 정수를 생성하는데 이 수는 큰 소수 두개의 곱이고, 각 소수의 자릿수는 큰 정수의 절반 정도로 되어있다.
RSA는 이 값들을 공개키와 개인키의 기준으로 사용한다.
공개 키 알고리즘은 속도가 느리기 때문에 문서에는 간접적으로 서명할 때가 많다.
이때 위조할수 없는 방식으로 원본에서 도출한 훨씬 작은 값을 이용하는데, 이 짧은 값을
메시지 다이제스트 혹은 암호 해시라고 한다.
최신 암호 기법은 우수한 성능을 보이지만 실제로는 이것만으로 충분치 않고 신뢰가능한 제 3의 기관이 필요하다.
그 예시로 어떤 사이트를 방문했을 때 인증기관의 인증서로 이 사이트가 진짜임을 입증하는 경우를 들 수 있다.
하지만 이렇게 하려면 인증기관을 신뢰할 수 있어야 한다.
그 중 하나로 렛츠 인크립트라는 기관은 누구에게나 무료 인증서를 제공하는 비영리 인증기관이다.
그들의 아이디어는 인증서를 얻는 일이 쉬워지면 결국 모든 웹사이트가 HTTPS를 사용해서 작동하고 있는
모든 트래픽이 암호화된다는 것이다.
이들은 2020년 초까지 인증서를 10억개 발급했다고 한다.
'CS' 카테고리의 다른 글
| RESTful API란 (0) | 2022.11.09 |
|---|---|
| 브라우저에 'naver.com'을 입력하면 일어나는 일 (0) | 2022.11.01 |
| 68 (0) | 2022.08.09 |
| 57~59 (0) | 2022.08.06 |
| 파일 시스템과 블록 / 파일을 휴지통에 넣을 때 일어나는 일 (0) | 2022.08.03 |