公开/公告号CN101296075A
专利类型发明专利
公开/公告日2008-10-29
原文格式PDF
申请/专利权人 四川虹微技术有限公司;
申请/专利号CN200710049000.0
申请日2007-04-29
分类号H04L9/32(20060101);H04L9/30(20060101);H04L29/06(20060101);
代理机构
代理人
地址 610041 四川省成都市高新区高新孵化园8号楼1009室
入库时间 2023-12-17 21:02:23
法律状态公告日
法律状态信息
法律状态
2017-06-16
未缴年费专利权终止 IPC(主分类):H04L9/32 授权公告日:20120321 终止日期:20160429 申请日:20070429
专利权的终止
2012-03-21
授权
授权
2010-05-12
实质审查的生效 IPC(主分类):H04L9/32 申请日:20070429
实质审查的生效
2008-10-29
公开
公开
技术领域
本发明是一种身份认证系统,具体地说是基于椭圆曲线密码体系和DH密钥交换协议,对通信双方身份的合法性进行认证的方法。
背景技术
在各种信息传送系统中,为了保证参与信息交换的实体是合法的、有效的,需要对参与实体的身份进行认证。例如在军事通信中需要确认对方身份,以防止军事情报信息的泄露;在电子商务等互联网环境中,需要对对方的身份进行鉴别;在智能卡等应用环境中,需要对接入设备的合法有效性进行认证;在知识产权领域,需要通过对知识产权内容进行加密、签名等手段保证不被非法窃取。通常在通信双方进行传输加密的数据之前,要对设备进行身份认证以保证通信双方的身份都是真实的、合法有效的。如果认证不能获得成功,则不进行数据传输或者不能对加密的数据进行正确的解密,以让受保护的数据信息不受非法侵害。
1976年Diffie和hellman在“密码学的新方向”提出了公钥密码的思想,开创了公钥密码学的新纪元。在基于公钥体制的密码系统中,一般由可信任的权威机构给每个设备颁发设备证书和设备私钥。通信双方利用根证书的公钥以证书链的形式提取出对方设备的公钥和ID等信息。然后由一方用自己的设备私钥对一些公共信息数据进行数字签名,另一方利用对方的公钥对该签名信息进行验证,如此可以验证对方设备的合法性。公钥密码体制的安全性都是基于求解某个数学难题的,其中的椭圆曲线密码算法具有多方面的优点。椭圆曲线的求解难度是指数级的,高于以往任何一种密码算法;在相同安全强度下椭圆曲线具有最短的密钥长度,这样就使其对存储空间的要求少;在数字签名与验证、加解密等算法中,椭圆曲线的计算量小,处理速度快,比较适合于资源受限的环境中。
目前有多种认证系统和认证算法,大致分为单向认证系统(图1)和双向认证系统(图2)。一般基于ECC的认证系统的椭圆曲线基点G都是公开的,它们都是利用证书链和数字签名来对设备进行认证的。单向认证系统只能保证被认证设备的合法性,而不能保证认证设备的合法性;只有双向认证才能保证认证双方都是合法的设备,但是双向认证比较复杂,耗费的时间和资源都比较多。本发明提出了一种崭新的认证思路,避免了通过证书链和数字签名进行认证的方法。由第三方权威信任机构选定椭圆曲线参数,并严格对基点G进行保密,通过交换x、y(或者xG、yG)产生共享密钥xyG,根据通信双方所计算出的xyG是否一致来判断设备的合法性,如图3所示。该方法不仅实现了通信双方设备的合法性检验,简化了认证过程,而且交换的数据仅仅是x、y(或者xG、yG),监听者根本无法求解点xG、yG(或者x、y)和基点G的坐标,从而使系统具有更高的安全强度。
发明内容
本方法的目的是利用公钥密码体制中的椭圆曲线算法和DH交换算法产生共享密钥,通过对比通信双方所产生的共享密钥的一致性来判断通信两端是否都是合法有效的设备。该方法如下:
1、首先选定椭圆曲线参数(p,a,b,G,n,h)等;
其中需要公开的参数为:
p为素域Fp的阶,a、b为椭圆曲线y2=x3+ax+b的系数;
需要严格保密的参数为:
G为椭圆曲线上的一个点,n为点G的阶,h为余因子。
2、分别为设备A和B选择两个参数:x、y,要求
3、设备A发送x给设备B,设备B发送y给设备A。
4、设备A计算标量乘y·xG得到共享密钥xyG;设备B计算标量乘x·yG,得到共享密钥xyG。
5、设备A和设备B分别用数字摘要函数计算共享密钥xyG的哈希值h1和h1’,并将计算出哈希值发送给对方。
6、通信双方将接收到哈希值同自己计算的哈希值进行比较,若h1=h1’,则通信双方身份认证成功;否则,返回第3步重新执行身份认证。
以上认证过程中,可以将x、y严格保密,而通信双方交换xG和yG。也可以以保密的形式将基点G植入设备,由设备自己选择随机数x、y,并计算标量乘xG和yG,然后通过交换x、y(或者xG、yG)来进行双方身份认证。在整个身份认证过程中,若参数x、y∈[1,n-1],xy的值有可能大于等于基点G的阶n,因此通信双方计算出共享密钥xyG后,需要检测其是否为无穷远点。如果xyG为无穷远点,则需要返回重新选择x或y的值。若
第三方设备能监听和窃取的只有x、y(或者xG、yG)两个参数,攻击者几乎没有办法以此计算出基点G以及xG、yG(或者x、y)的值,所以该身份认证系统是很安全的。
附图说明
图1是一般的单向认证过程
图2是一般的双向认证过程
图3是本发明的身份认证过程
具体实施方式
具体操作实现时,该算法的所有参数均由可信任的第三方权威机构确定。把一部分参数公开,而另一部分参数严格保密,并把相应的参数设置到设备A和设备B中去。为简便起见,本实施例选用了NIST所推荐的素数域上的P-192椭圆曲线和一些简单参数。
首先由权威信任机构选定椭圆曲线参数(p,a,b,G,n,h)等:
其中需要公开的参数为:
椭圆曲线方程y2=x3-ax-b
P=2192-264-1
a=-3(mod p)=p-3=2192-264-22
b=0x 64210519 E59C80E7 0FA7E9AB 72243049 FEB8DEEC C146B9B1
需要严格保密的参数为:
Gx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012
Gy=0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
n=0x FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22831
h=1
基点G应该由权威信任机构选取并严格保密,此处为简单起见而选取NIST所推荐的基点参数G。
然后由权威信任机构为设备A和设备B选取两个可公开的设备私钥x、y,且
xGx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012
xGy=0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
yGx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012
yGy=0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
将标量乘xG和yG作为设备的公钥,分配如下:公私钥对xG和x分配给设备A,公私钥对yG和y分配给设备B。其中,私钥x和y严格保密。双向认证过程如下:
1、设备A发送xG给设备B,设备B发送yG给设备A。
2、设备A计算标量乘x·yG得到共享密钥yxG;设备B计算标量乘y·xG,得到共享密钥xyG。计算结果如下:
yxGx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012
yxGy=0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
xyGx=0x 188DA80E B03090F6 7CBF20EB 43A18800 F4FF0AFD 82FF1012
xyGy=0x 07192B95 FFC8DA78 631011ED 6B24CDD5 73F977A1 1E794811
3、设备A和设备B分别用数字摘要函数SHA-1计算共享密钥xyG的哈希值h1和h1’,并双方交换计算出的杂凑值。
设备双方将接收到哈希值h1’同本地计算的哈希值h1进行比较,h1=h1’,双方身份认证通过,通信双方都是合法的设备。
机译: 椭圆曲线计算装置,椭圆曲线顺序计算装置,椭圆曲线构建装置,椭圆曲线施加装置,椭圆曲线计算方法,椭圆曲线顺序计算方法,椭圆曲线构建方法,记录椭圆曲线计算程序的记录介质,记录介质记录椭圆曲线顺序计算程序和记录介质记录椭圆曲线配置程序
机译: 计算椭圆曲线的装置和方法,计算椭圆曲线的装置和方法,形成椭圆曲线的装置和方法,椭圆曲线应用装置,记录记录有记录的椭圆曲线,记录了程序的录音的介质和记录椭圆曲线形成程序的媒体
机译: 椭圆曲线加密参数生成设备,椭圆曲线加密计算设备,椭圆曲线加密参数生成程序和椭圆曲线加密计算程序