公钥密码算法详解:从RSA到椭圆曲线密码,全面解析公钥密码体制

2025-03-27 21:05:48发布    浏览34次    信息编号:109744

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

公钥密码算法详解:从RSA到椭圆曲线密码,全面解析公钥密码体制

1。第4章公共密钥密码学算法,1。公共密钥加密系统的概述。 2。公共密钥加密算法RSA,椭圆曲线密码学, - 密钥交换算法,2。公共密钥加密系统的概述。 1976年,“新”导致了密码学的革命,并开放了一个新的公共密钥密码学时代。他们首次证明,在发送和接收端都可以进行机密通信,而没有密钥传输。 1977年,提出了RSA公共密钥密码算法。在1990年代,其他公共密钥算法(例如椭圆曲线密码)逐渐出现。公共密钥加密系统,也称为双密钥或不对称加密系统,具有两个键,即加密密钥和解密密钥不同,很难从一个键中推断出另一个。这两个密钥之一是公共的,另一个是秘密,分别称为公钥和私钥。公共密钥是公开的,也就是说,每个人都可以知道,私钥仅由特定用户拥有。 ,3,公共密钥加密系统的概述,公共密钥密码系统与私有密钥密码系统之间的最大区别是,加密密钥和解密密钥是不同的,并且很难从一个中推导另一个。在公共密钥密码系统中,将这两个不同的键区分为公共密钥PK(键)和私钥SK(键)。六个组成部分:纯文本,密码文本;公钥,私钥; , , 4, key model, plain text, plain text, plain text, text, text, model, model, B's key, B's key, A's key, A's key, plain text, 5, the of the key , the and are .

可以由多个用户加密的消息只能由一个用户解释(用于在公共网络中实现机密通信)。可以实现的是,只有一个用户可以对消息进行加密,以便多个用户可以解释它(可用于在身份验证系统中以数字方式签署消息)。无需提前分配密钥。重要的特征在计算上是不可行的,以确定仅根据加密算法和仅加密密钥来计算解密密钥。某些算法(例如RSA)也具有:两个键中的任何一个都可以用于加密,另一个可以用于解密。优点:它可以解决由私有密钥加密中过多的钥匙引起的困难管理和高成本的问题,并且无需担心传输过程中的私钥泄漏。机密性能比私钥加密更好。缺点:加密算法很复杂,并且很难达到理想状态的加密速度。 ,6。公共密钥密码系统依赖性的基础,传统对称加密系统依赖的基础是替代和替代的两个转换思想。与对称的加密系统不同,公共密钥加密系统依赖性的基础是难以解决数学中的某些类型的问题。经典的公共密钥密码算法RSA,椭圆曲线加密算法ECC等均依赖于某些类型的数学问题。它们的共同特征是它们基于单向陷阱功能。单向陷阱门函数y = fk(x)是指同时满足以下条件的一种可逆函数:7。公共密钥加密系统依赖性的基础,该函数是一种一对一的映射关系,即,对于每个函数值y,只有一个唯一的原始图像x对应于IT;给定x和键参数k,函数y = fk(x)易于计算;给定y,存在特定的键参数k,当k未知时,很难从y计算x,也就是说,在未知k的条件下,逆函数x = f-1k(y)的计算非常复杂,实际上是不可行的。当知道k时,对于任何给定的y,逆函数x = f-1k(y)易于计算。给定y和参数k,影响其逆函数f-1的密钥参数k不能从函数y = fk(x)得出。

在设计任何公共密钥加密解决方案时,需要完成工作是找到这样的单向陷阱门功能,其中陷阱门信息是私钥,这是上面列出的密钥参数k。 ,8。公共密钥密码系统的特征。根据加密系统的组成以及公共密钥加密系统本身的特性,公共密钥加密系统可以表示为:加密算法E,解密算法D,公共密钥/私钥/私钥(PK/SK)对,纯文本M和 M和 C,每个元素必须满足以下条件:9。公共密钥密码系统的特征,密钥。必须满足两个要求:公共密钥/私钥(PK/SK)对很容易生成,除了生成密钥的用户之外,没有人知道私钥;公共密钥PK无法计算私钥SK,也就是说,公共密钥密码系统需要满足的基本条件之一是无法通过公共密钥计算获得私钥。 ,10,公共密钥加密系统的功能,加密算法E.要满足两个要求:对于任何纯文本M,从E中计算 C非常容易,即C = EPK(M)易于计算,或者对于任何信息M,对于任何信息,对于任何信息,也非常容易从E中计算出E c = ESK(M M),即可计算出ESK(M),以计算出c = ESK(M)。解密算法D.必须满足两个要求:对于任何密文C,D可以轻松计算明文M或已知的公共密钥PK,对于使用SK制造的任何数字签名C,它可以轻松地在通过D签名之前计算信息;但是,已知的公共密钥PK,密文C和解密算法D无法从三个中推导明文M或私钥SK。

也就是说,从公共密钥中,密文和解密算法,推断出明文和解密键是不可行的。对于精心设计的加密系统,加密算法E和解密算法D应该均公开。该原则还适用于公共密钥密码系统。唯一需要在公共密钥密码系统中保密的是私有密钥SK。 ,11,假设网络上的两个用户爱丽丝和鲍勃需要秘密交流,则为公共密钥加密系统加密和解密过程。为了防止攻击者窃听信息,爱丽丝和鲍勃选择使用公共密钥加密系统来加密传输信息。爱丽丝是信息的发件人;鲍勃是信息的接收者。 ,12,公共密钥加密系统加密和解密过程,爱丽丝和鲍勃生成了公钥/私钥对:PKA/SKA,PKB/SKB。例如,爱丽丝(Alice)和鲍勃(Bob)通过某种机制发布了各自的公共密钥PKA和PKB,将公共密钥放在公共服务器上供其他用户查询。爱丽丝(Alice)通过查询公共服务器来获得Bob的公共密钥PKB。如果爱丽丝想向鲍勃发送消息,他将使用鲍勃的公共密钥PKB来加密该消息。众所周知,要通过加密算法E可以轻松地计算出要加密的明文M,即BOB的公钥PKB,即C = EPKB(M)。 (4)收到爱丽丝发送的消息后,接收者鲍勃使用自己的私钥SKB解密了数据包。知道密文C和私钥SKB,Bob可以通过解密算法轻松地计算明文M,即M = DSKB(C)。

假设攻击者夏娃在爱丽丝发送的消息。尽管EVE可以查询并获取Bob的公钥PKB,但从PKB中确定Bob的私钥SKB在计算上是不可行的,因此EVE无法获得Bob的私钥SKB;仅知道公钥和密文,并且无法计算明文M。因此,攻击者EVE无法将Alice发送给Bob的密码信息。 ,13,公共密钥密码系统,公共密钥加密技术的主要价值是解决以下问题:1)密钥分布; 2)大规模应用程序中的数据机密性和完整性; 3)实体识别; 4)非替代;公共密钥加密系统的应用可以分为三类:a)加密/解密:发件人使用接收方的公共密钥来加密消息。 b)数字签名:发件人使用其私钥签署消息。可以通过加密整个消息或加密消息的小数据块来生成签名,其中小数据块是整个消息的函数。 c)密钥交换:通信交换会话密钥的双方。钥匙交换有几种不同的方法,所有方法都使用一个或双方的私钥。 ,14,公共密钥密码系统,某些算法可以在上述三个应用程序中使用,而另一些算法仅应用其中一个或两个。 ,15,公共密钥密码系统,由于公共密钥加密系统于1976年提出,密码专家设计了各种公共密钥加密算法。这些算法的共同点基于某些类型的数学问题,并且通过找到此类问题的单向陷阱函数来实现数据的加密和解密。

根据数学问题的分类,主要有三种类型的系统:基于大整数因子分解问题的公共密钥系统,典型的代表性是RSA算法;基于有限域椭圆曲线离散对数问题的公共密钥系统,典型的代表是ECC算法。基于有限域离散对数问题的公共密钥系统,典型的代表是DSA。 ,16,几种有影响力的公共密钥加密算法,RSA算法:基于大整数质量分解的问题,目前被认为是安全的。 - 背包系统:基于子集和问题,已被证明是不安全的。系统:基于残余代数编码中的线性解码问题,目前被认为是安全的。系统:基于有限域上的离散对数问题,目前认为存在一定的安全性。 Chor-系统:基于目前被认为是安全的子集和问题。椭圆曲线密码:基于椭圆曲线上离散的对数问题,它是对系统的改进,目前被认为是安全的。有限的自动机密码:基于有限自动机的反转问题,目前认为它具有一定的安全性。 ,17,RSA算法,1976年,在1977年提出了公共密钥加密系统的想法之后,MIT,Ron,Adi和Len的三名学者开发了RSA( - )公共密钥密码学方案,该计划于1978年首次发表于1978年。

,18,RSA算法取决于。的数学问题,RSA算法基于“大整数分解”的数学问题,这非常困难。在这里,大整数通常长几百位数。 RSA算法取决于以下数字理论定理:模块化操作的属性:正整数n是质量数,集合Zn = 0,1,2。,(n-1)代表所有非阴性整数集小于n。然后,对于集合Zn中的每个非零整数WZN,都有AZ,它满足公式WZ = 1 mod n。我们将z称为w的乘法,w是它们的mod。 ,19, that RSA on, 's : If p is a prime and a is a that be by p, then: ap-1 1 mod p For : P=7, a=2, then 27-1=26=64, 64 mod 7=1,20, that RSA on, Euler : The Euler of the 整数n是指小于n的正整数数,并与n相互峰值,通常记录为(n)。对于任何素数P,显然都有:(p)p 1,例如:让p = 3,小于3,带有3的正整数为1,2,so(3)= 2;同样,当p = 7时,带有7的正整数为1、2、3、4、5、6,SO(7)= 6。假设有两个不同的素数p和q,n是p和q的乘积,即n = pq的乘积,那么存在以下公式关系:(n)=(pq)=(p)=(p)(q)(q)=(p-1)(q-1),例如:the n = 21,(21),(21),(21)=(3)(3)(3)(7)(7-1)(7-1)(7-1)(7-1)(7-1)(7-1)(7-1)(7-1)(7-1)= 2 6 = 12 int = 12 int,s the 4 1 1 1,其中1 1,其中1 1,1 1 1,intec,s in the 4 ins ter 13、16、17、19、20。

,21,依靠RSA算法的数学问题,Euler的定理:任何两个共同元素整数A和N具有以下关系:A(n)1 mod n例如:a = 3; n = 8;根据(3)Euler函数的定义,(8)= 4;然后a(n)= 34 = 81 = 108+1 1 mod 8 1 mod n,22,数学问题依赖于RSA算法,(()()()算法:该算法的主要思想是确定两个正整数的最大值,并确定两个整体方法,并确定这些整体的互补,以及是否相互繁殖,是否相互繁殖,是否相互繁殖相关地相互依次,相互依次相关地相互依次,相互构想相关地相互构想,相互构想相关地相互构想,相互构想相关地相互构想。 算法。 ,23,()算法,让总和的最大共同因素(,)和()。令r0 = a,r1 = n,使用旋转相分割方法获得:r0 = r1q1+r2,0 r2 r2 r1 = r2q2+r2q2+r3,0 r3 r2 r2 rm-2 = rm-1qm-1+rm,0 rm rm-1 rm-1 rm-1 rm-1 rm-1 rm-1 rm-1 = rmqm+rm+1,rm+1 = 0(a,n)=(r0,r1)=(r1,r2)=(rm-1,rm)=(rm,rm,0)= rm。从上述关系中,我们可以在(,),24,()算法,25,()算法,26,((27),27,(()算法,28,RSA Key ,RSA Key ,两个秘密的大量 Prime和PQ =N。

为了增强算法的安全性并避免攻击者通过数学攻击方法找到N的Euler函数(N),从而破坏了RSA加密方案,RSA算法的设计师的设计师在1024位的p和Q中只能在1024 b的键上,Q的长度只能在1024位的时间内进行,因此只有少数数字。 P-1和Q-1都应具有很大的主要因素。 GCD(P-1,Q-1)应较小。另外,已经证明,如果EN和DN1/4,则很容易确定D。计算n:(n)=(p-1)(q-1)的Euler函数值。 ,29,RSA算法密钥生成过程,随机选择一个较大的正整数E,E满足小于n并用(n)相互像素化的条件,即e和(n)的最大共同因素是1。(4)根据e,(n),计算了另一个值d。 d是e的乘法逆元素,(n)是它们的mod。 de = 1 mod(n)。然后将两个二进制文件(E,N)和(d,n)形成RSA的关键对。如果选择任何二进制文件作为公钥,另一个是私钥。在这里,我们将(e,n)定义为公钥,(d,n)为私钥。 ,30,RSA算法密钥生成过程,例如:1)令p = 7,q = 11,然后n = 77; 2)计算n(n)=(7-1)(11-1)= 60的Euler函数值; 3)选择E = 17,E符合以下条件:Euler函数值(n)(n)((n)= 60)的最大公共因子为1; 4)计算E的反向D,因为53 17 = 15 60+1 1 mod 60,因此当e = 17,d = 53(使用欧法算法找到它时)。

因此(17,77)/(53,77)构成了RSA公共/私钥对。在实际应用中,RSA算法的关键长度至少是位(指二进制位数),即,大小等同于大约十进制数字。 ,31,RSA算法加密和解密过程,RSA算法属于数据包加密方案,也就是说,解释性文本以数据包为单位进行加密。数据包的大小取决于所选模量n值。纯文本块的每个数据包的长度可以相同或不同。 It is known that a block of M, key (e, n), and key (d, n) in a plain text, then the is as : n is on the e-power of M, and the is n , that is, the is C, that is, the by M is by M as : C=EPK(M)=Me mod n The and of the RSA are , and the is as : n is on the d-power of C, and the is the plain text M, that is, M can be from C, which can be as: M=DSK(C)=Cd mod n,32, RSA and , 33, RSA算法加密和解密过程,34,RSA算法的安全性和性能分析,RSA算法的安全性是基于大整数因素的分解难度,也就是说,鉴于大整数n,将n分解为n,在两个原则p和q中的分解为p和q是很难证明的,因此可以解决这个问题,因此可以解决这个问题。对于对公共密钥加密系统的攻击,主要目的是使用公共密钥信息来获取私钥信息。通常有三种攻击RSA的方法:分解模量N;确定Euler函数(n);并直接确定d。

可以证明,第二和第三种方法攻击RSA等于第一个方法攻击RSA,即分解大整数质数的困难。 RSA加密方案的优点是其原理简单易用。因此,许多使用公共密钥密码学方案的系统都使用RSA算法。 ,35,RSA算法安全性和性能分析,缺点:RSA性能相对较低。由于算法中使用的模量N,P和Q是大整数,因此效率相对较低,在硬件和软件实现中,硬件实施的效率为1/1000,而软件实施的效率为1/1000 DES。可以看出,RSA不适合加密长纯种信息。它通常与对称密码系统结合使用。 RSA用于加密通信中双方的会话密钥,而对称的加密系统(例如DES)用于加密传输消息。实际上,为了提高加密和解密的计算速度而不影响安全性,通常会选择相对较小的公钥。 ,36,RSA算法安全性和性能分析,出于安全原因,RSA解决方案要求模量N越来越大。当前,RSA钥匙长度要求确保其确保1024和2048位。在具有相对较高安全要求的政府部门,需要2048块钥匙。密钥长度的增加提高了安全性,但进一步影响了算法的性能。 RSA算法的加密和解密速度将变得越来越慢,并且系统要求更高。因此,选择RSA密钥时,您不仅可以考虑安全性。只需扩大RSA键的长度,就需要在系统的安全性和性能之间找到平衡点。

鉴于RSA中存在的问题,人们致力于寻找新的有效的公共密钥密码系统。椭圆曲线密码学算法ECC因其较短的钥匙而受到许多人的关注和研究,但可以确保与RSA相当多的安全性。 ,37,ECC,ECC,在有限域中使用椭圆形曲线的想法是Neal提出的,在1985年。其理论基础是,在有限域上某个椭圆形曲线上定义的合理点可以形成有限的交换组。如果组的顺序包含较大的元素因素,则其离散对数问题是一个计算困难的数学问题。事实证明,除了一些特殊的椭圆曲线外,当前已知的最佳攻击算法(-)也完全指数。在安全强度方面,关键长度为163位的椭圆曲线加密系统ECC(曲线)等于1024位RSA。也就是说,在相同的安全强度下,ECC使用的密钥大约比RSA短。这使得ECC对存储空间,传输带宽和处理器速度的要求降低。该优势对于资源和环境有限的移动用户终端具有重要意义。 ,38,椭圆曲线加密算法ECC在有限结构域中,椭圆曲线密码术在椭圆曲线上使用称为添加的操作,乘法定义为重复添加。例如,加法是在椭圆曲线上增加的添加。

密码分析师需要从给定的总和确定。椭圆曲线是一个方程,具有两个变量和系数。对于密码学,变量和系数都仅限于有限域(即在实际密码研究中,主要应用基于有限域的椭圆曲线),这导致了有限的ABEL组( Group)的定义。 ,39,Abel Group,Abel G组由一组元素及其二进制操作组成,有时称为G,。 to the (a, b) of the in G with the (ab) of G, so that the axiom is true: A1) : If a and b to G, ab also to G. A2) : For any a, b and c in G, (ab) c=a (bc) A3) Unit : There is e in G, so that for all a, ea=ae=a in G. A4) : For any a在g中,存在g中的元素a,因此aa = aa = e。 A5)交换性:对于G中的任何A和B,都有BA = AB。许多公共密钥密码使用ABEL组。例如, - 密钥交换包括几个非零整数的模量操作到prime q,该Q通过指数操作生成键,其中指数操作定义为重复乘法。例如,ak mod q,要攻击 - 攻击者必须确定给定A和AK的k,这是查找离散对数的问题。 ,40,椭圆曲线,椭圆曲线是指由()等式确定的平面曲线:y2+axy+by = x3+cx2+dx+e,以及一个称为无限点或零点的特殊元素(在y轴方向上),椭圆曲线表示为E。

系数A,B,C,D,E在某个域F上定义,这可以是一个合理的数字域,一个实数域,一个复杂的数字域或一个有限的域GF(PR),X,Y属于F或Y。所有合理点在E椭圆策划E上的所有合理点(两者均均均均与F)组合在一起,并组合了Ab abel abl ables abe abe able abe abe able abe able a abe able able able able able。椭圆曲线不是椭圆。它们之所以被称为椭圆曲线的原因是因为它们与计算椭圆圆周的方程式相似,并且也由第三阶方程表示。 ,41,实际数域上的椭圆曲线,目前,井链方程中的系数和变量x和y属于实数集。将方程式限制为以下形式y2 = x3+ax+b,此曲线中的每条曲线都是对称的,约为y = 0。由满足上述方程的所有点(x,y)和无穷大点O组成的点集为e(a,b)。加法的几何形状描述了上述方程中的参数A和B。如果满足条件4A3+27B2 0,则可以根据集合E(a,b)定义组。因此,必须定义以 +表示的称为加法的操作。如果椭圆曲线上的三个点位于同一条线上,则它们的总和为O。从此定义,我们可以定义椭圆曲线加法的操作规则:,42,在实数域上添加椭圆曲线的操作规则,1.O是添加的单位元素。这样,有o = -o;对于椭圆曲线上的任何点p,都有p+o = p。以下假设PQ和QO。 2。点P的负元素是一个具有相同x坐标和相反Y坐标的点,也就是说,如果p =(x,y),则-p =(x,-y)。

请注意,这两个点可以通过垂直X轴线连接,P+(-p)= pp = o。 3。要用不同的X坐标计算两个点P和Q的总和,请在P和Q之间绘制一条直线,并找到第三个相交点。显然,存在一个唯一的相交点(除非该直线与p或q处的椭圆曲线切线,否则分别= p或= q)。对称点r = - 关于x轴是p和q的总和。上述术语的几何解释也适用于具有相同坐标的两个点和-P。将这两个点与垂直线连接,也可以被视为在无限点与曲线相交,因此有P+(-p)= O.,43,这是在实数域中添加椭圆曲线的操作规则。如果p和q是相同的,即p和q是椭圆曲线的一定点,如图2-7所示,然后通过p使椭圆线的切线以及与e的切线相交的点是M。MM的对称点mm围绕X轴的对称点mm是X轴的X轴,则是P+P的点的总和,是P+P的点。我们将p+p记录为m = 2p,依此类推。添加n p+p+p+p。+p作为np,np也称为乘法。根据椭圆曲线的特性,2p和3p.np是E上的点。椭圆曲线上的点的点:满足公式NP(无穷大点)的最小正整数称为点的顺序(如果存在)。如果不存在,则据说P是无限的秩序。 ,44, the rules for in real , 45, the rules for in real , 46, the of in real , for two P= (xP, yP) and Q= (xQ, yQ), which are not to each other, the slope of the curve them (yQ yP)/(xQ xP).

它与另一个点的椭圆曲线相交,即p和q的总和的负元素。使用一些代数操作,r = p+q的总和xr = 2-xp-xq yr = -yp​​+(xp xr)当p当p与q相同时,p+p = 2p = r时。当yp 0时,表达式为:xr =(3xp2+a)/2yp)2-2 xp,yr =(3xp2+a)/2yp)2(xp xr)-yp,47,有限磁场上的椭圆曲线,有限磁场上的椭圆形曲线由平面曲线和特殊元素 - 求解y- y-循环(zere y-zera)(y-zera)(y-zera)(y-e Zera)(y-Zera)(y)(y)。表示为E。在有限域GF(pr)上定义系数A,B,C,D,E,而X和Y属于该域的代数闭合(如果K是F和K的代数扩展域,则k没有真正的代数扩展,则称为k coss a f)。通常,在实际的加密应用中,使用的两种类型的椭圆曲线是在有限域ZP(或FP)和F2M上定义的质曲线。在这里,P是一个质量数,尤其是当P是大于2160和M160的质量数时。 ,48,ZP上的椭圆曲线,并非所有椭圆曲线都适合加密。 Y2 = X3+AX+B是一类可用于加密的椭圆曲线,也是最简单的类别。在ZP上定义曲线y2 = x3+ax+b,x,y和系数都属于ZP。

这里的p是大于3,a,b zp,4A3+27b2 0 mod p的质量数。请注意,满足该方程的ZP上由整数对(x,y)和无穷大点O组成的集合为EP(a,b)。然后,基于此集合,可以定义有限的亚伯组(4A3+27B2 0 mod P等于x3+ax+b,而无需重复因子)。 ZP上的椭圆曲线由集合EP中的点组成(a,b)。 ,49,ZP上的椭圆曲线,50,ZP上的椭圆曲线操作,EP(a,b)上的加法操作与真实域上椭圆曲线中描述的代数方法一致。对于任何点p,q ep(a,b):p+o = p,如果p =(xp,yp),则p+(xp,-yp)= o。点(xp,-yp)是p的负元素,称为-p。例如,对于e23(1,1)上的点p =(13,7),有-p =(13,-7)和-7 mod 23 = 16。因此,-p =(13,16),点也位于e23(1,1)上。 ,51,ZP上的椭圆曲线操作,如果p =(xp,yp)和q =(xq,yq)和pq,则r = p+q =(xr,yr)由以下规则确定:xr =(2-xp xq)mod p yr =(xp xr)-yp)mod p,其中乘法已定义。例如4p = p+p+p+p。为了确定各种椭圆曲线密码的安全性,有必要知道椭圆曲线上定义的有限ABEL组中的点数。

在有限组EP(a,b)中,点n点n的范围为:p+1-2pn p+1+2p,因此EP(a,b)上的点数大约等于ZP中的元素数量,即P元素。 ,52,有限场F2M上的椭圆曲线,F2M上的椭圆曲线与ZP上的立方方程不同,可以表示为y2+xy = Xy = x3+ax2+b。此处a,b(0)f2m或曲线方程y2+cy = x3+cy = x3+cy = x3+cy = x3+cy = x3+cy = x3+ax+b a a,a,a,b,b,c(b,c(c)上面曲线上的无穷大点表示为E F2M(A,B),并且有限场F2M上的椭圆曲线由集合中的点组成。 ,53,对于有限域F2M上的椭圆曲线操作,对于任何PE F2M(A,B),P+O =P。如果p =(xp,yp),则p+(xp,xp+yp)= o。点(XP,XP+YP)是P的负元素,称为-p。 1)当方程为y2+xy = x3+ax2+b时,如果p =(xp,yp)和q =(xq,yq)属于f2m,而pq,pq,则r = p+q =(xr,yr)由以下规则确定:xr = 2+xp+xp+xp+xp+xp+xp+xp+xq yr = xp+xp+xp+yp = (yq+yp)/(xq+xp)如果p =(xp,yp),则r = 2p =(xr,yr)由以下规则确定:xr = 2+ayr =(+1)xr+xp2其中= xp+yp+yp/xp,54 p =(xp,yp)和q =(xq,yq)属于f2m,其中55,椭圆曲线加密e的数学问题取决于E依赖于椭圆形曲线E的离散对数问题,而椭圆曲线上的点P上的点P则代表kp的添加k p,kp是k p,k p和k是一定的。 If there is a Q on the curve, which can the Q=kP, then the of curve is the of k for a given point P and point Q. In , this both and .

The ECC is based on the in the " of curve". Given P and k are easy to Q the Q=kP; but , given Q and P, it is not to k, so we can set k as the key. ,56, of ECC key, and , the ECC based on the curve , , some of the curve , such as the basis point P and order n, are to the curve. The of ECC keys is that they are all built on the curve of a . Given an curve E with q with , the basis point of E is P and the order of P is n. The a to and using . This is very . Key : (1) The of the key a k in 2, n-1; (2) Q=kP. Then Q is the key and the key is k. ,57,A ECC and , that users Alice and Bob on the need to , they the by the ECC . Alice and Bob know the same curve E, and have key/ key pairs QA/kA, QB/kB . Alice wants to send m to Bob, and has Bob's key QB. The of Alice is as : (1) First, the m must be into the point Pm on the curve, Pm is (Xm, Ym); (2) Alice k2,n-1; (3) kP=R1(X1, Y1), kQB=R2(X2, Y2); if X2=0; then to (2); (4) The C is of R1, Pm+R2;,58, an and of an ECC . After Bob the C, the is as : (1) kBR1=kBkP=kkBP=kQB(2) Bob uses the value of the point of the C to the kQB by (1), that is, Pm+R2 kQB=Pm+kQB kQB=Pm; (3) Bob the point Pm on the curve, and then the m from the point Pm to a .

For : Take p=751, Ep(-1,188), that is, its curve is y2=x3-x+188, and its base point is (0,376). that A wants to send a as a point Pm (562, 201) on the curve to B, and A a k=386 and B's key is (201, 5), then there are 386 (0, 376) = (676, 558) and (562, 201) +386 (201, 5) = (385, 328). So the sent by A is (676, 558), (385, 328). ,59,- Curve ,- Curve is a of the on the curve, which was by AJ and SA in 1993. The key was by Taher in July 1985. It is a key based on the of the on . This is still to be a key with , and it is used in many . ,60, , can be used for both and . The is as : (1) : First the large prime p, and take a of the group Zp*=1, p-1.

(2) Key : then the d: 0dp-1 and =d mod p. Here p and are , key ( key), and d are key ( key). (3) : For plain text m Zp*, the k: 0kp-1, c1=k mod p, c2=mk mod p, and the text c= (c1, c2). (4) : For the c Zp*Zp*, use the key d to it as m=c2(c1d)-1 mod p. ,61, and the of , let p be a large prime , a of group Zp*=1, p-1, Zp*. Find the x: 0 xp-2 that the x=mod p. , there is a to this . The of the is the on the group Zp*. If x=l is the to this , l is the of Zp* and is as log. If the to the above can be , then the can be . The to the can be by 1, 2, 3 until a k is found such that k=mod p. This is the , and the time is O(p). time to the of group by the . ,62, and of ,The on on Zp* has many , and for have been . The main : , small step big step , - , , and -.

- and are the most among them, but they are at least lnp's sub- time , not time . ,63,- curve , (1) : Let p3 be a prime , E is the curve by the y2=x3+ax+b on the Zp, and E (Zp) is the Abel group. G is a point in this group with a prime order n. (2) Key : the d: 2dn-1 and P=dG. d is the key, and P is the key. (3) : For any m=(m1, m2)Zp*Zp*, a k: 1kn-1, so that (x, y)=kP, that both x and y are non-zero . And C0=kG, c1=m1 x mod p, c2=m2 y mod p, plain text m= (m1, m2) The is (C0, c1, c2). The space is E (Zp)Zp*Zp*. (4) : For any c= (C0, c1, c2), the dC0= (x, y), m1=c1 x-1 mod p, m2=c2 y-1 mod p, that is, the by c is (m1, m2). ,64, of ECC , The of ECC on the of of . If the are easy to and the key can be from the user's key, then the will .

In , the of curve E is also very . To poor , the order of the be a prime power. All to solve the of group can be used to solve the of Abel group on the curve. , the on the group is not to the of (ECDLP), that is, no are found for ECDLP. The best known for ECDLP is ()-. ECDLP is much more than FFDLP in , so the curve is much more than the key on Zp* of the same scale. ,65, of ECC , curve ECC has many with other key (such as RSA): a) : The of is by the anti- of this . with other key , ECC has in its to . The of (ECDLP) of is fully in terms of , while RSA is sub-. This that ECC has per bit than RSA. b) Small and fast speed: Under of the same , ECC is much than RSA and DSA in terms of speed of keys ( and ). The speed of ECC is much than that of RSA and DSA.

At the same time, the key speed of the ECC is more than a times than RSA. , under the same , ECC has . ,66, of ECC , c) Small space usage: ECC's key size and are much than RSA and DSA. 160-bit ECC has the same as 1024-bit RSA and DSA, while 210-bit ECC has the same as 2048-bit RSA and DSA. It means it takes up much less space. This is of for the of in - (such as smart cards, etc.). d)带宽要求低:当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。而公钥密码系统多用于短消息,例如用于数字签名和用于对对称系统的会话密钥传递。带宽要求低使ECC在无线网络领域具有广泛的应用前景。 ,67,68,ECC 算法的缺点,公开密钥加密系统是基于尖端的数学难题,计算非常复杂,实现难度大;安全性高,但实现速度却远赶不上对称密钥加密系统。随着计算能力的提高,从安全性角度考虑,对密钥长度的要求越来越高。相对于其他公钥密码算法,ECC逐渐体现出其优越性。但是自从使用公钥密码体制以来,实际应用中,RSA算法因为原理简单被广泛使用,ECC算法在实际应用中相对比较少。

但是随着时间的推移,ECC算法理论不断完善,相信它逐渐会被应用到实际系统中。,69,ECC算法应用与现状,算法在标准化中应用国内外软硬件中应用,70,ECC算法在标准化中应用,ECC的特点使它在某些领域(如手机、智能卡)的应用将取代RSA,并成为通用的公钥加密算法。许多国际标准化组织(政府、工业界、金融界、商业界等)已将各种椭圆曲线密码体制作为其标准化文件向全球颁布。ECC标准大体可以分为两种形式:一类是技术标准,即描述以技术支撑为主的ECC体制,主要有、.62、.63、SEC1、SEC2、、ISO/。规范了ECC的各种参数的选择,并给出了各级安全强度下的一组ECC参数。另一类是应用标准,即在具体的应用环境中建议使用ECC技术,主要有ISO/IEC 15946、、、 等。,71,ECC在软硬件中应用,在标准化的同时,一些基于标准(或草案)的各种椭圆曲线加密、签名、密钥交换的软、硬件也相继问世。在1997年公布了包含ECC的密码引擎工具包.0。

以加拿大为首的安全公司和工业界联合也研制、生产了以椭圆曲线密码算法为核心的密码产品,还提出了各种安全条件下对椭圆曲线离散对数攻击的悬赏挑战。德国、日本、法国、美国、加拿大等国的很多密码学研究小组及一些公司实现了椭圆曲线密码体制。我国也有一些密码学者做了这方面的工作。许多标准化组织已经或正在制定关于椭圆曲线的标准,同时也有许多的厂商已经或正在开发基于椭圆曲线的产品。,72,- 密钥交换, 和在1976年首次提出了公钥算法,这篇影响深远的论文给出了公钥密码学的定义,该算法通常被称为- 密钥交换。由于该算法本身限于密钥交换(不能用于加密、解密)的用途,被许多商用产品用作密钥交换技术,因此该算法通常称之为-密钥交换。这种密钥交换技术的目的在于使得两个用户安全地交换一个秘密密钥以便用于以后的报文加密。-密钥交换算法的有效性依赖于计算一般有限域上离散对数的难度。一个素数p的原根,是一个整数,且其幂可以产生1 到p-1之间的所有整数,也就是说,如果a是素数p的一个原根,那么数值a mod p,a2 mod p,.,ap-1 mod p 是各不相同的整数,它是整数1到p-1的一个置换。

,73,- 密钥交换算法,74,- 密钥交换算法,75,- 密钥交换算法,76,- 密钥交换协议,下图给出了一个利用-计算的简单协议。,77,- 密钥交换协议,78,- 算法优点,-算法具有两个吸引力的特征:仅当需要时才生成密钥,减小了将密钥存储很长一段时间而致使遭受攻击的机会。除对全局参数的约定外,密钥交换不需要事先存在的基础结构。,79,- 算法缺点,80,- 算法的椭圆曲线版本,利用椭圆曲线可如下实现密钥交换。首先,挑选一个大整数q以及有限域上椭圆曲线方程中的参数a和b(见前面),这里q为素数p或是形式为2m的整数。由此可定义出点的椭圆群Eq(a,b);其次,在Eq(a,b)中挑选基点G=(x1,y1),G的阶为一个非常大的数n。Eq(a,b)和G是该密码

提醒:请联系我时一定说明是从奢侈品修复培训上看到的!