在OpenSSL中是否可以更改块大小?我正在使用Ruby,据我所知没有办法做到这一点。
我只想确认这是真的。这是我可以找到的与块大小相关的唯一方法的链接,该方法仅返回块大小。 https://ruby-doc.org/stdlib-2.4.0/libdoc/openssl/rdoc/OpenSSL/Cipher.html#method-i-block_size,但除此之外,我没有找到一种方法。可能吗?我知道我可以设置密钥大小,但不能设置块大小。似乎卡住了128位的块大小吗?
具体来说,我想使用AES,据我了解,它只有128位的块大小。但是AES所基于的Rijndael可以设置为256位块大小,因此我想知道OpenSSL是否允许我设置块大小。
答案 0 :(得分:1)
不,这不可能。
AES是Rijndael密码家族的子集。尽管Rijndael支持几种不同的块和密钥大小,但AES仅定义为使用128位的块大小和128、192或256位的密钥大小。
ciphers supported by OpenSSL的列表仅包含AES,而不包括Rijndael。
OpenSSL AES实现为hardcoded to use a block size of 16 bytes(= 128位)。
添加Rijndael as a new cipher to OpenSSL并自己重建库的时间很短,您将无法使用OpenSSL通过Rijndael变体(除那些标准化为AES以外的任何变体)来加密或解密数据。