PGP 의 설립자는 미국의 Phil Zimmermann 입니다. 그의 창의성은 RSA 공개 키 시스템의 편리함과 전통적인 암호화 시스템의 고속을 결합하고 디지털 서명과 키 인증 관리 메커니즘에 교묘한 디자인을 하고 있다는 데 있다. 그래서 PGP 는 거의 가장 인기 있는 공개 키 암호화 패키지가 되었다.
1. 먼저 PGP 암호화 시스템의 프로세스를 간략하게 소개합니다.
PGP 암호화 시스템은 공개 키 암호화와 기존 키 암호화를 결합한 암호화 기술입니다. 한 쌍의 수학적 관련 키를 사용합니다. 한 쌍 (공개 키) 은 정보를 암호화하고 다른 한 쌍 (개인 키) 은 정보를 해독하는 데 사용됩니다.
PGP 가 사용하는 기존 암호화 기술 부분에 사용되는 키를 세션 키 (SEK) 라고 합니다. PGP 는 사용할 때마다 임의로 128 비트 IDEA 세션 키를 생성하여 메시지를 암호화합니다. 공개 키 암호화 기술의 공개 키와 개인 키는 세션 키를 암호화하고 이를 통해 간접적으로 메시지 내용을 보호하는 데 사용됩니다.
PGP 의 각 공개 키와 개인 키에는 키 인증서가 함께 제공됩니다. 일반적으로
키 내용 (최대 1 자리의 큰 숫자로 표시된 키)
키 유형 (키가 공개 키인지 개인 키인지를 나타냄)
키 길이 (키 길이 (이진 비트로 표시됨)
키 번호 (키를 고유하게 식별하는 데 사용됨) 이름, 이메일 등) < P > 키 지문 (128 비트 숫자, 키 내용의 피드는 키의 고유한 특징을 나타냄) < P > 브로커 서명 (브로커의 디지털 서명, 키 및 해당 소유자의 진실성 선언, 브로커의 키 번호 및 식별 정보 포함)
PGP 공개 키 및 PGP 는 사용자에게 필요한 키를 찾는 효과적인 알고리즘을 제공합니다.
PGP 는 여러 곳에서 비밀번호를 사용해야 하며 주로 개인 키를 보호하는 역할을 합니다. 개인키가 너무 길고 불규칙해서 기억하기 어렵다. PGP 는 암호로 암호화한 후 키 링에 보관하여 사용자가 기억하기 쉬운 암호로 개인 키를 간접적으로 사용할 수 있도록 합니다.
PGP 의 각 개인 키는 해당 암호로 암호화됩니다. PGP 는 주로 3 곳에서 사용자가 비밀번호를 입력해야 합니다.
암호화된 정보를 풀어야 할 경우 PGP 는 사용자가 비밀번호를 입력하고 개인 키를 제거하여 정보를 해독해야 합니다.
사용자가 파일이나 정보에 서명해야 할 때 사용자가 비밀번호를 입력하고 개인 키를 제거하여
디스크의 파일을 기존 암호화할 경우 사용자가 비밀번호를 입력해야 합니다.
PGP 는 일반 대중을 위한 암호화 소프트웨어입니다. 전자 메일은 개방형 네트워크를 통해 전송되며, 네트워크의 다른 사람들은 메시지를 수신하거나 가로채서 메시지 내용을 얻을 수 있으므로 메시지의 보안 문제가 더욱 두드러집니다. 제 3 자로부터 정보를 보호하려면 암호화 기술이 필요합니다. 또 다른 문제는 정보 인증입니다. 수신자가 메시지가 제 3 자에 의해 변조되지 않았다는 것을 어떻게 확신할 수 있는지 디지털 서명 기술이 필요합니다. RSA 공용 키 시스템은 기밀성과 인증이라는 두 가지 요구 사항을 충족하는 데 매우 적합합니다. 즉, 기밀성과 인증성 (Authentication) 입니다.
RSA(Rivest-Shamir-Adleman) 알고리즘은 수많은 불가능성 인수 분해 가정을 기반으로 한 공개 키 시스템입니다. 간단히 말해서 두 개의 큰 소수를 찾는 것입니다. 하나는 공개 키이고, 다른 하나는 아무에게도 말하지 않습니다. 즉, 개인 키입니다. 이 두 가지 키는 상호 보완적이다. 즉, 공개 키로 암호화된 암호문은 개인 키로 해독할 수 있고, 반대의 경우도 마찬가지라는 것이다. < P > 갑이 을에게 편지를 부친다고 가정하면, 그들은 서로의 공수키를 서로 알고 있다. 갑은 을의 숟가락으로 메일을 암호화하고 을 받으면 자신의 개인 숟가락으로 갑의 원문을 해독할 수 있다. 을의 개인 스푼을 아는 사람이 아무도 없기 때문에 갑 본인조차도 그 편지를 해독할 수 없어 편지의 비밀 유지 문제를 해결했다. 반면에, 모든 사람이 을의 공수키를 알고 있기 때문에, 그들은 을에게 편지를 보낼 수 있기 때문에, 을은 갑의 편지인지 확신할 수 없다. 이때 디지털 서명으로 인증해야 한다.
디지털 서명을 설명하기 전에 메일 다이제스트가 무엇인지 설명해야 합니다. 메일 다이제스트는 메시지에 대해 어떤 알고리즘으로 이 메일의 특징을 가장 잘 반영하는 수를 계산해 내는 것이다. 일단 메일이 바뀌면 이 숫자는 변할 수 있다. 이 숫자에는 작가의 이름 (실제로 작가의 키 안에 있음) 과 날짜 등이 더해져 하나의 서명으로 사용될 수 있다. (윌리엄 셰익스피어, 윈스턴, 메일, 메일, 메일, 메일, 메일, 메일, 메일, 메일) PGP 는 128 비트 이진수를 메일 다이제스트로 사용하여 MD5(message digest 5) 라는 알고리즘을 생성합니다. MD5 는 CRC 체크 코드와는 달리 원본과 동일한 MD5 고유 값을 가진 대체 메시지를 찾기 어려운 단방향 해시 알고리즘입니다. < P > 디지털 서명으로 돌아가면 갑은 자신의 개인 스푼으로 위에서 언급한 128 자리의 고유치를 암호화한 후 메일에 첨부한 후 을의 공용 스푼으로 전체 메일을 암호화한다. 이렇게 암호문을 을에게 받은 후 을은 자신의 개인 숟가락으로 메일을 해독하여 갑의 원문과 서명을 받았고, 을의 PGP 도 원문에서 128 자리의 고유치를 계산하여 갑의 공수복으로 서명을 해독하여 얻은 수와 비교했다. 맞으면 이 메일이 확실히 갑에서 온 것이다. 이러한 두 가지 보안 요구 사항이 모두 충족되었습니다.
PGP 는 암호화되지 않고 서명만 할 수 있습니다. 이는 공개 성명을 발표할 때 선언자가 자신의 신분을 확인하기 위해 자신의 개인 키로 서명할 수 있다는 것을 의미합니다. 이렇게 하면 수신자가 발신자의 신분을 확인할 수 있고 발신자가 자신의 성명을 부인하는 것을 막을 수 있다. 이 점은 상업 분야에서 큰 응용 전망을 가지고 있어 발신자 발의와 편지가 도중에 변조되는 것을 막을 수 있다.
PGP 는 실제로 RSA 와 기존 암호화의 하이브리드 알고리즘을 사용합니다. RSA 알고리즘의 계산량은 속도면에서 대량의 데이터를 암호화하기에 적합하지 않기 때문에 PGP 는 실제로 RSA 자체가 아니라 IDEA 라는 기존 암호화 알고리즘을 사용합니다. 전통적인 암호화는 일반적으로 한 키로 일반 텍스트를 암호화한 다음 같은 키로 암호를 해독하는 것이다. 이 방법의 대표는 DES, 즉 곱셈 암호화입니다. 주요 단점은 키의 전달 채널이 보안 문제를 해결할 수 없고 네트워크 환경 메일 암호화 요구에 적합하지 않다는 것입니다. IDEA 의 암호화 (해독) 속도는 RSA 보다 훨씬 빠르기 때문에 실제로 PGP 는 무작위로 생성된 키 (암호화가 다를 때마다) 로 IDEA 알고리즘을 사용하여 일반 텍스트를 암호화한 다음 RSA 알고리즘을 사용하여 암호화합니다. 이렇게 받는 사람도 RSA 로 이 무작위 키를 해독한 다음 IDEA 로 메일 자체를 해독한다. 이러한 체인 암호화는 RSA 시스템의 기밀성과 IDEA 알고리즘의 빠른 속도를 모두 제공합니다. PGP 는 이러한 체인 암호화를 사용하여 기밀성과 암호화 속도를 보장합니다.
PGP 의 핵심 기능은 파일 암호화, 통신 암호화 및 디지털 서명입니다. 다음은 전체 암호화 시스템의 핵심은 아니지만 각 부분을 조정하고 사용자를 용이하게 하는 PGP 액세스 가능성에 대해 설명합니다. 다음은 주로 PGP 의 키 관리 메커니즘을 소개합니다. < P > 성숙한 암호화 시스템에는 반드시 성숙한 키 관리 메커니즘이 있어야 합니다. 공수체제의 제안은 전통적인 암호화 체계의 키 분배 과정을 비밀로 하기 어려운 단점을 해결하기 위한 것이다. 만약 키가 인터넷을 통해 전달된다면, 인터넷의 다른 사람들은 감청을 통해 들을 수 있다. 예를 들어, 이전 버전의 Novell Netware 에서는 사용자의 비밀번호가 회선에서 일반 텍스트로 전송되어 리스너가 다른 사람의 비밀번호를 쉽게 얻을 수 있었습니다. 물론 Netware 4.1 에서 패킷 헤더의 사용자 암호는 이제 암호화됩니다. PGP 의 경우, 공수키는 원래 공개돼야 하는데, 감청방지 문제는 없습니다. 그러나 공개 키 배포에는 공개 키 변조 (Public Key Tampering) 와 같은 보안 문제가 남아 있는데, 이는 공개 키 키 시스템의 가장 큰 취약점일 수 있습니다. 사용자가 얻은 공개 키가 다른 사람이 위조한 것이 아니라 정확하다는 것을 보장하는 메커니즘이 있어야 합니다. 다음은 이 문제와 PGP 로 이 허점을 올바르게 막는 방법을 보여 주는 예입니다. < P > Mike 가 Alice 에게 편지를 보내려고 한다고 가정하면, 그는 Alice 의 공개 열쇠를 가지고 있어야 한다. 이 사용자는 BBS 에서 Alice 의 공개 키를 다운로드하여 이를 암호화해 BBS 의 이메일 기능으로 Alice 에게 보냈다. 하지만 또 다른 사용자 Charlie 라는 사용자가 BBS 에 잠입해 자신이 Alice 의 이름으로 생성한 키 쌍의 공개 키로 Alice 의 공개 키를 대체했고, 통신에 참여한 두 사람은 모두 알지 못했다. 그럼 마이크가 보낸 공수키는 앨리스가 아니라 찰리의 것이다. 모든 것이 정상인 것 같다. 그래서 Charlie 는 자신의 개인 스푼으로 Mike 가 Alice 에게 보낸 편지를 해독할 수 있었다. 심지어 그는 Alice 의 진짜 스푼으로 Mike 가 Alice 에게 보낸 편지를 전달할 수도 있어 아무도 의심하지 않을 것이다. 그가 Mike 가 Alice 에게 보낸 편지를 변경하려고 해도 문제없다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 명예명언) 심지어 그는 Alice 의 서명을 위조하여 Mike 나 다른 사람에게 편지를 보낼 수도 있다. 왜냐하면 이 사용자들의 손에 있는 공수키는 위조된 것이기 때문이다. 그들은 Alice 의 편지라고 생각할 것이다. < P > 이런 상황을 방지하는 가장 좋은 방법은 다른 사람에게 공수키를 직접 받을 수 있는 기회를 주는 것이다. 예를 들어 Alice 로부터 직접 그녀의 공수키를 받는 것은 많은 경우 어려운 일이다. PGP 는 이 문제를 해결하기 위한 공개 스푼 소개 메커니즘을 개발했다. 예를 들어, Mike 와 Alice 가 * * * 같은 친구 David 를 가지고 있고 David 가 그의 손에 있는 Alice 의 공개 키가 정확하다는 것을 알고 있다면 (공개 키를 인증하는 방법에 대해 PGP 는 또 다른 방법을 가지고 있으며, 나중에 David 가 Alice 와 그녀의 공개 키를 인증했다고 가정해 보겠습니다.) 이렇게 데이비드는 자신의 개인 스푼으로 Alice 의 공개 스푼에 서명할 수 있다. 이는 그가 이 공개 스푼이 Alice 에 속한다는 것을 보증한다는 것을 나타낸다. 물론 Mike 는 David 의 공개 스푼으로 그가 준 Alice 의 공개 스푼을 검증해야 한다. 마찬가지로 David 도 Alice 에게 Mike 의 공개 스푼을 인증해 David 가 Mike 와 Alice 사이의' 소개인' 이 될 수 있다. 이렇게 하면 Alice 나 David 는 David 가 서명한 Alice 의 공개 키를 BBS 에 업로드하여 Mike 가 가져가도록 할 수 있다. 아무도 발견하지 않고 변조할 수 없다. 심지어 BBS 의 관리자도 마찬가지다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 명예명언) 이것은 공공 * * * 채널에서 공개 키를 전달하는 보안 수단입니다. < P > 그렇다면 어떻게 안전하게 데이비드의 공개 키를 얻을 수 있을까. 마이크가 받은 데이비드의 공개 스푼도 가짜일 가능성이 있지만, 이를 위해서는 이 위조 키를 가진 사람이 이 모든 과정에 참여해야 한다. 그는 이 세 사람에 대해 잘 알고 있어야 하고, 또 오랫동안 계획해야 한다. 이는 일반적으로 불가능하다. 물론, PGP 는 이런 예방도 할 수 있는 건의가 있다. 즉, 보편적으로 신뢰하는 사람 또는 기관이 이 역할, 이른바' 키 웨이터' 또는' 인증기관' (인증센터) 을 맡는 것이다. 그가 서명한 공수키는 모두 사실로 간주되므로, 모두들 그의 공수만 있으면 된다. 이 사람의 공을 인증한다. 이런' 권위' 는 비개인통제기구나 정부기관이 충당하기에 적합하고, 현재 등급인증제도가 있는 기관이 존재한다. < P > 매우 분산되어 있는 사람들에게 PGP 는 사적인 방식의 키 전달 방식을 선호한다. 유기적인 비공식 경로가 사람들의 자연스러운 사회교제를 더 잘 반영하고, 사람들이 신뢰할 수 있는 사람을 자유롭게 선택하여 소개할 수 있기 때문이다. 요컨대 모르는 사람들 사이의 교제와 같다. 각 공개 스푼에는 하나 이상의 사용자 이름 (User ID) 이 있으며 혼동을 피하기 위해 자신의 이메일 주소를 추가하는 것이 좋습니다.
3. 다음으로 전화로 키를 인증하는 방법에 대해 설명합니다.
각 키에는 자체 식별 (keyID) 이 있습니다. keyID 는 8 자리 16 진수이고, 두 키가 같은 keyID 를 가질 가능성은 수십억 분의 1 이며, PGP 는 키를 보다 안정적으로 식별할 수 있는 방법인 키 지문 (key's fins) 을 제공합니다 각 키는 일련의 숫자 (16 자리 2 자리 16 진수) 에 해당하며, 이 지문의 반복은 더욱 미미할 수 있다. 또한 어느 누구도 지문이 있는 키를 생성하도록 지정할 수 없습니다. 키는 무작위로 생성되며 지문에서 키를 반출할 수 없습니다. 이렇게 하면 누군가의 공개 스푼을 받은 후 그와 전화로 이 지문을 체크하여 그의 공개 스푼을 인증할 수 있다. 직접 통신할 수 없는 상대방과 직접 전화를 할 수 없는 경우 공개 키 소개 메커니즘의 중간 소개자와 전화로 해당 소개자의 공개 키를 인증해 소개자를 통해 다른 쪽의 공개 키를 인증함으로써 직접 인증과 간접 소개의 결합이다. < P > 이렇게 또 다른 방법은 다른 사람의 서명이 있는 자신의 공개 키를 모아 공개 * * * 석상으로 보내는 것이다. 이렇게 하면 대부분의 사람들이 적어도 한 명 중 한 명을 알고 간접적으로 공개 스푼을 인증해 줄 수 있다. 마찬가지로, 친구의 공개 스푼에 서명한 후 그에게 돌려보내야 합니다. 그러면 그가 당신을 통해 다른 친구에게 인증을 받을 수 있습니다. 현실 사회에서 사람들의 교제와 같다. PGP 는 당신이 받은 숟가락 중 어떤 것이 당신의 친구가 소개한 것인지, 친구의 친구가 소개한 것인지, 어떤 것이 친구의 친구의 친구의 친구가 소개한 것인지 자동으로 찾아줍니다. 그것은 그것들을 서로 다른 신뢰 수준으로 나누어 줄 것이다. 당신이 참고하여 그것들에 대한 신뢰 정도를 결정하게 할 것이다. (존 F. 케네디, 믿음명언) (알버트 아인슈타인, 믿음명언) 너는 누군가에게 몇 층의 추천 숟가락을 가지고 있는 능력을 지정할 수 있는데, 이런 능력은 인증의 전달에 따라 감소하는 것이다. < P > 릴레이 인증 메커니즘은 전달성이 있어 흥미로운 질문입니다. PGP 의 저자인 Phil Zimmermann 은 이렇게 말했습니다. "신뢰는 전달성이 없습니다. 나는 결코 거짓말을 하지 않을 것이라고 믿는 친구가 있다. 그러나 그는 대통령이 결코 거짓말을 하지 않는다고 인정하는 바보였지만, 분명히 나는 대통령이 결코 거짓말을 하지 않을 것이라고 생각하지 않는다. "
위에서 말한 것은