Encryption

使用三種不同密碼加密文件時的最佳實踐

  • June 8, 2019

我有一些包含重要資訊的文件,所以我想用最安全的加密方法對它們進行加密。

我已經閱讀了無數關於類似問題的 StackExchange 答案以及一些關於不同密碼、密碼分析攻擊、不良軟體實現、密碼模式等的 Wikipedia 文章。Google搜尋並沒有幫助我決定哪種密碼模式最好,因為這可能取決於其他我將在加密過程中選擇的因素。

意識到加密文件時的一個錯誤選擇可能會導致失敗,我想描述我的加密過程,並讓某人檢查它是否有任何可能削弱加密的內容。

我確實明白,根據學術共識,在任何實際時間長度內,都不可能暴力破解 AES256、Twofish(256 位版本)或 Camellia256 之類的密碼。話雖如此,我不希望我的文件的安全性取決於單個密碼的可靠性。因此,即使在一種密碼中發現了漏洞,比如 AES256,我的文件仍然會受到另一種密碼的保護。

通過使用多個密碼來加密我的文件,我知道我可能不會提高加密本身對暴力破解的安全性;相反,我想提高加密的安全性,以防止未來單個密碼失敗。

以下內容在確定加密順序、加密模式等方面可能很重要。

過程:

**1)**我將使用 GnuPG,我信任的密碼依次是 AES256、Twofish(256 位)和 Camellia256。

**2)**大約有 10 或 20 個文件,但我還不確定。所有文件都小於 1MB,有些文件只包含幾個單詞/密碼等。

**3)**由於 GnuPG 無法加密整個文件夾,我需要將包含我的文件的文件夾壓縮為 tar.gz 文件。

**4)**然後我將用這種方式加密這個 tar.gz 文件:

Enc1=加密(TarFile、Camellia256、Passphrase1)

Enc2=加密(Enc1,Twofish

$$ 256 bit $$, 密碼2) Enc3=加密(Enc2, AES256, Passphrase3)

問題:

**I)**加密數據的數量是否重要?如果是這樣,加密數據的最小和最大大小是多少?

**II)**我是否應該在我想要加密的文件夾中添加一些瑣碎的數據,比如一些隨機的 .png 或 .mp3 文件,以避免密碼洩露一些明文數據?

當我加密Enc1文件時,我應該在加密之前添加一些瑣碎的數據嗎?

**III)**由於我必須壓縮包含所有文件的文件夾才能對其進行加密,這是否會以任何方式削弱加密?如果是這種情況,因為我無法在不先壓縮文件夾的情況下加密文件夾,有沒有解決方案?

**IV)**知道我按照這個順序信任密碼的安全性——AES256 > Twofish(256 位)> Camellia256——我應該首先加密哪個,哪個應該是最後一個?

**V)**由於我將使用這三種不同的密碼進行加密,因此為每種加密使用不同的密碼片語是否重要?

**VI)**知道我只會使用 ANSI 字元——這包括字母數字、大小寫和一些特殊字元——我應該使用的密碼的最小大小是多少?密碼片語是否有一個最大大小,超過它會像某種溢出一樣不那麼安全?我可以使用 100 個字元嗎?1000個字元怎麼樣?

**VII)**了解有關我要加密的數據的所有這些資訊,並且我重視安全性而不是速度,我應該在 GnuPG 中使用哪些命令/選項/標誌來為每個密碼加密我的文件以提供最佳安全性?

**I)**沒有最低要求。在您的情況下,最大值是 $ 2^{64} * 16 $ 具有相同密鑰的字節。

**II)**不。不。GnuPG 會處理這個問題。

**III)**不會。壓縮不會削弱加密。

**IV)**我認為這並不重要,因為它不是經過身份驗證的加密。

**V)**是的,密碼必須不同。

**VI)**在您的情況下,每個密碼最多可以獲得 256 位的安全性。每個密碼片語應該使用大約 50 個字元(取決於復雜性)。多一點也不痛。

**VII)**我不認為你可以調整任何東西。預設情況下它是“最佳安全性”。

需要注意的是,GnuPG 不會對使用對稱加密加密的文件進行身份驗證,這意味著您無法檢測到它是否已被修改。

您可以在此處閱讀有關級聯加密的更多資訊:https ://blog.cryptographyengineering.com/2012/02/02/multiple-encryption/

引用自:https://crypto.stackexchange.com/questions/71035