随着越来越多的分布式计算和数据厍在电子通信中的应用,通信网络中的数据安全性变得越来越重要,并且现代高性能的计算机及量子信息技术的发展,给传统的通信安全体系带来了巨大的挑战,因而基于信息理论安全的通信方式成为人们关心的问题。要实现数据无条件安全,就是用安全分配的一次性密钥对其进行加密。
协议(Protocol)是指一种多人(Multiparty)参与的算法,两人或多人借着一连串明确定义的动作以合作方式完成一些工作。密码协议基本上是指在大型公众网络上,多人借着协议,以达到秘密信息的交换,及确定信息完整性的方法。一般而言,密码学中所有的密码系统、密钥分配系统、数字签名、认证系统、秘密共享系统,均可称为密码协议。
密钥分配系统的目的,在于使未曾谋面的两人能共享(分配秘密密钥。一般密钥分配系统,是括能使两人分配一共享秘密密钥。若密钥分配系统,能使多人(超过两人)同时共享一秘密密钥,则此系统称为会议密钥分配系统。1
无条件安全会议密钥分配Г是一个完全图(任意两点都是直接相连的),他的节点 表示会议成员,边对应于安全路径,称Г为安全路径图,
设
是Г的节点的一个子集,以
为节点集的会议图就是Г的连通子图Гc。我们通过如右图所示的一个八节点的全连通图来讨论。
令 是一个
为主席的会议成员,其安全路径
图是一个完全图,如上图所示的一部分,所以生成树不是惟一的。为了最大程度地实现系统运行的并行性,又构造了如右图所示的生成树
。该生成树构造原则是:根节点孩子数为
,其他每个节点的孩子数等于该节点的弟兄总数减去自己在弟兄中的排行(从右至左)。给定会议成员数
,这样构造的生成树是惟一的,会议主席处于生成树根节点上,由它产生一个关于其他节点与会议成员对应关系的一个消息,将该消息向所有的会议成员广播。
选择符合适当概率分布的会议密钥
,
协商得一次性密钥
,
协商得一次性密钥
,
协商得一次性密钥
,
协商得一次性密钥
向
发送消息
⊕
(⊕为逐比特异或运算),因为
知道
,所以
可以计算出会议密钥
。同理,每个节点都可以从其父亲那里得到会议密钥
。
在此会议密钥分配过程中的认证是这样的, 向
发送一个由
和
生成的消息
,
可以通过该认证消息获知
是由
发送过来的;同理
也可以向
证明会议密钥
,
可向
证明
若
为恶意的,则它可能不将
发送给
,或发送一个
,则根据会议安全路径简图,除
之外
等也可向
证明
,所以
只接收
和
传送的相同的密钥,从而实现了对
的认证。
会议主席选择一个符合适当概率分布的会议密钥,用 表示非根节点
的父亲,
表示生成树
的高度。令
是以
为生成树的会议节点集。协议过程如下:
(1)每个节点 与它的邻节点协商一次性密钥,
是由会议主席生成的会议密钥,
是
和
协商的密钥。
(2)从层数 到生成树的高度
:
①在 中,每个非叶节点
以从右至左的顺序向每个孩子
发送消息
,其中
⊕
。
②在了 中当
时,每个节点
收到消息
,计算
⊕
,
,判断
是否成立。如果成立,则
;否则不接受
。
本协议中的运算⊕是逐比特异或运算,由于 是一次性的,由 shannon 的一次一密的完善保密定理可知,
是安全的。并且在第一步中是并行运算,第二步中也尽可能的实现了并行运算。2
密钥分配系统实现的基本模式有两种,一种是对小型网络,由于用户人数较少,每对用户之间可用共享一个密钥的方法来分配密钥,如右图所示。
右图中, 表示
和
之间共享的密钥。
另一种是在一个大型网络中,如由 个用户组成的系统中,希望相互之间保密通信,如果用户之间互相传递密钥,则需要生成
个密钥进行分配和存储,造成较大的工作量。这种环境下的密钥分配问题比较复杂,为了解决这一问题,常采用密钥中心管理方式。在这种结构中,每个用户和密钥中心共享一个密钥,保密通信的双方之间无共享密钥。
密钥中心机构有两种形式:密钥分配中心(KDC)和密钥传送中心(KTC)。在KDC中,当A向KDC请求发放与B通信用的密钥时,KDC生成一个密钥 传给A,并通过A传给B,如右图
图1(a)所示;或者利用A和B与KDC共享密钥,由KDC直接传送给B,如右图图1(b)所示。
密钥传送中心(KTC)和密钥分配中心(KDC)的形式十分相似,主要差别在于密钥传送中心形式下由通信双方的一方产生需求的密钥,而不是由中心来产生,利用A与B和KTC的共享密钥来实现保密通信。当A希望和B通信时,A产生密钥 并将密钥发送给KTC。A再通过KTC转送给B,如右图图2(a)所示;或直接传给B,如有图图2(b)所示。
由于KDC和KTC的参与,因此各用户只需保存一个和KDC或KTC共享的较长期的密钥即可。这样,密钥分配系统的安全性依赖于对中心的信任,中心结点一旦出问题将威胁整个系统的安全性。3