密钥管理是数据加密技术中的重要一环,密钥管理的目的是确保密钥的安全性(真实性和有效性)。为了数据使用的方便,数据加密在许多场合集中表现为密钥的应用,以达到保密的要求,因此密钥往往是保密与窃密的主要对象。 由于系统的保密性主要取决于密钥的安全性,所以在公开的网络上安全地传送和保管密钥是一个严峻的问题。 密钥分散是上级的密钥与本级的特征相结合形成本级的密钥,其基本思想是用密钥来保护密钥。密钥发散机制的优点在于即使**了密钥,也不会对同级和上级的密钥产生威胁。密钥分散机制是保护密钥安全的有效手段。 通过密钥分散,使得每张加密卡交易时使用的密钥都不同,实现了“一卡一密”,并要求在密钥操作时和控制密钥配合使用,提高密钥使用的安全性。 分散过程简单描述如下: 密钥分散算法简称Diversify,是指将一个双长度(一个长度密钥为8个字节)的主密钥(MK),对数据进行分散处理,推导出一个双长度的DES加密密钥(DK)。该算法广泛应用于现在的金融IC卡和其他对于安全要求高的行业。其DK推导过程如下: 推导DK左半部分的方法是: 1、将分散数据的最右8个字节作为输入数据; 2、将MK作为加密密钥; 3、用MK对输入数据进行3DES运算,得到DK左半部分。 推导DK右半部分的方法是: 1、将分散数据的最右8个字节求反,作为输入数据; 2、将MK作为加密密钥; 3、用MK对输入数据进行3DES运算,得到DK右半部分。 最后将DK的左右部分各8个字节合并成双长度的DK密钥,即为分散所求得的待使用的3DES密钥。 密钥分散有助于保护密钥,但是一个完整的密钥管理系统应该做到: 1、密钥难以被窃取和复制; 2、即使窃取了密钥也没有用,密钥有使用范围和时间的限制; 3、密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥; 4、核心密钥一定要采用分割负责的方式保存。
|