私は、誰かがそれを変更した場合でも、暗号化ファイルを復号化することはできますか?
-
27-09-2019 - |
質問
警告:この質問は頻繁に編集されています。私は原作者の意図を推測するために全力を試してみました。 元のバージョンをご覧ください。の
<時間>私たちは、暗号化ファイルに使用していることを、GPGコマンドラインツールを使用する方法についてわからないんです。
FILE.TXTは、単純なテキストファイルです
Testing hello world My security things.
これは、私は、ファイルを暗号化する方法です
gpg --symmetric File.txt
File.txt.gpg これは私に新しい、暗号化されたファイルを提供します
他の誰かが今、暗号化されたファイルを変更した場合、私はもはやそれを解読することができるよ。
$ gpg --decrypt File.txt.gpg
gpg: no valid OpenPGP data found.
gpg: decrypt_message failed: eof
どのように私は、誰かがそれを修正しているにもかかわらず、私のファイルの内容を取得できますか?
解決
は、典型的な対称暗号化モダリティは、データのブロック上で動作し、各ブロックの結果は、次のブロックを暗号化するために使用されます。
は、ブロック128〜256ビット長が典型的です。ブロック内の任意のビットが破損している場合には、ブロック全体を復号することはできません。これがそうでないならば、でも、キーなしでブロックの内容に関するいくつかの情報を取得することが可能です。任意の良い暗号化アルゴリズムの重要な部分は、平文または暗号文のいずれかにおける単一ビットの変化は、対応する暗号文または平文のビットの任意の数の変化を引き起こすことができることである。
は暗号化メカニズムのもう一つの重要な特徴は、平文で同じブロックは暗号文で同じブロックに暗号化されていないということです。彼らがいたなら、平文の内容についての情報を得ることが可能であろう。暗号化されたときに各ブロックが原因で現れるパターンで、まったく同じ方法で暗号化された場合、例えば、ビットマップ画像ファイルが読みやすいかもしれません。このため、一つのブロックを暗号化した結果は時々、次のブロックを暗号化するために使用されています。唯一の鍵は、後続のブロックの暗号化に影響を与える一般的な様式ではなく、平文でもあります。
一つのブロックを暗号化した結果は、以下のブロックが暗号化されている方法に影響を与える場合は、単一のブロック内の単一ビットに破損がそのブロックを次の暗号文の残りの部分は、回復不能なことになります。
他のヒント
素人の用語で元の質問に答える;
あなたが暗号化されたファイルに加えた誰かを変更し、正確に知っている場合を除き、、あなたのコンテンツがなくなって、あなたはおそらくそれを取り戻すことはできません。
暗号化されたファイルは、あなたのデータを保護するために使用されている理由です。彼らは本当にハードワークの後方に、本当にね。
あなたが暗号化されたファイル自体と一緒に暗号化されたファイルのダイジェストを作成し、配布する必要があります。
ファイルを復号化する前に、、ダイジェストを計算し、ISが提供する1に等しいかどうかを確認します。 ダイジェストが一致しない場合、暗号化されたファイルが破損していると無効ですされています。
あなたはそれを修正し、暗号化されたまだ有効であることをふり、その後、ファイルを暗号化することはできません。
あなただけの暗号化されたファイルでこれを行うことができるようになります方法はありません。
私は、あなたがデータの冗長性の探しているものと信じています。例えばCDはそれを持っています。あなたは1に傷を作ることができ、全体のデータは多くのデータがスクラッチで失われてしまったという事実にもかかわらず、まだ読みやすいです。
これを行う最も簡単な方法は、ちょうどそれらのいずれかが変更されているかどうかを判断することができ、チェックサムを使用して、ファイルを2回保存することです。より高度な技術は、インターリーブチェックサムとパリティビットを使用/バイト。ウィキペディアで見つけることができるのエラー検出と訂正技術よりも概観ます。
私はあなたがそれを自分で実装することはお勧めしません。それはちょうど、すでに既存の実装を使用することがはるかに簡単かつより安全です。 (私はいくつかがそこにあると確信しているが、私はそれを知りません。)