第四章 数字签名与认证技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14:04:11
4.1
数字签名的概念与原理
数字签名的概念
数字签名的原理
14:04:11
数字签名的原理 原理 数字签名就是用私有密钥进行加密,而 认证就是利用公开密钥进行正确的解密。数 字签名的原理如图所示
14:04:11
数字签名的原理
它是一个概率多项式时间算法, 一个基于公钥密码学的数字签名方案被定义为 由系统或者签名者执行,该算法 一个算法三元组(Gen, Sig , Ver),方案中共有两方 以系统安全参数 1k为输入,输出 它是一个概率多项式时间算法, 密钥对( Pk,Sk),其中 参与:签名者Signer与验证者 Verifier 。 Pk称为 由签名者执行,该算法以签名秘密
首先对报文进行填充,填充方法 SHA-1算法使用了 160 比特 是:先添加一个比特 1 ,然后填充 将一个 64 比特的填充前的消 SHA-1算法具体的处理步骤 (5×32比特)的缓存来存放 足够多的比特 0,使填充后的报文 息的长度分组附加到报文后 中间以及最终结果,这 160比 的长度与 448模512同余,即为 512 面,这个 64 比特的长度被看 特被分成 5个32比特字 H0,H1, 的倍数刚好减去 64比特 作是一个无符号整数 步骤1: 附加填充比特 H2,H3,H4(SHA-1算法中每 消息开头循环地处理消息序列 个字 32比特) 步骤2: 附加长度值 分组,直至消息的结尾。每一 次循环都以当前处理的512比 步骤3: 初始化MD缓存 特分组和MD缓存H0,H1,H2, H3,H4作为输入。 在最后一个消息分组处理完 步骤4: 以512比特(16个字)分组处理消息 毕后,MD缓存(H0,H1,H2, H3,H4)中的值即为算法输 步骤5: 输出 出的160比特报文摘要
14:04:11
消息认证
基于密钥哈希函数的MAC
基于密钥哈希函数的MAC的形式如下。
MAC=H(k‖M)
使用哈希函数构造的MAC,称为HMAC
HMAC= H (k‖M‖k)
14:04:11
消息认证
基于分组加密算法的MAC 令ek(m)表示输入消息为m,密钥为k的分组密 码加密算法。为了认证消息M,发送者首先对M进 行分组: M=m1 m2 „ml 其中,每一个子消息组mi(i=1,2,„,l)的长度 都等于分组加密算法输入的长度。如果最后一个 子消息组ml长度小于分组长度,就必须对其填充 一些随机值。设C0=IV为随机初始向量。现在, 发送者用CBC加密: Ci k (mi Ci 1 ) i 1, 2,, l 14:04:11
14:04:11
4.1
数字签名的概念与原理
数字签名的概念
源自文库
数字签名的原理
14:04:11
数字签名的概念
概念
数字签名是以密码学的方法对数据文件作 用产生的一组代表签名者身份与数据完整性 的数据信息,通常附加在数据文件的后面。 数据文件的接收者可以利用签名者的公钥作 用于数字签名上,以验证数据文件的真实性、 完整性。
第四章
数字签名与认证技术
在网络环境下,数字签名与认证技术是信 息完整性和不可否认性的重要保障,是公钥密 码体制的重要应用。信息的发送方可以对电子 文档生成数字签名,信息的接收方则在收到文 档及其数字签名后,可以验证数字签名的真实 性。身份认证则是基于数字签名技术为网络世 界中实体的身份提供可验证性。
H(·):{0,1}*→{0,1}l
14:04:11
哈希函数的性质
定义
哈希函数H(·):{0,1}*→{0,1}l称为具有单向性,是指
1)任意给定M∈{0,1}*,可以很容易(多 项式时间内)地计算出消息摘要 H(M)∈{0,1}l。 2)任意给定H(M)∈{0,1}l,求出 M∈{0,1}*,在计算上困难的,即多项式时 间内不可解。
4.3
数字签名体制
RSA数字签名体制 ELGamal数字签名体制
数字签名标准DSS
14:04:11
RSA数字签名体制
算法 RSA签名体制。 密钥建立:密钥建立过程和 RSA 密码系统的密钥建立过程相 同。经过密钥建立过程,用户 Alice 的公钥为 (N,e) ,其中 N=pq , p 和 q 是 两 个 长 度 差 不 多 的 大 素 数 , e 是 满 足 gcd(e,f(N))=1 的 整 数 。 Alice 的 私 钥 为 d , 满 足 ed=1mod(f(N))。 签 名 生 成 : 为 了 生 成 消 息 的 签 名 , Alice 计 算 s=Signd(m)←md(mod N),即得到消息签名对(m,s)。 签名验证:设 Bob 是验证者,他知道公钥 (N,e) 属于 Alice 。 给 定 一 个 消 息 - 签 名 对 (m,s) , Bob 的 验 证 过 程 为 测 试 m≡se(mod N),如果成立,则Verify(N,e)(m,s)=True。
14:04:11
安全哈希函数(SHA)
对于步骤4的每一次循环又可分为三个阶段 把H0,H1,H2,H3,H4分别 复制到中间变量A,B,C,D, E中,阶段2的所有操作都将 在中间变量A,B,C,D,E 阶段1:复制中间变量 SHA-1每一个主循环压缩 上进行 函数F共包括80个操作, 每个操作中都使用了一 阶段2:执行压缩函数F 个非线性函数。 阶段3:更新MD缓存H0,H1,H2,H3,H4
1
3.验证签名 设Bob为验证方,他知道公开参数(g, p)以及Alice的公钥yA。对于消息签名 对(m,(r,s)),Bob执行验证过程。 1)预查合法性 如果1≢r≢p-1,继续,否则签名是不合法的。 r s 2)计算 v1 : v1 yA r mod p m 3) 计算 v2 :v2 g mod p 4)比较 v 和 v2 :如果v1 v2 ,表示签名有效;否则签名无效
14:04:11
4.2 消息认证与哈希函数
哈希函数的性质 哈希函数的结构
安全哈希函数(SHA)
消息认证
14:04:11
哈希函数的结构
由Merkle提出的迭代哈希函数一般结构如图 所示,这也是目前大多数哈希函数(MD5、SHA-1、 RIPEMD)的结构。其中,IV称为初始向量,CV称 为链接变量,Yi是第i+1个输入消息分组,f称为 压缩函数,L为输入的分组数,l为哈希函数的输 出长度,b为输入分组长度。
哈希函数的性质
定义
哈希函数H(·):{0,1}*→{0,1}l称为具有抗 碰撞性(Collision Resistant),是指求出 任意M,M′∈{0,1}*,且M′≠M,使得 H(M′)=H(M)是困难的。 由上面的四个定义可以知道,哈希函数 应该具有单向性、抗原像性、抗第二原像性 以及抗碰撞性。
在所有80个操作完成后,算 法的下列步骤更新MD缓存
14:04:11
安全哈希函数(SHA)
【例】 SHA-1算法举例。
字符串“abc”的二进制表示为01100001 01100010 01100011,长度为24比特,则按照SHA-1的填充要求,应填充1个“1”和423个 “0”,最后有两个字为“0000000000000018”,表明原始消息的长度为24比特。 这样,这个输入只有一个512比特的分组。五个寄存器取如下的初始值: A=67452301 B=EFCDAB89 C=98BADCFE D=10325476 E=C3D2E1F0 消息分组的所有字取上述经过填充后的512比特分组,即: W[0]=61626380H(01100001 01100010 01100011 10000000 ), W[1]=W[2]=„W[14]=00000000H,W[15]= 00000018H。 在经过80步循环后,五个寄存器中的值分别如下: A=A9993E36 B=4706816A C=BA3E2571 D=7850C26C E=9CD0D89D 五个寄存器的值顺序排列,即得到消息“abc”的哈希函数 值
14:04:11
第四章
数字签名与认证技术
本章内容提要:
数字签名的概念与原理
消息认证与哈希函数
数字签名体制
身份认证技术 认证技术应用案例 认证技术的发展趋势
14:04:11
4.1
数字签名的概念与原理
数字签名是密码学和信息安全中最重要 和最有用的概念之一。它的诞生使得在网络 环境下,任一实体(组织或者个人)对在网 络上传输的电子文件进行签名成为可能。任 何得到该签名的实体可以对签名的有效性进 行验证。
14:04:11
4.2
消息认证与哈希函数
哈希函数的性质 哈希函数的结构
安全哈希函数(SHA)
消息认证
14:04:11
消息认证
消息认证
消息认证是使消息的接收者能够检验收到的消息是否是真实的认证方法 消息认证的目的有两个:其一是消息源的认证,即验证消息的来源是真实的;其 二是消息的认证,即验证信息在传送过程中未被篡改。 1)消息认证码MAC(Message Authentication Code):是以 消息和密钥作为输入的公开函数,可以生成定长的输出。该方法 需要在信息的发送方和接收方之间共享密钥。 2)哈希函数:是不带密钥的公开函数,它将任意长度的输入 消息映射为固定长度的输出值。哈希函数与数字签名算法相结合, 提供对于消息的完整性检验。
(3)用户公钥参数 计算y≡gx mod p作为用户的公钥。 由此设用户Alice的公私钥对为(xA,yA),yA公开,而xA保密。
14:04:11
RSA数字签名体制
2.生成签名 Alice欲生成对消息m的签名,则执行如下的签名过程: 1)随机选择k, k Z p ,并要求gcd(k,p-1)=1。 2)计算签名:r←gk mod p。 v 3)计算签名: s←k-1(m-xAr)mod(p-1)。 : 得到消息签名对为(m,(r,s))。
14:04:11
4.2 消息认证与哈希函数
哈希函数的性质 哈希函数的结构
安全哈希函数(SHA)
消息认证
14:04:11
安全哈希函数(SHA)
安全哈希函数(SHA)
由美国国家标准和技术协会 (NIST)提出的,于1993年作为 美国联邦消息处理标准(FIPS PUB 180)公布。1995年NIST发 布了它的修订版(FIPS 180-1), 通常称为SHA-1
14:04:11
4.3
数字签名体制
RSA数字签名体制 ELGamal数字签名体制
数字签名标准DSS
14:04:11
RSA数字签名体制
算法 1.参数生成 (1)公开参数 设p是一个大素数,并确保在Zp中求解离散对数在计算上是困难问题;g是Zp中 乘法群 Z p 的一个生成元,或称为本原元素。 (2)用户私钥参数 选定一个随机的x, Z ,作为用户的私钥。 p
密钥生成算法Gen
签名生成算法Sig
签名者公开密钥, Sk为签名者秘 它是一个确定性算法,由验证者执 密钥 Sk,待签名消息 m∈{0,1}k为输 k 密钥;即 Gen(1 )→(Pk, Sk)。 行,该算法以签名公开密钥 ,签名 入,输出一个串s。此时称sPk 为签名 消息对(m, s)为输入,输出 0所做的 或1,即 者以签名秘密密钥 Sk对消息m Ver (Pk,m, s)→{0,1},如果 签名,即 Sig (Sk,m)→s。 s∈Sig(m),则输出1说明签名有效; 反之输出0,则说明签名无效
14:04:11
哈希函数的性质
定义 哈希函数H(·):{0,1}*→{0,1}l称为具有抗 第二原像性(Second Preimage Resistant), 是指任意给定M∈{0,1}*及其信息摘要H(M),求 出M′∈{0,1}*且M′≠M,使得H(M′)=H(M)是 困难的。
14:04:11
签名验证算法Ver
14:04:11
4.2
消息认证与哈希函数
哈希函数的性质 哈希函数的结构
安全哈希函数(SHA)
消息认证
14:04:11
哈希函数的性质
定义
哈希(Hash)函数是一个输入为任意长的二元 串,输出为固定长度的二元串的函数。一般用 H(·)表示哈希函数,若输出是长度为l的二元串, 哈希函数表示为: