AES - 用户密钥长度

时间:2015-01-13 09:30:06

标签: encryption openssl aes

上下文

我正在学习ssl通信的基础知识,特别是AES加密。 我读了OpenSSL代码并看到一个指向userkey的东西的指针。

int private_AES_set_encrypt_key( const unsigned char *userKey , const int bits , AES_KEY *key )

在文件" aes_core.c"

问题

  1. userkey来自哪里?它是如何产生的?

  2. 我想知道不同版本AES的实际userkey大小。

    对于256位版本,256/8 = 32,292为128,16为16?我有点迷茫。

  3. 如果userkey长度是可变的,那么我应该如何为符合长度要求的长度创建安全输入? (哈希?哪个?)

1 个答案:

答案 0 :(得分:0)

  1. userkey =安全的字节序列,128位= 16字节256 = 32字节192 = 24字节长,如果更容易理解,则排序密码。 密钥大小之间的差异很好地讨论了here

  2. 密钥的长度对于算法是恒定的,并在'位中指定。参数(以位为单位!)

  3. OpenSSL有两个AES API:first,您正在处理second EVP API。将EVP用于真正的非测试应用程序。