2012-02-29 165 views
1

这里我想使用AES 256 Algorithm加密和解密文件比我必须提供密钥加密文件和解密文件相同的密钥。哪种类型的密钥格式更适合AES 256

那么哪个密钥更好的性能和安全性呢? 哪种类型的密钥格式我将在这里使用,这样我可以获得更多的安全性。

这里我必须在加密和解密中使用相同的密钥。

所以任何机构请建议我对Key的更好的建议。

+1

您应该按安全性而不是按性能选择密钥。 影响安全性的主要属性是[密钥长度](http://en.wikipedia.org/wiki/Key_size#Symmetric_algorithm_key_lengths)和密钥随机性(这是更随机的密钥更安全,因为如果例如密钥只是一些已知的单词 - 那么整个加密系统很容易受[字典攻击](http://en.wikipedia.org/wiki/Dictionary_attack) – 2012-02-29 07:17:48

+0

@ 0x69感谢您的回复所以我必须编写密钥生成器代码 – user1089679 2012-02-29 07:23:09

+0

@ 0x69我改变了我的问题 – user1089679 2012-02-29 07:24:17

回答

3

AES键只是一堆没有结构的位。 AES-128密钥是128位,必须随机选择。 AES-192密钥是192位,A​​ES-256密钥是256位。没有任何不同类型或格式的密钥。

大多数密码术文库都具有生成AES密钥的功能。例如,一个PKCS #11接口,call C_GenerateKey with the CKM_AES_KEY_GEN mechanism。如果库没有特定的功能,请使用它来生成所需数量的随机字节,例如with RAND_bytes in OpenSSL

请查阅您的加密库的实现以正确使用。特别是,一个随机数发生器需要从其环境中获得entropy,确保你提供的是足够的。