我需要存储一大堆加密文件。它们的组具有非常相似的内容。我想使用压缩优化所需的空间,但我发现没有适合的加密算法。但是,有一个工具可以做到这一点:rsyncrypto。许可证使我无法使用它,而且我没有专业知识来研究它的实现并编写我自己的。我正在寻找的是任何准备使用的加密算法,它做同样的事情:假设使用相同的密钥,为类似的输入提供类似的输出。加密强度降低是可以接受的。
答案 0 :(得分:0)
rsyncrypto使用的算法描述如下: http://rsyncrypto.lingnu.com/index.php/Algorithm
本质上是根据一些本地翻译不变标准将文件分成块,然后分别加密块。
算法看起来并不复杂,你应该能在几个小时内实现它。
如果相同的内容在文件中保持相同的偏移量,您可以使用更简单的算法:
将文件分成常量大小的块(比如64KiB),并使用CBC分别加密这些块。或者只使用专为磁盘加密设计的模式,如XTS。