白话数字签名

合集下载

数字签名

数字签名

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

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

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

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

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

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

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

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

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

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

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

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

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

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

简述数字签名的概念及应用

简述数字签名的概念及应用

简述数字签名的概念及应用
数字签名是一种加密技术,在数据传输或文档交易过程中,可以保证数据或文档的完整性、真实性、不可否认性和不可篡改性。

数字签名使用了公钥密码学的原理,通过对信息进行加密和签名来保护信息的安全和可靠性。

数字签名的应用非常广泛,其中最为常见的包括:
1.网络交易:数字签名可以用于在线支付、电子商务等方面,以保障交易的安全和真实性。

2.电子文档:数字签名可以用于电子文档的签名和验证,确保文档内容的完整性和真实性。

3.数字身份:数字签名可以用于验证数字身份、数字证书,以证明用户的身份和权限。

4.数字版权:数字签名可以用于保护数字版权,以确保数字作品的原创性和完整性。

总之,数字签名技术可以有效保护数字信息和电子文档等方面的安全和可靠性,是现代信息安全保障系统中不可或缺的重要组成部分。

数字签名名词解释

数字签名名词解释

数字签名名词解释数字签名是一种安全的认证和防篡改技术,用于保证数据的完整性、身份的真实性和通信的机密性。

数字签名是通过将特定的算法应用于数据生成一段不可逆的摘要,并用数字证书中的私钥进行加密。

数字签名由以下几个要素组成:1. 非对称加密算法:数字签名使用非对称加密算法,其中包括公钥和私钥。

公钥用于加密数据,私钥用于解密数据。

只有拥有私钥的人才能生成数字签名,即使拥有公钥的人也无法伪造数字签名。

2. 数字证书:数字签名需要使用数字证书来验证身份。

数字证书由证书颁发机构(CA)颁发,包含了用户的公钥和相关信息,并由CA的私钥签名。

接收方可以验证数字证书的完整性和真实性,以确认发送方的身份。

3. 加密算法:数字签名使用加密算法对数据进行加密,常用的包括RSA、DSA和ECDSA等。

这些算法具有较高的安全性和不可逆性,可有效保护数据的完整性和真实性。

数字签名的工作过程如下:1. 发送方生成消息的摘要:发送方使用特定的算法对消息进行哈希处理,生成唯一的摘要。

2. 发送方使用私钥加密摘要:发送方对摘要使用自己的私钥进行加密,生成数字签名。

3. 发送方将消息和数字签名一起发送给接收方。

4. 接收方获取发送方的公钥和数字签名。

5. 接收方使用发送方的公钥解密数字签名,得到摘要。

6. 接收方使用相同的算法对接收到的消息进行哈希处理,得到新的摘要。

7. 接收方比较两个摘要是否一致。

如果一致,表示消息没有被篡改;如果不一致,表示消息被篡改过。

通过数字签名,可以确保数据在传输过程中不受篡改。

此外,还可以验证数据的发送方身份,防止伪造和重放攻击。

数字签名广泛应用于电子邮件、电子合同、电子支付和网络通信等领域,提高了数据的安全性和可信度。

数字签名概述

数字签名概述

数字签名概述091120112 扈钰一、引言政治、军事、外交等活动中签署文件, 商业上签定契约和合同以及日常生活中在书信、从银行取款等事务中的签字, 传统上都采用手写签名或印鉴。

签名起到认证、核准和生效作用。

随着信息时代的来临, 人们希望通过数字通信网络进行迅速的、远距离的贸易合同的签名,数字或电子签名法应运而生,并开始用于商业通信系统, 诸如电子邮递、电子转帐、办公室自动化等系统中。

由此,能够在电子文件中识别双方交易人的真实身份,保证交易的安全性和真实性以及不可抵懒性,起到与手写签名或者盖章同等作用的签名的电子技术手段,称之为电子签名。

数字签名是电子签名技术中的一种,两者的关系密切。

目前电子签名法中提到的签名,一般指的就是"数字签名"。

数字签名与传统的手写签名的主要差别在于:(1)签名:手写签名是被签文件的物理组成部分,而数字签名不是被签消息的物理部分,因而需要将签名连接到被签消息上。

(2)验证:手写签名是通过将它与其它真实的签名进行比较来验证,而数字签名是利用已经公开的验证算法来验证。

(3)签名数字消息的复制品与其本身是一样的,而手写签名纸质文件的复制品与原品是不同的。

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

数字签名主要有以下几个作用:1、收方能确认或证实发方的签字,但不能伪造;2、发方发出签名后的消息,就不能否认所签消息;3、收方对已收到的消息不能否认;4、如果引入第三者,则第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。

三、数字签名原理数字签名采用了双重加密的方法来实现防伪、防赖。

通过一个单向函数对要传送的报文进行处理,得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。

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

什么是数字签名?

什么是数字签名?

什么是数字签名?什么是数字签名?从根本上来说,数字签名是一种确保电子文档(电子邮件、电子表格、文本文件等)真实可靠的方法。

“真实可靠”的含义是:您知道文档是谁创建的,并且知道在作者创建该文档之后,没有人对其进行过任何形式的修改。

数字签名依靠某些类型的加密技术来验证身份。

加密是指获得一台计算机要发送给另一台计算机的所有数据,然后将其编码为只有后者才能解码的形式的过程。

身份验证是指验证相关信息是来自可信来源的过程。

这两个过程共同实现数字签名的功能。

要对人员或计算机上的信息进行身份验证,有多种方法:•密码——用户名和密码的使用是最常见的身份验证方式。

您在计算机提示下输入用户名和密码。

计算机根据安全文件对二者进行核对并确认。

如果用户名或密码中有一个不匹配,计算机就不允许您进行进一步访问。

•校验和——校验和也许是确保数据正确的最古老的方法之一,它也提供了一种身份验证方式,因为无效的校验和表明数据受到了某种形式的损坏。

有两种方法可以用来确定校验和。

假设数据包的校验和为1个字节长,意味着校验和可以包含的最大值为255。

如果该数据包中其他字节的和是255或更小,则校验和将包含那个具体的值。

但如果其他字节的和大于255,则校验和为总值除以256后得到的余数。

请看以下示例:•1151÷256=4.496(四舍五入为4)•4x256=1024•1151-1024=127•CRC(循环冗余码校验)——CRC在概念上与校验和类似,但它使用多项式除法来确定CRC的值,其长度通常为16或32位。

CRC 的优势在于它非常精确。

如果有一个位不正确,CRC值就不匹配。

在防止传输过程中发生随机错误方面,校验和与CRC都比较有效,但在防止针对数据的有意攻击方面,则几乎没有提供任何保护。

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

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

数字签名

数字签名

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

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

数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。

数字签名是非对称密钥加密技术与数字摘要技术的应用。

原理:数字签名的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不需要笔迹专家来验证)。

简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。

这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。

它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。

基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。

包括普通数字签名和特殊数字签名。

普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir 数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。

特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。

显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。

主要功能:保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。

接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。

数字签名的名词解释是什么意思

数字签名的名词解释是什么意思

数字签名的名词解释是什么意思数字签名是当今信息时代中的一项重要技术,它在数据传输和信息安全方面发挥着关键的作用。

数字签名是一种用于验证文件、电子邮件或其他电子信息的方法,以确定其未被篡改并确保其来源的可靠性。

通过数字签名,可以确认信息的完整性、身份和真实性,从而有效预防数据篡改、伪造和不可信来源的问题。

数字签名采用了非对称加密算法的基本原理。

非对称加密算法是一种使用两个密钥(私钥和公钥)来加密和解密数据的方法。

发送方使用私钥对信息进行加密,同时生成一个数字签名,然后将加密后的信息和数字签名一起发送给接收方。

接收方使用发送方的公钥对加密信息进行解密,并使用发送方的公钥验证数字签名的有效性。

如果数字签名有效且与解密后的信息匹配,那么接收方就可以确认信息的完整性和来源的可靠性。

数字签名的过程是基于公钥基础设施(Public Key Infrastructure,PKI)构建的。

PKI是一套用于管理和验证公钥的系统,它由证书颁发机构(Certification Authority,CA)和注册中心(Registration Authority,RA)组成。

证书颁发机构负责发布数字证书,数字证书包含了公钥和其他相关信息,用于验证和识别证书持有者的身份。

注册中心则负责验证证书请求的合法性,并与证书颁发机构进行协调。

数字签名的工作原理是基于哈希算法的。

哈希算法是一种将任意长度的数据转换为固定长度散列值的函数,在数字签名中用于生成消息摘要。

发送方会先对原始信息应用哈希算法生成摘要,并使用自己的私钥对摘要进行加密,从而生成数字签名。

接收方则会使用发送方的公钥对数字签名进行解密,并对原始信息应用同样的哈希算法生成自己的摘要。

如果接收方生成的摘要与解密后的数字签名匹配,就表明原始信息未被篡改。

数字签名在信息安全领域有广泛的应用。

首先,它可以用于验证软件的完整性,确保软件在传输过程中没有被修改或植入恶意代码。

其次,数字签名也可以应用在电子邮件和文件传输中,确保信息内容的机密性和完整性。

第10讲数字签名

第10讲数字签名
2) 用户私钥KRa =x(只针对用户a) 针对用户a任意选择x∈Zq*,形成用户私钥
3) 用户公钥分量KUa= y(只针对用户a) 针对x计算y=gx (mod p),形成用户公钥分
量。 4) 密值k(属于某次签名) 针对某次签名随机选取k ∈Zq*
2. DSA的签名过程
签名方先算出消息明文M的散列值 H(M)=SHA-1(M)∈Zp* ,然后随机选取 密值k ∈Zq*,计算: r=(gk (mod p)) (mod q) s=(H(M)+xr)k-1(mod q)
3. 用非对称密码体制实现数字签名 用私钥加密实现签名
y sigkRa(m) EkRa(m)
用公钥解密实现验证
ver(m, y) true m EkUa( y)
属于严格意义上的数字签名 本质上是公钥加密体制的逆用 4. 数字签名的种类 直接数字签名(通信双方为签名方与验
证方) 需仲裁的数字签名(通信三方为签名方、
签名
消息 M
加 密 E
验证
M

M

EKR(M)


D
比较
M’
私钥KR
公钥KU
2. 带保密功能的数字签名──签名后再加密
A→B :EK [M+EKRa[M] ] 兼有信息完整性认证的作用 签名过程会因消息长而更费时 对消息本身有保密功能 除了需要签名者的“公钥-私钥”外,双方
还需有共享密钥 过程如下(图略)
3) 接收者Y 用与A共享的密钥KYA 解密上述信 息,并保存经A验证的签名和经A认证的消息
仲裁机制: 当Y需要抗击X抵赖时,可向A发送 EKYA[IDX || M || EKXA [IDX || H(M)]]; A用KYA恢复出IDX 、M 、EKXA [IDX || H(M)]; 然后用KXA恢复H(M),并通过重算验证签名; 从而裁决X确有此签名。 可用前提:

数字签名通俗解释

数字签名通俗解释

数字签名通俗解释好嘞,咱今儿个就来好好唠唠数字签名是个啥玩意儿。

你知道在古代啊,人们要是写封信或者立个啥重要的文书,咋证明这是自己写的呢?那可能就得按个手印或者盖个自己独有的印章。

这手印和印章啊,就有点像现在数字签名的那个意思。

数字签名呢,就是在这个数字世界里,用来证明某个消息或者文件是某个特定的人发出来的一种特殊标记。

比如说啊,你在网上给你的朋友发了个超级机密的小纸条,就像那种只属于你们俩之间的小秘密。

你可不想这个小纸条在半路上被人篡改了,也不想别人冒充你发这种小纸条。

这时候数字签名就闪亮登场啦。

它就像是这个小纸条上你的专属防伪标志。

那这个数字签名具体是咋弄出来的呢?这就有点像魔术师变魔术,不过没那么神秘啦。

简单说啊,发送方有一套特殊的算法,就像是一种特殊的密码本。

他用这个算法把要发送的东西处理一下,就生成了这个数字签名。

这个数字签名可不是随便乱加的东西,它和要发送的消息是紧密相关的,就像锁和钥匙一样,是配套的。

接收方拿到这个带着数字签名的消息之后呢,他也有自己的办法来验证。

这就好比你朋友收到你的小纸条,他得有个方法确定这个小纸条真的是你写的,而且没有被人动过手脚。

他用一种对应的验证方法,就像是拿着一把特殊的钥匙去开锁。

如果能验证成功,那就说明这个消息确实是你发的,而且没有被篡改。

要是验证失败呢,那可就有问题喽,就像你发现这个小纸条好像被人偷偷打开又重新封上了一样。

再打个比方啊,数字签名就像是你给你的宠物狗脖子上挂的一个特制小牌子。

这个小牌子上面有特殊的标记,只有你知道这个标记代表这是你的狗。

当你的狗跑到别人那里去的时候,别人看到这个小牌子就能确定这是你的狗。

而且啊,如果有人想偷偷把这个小牌子换掉或者在上面乱涂乱画,那肯定会被发现的,因为这个小牌子的标记是独一无二的,而且和你的狗是有特殊联系的。

数字签名在很多地方都特别有用呢。

比如说在电子商务里,你在网上买东西,商家得确定是你下的订单,你也得确定这个订单信息在传输过程中没有被篡改。

数字签名的使用

数字签名的使用

数字签名的使用1概述1.1概念与功能数字签名是防止他人对传输的文件进行破坏.以及确定发信人的身份的手段该技术在数据单元上附加数据,或对数据单元进行秘密变换.这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,从而达到保护数据,防止被人进行伪造的目的。

简单说来,数字签名是指用密码算法,对待发的数据进行加密处理,生成一段数据摘要信息附在原文上一起发送,接受方对其进行验证,判断原文真伪其签名思想是签名只能南一个人(个体)创建,但可以被任何人校验.数字签名技术可以解决数据的否认、伪造、篡改及冒充等问题,满足上述要求的数字签名技术有如下主要功能:(1)发送者事后不能否认自己发送的签名;(2)接收者能够核实发送者发送的签名;(3)接收者不能伪造发送者的签名;(4)接收者不能对发送者的原文进行篡改;(5)数据交换中的某一用户不能冒充另一用户作为发送者或接收者1.2数字签名与传统手写签名差别(1)签署文件方面:一个手写签名是所签文件的物理部分,而数字签名不是,所以要使用其他的办法将数字签名与所签文件“绑定”。

(2)验证方面:一个手写签名是通过和一个真实的手写签名相比较来验证的而数字签名是通过一个公开的验证算法来验证:(3)签名的复制:一个手写签名不容易被复制,因为复制品通常比较容易被鉴别来:而数字签名很容易被复制,因为一个文件的数字签名的复制品和原文件是一样的:所以要使用数字时问戳等特殊的技术避免数字签名的重复使用。

(4)手书签名是模拟的,且因人而异。

数字签名是0和1的数字串,因人和消息而异。

一个安全有效的签名方案必须满足以下要求:1)任何人都可以验证签名的有效性;2)除了合法的签名者外,其他人伪造签名是困难的;3)对一个消息的签名不可复制为另一个消息的签名;4)签名的消息不可被篡改,一旦被篡改,则任何人都可以发现消息与签名的不一致;5)签名者事后不能否认自己的签名。

安全的数字签名实现的条件:发方必须向收方提供足够的非保密信息,以便使其能验证消息的签名,但又不能泄露用于产生签名的机密信息,以防止他人伪造签名。

数字签名介绍

数字签名介绍
则Ver(m1m 2 mod n, y1y 2 mod n) true

补救方法
➢ 添加Hash函数
10
签名与hash函数

对消息的hash 值(压缩消息)进行签名


提高签名效率
Hash函数要满足的性质(抵抗相应的攻击)
➢ Preimage
resistant
➢ Second preimage resistant
(d)如果p 2 L -1,转到步骤(e),否则,检测p是否为素数,如果p为素数,
输出(p,q)并存储(S,i)。
(e)置i i 1,j j n 1。
(5)返回步骤(2)。
输出:一个160比特长的素数q 和一个L 比特长的素数p,
| p -1),L 512 64l。
并且q(
➢ ElGamal签名
➢ 多重签名
➢ Schnorr签名
➢ 代理签名
➢ DSA签名
➢ 一次签名
➢ 不可否认签名
6
RSA签名

RSA数字签名
(1)密钥生成:选取两个互素的大素数p 和q , 令n pq , n
p 1 q 1 ,选择e {1,..., n },满足(e, n ) 1 ,计算
证明:
y r ' r ' s ' y r ' ( r h g i y j ) s ' y r ' js ' r hs ' g is '
yr g y g
r s
m
y r ' r ' s ' =g mr
1
mr 1 sr 1

数字签名的名词解释

数字签名的名词解释

数字签名的名词解释数字签名是一种在计算机和网络通信中广泛应用的加密技术,用于保护信息的完整性、真实性和不可抵赖性。

它在电子商务、电子政务、数字版权保护等领域扮演着重要的角色。

一、数字签名的基本原理数字签名的基本原理是基于公钥密码学中的非对称加密算法。

它涉及两个密钥:私钥和公钥。

私钥由信息的发布者保留,公钥则公开给所有人使用。

发布者使用私钥对原始信息进行加密得到数字签名,而验证者则使用公钥对签名进行解密,最终判断签名的真实性。

二、数字签名的作用1. 确保信息的完整性:通过数字签名,接收者可以验证信息在传输过程中是否被篡改。

一旦信息被篡改,签名验证就会失败,从而确保信息的完整性。

2. 保证信息的真实性:数字签名可以验证信息的真实来源。

由于私钥只有发布者拥有,其他人无法伪造签名,这就保证了信息的真实性。

3. 实现不可抵赖性:数字签名可以防止信息发布者否认其发布过的内容。

一旦发布者使用私钥生成了签名,就无法否认自己发布过该信息,这种不可抵赖性在法律上有着重要的意义。

三、数字签名的应用场景1. 电子商务:数字签名可以用于验证电子商务平台上的交易信息,确保商家和消费者的交易真实可靠,避免双方的纠纷。

2. 电子政务:政府机关可以使用数字签名确保公示文件的真实性和完整性,以及防止文件被篡改以达到欺骗公众目的。

3. 数字版权保护:数字签名可以保护数字内容的版权,防止盗版和非法传播。

发行者可以对数字内容进行签名,确保内容的合法性和真实性。

4. 软件安全:数字签名也广泛应用于软件安全领域,用于验证软件的真实来源和完整性,防止恶意软件的传播和篡改。

四、数字签名的发展趋势随着科技的不断进步和网络的普及,数字签名技术也在不断发展和完善。

目前,已经出现了更多高级的数字签名技术,如基于椭圆曲线密码学的签名算法,相较于传统算法,它具有更高的效率和更短的密钥长度。

此外,随着区块链技术的兴起,数字签名也得到了进一步的应用。

区块链的去中心化特性使得数字签名能够在无需信任第三方的情况下实现身份验证和交易验证,从而进一步提高了数字签名的安全性和实用性。

什么是数字签名?

什么是数字签名?

什么是数字签名?数字签名作为一种重要的信息安全技术,在现代社会中得到了广泛的应用。

那么,什么是数字签名呢?数字签名是一种基于公钥密码学的技术手段,用来保证数字信息的机密性、完整性和不可否认性。

它利用非对称加密算法,确保发送方可以被识别,并确保所传递的信息在传输过程中不被篡改。

那么,数字签名具体是如何实现的呢?下面将从三个方面对数字签名进行深入解析。

1. 数字签名的原理数字签名的原理是利用加密算法生成一对密钥,其中一个是私钥,另一个是公钥。

发送方使用私钥对所传递的信息进行加密,并将加密后的信息与私钥一起发送。

接收方则使用发送方的公钥对接收到的加密信息进行解密,并进行验证。

通过验证过程,接收方可以判断所接收到的信息是否为发送方发送的,并且判断信息在传输过程中是否被篡改。

2. 数字签名的优势数字签名有以下几个优势:(1)机密性:数字签名利用非对称加密算法,确保信息在传输过程中不被窃取。

(2)完整性:数字签名可以确保信息在传输过程中不会被篡改,保证信息的完整性。

(3)不可否认性:数字签名可以确保发送方无法否认发送的信息,保证信息的可信度和真实性。

3. 数字签名的应用领域数字签名广泛应用于各个领域,包括但不限于以下几个方面:(1)电子商务:数字签名可以确保在线交易的安全性,保护消费者的个人信息和交易记录。

(2)电子合同:数字签名可以替代传统的纸质合同,提高签约的效率和安全性。

(3)电子证据:数字签名可以作为电子证据的法律依据,保护各方的合法权益。

(4)数字版权:数字签名可以保护数字内容的版权,防止盗版和篡改。

通过以上三个方面的深入解析,我们对数字签名有了更为清晰的认识。

数字签名作为一种重要的信息安全技术,不仅能够确保信息的机密性、完整性和不可否认性,还广泛应用于各个领域。

在信息时代,数字签名的重要性将愈发凸显。

数字签名

数字签名

预备知识
定义:设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的有 效签名。

数字签名

数字签名

数字签名(Digital Signatures)是一种附加在消息后的一些数据,它基于公钥加密基础,用于鉴别数字信息。

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

数字签名只有发送者才能产生,别人不能伪造这一段数字串。

由于签名与消息之间存在着可靠的联系,接收者可以利用数字签名确认消息来源以及确保消息的完整性、真实性和不可否认性。

(1)数据完整性:由于签名本身与要传递的消息之间是有关联的,消息的任何改动都将引起签名的变化,消息的接收方在接收到消息和签名之后经过对比就可以确定消息在传输的过程中是否被修改,如果被修改过则签名失效。

这也显示出了签名是不能够通过简单的拷贝从一个消息应用到另一个消息上。

(2)真实性:由于与接收方的公钥相对应的私钥只有发送方有,从而使得接收方或第三方可以证实发送者的身份。

如果接收方的公钥能够解密签名,则说明消息确实是发送方发送的。

(3)不可否认性:签名方日后不能否认自己曾经对消息进行的签名,因为私钥被用在了签名产生的过程中,而私钥只有发送者才拥有,因此只要用相应的公钥解密了签名,则可以确定该签名一定是发送者产生的。

但是,如果使用对称性密钥进行加密,不可否认性是不被保证的。

数字签名的作用:①如果他人可以用公钥正确的解开数字签名,则表示数字签名的确是由签名者产生的。

②如果消息M是用散列函数h得到的消息摘要h(M),和消息的接收方从接收到的消息M'计算出散列值h(M'),这两种信息摘要相同表示文件具有完整性。

数字签名机制提供了一种数字鉴别方法,普遍适用于银行,电子商务,电子办公等。

它可以解决下述安全鉴别问题:①接收方伪造:接收方伪造一份文件,并声称这是发送方发送的,②发送者或接受者否认:不承认自己曾经发送或接收过文件。

③第三方冒充:网上的第三方用户冒充发送或接收信息④接收方篡改:接收方对收到的文件进行改动。

数字签名的签名过程:P158图2.2.1 数字签名的签名过程在形成数字签名之前,首先要利用Hash 函数形成一个固定长的消息摘要H(M)。

白话hash和数字签名,保证你看得懂

白话hash和数字签名,保证你看得懂

白话hash和数字签名,保证你看得懂摘要:最近有朋友在后台问为啥最近老介绍hash相关文章,其实hash算法在信息安全中非常重要,尤其是作为数字签名中非常重要的一环,今天就来详细把这个事情讲清楚白话hash 可能以前的文章讲得不够简单,hash算法其实就是将一段非常长的数据通过hash变换为一个固定长度相对较短的数据,简称“摘要”,你可以理解成把一本书通过hash变成一段很短的话,算法最关键的要点是,哪怕你改动了这本书里面的一个标点符号,hash后的摘要都会改变。

最近有朋友在后台问为啥最近老介绍hash相关文章,其实hash 算法在信息安全中非常重要,尤其是作为数字签名中非常重要的一环,今天就来详细把这个事情讲清楚可能以前的文章讲得不够简单,hash算法其实就是将一段非常长的数据通过hash变换为一个固定长度相对较短的数据,简称“摘要”,你可以理解成把一本书通过hash变成一段很短的话,算法最关键的要点是,哪怕你改动了这本书里面的一个标点符号,hash后的摘要都会改变。

(累死我了,我发现说大白话讲技术问题挺难的)以MD5这种hash算法为例,他可以将任意长度的数据变成128位的散列值,所谓任意长度的意思就是你的数据可以是一篇文章,一部电影,或者只是一个字母,哪怕是个空字符串,下面这个就是MD5一个空字符串后的值:MD5("")= d41d8cd98f00b204e9800998ecf8427e这个例子只是说明hash可以将任意长度的数据变为一个固定长度的值,算法的精妙在于这个值对于不同的数据还是不一样的,如果不同的数据生成的hash值一样,就是有名的“hash碰撞了”其实hash适合于比较大的数据做摘要,不能作为加密使用,很多误传为MD5加密,也有人称之为单向加密,就是指不能通过hash后的值不能推导原来的数据,这种说法不够严密,比如很多网站喜欢将用户的密码经过MD5变换后存储,主要防止数据库泄露后直接查看用户的密码,真正密码比对时对用户输入的密码进行md5变换然后和存储的md5值比较从密码学上讲加密过程都要对应解密过程,即可以通过密文还原明文,所以以上的密码保护方法不是严格意义上的数据加密解密。

白话数字签名 3 Web程序中的数字签名 转帖word资料23页

白话数字签名 3   Web程序中的数字签名 转帖word资料23页

白话数字签名 3 Web程序中的数字签名转帖白话数字签名(3)--Web程序中的数字签名摘要阅读本文并探索-如何突破Web程序无状态性这个让人抓狂的障碍实现自动显示签名结果和批量签名功能。

-如何将签名功能封装到一个实现了IHttpHandler接口的类库中,使Client端的代码尽可能的简单。

-使用数字签名API函数需要注意的几个问题。

本文介绍在Web程序中使用数字签名所遇到的特殊困难和解决方法,并给出一个超简单但相当实用的DEMO。

DEMO程序的效果让我们先来看看实现之后的效果。

让Client端代码尽可能的简单我们将数字签名操作的复杂性全部封装到一个命名空间为mylib.util.lnca的类库中,类库只暴露一个名为Signer的类。

Signer的Client(本例中的Default.aspx)的职责只有-构造一个含有待签名的数据的Dictionary作为Signer的输入,然后调用Signer.do_sign()函数进行数字签名。

-在页面上放置一个专门用于取得并显示签名结果的按钮,并将这个按钮的ClientID传递给Signer,这样Signer在完成签名后就可以自动触发这个按钮。

在将程序发布给最终用户时,要把这个按钮的top属性设为-10000,这样最终用户就看不到这个按钮了。

Default.aspx的设计视图的截图Default.aspx的源代码如下%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherit s="_Default"%!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""htmlxmlns="headrunat="server"title无标题页/title/head body formid="form1"runat="server"table tr td asp:ButtonID="do_sign_button"runat="server"Text="签名"OnClick="do_sign_button_Click"/asp:LabelID="Label1"runat="server"Text="Label"/asp:Label/td td asp:ButtonID="show_signed_data_button"runat="server"Text="显示签名结果(自动)"OnClick="show_signed_data_button_Click"//td /tr tr tdstyle="border:solid 1px black;vertical-align:top;"asp:GridViewID="sign_candidates_gridview"runat="server"Caption="签名前的数据"CellPadding="4"ForeColor="#333333"Font-Names="宋体"Font-Size="10pt"FooterStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/RowStyleBackColor="#E3EAEB"/EditRowStyleBackColor="#7C6F57"/SelectedRowStyleBackColor="#C5BBAF"Font-Bold="True"ForeColor="#333333"/PagerStyleBackColor="#666666"ForeColor="White"HorizontalAlign=" Center"/HeaderStyleBackColor="#1C5E55"Font-Bold="True"ForeColor="White"/AlternatingRowStyleBackColor="White"//asp:GridView/td tdstyle="border:solid 1px black;vertical-align:top;"asp:GridViewID="signed_data_gridview"runat="server"Caption="签名结果"BackColor="LightGoldenrodYellow"BorderColor="Tan"BorderWidth="1px"CellPadding="2"ForeColor="Bla ck"OnRowDataBound="signed_data_gridview_RowDataBound"Font-Names="宋体"Font-Size="10pt"FooterStyleBackColor="Tan"/SelectedRowStyleBackColor="DarkSlateBlue"ForeColor="GhostWhite" /PagerStyleBackColor="PaleGoldenrod"ForeColor="DarkSlateBlue"Hor izontalAlign="Center"/HeaderStyleBackColor="Tan"Font-Bold="True"/AlternatingRowStyleBackColor="PaleGoldenrod"//asp:GridView/td/tr/table/form/body/html using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Collections.Generic;using mylib.util.lnca;public partialclass _Default:System.Web.UI.Pageprotectedvoid Page_Load(object sender,EventArgs e)protectedvoid do_sign_button_Click(object sender,EventArgs e) //这是待签名的数据,保存在一个Dictionary中。

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

白话数字签名(1)——基本原理(新!)摘要本系列通过通俗易懂的讲解,让您就像读小说一般,轻轻松松就能理解数字签名的基本原理和应用方法(即使您是一个并不精通计算机的企业老总,也能读懂本篇文章)。

然后我们再逐步深入技术细节,最后将给出一个在B/S信息系统中使用数字签名的DEMO。

由于数字签名基于非对称加密技术,所以我们需要先啰嗦一下对称加密和非对称加密技术。

对称加密何谓加密?加密是一种“把数据搞乱掉”的技术。

加密技术涉及到4种东东:明文:可以被人或程序识别的数据。

例如一个文本文件、一段歌词、一个Word文档、一首MP3、一个图片文件、一段视频等等。

加密算法:将数据搞乱掉的方法。

密钥(密码):一个你在进行加密操作时给出的字符串,让加密算法不但把明文“搞乱掉”,而且要乱得“与众不同”。

这样即使别人搞到了解密算法,如果没有当初加密时所使用的密码,一样无法进行解密操作。

密文:明文被加密算法和密钥加密后的结果。

它看上去就是一堆乱码,没有人或程序能知道它到底表示什么信息。

作为加密的一个实例,我将使用由我杜撰的“景氏替换加密算法”演示一下加密过程。

明文:good good study, day day up.密钥:google景氏替换加密算法:将明文中的所有的字母“d”替换成密钥。

密文:将“good good study, day day up.”中的所有字母“d”替换成“google”,就得到密文“googoogle googoogle stugoogley, googleay googleay up.”。

这个密文乱得还可以吧?一般人看了肯定不知道它是什么意思。

那么什么是解密呢?解密就是把密文再变回明文的过程。

例如“景氏替换解密算法”就是:将密文中所有与密钥相同的字符串替换成“d”。

密文:googoogle googoogle stugoogley, googleay googleay up.密钥:google景氏替换解密算法:将密文中所有与密钥相同的字符串替换成“d”。

明文:将“googoogle googoogle stugoogley, googleay googleay up.”中的所有“google”替换成“d”,就得到了明文“good good study, day day up.”。

您肯定已经注意到了,我们在进行加密和解密时使用的密钥必须是相同的,例如在上例中,加密和解密都必须使用相同的密钥“google”。

所以像“景氏替换加密算法”这种就被称为对称加密算法。

目前最为流行的对称加密算法是DES和AES,此外,对称加密算法还有IDEA、FEAL、LOKI、Lucifer、RC2、RC4、RC5、Blow fish、GOST、CAST、SAFER、SEAL等。

WinRAR的文件加密功能就是使用的AES加密算法。

非对称加密非对称加密算法是一类与众不同的加密算法,它的密钥不是1个,而是2个(一对),我们先姑且称它们为密钥K1和密钥K2。

非对称加密算法的特点是,如果用密钥K1进行加密,则有且仅有密钥K2能进行解密;反之,如果使用密钥K2进行了加密,则有且仅有密钥K1能进行解密。

注意“有且仅有”的意思——如果用密钥K1进行了加密,是不能用密钥K1进行解密的;同样,如果用密钥K2进行了加密,也无法用密钥K2进行解密。

这是一个非常重要的特性,至于如何在实际中运用这个特性,请看下文。

我想给Clark传送一个AV小电影,又怕被他的老婆发现......话说俺得了一个很不错的AV小电影,想通过网络传送给Clark,可是又怕被他的老婆发现(因为Clark 的老婆是一个超级黑客,她可以使用sniffer技术截获任何通过网线传送给Clark的数据。

别跟我说用VPN,它超出了本文讨论的范围),怎么办呢?对了,我们需要一个“将数据搞乱掉”的技术——加密技术。

我先使用WinRAR对小电影进行压缩,然后加上密码“TswcbyyqjsjhfL”(还记得么?WinRAR的文件加密功能使用的是叫做AES的对称加密算法)。

接着,将这个加密后的文件通过QQ传送给Clark。

然后,兴冲冲地拨打Clark的手机:“喂?Clark么?好久不见,呵呵......我给你发了个好东东呦,在QQ上,收到没?......密码是TswcbyyqjsjhfL,对,就是天生我才必有用,千金散尽还复来的首字母,第一个和最后一个字母要大写呦......”可是,Clark,我是真的不知道你的老婆大人刚刚就在你的身边呀!而且你也知道,我打电话从来都是喜欢很大声的......呜呜呜......在Clark跪了一夜的搓衣板之后,我们都明白:如果是已经保存在自己硬盘上的文件,使用对称加密技术进行加密是没有问题的;如果是两个人通过网络传输文件,使用对称加密就很危险——因为在传送密文的同时,还必须传送解密密钥。

我们需要一个与众不同的加密算法,一个不需要传递解密密钥的加密算法。

非对称加密正好可以满足我们的需要。

基本思路是这样的:首先,生成一对满足非对称加密要求的密钥对(密钥K1和密钥K2)。

然后,将密钥K1公布在网上,任何人都可以下载它,我们称这个已经公开的密钥K1为公钥;密钥K2自己留着,不让任何人知道,我们称这个只有自己知道的密钥K2为私钥。

当我想给Clark传送小电影时,我可以用Clark的公钥对小电影进行加密,之后这个密文就连我也无法解密了。

这个世界上只有一个人能将密文解密,这个人就是拥有私钥的Clark。

后来......后来,Clark痛定思痛,决定申请一个数字证书。

流程是这样的:首先,登录当地的数字证书认证中心网站,填表->出示个人有效证件原件和复印件->缴费->等待数字证书认证中心制作数字证书->领取数字证书。

如果您的公司需要申请大量的数字证书,还可以与认证中心的销售人员商量,先领取免费的试用版的数字证书供技术人员试用。

后来的后来,我又得到了一本电子版的不良漫画,当然,我又想到了Clark。

我先在数字证书认证中心下载了Clark的公钥证书(就是一个含有公钥信息的文件),使用非对称加密算法对不良漫画进行加密,再将密文通过QQ传送给Clark。

然后,我兴冲冲地拨打Clark的手机:“喂?Clark么?好久不见,呵呵......我给你发了个好东东呦,在QQ上,收到没?......已经用你的公钥加密了。

用你的私钥解密就行了^_^”Clark兴冲冲地插入他的私钥(忘了说了,私钥并不是一个文件,而是一个USB设备,外形就跟U盘一样,至于为什么要这样,下一篇再说),解密,然后开始看漫画,完全没察觉他的老婆大人就在身后......Clark,俺这个月手头有点紧......唉,这个月买了太多的书,到月底揭不开锅了。

正巧在QQ上遇到了Clark:1-2-3:“Clark,我需要200两纹银,能否借给我?”Clark:“没问题。

我这就给你转账。

请给我一张借条。

”1-2-3:“太谢谢了,我这就用Word写一个借条给你。

”然后,我新建一个Word文档,写好借条,存盘。

然后,然后怎么办呢?我不能直接把借条发送给Clark,原因有:1. 我无法保证Clark不会在收到借条后将“纹银200两”改为“纹银2000两”。

2. 如果我赖账,Clark无法证明这个借条就是我写的。

3. 普通的Word文档不能作为打官司的证据。

好在我早就申请了数字证书。

我先用我的私钥对借条进行加密,然后将加密后的密文用QQ发送给Clark。

Clark收到了借条的密文后,在数字证书认证中心的网站上下载我的公钥,然后使用我的公钥将密文解密,发现确实写的是“借纹银200两”,Clark就可以把银子放心的借给我了,我也不会担心Clark会篡改我的借条,原因是:1. 由于我发给Clark的是密文,Clark无法进行修改。

Clark倒是可以修改解密后的借条,但是Clark没有我的私钥,没法模仿我对借条进行加密。

这就叫防篡改。

2. 由于用我的私钥进行加密的借条,有且只有我的公钥可以解密。

反过来讲,能用我的公钥解密的借条,一定是使用我的私钥加密的,而只有我才拥有我的私钥,这样Clark就可以证明这个借条就是我写的。

这就叫防抵赖。

3. 如果我一直赖着不还钱,Clark把我告上了法庭,这个用我的私钥加密过的Word文档就可以当作程堂证供。

因为我国已经出台了《中华人民共和国电子签名法》,使数字签名具有了法律效力。

您一定已经注意到了,这个使用我的私钥进行了加密的借条,具有了防篡改、防抵赖的特性,并且可以作为程堂证供,就跟我对这个借条进行了“签名”的效果是一样的。

对了,“使用我的私钥对借条进行加密”的过程就叫做数字签名。

(由于数字签名算法的速度比较慢,所以在实际对文件签名的过程比上面提到的方法稍稍复杂一些,这个在下一篇再讲)。

我是1-2-3,我真的是1-2-3,我是真的1-2-3正如您已经知道的,Clark的老婆是一名超级黑客——就是传说中能用计算机作任何事的人。

这不,不久前她就轻松入侵了QQ数据库,下载了Clark的所有好友的ID和密码以及聊天记录。

然后,时不时地伪装成Clark的好友跟Clark聊天,搞得Clark最近总是神经兮兮、疑神疑鬼的。

这不,昨天我在QQ上遇到了Clark:1-2-3:“Clark,最近还好吧?我又搞到一个好东东呦,要不要?”Clark:“48475bbt556”Clark并不是疯掉了,那个“48475bbt556”也不是我跟Clark之间的什么通关暗语。

这个“48475bbt556”就是Clark在键盘上胡乱敲上去的,不过,我却知道Clark是什么意思。

我立刻把“48475bbt556”粘贴到Word 里,然后用我的私钥对这个Word文档加密,再将这个Word文档发送给Clark。

Clark在那边用我的公钥将Word文档解密,打开,发现里面写的就是“48475bbt556”,就知道QQ这边的确就是真正的我本人了。

因为拥有我的私钥的人在这个世界上就只有我一人而已,Clark的老婆大人就是再神通广大也模仿不了,这就是数字签名的验证功能。

顺便提一句,不但人可以申请数字证书,设备(例如Web服务器)也可以申请数字证书(叫作设备证书)。

利用数字签名的验证功能,就可以验证服务器的身份了,这可是防钓鱼的终极解决方案呦。

思考题如果Clark每次都向我发送相同的字符串(例如“1234”),而不是每次在键盘上胡乱地(随机地)敲一些字符,Clark的老婆就会利用Clark的懒惰模仿我跟Clark聊QQ,这是为什么?本篇到此结束,下一篇将介绍电子签名技术的产品&设备。

白话数字签名(2)——软件&设备然而它太慢了非对称加密算法有一个重大缺点——加密速度慢,或者说得更拽一些,编码率比较低。

相关文档
最新文档