第五章 消息认证与散列函数
信息安全原理与技术第3版习题答案

《信息安全》习题参考答案第1章1.1主动攻击和被动攻击是区别是什么?答:被动攻击时系统的操作和状态不会改变,因此被动攻击主要威胁信息的保密性。
主动攻击则意在篡改或者伪造信息、也可以是改变系统的状态和操作,因此主动攻击主要威胁信息的完整性、可用性和真实性。
1.2列出一些主动攻击和被动攻击的例子。
答:常见的主动攻击:重放、拒绝服务、篡改、伪装等等。
常见的被动攻击:消息内容的泄漏、流量分析等等。
1.3列出并简单定义安全机制的种类。
答:安全机制是阻止安全攻击及恢复系统的机制,常见的安全机制包括:加密机制:加密是提供数据保护最常用的方法,加密能够提供数据的保密性,并能对其他安全机制起作用或对它们进行补充。
数字签名机制:数字签名主要用来解决通信双方发生否认、伪造、篡改和冒充等问题。
访问控制机制:访问控制机制是按照事先制立的规则确定主体对客体的访问是否合法,防止未经授权的用户非法访问系统资源。
数据完整性机制:用于保证数据单元完整性的各种机制。
认证交换机制:以交换信息的方式来确认对方身份的机制。
流疑填充机制:指在数拯流中填充一些额外数据,用于防止流量分析的机制。
路由控制机制:发送信息者可以选择特殊安全的线路发送信息。
公证机制:在两个或多个实体间进行通信时,数据的完整性、来源、时间和目的地等内容都由公证机制来保证。
1.4安全服务模型主要由几个部分组成,它们之间存在什么关系。
答:安全服务是加强数拯处理系统和信息传输的安全性的一种服务,是指信息系统为英应用提供的某些功能或者辅助业务。
安全服务模型主要由三个部分组成:支撑服务,预防服务和恢复相关的服务。
支撑服务是英他服务的基础,预防服务能够阻止安全漏洞的发生,检测与恢复服务主要是关于安全漏洞的检测,以及采取行动恢复或者降低这些安全漏洞产生的影响。
1.5说明安全目标、安全要求、安全服务以及安全机制之间的关系。
答:全部安全需求的实现才能达到安全目标,安全需求和安全服务是多对多的关系,不同的安全服务的联合能够实现不同的安全需求,一个安全服务可能是多个安全需求的组成要素。
散列函数与消息认证码

第七讲散列函数与消息认证码马春光machunguang@计算机科学与技术学院哈尔滨工程大学1 /•网络安全威胁:–被动攻击(Passive Attack):敌手通过侦听和截获等手段获取数据;–主动攻击(Active Attack):敌手通过伪造、重放、篡改、乱序等手段改变数据;图1 无线网络中的四种通信安全威胁(a)监听;(b)篡改;(c)伪造;(d)阻断2 /•消息认证(Message Authentication)的目的:–验证消息的完整性,确认数据在传送和存储过程中未受到主动攻击。
•消息认证的方式:–消息加密函数:加密整个消息,以消息的密文文件作为认证,可使用对称密码或公钥密码体制进行加密;–散列函数(Hash):将任意长度的消息变换为定长的消息摘要,并加以认证;–消息认证码(MAC):依赖公开的函数(密钥控制下)对消息处理,生成定长的认证标识,并加以认证;3 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5•2 消息认证码–2.1 MAC函数–2.2 MAC的安全性–2.3 CBC-MAC•作业4 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业5 /散列函数的定义•散列函数H 是一个公开的函数,它将任意长度的消息M变换为固定长度的散列码h 。
•h=H (M)–M:变长消息,H(M):定长的散列值•散列函数是一种算法,算法的输出内容称为散列码或者消息摘要。
•消息摘要要唯一地对应原始消息,如果原始消息改变并且再次通过散列函数,它将生成不同的消息摘要,因此散列函数能用来检测消息地完整性,保证消息从建立开始到收到为止没有被改变和破坏。
•运行相同算法的接受者应该收到系统的消息摘要,否则保温是不可信的。
•散列函数又称为:哈希(Hash )函数、数字指纹(Digital fingerprint)、压缩(Compression)函数、数据认证码(DataAuthentication Code)等6 /散列函数的要求•H 能用于任意大小的分组;•H 能产生定长的输出;•对任何给定的x,H(x)要相对易于计算,使得硬件和软件实现成为实际可能;•对任何给定的码h ,寻找x 使得H(x)=h 在计算上是不可行的,即单向性(one-way);•对任意给定的分组x,寻找不等于x 的y,使得H(x)=H(y)在计算上是不可行的,即弱抗冲突性(Weak Collision-free);•寻找对任意的(x, y) 对使得H(x)=H (y) 在计算上是不可行的,即强抗冲突性(Strong Collision-free);7 /提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业8 /2.2 Hash函数的通用结构•由Ron Rivest于1990年提出MD4•几乎被所有Hash函数使用•具体做法:–把原始消息M分成一些固定长度的块Y i–最后一块padding 并使其包含消息M长度–设定初始值CV0–压缩函数f, CV i=f(CV i-1, Y i-1)–最后一个CV i为Hash值9 //提纲•1 散列函数–1.1 散列函数的定义–1.2 散列函数的通用结构–1.3 MD5• 2 消息认证码•作业11 /MD5 描述•1989年,Merkle提出Hash function模型•1990年,Ron Rivest提出MD4•1992年, Ron Rivest完成MD5 (RFC 1321) –/rfcs/rfc1321.html•在最近数年之前,MD5是最主要的Hash算法•现行美国标准SHA-1以MD5的前身MD4为基础•MD5(Message Digest)–输入:任意长度的消息–输入分组长度:512 bit–输出:128 bit 消息12 /(4)(3)13 /14/MD5 描述-(1)•消息填充•对消息进行填充,使其比特数与448模512同余,即填充长度为512的整数倍减去64,留出64比特在(2)中使用:•填充方法:填充比特串的最高位为1,其余各位均为0。
信息安全概论第五章消息认证与数字签名

5.1.1 信息加密认证
信息加密函数分两种,一种是常规的对称密钥加密函数, 另一种是公开密钥的双密钥加密函数。下图的通信双方 是,用户A为发信方,用户B为接收方。用户B接收到信 息后,通过解密来判决信息是否来自A, 信息是否是完 整的,有无窜扰。
1.对称密码体制加密: 对称加密:具有机密性,可认证,不提供签名
通常b>n
24
5.2.3
MD5算法
Ron Rivest于1990年提出了一个称为MD4的散列函数。 他的设计没有基于任何假设和密码体制,不久,他的 一些缺点也被提出。为了增强安全性和克服MD4的缺 陷, Rivest于1991年对MD4作了六点改进,并将改进 后的算法称为MD5. MD5算法:将明文按512比特进行分组,即MD5中的 b=512bit,经填充后信息长度为512的倍数(包括64 比特的消息长度)。 填充:首位为1,其余补0至满足要求,即填充后的比 特数为512的整数倍减去64,或使得填充后的数据长 度与448模512同余。
18
通过以下方式使用散列函数常提供消息认证
(1)使用对称加密算法对附加消息摘要的报文进行加密 A B: EK(M||H(M)) 提供保密、认证 (2)使用对称加密方法对消息摘要加密 A B: M||EK(H(M)) 提供认证 (3)使用发方的私钥对消息摘要进行加密 A B: M||EKRa(H(M)) 提供数字签名、认证 (4)在(3)的基础上,使用对称加密方法进行加密 A B: EK(M||EKa(H(M)) ) 提供数字签名、认证和保密 (5)假定双方共享一个秘密值S,与消息M串接,计算散 列值 A B: M||(H(M||S)) 提供认证 (6)假定双方共享一个秘密值S,使用散列函数,对称加 密方法 A B: EK(M||H(M||S)) 提供数字签名、认证和保密19
消息鉴别和散列函数

网络与信息安全第七讲消息鉴别与散列函数陈钟教授北京大学信息科学技术学院软件研究所--信息安全研究室chen@2008-2009年度北京大学研究生课程2009/03/30 NISC-07 ©CZ@PKU回顾与总结•对称密码算法–运算速度快、密钥短、多种用途(随机数产生、Hash函数)、历史悠久–密钥管理困难(分发、更换)•非对称密码算法–只需保管私钥、可以相当长的时间保持不变、需要的数目较小–运算速度慢、密钥尺寸大、历史短信息安全的需求•保密性(Confidentiality)•完整性(Integrity)–数据完整性,未被未授权篡改或者损坏–系统完整性,系统未被非授权操纵,按既定的功能运行•可用性(Availability)•鉴别(Authenticity)–实体身份的鉴别,适用于用户、进程、系统、信息等•不可否认性(Non-repudiation)–防止源点或终点的抵赖•……讨论议题•消息鉴别(Message Authentication)•散列函数(Hash Functions)定义•消息鉴别(Message Authentication):是一个证实收到的消息来自可信的源点且未被篡改的过程。
•散列函数(Hash Functions):一个散列函数以一个变长的报文作为输入,并产生一个定长的散列码,有时也称报文摘要,作为输出。
•数字签名(Digital Signature)是一种防止源点或终点抵赖的鉴别技术。
通信系统典型攻击1)窃听2)业务流分析3)消息篡改内容修改:消息内容被插入、删除、修改。
顺序修改:插入、删除或重组消息序列。
时间修改:消息延迟或重放。
4)冒充:从一个假冒信息源向网络中插入消息5)抵赖:接受者否认收到消息;发送者否认发送过消息。
两个概念•鉴别(Authentication):真伪性•认证(Certification)资格审查消息鉴别•鉴别的目的•鉴别模型•鉴别函数鉴别的目的•鉴别的主要目的有二:第一,验证信息的发送者是真正的,而不是冒充的,此为信源识别;第二,验证信息的完整性,在传送或存储过程中未被篡改,重放或延迟等。
3消息认证和Hash函数

若要提供认证,则A用其私钥对消息加密,而B用A的 公钥对接收的消息解密。因为只有A拥有PRa,能产 生用PUa可解密的密文,所以该消息一定来自A。 同样,对明文也必须有某种内部结构以使接收方能 区分真实的明文和随机的位串。
源A 宿B D E(PRa, M) PUa M
M
E PRa
(c) 公钥加密:认证和签名
其中:M=输入消息, C=MAC函数 K=共享的密钥,MAC=消息认证
消息认证码
1. 2.
3.
发送方将消息和MAC一起发送给接收方。接收方对 收到的消息用相同的密钥K进行相同的计算得出新 的MAC,并将接收到的MAC与其计算出的MAC进行 比较。 如果我们假定只有收发双方知道密钥K,那么若接 收到的MAC与计算得出的MAC相等,则: 接收方可以相信消息未被修改。 接收方可以相信消息来自真正的发送方。 如果消息中含有序列号,那么接收方可以相信消息 顺序是正确的。
MAC的性质
性质2:C(k,M)应是均匀分布的,即对任何随 机选择的消息M和M’, C(k,M) = C(k,M’)的概率 是2-n,其中n是MAC的位数。
该要求是为了阻止基于选择明文的穷举攻击,也就 是说,假定攻击者不知道K,但是他可以访问MAC 函数,能对消息产生MAC,那么攻击者可以对各种 消息计算MAC,直至找到与给定MAC相同的消息为 止。如果MAC函数具有均匀分布的特征,那么穷举 方法平均需要2n-1步才能找到具有给定MAC的消息。
消息认证码的基本用法
提供认证
(a)消息认证 (b)消息认证和保密性:与明文有关的认证 (c)消息认证和保密性:与密文有关的认证
提供认证和保密性
清华大学出版社第5章 散列函数和消息鉴别

生日悖论
我们来考虑这样一个有趣的问题:在一个教室中最少应有多少学 生才使得至少有两个学生的生日在同一天的概率大于0.5?计算与此 相关的概率被称为生日悖论问题。
3/27
第5章 散列函数与消息鉴别
• 散列函数的应用
散列函数的主要应用有以下三个方面: 1)保证数据的完整性 2)单向数据加密 3)数字签名 应用散列函数实现数据完整性保护的模型:
注:实际应用中,未必一定是如h(m‖k)的计算方式,明文与密钥k的 组合方式因不同的实现可以不同。
4/27
第5章 散列函数与消息鉴别
20/27
第5章 散列函数与消息鉴别 (4)结合使用公钥密码体制和对称密码体制,这种方法用发送方的私钥 对散列值进行数字签名,用对称密码体制加密消息M和得到的数字签名, 如图5.16(d)。 (5)这种方法使用了散列算法,但未使用加密算法。 (6)在方法(5)的基础上,使用对称密码体制对消息M和生成的散列值 进行保护,如图5.16(f)。
Ⅲ.SHA-1的压缩操作 SHA-1压缩函数操作过程,如图5.9所示(下页),是处理一个512位 分组的4次循环中每一循环的基本压缩操作流程。 Ⅳ.示例 【例5.1】计算字符串“abc”的SHA-1散列值。 字符串“abc”的二进制表示为:01100001 01100010 01100011,共 有24位的长度。按照SHA-1的填充要求,应该填充一个“1”(界符)和423 个“0”,最后有两个字“00000000 00000018”(十六进制),表明原始消 息的长度为24位。本例中共只有一个分组。
第5章散列函数与消息鉴别讲义

表可避免以明文的形式保存口令,至今仍然在许多系统中得 到广泛的使用。
(3)数字签名。
四川大学电子信息学院
4/40
二. 散列函数的构造与设计
2.1 简单的散列函数: 数字通信中的一些校验码能否作散列函数,如累加和校
验、纵向奇偶校验、CRC循环冗余校验等等? 如纵向奇偶校验: 设输入分组序列为:M =X1|| X2 ||…… || XN
Hash函数是一种将任意长度的消息M映射为较短的、固 定长度的一个值H(M)的函数 ,称函数值H(M)为消息摘要 MD ( Message Digest )或散列码。
散列函数的目的是为文件、报文或其他的分组数据产生 “数字指纹”,主要用于报文鉴别和数字签名。
2/40
1. 散列函数的基本性质
散列函数H必须具有如下性质:
(Xi为n bit分组) 则输出散列码为:H(M)=X1⊕X2⊕ …… ⊕XN ( 按位异或) 特点: (1)简单、对输入为随机数据的完整性检查有效; 存在的问题: 容易产生碰撞
四川大学电子信息学院
5/40
若H( M ) = X1 ⊕ X2 ⊕ …… ⊕ XN ,有报文篡改方案:
原报文:M = X1|| X2|| …… || XN ,传送报文M || Ek[H(M)]被攻
四川大学电子信息学院
3/40
2. 散列函数的主要应用
(1)保证数据的完整性; 例如,为保证数据的完整性,可以使用单向散列函数对
数据生成并保存散列值,然后,每当使用数据时,用户将重 新使用单向散列函数计算数据的散列值,并与保存的数值进 行比较,如果相等,说明数据是完整的,没有经过改动;否 则,数据已经被改动了。
网络安全-安全散列函数,信息摘要SHA-1,MD5原理

⽹络安全-安全散列函数,信息摘要SHA-1,MD5原理-----------------------------------------------欢迎查看⽹络安全连载博客--------------------------------------------------------------------------------------------------------------------------------------------------------本⽂绝⼤部分内容来⾃《⽹络安全基础——应⽤与标准》第五版——清华⼤学出版社。
当中蓝⾊部门是⾃⼰加⼊安全散列函数单向散列函数或者安全散列函数之所以重要,不仅在于消息认证(消息摘要。
数据指纹)。
还有数字签名(加强版的消息认证)和验证数据的完整性。
常见的单向散列函数有MD5和SHA散列函数的要求散列函数的⽬的是⽂件、消息或者其它数据块产⽣“指纹”。
为满⾜在消息认证中的应⽤,散列函数H必须具有下列性质:(1)H可适⽤于随意长度的数据块。
(2)H能够⽣成固定长度的输出。
(2)对于随意给定的x,计算H(x)相对easy,⽽且能够⽤软/硬件实现。
(4)对于随意给定的h,找到满⾜H(x)=h的x在计算上不可⾏。
满⾜这⼀特性的散列函数称之为:具备抗原像攻击性。
(5)对于随意给定的数据块x,找到满⾜H(y)=H(x)的y ≠ x在计算上是不可⾏;满⾜这⼀特性的散列函数称之为:抗弱碰撞性。
(6)找到满⾜H(x) = H(y)的随意⼀对(x,y)在计算上是不可⾏的。
满⾜这⼀特性的散列函数称之为:抗碰撞性。
前三个性质是使⽤散列函数进⾏消息认证的实际可⾏要求。
第四个属性,抗原像攻击,防⽌攻击者能够回复秘密值。
抗弱碰撞性保证了对于给定的消息。
不可能找到具有同样散列值的可替换消息。
满⾜上⾯前5个性质的散列函数称之为弱散列函数。
假设还满⾜第6个性质则称之为强散列函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
K2 D C K1 M
比较
提供认证, 提供认证,提供保密 与秘文有关的认证
Alice
两种改进方案的比较
上述过程中,由于消息本身在发送过程中是明 上述过程中, 文形式, 文形式,所以这一过程只提供认证性而未提供 保密性。 提供保密性可在 可在MAC函数以后 如 函数以后(如 保密性。为提供保密性可在 函数以后 或以前(如图 进行一次加密, 图6.1(b))或以前 如图 或以前 如图6.1(c))进行一次加密, 进行一次加密 而且加密密钥也需被收发双方共享。 而且加密密钥也需被收发双方共享。在图 6.1(b)中,M与MAC链接后再被整体加密,在 链接后再被整体加密, 中 与 链接后再被整体加密 先被加密再与MAC链接后发送。 链接后发送。 图6.1(c)中,M先被加密再与 中 先被加密再与 链接后发送 通常希望直接对明文进行认证,因此图6.1(b) 通常希望直接对明文进行认证,因此图 所示的使用方式更为常用。 所示的使用方式更为常用
预映射 鉴别密钥K 单向散列函数 散列值
基于消息认证码(MAC)的认证 的认证 基于消息认证码
C M C Alice CK(M) Bob || M 比较
特ห้องสมุดไป่ตู้: 特点:
– – –
MAC函数无需可逆 函数无需可逆 收发双方使用相同的密钥, 收发双方使用相同的密钥,MAC不能提供数字签名 不能提供数字签名 只提供消息认证, 只提供消息认证,不能提供机密性
函数(散列 哈希函数) (3)Hash函数 散列 哈希函数 ) 函数 散列,哈希函数
Hash函数 函数
–
–
–
–
Hash函数是将任意长度的报文映射成一个较 函数是将任意长度的报文映射成一个较 短的定长输出报文的函数. 短的定长输出报文的函数 如下形式: 是变长的报文,h是定长 如下形式 h = H(M), M是变长的报文 是定长 是变长的报文 的Hash值. 值 Hash函数的目的是为文件、报文或其它的分 函数的目的是为文件、 函数的目的是为文件 组数据产生“数字指纹”. 组数据产生“数字指纹” Hash函数是一种有损加密,信息有损失 函数是一种有损加密, 函数是一种有损加密
如果仅收发双方知道K, 计算得到的MAC 如果仅收发双方知道 ,且B计算得到的 计算得到的 与接收到的MAC一致,则这一系统就实现了以下 一致, 与接收到的 一致 功能: 功能: 接收方相信发送方发来的消息未被篡改, ① 接收方相信发送方发来的消息未被篡改,这是因 为攻击者不知道密钥, 为攻击者不知道密钥,所以不能够在篡改消息后 相应地篡改MAC,而如果仅篡改消息,则接收方 相应地篡改 ,而如果仅篡改消息, 计算的新MAC将与收到的 将与收到的MAC不同。 不同。 计算的新 将与收到的 不同 接收方相信发送方不是冒充的, ② 接收方相信发送方不是冒充的,这是因为除收发 双方外再无其他人知道密钥, 双方外再无其他人知道密钥,因此其他人不可能 对自己发送的消息计算出正确的MAC。 对自己发送的消息计算出正确的 。
认证函数: 认证函数:Hash函数 函数
Hash Function – 哈希函数、散列函数、摘要函数 哈希函数、散列函数、 – 输入:任意长度的消息报文 M 输入: – 输出:一个固定长度的散列码值 H(M) 输出: – 是报文中所有比特的函数值 – 单向函数(转换过程中信息是有损失的,因 单向函数(转换过程中信息是有损失的, 此无法恢复到明文) 此无法恢复到明文) 散列计算不可能对两条信息求出相同的摘要
Hash函数的分类 函数的分类
根据是否使用密钥
–
–
带秘密密钥的Hash函数 消息的散列值由只有通 函数:消息的散列值由只有通 带秘密密钥的 函数 信双方知道的秘密密钥K来控制 此时, 来控制。 信双方知道的秘密密钥 来控制。此时,散列 值称作MAC。 值称作 。 不带秘密密钥的Hash函数:消息的散列值的产 函数: 不带秘密密钥的 函数 生无需使用密钥。此时,散列值称作MDC 生无需使用密钥。此时,散列值称作 (Manipulation detection code)篡改检验码 。 篡改检验码
•消息认证:这消息真的是他发出来的吗?是不是 消息认证:这消息真的是他发出来的吗? 消息认证 假冒的?有没有被篡改过? 假冒的?有没有被篡改过? •身份的认证:和我通话 信的这个人真的是他吗? 身份的认证: 信的这个人真的是他吗? 身份的认证 和我通话/信的这个人真的是他吗 是不是假冒的?是不是录音重放? 是不是假冒的?是不是录音重放?
消息认证码的定义及使用方式
消息认证码是指消息被一密钥控制的公开散列函 数作用后产生的、用作认证符的、 数作用后产生的、用作认证符的、固定长度的数 也称为密码校验和 密码校验和。 值,也称为密码校验和。 此时需要通信双方A和 共享一密钥 共享一密钥K。 此时需要通信双方 和B共享一密钥 。设A欲发 欲发 送给B的消息是 的消息是M, 首先计算 首先计算MAC=CK(M),其 送给 的消息是 ,A首先计算 , 是密钥控制的公开函数, 中CK(·)是密钥控制的公开函数,然后向 发送 是密钥控制的公开函数 然后向B发送 M‖MAC,B收到后做与 相同的计算,求得一新 收到后做与A相同的计算 ‖ , 收到后做与 相同的计算, MAC,并与收到的 做比较, ,并与收到的MAC做比较,如图 做比较 如图6.1(a)所示 所示
(1)信息加密函数作认证 )
信息加密函数分二种, 信息加密函数分二种,一种是常规的对称密钥 加密函数,另一种是公开密钥的双密钥加密函数。 加密函数,另一种是公开密钥的双密钥加密函数。 下图的通信双方是:用户A为发信方 用户B为接 为发信方, 下图的通信双方是:用户 为发信方,用户 为接 收方。用户B接收到信息后 接收到信息后, 收方。用户 接收到信息后,通过解密来判决信 息是否来自A,信息是否是完整的,有无窜扰。 息是否来自 ,信息是否是完整的,有无窜扰。
Message Authentication:消息认证(报文鉴别, :消息认证(报文鉴别, 消息鉴别) 消息鉴别) – Message:消息、报文。 :消息、报文。 – Authentication: 鉴别、认证。 : 鉴别、认证。 认证: 认证:消息的接收者对消息进行的验证 真实性:消息确实来自于其真正的发送者, 真实性:消息确实来自于其真正的发送者, 而非假冒; 而非假冒; 完整性:消息的内容没有被篡改。 完整性:消息的内容没有被篡改。 信息的序号和时间 是一个证实收到的消息来自可信的源点且未被篡 改的过程。 改的过程。它也可以验证消息的顺序和及时性
2
认证函数
可用来做消息认证的函数分为三类 信息加密函数(Message (1) 信息加密函数(Message encryption) 用完整信息的密文作为对信息的认证 消息认证码MAC(Message (2) 消息认证码MAC(Message Authentication Code) 是对信源消息的一个编码函数 散列函数(Hash (3) 散列函数(Hash Function) 是一个公开的函数 它将任意长的信息映射成 一 个固定长度的信息
杂凑函数的目的是为需认证的数据产生一个“指纹” 杂凑函数的目的是为需认证的数据产生一个“指纹” 为了能够实现对数据的认证, 。为了能够实现对数据的认证,杂凑函数应满足以下 条件: 条件: ① 函数的输入可以是任意长。 函数的输入可以是任意长。 ② 函数的输出是固定长。 函数的输出是固定长。 已知x H(x)较为容易 可用硬件或软件实现。 较为容易, ③ 已知x,求H(x)较为容易,可用硬件或软件实现。 已知h 求使得H(x)=h H(x)=h的 在计算上是不可行的, ④ 已知h,求使得H(x)=h的x在计算上是不可行的, 这一性质称为函数的单向性, H(x)为单向杂凑函数 这一性质称为函数的单向性,称H(x)为单向杂凑函数 。
公开密钥加密与认证的关系
A->B: E(KUb,M)
– –
提供保密(仅 能解密 能解密) 提供保密 仅B能解密 不提供认证 提供认证和签名(仅有 可加密 需要某种结构和冗余, 提供认证和签名 仅有A可加密 需要某种结构和冗余 仅有 可加密,需要某种结构和冗余 任何一方均能验证签名) 任何一方均能验证签名 可提供保密 可提供认证和签名
第五章 消息认证与散列函数
消息认证
章曾介绍过电子商务安全所面临的基本攻击类型, 第1章曾介绍过电子商务安全所面临的基本攻击类型, 章曾介绍过电子商务安全所面临的基本攻击类型 包括被动攻击 窃听、业务流分析) 主动攻击( 被动攻击( 包括被动攻击(窃听、业务流分析)和主动攻击(假 重放、消息的篡改、业务拒绝)。 )。抗击被动攻击 冒、重放、消息的篡改、业务拒绝)。抗击被动攻击 的方法是前面已介绍过的加密 本章介绍的消息认证 加密, 的方法是前面已介绍过的加密,本章介绍的消息认证 则是用来抗击主动攻击的 则是用来抗击主动攻击的。 消息认证是一个过程,用以验证接收消息的真实性 消息认证是一个过程,用以验证接收消息的真实性 的确是由它所声称的实体发来的) 完整性( (的确是由它所声称的实体发来的)和完整性(未被 篡改、插入、删除),同时还用于验证消息的顺序性 ),同时还用于验证消息的 篡改、插入、删除),同时还用于验证消息的顺序性 时间性(未重排、重放、延迟)。 和时间性(未重排、重放、延迟)。 除此之外,在考虑信息安全时还需考虑业务的不可 除此之外,在考虑信息安全时还需考虑业务的不可 否认性, 否认性,即防止通信双方中的某一方对所传输消息的 否认。实现消息的不可否认性可通过数字签名 数字签名, 否认。实现消息的不可否认性可通过数字签名,数字 签名也是一种认证技术, 签名也是一种认证技术,它也可用于抗击主动攻击
A->B: E(KRa,M)
–
A->B: E(KUb,E(KRa, M))
– –
M A方 方 D KRb
E KRa EkRa(M)
EkRa(M)
E KUb
EKUb(EkRa(M))