我可以使用 Libsodium 进行 AES-128-ECB 加密吗?
Can I do AES-128-ECB encryption with Libsodium?
我需要使用 AES-128-ECB 加密数据块,并希望使用 libsodium 和 Ruby 来加密。我在 Ruby 中使用 OpenSSL API 制作了一个解决方案原型,如下所示:
aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
aes.encrypt
aes.key = key
aes.update(data) + aes.final
这可行,但我需要 libsodium 的其他功能,所以我想改用它并摆脱对 OpenSSL 的依赖。不幸的是,我没有看到任何适用于 ECB 模式的 API。我也在使用 ruby 包装器 RbNaCl,但我什至没有看到使用基本 libsodium API 执行此操作的任何方法。我确实看到了 AES-128-CTR.
是否可以使用 libsodium 加密 AES-128-ECB?
libsodium 有意不支持 ECB 模式。
在这种模式下,同一个块加密两次产生相同的密文两次。
从安全角度来看为什么这很糟糕的经典例证是 the ECB penguin。
libsodium 提供了一组经过精心挑选的安全结构,而不是提供许多可供选择的原语、模式和参数,许多组合实际上是不安全的。
AES-ECB 不是其中之一,并且永远不会因为上述原因。
你真的应该改用不同的结构。
我需要使用 AES-128-ECB 加密数据块,并希望使用 libsodium 和 Ruby 来加密。我在 Ruby 中使用 OpenSSL API 制作了一个解决方案原型,如下所示:
aes = OpenSSL::Cipher::Cipher.new("AES-128-ECB")
aes.encrypt
aes.key = key
aes.update(data) + aes.final
这可行,但我需要 libsodium 的其他功能,所以我想改用它并摆脱对 OpenSSL 的依赖。不幸的是,我没有看到任何适用于 ECB 模式的 API。我也在使用 ruby 包装器 RbNaCl,但我什至没有看到使用基本 libsodium API 执行此操作的任何方法。我确实看到了 AES-128-CTR.
是否可以使用 libsodium 加密 AES-128-ECB?
libsodium 有意不支持 ECB 模式。
在这种模式下,同一个块加密两次产生相同的密文两次。
从安全角度来看为什么这很糟糕的经典例证是 the ECB penguin。
libsodium 提供了一组经过精心挑选的安全结构,而不是提供许多可供选择的原语、模式和参数,许多组合实际上是不安全的。
AES-ECB 不是其中之一,并且永远不会因为上述原因。
你真的应该改用不同的结构。