多くのファイルは、「よく知られている」ヘッダーシーケンスで始まります。このヘッダーシーケンスは、膨大な数のデータ転送で暗号解読を実行するのに役立ちます。
したがって、暗号化解析をより困難にするために、ランダムデータのブロックを1つまたは2つ追加することを考えています。
ファイルが次のようであるとしましょう:
<Header 250 bytes><Contents>
したがって、次のようなランダムデータ(ランダムな長さ)を付加します。
<Random data of random length><Magic Number><Header 250 bytes><Contents>
受信側は、復号化した後、<Magic Number>
をスキャンし、その時点までのすべてを切り取ります。
長さがランダムであるため、攻撃者は既知の部分が正確にどこにあるかを推測することができません。
これは良いアイデアだと思いますか?それとも、改善が不十分なために努力しすぎですか?
No、これは、適切な暗号を使用した暗号化の改善を提供しません。既知の平文攻撃で致命的に破壊できるほど暗号が悪ければ、その暗号は無意味です。既知平文攻撃とは、攻撃者が平文/暗号文のペアの知識を持ち、その知識から鍵を計算するか、任意の暗号文に対して復号化操作を実行できる攻撃です。
ブルートフォースまたはディクショナリ攻撃による解読を困難にしたい場合は、Argon2のようなKDFを使用する必要があります。これは、ユーザー指定のパスワードを暗号化に渡す前に、計算集約的でメモリ集約的な計算を実行します。暗号の解読をより困難にしたい場合は、AESやChaChaなどの安全な暗号を選択する暗号ライブラリを使用するだけです。