数字签名科普知识

合集下载

简述数字签名的基本原理

简述数字签名的基本原理

简述数字签名的基本原理数字签名是一种用于保证数据完整性、认证数据来源和防止抵赖的技术手段。

它在现代信息安全领域中得到了广泛应用。

数字签名的基本原理是利用公钥密码学中的非对称加密算法,将数据进行加密并附加上数字签名,以确保数据的完整性和真实性。

本文将从数字签名的基本原理、数字签名的分类以及数字签名的应用三个方面进行阐述。

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

在数字签名的过程中,发送方使用自己的私钥对数据进行加密,然后将加密后的数据和公钥一起发送给接收方。

接收方使用发送方的公钥对数据进行解密,然后再使用公钥对数字签名进行验证,以确保数据的完整性和真实性。

数字签名的基本原理可以用以下步骤来描述:1. 发送方使用自己的私钥对数据进行加密。

2. 发送方将加密后的数据和公钥一起发送给接收方。

3. 接收方使用发送方的公钥对数据进行解密。

4. 接收方使用公钥对数字签名进行验证,以确保数据的完整性和真实性。

数字签名的基本原理可以保证数据的完整性、真实性和不可抵赖性,是现代信息安全领域中不可或缺的技术手段。

二、数字签名的分类数字签名可以分为以下几类:1. 基于RSA算法的数字签名RSA算法是一种非对称加密算法,它可以用于数字签名。

在基于RSA算法的数字签名中,发送方使用自己的私钥对数据进行加密,接收方使用发送方的公钥对数据进行解密,并使用公钥对数字签名进行验证。

2. 基于DSA算法的数字签名DSA算法是一种数字签名算法,它可以用于数字签名。

在基于DSA算法的数字签名中,发送方使用自己的私钥对数据进行加密,接收方使用发送方的公钥对数据进行解密,并使用公钥对数字签名进行验证。

3. 基于ECDSA算法的数字签名ECDSA算法是一种基于椭圆曲线密码学的数字签名算法,它可以用于数字签名。

在基于ECDSA算法的数字签名中,发送方使用自己的私钥对数据进行加密,接收方使用发送方的公钥对数据进行解密,并使用公钥对数字签名进行验证。

什么是数字签名?

什么是数字签名?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4数字签名解析

4数字签名解析

2
3 4
DSS概述
vDSS (Digital Signature Standard) v1991年,由NIST公布 v1993年,公布修改版 v美国联邦信息处理标准FIPS PUB 186 v采用数字签名算法DSA ,其签名长度320bit v只能用于数字签名,不能用于加密 v/fipspubs/fip186.htm
v A: 对EKXA[IDX‖H(EKXY[M])]解密后通过验证杂凑值以验证X的签
名,但始终未能读取明文M, 然后对X发来的消息加一时戳,再用 KAY加密后发往Y; v Y: 解密A发来的消息M,并可将M和签名保存起来。
仲裁数字签名
v存在问题:
§ 仲裁者可和发方共谋以否认发方曾发过的消息; § 仲裁者也可和收方共谋以伪造发方的签名.
提纲
1 数字签名的基本概念 数字签名的产生方式 数字签名的执行方式 数字签名标准
2
3 4
数字签名 执行方式
直接数字 签名
仲裁数字 签名
直接数字签名
v 只有通信双方参与,并假定双方有共享的秘密钥或接收一 方知道发方的公开钥。 v E.g.
直接数字签名
v 缺点:方案的有效性依赖于发送方的保密密钥 § 发送方要抵赖发送某一消息时,可能会声称其私有密钥 丢失或被窃,从而他人伪造了他的签名。
仲裁数字签名
双钥加密方式优点: 1
在协议执行以前,各方都不必 有共享的信息,从而可防止共 谋。
只要仲裁者的秘密钥不被泄露 ,任何人包括发方就不能发送 重放的消息。 对任何第三方(包括A)来说 ,X发往Y的消息都是保密的
2
3
提纲
1 数字签名的基本概念 数字签名的产生方式 数字签名的执行方式 数字签名标准

数字签名的基本知识和专业知识

数字签名的基本知识和专业知识
(3)由于在RSA数字签名方案中,要签名的信息x∈Zn,所以每 次只能对 log 2 n 位长的消息进行签名。一般说来,实际应 用中要签名的消息都比较长,可能比n大。在这种情况下,我 们先对消息进行分组,然后对每组消息分别进行签名,这样 做的不良后果是签名变长,签名速度变慢。
克服方法:
7.1 基于公钥密码的数字签名
基于公钥密码的一般数字签名方案 的签名和验证过程


(1)Alice用其保密的解密密钥对消息m加密. 密文s就是Alice对消息的签名。 (2)Alice将签名的消息(m,s)传送给Bob。 (3)Bob用Alice的公开密钥对s进行解密,得 到m’。如果m’=m,则确认s是消息的有效 签名。

对消息进行签名之前先对消息作Hash变换,然后对变 换后的消息进行签名。
7.2 ElGamal 签名方案

由T.ElGamal于1985年提出,其安全性主要是基于有限域 上离散对数问题的难解性。
ElGamal 签名方案描述如下:
(1)选取大素数
* p, g Z p
是一个本原元。P和g公开。
(2)随机选取整数x,1≤x≤p-2。计算
表 7.1 式(7.1)中a,b,c的取值
±r’ ±s m
±r’m ±r’m ±mr’ ±ms
±s ±ms ±r’s ±r’s
1 1 1 1
式(7.1)和 式(7.2)分 别称为签名 方案的签名 等式和验证 等式。
(4)签名验证过程: 如果 ra = gb yc mod p
(7.2)
成立,则Bob确认(r,s)就是Alice对消息的有效 签名。
(1)秘密选取两个大素数p和q。 (2)计算n=pq, φ(n)=(p-1)(q-1).n公开, φ(n)保密。 (3)随机选取正整数1<e<φ(n), 满足 gcd (e, φ(n))=1.e是公开 的密钥。 (4)计算d,满足d≡1(modφ(n)).d是保密的密钥。 (5)签名变换:对于消息 m ∈ Zn,签名为 d S ig ( m ) m m o d n (6)签名验证:对于m, s ∈Zn, 如果 m = se mod n, 则确认s为有效签名。

第三章 数字签名技术

第三章 数字签名技术

3.2.2 Hash签名 Hash签名
Hash签名是最主要的数字签名方法,也称 之为数字摘要法(Digital Digest)或数字 指纹法(Digital Finger Print)。它与RSA 数字签名是单独的签名不同,该数字签名 方法是将数字签名与要发送的信息紧密联 系在一起,它更适合于电子商务活动。将 一个商务合同的个体内容与签名结合在一 起,比合同和签名分开传递,更增加了可 信度和安全性。
3.1.3 数字签名的原理
Hash 算法 摘要 发送者 私钥加密 数字 签名 Internet 原文 原文 Hash 算法 摘要 数字 签名 发送者 公钥解密 摘要 对比?
发送方
接收方
处理过程: (采用双重加密)
(1)使用SHA编码将发送文件加密产生128bit的数字摘要; (2)发送方用自己的专用密钥对摘要再加密,形成数字签名; (3)将原文和加密的摘要同时传给对方; (4)接受方用发送方的公共密钥对摘要解密,同时对收到的文件 用SHA编码加密产生同一摘要; (5)将解密后的摘要和收到的文件在接受方重新加密产生的摘要 相互对比,如果两者一致,则说明在传送过程中信息没有破坏 和篡改。否则,则说明信息已经失去安全性和保密性。
DSA签名和验证 DSA
3.2.4 椭圆曲线数字签名算法(ECDSA) 椭圆曲线数字签名算法(ECDSA)
椭圆曲线的数字签名具有与RSA数字签名和 DSA数字签名基本上相同的功能,但实施起来 更有效,因为椭圆曲线数字签名在生成签名和 进行验证时要必RSA和DSA来得快。 椭圆曲线数字签名的速度要比RSA、DSA快,还 可以用在一些较小、对资源有一定限制得设备 如智能卡(含有微处理器芯片得塑料片)中。
数字签名是通过一个单向函数对要传送 的信息进行处理得到的用以认证信息来 源并核实信息在传送过程中是否发生变 化的一个字母数字串。 化的一个字母数字串。数字签名提供了 对信息来源的确定并能检测信息是否被 篡改。 篡改。

第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 不可伪造
数字签名是唯一的,验证过程可确认签名的 真实性。
2 可靠性高
数字签名基于公钥加密算法,具有较高的安 全性和可靠性。
3 易于验证
对数字签名的验证过程相对简单,接收者只 需使用发送者的公钥进行解密。
4 即时性
数字签名的生成和验证过程很快,几乎是实 时的。
数字签名的分类
1
基于HASH
数字签名可确保数据在传输 过程中不被篡改或损坏。
身份认证
数字签名可以验证数据的发 送者身份。
防止抵赖
数字签名提供证据,防止发 送者在后续阶段抵赖其参与 和承诺。
数字签名的基本原理
数字签名基于公钥加密算法,使用发送者的私钥对数据进行加密,接收者使用发送者的公钥进行解密,以验证 数据的完整性和真实性。
数字签名的生成是基于对数据进行哈希处理。
2
基于非对称加密
数字签名的生成和验证基于公钥/私钥对。
3
基于对称加密
数字签名的生成和验证基于对称加密算法。
数字证书的概念
数字证书是由数字证书颁发机构(CA)签发的包含公钥和身份信息的电子文件,用于验证数字签名的真实性 和可信度。
数字证书的种类
个人数字证书
用于个人身份认证和加密通信。
服务数字证书
用于服务器身份认证和数据传输的加密。
组织数字证书
用于组织身份认证和加密通信。
根书
用于签发其他数字证书的根节点证书。
数字证书的作用
数字证书可以确保通信的安全性、防止伪造、篡改和假冒。
数字证书的颁发机构
数字证书的颁发机构(CA)是负责签发和管理数字证书的权威组织,如Verisign、Digicert等。

图文详解什么是数字签名

图文详解什么是数字签名

图文详解什么是数字签名无意间发现一篇好文章通俗易懂的科普了SSL证书部分的公钥、私钥以及证书颁发机构(CA),很多难以用语言解释的文字都能通过图片直观的了解清楚。

下面是文章详情:1.鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。

3.苏珊要给鲍勃写一封保密的信。

她写完后用鲍勃的公钥加密,就可以达到保密的效果4.鲍勃收信后,用私钥解密,就看到了信件内容。

这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

5.鲍勃给苏珊回信,决定采用"数字签名"。

他写完后先用Hash函数,生成信件的摘要(digest)。

6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。

7.鲍勃将这个签名,附在信件下面,一起发给苏珊。

8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。

由此证明,这封信确实是鲍勃发出的。

9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。

如果两者一致,就证明这封信未被修改过。

10.复杂的情况出现了。

道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。

此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。

因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。

11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。

她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。

证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。

12.鲍勃拿到数字证书以后,就可以放心了。

数字签名原理、种类与方法

数字签名原理、种类与方法

1.2 数字签名的实现方法
④接受方使用自己的私有密钥对密钥信息进行解密,得到 秘密密钥的明文; ⑤接收方用秘密密钥对文件进行解密,得到经过加密的数 字签名; ⑥接收方用发送方的公开密钥对数字签名进行解密,得到 数字签名的明文; ⑦接收方用得到的明文和哈希函数重新计算数字签名,并 与解密后的数字签名进行对比。如果两个数字签名是相同 的,说明文件在传输过程中没有被破坏。
DSS和RSA采用公钥算法,DSS只是一个签名系 统,RSA既用于数据加密,也用于身份认证。
1.1 数字签名原理
4、数字签名功能 数字签名用以解决否认、伪造、篡改及冒充等
问题。具体要做到:发送者事后不能否认发送的报 文签名、接收者能够核实发送者发送的报文签名、 接收者不能伪造发送者的报文签名、接收者不能对 发送者的报文进行部分篡改、网络中的某一用户不 能冒充另一用户作为发送者或接收者。
这种方法由于它是逐位进行签名的,只要有一位被改动过,接 收方就得不到正确的数字签名,因此其安全性较好,其缺点是:签 名太长(对报文先进行压缩再签名,可以减少签名的长度。);签 名密钥及相应的验证信息不能重复使用,否则极不安全。
1.2 数字签名的实现方法
3、加入数字签名和认证 只有加入数字签名及验证后信息才能在公网上安
证书,用以确认一个人或服务器的身份,它把一对用于 信息加密和签名的电子密钥捆绑在一起,保证了这对密 钥真正属于指定的个人和机构。
数字认证由验证机构CA进行电子化发布或撤消公钥 验证,信息接收方可以从CA Web站点上下载发送方的 验证信息。
1.2 数字签名的实现方法
6、数字签名的发展方向 完善生成和验证数字签名的工具,发展支持数
1.2 数字签名的实现方法
1、用非对称加密算法进行数字签名 非对称加密使用两个密钥:公开密钥(public key)和私有

计算机网络安全 第三章 网络安全基础3数字签名

计算机网络安全 第三章 网络安全基础3数字签名

数字签名原理
(2)利用自己的私钥加密消息摘要得到数字签名A,并将数字签 名附在原消息后面
数字签名原理
(3)通讯时用户A将自己的原文和签名文一起通过网络送给通讯 对方即用户B
数字签名原理
2.接收方验证过程
接收方B接收到发送方A的签名消息后,对A的签名消息进 行验证的过程如下: (1)将消息中的原消息与数字签名分离出来

优点:
通信各方之间无须共享任何信息,从而避免了联手作弊; 只要 KRa 安全,则不会出现伪造 A 发送的消息; 消息的内容是保密的,包括对 A 在内。
基于公开密钥的数字签名技术
基本原理 公钥PKA和私钥SKA一一对应; 由公证机构证明公钥PKA和用户A的绑定关系; 证明拥有(或者知道)私钥SKA的用户X就是 用户A; 建立报文P和私钥SKA之间的关联,就可确定 报文P由用户A发送。
数字签名的目的是使发送者无法抵赖曾经发送过报文P; 通信双方均需到权威机构注册; 用户A发送给用户B的报文,附带时间戳T和随机数RA先发 送给权威机构; 权威机构在转发给用户B的信息中附带用密钥KBB加密发 送者、时间戳和报文摘要后的密文,KBB只有权威机构知 道; 由权威机构对报文P、发送者、发送时间进行认证。
计算机网络安全
第三章 网络安全基础(3)
第3章
加密算法;
报文摘要算法; 数字签名;
网络安全基础
认证协议;
IPSec。
这些算法一方面是实现保密性、完整性和 不可抵赖性的核心,另一方面是实现其他网 络安全技术的基础。
数字签名
问题的提出
假定John向Mary发送一个带鉴别的报文,可能会出现 如下的争执: 1、Mary可能伪造不同的报文,并声称它来自John。 Mary只要简单地生成一个报文,并附加使用由John和 Mary所共享的密钥生成的鉴别码即可。 2、John可以否认发送过该报文。因为Mary伪造一个 报文是可能的,无法证明John发送过该报文这一事实。

数字签名知识电子签名法

数字签名知识电子签名法

数字签名知识电子签名法首先应该知道,什么是数字签名.简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。

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

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

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

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

普通数字签名算法有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位的散列值(或报文摘要)。

发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。

然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。

数字签名

数字签名

一、基本概念:数字签名又称公钥数字签名或电子签章,是一种以电子形式存在于数据信息之中的,或作为其附件的或逻辑上与之有联系的数据,可用于辨别数据签署人的身份,并表明签署人对数据信息中包含的信息的认可的技术。

数字签名必须保证做到以下3点:◆ 接收者能够核实发送者对报文的签名;◆ 发送者事后不能抵赖对报文的签名;◆ 接收者不能伪造对报文的签名。

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

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

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

特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等。

二、基本原理:数字签名技术的原理十分简单。

假如发送方A 要给接收方B 发送消息M ,那么可以把发送和接收M 的过程简单描述如下:(1)发送方A 先要将传送的消息M 使用自己的私有密钥加密算法1Ea 进行签名,得1V=Ea ()M 。

其中,A 的私有加密密钥为1a 。

(2)发送方A 用自己的私有密钥对消息加密以后,再用接收方B 的公开密钥算法1Eb 对签名后的消息V 进行加密,得1C=Eb ()V 。

其中B 的公开加密密钥为1b 。

(3)最后,发送方A 将加密后的签名消息C 传送给接收方B 。

(4)接收方B 收到加密的消息C 后,先用自己的私有密钥算法2Db 对C 进行解密,得2V=Db ()V 。

其中,B 的私有解密密钥为2b 。

(5)然后,接收方再用发送方A 的公开密钥算法2Da 对解密后的消息V 再进行解密,得2M=Da ()V 。

其中,A 的公开解密密钥为2a 。

原理图如图一所示。

图一数字签名原理三、功能:数字签名可以保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。

数字签名

数字签名

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

第5章 数字签名

第5章 数字签名
8
数字签名的特性
• 签名是可信的:任何人都可以方便地验证签名的有效性。 • 签名是不可伪造的:除了合法的签名者之外,任何其他人 伪造其签名是困难的。这种困难性指实现时计算上是不可 行的。 • 签名是不可复制的:对一个消息的签名不能通过复制变为 另一个消息的签名。如果一个消息的签名是从别处复制的, 则任何人都可以发现消息与签名之间的不一致性,从而可 以拒绝签名的消息。 • 签名的消息是不可改变的:经签名的消息不能被篡改。一 旦签名的消息被篡改,则任何人都可以发现消息与签名之 间的不一致性。 • 签名是不可抵赖的:签名者不能否认自己的签名。
23
数字签名的执行方式
• 2. 具有仲裁的数字签名 • 上述直接方式的数字签字所具有的缺陷都可通过使用仲裁者 得以解决。和直接方式的数字签名一样,具有仲裁方式的数 字签名也有很多实现方案,这些方案都按以下方式运行: • 发方X对发往收方Y的消息签名后,将消息及其签名先发给 仲裁者A,A对消息及其签字验证完后,再连同一个表示已 通过验证的指令一起发往收方Y。此时由于A的存在,X无法 对自己发出的消息予以否认。在这种方式中,仲裁者起着重 要的作用并应取得所有用户的信任。
18
常用的数字签名方法
用RSA或其他公开密钥密码算法进行数字签名的最大方 便是没有密钥分配问题(网络越复杂、网络用户越多, 其优点越明显)。因为公开密钥加密使用两个不同的密 钥,其中有一个是公开的,另一个是保密的。公开密 钥可以保存在系统目录内、未加密的电子邮件信息中、 电话黄页(商业电话)上或公告牌里,网上的任何用户都 可获得公开密钥。而保密密钥是用户专用的、由用户 本身持有的,它可以对由公开密钥加密信息进行解密。
15
报文摘要
一个好的消息摘要算法应该具备以下一些特点: 1. 算法的运算效率极高,能满足实际的应用需要。 2. 这个算法应该不可预见与不可还原。也就是说, 对一个给定的输出值,不能够根据输出值的一些 特点推断出它对应的输入信息,也不能够通过试 验还原出它对应的输入信息。 3. 信息输入中的一点点微小改变,都将导致输出数 据的显著变化。例如:在输入信息中的一个数据 位的改变,将导致输出数据中一半数据位的变化。

名词解释 数字签名

名词解释 数字签名

名词解释数字签名数字签名是一种用于验证数字信息的技术,具有高度的安全性和可靠性。

它通常被用于在网络中传输文档、电子邮件和软件等数字信息,以确保信息的真实性、完整性和不可抵赖性。

本文将分步骤阐述数字签名的概念、原理和实现方法。

一、数字签名的概念数字签名是利用公钥密码学技术对数字信息进行加密和解密的过程。

它通过将数字信息与签名者的私钥相结合,生成一个加密的数字码,即数字签名。

数字签名包含了信息的摘要和签名者的身份信息,它可以确保信息在传输过程中不被篡改、伪造或者假冒。

二、数字签名的原理数字签名的原理基于公钥密码学技术,它包括两个关键的加密算法:一是哈希算法,二是非对称加密算法。

哈希算法是一种将任意长度的输入数据转换为固定长度输出数据的算法,它主要用于生成信息的摘要。

哈希算法的输出被称为消息摘要或数字指纹,它具有唯一性、确定性和不可逆性等特性,因而可以作为数据的唯一标识。

非对称加密算法是一种利用两个密钥(公钥和私钥)来进行加密和解密的算法,公钥用于加密,私钥用于解密。

在数字签名中,签名者先用哈希算法生成信息的摘要,然后用私钥加密摘要,生成数字签名。

接收者利用签名者的公钥解密数字签名,得到信息的摘要,再利用哈希算法对原始信息进行摘要,将两个摘要进行对比,如果相同,则说明信息没有被篡改,信息的来源可靠。

三、数字签名的实现方法数字签名的实现需要满足以下四个条件:保证信息的完整性、保证信息的真实性、保证信息的不可抵赖性和保证密钥的安全性。

为了保证信息的完整性和真实性,签名者通常会使用哈希算法生成消息摘要,并将摘要与数字签名一起发送给接收者。

为了保证信息的不可抵赖性,签名者需要在签名过程中附加自己的身份信息,例如数字证书、身份证明等。

为了保证密钥的安全性,签名者需要使用密码学技术来保护私钥,例如使用加密的存储介质、访问控制和密钥管理等技术。

在实际应用中,数字签名可以通过多种方式实现,例如使用PKI (公钥基础设施)、PEM(隐私增强邮件)、PGP(网络通讯加密软件)等标准和协议。

转载数字签名的基本知识

转载数字签名的基本知识

转载数字签名的基本知识原文地址:数字签名的基本知识作者:伊始哀伤一、什么是数字签名?数字签名是电子形式的数据,是与数据电文(电子文件、电子信息)相联系的用于识别签名人的身份和表明签名人认可该数据电文内容的数据。

电子签名是基于国际PKI标准的网上身份认证系统,数字证书相当于网上的身份证,它以数字签名的方式通过第三方权威认证有效地进行网上身份认证,帮助各个主体识别对方身份和表明自身的身份,具有真实性和防抵赖功能。

与物理身份证不同的是,数字证书还具有安全、保密、防篡改的特性,可对企业网上传输的信息进行有效保护和安全的传递。

二、如何取得我自己或我公司的数字签名?目前广泛应用于电子商务实践中的电子签名即是数字签名,是通过向第三方的数字签名认证机构提出申请,由机构进行审查,颁发数字证书来取得自己的签名。

一般情况用户要携带有关证件到认证机构的证书受理点,或者直接到证书发放机构即CA中心填写申请表并进行身份审核,审核通过后交纳一定费用就可以得到装有证书的相关介质(IC卡或Key)和一个写有密码口令的密码信封。

拿到这两样物品用户需要登陆认证机构的网站下载证书私钥,然后就可以在网上操作时使用数字证书。

三、怎么用数字签名?使用数字证书的系统需要安装认证机构提供的根证书,用户的数字证书储存在相应介质中,在需要使用证书的情况,用户根据系统提示使用证书介质和用户密码。

一般系统会自动提示用户出示数字证书或者插入证书介质(IC卡或Key),用户插入证书介质后系统将要求用户输入密码口令,此时用户需要输入申请证书时获得的密码,密码验证正确后系统将自动调用数字证书进行相关操作。

四、数字签名用起来是不是很烦琐,是不是很贵?为适应网上交易和网络中信息的交流,数字签名使用起来非常方便,目前签名种类有个人签名、企业签名、服务器签名等,费用从几十元至几千元不等。

费用一般按年计费,普通的个人签名只须要几十元每年。

欣正网信公司现推出多版本数字印章系统,敬请来电来函咨询。

数字签名原理介绍

数字签名原理介绍

数字签名原理介绍梳理时间:2023年11月4日数字签名原理介绍前言本文档是紧紧围绕解读“数字签名”技术的原理来开展的。

通过阅读本文档,读者可以较为深刻的理解实现该技术的具体密码学知识以及“数字签名”技术的作用(确认消息来源和完整性),该文档适合于有一定相关信息技术知识基础的初学者,能够起到一定的抛砖引玉的作用。

一、密码学基础知识★定义研究信息的保密和复原保密信息以获取其真实内容的科学称为密码学。

(研究编制密码和破译密码的技术科学)它包括:密码编码学、密码分析学。

密码编码学:研究对信息进行编码,实现隐蔽信息的一门科学。

(对应设计密码)密码分析学:研究复原保密信息或求解加密算法与密钥的学科。

(对应破译密码)★相关概念明文:需要采用密码技术进行保护的消息。

密文:是指用密码技术处理过明文的结果,通常称为加密消息。

消息源认证是指能向接收方保证该消息确实来自于它所宣称的源;通信实体认证是指在连接发起时能确保这两个实体是可信的,即每个实体确实是它们宣称的那个实体,第三方也不能假冒这两个合法方中的任何一方。

不可否认性:是指信息交换的双方不能否认其在交换过程中发送信息或接收信息的行为。

目的:产生纠纷时提供可信的证据。

通过数字签名来实现抗否认服务。

★密码体制定义:密码体制也叫密码系统,是指能完整地解决信息安全中的机密性、数据完整性、认证、身份识别、可控性及不可抵赖非对称密码篡改(信息被修改)完整性单向散列函数伪装(伪装成真正的发送者)认证性消息认证码数字签名否认(事后称自己没有做)不可否认性目前,数据加密算法很多,根据加密密钥和解密密钥在原理上的不同,可以将密码体制分为私钥密码体制和公钥密码体制两大类。

私钥密码体制:是一种传统的密码体制,又称为对称密码体制,该体制的特点是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。

而在大多数的对称算法中,加密密钥和解密密钥是相同的。

别名:对称密码体制--共享密钥密码--对称加密算法--私钥加密算法--秘密密钥算法--单密钥算法--传统密码算法私钥密码体制的优缺点:缺点:密钥分发问题、密钥管理问题、无法认证源。

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

数字签名科技名词定义中文名称:数字签名英文名称:digital signature定义:以电子形式存在于数据信息之中的,或作为其附件的或逻辑上与之有联系的数据,可用于辨别数据签署人的身份,并表明签署人对数据信息中包含的信息的认可。

所属学科:通信科技(一级学科);网络安全(二级学科)本内容由全国科学技术名词审定委员会审定公布百科名片数字签名的流程数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。

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

目录基本介绍主要功能签名过程个人安全邮件证书用数字签名识别病毒原因分析使用方法原理特点∙∙展开编辑本段基本介绍数字签名不是指将你的签名扫描成数字图像,或者用触摸板获取的签名,更不是你的落款。

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

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

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

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

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

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

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

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

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

数字签名(Digital Signature)技术是不对称加密算法的典型应用。

数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。

数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。

在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。

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

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

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

如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。

数字签名是个加密的过程,数字签名验证是个解密的过程。

编辑本段签名过程报文的发送方用一个哈希函数从报文文本中生成报文摘要(散列值)。

发送方用自己的私人密钥对这个散列值进行加密。

然后,这个加密后的散列值将作为报文的附件和报文一起发送给报文的接收方。

报文的接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密。

如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。

通过数字签名能够实现对原始报文的鉴别。

数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。

二是数字签名能确定消息的完整性。

因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。

不同的文件将得到不同的数字签名。

一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。

编辑本段个人安全邮件证书具有数字签名功能的个人安全邮件证书是用户证书的一种,是指单位用户收发电子邮件时采用证书机制保证安全所必须具备的证书。

个人安全电子邮件证书是符合x.509标准的数字安全证书,结合数字证书和S/MIME技术对普通电子邮件做加密和数字签名处理,确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性。

具有数字签名功能的个人安全邮件证书中包含证书持有人的电子邮件地址、证书持有人的公钥、颁发者(CA)以及颁发者对该证书的签名。

个人安全邮件证书功能的实现决定于用户使用的邮件系统是否支持相应功能。

目前,MS Outlook 、Outlook Express、Foxmail及CA安全电子邮件系统均支持相应功能。

使用个人安全邮件证书可以收发加密和数字签名邮件,保证电子邮件传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性。

编辑本段用数字签名识别病毒[1][2]如何区分数字签名攻击呢?有两个方法:1.查看数字签名的详细信息,我们应该查看该数字签名的详细信息,点击“详细信息”按钮即可。

我们会发现正常EXE和感染(或捆绑木马)后的EXE数字签名的区别正常EXE的数字签名详细信息被篡改后的EXE数字签名信息无效方法2,使用数字签名验证程序sigcheck.exe (可以百度一下找这个工具,著名系统工具包Sysinternals Suite的组件之一。

)数字签名异常的结果为:C:\Documents and Settings\litiejun\??\modify.exe:Verified: UnsignedFile date: 15:46 2008-5-23Publisher: n/aDescription: n/aProduct: n/aVersion: n/aFile version: n/a数字签名正常的结果为:C:\Documents and Settings\litiejun\??\che.exe:Verified: SignedSigning date: 16:28 2008-4-29Publisher: n/aDescription: n/aProduct: n/aVersion: n/aFile version: n/a编辑本段原因分析1,精心设计的感染当EXE被感染时,是很容易破坏文件的数字签名信息的,如果攻击者感染或破坏文件时,有意不去破坏EXE中有关数字签名的部分,就可能出现感染后,数字签名看上去正常的情况。

但认真查看文件属性或校验文件的HASH值,你会发现该EXE程序已经不是最原始的版本了。

2.该软件发行商的数字签名文件被盗,攻击者可以把捆绑木马或感染病毒后的EXE程序,也打包上数字签名,这种情况下就更严重了。

企业如果申请了数字签名证书,一定要妥善保管,否则后患无穷。

编辑本段使用方法你可以对你发出的每一封电子邮件进行数字签名。

这不是指落款,普遍把落款讹误成签名。

在我国大陆,数字签名是具法律效力的,正在被普遍使用。

2000年,中华人民共和国的新《合同法》首次确认了电子合同、电子签名的法律效力。

2005年4月1日起,中华人民共和国首部《电子签名法》正式实施。

编辑本段原理特点每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。

签名的时候用密钥,验证签名的时候用公钥。

又因为任何人都可以落款申称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。

注册后身份认证机构给你发一数字证书。

对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。

在通讯中使用数字签名一般基于以下原因:鉴权公钥加密系统允许任何人在发送信息时使用公钥进行加密,数字签名能够让信息接收者确认发送者的身份。

当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。

鉴权的重要性在财务数据上表现得尤为突出。

举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。

这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。

这种方法被称作重放攻击。

完整性传输数据的双方都总希望确认消息未在传输的过程中被修改。

加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。

一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。

一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b3),这样他就立刻变成百万富翁了。

不可抵赖在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。

消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。

编辑本段如何实现数字签名算法依靠公钥加密技术来实现的。

在公钥加密技术里,每一个使用者有一对密钥:一把公钥和一把私钥。

公钥可以自由发布,但私钥则秘密保存;还有一个要求就是要让通过公钥推算出私钥的做法不可能实现。

普通的数字签名算法包括三种算法:1.密码生成算法;2.标记算法;3.验证算法。

编辑本段Java数字签名步骤1、将applet的class文件打包成*.jar(不会的可以在命令行中输入jar查看帮助)[3]2 首先我们要生成一个keystore否则在签名的时候报如下错误jarsigner错误:ng.RuntimeException: 密钥库装入:C:\Documents and Settings\ij2ee\.keystore (系统找不到指定的文件。

). (这边的ij2ee 是我当前系统用户名) 生成keystore的语句:keytool -genkey -alias 别名你可以自己写-keyalg RSA -keystore .keystore比如我的就是keytool -genkey -alias ij2ee -keyalg RSA -keystore .keystore下面是会出现的数字签名的一些步骤操作:输入keystore密码:再次输入新密码:您的名字与姓氏是什么?[Unknown]:ij2ee您的组织单位名称是什么?[Unknown]:mtk您的组织名称是什么?[Unknown]:mtk您所在的城市或区域名称是什么?[Unknown]:suzhou您所在的州或省份名称是什么?[Unknown]:jiangsu该单位的两字母国家代码是什么[Unknown]:cnCN=jeson, OU=mtk, O=mtk, L=suzhou, ST=jiangsu, C=cn正确吗?[否]:y输入<sfcs>的主密码(如果和keystore密码相同,按回车):这时候会在jdk的bin目录下生成.keystore。

相关文档
最新文档