数字签名

合集下载

个人数字签名的申请

个人数字签名的申请

个人数字签名的申请个人数字签名是一种用于验证文件的真实性和完整性的加密技术。

通过使用私钥对文件进行加密,然后使用公钥对加密文件进行解密,可以确保文件未被篡改。

在数字化时代,个人数字签名被广泛应用于各个领域,如电子合同、电子邮件、电子票据等。

个人数字签名的申请过程相对简单,首先需要选择一个可信的数字证书机构(CA)进行申请。

CA是一个第三方机构,负责验证个人身份并颁发数字证书。

申请者需要提供相关身份证明材料,如身份证、护照等。

申请者还需要选择加密算法和密钥长度,常见的加密算法有RSA和DSA等。

申请者还需要生成一对密钥,包括私钥和公钥。

私钥用于加密文件,公钥用于解密文件。

申请个人数字签名的过程中,保持私钥的安全非常重要。

私钥是个人的唯一标识,如果私钥泄露,将可能导致他人冒充个人身份进行签名。

因此,申请者应将私钥保存在安全的地方,最好是使用硬件设备进行保护。

此外,申请者还应定期更换私钥,以增加安全性。

个人数字签名的使用非常简便。

在签署文件时,申请者只需将文件进行加密,并附上个人数字签名即可。

接收方在收到文件后,可以使用申请者的公钥对文件进行解密,并验证签名的真实性和完整性。

如果签名验证通过,则可以确认文件未被篡改。

个人数字签名的应用场景非常广泛。

在电子合同领域,个人数字签名能够确保合同的真实性和完整性,避免合同被篡改。

在电子邮件领域,个人数字签名能够确保邮件的发件人身份真实可信,避免伪造邮件的风险。

在电子票据领域,个人数字签名能够确保票据的真实性和完整性,避免伪造票据的风险。

尽管个人数字签名在保护文件安全方面起到了重要作用,但也存在一些安全风险。

首先,私钥的安全性是个人数字签名的关键。

如果私钥泄露,将导致他人冒充个人身份进行签名。

因此,申请者应加强对私钥的保护,定期更换私钥。

其次,个人数字签名并不能防止文件被窃取。

虽然签名可以确保文件的完整性和真实性,但无法防止他人获取文件的内容。

因此,申请者在传输文件时仍需注意保护文件的机密性。

几种数字签名方案简介

几种数字签名方案简介

几种数字签名方案简介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算法还具有速度快、签名长度短等优点。

以上几种数字签名方案都是目前广泛应用的算法,每种方案都有其特定的应用场景和优缺点。

在实际应用中,我们需要根据具体需求选择合适的数字签名算法以保证信息的安全性和完整性。

随着互联网的快速发展,数字签名方案在信息安全领域变得越来越重要。

数字签名方案用于验证信息的完整性、真实性和不可抵赖性,广泛应用于电子政务、电子商务和网络安全等领域。

无证书数字签名方案作为一种新兴的数字签名技术,因无需证书颁发机构颁发证书,具有降低成本、提高效率等优点,逐渐受到广泛。

本文将对几种无证书数字签名方案进行介绍,并对其安全性进行分析及改进。

实现数字签名的方法

实现数字签名的方法

实现数字签名的方法
数字签名是一种用于确保数据的完整性、来源可靠性和不可抵赖性的技术。

它通过在数据上应用加密算法,生成一个唯一的指纹,用于验证数据的真实性和完整性。

实现数字签名的方法有多种,其中最常见的是使用公钥加密算法。

下面是一种常用的数字签名实现流程:
1. 首先,发送方使用自己的私钥对要发送的数据进行加密。

这个加密过程会生成一个唯一的数字指纹,也就是数字签名。

2. 然后,发送方将加密后的数据和数字签名一起发送给接收方。

3. 接收方使用发送方的公钥对接收到的数据进行解密,并验证数字签名的有效性。

如果数字签名验证通过,则可以确定数据的完整性和来源可靠性。

通过这种方法,数字签名可以防止数据在传输过程中被篡改,同时也可以确保数据的来源可信,因为只有发送方拥有私钥,其他人无法伪造数字签名。

除了使用公钥加密算法,还有其他一些实现数字签名的方法。

例如,使用哈希函数生成数据的摘要,并将摘要与发送方的私钥进行加密。

接收方使用发送方的公钥来解密摘要,并使用相同的哈希函数对接收到的数据进行摘要计算。

然后,接
收方可以将两个摘要进行比较,以验证数据的完整性。

总的来说,实现数字签名的方法是多样化的,但核心原理是通过使用加密算法和密钥对数据进行加密和验证,以确保数据的完整性、来源可靠性和不可抵赖性。

数字签名在现代的通信和电子商务中起着重要的作用,保护了用户的隐私和数据安全。

数字签名名词解释

数字签名名词解释

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数字签名验签的流程

数字签名验签的流程

数字签名验签的流程数字签名是一种在网络通信中保证数据完整性、身份认证和防止抵赖的技术。

它通过使用公钥加密来对数据进行签名,以确保数据的来源以及数据内容的完整性。

在进行数字签名验签的流程中,包括建立信任、生成签名、验证签名等多个环节。

首先,在数字签名的流程中,建立双方的信任关系是非常重要的。

通常,双方需要事先共享各自的公钥,以便在进行数字签名时进行加密和解密的操作。

这可以通过在通信过程中交换公钥或通过可信的中心机构(如证书颁发机构)来实现。

其次,数字签名的生成过程主要通过以下几个步骤来完成:1. 首先,原始的数据需要进行哈希算法的处理。

哈希算法能够将任意长度的数据转换为固定长度的哈希值,从而保证数据的完整性。

常用的哈希算法包括MD5、SHA-1、SHA-256等。

2. 接着,对哈希值进行私钥的加密操作,生成数字签名。

3. 将数字签名与原始数据一起发送给接收方。

在接收方进行数字签名验证时,需要经过以下流程:1. 接收方首先使用公钥对接收到的签名进行解密,得到哈希值。

2. 接着,对接收到的数据进行相同的哈希算法处理,生成新的哈希值。

3. 对比新的哈希值与解密得到的哈希值是否一致,如果一致,则可以确认数据的完整性,并验证签名的有效性。

否则,说明数据被篡改过或签名无效。

需要注意的是,在数字签名中,私钥用于生成签名,公钥用于验证签名。

私钥只能由签名方持有,公钥可以由验证方事先获取。

数字签名的安全性取决于私钥的保护措施,私钥不应该被泄露或非法获取。

同时,公钥可以在不保密的环境下进行传输,因此可以通过证书的方式进行验证。

为了提高数字签名的安全性,常常结合其他技术来使用,比如使用证书链进行身份验证,使用时间戳来防止篡改等。

总结起来,数字签名验签的流程主要包括建立信任、生成签名、验证签名等多个环节。

在建立信任时,双方需要共享公钥或通过可信的中心机构来获取公钥。

在生成签名时,首先对数据进行哈希处理,然后使用私钥进行加密,生成数字签名。

简述数字签名的基本原理

简述数字签名的基本原理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

什么是数字签名?密钥

什么是数字签名?密钥

什么是数字签名?密钥什么是数字签名?所谓数字签名就是信息发送者用其私有密钥对从所传报文中提取出的特征数据(或称数字指纹)进行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,其中包含一个私钥和一个自签名的公钥。

数字签名

数字签名

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

仲裁数字签名
• 解决直接数字签名的问题,可在通信双方的基础上引入第 三方仲裁者的参与,过程如下: ① 从发送方到接收方的所有签名消息先送到仲裁者 ② 仲裁者将消息及其数字签名进行一系列测试,检查其内 容和来源 ③ 仲裁者将消息加上时间戳 ④ 仲裁者将已被验证通过的数字签名一起发送给接收方。
下面介绍几个具体的仲裁数字签名方案。 方案中,S表示发送方,R表示接收方,A是仲裁者,M是传 送的消息。
仲裁数字签名方案一
方案一:对称加密,仲裁者可以看到消息内容 具体过程如下: (1)S→A:M||ES与A的对称密钥[IDs||H(M)] 其中,IDs是S的身份标识。S以ES与A的对称密钥[IDs||H(M)]作为对M 的签名,将M及签名发往A。 (2)A→R:EA与R的对称密钥[IDs||M||ES与A的对称密钥[IDs||H(M)]||T] A对ES与A的对称密钥[IDs||H(M)]解密后验证S的签名,验证完后加上 IDs、时间戳T一起加密后发往R。R将消息解密后,结果保存 以备后用。
• 算法描述
EIGamal数字签名方案
• 对EIGamal数字签名算法的正确性进行验证 定理1:若(r,s)为合法用户采用EIGamal数字签名算法对消息M 进行的签名,则有yrrs=aH(M) mod p。 证明 由于yrrs=(ax)r(ak)s=axraks=axr+ks mod p;又由 s=(H(M)-xr)k-1 mod (p-1); 所以有 sk+xr=H(M) mod (p-1); 由模运算的性质(xy=x(y mod φ(p)) mod p,其中φ(p)=p-1)有: axr+ks=aH(M) mod p 所以有 yrrs=aH(M) mod p。 验证算法表述如下: Ver(M,(r,s))=(yrrs mod p=aH(M) mod p)? True: false。
A收到S的消息,用S的公钥对ES的私钥[IDs||ER的公钥[ES的私钥[M]]] 进行解密,验证S的身份信息IDs。之后, A将S的身份IDs和 S对消息M的签名加上T,再用自己的私钥KRA进行签名后发 往R。
仲裁数字签名方案三
方案三的优点: ① 在方案执行以前,各方都不必有共享的信息,避免合谋 行为 ② 只要仲裁者的私钥不被泄露,任何人包括发送方就不能 重放消息 ③ 对任何第三方(包括A),S发往R的消息都是保密的。
直接进行数字签名
• 直接数字签名的几种形式 (2) A→B:M||EA的私钥[H(M)] 提供了认证签名: H(M) 受到密码算法的保护; 只有 A 能够生成 EA的私钥[H(M)]。
直接进行数字签名
• 直接数字签名的几种形式 (3) A→B:EB的公钥[EA的私钥(M)] B的公钥加密提供了保密性、A的私钥签名提供认证 (4) A→B:EK[M||EA的私钥[H(M)]] 密钥K对称加密提供了保密性、 A的私钥签名提供认 证。
手写签名和数字签名的对比
• 手写签名和数字签名的主要差别 ① 所签文件方面的不同。手写签名是文件的物理部分,而 数字签名不是,还要设法把签名“捆绑”到文件上。 ② 验证方面的不同。手写签名是通过与真实的手写签名比 较进行验证,手写签名容易伪造,不易鉴别。数字签名 通过密码技术实现,难以伪造,并通过一个公开的算法 进行验证,这样“任何人”都能验证数字签名。 ③ “复制”方面的不同。手写签名不易复制,复制后的签 名容易与原文件区别。相对而言,数字签名容易复制, 复制后与原文件一样。
6月5日交。
EIGamal数字签名方案
• EIGamal数字签名方案是T. EIGamal在1985年发表关 于EIGamal公开密钥密码时给出的两个方案之一 (另外一个用于加密)。 • EIGamal数字签名方案有很多变体,其中最重要的 有美国NIST于1991年公布的数字签名标准(DSS) 中使用的数字签名算法DSA。
EIGamal数字签名方案
• 例,设素数p=11,a=2是Z11*上的本原根,用户A选择私钥x=8, 消息M的散列码H(M)=5,用户A选择的签名随机数k=9,计 算A用EIGamal数字签名算法对消息M的签名以及用户B对 签名的验证。 (1)用户A计算公钥y。 y=ax mod p=28 mod 11=3,并把公钥y=3公开。 (2)用户A计算消息M的签名。 因k=9,φ(11)=10,gcd(9,10)=1,所以9模10的逆存在,利用欧几 里得算法计算: k-1 mod (p-1)=9-1 mod 10=9。 用户A计算: r=ak mod p=29 mod 11=6; s=(H(M)-xr)k-1 mod (p-1)=(5-8×6)×9 mod 10=3
RSA数字签名方案
• 基本算法如下: 3.签名验证过程 假设用户B要验证用户A对消息M的签名,用户计算 M’=SAe mod n 其中e为公钥,通过判断M与M’是否相等来确认签名是否确是 A所产生,如果不是,拒绝该签名消息。
RSA数字签名方案
• 关于签名方案的几个问题: ① 方案对整个消息签名,因RSA速度比较慢,当消息比较长 时,签名与验证过程也比较慢。 ② 可先对消息进行散列计算,在对散列值进行签名以提高 速度。 ③ 安全性基于RSA算法自身的安全性,因d私钥,签名不可 伪造 ④ 如果消息M1和M2的签名分别是S1和S2,可以证明 Sig(M1M2)=Sig(M1) Sig(M2),则只要知道M1,M2,S1,S2,就可 伪造M1M2(乘积)的签名S1S2。
直接进行数字签名
直接数字签名的缺点 该方法的有效性依赖于发送方私钥的安全性: 发送方如果要抵赖签名,可能会声称其私钥丢失或被窃。 通常需要采用与私钥安全性相关的行政管理控制手段来制 止或至少是削弱这种情况,但威胁在某种程度上依然存在。 例如:可以要求被签名的信息包含一个时间戳(日期与时 间),以及要求将已泄密的密钥立即报告给管理中心。 但攻击依然存在,因时间戳也可以伪造。例如X的私钥在 时间T被窃取,攻击者可以伪造X的签名并附上时间T之前 的时间戳。
EIGamal数字签名方案
• 算法描述 2.签名过程 (1)选择与p-1互素的随机数k,k∈Zp*; (2)签名方先对消息M进行散列压缩得到散列码H(M),并 计算 r=ak mod p s=(H(M)-xr)k-1 mod (p-1) 其中x为私钥。 (3)用户A将(r,s)作为对消息M的数字签名,与消息M一起发 送给接收方。
例如,接受者可以获得消息发送者的公钥,发送者 用自己的私钥对整个消息或者消息散列码进行签 名来形成数字签名。 特点: 仅涉及通信双方 有效性依赖发方密钥的安全性
直接进行数字签名
• 直接数字签名的几种形式 (1) A→B:EA的私钥[M] 提供了认证签名: 只有A具有私钥进行加密; 传输中无法被篡改; 任何第三方可以用A的公钥验证签名。
RSA数字签名方案
• 关于签名方案的几个问题: ⑤ 公钥e公开,则针对某个Y ∈Zn ,计算得M=Ye mod n,可 声称Y是用户A对M的签名,因sig(M)=Md=(Ye)d=Y mod n。 此种情况实际威胁小,因M不是任意的。
• 作业: 设用户A的公钥为(NA=33,eA=17),用户 B的公钥为(NB=55,eB=23),用户A应用 RSA算法向用户B传送消息M=10时,求A发 送的带签名的信息以及用户B对签名的验证。
数字签名
数字签名应用的一个实例
例:用户A通过网络发送一条消息,要求银行从用户 A的账户上给用户B支付5000元。 ① 银行如何确认消息确是A发送的(身份认证)? ② 事后,如果A否认发送过该消息,如何认证? (消息认证-抗抵赖) ③ A否认要求银行支付的是5000元,而说是1000元, 银行如何确认?(消息认证-抗抵赖) ④ 银行如何向公证机关提供证据? 以上问题可通过一种安全机制——数字签名实现。
基于公钥密码体制的 典型数字签名方案
RSA数字签名方案
RSA数字签名方案在许多安全标准中得到广泛应用。 ISO/IEC9796和ANSI X9.30-199x以及美国联邦信息 处理标准FIPS 186-2将RSA作为推荐的数字签名标 准算法之一。
RSA数字签名方案
• 基本算法如下: 1.系统初始化过程 ① 产生两个大素数p,q,计算n=pq; ② 随机选取一个与φ(n)互素的整数e作为公钥,私钥d满足 ed=1 mod φ(n)。 用户A公开公钥e,n,保密d,p和q。 2.签名产生过程 用户A对消息M∈Zn进行签名,计算 SA=Sig(M)=Md mod n 并将SA附在消息M后。
五元组{M,S,K,sig,ver}称为一个签名方案(算法)。
• 数字签名的一个实例(公钥密码算法签名):
数字签名的执行方式
数字签名的执行方式
数字签名的执行方式有两类: • 直接进行数字签名 • 利用仲裁的参与进行数字签名
直接进行数字签名
直接数字签名过程只有通信双方参与,并假定双 方有共享的秘密密钥,或者接收一方知道发送方 的公开密钥。
仲裁数字签名方案一
方案一的仲裁 仲裁者A起着关键作用,要求: ① 发送S必须确信仲裁A不会泄露他们的共享密钥。 ② 接收方R必须确信冲裁A只有在对发送方S的消息验证通过 后才发送给自己。 ③ 通信双方必须确信A能公平地解决争端。 只有遵循上述要求,签名才不能伪造和否认。 方案中消息以明文方式发送,未提供机密性保护。
仲裁数字签名方案二
方案二:对称加密,仲裁者不能看到消息内容 S与A、R与A有共享密钥,S与R之间也有共享密钥。过程如下 (1)S→A:IDs|| EKSR[M] ||EKSA[IDs||H(EKSR[M])] S把EKSA[IDs||H(EKSR[M])]作为签名和M的加密一起发送给A。 (2)A→R:EKAR[IDs||EKSR[M]||EKSA[IDs||H(EKSR[M])]||T] A对EKSA[IDs||H(EKSR[M])]解密后验证S的签名(A始终不见明文 M)。A验证完后,加上时间戳T,再用KAR加密后发往R。 如果发生争议,解决方法与方案一相同。
相关文档
最新文档