议从加密到数字签名

合集下载

数字签名方案的实现

数字签名方案的实现

数字签名方案的实现欧家权、应用数学、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实现文件加密和数字签名

实训3-1:PGP实现文件加密和数字签名
save import...
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)

密码学第八讲:数字签名(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都比较有效,但在防止针对数据的有意攻击方面,则几乎没有提供任何保护。

下面讲到的加密技术则安全得多。

•私钥加密——私钥的含义,是指每台计算机都有一个密钥(代码),在它通过网络向另一台计算机发送信息包之前,可以使用该密钥对信息包进行加密。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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就已经绝对“不可否认”这整个数据块都是他自己的大作了。

相关文档
最新文档