实现椭圆曲线类型公共密钥加密算法的电子部件中的对策方法技术

技术编号:3532108 阅读:216 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及在电子部件中基于公共密钥算法实现椭圆曲线的对策方法,包括通过进行运算Q=d*p,其中P是曲线上的点,计算新的译码整数d′,例如基于私有密钥d和所述椭圆曲线的点个数n在译码算法的帮助下的加密消息的译码,其中将d′作为d可以达到相同的结果。本发明专利技术的方法的特征在于它包括4个步骤:1)确定保密参数s,其中在实际应用中,s不可能在30的附近,2)抽取随机数k,范围是0-21s,3)计算整数d′=d+k*n,4)计算Q=d′.P。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及在电子部件中实现椭圆曲线类型公共密钥加密算法的对策方法(countermeasure)。在密钥加密技术的传统模型中,希望通过一个非安全信道通信的两个人必须先同意一个加密密钥K。加密函数和译码函数实现相同的密钥K。密钥加密系统的缺点是上述系统要求在任何已加密的信息在非安全信道上发送之前密钥必须先在两个人之间通过一个安全信道优先通信。实际上,发现一个很安全的通信信道通常是困难的,尤其在分离两个人的距离很远时。安全信道意味着对它来说知悉或修改在它上面通过的信息是不可能的。这样的安全信道可以通过连接由上述两人所拥有的两个终端的电缆来实现。公共密钥加密概念由Whitfield Diffie和Martin Hellman在1976年专利技术。公共密钥加密技术使解决在非安全信道上密钥的分布问题成为可能。公共密钥加密的原理在于使用一对密钥,一个公共加密密钥和一个私有译码密钥。由观察的计算点去从公共加密密钥找到私有的译码密钥是不可行的。希望与B人交流信息的A人使用B人的公共加密密钥。只有B人拥有与它的公共密钥相关的私有密钥。因此只有B人能够破译送给他的信息。密钥加密技术上公共密钥加密的另一个优势是公共密钥加密允许用电子签名授权。公共密钥加密方案的第一个实施方案在1977年由Rivest Shamir和Adleman开发,他们专利技术了RSA加密系统。RSA安全性是基于把一个是两个质数乘积的大数进行因式分解的难度。其后,提出了很多公共密钥加密系统,它们的安全性基于不同的计算问题(这个列表不是详细无遗的)-Merckle-Hellman背包(backpack)这个加密系统基于子集的和的问题的难度。-McEliece这个加密系统基于代数代码的理论。它基于线性代码的解码问题。-E1 Gamal这个加密系统基于有限域中离散对数的难度。-椭圆曲线椭圆曲线加密系统构成了对已有加密系统的修正以把它们应用于椭圆曲线领域。椭圆曲线在加密系统中的使用分别由Victor Miller和NealKoblitz在1985年提出。椭圆曲线的实际应用早在二十世纪九十年代就被注意到了。基于椭圆曲线的密码系统的优势是它们用较小的密钥尺寸提供等价于其它密码系统的安全性。密码尺寸中的这个存储减小了存储要求并缩短了计算时间,这使得椭圆曲线的使用尤其适合于智能卡类型的应用。在一个有限域GF(q^n)(q是一个质数,n是一个整数)上的一个椭圆曲线是点(x,y)的集合且x(X-轴)和y(Y轴)属于GF(q^n),方程式的解为y^2=x^3+ax+b如果q大于或等于3及y^2+x*y=x^3+a*x^2+b如果q=2在加密中用得最多的两类椭圆曲线是下面两类1)在有限域GF(p)(整数模p的集合,p是一个质数)上定义的曲线,它的方程为y^2=x^3+ax=b2)定义在有限域GF(2^n)上的椭圆曲线,它的方程为y^2+xy=x^3+ax^2+b对这两类曲线中的每一类来说,定义点的加法操作如下给定两个点P和Q,和R=P+Q是曲线上的一个点,它的坐标按照Alfred JMenezes的著作“椭圆曲线公共密钥密码系统”中所给出的公式用点P和Q的坐标来表示。这个加法操作使定义一个标量乘法操作成为可能给定属于椭圆曲线的一个点P和一个整数d,P由d标量乘的结果是Q=P+PP+…..+d次P。椭圆曲线上加密算法的安全性基于椭圆曲线上离散对数的难度,上述问题包括,用属于椭圆曲线E的点Q和P来找到这样的整数x使得Q=x.P,如果存在这样的x的话。有很多基于离散对数问题的加密算法。这些算法可以被很容易地移植到椭圆曲线上。这样就能够用算法提供鉴定,机密性,完整性校验和密钥交换。基于椭圆曲线的大部分加密算法的一个共同点是它们包含一个定义在有限域上的椭圆曲线作为参数及该椭圆上的一个点P。私有密钥是一个随机选中的整数d。公共密钥是曲线Q上的一个点,而Q=d.P。这些加密算法通常都涉及点R=d.T的计算中的标量乘法,其中d是密钥。在这一节中描述了一个基于椭圆曲线的加密算法。这个方案类似于E1 Gamal加密方案。消息m被加密如下加密人员随机选择一个整数k并计算曲线上的点k.P=(x1,y1)和k.Q=(x2,y2)以及整数c=x2+m。m的密码是三元组(x1,y1,c)。拥有d的译码人员通过计算(x’2,y’2)=d(x1,y1)和m=c-x’2来破译m。为了实现前面所描述的计算方法中必要的标量乘法,有几种现有的算法“加倍与和”算法;“加-减”算法;加法链算法;带窗口算法;有符号表示算法;这个列表并不完整。最简单且使用最多的算法是“加倍与和”算法。“加倍与和”算法把属于一个给定椭圆曲线的点P和一个整数d作为它的输入。整数d被表示为d=(d(t),d(t-1),….,d(0)),这里d(t),d(t-1),….,d(0)是d的二进制表示,d(t)和d(0)分别是最高和最低有效位。算法返回点Q=d.P作为输出。“加倍与和”算法包括下面三个步骤1)用点P的值初始化点Q2)对i从t-1到0,执行2a)用2Q替代Q2b)如果d(i)=1用Q+P替代Q3)返回Q越来越明显的是智能卡上的椭圆曲线类型公钥加密算法的实现容易受到包括能够找到私有译码密钥的对当前消耗的微分幂(differential power)分析在内的攻击。这些攻击被认为是DPA攻击,DPA是微分幂分析的首字母缩写。这些DPA攻击的原理是基于执行指令的微处理器的当前消耗根据被处理的数据项而变化的事实。特别地,当一条指令正在处理一个其中有一不变的特定位的数据项时,这里其它位的值可以变化,对与指令相关的当前消耗的分析根据特定位取值0或1显示指令的平均消耗而不是相同的。DPA类型的攻击因此能够得到在一个加密算法被执行时由卡的处理器操纵的中间数据上的附加信息。这个附加信息在某些情况下揭示了译码算法的私有参数,使加密系统不够安全。在本文档的剩余部分中给出了一个椭圆曲线类型算法上的DPA攻击方法的描述,它执行包括点P由整数d,d是密钥,标量乘在内的操作。这个攻击直接揭示了密钥d。它因此严重危胁智能卡上椭圆曲线的实现的安全。攻击的第一步是对应前面所述及的“加倍与和”算法的执行为N个不同的点P(1),….p(N)记录当前消耗。在一个基于椭圆曲线的算法中,智能卡的微处理器将执行N个标量乘法d.P(1),…..d.P(N)。为了清楚地描述该攻击,第一步是描述一个用于得到密钥d的d(t-1)位的值的方法,这里(d(t),d(t-1),….,d(0))是d的二进制表示,d(t)和d(0)分别是最高和最低有效位。然后给出能够找到d的值的算法的描述。点P(1)到P(N)被按照4.P的横坐标的最后一位的值组合在一起,这里P指示点P(1)到P(N)中的一个。第一组由其4.P的横坐标的最后一位等于1的点P组成。第二组由其4.P的横坐标的最后一位等于0的点P组。对应于每一组计算当前消耗的平均值,并计算这两个平均值之间的差分曲线。如果d的d(t-1)位等于0,前面所述的标量乘法算法计算4.P的值并把它存储在存储器中。这意味着当该算法在智能卡中被执行时卡的处理器将实际计算4.P。这种情况下,在第一个消息组中,由微处理器操纵的数据项的最后一位总是1,而第二组中被操本文档来自技高网...

【技术保护点】
一种在电子部件中基于使用存在于计算中的椭圆曲线实现公钥加密算法的对策方法,使用密钥d和上述椭圆曲线上点的个数n来计算一个新的译码整数d′,用d′按照译码算法对任何加密信息进行译码能给出与用d通过执行操作Q=d*P相同的结果,P是曲线上的一个点,该方法特征是它包括四个步骤: 1) 确定一个安全参数s;实际应用中s可取为接近30的数。 2) 提取一个0与2^s之间的随机数k。 3) 计算整数d′=d+k*n。 4) 计算Q=d′.P。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:JS科龙
申请(专利权)人:格姆普拉斯公司
类型:发明
国别省市:FR[法国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1