现代密码学第八讲:数字签名

合集下载

数字签名

数字签名

数字签名一.基本理论数字签名(又称工钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。

一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。

数字签字由公钥密码发展而来,它在网络安全,包括身份认证、数据完整性、不可否认性以及匿名性等方面有着重要应用。

特别是在大型网络安全通信中的密钥分配、认证以及电子商务系统中都有重要的作用,数字签名的安全性日益受到高度重视。

数字签名的实现通常采用非对称密码体系。

与对称密码体系不同的是,非对称密码体系的加密和解密过程分别通过两个不同的密钥来实现,其中一个密钥以公开,称为公开密钥,简称公钥,另一个有用户自己秘密保管,称为保密密钥,简称私钥。

只有相应的公钥能够对用私钥加密的信息进行解密,反之亦然。

以现在的计算机运算能力,从一把密钥推算出另一把密钥是不大可能的。

所以,数字签名具有很大的安全性,这是它的一个优点。

数字签名的基本方式主要是:信息发送方首先通过运行散列函数生成一个欲发送报文的信息摘要,然后用其私钥对这个信息摘要进行加密以形成发送方的数列签名,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。

接收方在收到信息后首先运行和发送相同的散列函数生成接收报文的信息摘要,然后再用发送方的公钥进行解密,产生原始报文的信息摘要,通过比较两个信息摘要是否相同就可以确认发送方和报文的准确性。

当然,上述过程只是对报文进行了签名,对其传送的报文本身并未保密。

为了同时实现数字签名和秘密通信,发送者可以用接收方的公钥对发送的信息进行加密,这样,只有接收方才能通过自己的私钥对报文进行接么,其它人即使获得报文并知道发送者的身份,由于没有接收方的密钥也无法理解报文。

公钥加密、认证和签字流程图:二.数字签名的优点1.很大的安全性:表现在(1)鉴权公钥加密系统允许任何人在发送信息时使用公钥进行加密,数字签名能够让信息接收者确认发送者的身份。

密码学第八讲:数字签名

密码学第八讲:数字签名


手写签名不易复制;数字签名是一个二进制信息,十分容易复制,所 以必须防止数字签名重复使用。
2
数字签名的基本概念
数字签名技术则可有效解决这一问题, 类似于手书签名,数 字签名应具有以下性质: ① 能够验证签名产生者的身份,以及产生签名的日期和时 间. ② 能保证被签消息的内容的完整性. ③ 数字签名可由第三方公开验证,从而能够解决通信双方 的上述争议. 数字签名在网络安全中提供数据完整性、数据源认证性、 数据不可否认性等性质
群签名就是一个群体中一个成员可以以匿名的方式 代表整个群体对消息进行签名,一旦发生争论,从 消息的群签名中权威者(组长)可以辨别签名者。 在实际中有广泛的应用。 特点 匿名性 可跟踪性
盲签名


盲数字签名是一种特殊的数字签名,当用户A发 送消息m给签名者B时,一方面要求B对消息签名, 另一方面又不让B知道消息的内容,也就是签名 者B所签的消息是经过盲化处理的。 盲签名除具有一般数字签名的特点外,还有下面 两个特征:
现争议时,第三方可解决争端.
4
数字签名的攻击:
惟密钥攻击:攻击者只有用户公开的密钥. 已知消息攻击:攻击者拥有一些消息的合法签名,但 是消息不由他选择. 选择消息攻击:攻击者可以自由选择消息并获取消息 的签名. 攻击结果: 完全破译:攻击者恢复出用户的密钥. 一致伪造:攻击者对于任意消息可以伪造其签名. 选择性伪造:攻击者可以对一个自己选取的消息伪造 签名. 存在性伪造:攻击者可以生成一些消息的签名,但在 伪造前对该消息一无所知.
Figure 13.2 Adding key to the digital signature process
Note A digital signature needs a public-key system. The signer signs with her private key; the verifier verifies with the signer’s public key.

杨波, 《现代密码学(第2版)》07

杨波, 《现代密码学(第2版)》07

由加密算法产生数字签字又分为外部保密方式 加密算法产生数字签字又分为外部保密方式 产生数字签字又分为 内部保密方式,外部保密方式是指数字签字是直 和内部保密方式,外部保密方式是指数字签字是直 接对需要签字的消息生成而不是对已加密的消息生 否则称为内部保密方式. 成,否则称为内部保密方式. 外部保密方式便于解决争议,因为第3方在处 外部保密方式便于解决争议,因为第 方在处 理争议时,需得到明文消息及其签字. 理争议时,需得到明文消息及其签字.但如果采用 内部保密方式, 内部保密方式,第3方必须得到消息的解密密钥后 方必须得到消息的解密密钥后 才能得到明文消息.如果采用外部保密方式, 才能得到明文消息.如果采用外部保密方式,接收 方就可将明文消息及其数字签字存储下来以备以后 万一出现争议时使用. 万一出现争议时使用.
由此可见,数字签字具有认证功能. 由此可见,数字签字具有认证功能.为实现上 条性质, 要求: 述3条性质,数字签字应满足以下要求: 条性质 数字签字应满足以下要求 ① 签字的产生必须使用发方独有的一些信息以防 伪造和否认. 伪造和否认. 签字的产生应较为容易. ② 签字的产生应较为容易. 签字的识别和验证应较为容易. ③ 签字的识别和验证应较为容易. ④ 对已知的数字签字构造一新的消息或对已知的 消息构造一假冒的数字签字在计算上都是不可行的. 消息构造一假冒的数字签字在计算上都是不可行的.
因此, 因此,在收发双方未建立起完全的信任关系且存在 利害冲突的情况下,单纯的消息认证就显得不够. 利害冲突的情况下,单纯的消息认证就显得不够. 数字签字技术则可有效解决这一问题. 数字签字技术则可有效解决这一问题. 类似于手书签字,数字签字应具有以下性质: 类似于手书签字,数字签字应具有以下性质: 应具有以下性质 能够验证签字产生者的身份, ① 能够验证签字产生者的身份,以及产生签字的 日期和时间. 日期和时间. 能用于证实被签消息的内容. ② 能用于证实被签消息的内容. 数字签字可由第三方验证, ③ 数字签字可由第三方验证,从而能够解决通信 双方的争议. 双方的争议.

现代密码学和应用 ——数字签名-精品文档

现代密码学和应用 ——数字签名-精品文档

2019/2/21
13
签名方案的攻击类型
• 敌手的目标是:伪造签名
① 完全攻克:敌手能计算出私钥 ② 选择性伪造:敌手能对一个特殊的消息或 者预先选定的一类消息构造出正确的签名 ③ 存在性伪造:敌手能伪造至少一个消息的 签名,但敌手对被伪造签名所对应的消息 几乎没有控制能力
2019/2/21 14
–数字签名的签名过程 –数字签名的验证过程:不需要签名者的秘密知 识 (任何人都可验证真伪)
2019/2/21 5
数字签名的特点
① 签名是可信( 真实)的: 任何人都可以方便的验证 签名的有效性. ② 签名是不可伪造的:除了合法的签名者外,任何其 它人伪造签名是困难的,这种困难性指计算上是 不可行的。 ③ 签名是不可抵赖的:签名者不能否认自己的签名。 ④ 签名是不可复制的:如果签名是从别的地方复制 的,任何人都可发现消息与签名的不一致,从而 拒绝签名。 ⑤ 签名的消息是不可修改的
二、RSA和相关签名方案
• • • • •
RSA签名方案 有关RSA签名的可能攻击 实际中的RSA签名 ISO/IEC 9796规范 PKCS #1规范
2019/2/21
16
• RSA是以它的三个发明者Ron Rivest,Adi Shamir和Leoard Adleman的名字命名。 • RSA算法既可以用于加密,也可以用于数 字签名。 • RSA的安全性基于大数分解的困难性,该 算法已经经受住了多年深入的密码分析, 密码分析者既不能证明也不能否认RSA的 安全性,这恰恰说明该算法有一定的可信 度。
–DSA、ElGamal和Schnorr签名方案 –消息可以是任意长度
• 带消息恢复的数字签名方案:消息可从签 名自身恢复,不要求初始消息M作为验证算 法的输入

《现代密码学》教学大纲

《现代密码学》教学大纲

H
的复杂工程问题;
3.2 能够设计满足信息获取、传输、处理或使用等需求的系统,并能够 L
在设计环节中体现创新意识;
3.4 熟悉信息安全专业相关技术标准、知识产权、产业政策和法规,并
能在其现实约束条件下,通过技术经济评价对设计方案进行可行性研
M
究;
2.1 能够应用信息安全的基本原理,研究分析信息安全领域复杂工程问
6.4 消息认证
6.5 生日攻击
第 7 章 公钥密码体制(支撑教学目标 6)
7.1 公钥密码体制的基本概念
7.2 RSA 算法
7.3 椭圆曲线加密算法
第 8 章 数字签名技术(支撑教学目标 6)
8.1 数字签名简介
8.2 基于 RSA 数字签名
8.3 基于 ECC 数字签名
第 10 章 密钥管理(支撑教学目标 6)
闭卷笔试,课程作业、实验成绩、课堂表现、考勤。
七、成绩评定方法
期末笔试成绩占 80%,平时成绩占 20%(根据课程作业、实验成绩、课堂表现、 考勤等代密码学教程. 北京邮电大学出版社,2015.3 (教材)。
2.B. Schneier. Applied cryptograghy second edition: protocols, algorithms, and source code in C. NewYork: John Wiley & Sons, 1996. 中译本: 吴世忠, 祝世雄, 张文
专业的学生实际动手能力、设计能力、创新能力的培养。 4.专门的课程建设网站 5.由于《现代密码学》主要是讲解算法、模型及协议,比较抽象,因此课程
组开发了一些辅助教学软件(见课程建设网站),用以提高教学效果。
6.下一步拟在专门的课程建设网站中开发《现代密码学》课程教学的师生互 动、答疑模块。

密码学第八讲:数字签名(1)

密码学第八讲:数字签名(1)
签名. 存在性伪造:攻击者可以生成一些消息的签名,但在
伪造前对该消息一无所知.
5
数字签名的基本原理
发方A
消息
收方B
Hash函数 消息摘要 加密算法
消息 签名
A的私钥
公开信道
消息
签名
解加密密算算法法
A的公钥
Hash函数
消息摘要
相等


签名有效
签名无效
13-2 Continued
Figure 13.1 Digital signature process
21
数字签名标准DSS
数字签名标准(Digital Signature Standard,简称DSS)
规定了用于产生与证实一个数字签名的一 整套算法
包括数字签名和消息鉴别两部分功能
不能提供保密功能
DSS的数字签名算法DSA -1
发送方确定全局公开密钥KUG:p, q, g
素数p,素数q是p-1的因子 g=h(p-1)/q mod q, h是整数
Figure 13.7 RSA digital signature scheme
13.13
13.5.1 Continued
RSA Signature on the Message Digest
Figure 13.8 The RSA signature on the message digest
13.14
手写签名不易复制;数字签名是一个二进制信息,十分容易复制,所 以必须防止数字签名重复使用。
2
数字签名的基本概念
数字签名技术则可有效解决这一问题, 类似于手书签名,数 字签名应具有以下性质: ① 能够验证签名产生者的身份,以及产生签名的日期和时 间. ② 能保证被签消息的内容的完整性. ③ 数字签名可由第三方公开验证,从而能够解决通信双方 的上述争议. 数字签名在网络安全中提供数据完整性、数据源认证性、 数据不可否认性等性质

《现代密码学》教学大纲

《现代密码学》教学大纲

动、答疑模块。
六、考核方式
闭卷笔试,课程作业、实验成绩、课堂表现、考勤。
七、成绩评定方法
期末笔试成绩占 80%,平时成绩占 20%(根据课程作业、实验成绩、课堂表现、
考勤等)。
八、主要参考书籍
1.谷利泽,郑世慧,杨义先. 现代密码学教程. 北京邮电大学出版社,2015.3
(教材)。
2.B. Schneier. Applied cryptograghy second edition: protocols, algorithms, and
题;
1.2 具有扎实的专业基础理论,包括信息论与编码、密码学原理、信息
目标 5 安全数学基础、计算机网络技术等,能够用其解决信息安全相关领域
H
的复杂工程问题;
4.5 能正确采集、整理实验和模拟数据,对实验及模拟结果进行关联、 M
建模、分析处理,获取果进行关联、 H
source code in C. NewYork: John Wiley & Sons, 1996. 中译本: 吴世忠, 祝世雄, 张文
政译。
3.马春光. 现代密码学教程, 哈尔滨工程大学自编讲义。
大纲编写者:方贤进,xjfang@, /~xjfang/crypto/
一、教学目标
通过本课程的理论教学及实验训练,使学生具备以下知识和能力:
目标 1:掌握密码学与信息安全的关系、信息安全的目标(5 要素);掌握现代
密码学的研究内容与体系结构;掌握保密系统的模型及安全性、认证系统的模型及
安全性。
目标 2:掌握古典密码体制中的两种方法:置换密码与代换密码;掌握古典密
码分析方法,能使用“拟重合指数法”对“多表代换加密”实行“唯密文攻击”。

现代密码学

现代密码学

摘要数字签名是现代密码学的主要研究课题之一,它是实现认证的重要工具,保证了数据的可靠性。

数字签名在金融、商业、军事等领域,尤其是在电子支票、电子邮件、电子贸易、电子购物、数据交换、电子出版以及知识产权保护等方面有着重要作用。

近些年来随着对数字签名的不断深入研究,产生了许多特殊的数字签名,例如盲签名、群签名、代理签名、多重签名、前向安全签名。

正是由于特殊数字签名具有的独特功能和实际用途,在一些特殊行业有广泛应用,特别是在数据完整性检验、身份证明、身份鉴别和防否认等方面功能独特。

关键词:盲签名1 盲签名的研究现状盲签名是一种特殊的数字签名,其特殊性体现在签名者并不知道签署的内容,即便签名者知道了签名与消息对,也无法将它们联系起来。

因此,盲签名技术应用广泛,尤其是电子投票和电子货币系统等。

盲签名的概念首先被David Chaum提出来,Chaum给出了一个基于RSA的盲签名方案,此后人们分别基于因子分解问题、离散对数问题、二次剩余问题等提出各种盲签名方案。

1992年,Okamoto基于Schnorr签名体制提出了第一个基于离散对数问题的盲签名方案[2]。

1994年,Camenisch等提出了基于离散对数的两个离散方案。

第一个方案是由DSA变形得出,第二个方案建立在Nyberg-Ruep pel签名体制之上。

1996年,Fan等基于二次剩余方根的难解性提出了一个盲签名方案,之后两年,Fan又提出一个部分盲签名方案,可以减少电子现金系统的计算量。

同年再次提出可以增强计算效率的一个盲签名方案。

2000年,姚亦峰等以Harn和Xu提出的十八种安全广义ElGamal型数字签名方案为基础,利用二元仿射变换,通过分析得到其中十二种方案是强盲签名方案。

2001年,Ch-ien 等根据RSA公钥密码系统提出一个部分盲签名方案,它能减少数据库的大小以及避免电子现金的重复花费。

2002年,黄少寅等基于Schnorr体制提出了一个必须经过多人同时盲签名才可生效的新方案,可以方便应用在电子现金需银行多个部门同时进行盲签名才可生效的情形中。

现代密码学第8章:数字签名

现代密码学第8章:数字签名

4
数字签名应满足的要求
① B伪造一个消息并使用与A共享的密 钥产生该消息的认证码,然后声称该消息来 自于A。 ② 由于B有可能伪造A发来的消息,所以 A就可以对自己发过的消息予以否认。 这两种欺骗在实际的网络安全应用中都 有可能发生,例如在电子资金传输中,收方 增加收到的资金数,并声称这一数目来自发 方。又如用户通过电子邮件向其证券经纪人 发送对某笔业务的指令,以后这笔业务赔钱 了,用户就可否认曾发送过相应的指令。
以上过程中,由于Y不知KXA,因此不能直接检查X的 签名,但Y认为消息来自于A因而是可信的。 所以在整个过程中,A必须取得X和Y的高度信任: X相信A不会泄露KXA,并且不会伪造X的签名; Y相信A只有在对EKAY[IDX‖M‖EKXA[IDX‖H(M)]‖T]中 的杂凑值及X的签名验证无误后才将之发给Y; X,Y都相信A可公正地解决争议。 如果A已取得各方的信任,则X就能相信没有人能伪造 自己的签名,Y就可相信X不能对自己的签名予以否认。
30
2.1 DSS的基本方式
首先将DSS与RSA的签名方式做一比较。 RSA算法既能用于加密和签名,又能用于密 钥交换。与此不同,DSS使用的算法只能提 供数字签名功能。图2用于比较RSA签名和 DSS签名的不同方式。
31
RSA 签名



5
数字签名应满足的要求
因此在收发双方未建立起完全的信任关 系且存在利害冲突的情况下,单纯的消息认 证就显得不够。数字签名技术则可有效解决 这一问题。类似于手书签名,数字签名应具 有以下性质: ① 能够验证签名产生者的身份,以及产生签 名的日期和时间。 ② 能用于证实被签消息的内容。 ③ 数字签名可由第三方验证,从而能够解决 通信双方的争议。

08现代密码学之基于双线性对及身份的数字签名

08现代密码学之基于双线性对及身份的数字签名
第八部分
基于双线性对和基于身份的数字签名
主要内容 一、基于双线性对的数字签名方案 二、基于身份的数字签名方案 三、签密方案
4.5 基于双线性对的证书签名方案
一、双线性对及有关难题
定义1(非对称双线性对): 设k为安全参数,p是一个素数,满足2k<p≤2k+1。
G1和G2为两个具有相同阶p的加法群,GT为一个阶为p的乘 法群,令P和Q分别为G1和G2的生成元。
该签名方案的签名长度大约为160比特。设G1为由P生 成的循环加法群,其阶为q,G2为具有相同阶q的循环 乘法群,e:G1×G1→G2为一个双线性映射。定义一 个安全的杂凑函数H:{0,1}*→G1*。系统参数为 {G1,G2,q,e,P,H}。
(1)密钥生成(Key Generation):签名用户随机选 取x∈Zq*,作为私钥,并计算Y=xP作为公钥。
计算的耗时如下: (1)对运算:47.40ms (2)标量乘运算:6.83ms (3)点加运算:0.06ms 因此,一个基于双线性对设计的密码体制中,
对运算的次数是衡量该体制的一个重要指标。
4.5.2 签名方案
两个利用双线性对实现的基于公钥证书的签名方案。
一、Boneh-Lynn-Shacham短签名方案
e(U,V)。
如果e存在,则(G1,G2)称为对称双线性映射群。 对称双线性对服从交换律,即对任意U,V∈G1,有
e(U,V)=e(V,U)。
这种映射可以通过有限域上的超奇异椭圆曲线或超 奇异超椭圆曲线中的Weil对或Tate对推导出来。
非对称双线性对与对称双线性对相比,前者在相同 安全条件下群的规模可以更小,因而更适用于带宽 受限的方案设计中。
计算
abP∈G1, 这里a,b∈Zq*是未知的整数。

06现代密码学之数字签名

06现代密码学之数字签名

6.2 ElGamal签名方案
ElGamal签名方案是由T.ElGamal于1984年提出 的,其安全性是基于有限域上离散对数问题的 难解性。
6.2.1 ElGamal签名方案描述 (1)密钥生成 选取大素数p,g∈ZP*是一个本原元,P和g公开。
随机选取整数x,1≤x≤p-2,计算 y=gx modp
(3)A计算y=ud modN,发送给C;
(4)C收到y后,计算yr-1 modN ,即得到明文m。
实际上, yr-1=(ud)r-1=((cre)d)r-1=m
这说明在应用RSA进行签名时,不要直接对消息进 行签名。一般说来,要先对消息进行杂凑,然后再 签名。
6.1.3 RSA数字签名与加密的结合
该攻击方法称为伪装攻击。
6.1.3 RSA数字签名与加密的结合
RSA签名并加密方案的计算中出现两次取不同 模的过程,为了保证脱密和验证过程的进行, 需要求nB>nA。因此就要为每个用户生成两个公 私钥对,分别用于加脱密和签名验证,并且用 于签名的模数的位数小于用于加脱密的模数的 位数。
这种解决方式符合密钥管理对加密密钥与签名 密钥分离的要求。目前的PKI系统大都遵守这 种密钥管理的要求。
RSA密码体制实现签名与加密的结合,具体为:
z=(xdAmodnA)eBmodnB 上式所采取的是先签名后加密的顺序,这一点十
分重要。实际上,如果A向B发送
z=(xeBmodnB)dAmodnA 攻击者C截获z,并计算zeAmodnA,得到xeBmodnB,
继而计算
(xeBmodnB)dCmodnC=z’ 并将z’发送给B。 这样B就会认为自己收到了用户C的签名消息。
所以Bob可以确认(r,s)=(6,3)是Alice对消息m=5的有效签 名。

数字签名的基本原理

数字签名的基本原理

数字签名的基本原理
数字签名的基本原理
数字签名是一种防止通信中信息被伪造的加密技术,它可以确保报文的完整性和防止伪造或篡改信息。

简单来说,数字签名是一种验证用户的身份的方式,可用于识别和认证一个用户对数据的身份。

它使用非对称加密算法,将用户的证书或个人信息以及文档分组在一起,并将文档的独特特征和编码保存下来,以确保报文是由恰当的用户发出的。

数字签名的基本原理是,用户可以通过加密和解密特定消息校验报文信息的完整性,并可以确定报文是否被篡改。

此时,签名者可以通过计算一个哈希值来实现这种加密。

这个哈希值是一个散列码,它是由一组特定的字符组成的一串字符串。

它可以通过对消息的特定部分进行加密来计算出来,它可以很好地验证签名者的身份。

另外,数字签名还可以使用多种数字加密算法,以确保报文被安全地传输,这些算法可以帮助签名者或签收者的身份验证加密报文传递的安全性。

这些算法使用公开密钥和私有密钥,一般用于签名者和证书认证机构,然后根据需要进行加密或解密。

总而言之,数字签名是一种常用的加密技术,它可以帮助实现安全传输,这是一种验证报文的完整性,用来识别和认证一个用户对数据的身份。

此外,它还可以使用多种数字加密算法来计算哈希值,以及使用公开密钥和私有密钥来实现更安全的报文传输。

- 1 -。

(现代密码学课件)07数字签名

(现代密码学课件)07数字签名

23
数字签字算法DSA
(e) 签字过程:对消息M,其签字为S=Sigk(M, k)=(r, s), r (gk mod p) mod q s [k-1 (H(M)+xr)] mod q
(f) 验证过程:计算 w = s-1 mod q ; u1 =[H(M)w] mod q ; u2 = rw mod q s)=真 v = r
c
H(m) 1 1 1 1
27
离散对数签字体制
签字验证过程
V(y e ,(r,r s)m ,) Tu r r a e g b y c(m p )od
28
Elgamal签字体制
离散对数签字体制的特例 体制参数
p:一个大素数; g:是Zp中乘群Zp*的一个生成元或本原元素; M:消息空间,为Zp*; S:签字空间,为Zp*×Zp-1; x:用户秘密钥xZp*; y:用户公钥,ygx mod p p,g,y为公钥,x为秘密钥。
保密性:会话密钥应以密文传送,因此 双方应事先共享密钥或者使用公钥
实时性:防止重放
序列号方法 时戳 询问-应答
37
序列号方法
对交换的每一条消息加上序列号,序列 号正确才被接收
要求每个用户分别记录与其他每一用户 交互的序列号,增加用户负担,因而很 少使用
38
时戳法
A收到消息中包含时戳,且A看来这一时 戳充分接近自己的当前时刻,A才认为收 到的消息是新的并接收
要求各方时间同步
39
询问-应答
用户A向B发出一个一次性随机数作为询 问,如果收到B发来的应答消息也包含一 正确的一次性随机数,A就认为消息是新 的并接受之。
40
各种方法的比较
时戳法不适用于面向连接的应用过程

数字签名

数字签名

预备知识
定义:设n为一个正整数,定义 ( n ) ={ x | 0 x n 1, g cd ( x , n ) 1 } 为Euler函数。 ( n ) 为小于n且与n互素的非负整数的个数。如果p是一个素 数,则 ( p ) =p-1。 定理:如果 n 和 n 互素,则
1
1(m o d q ) ) 则 (m 即 m t ( n ) 1 jq 则存在一个整数j,使得 m t ( n ) 1 m (m o d n ) 用m=ip乘以上式两端,有 t ( n ) 1 m ijn 则 m e m 综上,( m d ) m m o d n
Hash函数简介
Hash函数又称杂凑函数,就是把任意长度的输入,通过散列算法,变 换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也 就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相 同的输出,而不可能从散列值来唯一的确定输入值。简单的说就是一种将 任意长度的消息压缩到某一固定长度的消息摘要的函数。 设计杂凑函数的基本方法有: (1)利用某些数学难题例如因子分解问题、离散对数问题等设计杂凑函数。 (2)利用某些私钥密码体制设计杂凑函数。 (3)直接设计杂凑函数。这类算法不基于任何假设和密码体制。这种方法 受到人们的广泛关注和青睐,是当今比较流行的一种设计方法。美国的安 全杂凑算法(SHA)就是这类算法,此类算法还有MD4、MD5、MD2、 HAV的实现: ⑴秘密地选取两个大素数p和q。 ⑵计算n=p*q, ( n ) ( p 1)( q 1) 。公开n,保密 ( n ) ⑶随机地选取正整数1<e< ( n ) ,满足gcd(e,( n ) )=1 e为公开的密钥。 ⑷计算d,满足d*e=1(mod ( ( n ) ))。d为保密的密钥。 d ⑸签名变换:对于消息m∈ z n ,签名为Sig(m)= m mod n。 e ⑹签名验证:对于m,s ∈ z n ,如果m= s mod n,则认为s为消息m的有 效签名。

数字签名

数字签名

数字签名
密码技术除了提供信息的加密解密外,还提供对信息来源的鉴别、保证信息的完整和不可否认等功能,而这3种功能都是结合数字签名技术来实现的。

简单地说,数字签名的原理可以这样理解用非对称算法的私钥加密的内容只能用对
应的公钥来解密,而私钥是不公开的。

因此,如果一段信息能用某个人的公钥解密,那么它一定是用此人的私钥加密的。

它和物理的签名一样,是很难伪造的。

在实际应用中,数字签名的过程通常这样实现将要传送的明文通过一种函数运算(Hash)转换成报文摘要(不同的明文对应不同的报文摘要),报文摘要用私钥加密后与明
文一起传送给接收方,接收方用发送方的公钥来解密报文摘要,再将收受的明文产生新的报文摘要与发送方的报文摘要比较,比较结果一致表示明文确实来自期望的发送方,并且未被改动.如果不一致表示明文已被篡改或不是来自期望的发送方。

数据签名的过程如
图 3.5所示。

实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSA
Data Seeurity公司的PKCS(Publie Key Cryptography Standards)、DSA(Digiral Signa-
ture Algorithm)、x.509、pGp(pretty Good privaey)。

1994年美国标准与技术协会公布
T数字签名标准(Digital Signature Standard,DSS)而使公钥加密技术广泛应用。

应用散
列算法也是实现数字签名的一种方法。

/尼采手机。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1数字签名《现代密码学》第八讲2上章内容回顾公钥密码体制的提出及分类公钥密码体制的基本概念单向陷门函数的概念设计公钥加密算法--背包密码体制RSA算法及攻击方法ElGmal算法椭圆曲线密码体制3本章主要内容数字签名的基本概念一般数字签名算法Z RSA数字签名技术Z 数字签名标准Z 基于离散对数的数字签名Z 椭圆曲线数字签名4数字签名的基本概念手写签名与数字签名的区别手写签名是一种传统的确认方式,如写信、签订协议、支付确认、批复文件等.手写签名是所签文件的物理组成部分;数字信息没有固定的物理载体,如何使数字签名与所签文件捆绑在一起?手写签名通过与标准签名比较或检查笔迹来验证,受验证人主观影响大;二进制数字信息无法用人眼辨识,但可以使用数学算法来验证数字签名,不受验证人主观影响。

手写签名不易复制;二进制数字信息,十分容易复制,所以必须防止数字签名重复使用。

5数字签名和消息认证码的异同:消息完整性验证、消息源认证.消息认证的作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造.①B伪造一个消息并使用与A共享的密钥产生该消息的认证码,然后声称该消息来自于A.②由于B有可能伪造A发来的消息,所以A就可以对自己发过的消息予以否认.数字签名的基本概念6数字签名技术则可有效解决这一问题, 类似于手书签名,数字签名应具有以下性质:①能够验证签名产生者的身份,以及产生签名的日期和时间.②能保证被签消息的内容的完整性.③数字签名可由第三方公开验证,从而能够解决通信双方的上述争议.数字签名在网络安全中提供数据完整性、数据源认证性、数据不可否认性等性质数字签名的基本概念7所谓数字签名(Digital Signature ),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法对该电子文档进行关键信息提取并与用户私有信息进行混合运算而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造.81976,W Diffie 和M Hellman 在“New Directions in Cryptography ”, 首先提出了数字签名的思想并猜测存在这样的方案1978,R Rivest, A Shamir, 和L Adleman 发明了RSA 算法可以用作数字签名算法.1984, S Goldwasser, S Micali, 和R Rivest 首次粗略提出了数字签名算法的安全性要求. 2004,中国颁布电子签章法9一般签名算法包含密钥生成(公钥/私钥)消息签名S=Sig x (M)用私钥对消息(消息摘要)进行签名运算 消息验证用公钥验证消息的签名是否正确,输出“True ”或“False ”一般数字签名算法()()(),x x x True S Sig M Ver S M False S Sig M =⎧⎪=⎨≠⎪⎩10数字签名的攻击:惟密钥攻击:攻击者只有用户公开的密钥. 已知消息攻击:攻击者拥有一些消息的合法签名,但是消息不由他选择.选择消息攻击:攻击者可以自由选择消息并获取消息的签名.攻击结果:完全破译:攻击者恢复出用户的密钥. 一致伪造:攻击者对于任意消息可以伪造其签名. 选择性伪造:攻击者可以对一个自己选取的消息伪造签名.存在性伪造:攻击者可以生成一些消息的签名,但在伪造前对该消息一无所知.数字签名的基本概念11①参数和密钥生成选两个保密的大素数p 和q ,计算n=p ×q ,φ(n)=(p-1)(q-1);选一整数e ,满足1<e<φ(n),且gcd(φ(n),e)=1;计算d ,满足d ·e ≡1 mod φ(n);以{e,n}为公开钥, {d,n}为秘密密钥.一般数字签名算法--RSA12②签名过程设消息为m ,对其签名为s ≡m d mod n③验证过程接收方在收到消息m 和签名s 后,验证是否成立,若成立,则发送方的签名有效.?mod e m s n≡一般数字签名算法--RSA13加密算法和签名算法同用,攻击者可以方便解密一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署。

然后,经过计算就可得到它所想要的信息。

解决方法:不对自己一无所知的信息签名;不对陌生人送来的随机文档签名;签名时首先使用One-Way HashFunction 对文档作HASH 处理; 同时使用不同的签名算法。

14假设Alice 用RSA 算法签署消息,其公私密钥对为(e,n ;d ).攻击如下:Bob 选取消息(m1,m2),提交给签名预示,签名预示返回这两个消息的签名(s1,s2), 其中,s1=m1d mod n; s2=m2d mod n.Bob 可以伪造消息m1*m2的签名(s1*s2) mod n, 因为s1 * s2=m1d * m2d mod n = s2=(m1 * m2)d mod n.15解决方法:实际应用时,数字签名是对消息摘要加密产生,而不是直接对消息加密产生。

②签名过程设消息为M ,对其签名为s ≡h(M)d mod n③验证过程接收方在收到消息M 和签名S 后,验证h(M)=s e mod n是否成立,若成立,则发送方的签名有效.16实例初始化:设A 选取p = 13,q = 11,e = 13,则有n = pq = 143,φ(n) = (p-1)(q-1) = 12×10 = 120。

求解ed = 13d ≡1(mod 120) 得d = 37。

因此A 的公钥为(n = 143,e = 13);私钥为d = 37签名过程:假定消息m 的Hash 值h(m) = 16,则计算m 签名为s = h(m)d mod n = 1637mod 143 = 3 验证过程:接受者B 收到签名后,计算s e mod n = 313mod 143 = 16,h(m) mod n = 16 mod 143 = 16等式h(m) mod n = s e mod n 成立,因此,B 验证此签名有效17数字签名标准DSS (Digital SignatureStandard) 是美国NIST 公布的联邦信息处理标准FIPS PUB 186,其中采用了SHA 和新的签名技术--DSA (Digital SignatureAlgorithm). DSS 最初公布于1991年,在考虑了公众对其安全性的反馈意见后,于1993年公布了其修改版.18数字签名标准DSS (Digital SignatureStandard) 是美国NIST 公布的联邦信息处理标准FIPS PUB 186,其中采用了SHA 和新的签名技术--DSA (Digital SignatureAlgorithm). DSS 最初公布于1991年,在考虑了公众对其安全性的反馈意见后,于1993年公布了其修改版.一般数字签名算法-DSA19①参数p :满足2L-1<p<2L 的大素数,其中512≤L ≤1024且L 是64的倍数.q :p-1的素因子,满足2159<q<2160,即q 长为160比特.g :g ≡h (p-1)/q mod p ,其中h 是满足1<h<p-1且使得h (p-1)/q mod p>1的任一整数.用户秘密钥x (0<x<q 的随机数或伪随机数);用户的公开钥y :y ≡g x mod p.一般数字签名算法-DSA20②签名过程¾用户为待签消息选取的秘密数k ,k 是满足0<k<q 的随机数(伪随机数).¾用户对消息m 的签名为(r, s)r ≡(g k mod p) mod q,s ≡[k -1(h(m)+xr)] mod q ,H(M)是由SHA 求出的消息M 的杂凑值.一般数字签名算法-DSA21③验证过程设接收方收到的消息为M ’及其签名(r ’,s ’),计算w ≡(s ’)-1mod q, u 1≡[h(M ’)w] mod qu 2≡r ’w mod q, v ≡[(g u1y u2) mod p] mod q 检查若相等,则认为签名有效.?v r=一般数字签名算法-DSA22正确性证明因为若(m ´,r ´, s ´)=(m,r,s),则DSA 是在ElGamal 和Schnorr 两个签名方案的基础上设计的,其安全性基于有限域上求离散对数的困难性.1()(())[()mod ]mod [mod ]mod (mod )mod h m w xrw h m xr s k v g g p qg p qg p q r−+≡≡≡≡23攻击1:假定Alice 的公钥(p,q,y ),私钥x 签名方程:s=k -1(m+xr) ,攻击如下:攻击者选取r=g u y v ,u 和v 需要与p-1互素,然后求解(m,s )使得m-us=0; r-vs=0.则上面的(m,r,s )满足验证方程v=rw ≡(s)-1mod q, u 1≡[mw] mod qu 2≡r w mod q, v ≡[(g u1y u2) mod p] mod q24攻击2:若泄漏k ,则任何知道(m,r,s)和Alice 公钥的人可以通过计算[sk-H(M)]/r ≡x mod q ,求出用户的私人密钥x.25攻击3:k(r)重复使用26一般数字签名算法-DSA实例1)初始化:假设A 选取素数p = 23,q = 11 ,其中(p -1 ) / q = 2选择随机数h = 12,计算g ≡h (p -1)/q mod p ≡122 mod 23≡6。

既然g ≠1,那么g 生成中的q 阶循环子群。

选择随机数x = 10 满足1 ≤x ≤q -1,并计算y ≡g x mod p≡610mod 23 ≡4。

则公钥为(p = 23,q = 11,g = 6,y = 4),私钥为(x = 10)R pZ ∗∈R p Z ∗∈p Z ∗272)签名过程:选取随机数k = 9,计算r ≡(g k mod p ) mod q ≡(69mod 23) mod11≡5然后计算k -1mod q ≡5。

假设h(m ) = 13,计算s ≡[h(m )+xr ] k -1mod q ≡5×(13+10×5)mod11 = 7。

因此消息m 的签名为(r = 5, s = 7)283)验证过程:签名接收者B 计算w ≡s -1mod q ≡8,u 1 ≡[h(m )w ]mod q ≡13×8mod 11 ≡5,u 2 =rwmod q ≡5×8 mod 11 ≡7。

相关文档
最新文档