基于智能卡的素数域椭圆曲线密码的快速实现
- 格式:pdf
- 大小:101.31 KB
- 文档页数:3
椭圆曲线密码学算法原理与实现椭圆曲线密码学算法是当前计算机安全领域中广泛使用的一种加密算法。
与传统的RSA算法相比,椭圆曲线密码学算法具有较高的安全性和更短的密钥长度,同时也更加适用于小型设备和无线通信领域。
本文将对椭圆曲线密码学算法的原理、优势以及实现进行介绍。
一、椭圆曲线密码学算法原理椭圆曲线密码学算法是基于椭圆曲线运算的一种加密算法。
在椭圆曲线上,可以定义加法和乘法等运算操作,从而构建出密钥系统。
具体来讲,椭圆曲线密码学算法使用的是离散对数问题,即找到一个整数k,使得G=kP,其中G和P是椭圆曲线上的点,k是密钥。
在使用椭圆曲线密码学算法时,有两个关键要素,分别是公钥和私钥。
公钥是任何人都可以获得的,而私钥只有信息发送者才能获得。
当信息发送者需要发送加密信息时,会使用接收者的公钥对信息进行加密,接收者收到信息后再使用自己的私钥进行解密。
这种方法可以保证信息在传输过程中不被他人窃取。
二、椭圆曲线密码学算法的优势椭圆曲线密码学算法相对于传统的RSA算法,有以下的优势:1. 更高的安全性。
使用椭圆曲线密码学算法时,需要使用的密钥长度较短,但是却具有比较高的安全性。
这是因为椭圆曲线操作比传统的大数因子分解更难以破解。
2. 适用于小型设备和无线通信领域。
使用传统的RSA算法时,需要较长的密钥,这在小型设备和无线通信领域会造成很大的问题。
而椭圆曲线密码学算法可以使用更短的密钥长度,可以在小尺寸的设备上使用,如智能卡和移动设备等。
3. 更高的运算速度。
相比传统的RSA算法,使用椭圆曲线密码学算法进行加密和解密的运算速度更快,可以更加高效地完成加密解密操作。
三、椭圆曲线密码学算法的实现椭圆曲线密码学算法的实现涉及到一系列的数学运算,包括椭圆曲线上的点的加法、乘法、求逆以及扩域操作等。
下面简单介绍一下椭圆曲线密码学算法的实现过程。
1. 密钥的生成。
在使用椭圆曲线密码学算法时,需要生成一对公钥和私钥。
生成公钥时,需要选择一个椭圆曲线和基点,然后随机选取一个整数作为私钥。
2022年职业考证-软考-信息安全工程师考试全真模拟易错、难点剖析B卷(带答案)一.综合题(共15题)1.单选题PKI中撤销证书是通过维护一个证书撤销列表CRL来实现的。
以下不会导致证书被撤销的是()。
问题1选项A.密钥泄漏B.系统升级C.证书到期D.从属变更【答案】B【解析】本题考查PKI相关知识。
每个证书都有一个有效使用期限,有效使用期限的长短由 CA 的政策决定。
有效使用期限到期的证书应当撤销。
证书的公钥所对应的私钥泄露,或证书的持证人死亡,证书的持证人严重违反证书管理的规章制度等情况下也要撤销证书。
故本题选B。
点播:公钥基础设施(PKI)是一种遵循既定标准的密钥管理平台,它提供了一种系统化的、可扩展的、统一的、可控制的公钥分发方法。
和证书的签发一样,证书的撤销也是一个复杂的过程。
证书的撤销要经过申请、批准、撤销三个过程。
2.案例题阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】密码学的基本目标是在有攻击者存在的环境下,保证通信双方(A和B)之间能够使用不安全的通信信道实现安全通信。
密码技术能够实现信息的保密性、完整性、可用性和不可否认性等安全目标。
一种实用的保密通信模型往往涉及对称加密、公钥密码、Hash函数、数字签名等多种密码技术。
在以下描述中,M表示消息,H表示Hash函数,E表示加密算法,D表示解密算法,K表示密钥,SKA表示A的私钥,PKA表示A的公钥,SKB表示B的私钥,PKB表示B的公钥,||表示连接操作。
【问题1】(6分)用户AB双方采用的保密通信的基本过程如图2-1所示。
请问图2-1所设计的保密通信模型能实现信息的哪些安全目标?图2-1中的用户A侧的H和E能否互换计算顺序?如果不能互换请说明原因:如果能互换请说明对安全目标的影响。
【问题2】(4分)图2-2给出了另一种保密通信的基本过程:请问图2-2设计的保密通信模型能实现信息安全的哪些特性?【问题3】(5分)为了在传输过程中能够保障信息的保密性、完整性和不可否认性,设计了一个安全通信模型结构如图2-3所示:请问图2-3中(1),(2)分别应该填什么内容?【答案】【问题1】实现完整性。
椭圆曲线密码学(Elliptic Curve Cryptography,ECC)是一种在现代密码学中广泛应用的公钥密码学算法。
它通过椭圆曲线的数学性质和运算法则,提供了一种高效、安全的加密和数字签名方案。
本文将从椭圆曲线密码学的基本原理、应用领域以及其优势等方面进行详细介绍。
首先,我们来了解一下椭圆曲线密码学的基本原理。
椭圆曲线密码学以椭圆曲线上的离散对数难题为基础,这个难题在当前的计算能力下是不可能被解决的。
利用这个难题,椭圆曲线密码学能够实现两个重要的功能:加密和数字签名。
在加密方面,椭圆曲线密码学可以用来构建公钥密码体制中的加密算法,如RSA算法的替代方案。
椭圆曲线公钥密码体制中,每个用户都有一对密钥:一个公钥和一个私钥。
公钥可公开,私钥需要保密。
发送者使用接收者的公钥对消息进行加密,接收者使用私钥解密。
由于离散对数难题的存在,即使获取到公钥也很难破解私钥从而获得消息内容。
在数字签名方面,椭圆曲线密码学可以用来构建公钥密码体制中的签名算法,如DSA算法的替代方案。
数字签名是用来确认数字信息的完整性和可信性的一种机制。
发送者使用自己的私钥对消息进行签名,接收者使用发送者的公钥验证签名的有效性。
利用离散对数难题,即使获取到签名和公钥也很难伪造有效的签名。
除了加密和数字签名,椭圆曲线密码学还有许多其他的应用。
例如,它可以用来构建密钥交换协议,如椭圆曲线Diffie-Hellman协议。
该协议可以在未经安全传输信道的情况下,使通信双方协商并建立一个共享密钥,从而实现安全通信。
此外,椭圆曲线密码学还可用于构建零知识证明、身份认证等密码学协议。
与其他公钥密码学算法相比,椭圆曲线密码学具有许多优势。
首先,椭圆曲线密码学的密钥长度相对较短,这意味着它在资源受限的环境中更加高效。
其次,椭圆曲线密码学提供了更强的安全性,相同安全强度的椭圆曲线密钥长度要短于RSA密钥长度,从而减少了计算和存储成本。
此外,椭圆曲线密码学还能够提供更高的性能和较小的带宽占用,适合于移动设备和无线通信等场景。
ECC算法和加密应用大全椭圆曲线密码算法(ECC)是一种基于椭圆曲线数学的公钥加密算法。
相比于其他公钥加密算法,ECC在相同的安全级别下,使用的密钥长度更短,计算速度更快,对资源的要求更低。
因此,ECC被广泛应用于移动设备、物联网和无线通信等领域。
ECC算法的优势在于它可以提供与RSA和DSA等其他公钥加密算法相同的安全性,但使用更短的密钥长度。
这使得ECC特别适合于资源有限的环境,如智能卡、传感器节点和无线传感器网络。
此外,由于ECC算法的运算速度较快,对于移动设备和网络通信来说,能够提供更好的性能和效率。
1.TLS/SSL:ECC算法在传输层安全协议(TLS)和安全套接层(SSL)协议中被广泛使用。
TLS和SSL用于保护互联网通信的安全性,通过使用ECC算法实现身份验证、密钥交换和数据加密。
2. 数字货币:ECC算法在许多加密货币中被用于生成公钥和私钥,以保证交易的安全性和隐私性。
比特币(Bitcoin)和以太坊(Ethereum)等主要的加密货币都使用了ECC算法。
3.移动设备安全:由于ECC算法对资源的要求较低,因此它在移动设备的安全性中得到了广泛应用。
包括手机、平板电脑和智能手表等移动设备都使用ECC算法来实现身份验证、数据加密和数字签名。
4.物联网安全:ECC算法在物联网中的应用也越来越广泛。
物联网设备通常具有较低的计算能力和存储容量,因此使用ECC算法能够满足物联网设备的要求,并提供足够的安全性。
5.数字签名:ECC算法可以用于生成和验证数字签名,以实现数据的完整性和身份验证。
数字签名在电子商务、电子合同和电子文件等领域中发挥着重要作用。
6.密码学教育:ECC算法也在密码学教育中被广泛应用。
作为一种高效且安全的公钥加密算法,ECC算法成为密码学课程中的重要内容。
总结:ECC算法是一种基于椭圆曲线数学的公钥加密算法,具有较短的密钥长度、较快的计算速度和较低的资源要求。
ECC算法在TLS/SSL、数字货币、移动设备安全、物联网安全、数字签名和密码学教育等领域得到了广泛应用。
椭圆曲线加密类型椭圆曲线加密算法是一种基于椭圆曲线数学理论实现的一种非对称加密算法。
它的优势是可以使用更短的密钥,来实现与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)等算法的套件。
椭圆曲线加密算法实现椭圆曲线加密算法(ECDSA)的实现涉及到椭圆曲线的参数选择、密钥生成、签名和验证等过程。
1. 参数选择:要实现椭圆曲线加密算法,首先需要选择合适的椭圆曲线参数。
常用的椭圆曲线参数有两种类型:素数域曲线和二进制域曲线。
参数选择需要考虑安全性和效率。
常见的参数选择有NIST提供的曲线参数。
2. 密钥生成:椭圆曲线加密算法使用椭圆曲线上的点作为密钥。
生成密钥的步骤如下:- 随机选择一个私钥k,私钥范围在[1, n-1]之间,n为椭圆曲线的阶。
- 计算公钥P = kG,其中G为椭圆曲线上的基点。
- 公钥P和私钥k即为加密算法的密钥对。
3. 签名:签名的过程包括选择消息的哈希算法、生成签名的随机数、计算签名值等步骤。
- 随机选择一个正整数r,使得1<=r<n。
- 计算椭圆曲线上的点R = rG。
- 计算r对于素数n的模反元素s,即s = r^(-1) (mod n)。
- 计算签名值sig = (R, s),其中R为点,s为整数。
4. 验证:验证签名的过程包括计算验证签名的哈希值、计算验证点和比较验证点与签名值中的点的情况。
- 计算消息的哈希值。
- 计算签名值sig中的s的模反元素w,即w = s^(-1) (mod n)。
- 计算u1 = hash(m)w (mod n)和u2 = Rw (mod n)。
- 计算验证点X = u1G + u2P。
- 如果X的x坐标和签名的R的x坐标相等,验证成功;否则,验证失败。
上述是椭圆曲线加密算法(ECDSA)的基本实现步骤,具体实现过程需要参考具体的编程语言和密码学库的文档和示例代码。
椭圆曲线密码算法的设计与分析椭圆曲线密码算法(Elliptic Curve Cryptography, ECC)是一种基于椭圆曲线数学问题的公钥密码体制。
相比传统的RSA和DSA等公钥密码体制,ECC具有更短的密钥长度和更高的安全性,因此在现代密码学中被广泛应用。
本文将从椭圆曲线密码算法的基本原理、设计思想、应用领域以及安全性等方面进行分析和讨论。
一、基本原理1. 椭圆曲线椭圆曲线是由一组满足特定数学方程的点构成的曲线,其数学方程一般形式为:y^2 = x^3 + ax + b。
椭圆曲线上的点可以进行加法和乘法运算,构成一个代数结构。
椭圆曲线的加法运算有闭合性、交换律、结合律等性质,使得其成为构建密码体制的基础。
2. 椭圆曲线上的离散对数问题椭圆曲线上的离散对数问题(Elliptic Curve Discrete Logarithm Problem, ECDLP)是指找到满足P = kG的整数k,其中P和G分别为椭圆曲线上的点。
ECDLP是一种困难问题,即使在现代计算机条件下,也需要消耗大量的计算资源才能解决。
二、设计思想1. 基于硬问题的安全性与RSA和DSA等公钥密码体制不同,椭圆曲线密码算法是基于椭圆曲线上的离散对数问题的困难性而安全的。
目前来看,对于给定的椭圆曲线参数,没有已知的高效算法可以有效解决ECDLP问题。
因此,ECC可以提供较高的安全性,同时使用更短的密钥长度,减少了计算、存储和传输的开销。
2. 允许更短的密钥长度相比传统的RSA和DSA等公钥密码体制,ECC可以使用更短的密钥长度来达到相同的安全性。
例如,一个256位的椭圆曲线密钥可以提供与一个2048位RSA密钥相当的安全性。
这使得ECC在资源受限的环境下更加实用。
3. 高效的加密和解密运算椭圆曲线上的加法和乘法运算可以通过一些高效的算法来进行,使得密钥生成、加密和解密等运算更快速和高效。
这对于移动设备和无线网络等资源受限的环境来说,具有重要意义。
椭圆曲线密码学(Elliptic Curve Cryptography, ECC)是一种现代密码学中的公钥密码学体制。
与传统的RSA体制相比,ECC在相同的安全性下可以使用较短的密钥长度,这使得ECC成为了一种更加高效和安全的密码学算法。
椭圆曲线密码学的基础是椭圆曲线。
椭圆曲线是由一组满足特定方程的点构成的曲线。
在密码学中,常常使用的是定义在有限域上的椭圆曲线。
有限域上的椭圆曲线为计算提供了更高效的方法。
在椭圆曲线密码学中,每个用户都有一对密钥,分别是私钥和公钥。
私钥由用户保密,而公钥可以被其他人获取。
利用椭圆曲线上的点运算,可以实现一些特殊的加密和解密操作。
在加密过程中,发送方可以利用对方的公钥对消息进行加密。
而解密过程则需要利用私钥来得到原始的明文消息。
椭圆曲线密码学的特点是,即使拥有公钥和加密算法,破解密文也是相当困难的。
椭圆曲线密码学的应用广泛,它在许多安全协议中被使用,包括数字签名、身份认证、密钥交换等。
例如,当一个用户要登录一个系统时,可以使用椭圆曲线密码学来进行身份认证,保证用户的电子身份的准确性。
在数字支付中,椭圆曲线密码学也被广泛应用,用于保护用户的支付信息和安全交易。
相比于传统的RSA体制,椭圆曲线密码学具有更高的安全性和效率。
在相同的安全水平下,所需的密钥长度更短,这减少了存储和传输成本,并提高了计算效率。
这使得椭圆曲线密码学在资源受限的设备上有着广泛的应用,例如智能卡和物联网设备。
然而,椭圆曲线密码学也存在一些挑战和问题。
首先,选择合适的椭圆曲线参数是很关键的,不合适的参数选择可能导致安全性降低。
其次,椭圆曲线密码学的数学基础相对较复杂,使用不当易出现安全漏洞。
因此,需要对椭圆曲线密码学算法进行严格的分析和评估,以确保其安全性和可靠性。
总之,椭圆曲线密码学作为一种现代密码学体制,已经在许多领域得到了广泛的应用。
它具有高效、安全的特点,可以用于实现加密、解密、身份认证等重要的安全操作。
椭圆曲线密码体制椭圆曲线密码体制一、什么是椭圆曲线密码体制椭圆曲线密码体制(简称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. 椭圆曲线密码体制目前尚没有足够的理论和实际证明,是否能达到纳什不可破解定理的效果。
2022年职业考证-软考-信息安全工程师考试全真模拟易错、难点剖析AB卷(带答案)一.综合题(共15题)1.单选题Windows系统的用户管理配置中,有多项安全设置,其中密码和账户锁定安全选项设置属于()。
问题1选项A.本地策略B.公钥策略C.软件限制策略D.账户策略【答案】D【解析】点播:在Windows操作系统中,账户策略包含三个子集:(1)密码策略:对于域或本地用户账户,决定密码的设置,如强制性和期限。
(2)账户锁定策略:对于域或本地用户账户,决定系统锁定账户的时间,以及锁定谁的账户。
(3)Kerberos 策略:对于域用户账户,决定与 Kerberos 有关的设置,如账户有效期和强制性。
2.单选题PKI是一种标准的公钥密码的密钥管理平台,数字证书是PKI的基本组成部分。
在PKI中,X.509数字证书的内容不包括()。
问题1选项A.加密算法标识B.签名算法标识C.版本号D.主体的公开密钥信息【答案】A【解析】本题考查PKI方面的基础知识。
X.509数字证书内容包括:版本号、序列号、签名算法标识、发行者名称、有效期、主体名称、主体公钥信息、发行者唯一标识符、主体唯一识别符、扩充域、CA的签名等,不包括加密算法标识。
3.单选题数字水印技术是指在数字化的数据内容中嵌入不明显的记号,被嵌入的记号通常是不可见的或者不可察觉的,但是通过计算操作能够实现对该记号的提取和检测。
数字水印不能实现()。
问题1选项A.证据篡改鉴定B.数字信息版权保护C.图像识别D.电子票据防伪【答案】C【解析】本题考查数字水印技术方面的基础知识。
根据应用领域可将数字水印分为:①鲁棒水印:通常用于数字化图像、视频、音频或电子文档的版权保护。
将代表版权人身份的特定信息,如一-段文字、标识、序列号等按某种方式嵌入在数字产品中,在发生版权纠纷时,通过相应的算法提取出数字水印,从而验证版权的归属,确保著作权人的合法利益,避免非法盗版的威胁。
椭圆曲线密码体制(ECC)是一种基于椭圆曲线离散对数问题的公钥加密算法,它具有在小比特长度下提供同等安全性的优势。
在椭圆曲线密码体制中,域的参数是非常重要的一部分,它直接影响到密码系统的安全性和效率。
我们将从基础概念开始,深入探讨椭圆曲线密码体制所使用的域的参数。
1. 基础概念在椭圆曲线密码体制中,域的参数指的是有限域的特征和模数。
有限域通常用GF(p)表示,其中p是一个素数,GF(p^m)表示特征为p的扩域。
在ECC中,椭圆曲线的定义需要选择一个合适的有限域作为基础,常用的有限域包括素域GF(p)和二元扩域GF(2^m)。
2. 选择域的参数选择合适的域的参数对于构建安全且高效的椭圆曲线密码体制至关重要。
一般来说,域的参数需要满足以下几个条件:- 模数的大小要足够大,以抵抗各种攻击,如离散对数攻击和椭圆曲线上的移动攻击。
- 模数的选择应该尽量避免特殊结构,以增加密码系统的难度。
- 特征的选择也会影响计算的效率,一般来说,选择特征为素数的域可以更好地适应硬件实现,而选择特征为二的扩域可以简化一些运算。
3. 安全性分析域的参数对于密码系统的安全性有着直接的影响。
模数的大小和特征的选择都会影响到密码系统的安全性。
较小的模数很容易受到穷举搜索的攻击,而特殊结构的模数也容易遭受特定的攻击。
在选择域的参数时,需要进行仔细的安全性分析,以确保密码系统具有足够的安全性。
4. 效率分析除了安全性外,选择合适的域的参数还会影响到密码系统的计算效率。
合适的域的参数可以使得加密和解密的运算更加高效。
特征为素数的域通常适用于软件实现,而特征为二的扩域则适用于硬件实现。
在设计密码系统时,需要综合考虑安全性和效率的因素,选择合适的域的参数。
总结椭圆曲线密码体制所使用的域的参数对于密码系统的安全性和效率都起着至关重要的作用。
正确地选择域的参数可以保证密码系统具有足够的安全性,并且能够高效地进行加密和解密运算。
在设计椭圆曲线密码体制时,需要进行深入的域参数分析,并根据具体的应用场景选择合适的域的参数。
ECC在智能卡上的实现
刘晓莹;祝跃飞
【期刊名称】《计算机应用与软件》
【年(卷),期】2004(021)008
【摘要】提出一种基域采用GF(2193)的椭圆曲线密码体制(ECC)基于单片机资源的快速算法,并在MCS51内核单片机系统中实现ECC算法.在12M晶振(外部时钟)的Intel 8051芯片上达到每次签名4.6秒,在3.57Mcyc/s的SIMENS的SLE44中每次签名5.8秒.
【总页数】4页(P1-3,113)
【作者】刘晓莹;祝跃飞
【作者单位】解放军信息工程大学网络工程系,郑州,450002;解放军信息工程大学网络工程系,郑州,450002
【正文语种】中文
【中图分类】TN492
【相关文献】
1.智能卡中实现ECC算法的关键问题的研究 [J], 杨揆;单承赣
2.基于智能卡的RSA与ECC算法的比较与实现 [J], 刘淳;张凤元;张其善
3.素数域上ECC加密算法的软件实现 [J], 刘磊
4.二进制域上椭圆曲线密码ECC的高性能FPGA实现 [J], 尤文珠;葛海波
5.GF(2~m)域上的低功耗可配置ECC点乘算法ASIC设计实现 [J], 车光宁;张钊锋
因版权原因,仅展示原文概要,查看原文内容请购买。
1引言随着智能卡在电子商务、身份认证等许多领域越来越广泛的应用,它不仅被用来实现数据加密传输,还用来实现数字签名、密钥交换等功能。
人们对其安全性能的要求越来越高,不仅要求它能实现对称密码算法,还要求它实现非对称密码算法(也称公钥密码算法)。
智能卡中常用的公钥算法有RSA算法和椭圆曲线密码(ECC,EllipticCurveCryptography)算法。
RSA算法提出时间较早,应用非常广泛。
它的基础是大数因式分解的困难问题。
随着数学和计算机科学的发展,在RSA密码系统中,人们不得不采用越来越长的密钥来保障系统安全。
现广泛使用的密钥长度为1024bit,很快会用到2048bit的密钥。
更长的密钥意味着需要更大的存储空间,更强的计算能力。
ECC是由Koblitz和Miller在1985年分别提出的,其安全基础是有限域椭圆曲线阿贝尔(Abel)点群上离散对数困难问题。
在相同安全等级下,使用椭圆曲线密码体制要求的密钥长度更短[1]。
例如密钥长度为1024bit的RSA算法与密钥长度为160bit的ECC算法的安全等级相同,密钥二进制长度比约为7∶1。
短密钥使得ECC更适合在资源受限的环境下应用,例如智能卡、手机、PDA等。
本文选择在智能卡平台上实现素数域ECC快速算法,提出了一种在保证算法效率的条件下节约资源的ECC实现方案。
文章组织如下:第2节论述选择素数域实现ECC算法的理由;第3节分析椭圆曲线阿贝尔点群上的快速算法;第4节给出基域上算术运算的实现方法;第5节给出实验结论。
2基域的选择有限域F上的椭圆曲线方程可以表示为(1)式。
y2+a1xy+a3y=x3+a2x2+a4x+a6(1)其中a1,a2,a3,a4,a6∈F。
方程在域F上的所有解加上一个无穷远点构成的集合称为有限域F上的椭圆曲线,记为E/F。
在该集合上定义适当的加法规则,使之构成阿贝尔群。
于是,在有限域椭圆曲线阿贝尔点群上,也有类似于有限域乘法群上的离散对数问题:设p是E/F上的一个点,#E/F表示集合中点的个数,也称为椭圆曲线的阶。
存在整数k∈[1,#E/F(q)],使Q=kP,则椭圆曲线离散对数问题就是由给定的P,Q求出k,这也是一个困难问题,是椭圆曲线密码的基础。
在ECC系统的实现过程中,有限域F(基域)的选择很重要,选择不同的基域很大程度上决定了整个系统的效率。
目前常用的有限域有两类:二元扩域GF(2m)和大素数域GF(q)。
NIST规范及其它相关国际规范都是基于这两种域。
其中前者的域算术运算非常适合用专门的ECC硬件加速器实现,在实际中得到广泛应用。
后者的优势在于它的运算与RSA算法非常类似(在后面的分析中可以明显看到)。
RSA算法因为提出时间较长,应用非常广泛,在许多硬件平台上已有用于RSA算法的算术协处理器和软件快速算法,这些都可以用来方便地实现素数域椭圆曲线密码算法,不基于智能卡的素数域椭圆曲线密码的快速实现刘淳1张凤元2张其善11(北京航空航天大学电子工程学院,北京100083)2(北京化工大学信息科学与技术学院,北京100029)摘要椭圆曲线密码相比其它公钥密码,有密钥短的特点,尤其适合在智能卡等资源受限的条件下使用。
文章指出了在智能卡平台上选择素数域为基域实现椭圆曲线密码的原因。
并详细分析了椭圆曲线密码实现过程中的各个环节,包括标量乘法运算、点加/倍点运算和基域运算,指出了各个环节的优化措施。
最后给出了素数域椭圆曲线签名算法在智能卡上实现的实验数据,实验结果证明文中采用的实现方法是高效的。
关键词智能卡素数域椭圆曲线密码文章编号1002-8331-(2006)27-0137-03文献标识码A中图分类号TP309TheHighEfficiencyImplementationofPrimeFieldECConSmartCardLIUChun1ZHANGFeng-yuan2ZHANGQi-shan11(CollegeofElectronicEngineering,BeijingUniversityofAeronauticsandAstronautics,Beijing100083)2(CollegeofInformationScienceandTechnology,BeijingUniversityofChemicalTechnology,Beijing100029)Abstract:Comparedwithotherpublic-keycryptographies,EllipticCurveCryptographyhasthecharacteristicofshortlengthkey.Thereforeitistheonemostsuitableforconstraintenvironments,suchassmartcard.ThispaperfirstpresentsthereasonswhychooseprimefieldasthebasefieldintheimplementationofEllipticCurveCryptographyonsmartcard.ThenstepsoftheECCimplementation,includingmodularmultiplicationandpointadding/doublingandbasefieldoperations,areanalyzedindetail.Theoptimalmethodsofeachsteparegived.FinallytheimplementationexperimentationresultofprimefieldECCdigitalsignaturealgorithmonsmartcardispresented.Theresultprovesthattheimplementationmethodsusedishighefficiency.Keywords:smartcard,primefield,EllipticCurveCryptography(ECC)137计算机工程与应用2006.27表1不同坐标系下点加和倍点的计算量比较仿射坐标标准射影坐标雅克比射影坐标点加I+2M+S12M+2S12M+4S倍点I+2M+2S7M+5S4M+6S需要增加专门的ECC加速器硬件。
因此对于许多已有系统从RSA公钥算法转换到ECC算法而言,素数域GF(q)是一个有利的选择。
所以本文选择在素数域GF(q)上,利用RSA的算术协处理器实现ECC算法。
3椭圆曲线点群上的运算椭圆曲线点群上的运算被称为标量乘法运算,即计算:Q=kP。
以下分两部分分析如何高效地实现标量乘法运算。
3.1计算标量乘法标量乘法运算与RSA中的核心运算———模幂运算(C=Memodn)是相当的,一切用于计算模幂的快速算法都可以用来计算ECC中的标量乘法。
例如采用二进制方法可以计算模幂:假定公钥为(e,n),e可以表示为e=k-1i=0!ei2i,其中ei∈{0,1},k是e的二进制位长,且ek-1=1。
Me={…[(M2ek-1×Mek-2)2×Mek-3]2×…×Me1}×Me0(2)M的e次幂运算被分解为平方运算和乘法运算。
同样地,二进制方法也可计算标量乘法r=k-1i=0!ri2i,其中ri∈{0,1},k是r的二进制位长,且rk-1=1。
rP=(2k-1+rk-22k-2+rk-32k-3+…+r121+r0)P=2{…2[2(2P+rk-2P)+rk-3P]+…+r1P}+r0P(3)依照(3)式,标量乘法被分解为相同的点相加(简称倍点)和不同的点相加(简称点加)运算。
需要进行k-1次倍点运算,H(r)-1次点加运算,H(r)为系数r的Hamming重量。
在二进制方法基础上,围绕着寻找最短加法链的方向[2],m进制方法、定长窗口方法、变长窗口方法等等被提出来计算模幂和标量乘法。
在定长窗口和变长窗口方法中,预计算只需要计算点P的奇数倍,相比m进制方法计算量减少近一半,存储空间也相应减少。
三种方法的倍点计算次数基本相同,平均而言,变长滑动窗口方法中点加的计算次数要少,所以计算量最小。
理论证明平均计算量的大小关系是:m进制方法>定长窗口方法>变长窗口方法[2]。
本文选择了变长窗口方法来计算标量乘法。
下面给出算法描述。
算法1VariableLengthSlidingWindowsAlgorithm输入:r,P。
输出:Q=rP。
1.预计算并保存!P,!=3,5,7,…,2d-1,d为最大非零窗口的宽度。
2.将r分割为s个窗口,包括零窗口和非零窗口。
任一窗口中的值记为Fi,窗口宽度记为L(Fi),i=0,…,s-1,最大非零窗口的宽度为d,最小零窗口的宽度为q。
3.Q:=Fs-1P4.fori=s-2downto04a.Q:=2L(Fi)Q4b.ifFi≠0thenQ:=Q+FiP5.returnQ本文实现中d=4,q=1。
3.2计算点加和倍点由上述标量乘法运算的分析可以看到标量乘法运算Q=kP被分解为倍点运算(如4a)和点加运算(如4b)。
点加和倍点运算的公式是根据在椭圆曲线点集上定义的加法规则得出的。
令q>3是一个素数,a,b∈GF(q),满足4a2+27b2≠0,仿射坐标系下,GF(q)上一个椭圆曲线的方程为[3]:E:y2=x3+ax+b(4)设P(x1,y1),Q(x2,y2)是曲线上两个满足x1≠x2的点,R(x3,y3)=P+Q(点加),则:x3="2-x1-x2;y3="(x1-x3)-y1(5)其中"=(y2-y1)/(x2-x1)。
设P(x1,y1)∈E/F(q),y1≠0,R(x3,y3)=2P(倍点),则:x3="2-2x1;y3="(x1-x3)-y1(6)上两式中的加、减、乘、除(求逆)都是有限域GF(q)上的算术运算。
相对于乘法运算和求逆运算,加、减法的运算量可以忽略不计,因此我们在以下对算法计算量的比较中,只考虑进行乘法、平方和求逆运算的次数。
由(5)、(6)两式可见点加计算包含了两次乘法(以M表示)、一次平方(以S表示)和一次求逆(以I表示)。
倍点计算包含了2次乘法、2次平方和1次求逆。
在不同的坐标系下,椭圆曲线方程的形式不同,点加和倍点的表达式不同,计算的效率也不同。
在仿射坐标系下,表达式为(5)、(6)。
若令x=X/Z,y=Y/Z,代入(4)式中可得标准射影坐标下素数域椭圆曲线方程,代入(5)、(6)式中可得点加和倍点公式。
令x=X/Z2,y=Y/Z3,代入(4)式中还可以得到雅克比射影坐标系(JacobianProjective)下素数域椭圆曲线方程,代入(5)、(6)式可得点加和倍点公式。