密码协议基本理论
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
挑战-响应 (challenge-response) 式认证
在密码学中,挑战-响应式协议的思想是指一个实 体通过知识证明来向另一个实体证明其身份。
在此类协议中,挑战一般是一个随机值或秘密值, 当攻击者窃听通信信道时,由于每次挑战值都不 同,所以对挑战的响应不会暴露秘密信息。
采用分组密码技术的挑战-响应式认证 采用公钥密码技术的挑战-响应式认证
(2)穷举攻击
➢ 对口令认证协议的最简单的攻击方式。依赖于口令可 能的字符集和攻击者的计算能力,因此,穷举攻击的 应用受到了很大程度的限制。
(3)字典攻击
➢ 为了使攻击更有效,攻击者通常会对用户的口令做出 一些较符合实际情况的假设,如短口令,有意义的口 令,名字和小写字母等,这些弱口令的熵值较小。
➢ 有研究表明,大多数用户选择的口令都可以在较为典 型的字典中找到,而其范围不超过150 000个词语。
最简单的方法是在系统的口令文件中存储用户口令的 明文,口令文件必须读保护和写保护。其缺点是其不 能抵抗内部超级用户(系统管理员)的攻击。
经常使用单向函数的对用户的口令进行保护。验证口 令时,系统通过单向函数对输入的口令进行运算,然 后检查其匹配性。这种口令文件只需要写保护。
为提高安全性,系统一般会限制使用弱口令及设置口令生 命期。如限定口令长度的最小值,口令必须包含某几种字 符集,不能与用户账号有关等。目的是提高口令的不确定 性(熵值),使得对口令的攻击成为穷举攻击。
➢ 需要对仲裁者有合适的信任级别 ➢ 即可在私钥体制中实现,又可在公钥体制中实现 ➢ 仲裁者可以或者不可以阅读消息
10.3.1 RSA签名体系
RSA签名体系的消息空间和密文空间都是Zn={0,1,2,…,n−1}, 这里n=p×q。此签名体系是一种确定的数字签名体系。
1. RSA签名体系的密钥产生 每个实体A进行以下操作: (1)随即选择两个大素数p和q; (2)计算n=p×q和 Φ(n)=(p−1)(q−1); (3)随即选择e,满足1<e<Φ(n),gcd(e, Φ(n))=1; (4)用欧几里得算法计算d,满足1<d<Φ(n),ed =1 mod
无碰撞性的准确解释:
➢ 或许已经知道了许多对(x*, y*),满足y*=H(x*); ➢ 或许确实存在(x1,x2)满足: x1≠x2,H(x1)= H(x2), ➢ 实际找到这样的(x1,x2)却很困难,在计算上行不通。
著名的散列编码函数
SHA-1,美国政府的安全散列编码算法标准。 MD5,由RSA数据安全公司研制的散列编码算法。
(1)简单的认证协议:
➢ 认证方B选择随机数r,计算x=h(r),e=PA(r,B), (其中:h是哈希函数,PA是发起方A的公钥);
➢ B向A发送(x,B,e); ➢ A对接受到的信息进行解密得到r’和B’,并验证r’=r,
B’=B; ➢ 若通过验证,则A向B发送r; ➢ 最后,B对r进行验证。
2. 采用公钥密码技术的挑战-响应式认证
采用分组密码技术的挑战-响应式认证方案
此时认证的发起者和验证者间需要有共享密钥, 在系统用户较少时,此要求容易满足,用户较多 的情况下,需要使用可信的第三方。
➢ 基于时间戳的单向认证 ➢ 基于随机数的单向认证 ➢ 基于随机数的双向认证
采用分组密码技术的挑战-响应式认证方案
基于时间戳的单向认证
➢ 验证方接受发起方传送的信息并对其解密,对解密 后的消息进行验证,检验时间戳是否合法。
➢ 一是协议设计者误解或者采用了不恰当的密码技术; ➢ 二是协议设计者对整体系统的安全需求考虑不足。
密码协议的安全性是一个很难解决的问题,许多 广泛应用的密码协议后来都被发现存在安全缺陷。
密码协议的分析
目前,对密码协议进行分析的方法主要有两大类: ➢ 攻击检验方法:使用目前已知的所有的有效攻击方 法,对密码协议进行攻击,检验密码协议是否能够 抵抗这些攻击。 ➢ 形式化的分析方法:指采用各种形式化的语言对密 码协议进行描述,并按照规定的假设和分析、验证 方法证明协议的安全性。
(2)基于随机数的单方公钥认证。
➢ 认证方B选择随机数rB,并将其发送给发起方A; ➢ A在接收到rB之后,选取另一随机数rA,将(rA,B,
SA(rA,rB,B))发送给B,(SA是A的私钥); ➢ B对接受到的信息进行解密并进行验证,这里,rA
可用来防止选择消息攻击。
10.2.3 基于零知识证明的身份鉴别
(1)将x压缩成为固定长度的比特串y。 (2)不同的x一定要生成不同的y。 (3)由y的值无法倒算x的值。 (这就是说,希望y的作用相当于x 的“身份识别符号”,或
者“摘要”。比如人的指纹、DNA、虹膜等。)
杂凑函数
实际性质:杂凑函数
函数 y=H(x)满足 (1)将任意长度的比特串x压缩成为固定长度的比特串y。 (2)已知x,计算y=H(x)很容易;已知y,找一个x满足y=H(x)
密码协议是指使用密码技术的信息交换协议。 所谓协议,就是两个或者两个以上的参与者为完
成某项特定的任务而采取的一系列步骤。
包含三层含义:
➢ (1)协议自始至终是有序的过程,在前一步没有 执行之前,后面的步骤不能执行;
➢ (2)协议至少需要两个参与者; ➢ (3)通过协议必须能够完成某项任务。
密码协议的分类
密码协议是使用密码技术的协议,协议的参与者 可以是信任实体,也可能是攻击者。
所有的密码协议,都依赖于特定的密码算法。 系统通信中的密码协议按功能可以分成三类:
➢ 身份鉴别协议 ➢ 数字签名协议 ➢ 密钥分配协议
密码协议的安全性
目前许多密码协议都存在安全缺陷,造成协议存 在安全缺陷的原因主要有两个:
身份鉴别(认证)协议
口令鉴别 挑战-响应式认证 基于零知识证明的身份鉴别
口令鉴别
口令鉴别
传统的口令鉴别方案被认为是一种弱认证方案。 其基本思想是每一个用户都拥有自己的秘密口令,
即用户与系统的共享密钥,在访问系统资源时,用 户必须输入正确的用户名及其对应的秘密口令,系 统通过验证用户名和口令的匹配性来对用户进行授 权,这一过程经常涉及到知识证明技术。
消息自恢复 消息附属
确定性签名 随机签名 确定性签名 随机签名
数字签名体系的分类
数字签名应满足的条件
➢ 签名值必须依赖于所签的消息 ➢ 必须使用对于发送者唯一的信息
以防止伪造和否认 ➢ 产生签名比较容易 ➢ 识别和验证签名比较容易 ➢ 伪造数字签名在计算上是不可行的。包括
已知数字签名,伪造新的消息 已知消息,伪造数字签名 ➢ 保存数字签名的拷贝是可行的
10.3.2 Rabin签名体系
Rabin签名与RSA签名很相似,但其使用了一个 偶数公钥参数e。为了使验证更简单,Rabin签名 设定e=2。
1. Rabin签名体系的密钥产生 每个实体A进行以下操作: (1)随即选择两个大素数p和q; (2)计算n=p×q和 Φ(n)=(p−1)(q−1)。 设A的公钥为n,私钥为(p,q)。
(2)消息自恢复数字签名:在签名验证阶段不需要原 始的消息。较为典型的有RSA、Rabin和Nyberg Rueppel公钥签名体系。
按照明、密文的对应关系划分,上面每一类又可分为 两个子类:一类是确定性数字签名,其明文与密文一 一对应;另一类是随机数字签名,它对同一消息的签 名是随机变化的。
数字签名体系
(2004年5月,中国山东大学的尚小云教授攻破了 MD5 。王小云的攻击算法可以在几分钟内找到一批 碰撞)
消息的数字签名就是指依赖于签名者私有信息的有关 被签署消息的数字符号。应用如公钥证书、数据完整 性和匿名性等。
数字签名体系可分为两大类:
(1)消息附属(appendix)数字签名:在签名验证阶 段需要原始的消息。较为典型的有DSA、ElGamal和 Schnorr签名体系。
➢ 为防止选择明文攻击,发起方可在发送的消息中加 入另一随机数。
采用分组密码技术的挑战-响应式认证方案
基于随机数的双向认证
➢ 协议中,验证方首先向发起方送出随机数r1,然后 发起方选择另一随机数r2,并对身份信息和随机数 r1、r2进行加密,然后送出。验证方解密得到的消 息后,验证随机数r1,验证通过后,将随机数r1、r2 加密后送给发起方,最后发起方通过验证随机数r1、 r2来验证对方的身份。
略
数字签名
杂凑函数(哈希函数)
杂凑函数又称为: (1) Hash编码; (2) Hash函数; (3)散列编码: (4)散列函数; (5)单向压缩函数。
杂凑函数
在公钥密码的内容中,已经介绍了“单向函数”的概念。而杂 凑函数是一类特殊的单向函数。
设数据文件是任意长度的比特串x 。在密码应用中,希望有这 样的函数 y=H(x),满足
为了抵抗字典攻击,在进行单向函数运算前给口令加入一 些随机值,把经运算后的口令和随机值存入口令文件,不 会改变穷举攻击的困难度,但提高了口令抵抗字典攻击的 能力。
增加口令不确定性且容易记忆,采用口令句的技术,用户 输入一个短语或句子(口令句),系统通过对口令句进行 哈希操作从而得到口令。
几种常用的对口令鉴别的攻击方法:
➢ 可以防止攻百度文库者对传送消息的重用。 ➢ 分析:需要防止对时钟的恶意修改,在分布式环境
下很难保证。同时,对已用时间戳的保存会浪费大 量的存储空间。
采用分组密码技术的挑战-响应式认证方案
基于随机数的单向认证
➢ 首先验证方向发起方传送随机数,发起方对身份信 息和随机数进行加密并送出,最后验证方解密得到 消息并验证随机数。
2. 采用公钥密码技术的挑战-响应式认证
在利用公钥密码技术进行认证时,发起者通过 两种方法来证明其身份:
➢ 对用其公钥加密过的随机数进行解密; ➢ 对随机数进行签名。
为了保证安全性,认证协议的公私钥对不能在 其他应用中使用;同时,协议还应能够抵抗选择 密文攻击。
2. 采用公钥密码技术的挑战-响应式认证
直接数字签名
只涉及收发双方 假定接收方已知发送方的公钥 发送方可以用自己的私钥对整个消息内容或消息内容的
hash值进行加密,完成数字签名。 可以用接收者的公钥来加密以提供保密性 先签名后加密,很重要。 缺点:安全性依赖于发送方私钥的安全性
仲裁数字签名
➢ 仲裁者A 验证任何签名的消息 给消息加上日期并发送给接收者
(1)窃听和重放攻击
➢ 口令方案的弱点:用户输入的口令在通信信道上以明 文形式传输的,在认证过程中口令也以明文方式出现, 使得攻击者可以方便的得到口令。
➢ 因此,使用口令的认证协议时,通信信道必须是安全 的,同时验证系统对输入口令的响应必须要经常改变, 以防止简单的重放攻击。
几种常用的对口令鉴别的攻击方法:
却很困难。这一性质称为单向性。 (3)找(x1,x2),x1≠x2,H(x1)= H(x2),很困难。这一性质称为
无碰撞性。 这样的函数称为杂凑函数。
杂凑函数
单向性的准确解释:
➢ 或许已经知道了许多对(x*, y*),满足y*=H(x*); ➢ 或许一个新的y确实存在一个x满足y=H(x); ➢ 然而实际找到这样的x却很困难,在计算上行不通。
2. 签名算法 (1)计算s,使s2=m mod n; (2)发送(m,s)。
密码协议基本理论
➢ 身份鉴别(认证)协议 ➢ 数字签名协议 ➢ 密钥分配协议
密码协议的基本概念
安全系统中,很多应用都需要使用不同的密码学协议。 密码协议的目的是运用密码学技术保证安全系统的安全性
和保密性。但是,如果密码协议设计得不合理,则相当于 设计者暴露了安全系统中的漏洞,攻击者根本不用去攻击 安全的密码算法就能够达到入侵系统的目的。 密码协议研究的主要领域包括:网络安全协议的设计和分 析、密钥管理协议的设计与分析以及与它们相关领域的研 究,如零知识证明、身份认证、密钥协商、秘密共享等。
(n)。 设A的公钥为(n,e),私钥为(n,d)。
2. 签名算法 (1)计算s=md mod n; (2)发送(m,s)。 3. 验证算法
(1)计算m′=se mod n; (2)验证m′是否等于m,若不等于,则拒绝;
4. 安全性分析
如果攻击者能够进行模n的大整数分解,则它可计 算Φ (n),从而利用欧几里得算法得到签名者的私 钥。所以签名者必须小心地选择p和q。