デバイスのソフトウェアを更新するシステムをセットアップしており、作成した秘密キーを使用して更新ファイルを暗号化し、公開キーで復号化したいと考えています。私が見つけた例はすべて受信者の公開キーで暗号化するものですが、私は自分の秘密キーで暗号化したいと考えています。ボブとアリスの例では、まず自分の秘密キーでファイルを暗号化し、次に受信者の公開キーで暗号化していますが、秘密キー暗号化の方法がわかりません。
答え1
これは GPG の動作方法ではありません。
ファイルを公開鍵(自分のものでも可)で暗号化し、秘密鍵で復号化します。
したがって、インターネット上で公開鍵を共有すると、誰でもその公開鍵を使用してファイルを暗号化できますが、それを復号化できるのはあなただけになります。
見る :http://www.dewinter.com/gnupg_howto/english/GPGMiniHowto-1.html
答え2
古い質問ですが...他のものを探しているときにこの質問に出会いました。
ここで本当に必要なのは、ファイルを暗号化することではなく、自分がファイルの発信元であることを証明するものです。これが、ファイルの署名の目的です。
公開鍵暗号化の仕組みについて簡単に説明します。秘密鍵で暗号化したものは、公開鍵でのみ復号化できます。公開鍵で暗号化したものは、秘密鍵でのみ復号化できます。(なぜそうなるのかは、この回答の範囲を超えています。)
通常の操作では、誰かがあなたにメッセージを送信する場合、あなたの秘密鍵だけがそれを復号化できるため、その人はあなたの公開鍵でメッセージを暗号化します。
署名はファイル/データの一方向ハッシュを生成し、公開鍵と秘密鍵の役割を逆転させます。つまり、公開鍵を持つ人なら誰でもハッシュを復号化でき、そもそもハッシュを暗号化するために使用できるのは秘密鍵だけなので、暗号化されたハッシュを生成したのはあなただけであると確信できます。
ハッシュは、署名後にファイルが改ざんされていないことを確認するために使用されます。ファイルに変更を加えるとハッシュも変更され、変更されたことが明確になります。相手は秘密鍵を持っていないため、公開鍵で復号化するための新しいハッシュの新しい署名を生成することはできません。
多くのシステムでは、この方法を使用して他のファイルのチェックサム/ハッシュ ファイルに署名し、それらのチェックサム/ハッシュを持つファイルが本物であることを保証します。
また、データ/ファイルの暗号化と署名を組み合わせることで、暗号化されたデータが意図した受信者以外には復号化できないこと、また暗号化されたデータが改ざんされていないことを保証できます。
GPG および関連プログラムは、内部的にはこのように動作します。キー データを使用してデータを暗号化するには、計算コストがかかりすぎます。代わりに、ランダムな「ワンタイム パスワード」(OTP) を生成し、はるかに高速な暗号化方法で暗号化します。次に、パスワードは対象受信者のキーを使用して暗号化され、暗号化されたデータとともに送信されます。データの暗号化に使用されたパスワードを解読できるのは受信者の秘密キーのみであるため、他の誰も解読できないという非常に合理的な保証が得られます。
最後に:暗号化は常に流動的です。この記事を書いている時点で「合理的」または「確実」であるとされているものが、明日には誰かが使用されているアルゴリズムの 1 つに弱点を発見することで無効になるかもしれません。