基于椭圆曲线和RSA的数字签名的性能分析,数字签名,椭圆曲线
- 格式:doc
- 大小:30.00 KB
- 文档页数:3
基于椭圆曲线密码(ECC)的数字签名技术作者:任艳芳来源:《硅谷》2013年第12期摘要椭圆曲线密码(ECC)基于椭圆曲线离散对数问题,它是有限域上椭圆曲线有理点群的一种密码系统,既可以用于文件传输中的数据加密又可用于文件或密码的数字签名。
和其它公钥密码体制相比,它具有可用的攻击算法少、把明文转化为密文的任务小、处理速度快、密钥>=3、计算所需参数少以及带宽要求低等优点。
本文简略介绍了数字签名技术,主要内容是基于椭圆曲线的数字签名技术。
关键词椭圆曲线;数字签名;签名;验证中图分类号:TN918 文献标识码:A 文章编号:1671-7597(2013)12-0051-031 何为数字签名技术电子签名(Electronic Signature)泛指所有以电子形式存在,依附在电子文件并与其逻辑相关的一种签名,它以密码技术加密文件,辨别文件签署者身份,保证文件的完整性,并表示签署者认可电子文件所陈述事项的内容。
目前最成熟的电子签名技术就是“数字签名(Digital Signature)”,它由两种形式,一种是以公钥及密钥的”非对称型”密码技术制作的电子签名,还有一种是对称的密码技术电子签名,即只有公钥无需密钥。
由于数字签名技术采用的是单向不可逆运算方式,即文件明文用密钥加密得到的密文进行传输,如果不知道密钥,要有密文推导出明文几乎不可能。
并且传输时是以乱码的形式显示的,他人无法阅读或篡改。
因此,从某种意义上讲,使用数字签名的电子文件,甚至比使用签字盖章的书面文件安全得多。
数字签名机制应用在电子网络环境下,可提供四重的安全保证:1)完整性(integrity):文件接收者通过数字签名核对可确保文件完整性。
2)不可否认性(non-repudiation):只有文件发送者知道自己的密钥,而且文件具有发送者的数字签名附据,使其无法否认发送事实。
3)可鉴别(authentication):文件接收者可确认文件发送者的身份。
密码学算法包含数字签名算法椭圆曲线数字签名算法
密码学算法包含许多不同类型的算法,其中包括数字签名算法。
数字签名算法被用于验证和保证数据的完整性、身份认证和数据来源的真实性。
椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)是其中之一。
椭圆曲线数字签名算法基于椭圆曲线密码学理论,使用非对称密钥体系进行数字签名。
它利用了椭圆曲线上的数学性质,通过对消息进行哈希处理并使用私钥对哈希值进行加密,生成数字签名。
验证时,接收者使用对应的公钥对签名进行解密,并验证哈希值与原始消息的一致性,以确定数据的完整性和来源的真实性。
椭圆曲线数字签名算法具有以下几个特点:
- 安全性高:相对于传统的RSA算法,基于椭圆曲线的签名算法能够提供相同的安全性水平,但使用更短的密钥长度,从而减少了存储和计算开销。
- 高效性:由于椭圆曲线算法的特性,它在加密和解密操作中需要的计算量相对较小,处理速度较快。
- 资源消耗低:相对于其他数字签名算法,使用椭圆曲线算法进行签名和验证所需的计算和存储资源更少。
椭圆曲线数字签名算法在现代密码学和数字安全领域得到了广泛应用,特别是在移动设备和物联网等资源受限的环境中,ECDSA提供了一种高效、安全的数字签名方案。
然而,由于算法的复杂性和实现的技术细节,开发人员和系统管理员在使用椭圆曲线数字签名算法时需要小心,确保正确实施和相关标准的符合性。
证书的签名算法在数字证书中,签名算法是一种用于验证证书的真实性和完整性的重要工具。
签名算法通过对证书进行加密和验证,确保证书的发送者和内容未被篡改,同时也确保了证书的信任和可靠性。
本文将介绍几种常见的证书签名算法,它们在保护证书安全方面发挥了至关重要的作用。
一、RSA签名算法RSA签名算法,是使用公钥密码体制中的非对称加密算法。
该算法基于大数分解的困难性,通过生成两个大素数,并根据私钥对其中一个素数进行选择,然后根据公钥对两个素数相乘得到的数字进行加密,形成数字签名。
RSA算法的优势在于其安全性较高,同时也具备较好的效率。
然而,随着计算机计算能力的不断提高,破解RSA密钥将变得更加容易。
因此,在实际应用中,通常会使用更为安全的签名算法。
二、ECDSA签名算法ECDSA签名算法,全称椭圆曲线数字签名算法,在椭圆曲线密码体制中被广泛应用。
该算法基于椭圆曲线离散对数难题的困难性,使用非对称加密的方式生成数字签名。
与RSA相比,ECDSA算法在相同的安全性条件下,所需的密钥长度更短,计算速度更快。
同时,该算法也能够提供与RSA相当的安全性,确保被签名证书的完整性和真实性。
三、DSA签名算法DSA签名算法,全称数字签名算法,是一种常用的非对称加密算法。
该算法基于离散对数的困难性,使用私钥对要签名的消息进行加密,生成数字签名。
DSA算法主要应用于数字签名和密钥交换等领域,在保证通信安全方面发挥了重要作用。
然而,DSA算法的密钥长度相对较长,计算速度相对较慢,所以在实际应用中,通常会结合其他算法使用。
四、EdDSA签名算法EdDSA签名算法,全称Edwards-curve Digital Signature Algorithm,是一种基于椭圆曲线密码体制的签名算法。
该算法基于扭曲爱德华曲线上的离散对数问题,提供了一种高效且安全的签名方案。
相较于传统的签名算法,EdDSA算法的计算效率更高,且密钥长度相对较短,提供了更高的安全性。
椭圆曲线加密类型椭圆曲线加密算法是一种基于椭圆曲线数学理论实现的一种非对称加密算法。
它的优势是可以使用更短的密钥,来实现与RSA等其他非对称加密算法相当或更高的安全性。
椭圆曲线加密算法的类型主要有以下几种:- 椭圆曲线迪菲-赫尔曼密钥交换(ECDH):这是一种用于建立共享秘密的密钥交换协议,它利用了椭圆曲线上的离散对数问题的困难性,使得第三方很难从公开的椭圆曲线点中推导出私钥。
- 椭圆曲线数字签名算法(ECDSA):这是一种用于生成和验证数字签名的算法,它基于ElGamal签名算法,使用了椭圆曲线上的点乘运算和模逆运算。
它可以保证签名的完整性、真实性和不可否认性。
- 椭圆曲线ElGamal加密算法(ECElGamal):这是一种用于加密和解密消息的算法,它基于ElGamal加密算法,使用了椭圆曲线上的点加运算和点乘运算。
它可以保证消息的机密性和不可篡改性。
- 椭圆曲线Menezes-Qu-Vanstone密钥交换(ECMQV):这是一种用于建立共享秘密的密钥交换协议,它是对ECDH的改进,使用了两次椭圆曲线点乘运算,增加了安全性和效率。
它是美国国家安全局推荐的一种算法。
椭圆曲线加密算法的历史可以概括为以下几个阶段:- 1985年,Neal Koblitz和Victor Miller分别独立地提出了利用椭圆曲线数学理论实现公钥加密的思想,开创了椭圆曲线密码学的研究领域。
- 1994年,Daniel J. Bernstein提出了椭圆曲线的速度记录挑战,激励了许多密码学家对椭圆曲线加密算法的优化和实现。
- 1997年,David Kohel首次将椭圆曲线同源应用到密码学中,提出了一种基于同源的公钥加密方案。
- 2004年至2005年,椭圆曲线密码学的算法开始广泛应用于各种领域,如移动通信、智能卡、电子签名等。
- 2005年,美国国家安全局(NSA)宣布采用椭圆曲线密码的战略作为美国政府标准的一部分,推荐了一组包括椭圆曲线迪菲-赫尔曼密钥交换(ECDH)、椭圆曲线Menezes-Qu-Vanstone密钥交换(ECMQV)和椭圆曲线数字签名算法(ECDSA)等算法的套件。
rsa算法和椭圆曲线RSA算法和椭圆曲线是两种常用的非对称加密算法。
它们都具有极高的安全性和广泛的应用场景,但其原理和应用略有不同。
RSA算法是由Ron Rivest、Adi Shamir和Leonard Adleman于1977年提出的,是一种基于大素数分解问题的加密算法。
RSA算法包含三个主要步骤:密钥生成、加密和解密。
首先,选择两个不同的大素数p和q,并计算它们的乘积n=p*q。
然后选择一个整数e,且满足e与(p-1)(q-1)互质。
接下来,计算一个整数d,使得(d*e)mod((p-1)(q-1))=1、最后,公钥为(n,e),私钥为(n,d)。
加密时,将明文M转换成整数m,通过加密公式C=m^e mod n,得到密文C。
解密时,将密文C通过解密公式m=C^d mod n,得到明文m。
RSA算法的安全性主要基于大素数分解问题的困难性。
破解RSA算法需要找到p和q,这相当于要对大整数n进行因数分解。
传统方法中,对大数进行因数分解是一项非常耗费时间和资源的工作,在目前的计算能力下,对于足够大的n,这可以被认为是无法完成的任务。
因此,RSA算法被广泛应用于数字签名、身份认证和保密通信等领域。
椭圆曲线密码算法(ECC)是基于椭圆曲线离散对数问题的一种加密算法。
椭圆曲线是一个定义在有限域上的曲线,其数学性质使得椭圆曲线上的离散对数问题更加困难。
与RSA算法相比,ECC在相同的安全性下使用更短的密钥长度,因此具有更高的效率和更小的存储需求。
ECC主要包含密钥生成、加密和解密三个步骤。
首先,选择一个椭圆曲线和基点,计算椭圆曲线上的乘法表,然后选择一个私钥k,计算公钥P=k*G。
加密和解密过程与RSA算法类似,但使用的是椭圆曲线上的点运算。
ECC算法的安全性主要基于椭圆曲线上的离散对数问题的困难性。
与大素数分解相比,椭圆曲线上的离散对数问题更为困难,因为无法有效地应用已知的分解方法。
因此,ECC在相同的安全性下可以使用更短的密钥长度,从而提高了性能和效率。
椭圆曲线在密码学中的应用
椭圆曲线在密码学中被广泛应用,主要是因为它们具有一些非常重要的数学特性,如离散对数问题的困难性和数字签名的可靠性。
以下是一些椭圆曲线在密码学中的应用:
1. 椭圆曲线密码(ECC):ECC是基于椭圆曲线的密码体系,它比传统的RSA 或DSA等公钥密码体系更加高效和安全。
ECC不仅可以用于加密和解密,还可以用于数字签名和身份验证等应用。
2. 数字签名:椭圆曲线数字签名(ECDSA)是用于数字签名的一种算法,它比传统的数字签名算法更加高效和安全。
ECDSA可以用于身份验证、保护数据完整性和防止重放攻击等应用。
3. 密钥交换:椭圆曲线密钥交换(ECDH)是一种安全的密钥交换协议,用于在两个通信方之间安全地协商共享密钥。
ECDH不仅比传统的密钥交换协议更加高效和安全,还可以用于保护通信的机密性和完整性。
总的来说,椭圆曲线在密码学中的应用非常广泛,它们已经成为现代密码学中不可或缺的一部分。
基于椭圆曲线和RSA的数字签名的性能分析,数字签名,椭圆曲线基于椭圆曲线和RSA的数字签名的性能分析,数字签名,椭圆曲线密码体制,RSA,C++1引言数字签名是实现认证的重要工具,他在身份认证、数据完整性、抗抵赖性以及匿名性等方面有重要的应用,是电子商务应用、电子政务推广中的核心技术,数字签名能保证文件中每页内容均不会被改动或替换。
数字签名是特指以公钥密码实现的签名,或者可以定义为记录的一次变换,通过一个非对称密码系统和一个杂凑函数,使得有初始记录和签名者公钥的任何人都可以准确地判断该变换是否由相对应的私钥产生、初始记录在变换之后是否被修1 引言数字签名是实现认证的重要工具,他在身份认证、数据完整性、抗抵赖性以及匿名性等方面有重要的应用,是电子商务应用、电子政务推广中的核心技术,数字签名能保证文件中每页内容均不会被改动或替换。
数字签名是特指以公钥密码实现的签名,或者可以定义为记录的一次变换,通过一个非对称密码系统和一个杂凑函数,使得有初始记录和签名者公钥的任何人都可以准确地判断该变换是否由相对应的私钥产生、初始记录在变换之后是否被修改。
常用的数字签名体制:RSA,EIGamal,ECC。
其中基于RSA的数字签名算法现在应用十分广泛,而基于ECC的数字签名算法ECDSA 则是未来签名算法的热点方向,本文就两种算法的性能进行了分析和比较,同时讨论了各自的应用范围。
2 RSA的数字签名算法RSA算法是公钥密码体制中最著名的算法,他是以其发明人Rivest,Shamir和Adleman三人的首字母来命名的。
RSA是建立在大整数分解的困难上的,是一种分组密码体制。
RSA即可用于数据加密,也可用于数字签名。
2.1 RSA数字签名算法密钥对产生的过程(1)选择2个大的素数p,q。
(2)计算n:n=pq。
(3)随机选取e,满足1<e<φ(n),gcd(e.φ(n))=1,那么公钥就是(e,n)。
(4)计算d:满足ed=1modφ(n),那么私钥就是(d,n)。
基于椭圆曲线的数字签名加解密技术的研究概述数字签名是一种用于验证和保证数据完整性、真实性和不可否认性的技术,在现代通信和信息传输中得到广泛应用。
基于椭圆曲线的数字签名加解密技术是一种相对较新的数字签名算法,具有较高的安全性和效率。
本文将介绍基于椭圆曲线的数字签名加解密技术的原理和应用。
首先,我们将介绍椭圆曲线的基本概念和特性。
然后,我们将详细讨论基于椭圆曲线的数字签名算法的原理和过程。
最后,我们将讨论该技术的优势和应用。
椭圆曲线的基本概念和特性椭圆曲线是一个具有特定数学性质的二维平面曲线,其方程可以表示为:y^2 = x^3 + ax + b其中,a和b是曲线的参数。
椭圆曲线有许多特殊的性质和运算法则,这些性质和运算法则是基于有限域上的群运算定义的。
椭圆曲线上的点的加法运算和乘法运算具有封闭性、可逆性和分配性等特点。
椭圆曲线的一个重要性质是离散对数问题的困难性。
椭圆曲线上的离散对数问题是指在给定基点和结果点的情况下,找到一个指数使得基点的乘积等于结果点。
离散对数问题的困难性是基于当前的计算能力,很难通过直接计算来解决。
基于椭圆曲线的数字签名算法的原理和过程基于椭圆曲线的数字签名算法通常使用的是基于哈希函数的公钥加密算法,主要包括以下几个步骤:1.生成密钥对:首先,签名方生成一对密钥,包括一个私钥和一个与之对应的公钥。
私钥用于生成数字签名,公钥用于验证签名的有效性。
2.消息哈希:签名方对要进行签名的消息进行哈希计算,确定消息的唯一性,并为消息签名做准备。
3.数字签名生成:签名方使用私钥对消息的哈希值进行加密,生成数字签名。
4.数字签名验证:验证方使用签名方的公钥和消息的哈希值,进行解密操作,获得消息的完整性和签名的有效性。
基于椭圆曲线的数字签名算法相对于传统的RSA等算法具有更高的安全性和效率。
这种算法在保证数字签名的安全性的同时,能够提供较高的签名速度和更小的密钥长度。
基于椭圆曲线的数字签名加解密技术的优势和应用基于椭圆曲线的数字签名加解密技术相较于其他加密算法有以下几个优势:1.安全性高:基于椭圆曲线的数字签名算法基于离散对数问题,具有较高的安全性。
《基于ECC与RSA的随机加密方案的研究与设计》篇一一、引言随着互联网的迅猛发展,网络安全问题逐渐受到广大用户的高度重视。
密码学作为保护网络安全的核心技术,对于数据的加密和解密至关重要。
其中,ECC(椭圆曲线密码)和RSA是两种主流的公钥加密算法。
本研究设计了一种基于ECC与RSA的随机加密方案,旨在提供更高层次的加密保护和更好的安全性。
二、ECC与RSA的概述椭圆曲线密码(ECC)是一种基于椭圆曲线数学的公钥密码系统。
由于其加密强度高、密钥长度小等优点,被广泛应用于数字签名、身份验证等领域。
另一方面,RSA算法则是一种基于大数因子分解的公钥密码系统,被广泛用于加密、解密和数字签名等安全领域。
三、研究动机与目的当前,单一使用ECC或RSA进行加密已无法满足日益增长的网络安全需求。
为了解决这一问题,本研究旨在设计一种结合ECC和RSA的随机加密方案。
此方案不仅能够充分利用两者的优点,提高加密强度,同时也能更好地应对各种网络攻击。
四、方案设计1. 密钥生成:首先,生成ECC私钥和公钥对。
然后,利用RSA算法生成RSA私钥和公钥对。
这两对密钥将作为后续加密和解密的基础。
2. 随机加密:在数据传输前,采用随机数生成器生成一个随机数作为一次性的会话密钥。
该会话密钥将用于对数据进行初步的加密处理。
3. ECC加密:将初步加密的数据和ECC公钥作为输入,利用ECC算法进行二次加密。
此时,只有拥有对应ECC私钥的用户才能解密数据。
4. RSA加密:将经过ECC加密的数据和RSA公钥作为输入,利用RSA算法进行第三次加密。
此时,即使拥有ECC私钥,若无对应的RSA私钥也无法解密数据。
5. 数据传输:经过上述三个步骤加密后的数据,通过安全信道进行传输。
五、方案优势本方案结合了ECC和RSA两种算法的优点,具有以下优势:1. 高强度加密:通过三次加密过程,极大地提高了数据的安全性。
2. 随机性:采用随机数生成器生成的会话密钥,增强了数据的保密性。
《密码学》课程设计实验报告实验序号:06 实验项目名称:数字签名RSA签名RSA签名核心代码说明由于在实验报告5中已经对RSA的相关代码进行了分析,这里主要给出签名和验签的代码。
在对某个二进制文件进行签名之前,我们首先需要计算其数据摘要,这里我们采用md5哈希算法,其对应的代码如下md5哈希算法在RSA的签名中,其实就是用私钥进行解密的过程,其对应的代码如下RSA签名其中解密对应的代码如下,pow函数提供了快速幂的功能RSA解密在RSA验签的过程中,其实就是用公钥进行加密的过程,其对应的代码如下RSA验签其中加密对应的算法如下RSA加密RSA签名实验结果演示首先是计算待签名文件的md5值md5结果对得到的md5值进行签名,可以得到如下的结果RSA签名结果对签名进行验签,可以发现成功验证签名验证签名ECC签名代码整体说明相关文件(ecc.py)由于在前面的ECC加解密(实验报告5)中已经对ECC的相关接口进行了介绍,这里我们不再重复。
这里主要给出签名和验签的主要流程签名的主要流程如下1.选择一个随机数k,k∈{1,2,⋯,n−1}2.计算点R(x R,y R)=kG,并记r=x R3.利用保密的解密钥d计算s=(Hasℎ(m)−dr)k−1 (mod n)4.以<r,s>作为消息m的签名,并以<m,r,s>的形式传输或者存储验签的主要流程如下1.计算s−1 (mod n)2.利用公开的加密钥Q计算U(x U,y U)=s−1(Hasℎ(m)G−rQ)3.如果x U=r,则<r,s>是用户A对m的签名ECC签名核心代码说明由于在实验报告5中已经对ECC的相关代码进行了分析,这里主要给出签名和验签的代码。
进行签名的代码主要如下,可以发现和我们上面提到的签名步骤是一一对应的ECC签名进行验签的代码如下,和上述我们提到的验签步骤也是一一对应的ECC验签ECC签名实验结果演示同RSA签名一样,我们首先需要计算文件对应的数据摘要,这里我们使用md5哈希算法md5数据摘要接着对数据摘要进行签名,得到如下的签名结果ECC签名结果对得到的签名进行验签,可以发现成功验证ECC验签五、分析与讨论1)与ECC的签名相比,RSA的签名和验签显得更为优雅,即解密对应签名,加密对应验签2)和RSA签名相比,ECC引入了随机数k,使得即使对同一个数据进行签名,产生的结果也可能不一样,这在一定程度上增加了ECC签名的安全性3)与传统的分组密码相比,使用公钥密码实现数字签名非常方便且更加安全。
椭圆曲线密码体制椭圆曲线密码体制一、什么是椭圆曲线密码体制椭圆曲线密码体制(简称ECC),又称椭圆曲线加密算法,是一种公开密钥密码体系,是一种基于现代密码术中数论和椭圆曲线理论的一种密码学体系,由Neal Koblitz和Victor Miller在1985年首次提出。
椭圆曲线密码体制是基于椭圆曲线上的椭圆点之间的变换来实现的,研究表明,它可以用比同等安全等级的传统密码体系所需要的密钥长度要短得多的密钥进行加密。
二、椭圆曲线密码体制的特点1. 安全:与RSA不同,椭圆曲线密码体制的安全性完全取决于数学上的易破性,没有同等级别的RSA系统比它更安全。
相对RSA而言,椭圆曲线系统的密钥长度更短,它的安全性能与相同等级的RSA系统相比也要高一些。
2. 速度:椭圆曲线密码体制的速度要比RSA更快,一般用椭圆曲线密码体制的执行时间可以达到RSA的1/30-1/1000。
3. 隐私:椭圆曲线密码体制具有较高的安全性,可以保证用户信息的安全性。
三、椭圆曲线密码体制的应用1. 数字签名:椭圆曲线密码体制最常用于数字签名,可以确保签名者之间的身份认证,避免信息传输过程中的欺诈行为,为数字处理私有、公共和敏感信息提供强大的安全保护。
2. 数据加密:椭圆曲线密码体制还可以应用于数据加密,可以有效保护不同终端上的资料传输安全,满足不同企业在网络安全方面的需求。
3. 隐私保护:虽然椭圆曲线密码体制的产生是为了提高通信安全性,但也可以应用于隐私保护,为信息发布者和使用者都提供安全保护。
四、椭圆曲线密码体制的缺点1. 椭圆曲线密码体系要求很高的计算能力,一旦公钥被公开,破解椭圆曲线密码体制的成本比RSA的上升很多,增加了攻击的成本。
2. 尽管椭圆曲线密码体制的速度比RSA快,但椭圆曲线算法的速度仍然比较慢,因此有时可能会影响用户体验。
3. 椭圆曲线密码体制中使用的椭圆点数量比较大,也使得它的安全性有限。
4. 椭圆曲线密码体制目前尚没有足够的理论和实际证明,是否能达到纳什不可破解定理的效果。
密码学技术与应用1、B是指网络中的用户不能否认自己曾经的行为。
A.性B.不可抵赖性C.完整性D.可控性2. 如果消息接收方要确认发送方身份,将遵循以下哪条原则B。
A.性B.鉴别性C.完整性D.访问控制3. A将不会对消息产生任何修改。
A.被动攻击B.主动攻击C.冒充D.篡改4. A 要求信息不致受到各种因素的破坏。
A.完整性B.可控性C.性D.可靠性5.凯撒密码把信息中的每个字母用字母表中该字母后的第三个字母代替,这种密码属于 A 。
A.替换加密 B.变换加密 C. 替换与变换加密 D.都不是6. C 要求信息不被泄露给未经授权的人。
A.完整性B.可控性C.性D.可靠性7.公钥密码体制又称为D。
A.单钥密码体制B.传统密码体制C.对称密码体制D.非对称密码体制8.私钥密码体制又称为 C 。
A.单钥密码体制B.传统密码体制C.对称密码体制D.非对称密码体制9. 研究密码编制的科学称为 C 。
A.密码学B.信息安全C.密码编码学D.密码分析学10. 密码分析员负责 B 。
A.设计密码方案 B.破译密码方案 C.都不是 D.都是11.3-DES加密 C 位明文块。
A.32 B.56 C.64 D.12812.同等安全强度下,对称加密方案的加密速度比非对称加密方案加密速度A 。
A.快 B.慢 C.一样 D.不确定13.一般认为,同等安全强度下,DES的加密速度比RSA的加密速度B。
A.慢 B.快 C.一样 D.不确定14.DES即数据加密标准是一个分组加密算法,其(明文)分组长度是C bit,使用两个密钥的三重DES的密钥长度是bitA.56,128 B.56,112 C.64,112 D.64,16815. B 算法的安全性基于大整数分解困难问题。
A. DESB. RSAC.AESD. ElGamal16.如果发送方用私钥加密消息,则可以实现 D 。
A.性 B.与鉴别 C.而非鉴别 D.鉴别17. C 是个消息摘要算法。
椭圆曲线密码系统的探讨及其数字签名算法的研究
朱逢胜;余兵;闫菲菲
【期刊名称】《工程地球物理学报》
【年(卷),期】2008(005)004
【摘要】近若干年对椭圆曲线系统(ecc)的研究,特别是它在近代密码学的应用,可谓是异军突起,前景很好.本文介绍和讨论了椭圆曲线基本概念,公钥密码系统,以及数字签名算法,并综合比较了数字签名算法RSA和ECDSA的优缺点.并且使用Visual Basic程序开发语言实现椭圆曲线密码算法.
【总页数】5页(P499-503)
【作者】朱逢胜;余兵;闫菲菲
【作者单位】中国地质大学,数学与物理学院,武汉,430074;中国地质大学,数学与物理学院,武汉,430074;中国地质大学,数学与物理学院,武汉,430074
【正文语种】中文
【中图分类】O29
【相关文献】
1.SM2数字签名算法在电力分界开关控制器中的研究与应用 [J], 陈闻卿;朱岩
2.调频副载波方式应急广播中数字签名算法研究 [J], 赵云辉
3.基于离散对数的广义数字签名算法研究 [J], 丁家琳
4.基于哈希证明系统的区块链两方椭圆曲线数字签名算法研究 [J], 刘峰;杨杰;齐佳音
5.基于哈希证明系统的区块链两方椭圆曲线数字签名算法研究 [J], 刘峰;杨杰;齐佳音
因版权原因,仅展示原文概要,查看原文内容请购买。
基于椭圆曲线和RSA的数字签名的性能分析,数字签名,椭圆曲线密码体制,RSA,C++
1引言数字签名是实现认证的重要工具,他在身份认证、数据完整性、抗抵赖性以及匿名性等方面有重要的应用,是电子商务应用、电子政务推广中的核心技术,数字签名能保证文件中每页内容均不会被改动或替换。
数字签名是特指以公钥密码实现的签名,或者可以定义为记录的一次变换,通过一个非对称密码系统和一个杂凑函数,使得有初始记录和签名者公钥的任何人都可以准确地判断该变换是否由相对应的私钥产生、初始记录在变换之后是否被修
1 引言
数字签名是实现认证的重要工具,他在身份认证、数据完整性、抗抵赖性以及匿名性等方面有重要的应用,是电子商务应用、电子政务推广中的核心技术,数字签名能保证文件中每页内容均不会被改动或替换。
数字签名是特指以公钥密码实现的签名,或者可以定义为记录的一次变换,通过一个非对称密码系统和一个杂凑函数,使得有初始记录和签名者公钥的任何人都可以准确地判断该变换是否由相对应的私钥产生、初始记录在变换之后是否被修改。
常用的数字签名体制:RSA,EIGamal,ECC。
其中基于RSA的数字签名算法现在应用十分广泛,而基于ECC的数字签名算法ECDSA则是未来签名算法的热点方向,本文就两种算法的性能进行了分析和比较,同时讨论了各自的应用范围。
2 RSA的数字签名算法
RSA算法是公钥密码体制中最著名的算法,他是以其发明人Rivest,Shamir和Adleman三人的首字母来命名的。
RSA是建立在大整数分解的困难上的,是一种分组密码体制。
RSA即可用于数据加密,也可用于数字签名。
2.1 RSA数字签名算法密钥对产生的过程
(1)选择2个大的素数p,q。
(2)计算n:n=pq。
(3)随机选取e,满足1<e<φ(n),gcd(e.φ(n))=1,那么公钥就是(e,n)。
(4)计算d:满足ed=1modφ(n),那么私钥就是(d,n)。
2.2 RSA数字签名算法的签名过程
假设待签名的消息为M:
(1)计算消息的散列值H(M)。
(2)用私钥(d,n)加密散列值:s=(H(M))dmod n。
签名结果就是:s。
(3)发送消息和签名(M,s)。
2.3 RSA数字签名算法的验证过程
(1)取得发送方密钥(e,n)。
(2)解密签名s:h=se mod n。
(3)计算消息的散列值H(M)。
(4)比较,如果h=H(M),表示签名有效;否则签名无效。
3椭圆曲线数字签名算法ECDSA
椭圆曲线签名算法ECDSA是基于椭圆曲线密码体制(ECC)的数字签名算法。
DSA 是美国国家标准局制定的数字签名算法,他是建立在有限域乘法群上的。
对于有限域上的椭圆曲线密码系统,数字签名标准建议采用椭圆曲线数字签名算法ECDSA,下面给出该算法的过程。
假设一组椭圆曲线的参数组为(q,FR,a,b,G,n,h)。
其中q是域的阶,FR 指示域中元素的表示方法,a,b是两个系数,G是基点,G的阶为n,余因子h=#E(Fq)/n,他是一个小的素数。
3.1 ECDSA密钥对生成过程
(1)选择一个随机数d,d∈(1,n-1)。
(2)计算Q,Q=dG。
(3)那么公钥为Q,私钥为整数d。
3.2 ECDSA签名过程
假设待签名的消息为,m;
(1)选择一个随机数k,k∈(1,n-1)。
(2)计算kG=(x1,y1)。
(3)计算r=x1 mod n;如果r=O,则返回到步骤(1)。
(4)计算k-1 mod n。
(5)计算e=SHA1(m)。
(6)计算s=k-1(e+dr)mod n,如果s=O,则返回到步骤(1)。
(7)对消息的签名为(r,s),最后签名者把消息m和签名(r,s)发送给接收者。
3.3 ECDSA密钥对验证过程
获得发送者的公钥Q开始验证:
(1)检查r,s,要求r,s∈(1,n-1)。
(2)计算e=SHA1(m)。
(3)计算w=s-1mod n。
(4)计算u1=ew mod n;u2=rw mod n。
(5)计算X=u1G+u2Q。
(6)如果X=O,表示签名无效;否则,X=(x1,y1),计算v=x1modn。
(7)如果v=r,表示签名无效;否则表示签名有效。
4两种签名性能比较
本文利用C++编程仿真基于ECC的数字签名算法ECDSA和基于RSA的数字签名算法的运算时间和密钥的字节数。
4.1 比较依据
根据文献[1]的描述,我们可以认为下列对应的密钥长度具有相同的安全性能(表1)。