web-dev-qa-db-ja.com

PGPパスフレーズを変更すると、秘密鍵のみに影響しますか?

電子メールの暗号化にGPGを使い始めました。 gpg --edit-key [keyID]を使用してパスフレーズを変更すると、どのファイルに影響がありますか?それは私の秘密鍵にのみ影響しますか?したがって、この鍵を再バックアップする必要があるだけですか?公開鍵と失効証明書はそのままにしますか、それともそれぞれ再生成してから配布して保存する必要がありますか?

36
gammapoint

PGP秘密鍵は保存時に暗号化されます。パスフレーズを変更すると、秘密鍵が再暗号化されますが、実際の秘密鍵自体には影響しません。パスフレーズは、秘密鍵の暗号化に使用されます。から PGPの仕組み

PGPはパスフレーズを使用して、マシン上の秘密鍵を暗号化します。秘密鍵は、パスフレーズのハッシュを秘密鍵として使用してディスク上で暗号化されます。パスフレーズを使用して、秘密鍵を復号化して使用します。

パスフレーズを変更すると、秘密キーが保護されますが変更されますが、キー自体は変更されていません。その結果、対応する秘密鍵は変更されないため、一致する公開鍵は引き続き有効です。

新たに暗号化された秘密鍵をバックアップできます。これは、鍵に関する暗号化保護が変更されていますが、鍵自体は変更されていないためです。

61
apsillers

公開鍵を変更せずに秘密鍵を変更することはできません。 2つは不可分にリンクされています。公開鍵で暗号化されたものは、秘密鍵でのみ復号化でき、その逆も可能です。

パスワードを使用している場合、実際に起こっていることは、秘密鍵のコピーを保存するのではなく、秘密鍵がパスワードから導出された鍵で暗号化され、その暗号化の結果が保存されることです。

パスワードを変更するには、実際の秘密鍵を復号化するために使用される古いパスワードを入力し、次に、新しいパスワードから導出された鍵を使用して秘密鍵を暗号化します。その後、暗号化された秘密鍵の古いバージョンは破棄されます。したがって、秘密鍵は常に同じに保たれ、それを保護するパスワードだけが変更されます。

7
AJ Henderson

内部で変更する必要があるのはパスフレーズだけです。秘密鍵は同じままですが(公開鍵と一致します)、パスフレーズで暗号化された形式の鍵が変更されます。

4
u2702