1.识别者A能向验证者B证明他的确是A 。
2.在识别者A向验证者B证明他的身份后,验证者B没有获得任何有用的信息,B不能模仿A向第三方证明他是A 。
目前已经设计出了许多满足这两个条件的识别协议 。比如Schnorr身份识别协议、Okanmto身份识别协议、Guillou-Quisquater身份识别协议和基于身份的识别协议等.这些识别协议均为询问-应答式协议 。询问-应答式协议的基本观点是:验证者提出问题(通常是随机选择一些随机数,称作口令),由识别者回答,然后验证者验证其真实性 。另一类比较重要的识别协议是零知识身份识别协议 。零知识的基本思想是:称为证明者的一方试图使被称为验证者的另一方相信某个论断是正确的,却又不向验证者提供任何有用的信息 。Feige、Fiat和Shamir基于零知识的思想设计了第一个零知识身份识别协议,称为Feige-Fiat-Shamir零知识身份识别协议 。
3. 杂凑技术和消息的完整性
杂凑函数(也称杂凑算法)就是把任意长的输入串变化成固定长的输出串的一种函数 。因为杂凑函数是多对一的函数,所以一定将某些不同的输入变化成相同的输入 。这就要求给定一个杂凑值,求其逆是比较难的,但给定的输入计算杂凑值必须是很容易的 。
一个安全的杂凑函数应该至少满足以下几个条件:
1. 输入长度是任意的.
2. 输出长度是固定的,根据目前的计算技术应至少取128比特长,以便抵抗生日攻击 。
3. 对每一个给定的输入,计算输出其杂凑值是很容易的 。
4. 给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值在计算上是不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值在计算上也是不可行的 。
攻击杂凑函数的典型方法是生日攻击,生日攻击的基本观点来自于生日问题:在一个教室里最少有多少学生时,可使得在这个教室里至少有两个学生的生日在同一天的概率不小于50%?这个问题的答案是23 。
目前已研制出适合于各种用途的杂凑算法,这些算法都是伪随机函数,任何杂凑值都是等可能的 。输出并不以可辨别的方式依赖于输入 。任何输入串中单个比特的变化,将会导致输出比特串中大约一般的比特发生变化 。利用某些数学难题比如因子分解问题和离散对数问题等设计的杂凑函数有Davies-Price平方杂凑算法、CCITT建议、Juene man杂凑算法、Damgard平方杂凑算法、Damgard背包杂凑算法、Schnorr的FFT杂凑算法等 。这些算法中有的已不安全,而有的仍然是安全的 。利用某些私钥密码体制比如DES等设计的杂凑函数有Rabin杂凑算法、Winternitz杂凑算法、Quisquater-Girault杂凑算法、Merkle杂凑算法、N-Hash算法等,这种杂凑函数的安全性与所使用的基础密码算法有关 。不基于任何假设和密码体制直接设计杂凑函数是当今比较流行的一种设计方法 。美国的安全杂凑算法(SHA)就是这类算法,另外还有MD4、MD5、MD2、RIPE-MD、HAVAL等算法 。
美国国家标准与技术局和美国国家安全局共同设计了一个与美国数字签名算法(DSA)一起使用的安全杂凑算法(SHA),标准是安全杂凑标准(SHS),SHA是用于该标准的算法 。SHA的设计原则与MD4算法的设计原则极其相似,它很象是MD4算法的一种变形,但SHA的设计者没有公开SHA的详细设计决策 。SHA输入的长度限制在2比特之内,输出长度为160比特 。
【数据加密基本概念及常见技术】消息认证是指使意定的接收者能够检验收到的消息是否真实的方法 。检验的内容包括:证实消息的源和宿、消息的内容是否被窜改过(即消息的完整性)、消息的序号和时间性 。可见,消息认证可使接收者识别消息的源和内容的真伪、时间性和意定的信宿 。
推荐阅读
- 数据加密技术
- 软件加密技术和注册机制
- RAID5数据恢复的两种办法
- 数据存储技术展望
- 服务器数据备份技术
- 数据存储技术发展的现状
- 数据存储纵横谈
- RAID磁盘阵列数据灾难恢复实用技巧指南
- 苹果11是不是快充
- 数据存储行业的未来发展方向
