8.7 存储密钥
最不复杂的的密钥存储问题是单用户的密钥存储, Alice加密文件以备以后用。因为只涉及她一个人,且只有她一人对密钥负责。一些系统采用简单方法:密钥存放于Alice的脑子中,而决不放在系统中,Alice只需记住密钥,并在需要对文件加密或解密时输入。
该系统的一个例子是IPS[881]。用户可直接输入64-比特密钥,或输入一个更长的字符串,系统自动通过密钥碾碎技术从这个字符串生成64-比特密钥。
其它解决方案有:将密钥储存在磁条卡中,嵌入ROM芯片的塑料密钥(称为ROM密钥)或智能卡 [556,557,455]。用户先将物理标记插入加密箱上或连在计算机终端上的特殊读入装置中,然后把密钥输入到系统中。当用户使用这个密钥时,他并不知道它,也不能泄露它。他只用这种方法使用它,且为了显示控制向量时使用它。
ROM密钥是一个很聪明的主意。人们已经对物理钥匙很熟悉了,知道它们意味着什么和怎样保护它们。将一个加密密钥做成同样的物理形式就会使储存和保护它更加地直观。
把密钥平分成两部分,一半存入终端一半存入ROM密钥使得这项技术更加安全。美国政府的STU-III 保密电话就是用的这种方法。丢失了ROM密钥并不能使加密密钥受到损害——换掉它一切就正常如初。丢失终端密钥情况也如此。这样,两者之一被损害都不能损害整个密钥——敌人必须两部分都有才行。
可采用类似于密钥加密密钥的方法对难以记忆的密钥进行加密保存。例如,一个RSA私钥可用DES密钥加密后存在磁盘上,要恢复密钥时,用户只需把DES密钥输入到解密程序中即可。
如果密钥是确定性地产生的(使用密码上安全的伪随机序列发生器),每次需要时从一个容易记住的口令产生出密钥会更加简单。
理想的情况是密钥永远也不会以未加密的形式暴露在加密设施以外。这始终是不可能的,但是可以作为一个非常有价值的奋斗目标。