2《应用密码学:协议、算法、源程序》
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仲裁者:值得信赖的公正的第三方
Trent 仲裁者
Alice
Bob
仲裁协议
计算机仲裁者面临以下几个问题:
–双方怀疑并不露面的仲裁者; –谁承担仲裁者的费用; –网络延迟的特性; –大范围执行时,仲裁者是瓶颈; –对于破坏网络人来说,其是一个受攻击的弱点
Trent 仲裁者
Alice
Bob
裁决协议
裁决人:值得信赖的公正的第三方,只有 确定协议 是否被公平地执行时,才将他请来。
基本模块-单向散列函数
单向函数:已知x,能计算出f(x),但已知f(x)却难于 计算出x,如打碎盘子,x2,x1/2 散列函数:就是把可变输入长度串转换成固定长度 输出串的一种函数 单向散列函数:一个方向的散列函数 特点: – 无冲突(Collision-free) – 函数是公开的,过程无需保密 – 输出不依赖于输入
Alice Bob Trent 事后
证据
证据
两个协议的区别:裁决者并不总是必需的,仲裁者 费用大;裁决协议是为了发现欺骗,起了防止和阻 碍欺骗的作用,而不是为了阻止欺骗。
协议的安全性
假设密码算法和密码技术都是安全的,分为被动攻 击和主动攻击。 被动攻击:与协议无关人员窃听获取消息,如同唯 密文攻击 主动攻击:主动干预,改变协议以便对自己有利, 如假装他人,重放消息 区别:前者遵守协议,不可能影响协议;后者试图 通过欺骗来破坏协议。 协议中应阻止被动攻击而发现这种攻击,合法用户 能发现欺骗。
Bob
优点:更容易,无需事先安排
密钥交换-混合密码系统
通常,单独的密钥对每次单独的会话加密,为会话密钥,密 钥交换解决会话密钥到达会话者手中这个复杂问题。 对称密码学的密钥交换,依赖于Trent,易造成瓶颈; 公开密钥的密钥交换,更容易,即使Bob没听过Alice。
协议: ① Alice从Trent得到Bob的公开密钥 ② Alice产生随机会话密钥,用Bob的公开密钥加密 它,然后传给Bob ③ Bob用他的私人密钥解密Alice的消息得到会话密 钥。 ④ 两人用同一会话密钥对他们的通信进行加密
用公钥和Hash函数对文件签名
在这个协议中,单向Hash函数和数字签名算法是 事先就协商好了的。 (1)Alice产生文件的单向Hash值。 (2)Alice用她的私钥对Hash加密,凭此表示对 文件签名。 (3)Alice将文件和Hash签名送给Bob。 (4)Bob用Alice发送的文件产生文件的Hash值, 然后用数字签名算法对hash值运算,同时用Alice 的公钥对签名的Hash解密。如果签名的hash值与 自己产生的Hash值匹配,签名就是有效的。
公钥的可信性
中间人Mallory攻击: ① Alice将她的公钥传送给Bob。Mallory截取了这个密钥并将 自己的公钥传送给Bob。 ② Bob将他的公钥传送给Alice。Mallory截取了这个密钥,并 将自己的公钥传送给Alice。 ③ 当Alice将用“Bob”的公钥加密的消息传送给Bob时, Mallory截取它,一系列动作后,然后发给Bob。 ④ 当Bob将用“Alice”的公钥加密的消息传送给Alice时, Mallory截取它,一系列动作后,然后发给Alice。 因Alice和Bob无法验证他们的互相交谈,此攻击行为可行。 若攻击没有导致网络延迟,更没办法知晓。
文件签名和时间标记
假若Alice交给Bob$100的签名数字支票,Bob 把支票拿到银行去验证签名,然后把钱从Alice的帐 户上转到自己的帐上。Bob是一个无耻之徒,他保 存了数字支票的副本。过了一星期,他又把数字支 票拿到银行(或可能是另一个银行),银行验证数 字支票并把钱转到他的帐上。只要Alice不去对支票 本清帐,Bob就可以一直干下去。 因此,数字签名经常包括时间标记。对日期和时 间的签名附在信息中,并跟信息中的其他部分一起 签名。银行将时间标记存贮在数据库中。
基本模块-单向散列函数
消息鉴别码 消息鉴别码(MAC)也叫数据鉴别码 (DAC),它是带有秘密密钥的单向hash函数。 Hash值是预映射的值和密钥的函数。这在理论上 与hash函数一样,除非只有拥有密钥的某些人才 能验证hash值。你可以用hash函数或分组加密算 法产生MAC;也有专用于MAC的算法。
协议
所谓协议,就是两个或者两个以上的参与 者为完成某项特定的任务而采取的一系列 步骤。 在日常生活中,几乎所有的事情都有非正 式的协议:电话订货、玩扑克、选举中投 票,没有人认真考虑过这些协议,这些协 议随着时间的推移而发展,人们都知道怎 样使用它们,而且它们也很有效。
协议的主要特点
协议具有以下特点:
协议与算法
相同点
完成某项任务 要求高效
区别
算法应用于协议中消息处理的环节,对不同的
消息处理方式要求不同的算法 协议是应用算法提供实现方案
协议概述(二) 安全协议
密码学的用途是解决种种难题。
当我们考虑现实世界中的应用时,常常遇到以
下安全需求:机密性、完整性、认证性、匿名 性、公平性等,密码学解决的各种难题围绕这 些安全需求。
使用公钥密码对文件签名
基本协议是简单的: (1)Alice用她的私钥对文件加密,从而对文件签名。 (2)Alice将签名的文件传给Bob。 (3)Bob用Alice的公钥解密文件,从而验证签名。 这个协议也满足我们期待的特征: (1)签名是可信的。当Bob用Alice的公钥验证信息时, 他知道是由Alice签名的。 (2)签名是不可伪造的。只有Alice知道她的私钥。 (3)签名是不可重用的。签名是文件的函数,并且不可 能转换成另外的文件。 (4)被签名的文件是不可改变的。 (5)签名是不可抵赖的。
基本模块-单向函数
单向函数的概念是计算起来相对容易,但求逆却 非常困难。也就是说,已知x,我们很容易计算f (x)。但已知f(x),却难于计算出x。在这里, “难”定义成:即使世界上所有的计算机都用来 计算,从f(x)计算出x也要花费数百万年的时间。 陷门单向函数是有一个秘密陷门的一类特殊单向 函数。它在一个方向上易于计算而反方向却难于 计算。但是,如果你知道那个秘密,你也能很容 易在另一个方向计算这个函数。也就是说, 已知 x,易于计算f(x),而已知f(x),却难于计算x。 然而,有一些秘密信息y,一旦给出f(x)和y, 就很容易计算x。。
协议中的角色
人名
Alice Bob Carol Dave 所有协议中的第一个参与者 所有协议中的第二个参与者 三,四方协议中的参与者 四方协议中的参加者
角色
Eve
Mallory Trent Walter ……
窃听者
恶意的主动攻击者 值得信赖的仲裁者 监察人:在某些协议中保护Alice和Bob
仲裁协议
使用对称和仲裁者的文件签名
Trent是一个有权的、值得依赖的仲裁者。他能同时与 Alice和Bob(也可以是其他想对数据文件签名的任何人) 通信。他和Alice共享秘密密钥KA,和Bob共享另一个不同 的秘密密钥KB。 (1)Alice用KA加密她准备发送给Bob的信息,并把它传 送给Trent。 (2)Trent用KA解密信息。 (3)Trent把这个解密信息和他收到Alice信息的声明,一 起用KB加密。 (4)Trent把加密的信息包传给Bob。 (5)Bob用KB解密信息包,他就能读Alice所发的信息和 Trent的证书,证明信息来自Alice。
基本模块-数字签名与hash
1. 2. 3.
对称密码和仲裁者,耗时,通信瓶颈,易攻击 公钥密码术方式,签名效率较低 公钥和单向散列函数方式,速度大大提高
wenku.baidu.com
HASHBob
HASHAlice
Hash
HASHAlice
Alice
Bob
① Alice产生文件的单向散列值 ② Alice用她的私人密钥对散列值加密,凭此对文件签名 ③ Alice将文件和散列签名送给Bob ④ Bob用Alice发送的文件产生文件的单向散列值,用Alice 公钥对签名的散列解密,若匹配,签名有效
应用密码学—协议1
研究生讲义
参照《应用密码学:协议、 算法、源程序》2-3章
目录
协议结构模块
协议概述 基本模块
基本协议
密钥交换 鉴别 秘密分割
协议概述(一)
什么是“协议”?
协议(protocol) 是一系列的步骤,它包括两方或多方, 设计它的目的是要完成一项任务!协议具备以下的特点: 协议中的每个人都必须了解协议,并且预先知道所 要完成的所有的步骤 协议中的每个人都必须同意并遵循它 协议必须是清楚的,每一步必须明确定义,并且不 会引起误解 必须是完整的,每种可能的情况有规定具体的动作 举例
使用密码对文件签名
在文件上手写签名长期以来被用作作者身份的证明,或至 少同意文件的内容。签名为什么会如此引人注目呢? (1)签名是可信的。签名使文件的接收者相信签名者是 慎重地在文件上签字的。 (2)签名不可伪造。签名证明是签字者而不是其他人慎 重地在文件上签字。 (3)签名不可重用。签名是文件的一部分,不法之徒不 可能将签名移到不同的文件上。 (4)签名的文件是不可改变的。在文件签名后,文件不 能改变。 签名是不可抵赖的。签名和文件是物理的东西。签名者事 后不能声称他没有签过名。
基本模块- 使用对称密码通信
对称密码算法存在下面的问题: (1)密钥必须秘密地分配,它们比任何加密的信 息更有价值,因为知道了密钥意味着知道了所有 信息。对于遍及世界的加密系统,这可能是令人 沮丧的任务,需经常派信使将密钥传递到目的地。 (2)如果密钥被损害了(被偷窃,猜出来,被逼 迫交出来,受贿等等),那么Eve就能用该密钥 去解密所有传送的信息,也能够假装是几方中的 一方,产生虚假信息去愚弄另一方。 (3)假设网络中每对用户使用不同的密钥,那么 密钥总数随着用户数的增加迅速增多。
密码协议(cryptographic protocol)是使用 密码学完成某项特定的任务并满足安全需 求 的 协 议 , 又 称 安 全 协 议 ( security protocol)。 在密码协议中,经常使用对称密码、公开 密钥密码、单向函数、伪随机数生成器等。
安全协议中的角色
协议参与者 认证协议:发起者/响应者 签名协议:签名申请者/签署人/验证人 零知识证明:证明者/验证者 电子商务协议:商家/银行/用户 攻击者(或称敌手) 内部攻击者/外部攻击者 被动攻击者/主动攻击者 可信第三方
协议自始至终是有序的过程,每一个步骤必须
执行,在前一步没有执行完之前,后面的步骤 不可能执行; 协议至少需要两个参与者; 通过协议必须能够完成某项任务。
协议的其他特点
协议还有其他特点:
(1)协议中的每人都必须了解协议,并且预先
知道所要完成的所有步骤。 (2)协议中的每人都必须同意遵循它。 (3)协议必须是不模糊的,每一步必须明确定 义,并且不会引起误解。 (4)协议必须是完整的,对每种可能的情况必 须规定具体的动作。
安全协议的安全性质
机密性 完整性 认证性
可用性
非否认性 正确性
这些要求 根据应用组合
可验证性
公平性 匿名性 隐私属性 强健性 高效性
协议概述(二)
什么是密码协议? 使用密码学的协议,目的在于: – 秘密性 – 共享秘密 – 确定身份,签署合同 – 防止或发现窃听者和欺骗
基本模块-公钥通信
特点:密钥对(公钥和私钥),类似私人信箱 Alice使用公开密钥密码发送消息给Bob:
① ②
③
④
Alice和Bob选用一个公开密钥密码系统; Bob将他的公钥传送给Alice; Alice用Bob的公钥加密他的消息,然后传送给Bob; Bob用他的私钥解密Alice的消息。
Alice
基本模块- 使用对称密码通信
Alice如何使用对称密码发送加密的信息给Bob : (1)Alice和Bob协商用同一密码系统。 (2)Alice和Bob协商同一密钥。 (3)Alice用加密算法和选取的密钥加密她的明文 信息,得到了密文信息。 (4)Alice发送密文信息给Bob。 (5)Bob用同样的算法和密钥解密密文,然后读它。
Trent 仲裁者
Alice
Bob
仲裁协议
计算机仲裁者面临以下几个问题:
–双方怀疑并不露面的仲裁者; –谁承担仲裁者的费用; –网络延迟的特性; –大范围执行时,仲裁者是瓶颈; –对于破坏网络人来说,其是一个受攻击的弱点
Trent 仲裁者
Alice
Bob
裁决协议
裁决人:值得信赖的公正的第三方,只有 确定协议 是否被公平地执行时,才将他请来。
基本模块-单向散列函数
单向函数:已知x,能计算出f(x),但已知f(x)却难于 计算出x,如打碎盘子,x2,x1/2 散列函数:就是把可变输入长度串转换成固定长度 输出串的一种函数 单向散列函数:一个方向的散列函数 特点: – 无冲突(Collision-free) – 函数是公开的,过程无需保密 – 输出不依赖于输入
Alice Bob Trent 事后
证据
证据
两个协议的区别:裁决者并不总是必需的,仲裁者 费用大;裁决协议是为了发现欺骗,起了防止和阻 碍欺骗的作用,而不是为了阻止欺骗。
协议的安全性
假设密码算法和密码技术都是安全的,分为被动攻 击和主动攻击。 被动攻击:与协议无关人员窃听获取消息,如同唯 密文攻击 主动攻击:主动干预,改变协议以便对自己有利, 如假装他人,重放消息 区别:前者遵守协议,不可能影响协议;后者试图 通过欺骗来破坏协议。 协议中应阻止被动攻击而发现这种攻击,合法用户 能发现欺骗。
Bob
优点:更容易,无需事先安排
密钥交换-混合密码系统
通常,单独的密钥对每次单独的会话加密,为会话密钥,密 钥交换解决会话密钥到达会话者手中这个复杂问题。 对称密码学的密钥交换,依赖于Trent,易造成瓶颈; 公开密钥的密钥交换,更容易,即使Bob没听过Alice。
协议: ① Alice从Trent得到Bob的公开密钥 ② Alice产生随机会话密钥,用Bob的公开密钥加密 它,然后传给Bob ③ Bob用他的私人密钥解密Alice的消息得到会话密 钥。 ④ 两人用同一会话密钥对他们的通信进行加密
用公钥和Hash函数对文件签名
在这个协议中,单向Hash函数和数字签名算法是 事先就协商好了的。 (1)Alice产生文件的单向Hash值。 (2)Alice用她的私钥对Hash加密,凭此表示对 文件签名。 (3)Alice将文件和Hash签名送给Bob。 (4)Bob用Alice发送的文件产生文件的Hash值, 然后用数字签名算法对hash值运算,同时用Alice 的公钥对签名的Hash解密。如果签名的hash值与 自己产生的Hash值匹配,签名就是有效的。
公钥的可信性
中间人Mallory攻击: ① Alice将她的公钥传送给Bob。Mallory截取了这个密钥并将 自己的公钥传送给Bob。 ② Bob将他的公钥传送给Alice。Mallory截取了这个密钥,并 将自己的公钥传送给Alice。 ③ 当Alice将用“Bob”的公钥加密的消息传送给Bob时, Mallory截取它,一系列动作后,然后发给Bob。 ④ 当Bob将用“Alice”的公钥加密的消息传送给Alice时, Mallory截取它,一系列动作后,然后发给Alice。 因Alice和Bob无法验证他们的互相交谈,此攻击行为可行。 若攻击没有导致网络延迟,更没办法知晓。
文件签名和时间标记
假若Alice交给Bob$100的签名数字支票,Bob 把支票拿到银行去验证签名,然后把钱从Alice的帐 户上转到自己的帐上。Bob是一个无耻之徒,他保 存了数字支票的副本。过了一星期,他又把数字支 票拿到银行(或可能是另一个银行),银行验证数 字支票并把钱转到他的帐上。只要Alice不去对支票 本清帐,Bob就可以一直干下去。 因此,数字签名经常包括时间标记。对日期和时 间的签名附在信息中,并跟信息中的其他部分一起 签名。银行将时间标记存贮在数据库中。
基本模块-单向散列函数
消息鉴别码 消息鉴别码(MAC)也叫数据鉴别码 (DAC),它是带有秘密密钥的单向hash函数。 Hash值是预映射的值和密钥的函数。这在理论上 与hash函数一样,除非只有拥有密钥的某些人才 能验证hash值。你可以用hash函数或分组加密算 法产生MAC;也有专用于MAC的算法。
协议
所谓协议,就是两个或者两个以上的参与 者为完成某项特定的任务而采取的一系列 步骤。 在日常生活中,几乎所有的事情都有非正 式的协议:电话订货、玩扑克、选举中投 票,没有人认真考虑过这些协议,这些协 议随着时间的推移而发展,人们都知道怎 样使用它们,而且它们也很有效。
协议的主要特点
协议具有以下特点:
协议与算法
相同点
完成某项任务 要求高效
区别
算法应用于协议中消息处理的环节,对不同的
消息处理方式要求不同的算法 协议是应用算法提供实现方案
协议概述(二) 安全协议
密码学的用途是解决种种难题。
当我们考虑现实世界中的应用时,常常遇到以
下安全需求:机密性、完整性、认证性、匿名 性、公平性等,密码学解决的各种难题围绕这 些安全需求。
使用公钥密码对文件签名
基本协议是简单的: (1)Alice用她的私钥对文件加密,从而对文件签名。 (2)Alice将签名的文件传给Bob。 (3)Bob用Alice的公钥解密文件,从而验证签名。 这个协议也满足我们期待的特征: (1)签名是可信的。当Bob用Alice的公钥验证信息时, 他知道是由Alice签名的。 (2)签名是不可伪造的。只有Alice知道她的私钥。 (3)签名是不可重用的。签名是文件的函数,并且不可 能转换成另外的文件。 (4)被签名的文件是不可改变的。 (5)签名是不可抵赖的。
基本模块-单向函数
单向函数的概念是计算起来相对容易,但求逆却 非常困难。也就是说,已知x,我们很容易计算f (x)。但已知f(x),却难于计算出x。在这里, “难”定义成:即使世界上所有的计算机都用来 计算,从f(x)计算出x也要花费数百万年的时间。 陷门单向函数是有一个秘密陷门的一类特殊单向 函数。它在一个方向上易于计算而反方向却难于 计算。但是,如果你知道那个秘密,你也能很容 易在另一个方向计算这个函数。也就是说, 已知 x,易于计算f(x),而已知f(x),却难于计算x。 然而,有一些秘密信息y,一旦给出f(x)和y, 就很容易计算x。。
协议中的角色
人名
Alice Bob Carol Dave 所有协议中的第一个参与者 所有协议中的第二个参与者 三,四方协议中的参与者 四方协议中的参加者
角色
Eve
Mallory Trent Walter ……
窃听者
恶意的主动攻击者 值得信赖的仲裁者 监察人:在某些协议中保护Alice和Bob
仲裁协议
使用对称和仲裁者的文件签名
Trent是一个有权的、值得依赖的仲裁者。他能同时与 Alice和Bob(也可以是其他想对数据文件签名的任何人) 通信。他和Alice共享秘密密钥KA,和Bob共享另一个不同 的秘密密钥KB。 (1)Alice用KA加密她准备发送给Bob的信息,并把它传 送给Trent。 (2)Trent用KA解密信息。 (3)Trent把这个解密信息和他收到Alice信息的声明,一 起用KB加密。 (4)Trent把加密的信息包传给Bob。 (5)Bob用KB解密信息包,他就能读Alice所发的信息和 Trent的证书,证明信息来自Alice。
基本模块-数字签名与hash
1. 2. 3.
对称密码和仲裁者,耗时,通信瓶颈,易攻击 公钥密码术方式,签名效率较低 公钥和单向散列函数方式,速度大大提高
wenku.baidu.com
HASHBob
HASHAlice
Hash
HASHAlice
Alice
Bob
① Alice产生文件的单向散列值 ② Alice用她的私人密钥对散列值加密,凭此对文件签名 ③ Alice将文件和散列签名送给Bob ④ Bob用Alice发送的文件产生文件的单向散列值,用Alice 公钥对签名的散列解密,若匹配,签名有效
应用密码学—协议1
研究生讲义
参照《应用密码学:协议、 算法、源程序》2-3章
目录
协议结构模块
协议概述 基本模块
基本协议
密钥交换 鉴别 秘密分割
协议概述(一)
什么是“协议”?
协议(protocol) 是一系列的步骤,它包括两方或多方, 设计它的目的是要完成一项任务!协议具备以下的特点: 协议中的每个人都必须了解协议,并且预先知道所 要完成的所有的步骤 协议中的每个人都必须同意并遵循它 协议必须是清楚的,每一步必须明确定义,并且不 会引起误解 必须是完整的,每种可能的情况有规定具体的动作 举例
使用密码对文件签名
在文件上手写签名长期以来被用作作者身份的证明,或至 少同意文件的内容。签名为什么会如此引人注目呢? (1)签名是可信的。签名使文件的接收者相信签名者是 慎重地在文件上签字的。 (2)签名不可伪造。签名证明是签字者而不是其他人慎 重地在文件上签字。 (3)签名不可重用。签名是文件的一部分,不法之徒不 可能将签名移到不同的文件上。 (4)签名的文件是不可改变的。在文件签名后,文件不 能改变。 签名是不可抵赖的。签名和文件是物理的东西。签名者事 后不能声称他没有签过名。
基本模块- 使用对称密码通信
对称密码算法存在下面的问题: (1)密钥必须秘密地分配,它们比任何加密的信 息更有价值,因为知道了密钥意味着知道了所有 信息。对于遍及世界的加密系统,这可能是令人 沮丧的任务,需经常派信使将密钥传递到目的地。 (2)如果密钥被损害了(被偷窃,猜出来,被逼 迫交出来,受贿等等),那么Eve就能用该密钥 去解密所有传送的信息,也能够假装是几方中的 一方,产生虚假信息去愚弄另一方。 (3)假设网络中每对用户使用不同的密钥,那么 密钥总数随着用户数的增加迅速增多。
密码协议(cryptographic protocol)是使用 密码学完成某项特定的任务并满足安全需 求 的 协 议 , 又 称 安 全 协 议 ( security protocol)。 在密码协议中,经常使用对称密码、公开 密钥密码、单向函数、伪随机数生成器等。
安全协议中的角色
协议参与者 认证协议:发起者/响应者 签名协议:签名申请者/签署人/验证人 零知识证明:证明者/验证者 电子商务协议:商家/银行/用户 攻击者(或称敌手) 内部攻击者/外部攻击者 被动攻击者/主动攻击者 可信第三方
协议自始至终是有序的过程,每一个步骤必须
执行,在前一步没有执行完之前,后面的步骤 不可能执行; 协议至少需要两个参与者; 通过协议必须能够完成某项任务。
协议的其他特点
协议还有其他特点:
(1)协议中的每人都必须了解协议,并且预先
知道所要完成的所有步骤。 (2)协议中的每人都必须同意遵循它。 (3)协议必须是不模糊的,每一步必须明确定 义,并且不会引起误解。 (4)协议必须是完整的,对每种可能的情况必 须规定具体的动作。
安全协议的安全性质
机密性 完整性 认证性
可用性
非否认性 正确性
这些要求 根据应用组合
可验证性
公平性 匿名性 隐私属性 强健性 高效性
协议概述(二)
什么是密码协议? 使用密码学的协议,目的在于: – 秘密性 – 共享秘密 – 确定身份,签署合同 – 防止或发现窃听者和欺骗
基本模块-公钥通信
特点:密钥对(公钥和私钥),类似私人信箱 Alice使用公开密钥密码发送消息给Bob:
① ②
③
④
Alice和Bob选用一个公开密钥密码系统; Bob将他的公钥传送给Alice; Alice用Bob的公钥加密他的消息,然后传送给Bob; Bob用他的私钥解密Alice的消息。
Alice
基本模块- 使用对称密码通信
Alice如何使用对称密码发送加密的信息给Bob : (1)Alice和Bob协商用同一密码系统。 (2)Alice和Bob协商同一密钥。 (3)Alice用加密算法和选取的密钥加密她的明文 信息,得到了密文信息。 (4)Alice发送密文信息给Bob。 (5)Bob用同样的算法和密钥解密密文,然后读它。