5.4 基于身份的公钥密码

    Alice想发一秘密消息给Bob。她不想从密钥服务器中获得他的公开密钥;她不想在他的公钥证书上验证某个第三方的签名;她甚至不愿在她自己的计算机上存贮Bob的公开密钥。她只想给Bob发送一份秘密消息。

    基于身份的密码体制,有时叫作非交互式密钥共享(NIKS)体制,可以解决发送秘密消息问题 [1422]。Bob的公开密钥是基于他的名字和网络地址的(或者电话号码,或者实际街区地址,或者其它什么东西)。对一般的公钥密码体制,Alice需要一个使Bob的身份同他的公钥相关的已签过名的证书。对基于身份的密码体制Bob的公钥就是他的身份。这是一个真正绝妙的主意,就象邮政系统一样方便:如果Alice知道Bob的地址,她就可以给Bob发送保密邮件。它使密码变得尽可能透明。

    这个体制是建立在Trent依据其身份给用户发布私钥的基础上。如果Alice的私钥泄露,她就必须在某些方面改变他的身份,以求得到另一个私钥。一个更严重的问题是系统的设计方法应使不诚实用户串通也无法伪造密钥。

    已对有关这些种类的方案的数学问题做了大量研究工作——大部分在日本——它证明使保密变得异常复杂。许多建议的解决方案中涉及Trent为每个用户选择一个随机数——我认为这点可以解决系统的真正要害。在19章和20章讨论的一些算法可以是基于身份的。有关细节、算法和密码分析,见[191,1422,891,1022,1515,1202,1196,908,692,674,1131,1023,1516,1536,1544,63,1210,314,313,1545,1539,1543,933,1517,748,1228]。一种不依赖任何随机数的算法见[1035]。在[1546,1547,1507]中讨论的系统对选择公开密钥攻击是不安全的;建议的系统如NIKS-TAS[1542,1540,1541,993,375,1538]也是如此。老实说,迄今为止所提系统没有一个是既实用又安全的。