장치의 소프트웨어를 업데이트하기 위한 시스템을 설정 중인데, 내가 만든 개인 키를 사용하여 업데이트 파일을 암호화한 다음 공개 키를 사용하여 해독하고 싶습니다. 내가 찾은 모든 예는 수신자의 공개 키로 암호화되어 있으며 내 개인 키로 암호화하고 싶습니다. 개인 키와 수신자의 공개 키를 사용하여 파일 암호화를 사용하는 Bob & Alice 예제를 보았지만 개인 키 암호화를 수행하는 방법을 알 수 없습니다.
답변1
이것은 GPG가 작동하는 방식이 아닙니다.
공개 키(자신의 것일 수도 있음)로 파일을 암호화하고 개인 키로 해독합니다.
따라서 인터넷에서 공개 키를 공유하면 누구나 공개 키로 파일을 암호화할 수 있지만 이를 해독할 수 있는 사람은 본인뿐이 됩니다.
보다 :http://www.dwinter.com/gnupg_howto/english/GPGMiniHowto-1.html
답변2
오래된 질문이지만... 다른 것을 찾다가 발견했습니다.
여기서 정말로 원하는 것은 파일을 암호화하는 것이 아니라 파일의 원본이 본인임을 확인하는 것입니다. 이것이 파일 서명의 목적입니다.
공개 키 암호화 작동 방식에 대한 간단한 기본 아이디어: 개인 키로 무언가를 암호화하면 공개 키로만 해독할 수 있습니다. 공개 키로 암호화한 내용은 개인 키로만 해독할 수 있습니다. (그 이유는 이 답변의 범위를 벗어나는 것입니다.)
일반적인 작업에서는 누군가가 메시지를 보내려고 하면 공개 키로 암호화합니다. 개인 키만 해독할 수 있기 때문입니다.
서명은 파일/데이터의 단방향 해시를 생성하고 공개 키와 개인 키의 역할을 바꿉니다. 공개 키를 가진 사람은 누구나 해시를 해독할 수 있으며, 개인 키만 생성했기 때문에 암호화된 키를 생성한 사람만 확신할 수 있습니다. 키를 사용하여 처음부터 암호화할 수 있습니다.
해시는 파일에 서명한 이후 파일이 변조되지 않았는지 확인하는 데 사용됩니다. 파일을 변경하면 해시가 변경되고 변경되었음을 명확히 알 수 있습니다. 그들은 귀하의 개인 키를 가지고 있지 않기 때문에 귀하의 공개 키로 해독하기 위해 새 해시의 새 서명을 생성할 수 없습니다.
많은 시스템에서는 이 방법을 사용하여 다른 파일의 체크섬/해시 파일에 서명하여 해당 체크섬/해시가 포함된 파일이 진짜인지 확인합니다.
또한 데이터/파일 암호화와 서명을 결합하여 암호화된 데이터를 의도된 수신자 외에는 누구도 해독할 수 없으며 암호화된 데이터가 변조되지 않도록 할 수 있습니다.
"Under thehood"는 GPG 및 관련 프로그램이 작동하는 방식입니다. 키 데이터를 사용하여 데이터를 암호화하는 것은 계산 비용이 너무 많이 듭니다. 대신 훨씬 빠른 암호화 방법으로 암호화하기 위해 임의의 "일회용 비밀번호"(OTP)를 생성합니다. 그런 다음 암호는 의도한 수신자의 키로 암호화되어 암호화된 데이터와 함께 전송됩니다. 오직 개인 키만이 데이터 암호화에 사용된 비밀번호를 해독할 수 있으므로 다른 누구도 해독할 수 없다고 매우 합리적으로 확신할 수 있습니다.
최종 참고 사항: 암호화는 항상 유동적입니다. 내가 이 글을 쓰는 동안 "합리적"이거나 "확실한" 것이 내일 누군가가 사용된 알고리즘 중 하나의 약점을 발견하면 무효화될 수도 있습니다.