2012-02-13 72 views
1

我將需要存儲一大堆加密文件。他們的團體內容非常相似。我想優化使用壓縮所需的空間,但沒有找到適用於此的加密算法。然而,有一個工具可以做到這一點:rsyncrypto。但是,許可證使我無法使用它,但我沒有專業知識來研究它的實現並編寫我自己的。我正在尋找的是任何準備使用加密算法的人都可以做同樣的事情:假設使用相同的密鑰,爲類似的輸入提供類似的輸出。減少的加密強度是可以接受的。 http://rsyncrypto.lingnu.com/index.php/Algorithm壓縮友好加密

的本質是,將所述文件分成基於某些地方,平移不變的標準塊,然後分別加密塊:

+1

有沒有東西阻止你先壓縮文件,然後加密它們?沒有適當的加密算法是可壓縮的,因爲根據定義,加密的輸出必須與隨機噪聲無法區分,以便不公開有關文件原始內容的信息。當然,沒有壓縮算法可以壓縮真正的隨機數據 - 這是成熟的信息理論。 – Borealid 2012-02-13 19:11:45

+0

@Borealid是的,這些文件分別以加密的形式到達它們存儲的位置,並且不會在那裏解密。我知道我必須在某種程度上犧牲安全,但這是可以接受的。 – 2012-02-13 19:17:00

+0

類似的內容可以在每個文件中以固定的偏移量進行移位還是發生? – CodesInChaos 2012-02-13 19:28:37

回答

0

通過rsyncrypto使用的算法在被描述。

該算法看起來不是很複雜,你應該能夠在幾個小時內實現它。


如果相同的內容停留在同一文件中的偏移量,你可以逃脫一個更簡單的算法:

將一個文件分成固定大小的塊(說64KiB),並加密這些塊分別使用CBC。或者只是使用爲XTS等磁盤加密而設計的模式。

+0

你的第二個建議可能適用於我的目的。但令我感到驚訝的是,爲什麼rsyncrypto不得不重新發明輪子。 – 2012-02-13 19:48:56

+0

@tvdien rsyncrypto支持移位的數據。如果塊以不同的偏移量重新出現,它仍然會被識別爲相似。這意味着他們不能簡單地使用XTS或恆定大小的塊。 – CodesInChaos 2012-02-13 20:23:07

+0

由於部分加密密鑰基於塊的邏輯位置,因此XTS完全無法達到您想要的效果。因此,具有相同內容的兩個加密塊將(幾乎可靠地)產生不相關的密文。 – Borealid 2012-02-14 13:36:03