如何创建 AES XTS 密钥?

如何创建 AES XTS 密钥?

我对使用 Gluster cloud FS 很感兴趣,它的最新测试版仅使用 AES 和 XTS。它还需要 openssl >= 1.0.1。

2014 年 1 月为我的 Mac 安装的 1.0.1f openssl(带有 64 位库)似乎不支持此功能。

  1. AES_XTS 是否实际上以另一个密码名称实施?
  2. 如何在命令行上生成 256 位 AES_XTS(主)密钥?

答案1

AES_XTS 是否实际上以另一个密码名称实施?

grep是你的朋友:

openssl-1.0.1f$ grep -R XTS *
...
crypto/objects/obj_dat.h:{"AES-128-XTS","aes-128-xts",NID_aes_128_xts,0,NULL,0},
crypto/objects/obj_dat.h:{"AES-256-XTS","aes-256-xts",NID_aes_256_xts,0,NULL,0},
...
crypto/objects/obj_mac.h:#define SN_aes_128_xts         "AES-128-XTS"
crypto/objects/obj_mac.h:#define SN_aes_256_xts         "AES-256-XTS"
crypto/objects/objects.txt:                     : AES-128-XTS           : aes-128-xts
crypto/objects/objects.txt:                     : AES-256-XTS           : aes-256-xts
...

因此,看起来您的 NID 名称是aes-128-xtsaes-256-xts


如何在命令行上生成 256 位 AES_XTS(主)密钥?

嗯...XTS 只是另一种分组密码操作模式(如 ECB、CBC、CTR、GCM 等)。所以没有什么特别的 - 只需继续按照您之前的方式进行即可。


2014 年 1 月为我的 Mac 安装的 1.0.1f openssl(带有 64 位库)似乎不支持此功能。

这听起来不对。我的 1.0.1f 版本有这个。你从哪里获得 OpenSSL 版本?


为我的 Mac 安装...

Mac OS X 发行版本为 0.9.8。请确保您使用的是自己的 OpenSSL 版本,而不是 Apple 的 OpenSSL 版本。

Apple 链接器会默默忽略诸如-Bstatic-rpath和 之类的选项LD_PRELOAD。因此,需要花些功夫来确保您实际使用的是您的 OpenSSL 版本;而不是 Apple 的 OpenSSL 版本。

-lcryto在 OS X 上,使用、-lssl和编译程序-L<your openssl path>。默认情况下,OpenSSL 安装在 中/usr/local/ssl/lib。然后,在启动程序之前:

set env OPENSSL_LIBPATH /usr/local/ssl/lib
set env DYLD_INSERT_LIBRARIES $OPENSSL_LIBPATH/libcrypto.so:$OPENSSL_LIBPATH/libssl.so

dylib(1)了解有关DYLD_INSERT_LIBRARIES和朋友的信息。

答案2

相关内容