评价一个密码系统的的好坏不是算法的机密性,而是密钥的机密性。在实际的使用中我们需要关系以下几个方面:
- 密钥生成
- 密钥分发
- 密钥验证
- 密钥使用
- 密钥存储
- 密钥销毁
- 密钥管理
密钥生成
密钥生成我们关心:
- 安全的生成密钥,即生成的密钥可信,用户得到的密钥是可信的服务或程序安全产生的。
- 生成密钥的安全,即关注密钥本身的安全性,密钥是否又足够的随机性、抗攻击能力的强弱。涉及密钥长度和密钥强弱的问题。虽然密钥越长越安全,但是还需要考虑加解密的时间能效问题。
一种可行的生成密钥办法是利用时间作为随机源,采用单向散列函数的密钥生成框架:
密钥分发
对于对称密钥可采用密钥加密密钥和数据加密密钥的方式,使用密钥加密密钥来加密数据加密密钥使其安全传输,密钥加密密钥可以采用手动分发。
公开密钥算法由于其公钥的可公开性,可以很容易的分发,但若要分发私钥,通常也采用手动分发的形式进行。
密钥验证
包括验证密钥发送方可信和验证密钥的正确和完整性。
- 解决验证密钥发送方可信的问题可以采用数字签名的方式,密钥发送方使用自己的私钥对密钥签名,接收方使用公钥验签。
- 验证密钥的正确性可以采取两种方式:
-
<