本文介绍了VeraCrypt中使用的经典加密算法,包括Twofish, Serpent, Camellia, Kuznyechik,以及其支持的哈希算法,如SHA-256, SHA-512, BLAKE2s-256, Whirlpool, Streebog。同时,文章还回顾了TrueCrypt的历史,包括其突然停止开发以及可能的原因,并讨论了TrueCrypt的替代方案。
我喜欢 VeraCrypt。有了它,我们就不需要对卷进行所有混乱的加密,可以将加密内容写入文件,然后将该文件挂载为卷。我喜欢 VeraCrypt 的一点是,它带我回到了密码学中的一些经典方法:
在 2000/2001 年,NIST 举办了下一代对称密钥方法的竞赛,Rijndael 胜出(由其比利时创建者 Vincent Rijmen 和 Joan Daemen 创建)。但第二名是 Serpent,它由 Ross Anderson (RIP)、Eli Biham 和 Lars Knudsen 创建 [ 这里]。
而且,很高兴看到经典的 Bruce Schneier 方法 Twofish 也出现在其中。Bruce 现在主要写书和讲课,但曾经,他创建了对称密钥加密方法。其中最著名的是 Blowfish 方法,该方法于 1993 年发布。与 DES 和 3DES 一样,它使用 64 位块大小(8 字节),但与 DES 不同,它是未获得专利的 [1]:
当 NIST 为 AES 举办竞赛时,Bruce 和其他人提交了 Twofish 方法。它使用 128 位块大小(与 AES 相同):
Camellia [ 这里] 是由三菱和 NTT 创建的分组密码。总的来说,它以 Camellia japonica 命名——这是一种具有波浪状花瓣的日本花卉。与 AES 一样,Camellia 的块大小为 128 位(16 字节),并且可以使用 128 位、192 位和 256 位加密密钥。它由三菱和 NTT 创建,并已获得 ISO/IEC 的批准。Camellia 对于硬件和软件实现也很有效,并且是 TLS 堆栈的一部分。
Kuznyechik——俄语的意思是蚱蜢——是对 GOST (Gosudarstvennyy Standard — 国家标准) 28147–89 的更新 [ 这里],它于 1989 年在俄罗斯被开发为对称密钥标准。它通常用于安全的政府和军事通信。总的来说,它使用 256 位密钥并使用 32 位块,其中每个块都使用替换表中的另一个 32 位块进行替换。
当我们在 VeraCrypt 中定义基准测试时,我们看到 AES 是迄今为止主要方法中最快的,并且比 Twofish、Kuznyechik 和 Camellia 快近五倍。这是因为该方法在性能上很有效,并且通常在硬件中具有加速功能:
我们可以看到 VeraCrypt 支持双重甚至三重加密。在哈希方面,我们看到 VeraCrypt 支持 SHA-256、SHA-512、BLAKE2s-256、Whirlpool 和 Streebog:
RIPEMD160 的集成已在最新版本中删除。总的来说,SHA-256 的性能远远超过其他支持的哈希方法。
GOST94 是一种与欧洲-亚洲标准化、计量和认证委员会 (EASC) 共同开发的哈希方法。此后,它已在 Streebog256 [ 这里] 和 Streebog512 哈希方法中得到发展。虽然 OpenSSL 不支持它,但它已集成到 Libre OpenSSL 中。
免费加入 Medium 即可获取这位作者的更新。
Whirlpool 是一种 512 位密码哈希函数,由 Vincent Rijmen(AES 的创建者之一)和 Paulo Barreto 于 2000 年创建。NESSIE 项目推荐它,并被 IEC 采用。它以 Canes Venatici(M51 或 NGC 5194)中的 Whirlpool 星系命名,该星系是最早被确定为具有螺旋结构的星系之一。JavaScript 实现 在这里。
2014 年 5 月 28 日,TrueCrypt 网站的访问者发现了一条消息:
TrueCrypt的开发在微软终止对Windows XP的支持后于2014年5月结束。Windows 8/7/Vista及更高版本提供了对加密磁盘和虚拟磁盘映像的集成支持。其他平台也提供此类集成支持(点击此处了解更多信息)。你应该将TrueCrypt加密的任何数据迁移到你的平台支持的加密磁盘或虚拟磁盘映像。
对于一个支持各种计算机类型和语言的开源项目来说,这是一个奇怪的消息,说用户应该转向闭源和商业解决方案。BitLocker 是一种软件解决方案,支持大多数类型的现代计算机,并且可以免费使用。BitLocker 是 Microsoft Windows 的一部分,需要 Microsoft Windows 版本的许可证才能支持磁盘加密。
TrueCrypt 是一个开源磁盘加密包,自 2004 年 2 月开始出现,并由 TrueCrypt 基金会维护。它有 Microsoft Windows、OS X、Linux 和 Android 版本,并支持 30 种语言。David Tesařík 在美国和捷克共和国注册了 TrueCrypt 商标,Ondrej Tesarik 在美国注册了非营利性 TrueCrypt 公司。它的工作原理是在计算机上创建一个虚拟驱动器,然后写入磁盘的所有内容都会被加密,然后在读取文件时解密。对于加密,它使用私钥加密,包括AES、Serpent 或 Twofish(或这些的组合),并使用 RIPEMD-160、SHA-512 和 Whirlpool 的哈希函数。在现代系统中,AES 被认为是最安全的,SHA-512 提供了最先进的签名。加密驱动器没有标识 TrueCrypt 存在的幻数,但取证分析可以显示 TrueCrypt 引导加载程序,之后黑客可能会尝试不同的密码来解锁驱动器。
在内部,对于 7.1a 版本,已经对代码进行了审计,并在 2014 年 5 月 28 日宣布停止 TrueCrypt,同时发布了 7.2 版本(该版本被故意破坏并在代码中包含许多警告)。更新的许可证(TrueCrypt 许可证 v 3.1)包含删除需要 TrueCrypt 署名的特定语言。软件历史上从未有过如此突然的结束,并且开发人员甚至不希望他们的代码有分支。TrueCrypt 开发人员最近的一封电子邮件(2014 年 6 月 16 日)概述了他们不想将许可证更改为开源许可证,并且不应分支该代码。
有些人认为正在进行代码审计,并且即将发现 NSA 创建的后门。同样,一些人认为烟幕被用来转向闭源替代方案,而闭源替代方案也具有 NSA 支持的后门。很少有安全专业人员,尤其是那些参与加密软件创建的人,会推荐 Microsoft 技术。
关于代码的谜团仍然存在,但有一些奇怪的指针提供了一些线索。一个奇怪的事情是,在代码中,“U.S.” 已更改为 “United States”,这可能表明使用自动搜索和替换方法来更改代码,以反映代码所有权的可能更改。
关于这篇文章的另一个奇怪之处在于,为重定向创建的页面看起来好像是由一个完全业余的人创建的:
将显示缩放图像
甚至 Wayback 引擎也难以找到过去的页面:
将显示缩放图像
那么,这是一个后门,还是像 OpenSSL 暴露的那样,可能是一个漏洞?
[1] Schneier, B. (1993, December). Description of a new variable-length key, 64-bit block cipher (Blowfish). In International Workshop on Fast Software Encryption (pp. 191–204). Berlin, Heidelberg: Springer Berlin Heidelberg.
- 原文链接: billatnapier.medium.com/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!