加密体系
文件的加密算法
可能跟作者的工作经历有关吧,作者在工作中参与的各类应用的开发,都是将安全作为第一要素,到了Meebox这里,自然也是一样的。
因此Meebox无论是图片、视频还是各种文档,甚至连生成的缩略图都毫不例外的进行了加密存储。
加密算法则选择了XSalsa20。
下面是XSalsa20加密算法的一些简单介绍:
基于 Salsa20: XSalsa20 是由 Salsa20 加密算法演化而来。Salsa20 是一种流密码(stream cipher)算法,用于生成伪随机密钥流,从而实现数据加密。XSalsa20 扩展了 Salsa20,提供了更大的密钥和初始化向量(IV)以增加安全性。
密钥长度: XSalsa20 使用的密钥长度为 256 比特,这使得它能够提供足够的安全性来抵御目前已知的密码分析攻击。
初始化向量: 与 Salsa20 不同,XSalsa20 使用更长的初始化向量(IV),长度为 192 比特。这使得在一定的 IV 空间中,避免了重用 IV 的问题,从而增加了安全性。
高性能: XSalsa20 以高性能而闻名。它的加密和解密操作都相对快速,适合在资源受限的设备和网络通信中使用。
安全性: XSalsa20 经过了广泛的密码学分析,被认为是安全可靠的。它能够抵御已知的攻击,如差分攻击、线性攻击等。
备忘、密码的加密算法
对于这类文本类型的数据,作者并没有将其加密保存为一个单独的文件,而是采用了加密的数据库来保存这些数据。
而数据库使用了AES加密算法进行加密。
为什么不统一加密算法?
对文件加密时,在手机上XSalsa20的性能是略高于AES的(不考虑那种支持硬件加速的设备),而且XSalsa20又有比较成熟的开源库,所以首选就是XSalsa20,在安全程度上,两者相差不多。
对文本加密时,可选的数据库并不多,并且所有支持加密的数据库采用的加密算法都是AES,在这点上,作者并无其他选择。