1. 密码协议概念
协议是指双方或多方为完成一项任务所进行的一系列步骤,而每一步必须依次执行,在前一步完成之前,后面的步骤都不能执行。
协议一般具有以下特点:
- (1)协议中的每一方都必须了解协议,并且预先知道所要完成的所有步骤
- (2)协议中的每一方都必须同意并遵循它
- (3)协议必须是清楚的,每一步必须明确定义,并且不会引起歧义
- (4)协议必须是完整的,对每种可能的情况必须规定具体的动作
密码协议是以密码算法为基础完成某项任务并且满足安全需求的协议,也称作安全协议,它在信息系统安全中占有重要地位。参与协议者可能是朋友或完全信任的人,也可能是敌人或相互完全不信任的人。
常见的密码协议包括:密钥建立协议、认证协议、零知识协议、比特承诺、不经意传送协议、安全多方计算协议等。
2. 密码协议的基本单元
密码算法是密码协议的最基本单元,包括:
- (1) 公钥密码算法,在分布式环境中实现高效密钥分发和认证
- (2) 对称密码算法,使用高效手段实现信息的保密性
- (3) 散列函数,实现协议中消息的完整性
- (4) 随机数生成器,为每个参加者提供随机数
3. 密码协议的安全特性
(1)机密性:参与者应该使用适当的加密算法和密钥协议确保协议信息的保密性。
(2)验证性:协议执行过程中,按照协议中预先的规定,参与者应该交换一系列信息,在每一个中间阶段,在回应之前,参与者要求验证他所收到信息的正确性,在协议结束之时,每个参与者应该能够验证最终结果的正确性。中间的验证表明每个参与者验证信息的有效性,最终的验证表明任何人都能验证信息的正确性和最终结果。
(3)认证性:协议中信息必须认证,使得接收信息者能够确信他所接收的信息确实是发送者发送的。
(4)完整性:协议是由一些步骤所组成,协议中每个信息都必须验证它的完整性,否则协议中的参与者或局外人可以修改协议中的信息实现其他目的。
(5)坚固性:在两个参与者以上的协议中,既有“遵纪守法”的参与者,也有“不法”的参与者(攻击者或欺骗者),前者和他们生成的信息应该被接收,而后者和他们所生成的信息应该被拒绝。
(6)公平性:协议在执行过程中任何时刻都可能被中止,如果在协议执行过程中一个参与者所处的“位置”优于另一个参与者,那么处于有利的参与者可能有意中止协议,并且利用中间结果用于其他目的。因此,协议应被设计成在协议执行的任何阶段所有参与者都处于同“位置”。
(7)匿名性:在很多情况下,参与者想在协议中隐藏他的身份,使用匿名身份或临时身份。或者在某种特殊情况下,参与者需要对交互的信息保持匿名性。