我有一个问题,当AES和IV生成密钥时,用户如何知道密钥是什么,或者程序如何知道要使用哪个密钥。例如,如果有一种加密方法对文件进行加密,并生成密钥和IV。当程序重新启动或在另一天被使用时,他们会想要使用解密,但你如何知道或程序如何知道该文件的密钥。
我通过看它来理解解密和加密。我只是不知道信息存储在哪里来检索密钥?
发布于 2014-08-03 02:58:43
Key management是任何与密码学相关的协议的很大一部分。这需要一本书来解释。
最已知的方法之一是使用口令(参见PKCS#5中基于口令的加密,其中密钥由(存储的)盐、迭代次数以及口令(编码为字节)生成)。另一种选择是将密钥存储在诸如USB密钥之类的可移动设备上。
通常不使用主密钥来加密数据,但使用称为数据或会话密钥的中间密钥。例如,PGP encryption生成一个数据密钥,并使用非对称密钥对中的公钥对其进行加密。
然后是智能卡、TPM模块、HSM、密钥容器(可能由操作系统提供)、密钥共享协议等。
所以..。那得看情况。
有时,更容易将密钥视为另一个秘密。通过加密某些东西,您只是将较大的秘密(明文)“压缩”为较小的秘密(密钥),以便您必须保留和管理。然而,该秘密可以是预先生成的,或者可以是通过其他方式生成的。如果您只是在与密文相同的时间和位置生成密钥,那么您还没有解决任何问题,您只是让您的秘密变得更小。
对于IV来说更容易,IV可以简单地与密文一起存储(通常在密文之前)。
https://stackoverflow.com/questions/25098183
复制相似问题