议从加密到数字签名
数字签名方案的实现
数字签名方案的实现欧家权、应用数学、2111011451一:数字签名的背景随着信息、电子技术的迅速发展,全球己步入信息社会。
由于整个社会将形成一个巨大的计算机网络,任何部门的计算机网络一旦出现安全问题,都会直接影响到整个国家的网络安全,所以计算机网络安全问题已引起了各国的高度重视。
随着我国信息化进程的加快,网络化将向各经济部门、政府机关、军队、学校和社会团体等方向延伸,先进的计算机系统能把整个社会乃至军队联结起来。
计算机作为国家的关键基础设施和战略命脉,其安全状况直接影响到国家的安全和发展。
加密技术是保证信息安全的关键技术,其理论是信息安全的核心内容之一。
密码学是一门古老而又年轻的学科,1949年以前,密码学是一种艺术而并不是作为一门严格的科学存在。
1949年shannon[']发表的“保密系统的信息理论"一文为私钥密码系统建立了理论基础,从此密码学成为了一门科学。
而1976年Diffie和Hellman[2]的“密码学的新方向”则开创了公钥密码学的新纪元。
目前的数据加密、数字签名、消息认证等技术都是以密码技术作为基础设计出来的。
随着信息化的高速发展,密码学理论的研究和应用越来越受到重视。
数字签名的概念由Diffie和Hellman提出,是现代密码学最重要最基本的概念之一。
数字签名的设计思想等同于手写签名,即将签名者的身份与其签署的消息绑定,表示某人已对某消息进行了签字。
任何的验证者均能验证消息确实为签名者所签署,而伪造一个合法用户的签名却是困难的。
数字签名是实现数字通信中可认证性、完整性和不可否认性的重要密码技术,是应用最为广泛的公钥密码技术之一.综上所述,数字签名的应用范围相当广泛,而数字签名最重要的应用之一就是数字版权管理系统的应用。
随着网络和数字技术的快速发展,以数字形式存在的产品在人们的日常工作、学习和生活中占据越来越重要的地位。
这些数字产品包括:电影、音乐、图片、电视、软件、书籍、期刊等,我们通称之为数字内容.数字内容通常都是有版权的,版权所有者销售数字内容并希望获得最大的经济收益。
几种数字签名方案简介
几种数字签名方案简介1、RSA数字签名方案RSA是最早公钥密码算法之一,由Ron Rivest、Adi Shamir和Leonard Adleman于1978年发明。
RSA数字签名方案基于大数分解难题,其安全性与RSA问题紧密相关。
在RSA数字签名方案中,发送方使用私钥对消息进行签名,接收方使用公钥验证签名。
2、DSA数字签名方案DSA数字签名算法由美国国家标准与技术研究院(NIST)提出,并被采纳为联邦数据处理标准(FIPS)。
DSA数字签名方案基于离散对数难题,其安全性主要依赖于有限域上的离散对数问题。
DSA算法相较于RSA 算法,具有签名长度短、速度快以及抗量子攻击等优点。
3、ECDSA数字签名方案ECDSA是椭圆曲线数字签名算法,其基于椭圆曲线密码学,是在有限域上的椭圆曲线离散对数问题的基础上构建的。
ECDSA数字签名方案相较于RSA和DSA算法,具有更高的安全性和更低的计算开销。
因为椭圆曲线密码学具有较高的安全性和较低的计算复杂性,所以ECDSA 被广泛应用于比特币等加密货币中。
4、EdDSA数字签名方案EdDSA数字签名算法是对标DSA的抗量子攻击算法,由欧洲电信标准化协会(ETSI)提出。
EdDSA使用的是Schnorr签名算法的一种变体,具有较高的安全性和抗量子攻击能力。
此外,EdDSA算法还具有速度快、签名长度短等优点。
以上几种数字签名方案都是目前广泛应用的算法,每种方案都有其特定的应用场景和优缺点。
在实际应用中,我们需要根据具体需求选择合适的数字签名算法以保证信息的安全性和完整性。
随着互联网的快速发展,数字签名方案在信息安全领域变得越来越重要。
数字签名方案用于验证信息的完整性、真实性和不可抵赖性,广泛应用于电子政务、电子商务和网络安全等领域。
无证书数字签名方案作为一种新兴的数字签名技术,因无需证书颁发机构颁发证书,具有降低成本、提高效率等优点,逐渐受到广泛。
本文将对几种无证书数字签名方案进行介绍,并对其安全性进行分析及改进。
实训3-1:PGP实现文件加密和数字签名
5.导入其他人的公钥
(2)右击某一密钥,选择【Key Properties】菜单,显
示该密钥的全部信息(如:是否是有效的密钥,是否可 信任等)。 (3)小陈按同样方式导入小李的公钥。 (4)小黑按同样方式导入小李和小陈的公钥。
6.加密文件
6.加密文件
(1)小李创建一个输有内容的文本文件,然后右击该文
1.配置文件服务器
1.配置文件服务器
管理员小王配置文件服务器,使文件服务器能够上传和
下载文件。
2.小李、小王和小陈安装PGP软件
2.小李、小王和小陈安装PGP软件
(1)安装PGP8.1 软件的安装很简单,只是有几处需要解释一下,解压缩
后,双击安装程序后,进入安装界面,显示欢迎信息, 单击 按钮,然后出现许可协议,这里阅读后单击 按钮,继续单击 按钮,出现创建用户类型的 界面,单击 按钮完成安装。
第3章 网络加密与认证技术 实训3-1:PGP实现文件加密和数字签名(学时)
本次课要点
学习目标
重点 难点
实训目的
使用PGP软件对文件加密和数字签名 了解密码体制在实际网络环境中的应用 加深对数字签名及公钥密码算法的理解
实训背景
一家私有企业组建了一个局域网,局域网通过 FTP来相互之间传送资料,公司的员工小李和小 陈有时需要通过FTP传送一些保密资料和重要合 同,为了防止其它人偷看这些重要信息和抵赖。 他们安装了最简单的加密和数字签名工具PGP, 实现对文件进行加密或数字签名。 公司有一名员工小黑看到小李和小陈之间在FTP 服务器传递重要资料,便下载该资料,也安装 PGP软件尝试看能否打开这些资料。
PGP的注册界面
3.生成密钥对
数字签名技术的现状、发展与应用
数字签名技术的现状、发展与应用随着信息技术的飞速发展,数字签名技术已经成为人们日常生活中不可或缺的一部分。
本文将详细介绍数字签名技术的概念、作用、现状、发展以及在各个领域的应用,最后对数字签名技术的未来进行展望。
数字签名技术是一种基于公钥密码体制的签名技术,通过使用发送方的私钥对消息进行签名,接收方使用发送方的公钥来验证签名的真实性。
数字签名技术具有以下几个特点:安全性:数字签名技术采用了密码学算法,不易被伪造和篡改,保证了消息的安全性。
唯一性:每个发送方都有一个唯一的私钥,使得数字签名具有唯一性。
可追溯性:数字签名可以追溯到发送方的公钥,使得签名可以被验证和跟踪。
数字签名技术在信息安全领域具有非常重要的地位。
数字签名技术可以用来确认消息的来源,保证信息的真实性。
数字签名技术可以防止消息被篡改,保证信息的完整性。
再次,数字签名技术可以防止发送方抵赖,保证交易的安全性。
数字签名技术可以作为身份认证的手段,使得只有合法用户才能进行特定的操作。
随着云计算、物联网等技术的快速发展,数字签名技术的应用越来越广泛。
目前,数字签名技术已经广泛应用于电子商务、电子政务、在线支付、供应链管理等领域。
同时,数字签名技术也面临着一些挑战和问题,如性能瓶颈、安全漏洞等。
随着技术的不断进步,数字签名技术也在不断发展。
未来,数字签名技术将朝着以下几个方向发展:技术创新:未来数字签名技术将不断进行技术创新,提高签名的效率和安全性。
多种应用场景:数字签名技术的应用场景将越来越广泛,不仅应用于传统的电子商务、电子政务等领域,还将扩展到医疗、教育、金融等领域。
政策法规:随着数字签名技术的广泛应用,政策法规也将不断完善,以保护用户的隐私和安全,促进数字签名技术的发展。
数字签名技术在各个领域都有广泛的应用。
在电子商务领域,数字签名技术可以用来确认订单的真实性和完整性,保证交易的安全性。
在电子政务领域,数字签名技术可以用来确认申报材料的真实性,防止伪造和篡改。
密码学第八讲:数字签名(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
数字签名的基本概念
数字签名技术则可有效解决这一问题, 类似于手书签名,数 字签名应具有以下性质: ① 能够验证签名产生者的身份,以及产生签名的日期和时 间. ② 能保证被签消息的内容的完整性. ③ 数字签名可由第三方公开验证,从而能够解决通信双方 的上述争议. 数字签名在网络安全中提供数据完整性、数据源认证性、 数据不可否认性等性质
数字签名技术
数字签名技术பைடு நூலகம்
– 报文摘要算法采用单向Hash函数,将需加密的明文“摘要”成一串 128bit的密文。其基本的规则是:
– 1) 接受的输入报文数据没有长度限制。 – 2) 对任何输入报文数据生成固定长度的摘要输出。 – 3) 由报文能方便地算出摘要。 – 4) 难以对一个指定的摘要生成一个报文,但该报文可以得出指定的摘
数字签名技术
– 与DSS不同,RSA既可以用来加密数据,也可以用于身份认证。和 Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的 计算机中,安全系数大一些。
电子商务
数字签名技术
• 1.3 数字摘要
– 数字摘要 (Digital Digest) 又称报文摘要 (Message Digest) ,是一种安全 Hash编码法 (SHA-Secure Hash Algorithm) 加密方法。
– 为了把那些千差万别的报文与数字签名不可分割地结合在一起,要设 法从报文中提取一种确定格式的、符号性的摘要,就称为报文摘要, 更形象一点的说法就是数字指纹 (Digital fingerprint) 。
– 1) 需加时间戳的文件的摘要 (digest) 。 – 2) DTS收到文件的日期和时间。 – 3) DTS的数字签名。
数字签名技术
• 时间戳产生的过程是:
– 用户首先将需要加时间戳的文件用Hash编码加密形成摘要,然后将该 摘要发送到DTS,DTS在加入了收到文件摘要的日期和时间信息后再 对该文件加密 (数字签名) ,最后送回用户。书面签署文件的时间是由 签署人自己写上的,而数字时间戳则不同,它是由认证单位DTS所加, 以DTS收到文件的时间为依据。
数字签名技术
• 1.1 对称密钥的数字签名
什么是数字签名?密钥
什么是数字签名?密钥什么是数字签名?所谓数字签名就是信息发送者用其私有密钥对从所传报文中提取出的特征数据(或称数字指纹)进行RSA算法操作,以保证发信人无法抵赖曾发过该信息(即不可抵赖性),同时也确保信息报文在经签名后末被篡改(即完整性)。
当信息接收者收到报文后,就可以用发送者的公钥对数字签名进行验证。
•加密:改变数据本来的意思•解密:还原数据本来的意思•密钥:加密解密时所使用的参数,可以是一个整数或一串字符,或其它任何加解密方法所能理解的形式•对称密钥:加密和解密使用同一个密钥•非对称密钥:加密和解密使用两个密钥,其中任何一个密钥加密的数据都能且都只能被另一个密钥解开•公钥私钥:非对称密钥的一种实践形式,两个密钥中公开的人人皆知的那个称为公钥,保密的那个称为私钥•PKI:公钥基础设施,泛指使用了非对称加密的平台、工具等3.2 常见实践•公钥私钥:1.A将数据用自己的私钥加密,发送给B,C,D2.B,C,D用A的公钥解密3.B,C,D将各自的响应用A的公钥加密,发送给A4.A将返回的响应用自己的私钥解密5. 1.通信双方都拥有各自的公钥和私钥.顾名思义,公钥是给所有需要跟你通信的人的.私钥只能你自己保存.6.7. 2.如果A需要给B发送一份加密的数据,那么就需要用B的公钥对该文件进行加密,然后加密过的数据传送到B方后,B使用自己的私钥对加密文件进行解密.得到明文. 这就是数据的保密性传输过程.8.9. 3.因为B的公钥可能很多人都具有.那么,怎么保证这个密文就是从A那里传送出来的呢? 我们就需要A将明文用B的公钥加密过之后,再用自己的私钥加密一次.因为私钥只有A自己拥有.所以当B收到加密过两次的密文之后.首先通过A的公钥解密该数据包.证明该文件确实是从A方发送过来的.也就是数据传送的不可抵赖性,即数字证书认证. 确认数据是从A方发送过来的之后,再通过自己的私钥解密该数据保,得到明文.•用公钥加密对称密钥:1.A用对称密钥将数据加密,然后用自己的私钥把对称密钥本身加密,一起发送给B,C,D2.B, C, D用A的公钥解密对称密钥3.B, C, D用解密后的对称密钥继续解密,得到原始数据4....keytool -genkey -keyalg RSA -alias mykey -keystore mykeystore.jks结果您将获得一个文件:mykeystore.jks,其中包含一个私钥和一个自签名的公钥。
什么是数字签名?
什么是数字签名?什么是数字签名?从根本上来说,数字签名是一种确保电子文档(电子邮件、电子表格、文本文件等)真实可靠的方法。
“真实可靠”的含义是:您知道文档是谁创建的,并且知道在作者创建该文档之后,没有人对其进行过任何形式的修改。
数字签名依靠某些类型的加密技术来验证身份。
加密是指获得一台计算机要发送给另一台计算机的所有数据,然后将其编码为只有后者才能解码的形式的过程。
身份验证是指验证相关信息是来自可信来源的过程。
这两个过程共同实现数字签名的功能。
要对人员或计算机上的信息进行身份验证,有多种方法:•密码——用户名和密码的使用是最常见的身份验证方式。
您在计算机提示下输入用户名和密码。
计算机根据安全文件对二者进行核对并确认。
如果用户名或密码中有一个不匹配,计算机就不允许您进行进一步访问。
•校验和——校验和也许是确保数据正确的最古老的方法之一,它也提供了一种身份验证方式,因为无效的校验和表明数据受到了某种形式的损坏。
有两种方法可以用来确定校验和。
假设数据包的校验和为1个字节长,意味着校验和可以包含的最大值为255。
如果该数据包中其他字节的和是255或更小,则校验和将包含那个具体的值。
但如果其他字节的和大于255,则校验和为总值除以256后得到的余数。
请看以下示例:•1151÷256=4.496(四舍五入为4)•4x256=1024•1151-1024=127•CRC(循环冗余码校验)——CRC在概念上与校验和类似,但它使用多项式除法来确定CRC的值,其长度通常为16或32位。
CRC 的优势在于它非常精确。
如果有一个位不正确,CRC值就不匹配。
在防止传输过程中发生随机错误方面,校验和与CRC都比较有效,但在防止针对数据的有意攻击方面,则几乎没有提供任何保护。
下面讲到的加密技术则安全得多。
•私钥加密——私钥的含义,是指每台计算机都有一个密钥(代码),在它通过网络向另一台计算机发送信息包之前,可以使用该密钥对信息包进行加密。
密信电子文档全自动数字签名和加密解决方案
密信电子文档全自动数字签名和加密解决方案彻底解决电子文档(电子合同)的可信和安全问题!现状分析1992年Adobe公司正式发布了PDF格式文件并大力推广文档电子化,1999年Adobe Acrobat和Adobe阅读器开始支持数字签名技术,意在推广电子文档的可信化。
根据Adobe官网介绍,英文Electronic Signature(电子签名)是一个泛术语,准确的中文全称应为:电子方式签名,指的是表明接受协议或记录的任何电子过程,典型的电子方式签名常见的身份验证方法是验证电子邮件地址,如果需要提高安全性,则需要使用多因素身份验证。
电子方式签名应该使用安全流程控制来证明签名过程,用户收到的已签名文档应包含签名过程审计报告。
如果用户设置了使用手写签名图样,电子方式签名存在一个无法验证手写签名或图章的图片是否的确是签名者本人的签名或是否的确是该单位的图章的问题。
合同签署各方只能要么相信此签名图片,要么通过其他方式去验证签名图片的真实性。
这是电子方式签名的不足之处。
而英文Digital Signature(数字签名)则是Electronic Signature(电子签名)的一种特定类型,可以说是一种改进型的更加可信的电子方式签名,准确的中文全称应为:数字方式签名,简称:数字签名,以区分电子方式签名。
数字签名是使用数字证书来验证签名者的身份,并通过密码算法将签名者身份绑定到文档中来证明签名行为的不可否认,已签名文档无需包含签名过程审计报告,签名者的身份验证则由证书颁发机构(CA)或信任服务提供商(TSP)完成。
总之,数字签名是一种基于证书的电子签名,符合最严格的法律法规-并为签名者的身份提供最高级别的保证。
目前国外主流的厂商如DocuSign和Adobe Sign都是采用电子方式签名实现合同在线签署,仅验证签署各方电子邮件地址后就可以完成合同签署,但是为了保证签名后的合同电子文件不会被篡改,用户签署完成后再用签名服务平台的PDF签名证书对合同文件进行数字签名。
现代密码学07 - 数字签名
34
ElGamal签名方案 存在性伪造
• 对ElGamal签名的存在性伪造
• 攻击者随机选择0<r,v≤p2,且gcd(v,p-1)=1
• 计算 u = gryv mod p
s = -uv-1 mod (p-1)
m = -ruv-1 mod (p-1)
则(u,s)是对伪造的消息m的有效签名
• 伪造的正确性 · yuus = yu(gryv)s = gxu(grgxv)s = gxu+rs+xvs = gm mod p
Q: 为什么对称密码技术不能实现非否认?
• 因为双方都持有相同的密钥(信息是对称的) • 接收方可以产生相同的消息,所以发送方可以诬赖消息是接收方伪 技术
6
手写签名:Alice 对一份文件签 名后
① 别人可以 验证 她的签名 ② 其他人 很难模仿 她的签名
② 签名:s=md mod n, m∈Z*n ③ 校验:m ?=se mod n
22
RSA签名方案 安全性
• 安全性原理 – 只有签名者知道私钥d,所以他是产生签名s的唯一人 – 公钥e是公开的,任何人都可以验证签名s的合法性
• 但上述基本的RSA签名方案有安全漏洞 —— 存在性伪造
23
RSA签名方案 存在性伪造
防篡改
任何人无法篡改 已签名的消息
非否认
签名者事后无法 否认自己的签名
消息认证
接收者可以确信 消息发送者的身份
相当于在电子文件上签自己的名字
13
抗伪造是数字签名的核心安全性要求
14
什么叫 伪造签名 在不知道私钥 SK 的情况下,产生签名 s,使得 VerPK(M,s) = true 则称 s 是对 M 伪造的签名 (PK 是 SK 对应的公钥) 也即 找到一对能通过验证算法校验的 (M,s)
数字签名及安全电子邮件详细步骤
数字签名及安全电子邮件一、背景知识使用个人证书,在电子邮件中至少有以下功能。
保密性:你可以使用收件人的数字证书对电子邮件进行加密。
这样,只有收件人的私钥才能解密这封邮件,即使第三方截获邮件,由于没有收件人的私钥,也无法阅读该邮件。
当然,要发送加密电子邮件,必须先拥有对方的数字证书。
认证身份:你可以使用你本人的数字证书对电子邮件进行数字签名,这样,收件人通过验证签名就可以确定你的身份,而不是他人冒充的。
完整性:如果验证数字签名有效,收件人不仅可以认证你的身份,还可以确信收到的邮件在传递的过程中没有被篡改。
不可否认性:数字签名要使用你本人数字证书中的私钥,而私钥仅你个人所有,所以,你不能对发送过的签名邮件进行否认。
1、电子邮件的重要性由于越来越多的人通过电子邮件发送机密信息,因此确保电子邮件中发送的文档不是伪造的变得日趋重要。
同时保证所发送的邮件不被除收件人以外的其他人截取和偷阅也同样重要。
通过使用 Outlook Express 和 Foxmail,可以在电子事务中证明身份,就象兑付支票时要出示有效证件一样。
也可以使用数字证书来加密邮件以保护邮件的保密性。
数字证书结合了 S/MIME 规范来确保电子邮件的安全。
2、对电子邮件进行数字签名对电子邮件进行数字签名,能够确保电子邮件中发送的文档不是伪造的,即收件人能够确信该邮件来自于其声称的发件人,同时邮件从发件人的机器传达到接收人的机器没有经过任何改动。
当发件人在待发邮件中添加数字签名时,发件人就在邮件中加入了数字签名和自己的数字证书。
邮件的接收方接收到该邮件后,首先判断发件人的证书是否有效(该证书是否是可信任的CA签发的,该证书是否在有效期内,该证书是否已经被撤销),如果证书有效,从发件人的证书中提取公钥信息,来验证邮件的数字签名是否有效。
3、对电子邮件进行加密对电子邮件进行加密(使用接收人的数字证书中的公钥进行加密)可以保证所发送的邮件不被除收件人以外的其他人截取和偷阅。
公开密钥加密体系和数字签名技术的研究
IT 技 术
公开密钥加密体系和数字签名技术的研究
(1 .广州南洋理工职业学院 广东广州 510980
唐刚强’ 徐红2
2 . 湖南涉外经济学院计算机科学技术系
湖南长沙
410250)
摘 要: 为了保障网 络中数据通信的安全、网上用户身份的识别和电子商务、电 子政务中网上交易的安全, 介绍了公开密钥加密体 系(PKI ) 和数字签 介绍了 名, 有效的数字签名方法, 并介绍了局域网中文件加密和数字签 名系统的管理与 应用 关键词: 数据通信 公开密钥 加密体系 数字签名 中图分类号: T P311. 1 文献标识码: A 文章编号: 1672- 3791(2007)02(b卜0068- 02 密成密文, 此后只有拥有解密密钥的人才能解 互联网的迅速发展改变传统的事务处理 密; 方式, 开放的网络环境和开放的网络协议给基 ②简化密钥分配及管理问题: 网络 卜 的每 于网络的业务系统的使用( 如证券系统、银 一人只需要一把加密( 公开) 密钥及一把解密 行系统、网上购物以及电子政务系统等) , 带 (私有)密钥, 这些密钥只要由接受方自己产生 来了极大的方便性。计算机网络得到了迅猛 除拥有更高的安全性外, 更大大简化密 的发展, 同时, 由于计算机网 络缺乏足够的安 即可, 不需要在用户之间传递 全性, 网络的安全性问题越来越受到高度的重 钥之分配及管理问题, N 密 视, 网络安全对策显 得尤为重要,如: 客户密 私钥, 个人互相通信仅需要23N 个密码, 可以适应开放性的使用环境, 码的安全保密和客户身份的网络认证, 身份认 码管理容易, ③可达到不可否认功能: 由 干只有接受方 证的真实性和身份认证手段本身的可靠性。 若他先用解密密钥将明 数字签名技术的发展, 很好的解决了网 络用户 自己才拥有解密密钥, 则任何人均能 身份认证的功能, 防止虚假用户冒充真实用户 文加密(签名)成密文( 签名文) , 用公开密钥将密文解密(验证)成明文, 并与原 在网上开展业务。 来明文对照。由于只有接受方才能将明文鉴 名, 任何人均能验证无法伪造。因此, 此签名 1 公开密钥加密体系 具有法律效 公开密钥加密的基本思想是:每个用户都 文就如同接受方亲手签名一样, 力, 后有争执时(如签名者事后否认), 者 日 第三 分配两个密钥, 一个是公开密钥, 对其他用户 ( 如法院) 可以很容易做出正确的判断。这种 功能称做数字签名。 公开密钥密码系统缺点是加解密运算复 杂, 且速度缓慢 。以著名的公开密钥系统 RSA, 与秘密密钥DES 比 DES 的硬件操作 较, 可达到45Mb/ s 的加解密, 而RSA 以现在的技 圈 i R S A加、解密示愈图 仍很难达到 50kb / s , 两者相差将近 1000 都公开。 另一个是私有密钥, 仅为自己所有。 术, 倍。因此, 有人建议利用公开密钥密码系统达 经用户公开密钥加密的信息只能通过他的私 解决秘密密钥系统的密钥分配问 有密钥来解密。反过来, 经用户私有密钥加 成数字签名, 对明文加解密, 密的信息也只能通过他的公开密钥来解密。 题。而以秘密密钥密码系统, 达到秘密性功能。此种密码系统称为混合型 其中最有名的一种是RSA 体制。他已被推荐 为公开密钥数据加密的标准。其加、解密过 密码系统。 程如图 1 所示。 R S A 算法取自于它的创始人的名字 2 数据签名 名。比较典型的有序多重数字签名方案是以 美国数字签名标准算法 DSA 为基础设计的一 种名叫ELGamal 型有序多重数字签名方案。 它允许多方顺序地对某一份文件进行签名, 然 后把它们构成一份群体签名。该方案可以检 视 9和防止不诚实签名者的欺骗行为。由于简 化了签名者之间的接口, 减少了通信成本, 有 效地避免了签名死锁, 因而更具安全性和实用
混合加密体制在数字签名中的应用
散对 数 问 题 是 比 大 数 的 因 式 分 解 问题 和 有 限 域 上 离 散 对 数 问
题 更 加 困难 的 问题 。 () 钥 短 。 圆 加 密 算 法 在 不 降 低 破 译 难 度 的前 提 下 可 2密 椭
1 各 种 加密 算 法体 制 的优 缺 点分 析
对 于 公 钥 加 密 R A, 的 缺 点 主 要 有 : 组 长 度 太 大 , S 它 分 为 保 证 算 法 安 全 性 , 大 素 数 对 乘 积 n的长 度 至 少 也 需 要 60比 0
2 数 字 签 名 方案
数字签名方案大致 可分为 3 : 钥 生成、 名和验证 。 步 密 签
() 收 方 运 用 rx ) 2接 (, 的第 一 个 坐 标 验 证 信 息 。 如 果 = y & o d 就 ro , 验 证 签 名 , 则 就 拒 绝 。 否 椭 圆 加 密 数 字 签 名 方 案 的 一 般 模 式如 图 2所 示 。
21 基 于 RS . A数 字 签 名方 案
密钥 生成:
() 1发送 方 ( 用户 ) 择 两个 素数 p n 并 且计 算 出” p q 选 eq = X。
: :
H 堡
! !/
() 2计算 出 ) —1 q ) = ) —1。 (
() 择 公共 指数 e 并 且 计算 出 私 人 指 数 d 使 得e d 3选 , , x =1
2 1,V 1 2 No 14 0 1 o. , . 93 3 6
() 户A 用 信 息 摘 要 、 钥 、 密 随 机 数 S和 r计算 出 4用 运 私 秘 ,
第二个签 名: &=(( + x m d hm)d S) o 。 ,
() 户 A 送 M 、 S 。 5用 发 S和 :
网络安全04 - 数字签名
因为只有X拥有EKRx
通信各方无需共享任何消息,可避免联合 作弊
数字签名标准DSS
数字签名标准(Digital Signature Standard,简称DSS) 规定了用于产生与证实一个数字签名的一 整套算法 包括数字签名和消息鉴别两部分功能
不能提供保密功能
数字签名标准DSS
发送方A M M
仲裁扮演敏感和关键的角色 仲裁必须是一个可信的系统
所有的参与者必须极大地信任仲裁机构 发送方x的签名消息首先送到仲裁者A A对x的消息及其签名进行一系列测试和验证,以检查其来源 和内容 A将消息加上验证时间、以及已验证通过的指示发给接收方y
工作原理
A 1 X 2 Y
1:消息+签名
提供保密、签名与鉴别
M
M
DS
E
密钥K
D
密钥K
M
DS
H()
H()
E()
D()
比较
哈希 KRa
密钥KUa
直接数字签名方案的安全性弱点
依赖于发送方私钥的安全性
发送方要抵赖发送某一消息,可以声称其私钥 丢失 要引入法律手段
中华人民共和国电子签名法
法律+基于私钥的签名 不可抵赖
基于仲裁的数字签名方案
签名生成过程
签名验证过程
数字签名的基本原理
发方A
消息
收方B
Hash函数
消息
公开信道
Hash函数 消息
签名 消息摘要
签名
消息摘要
加密算法 解密算法 加密算法
第四章数字签名
r=f2(k, p, q, g)=(gk mod p) mod q
p q g
f2f 2 k
r x g
f1 m H
s
(a)
DSA的验证过程框图
w=f3(s′, q)=(s′) -1mod q;
v=f4(y, q, g, H(m′), w, r′)
=[(g(H(m′)w)
m′ s′ r′
mod qyr′w mod q)
签名者 签名有效 时间
源文件被修改后,签 名无效
数字签名应具有的性质
必须能够验证作者及其签名的日期时间;
必须能够认证签名时刻的内容; 签名必须能够由第三方验证,以解决争议; 因此,数字签名功能包含了认证的功能; WHY?
数字签名的设计要求
依赖性 唯一性 可验性 抗伪性 可用性
签名必须是依赖于被签名信息的一个比特模式,
(4) 用户为待签消息选取的秘密数k是满足0<k<q的随机数 或伪随机数。
(5) 签名过程。 用户对消息m的签名为(r, s), 其中 r=(gk mod p) mod q s=[k-1(H(m)+xr)] mod q H(m)是由SHA求出的杂凑值。
(6) 验证过程。 设接收方收到的消息为m′, 签名为(r′,s′)。 计算
签名方案2
(1)X→A: IDX‖ EkXY[m]‖ EkXA[IDX‖H(EkXY[m])] (2)A→Y:
EkAY[IDX‖EkXY[m]‖EkXA[IDX‖H(EkXY[m])]‖T]
kXY——X、Y共享的密钥
签名方案2存在的问题
仲裁者有可能和发方共谋以否认发方曾发
过的消息,也可以和收方共谋以伪造发方的签 名。
签名必须使用某些对发送者是唯一的信息,以防伪造与否认;
现代密码学第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
数字签名应满足的要求
因此在收发双方未建立起完全的信任关 系且存在利害冲突的情况下,单纯的消息认 证就显得不够。数字签名技术则可有效解决 这一问题。类似于手书签名,数字签名应具 有以下性质: ① 能够验证签名产生者的身份,以及产生签 名的日期和时间。 ② 能用于证实被签消息的内容。 ③ 数字签名可由第三方验证,从而能够解决 通信双方的争议。
数字签名原理、种类与方法
1.2 数字签名的实现方法
④接受方使用自己的私有密钥对密钥信息进行解密,得到 秘密密钥的明文; ⑤接收方用秘密密钥对文件进行解密,得到经过加密的数 字签名; ⑥接收方用发送方的公开密钥对数字签名进行解密,得到 数字签名的明文; ⑦接收方用得到的明文和哈希函数重新计算数字签名,并 与解密后的数字签名进行对比。如果两个数字签名是相同 的,说明文件在传输过程中没有被破坏。
DSS和RSA采用公钥算法,DSS只是一个签名系 统,RSA既用于数据加密,也用于身份认证。
1.1 数字签名原理
4、数字签名功能 数字签名用以解决否认、伪造、篡改及冒充等
问题。具体要做到:发送者事后不能否认发送的报 文签名、接收者能够核实发送者发送的报文签名、 接收者不能伪造发送者的报文签名、接收者不能对 发送者的报文进行部分篡改、网络中的某一用户不 能冒充另一用户作为发送者或接收者。
这种方法由于它是逐位进行签名的,只要有一位被改动过,接 收方就得不到正确的数字签名,因此其安全性较好,其缺点是:签 名太长(对报文先进行压缩再签名,可以减少签名的长度。);签 名密钥及相应的验证信息不能重复使用,否则极不安全。
1.2 数字签名的实现方法
3、加入数字签名和认证 只有加入数字签名及验证后信息才能在公网上安
证书,用以确认一个人或服务器的身份,它把一对用于 信息加密和签名的电子密钥捆绑在一起,保证了这对密 钥真正属于指定的个人和机构。
数字认证由验证机构CA进行电子化发布或撤消公钥 验证,信息接收方可以从CA Web站点上下载发送方的 验证信息。
1.2 数字签名的实现方法
6、数字签名的发展方向 完善生成和验证数字签名的工具,发展支持数
1.2 数字签名的实现方法
1、用非对称加密算法进行数字签名 非对称加密使用两个密钥:公开密钥(public key)和私有
使用GPG加密邮件,进行数字签名和解密邮件
使⽤GPG加密邮件,进⾏数字签名和解密邮件这⾥邮件加密的基本原理是⾮对称的加密形式。
每个⼈都会⽣成⼀对密钥,分为公钥和私钥。
正如名字所述,公钥是公开的,⽽私钥只能本⼈所有,私钥和公钥配对存在,彼此解密。
实际加密邮件时,使⽤⾃⼰的私钥和接收⼈的公钥对邮件加密,邮件的接收⼈根据发送⼈的公钥和接收⼈的私钥进⾏邮件解密。
根据上述原理,想要进⾏邮件加密的操作,我们必须要⽣成⾃⼰的公钥和私钥,并获取接收⼈的公钥。
这个操作中,使⽤的软件是 thunderbird 及其插件 Enigmail,以及密钥⽣成软件Gpg4win。
根据⼤神的博客尝试了加密和解密邮件的操作,感谢分享,下附博客原址。
以下是博客原⽂,我在window10 上实现了操作,链接和使⽤⽅法均正确。
⾮对称加密的原理:最先出现的加密⽅法是对称加密。
在对称加密算法中是不区分公钥和私钥的,加密与解密使⽤的都是同⼀个密码。
但是很显然,如果需要对信息进⾏加密与解密的不是同⼀个⼈,使⽤对称加密算法就存在密钥泄露的极⼤可能。
因此,⼀种⾮对称加密的想法在1974年最先由RalphC. Merkle提出。
⽬前主要的⾮对称加密算法有:RSA、EIGamal、ECC、背包算法和D-H公钥加密算法等。
1.公钥加密信息的⼯作过程:A使⽤公钥加密算法创建⼀个⾃⼰的公钥A-1和私钥A-2。
私钥A-2由A⾃⼰保管,不对外公开。
公钥A-1则通过⼀些可信的渠道公布出去,例如使⽤了HTTPS的⽹页(这⾥之所以强调“HTTPS”是因为HTTPS协议对传输的信息做了加密,如果将公钥放在使⽤HTTP协议的⽹页上,由于HTTP是明⽂传输⽹页数据的,因此在传输的过程中有可能因为遭遇中间⼈攻击等⽽出现公钥被修改的可能。
前⽂提到“可信的渠道”也是出于此原因。
)、公钥服务器或者⾯对⾯传递公钥。
B在拿到A的公钥A-1后,如果B想给A发送加密信息就可以使⽤公钥A-1进⾏加密后再发送给A,A收到加密信息后使⽤⾃⼰知道的,与公钥A-1对应的私钥A-2解密B发来的加密信息。
数字签名知识电子签名法
数字签名知识电子签名法首先应该知道,什么是数字签名.简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。
这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。
基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。
包括普通数字签名和特殊数字签名。
普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou-Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。
特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。
显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。
一些国家如法国和德国已经制定了数字签名法。
实现数字签名有很多方法,目前数字签名采用较多的是公钥加密技术,如基于RSA Date Security公司的PKCS(Public Key Cryptography Standards)、Digital Signature Algorithm、x.509、PGP(Pretty Good Privacy)。
1994年美国标准与技术协会公布了数字签名标准而使公钥加密技术广泛应用。
公钥加密系统采用的是非对称加密算法。
目前的数字签名是建立在公共密钥体制基础上,它是公用密钥加密技术的另一类应用。
它的主要方式是,报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。
发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。
然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。
(现代密码学课件)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
各种方法的比较
时戳法不适用于面向连接的应用过程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
议从加密到数字签名2004年3月24日,《中华人民共和国电子签名法(草案)》(下简称草案)经国务院原则通过,即将提请人大审议,这标志着我国首部信息化法律走出了立法第一步。
由于该草案明确了合同双方和认证机构在电子签名活动中的权利和义务,其技术细节受到了各方人士广泛关注。
笔者一直关注数字签名的发展,在此结合自已在学习加密、证书技术中的心得体会,试图就电子签名问题梳理出一个脉络,向广大网管朋友作一个浅显的介绍。
基本概念“电子签名”是广义的提法,是以保障基于网络交易平台下交易各方的合法权益为目的,满足和替代传统签名功能的各种电子技术手段,并不是手工签字或印章的图像化,其中“交易”是指个人信息交换、电子商务和电子政务等基于网络平台的活动;“交易各方”指从事这些活动的各方当事人;“网络”一般是针对互联网而言。
“数字签名”是通过密码技术实现电子交易安全的形象说法,是电子签名的主要实现形式。
它力图解决互联网交易面临的几个根本问题:数据保密;数据不被篡改;交易方能互相验证身份;交易发起方对自己的数据不能否认。
在密码学中,密码的本质是某种算法,由密码算法算出一个密钥(Key),然后使用该密钥对交易双方传送的数据加密。
该数据通称“报文”,加密前叫“明文报文”,即明文;加密后叫“密文报文”,即密文,密文没有密钥是不可读的。
所有加密算法本身都是公开的,属于纯数学的范畴,本文不作过多讨论;密码学只关注密钥管理的问题,因为加密通信的安全性只与密钥有关,这是本文关注的重点。
加密通信方式主要有对称加密和非对称加密两种。
在开始讨论之前,我们假定:在不安全的网络中(比如互联网),Alice是通信发起人;Bob是通信接收人;Alice与Bob相互信任;而Eve监听通信并伺机破坏:这是John Wiley 和Sons在经典教程《Applied Cryptography》(《应用密码学》)中提出的部分人物,这些人物和环境属性现已成为描述密码学技术的标准。
对称加密——解决数据本身加密问题顾名思义,对称加密就是“一把锁对应一把钥匙”,加锁开锁都是它。
有传统和现代的区别,以下用古老的替换加密法为例作一简单说明。
明文:HiIamAlice 密文:ZEECGCFEIP密钥(密码):A B C D E F G H I J K L M N O P Q R S T U V W X Y ZC H I M P A N Z E BD F G J K L O Q R S T X Y W U V密钥第一排是常规26个字母,而第二排则是约定的字母顺序,用来替换对应的字母。
除了字母,还可用其它约定符号起到同样的作用,都是异曲同工。
现代的对称加密方式多用繁复的数学算法进行,当前优秀的对称加密算法有DES、3DES、DEA、IDEA等,它们的运算速度快,加密性能优异。
我们以Alice和Bob的通信为例演示通信过程大致如下:1、由Alice通过某种对称加密算法算出一把密钥并传送给Bob;2、Alice用该密钥加密明文,得到密文;3、Alice将该密文传送给Bob;4、Bob用该密钥解密密文,得到明文。
Eve如果只在第3步截获密文,由于不知道密钥,将一无所获。
但当Eve监听到第1步,他和Bob得到的信息就一样多,到第4步,Eve的工作就是解密。
并且Eve还能在第3步开始之前中断Alice与Bob的通信线路,然后冒充Bob接受Alice的信息,解密、修改后再冒充Alice加密发送给Bob,Alice和Bob始终蒙在鼓中。
如果Bob受到利益损害,则Alice 可以指责说这是Bob自已泄露密钥导致。
可见对称加密的问题在于:1、必须事先传递密钥,造成密钥传递过程中(叫带内传输)极易被窃。
常规手段无法解决这种高风险。
2、密钥管理困难:假设有n方两两通信,如采用一把密钥,则密钥一旦被盗,整个加密系统崩溃;如采用不同密钥,则密钥数等于n*(n-1)/2,意味着100个人两两通信,则每人要保管4950把密钥!密钥管理成为不可能。
3、由于密钥共享,无法实现不可否认。
虽然对称加密对数据本身的加密能力足够强大,而且已经在政府机关和商业机构内部得到了广泛应用,但不解决上述问题,面向互联网的电子商务和电子政务就无从谈起。
公匙加密——解决密钥带内传输问题1975年下半年,斯坦福大学的教授狄菲和赫尔曼向全美计算机会议提交了名为《多用户加密技术》的论文,总结了正在探索中的公匙加密技术,但没有提出新的解决方案。
1976年5月,两人在全美计算机会议上又公布了离散指数密码算法,并在IEEE发表了著名的《密码学研究新方向》论文,提出了基于离散指数加密算法的新方案:交易双方仍然需要协商密钥,但离散指数算法的妙处在于:双方可以公开提交某些用于运算的数据,而密钥却在各自计算机上产生,并不在网上传递。
EVE如果只监听而不参加运算,他是不可能从窃得的信息推导出密钥的。
从而保证了密钥的安全。
这是公匙加密的雏形。
遗憾的是,这一类似于打电话状态的加密方法,要求交易方必须同时在线,且同样以相互信任为前提,所以仍然无法满足现代电子交易的需要。
1978年,麻省理工学院的三名教授瑞斯特(Rivest)、沙米尔(Shamir)和艾德曼(Adleman)人从这篇论文得到启发,开发了非对称RSA公共密钥算法。
由于这一算法既解决了密钥的带内传输问题,又不必交易双方同时在线,也不要求交易方必须信任,终于为现代电子商务的蓬勃发展铺平了道路。
非对称加密是对称加密“逆向思维”的结果,即“一把锁对应两把钥匙”,任意一把加锁,但必须由另一把开锁。
公匙加密体制的通信过程大致如下:1、Bob公开发布他的公匙;2、Alice用Bob的公匙加密明文得到密文并传送给Bob;3、Bob用它从不公开的私匙对该密文解密。
尽管这次Eve可以合法得到Bob的公匙,却无法对第2步截获的密文加以解密,因为他没有Bob的私匙。
Bob的公匙和私匙从何而来?为什么公匙加密的文件只有私匙才能解密?要搞清这两个问题,必须回过头来认识公匙加密的数学基础:大数不可能质因数分解假说。
只能被1和本身整除的数叫质数,例如13,质数是无穷多的。
得到两个巨大质数的乘积是简单的事,但想从该乘积反推出这两个巨大质数却没有任何有效的办法,这种不可逆的单向数学关系,是国际数学界公认的质因数分解难题。
R、S、A三人巧妙利用这一假说,设计出RSA公匙加密算法的基本原理:1、让计算机随机生成两个大质数p和q,得出乘积n;2、利用p和q有条件的生成加密密钥e;3、通过一系列计算,得到与n互为质数的解密密钥d,置于操作系统才知道的地方;4、操作系统将n和e共同作为公匙对外发布,将私匙d秘密保存,把初始质数p和q秘密丢弃。
国际数学和密码学界已证明,企图利用公匙和密文推断出明文——或者企图利用公匙推断出私匙的难度等同于分解两个巨大质数的积。
这就是Eve不可能对Alice的密文解密以及公匙可以在网上公布的原因。
至于“巨大质数”要多大才能保证安全的问题不用担心:利用当前可预测的计算能力,在十进制下,分解两个250位质数的积要用数十万年的时间;并且质数用尽或两台计算机偶然使用相同质数的概率小到可以被忽略。
公匙加密最大和惟一的问题是运算速度缓慢,理论上,对称加密算法的速度要比它快上了数百倍。
形象的说,公匙就是写有Bob名字、绝对坚固但特别笨重的邮箱,它可以放在任何地方,任何人都知道那是Bob的,所有人都能从邮箱的缝隙中塞进纸条。
但只有Bob才有惟一的开锁匙匙(私匙)。
所以在上面的通信过程中,Eve即使得到装有Alice纸条的Bob的笨重邮箱,也没有任何意义。
至此,密钥的“带内传输”问题解决了,也就解决了四个根本问题中的“保密”这一问题,但“不可否认”、“身份确认” 和“不被篡改”的问题又接踵而至:既然谁都能塞进纸条,Alice 不承认有他落款的纸条是他写的怎么办?单向Hash函数——实现身份验证的幕后英雄在公匙加密体系中,剩下三大任务任务都由“单向Hash函数算法”(下称Hash)来完成,由它配合公匙加密算法,最终完成身份确认、不可否认和不被篡改工作。
和公匙加密不同,Hash不是加密,只是函数;其作用不是生成密钥,而是生成报文的“数字指纹”。
正是这种数字指纹实现了“验证”、“不可否认” 和“不被篡改”。
Hash函数的工作原理并不复杂:1、通过数学算法,把未做处理的报文(不论是明文还是密文)转换为不定长的待输入字符串,称为预映射值;2、将预映射值再次转换为定长(一般更短)的输出字串,称Hash值,又叫消息摘要(Message Digest),预映射值可任意长,但Hash值总是定长;报文或预映射值有丝毫改动,则Hash值完全不同。
所谓“单向”,是指不可能由Hash值反推出预映射值或报文,但又不是加密,因为不存在解密的问题。
正由于其单向,也就没有了运算速度的障碍。
举个例子,就像一片玻璃(预映射值)很轻易就被打碎,但破碎的玻璃渣(Hash值)却不可能恢复到破碎前的状态。
这样我们就可以综合运用公匙算法和Hash算法,对上述加密通信过程重新设计一个完整的解决方案:1、Alice首先以对称算法生成密钥K,并用K将明文D生成密文DC;2、Alice用Bob 的公匙将对称密钥K加密为KB,将DC和KB封装;3、将封装后的DC和KB 用Hash算出Hash值H,用Alice的私匙加密为HA;4、将DC、KB和HA封装为一个数据块发送给Bob。
这时的Eve有公匙算法,有Hash算法,有Alice与Bob的公匙,惟独没有二人的私匙,所以在截获数据块后,可以分析出DC、KB和HA三个部份,其中DC是密文,没有密钥K 无法读取;K又被Bob的公匙加密成KB,没有Bob的私匙同样无法读取;虽然HA 可以由Alice的公匙还原为H,但从H不可能反推出预映射值,所以对Eve毫无意义。
Bob收信后,只需简单的对DC和KB再次用Hash算法算出Hash值HB,并将它与HA 比较,相同该数据块真,不同则该数据块假。
如果为真,则Bob用自己的私匙解密KB, 得到对称密钥K,再用K解密DC,得到D。
可见,只要Eve对D、KB、H和HA中任意一项有丝毫改动,那么Bob收信后都会认定该数据块无效,进而确认该数据块是否真的是Alice发来——就算Eve伪造了新的数据块DE、KE和HE,问题是他没有Alice的私匙,也就不可对HE加密,而他如果复制H值,又会因为DE、KE用Hash计算后值与H肯定不同而失败——这一番巧妙周旋,彻底斩断了Eve的黑手!以上在对Bob实现“身份验证”的同时对Eve实现“不可篡改”!而H之所以用Alice的私匙加密为HA的深意在于——由于公匙加密体系保证了只有Alice自己才有私匙,所以简单反推一下,我们不难看出一旦Bob的验证通过,Alice就已经绝对“不可否认”这整个数据块都是他自己的大作了。