AES - 用户密钥长度
AES - user key length
上下文
我正在学习 ssl 通信的基础知识,尤其是 AES 加密。
我阅读了 OpenSSL 代码并看到了一个指向名为 userkey
.
的指针
int private_AES_set_encrypt_key( const unsigned char *userKey , const int bits , AES_KEY *key )
在文件“aes_core.c”中
问题
userkey
从何而来?它是如何产生的?
我想知道不同版本的 AES userkey
的实际大小。
256 位版本是 256 / 8 = 32,192 是 24,128 是 16?我有点迷茫。
如果 userkey
长度是可变的,那么我应该如何为那些符合长度要求的输入创建安全输入? (哈希?哪个?)
userkey = secure sequence of bytes, 128 bits = 16 bytes 256 = 32 bytes 192 = 24 bytes long, 比较容易理解的密码。
很好地讨论了密钥大小之间的差异 here.
是
算法的密钥长度是常量,在 'bits' 参数中指定(以位为单位!)
OpenSSL 有两个 AES API:first you are dealing with, second EVP API。将 EVP 用于真正的非测试应用程序。
上下文
我正在学习 ssl 通信的基础知识,尤其是 AES 加密。
我阅读了 OpenSSL 代码并看到了一个指向名为 userkey
.
int private_AES_set_encrypt_key( const unsigned char *userKey , const int bits , AES_KEY *key )
在文件“aes_core.c”中
问题
userkey
从何而来?它是如何产生的?我想知道不同版本的 AES
userkey
的实际大小。256 位版本是 256 / 8 = 32,192 是 24,128 是 16?我有点迷茫。
如果
userkey
长度是可变的,那么我应该如何为那些符合长度要求的输入创建安全输入? (哈希?哪个?)
userkey = secure sequence of bytes, 128 bits = 16 bytes 256 = 32 bytes 192 = 24 bytes long, 比较容易理解的密码。 很好地讨论了密钥大小之间的差异 here.
是
算法的密钥长度是常量,在 'bits' 参数中指定(以位为单位!)
OpenSSL 有两个 AES API:first you are dealing with, second EVP API。将 EVP 用于真正的非测试应用程序。