2012-02-13 11 views
1

暗号化されたファイルをたくさん保存する必要があります。それらのグループは非常に似たコンテンツを持っています。私は圧縮を使用して必要なスペースを最適化したいと思いますが、私が見つけた暗号化アルゴリズムはこれには適していません。しかし、これを行うことができるツールがあります:rsyncrypto。ライセンスによって、私はそれを使用することが不可能になりますが、私はその実装を研究し、自分自身を書く専門知識を持っていません。私が探しているのは、同じことをする暗号化アルゴリズムを使用する準備が整っていることです:同じキーが使用されている場合、同様の入力に対して同様の出力を与えます。低減された暗号強度は許容可能です。 rsyncryptoで使用されるアルゴリズムはで説明されて圧縮に優しい暗号化

+1

ファイルを最初に圧縮してから暗号化することを阻止するものはありますか?ファイルの元の内容に関する情報を開示しないために、暗号の出力はランダムノイズと区別できないはずであるため、適切な暗号化アルゴリズムは圧縮できません。もちろん、圧縮アルゴリズムは本当にランダムなデータを圧縮することはできません。これは実証済みの情報理論です。 – Borealid

+0

@Borealidはい、ファイルは保存されている場所に暗号化された形で別々に届いており、そこで暗号化されません。私はある程度セキュリティを犠牲にしなければならないことを知っていますが、それは容認できます。 –

+0

類似のコンテンツをシフトすることができますか、各ファイル内の固定オフセットで発生させることはできますか? – CodesInChaos

答えて

0

http://rsyncrypto.lingnu.com/index.php/Algorithm

本質はそれがいくつかの地元、翻訳不変の基準に基づいてブロックにファイルを分割して、個別のブロックを暗号化しています。

アルゴリズムはあまり複雑ではなく、数時間で実装できるはずです。同じコンテンツがファイルに同じオフセットにとどまる場合


、あなたは離れても、単純なアルゴリズムで取得することができます:

デバイド定数サイズのブロック(の64KiBを言う)にファイル、およびそれらのブロックを暗号化します別にCBCを使用します。または、XTSのようなディスク暗号化用に設計されたモードを使用してください。

+0

あなたの2番目の提案はおそらく私の目的のために働くでしょう。だが、なぜrsyncryptoがホイールを再開発しなければならなかったのだろうか。 –

+0

@tvdien rsyncryptoは、シフトされたデータをサポートしています。あるブロックが別のオフセットで再発する場合、ブロックは同様に認識されます。つまり、XTSまたは一定サイズのブロックを単純に使用することはできません。 – CodesInChaos

+0

XTSは、暗号化キーの一部がブロックの論理的な場所に基づいているため、あなたが望むものを完全に達成しません。したがって、同じ内容の2つの暗号化されたブロックは、(ほとんど確実に)無関係な暗号文を生成します。 – Borealid