一种基于椭圆曲线的密钥交换方法

文档序号:669317阅读:751来源:国知局
专利名称:一种基于椭圆曲线的密钥交换方法
技术领域
本发明涉及信息加密技术,特别涉及一种基于椭圆曲线的密钥交换方法。
背景技术
信息安全一直是各国政府、企事业单位和个人在信息传递过程中所关注的焦点问 题。对信息进行加密,以防止被非法人员获取,是保障信息安全的一个核心技术手段。传统的加密方法多采用对称密钥体制,通信双方必须就密钥的秘密性和真实性达 成一致,但这种方法在实际应用中会存在一定的问题,比如由于需要借助于第三方来进行 密钥的分发,因此实现起来比较麻烦,而且也存在安全风险。为此,现有技术中又提出一种由通信双方现场协商生成共享密钥的方法,如公钥 体制下的密钥交换方法,具体包括基于RSA的Diffie-Hellman密钥交换方法和基于椭圆曲 线的密钥交换方法等。由于在安全强度、运算速度以及运算量等方面均具有优势,相比于其 它方法,基于椭圆曲线的密钥交换方法应用得更为广泛。现有基于椭圆曲线的密钥交换方法主要包括基于椭圆曲线的Diffie-Hellman密 钥交换方法和基于椭圆曲线的MQV密钥交换方法等。但这些方法中用到的密钥生成函数的 构造均不够严密,没有考虑通信双方的身份等信息,而且使用的椭圆曲线点的计算方法也 不够安全,无法防范小子群和无效曲线等攻击方式。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于椭圆曲线的密钥交换方法,能够 提高安全性。为达到上述目的,本发明的技术方案是这样实现的一种基于椭圆曲线的密钥交换方法,其特征在于,该方法包括A、通信双方预先确定一条椭圆曲线;B、作为通信发起方的用户A产生随机数rA e [1,n-1],并计算椭圆曲线点& = [rA]G = (xi; yi),将所述&发送给作为通信响应方的用户B ;其中,所述G表示椭圆曲线的 基点,所述η表示G的阶,所述[rA] G表示计算G的rA倍点;C、用户B产生随机数rB e [l,n-l],并计算椭圆曲线点[rB]G = (x2, y2);从所述&中取出域元素&,将其数据类型转换为整数形式,并计算i ,所述i为& 和η的函数;计算G =(《+g、)mod 淇中,所述dB表示用户B的私钥,所述mod表示模运 算;验证接收到的&是否满足椭圆曲线方程,如果不满足,则结束流程,否则,从所述 Ra中取出域元素X1,将其数据类型转换为整数形式,并计算 ,所述$为X1和η的函数;计算椭圆曲线点K = [/z_rs](P,+[^]A) = (xK,>v);其中,所述h表示余因子,h =#E (Fq) /n,所述Ftl表示包含q个元素的有限域,所述E (Fq)表示域Fq中椭圆曲线的所有有理 点组成的集合,所述#E(Fq)表示集合中元素的个数,所述Pa表示用户A的公钥;确定所述V是否为无穷远点,如果是,则结束流程,否则,将xv和yv的数据类型转 换为比特串,并计算密钥Kb = KDF (xv, yv,ZA, Zb, klen);其中,所述KDF表示密钥派生函数, 所述klen表示密钥派生函数输出数据的长度,所述Ik是由用户A的可辨别标识、椭圆曲线 方程参数以及用户A的公钥计算出的杂凑值,所述&是由用户B的可辨别标识、椭圆曲线 方程参数以及用户B的公钥计算出的杂凑值;将所述&发送给用户A ;D、用户A从所述&中取出域元素X1,将其数据类型转换为整数形式,并依次计算 和^(dA+VrrA) mod η,所述dA表示用户A的私钥;验证接收到的&是否满足椭圆曲线方程,如果不满足,则结束流程,否则,从所述 Rb中取出域元素&,将其数据类型转换为整数形式,并计算g ;计算椭圆曲线点t/ = [/ 、](尺= (Xu,yv),其中,所述表示用户B的公 钥;确定所述U是否为无穷远点,如果是,则结束流程,否则,将&和yu的数据类型转 换为比特串形式,并计算密钥Ka = KDF(xu; Yu, ZA, Zb, klen)。可见,采用本发明的技术方案,在构造密钥生成函数时,充分考虑了用户身份信 息、椭圆曲线方程参数信息以及用户的公钥等信息,而且在椭圆曲线点的计算时充分利用 了余因子和随机数等信息,因此相比于现有技术,较好地提高了安全性。


图1为本发明基于椭圆曲线的密钥交换方法实施例的流程图。
具体实施例方式针对现有技术中存在的问题,本发明中提出一种基于椭圆曲线的密钥交换方法, 能够较好地提高安全性。为使本发明的技术方案更加清楚、明白,以下参照附图并举实施例,对本发明所述 方案作进一步地详细说明。图1为本发明基于椭圆曲线的密钥交换方法实施例的流程图。假设预先已确定一 条椭圆曲线,并已为通信双方用户A和用户B分别配置好公钥PA、I\和私钥dA、dB,如何确定 椭圆曲线以及如何为用户配置公钥和私钥均为现有技术,不再赘述。如图1所示,包括以下 步骤步骤11 作为通信发起方的用户A产生随机数rA e [1,n_l],并计算椭圆曲线点 Ra = [rA]G = (xi; yi),将&发送给作为通信响应方的用户B。其中,G表示椭圆曲线的基点,η表示G的阶(通常为素数),[rA]G表示计算G的 rA倍点。步骤12:用户B产生随机数rBe [1,n_l],并计算椭圆曲线点& = [rB]G = (x2,
y2) ο
6
同样,[rB]G表示计算G的rB倍点。步骤13 用户B从&中取出域元素&,将其数据类型转换为整数形式,并计算 72^2W +(x2&(2w-I))。其中,W =「「k)g2(")]/2〗-1,「1表示顶函数,「纠即表示求大于或等于χ的最小整
数;&表示按比特与运算。可以看出,i为&和η的函数。本实施例中,采用整数转换(IntTrans)方法将&转换为整数形式,具体实现包 括1)假设待转换的域元素为α (对应到本步骤中即为,转换后的结果为整数χ ;2)若q(椭圆曲线对应的有限域F,中的元素个数)为奇素数,则令χ = α ;3)若q = 2m,则α将为长度为m的比特串,设Snri, sm_2,···,%依次表示比特串中
m-1
从左到右的各比特,则χ=Σ2、。
/=0步骤14 用户 B 计算& +72-rB)modn。其中,dB表示用户B的私钥,mod表示模运算。步骤15 用户B验证接收到的&是否满足椭圆曲线方程,如果不满足, 则结束流程,否则,从&中取出域元素X1,将其数据类型转换为整数形式,并计算 f = 2^+(4(2"-1))。可以看出,〒为X1和η的函数。 本步骤中,将&的横纵坐标分别作为χ和y代入椭圆曲线方程,如果不能成立,则 结束流程,否则,计算$ = 2W + (χ, &(2W-I))。步骤16 :用户8计算椭圆曲线点厂=[;7弋](&+[^]凡)=( ,凡),并确定V是否为
无穷远点,如果是,则结束流程,否则,将Xv和yv的数据类型转换为比特串形式。其中,h表示余因子,h = #E(Fq)/n, Fq表示包含q个元素的有限域,E(Fq)表示域 Fq中椭圆曲线的所有有理点组成的集合,#E(Fq)表示集合中元素的个数;PA表示用户A的 公钥。如何确定V是否为无穷远点为现有技术,不再赘述。另外,本实施例中,采用比特串转换(BitTrans)方法将Xv和yv的数据类型转换为 比特串形式,具体实现包括1)假设待转换的域元素为α (对应到本步骤中即为Xv或yv),转换后的结果为比 特串S;2)若 q = 2m,则令 s = α ;3)若q为奇素数,则α将为区间
中的整数,首先将α转换为长度为1的 字节串S,/ = p/8"|,i =「log2^],同时,1需要满足281 > α,设M1^,M^,"·,Μ。依次表示字
节串S中从左到右的各字节,则需要满足α =;
/=0然后,将字节串S转换为比特串s 比特串s的长度为m,m = 81,Sm^1, sm_2,…,S0依次表示比特串s中从左到右的各
7比特,Si为Mj右起第i-sj+i个比特,其中y=L"8」,L」表示底函数,>」即表示求小于或等 于χ的最大整数。步骤17 用户 B 计算密钥 Kb = KDF (xv,yv, ZA,Zb, klen)。通常,所述Kb = KDF (xv | | yv | | Za | | ZB, klen)。其中,KDF表示密钥派生函数;klen表示密钥派生函数输出数据的长度Ja是由用 户A的可辨别标识、椭圆曲线方程参数以及用户A的公钥计算出的杂凑值;&是由用户B的 可辨别标识、椭圆曲线方程参数以及用户B的公钥计算出的杂凑值;I I表示拼接。密钥派生函数的具体计算方式为1)设密钥派生函数的表示方式为KDF (x, y,ZA,Zb, klen),2)初始化一个由32比特构成的计数器ct = 0x00000001 ;3)针对取值依次为从1到「论《/vl的i,分别计算Hai = Hv(x |y| |ZA| ZB| ct), i的取值每加1,ct的取值也需要加1 ;HV表示输出数据的长度为ν的杂凑函数,klen小于 (232-l)v;4)确定klen/v是否为整数,如果是,则令二 Ha\mmA,否贝Ij,令&^一等 于彻—H中从左边起第(紈"-(ν χ [klen / ν」))个比特;5)将价丨 H^2 W-WHa^enhyx ||//a!「t_作为 KDF(X,y,‘ Ζβ, kien)的输出结果。另外,上述&的具体计算方式为Za = H256 (ENTLa) |IDa| a |b| xG yG xA| yA);其中,IDa 表示用户 A 的可辨别标 识,为ASCII编码形式,ENTLa表示IDa的长度,用两个字节进行表示,a和b表示椭圆曲线 方程参数,均转换为比特串形式,&和ye表示基点G的坐标,均转换为比特串形式,^Ca和yA 表示用户A的公钥的坐标,均转换为比特串形式;H2re表示输出数据的长度为256的杂凑函 数;Zb的计算方式包括Zb = H256 (ENTLb I IlDj a |b| xG yG xB yB);其中,IDb 表示用户 B 的可辨别标 识,为ASCII编码形式,ENTLb表示1 的长度,用两个字节进行表示,xB和yB表示用户B的 公钥的坐标,均转换为比特串形式。步骤18 用户B将&发送给用户A。这里的&,即为步骤12中计算出的&。步骤19 用户A从&中取出域元素X1,将其数据类型转换为整数形式,并依次计算 = 2W+(X1 &(2W-;^禾口。=(dA +Jx-rA)modn。其中,dA表示用户A的私钥。步骤110 用户A验证接收到的&是否满足椭圆曲线方程,如果不满足, 则结束流程,否则,从&中取出域元素X2,将其数据类型转换为整数形式,并计算 X1^lw +{x28c{2w-X))。步骤111 用户 A 计算椭圆曲线点 / = [/ζ·^](Ρβ+[。Α) = (;^,^)。其中,表示用户B的公钥。 步骤112 用户A确定U是否为无穷远点,如果是,则结束流程,否则,将%和yu的 数据类型转换为比特串形式。
步骤113、计算密钥 Ka = KDF (Xu, Yu, ZA, Zb, klen)。通常,所述Ka = KDF (Xu | | Yu | | Za | | ZB, klen)。至此,用户A和用户B均得到了密钥,即Ka和KB,两者的具体取值是一样的。另外,为了对通信双方的身份进行认证,从而进一步提高安全性,在图1所示步骤 17,即用户B计算出Kb之后,还可进一步执行以下操作用户B 计算 Sb = H(0x02 yv H(xv Za Zb X1 yj X2 y2)),XvJvJ1J1J2 和 72均转换为比特串形式;用户B将&发送给用户A (在实际应用中,可连同& 一起进行发送);后续,用户A 计算 S1 = H(0x02 yj H(xJ Za Zb X1 Y11 | X2 |y2)),X1^ Y1^x2和y2均转换为比特串形式,并验证S1 = Sb是否成立,如果是,则认为从用户B到用户 A的认证失败,结束流程,否则,认为成功,计算\ = H(0x03| IyuI |H(xJ |Za| Zb| X1My1Mx2
I y2)),并将\发送给用户B;用户B 计算 & = H(0x03| yv H(xv Za Zb X1 yj X2 |y2)),并验证 & = \是 否成立,如果是,则认为从用户A到用户B的认证失败,结束流程。上述在计算SB、S1, Sa和&时所用杂凑函数的输出数据的长度可根据实际需要而 定,比如可为192或256。需要说明的是,上述实施例中出现的各符号仅在首次出现时进行了说明,后续出 现时请参照前述说明。另外,图1所示实施例仅为举例说明,并不用于限制本发明的技术方案,比如,各 步骤之间并不是一定要严格按照图1所示顺序进行执行,只要能够实现本发明所述方案即可。下面通过一些具体示例说明本发明所述方案的可行性。假设以下示例中的用户A的可辨别标识为ALICE1230YAH00. COM,用ASCII编码 记为 IDa :414C 49434531 32334059 41484F4F 2E434F4D, ENTLa = 0090 ;用户 B 的可辨 别标识为 BILL4560YAH00. COM,用 ASCII 编码记为 IDb :42 494C4C34 35364059 41484F4F 2E434F4D, ENTLb = 0088。另外,以下各示例中所用到的杂凑函数HO,其输入是长度小于264的消息比特串, 输出是长度为192或256比特的杂凑值。设输出长度为192比特的杂凑函数为Hw2 (),输出 长度为256比特的杂凑函数为H2m5O,以下各示例中选用H2m5O。再有,以下各示例中所有用16进制表示的数,左边为高位,右边为低位。Fp上椭圆曲线密钥交换方式椭圆曲线方程为y2 = x3+ax+b示例 1Fq-192素数q:BDB6F4FE 3E8B1D9E 0DA8C0D4 6F4C318C EFE4AFE3 B6B8551F系数a:BB8E5E8F BC115E13 9FE6A814 FE48AAA6 FOADAIAA 5DF91985系数b :1854BEBD C31B21B7 AEFC80AB 0ECD10D5 B1B3308E 6DBF11C1余因子h:l基点G = ( ,yG),其阶记为η。坐标&:4AD5F704 8DE709AD 51236DE6 5E4D4B48 2C836DC6 E4106640
坐标yG :02BB3A02 D4AAADAC AE24817A 4CA3A1B0 14B5270432DB27D2阶n:BDB6F4FE 3E8B1D9E 0DA8C0D4 0FC96219 5DFAE76F 56564677用户A 的私钥 dA :217B68E4 32A97CE6 A0C6E04E 0DF71CA4 9346980D75DBD585用户A 的公钥 Pa = (xA, yA)坐标jca:365655CB 104D75C8 5250374B 27B86C7B 99100E85 05AD9A13坐标yA :85D04BFE 5091FBE3 F0EFBB32 46C43631 3EFB918C 3935AB69用户B 的私钥 dB :(^65似86 C23E7C94 5E73A150 6C8E74D6 FE70EDC0D0E61BF0用户B 的公钥 I3b = (xB,yB)坐标&:A9F52767 848BE669 95526CBF 19515849 27501F40 916E0AC2坐标yB :8B22F0A1 B3327D14 06AE5D0F F8D291F4 0B0F1AC0 25135354杂凑值A = H2re(ENTLaI |IDa a |b| xG yG| xA yA)。Za:29DBEDC5 CC237FB1 28B243FC 9A858392 3629F15D F3D0353DDADEC704 239EB566杂凑值4 = H2re(ENTLbI |IDb a |b| xG yG| xB yB)。Zb:D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6FB63751A8 13182AA9步骤11 12中的相关值产生随机数rA :0BEB802E 84B69F34 77A7A2CE F3A5D921 AA4B3E1FBA7B947A计算椭圆曲线点= [rA]G = (xi; Yl)坐标X1 :0A3FB526 003998E1 848793AD AC48EEB4 CD3E3995 AA411F3F坐标yi :59555E99 D2A5BCD2 414D9CE2 8A89A8B4 0DD48ECCDCCF25AD产生随机数rB :1CF3475A F6E77D2B BD0758A6 13C456EB 9AA98CE0A8165309计算椭圆曲线点Rb = [rB]G = (x2, y2)坐标x2 :3B7A2867 097E00CA AC2000B3 1C69AAF2 C401727E C146B5F8坐标y2 :507E7EA6 66AB8E41 B6FBBE4A E6A88660 47F50793 D1BF703F步骤13 14中的相关值取无2= 2 95 + (x2 & (2 95 -1)) 9C69AAF2 C401727E C146B5F8计算te =(dH +X2 -rB) modn :7CEE04EF 50440A94 2E40530B CB4F1650FED831D6 539919B0步骤15 16中的相关值取无丨=295+ (χ, & (2 95 -1)) AC48EEB4 CD3E3995 AA411F3F计算椭圆曲线点二 力ο):坐标xA(l :82586966 E992E229 83E3B83C CAB29EE1 IADl 1D27 8745DDFC坐标yA(l :B758D99B 1CCA0252 5255BF3F 7F0D6B63 0EB0A218 40A29177计算椭圆曲线点[幻凡=(Ab^1):坐标^cai 1A03D4F0 F639F174 A433B51A D873F58A 877FB05C 37E408E0坐标yA1 :8E5184CB 6534D701 8EDFB9E8 B227FE56 331212DD F998D0DD计算Z^[h-tB](PA + [χ,]Ra) 二K,jv):坐标xv :0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234CAB52898C
坐标yv :71EAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923步骤17中的相关值计算Kb = KDF (xv | | yv | | Za | | ZB, klen)XvI IyvI |ZA| Izb 0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234C AB52898C71EAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923 29DBEDC5CC237FB1 28B243FC 9A858392 3629F15D F3D0353D DADEC704 239EB566D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6F B63751A813182AA9klen = 128共享密钥Kb :9A399CE7 FD619BCE 92490D15 CF5F0EAB计算选项Sb = H(0x02 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I |x2| y2 0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234C AB52898C29DBEDC5 CC237FB1 28B243FC 9A858392 3629F15D F3D0353D DADEC704239EB566 D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6FB63751A8 13182AA9 0A3FB526 003998E1 848793AD AC48EEB4 CD3E3995AA411F3F 59555E99 D2A5BCD2 414D9CE2 8A89A8B4 0DD48ECC DCCF25AD3B7A2867 097E00CA AC2000B3 1C69AAF2 C401727E C146B5F8 507E7EA666AB8E41 B6FBBE4A E6A88660 47F50793 D1BF703FH (Xv I I Za I I Zb I I X1 I I Y1 I I X2 I I y2) :CF7A0B04 26540C22 CCD082CC 74B1E573D37F8449 384FC21C 14301BD9 5D0443C50x02 |yv| H(xv Za Zb X1My1 X2 y2)02 7IEAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923CF7A0B04 26540C22 CCD082CC 74B1E573 D37F8449 384FC21C 14301BD95D0443C5选项&:B6650913 BED05BEE 6C67AD43 DD108BF1 6672F10C 17CB5F13B1F14332 D765F2FB步骤19 110中的相关值取&= +(々 &(295 . AC48EEB4 CD3E3995 AA411F3F计算G ={dA + χ, -rA) modn :5A5166D5 4F17B545 04FEAE37 6F18077AF71F743E E00B2F30取元2= 295 +(X2 & (295 -1)) 9C69AAF2 C401727E C146B5F8步骤111 112中的相关值计算椭圆曲线点= (Xm ,少βθ):坐标&。1677DAFF 3EC9C7F4 FF643B4E C2414D7D 7DB2FC74 17F07DA8坐标yB(l :0D532313 88CF334D B2C64EAC 8B25C45C 9E26D1FE B2392DE7计算椭圆曲线点x2]rb 二 (Xbi , ^i):坐标:7341C52B 8911812B F4D577A0 5C345561 1D0B2BB4 1CEE73CE坐标yB1 :7011855D 852A14F5 9CA09BB7 25D8D0C7 28B197AB 719EF4B6计算t/ = [h-tA ](Ρβ + [x2 ]/ fl) 二 (χυ ,γυ)
坐标Xu :0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234CAB52898C坐标:71EAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923步骤113中的相关值计算Ka = KDF (xj IyuI Za Zb, klen)xj IyJ |zA| |zb0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234C AB52898C71EAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923 29DBEDC5CC237FB1 28B243FC 9A858392 3629F15D F3D0353D DADEC704 239EB566D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6F B63751A813182AA9klen = 128共享密钥Ka :9A399CE7 FD619BCE 92490D15 CF5F0EAB计算选项S1 = H (0x02 yj H(xJ Za Zb X11 | Y11 | x2 Iy2))xj Za Zb X1 Iy1I |X2| y2 0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234C AB52898C29DBEDC5 CC237FB1 28B243FC 9A858392 3629F15D F3D0353D DADEC704239EB566 D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6FB63751A8 13182AA9 0A3FB526 003998E1 848793AD AC48EEB4 CD3E3995AA411F3F 59555E99 D2A5BCD2 414D9CE2 8A89A8B4 0DD48ECC DCCF25AD3B7A2867 097E00CA AC2000B3 1C69AAF2 C401727E C146B5F8 507E7EA666AB8E41 B6FBBE4A E6A88660 47F50793 D1BF703FH (Xu I I Za I I Zb I I X1 I I Y1 I I X2 I I y2) :CF7A0B04 26540C22 CCD082CC 74B1E573D37F8449 384FC21C 14301BD9 5D0443C50x02 IyuI H(xJ Za Zb X1My1 X2 y2)02 7IEAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923CF7A0B04 26540C22 CCD082CC 74B1E573 D37F8449 384FC21C 14301BD95D0443C5选项S1 :B6650913 BED05BEE 6C67AD43 DD108BF1 6672F10C 17CB5F13B1F14332 D765F2FB计算选项\= !1((^03| IyuI H(xJ Za Zb X11 | Y11 | x2 Iy2))xj Za Zb X1 Iy1I |X2| y2 0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234C AB52898C29DBEDC5 CC237FB1 28B243FC 9A858392 3629F15D F3D0353D DADEC704239EB566 D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6FB63751A8 13182AA9 0A3FB526 003998E1 848793AD AC48EEB4 CD3E3995AA411F3F 59555E99 D2A5BCD2 414D9CE2 8A89A8B4 0DD48ECC DCCF25AD3B7A2867 097E00CA AC2000B3 1C69AAF2 C401727E C146B5F8 507E7EA666AB8E41 B6FBBE4A E6A88660 47F50793 D1BF703FH (Xu I I Za I I Zb I I X1 I I Y1 I I X2 I I y2) :CF7A0B04 26540C22 CCD082CC 74B1E573D37F8449 384FC21C 14301BD9 5D0443C50x03 IyuI H(xJ Za Zb X1My1 X2 y2)03 7IEAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923CF7A0B04 26540C22 CCD082CC 74B1E573 D37F8449 384FC21C 14301BD95D0443C5
12
选项\:E138ADF5 3051A3F5 9FED92CE 68F39A01 0EC8B6D4 0FE4BFC85F9850F1 CCB979B9计算选项&= H(0x03 |yv| H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I |x2| y2 0DAD244A C84E7ECD 0AD5B8A2 4DC6CDDA CE30234C AB52898C29DBEDC5 CC237FB1 28B243FC 9A858392 3629F15D F3D0353D DADEC704239EB566 D9AF4854 326C29F5 1E814D3A CCAE4FF8 ED87D9B9 4635BF6FB63751A8 13182AA9 0A3FB526 003998E1 848793AD AC48EEB4 CD3E3995AA411F3F 59555E99 D2A5BCD2 414D9CE2 8A89A8B4 0DD48ECC DCCF25AD3B7A2867 097E00CA AC2000B3 1C69AAF2 C401727E C146B5F8 507E7EA666AB8E41 B6FBBE4A E6A88660 47F50793 D1BF703FH (Xv I I Za I I Zb I I X1 I I Y1 I I X2 I I y2) :CF7A0B04 26540C22 CCD082CC 74B1E573D37F8449 384FC21C 14301BD9 5D0443C50x03 |yv| H(xv Za Zb X1My1 X2 y2)03 7IEAFB2A DC703483 297C182D 6D07E695 D682D7FA 832CC923CF7A0B04 26540C22 CCD082CC 74B1E573 D37F8449 384FC21C 14301BD95D0443C5选项&:E138ADF5 3051A3F5 9FED92CE 68F39A01 0EC8B6D4 0FE4BFC85F9850F1 CCB979B9示例 2:Fr256素数q:8542D69E 08F1DFC3系数a:787968B4 3937E498系数b:63E4C6D3 27C5249A余因子h :1基点G = (xG, ye),其阶记为η。坐标xc :421DEBD6 1B62EAB6 746434EB C3CC315E 32220B3BADD50BDC 4C4E6C14 7FEDD43D坐标ye :0680512B CBB42C07 D47349D2 153B70C4 E5D7FDFC BFA36EA1A85841B9 E46E09A2阶η :8542D69E 4C044F18 E8B92435 BF6FF7DD 29772063 0485628D5AE74EE7 C32E79B7用户A 的私钥 dA :6FCBA2EF 9AE0AB90 2BC3BDE3 FF915D44 BA4CC78F88E2F8E7 F8996D3B 8CCEEDEE用户A 的公钥 Pa = (xA, yA)坐标jca:3099093B F3C137D8 FCBBCDF4 A2AE50F3 B0F216C3 122D79425FE03A45 DBFE1655坐标yA :3DF79E8D AC 1CF0EC BAA2F2B4 9D51A4B3 87F2EFAF 482339086A27A8E0 5BAED98B
4C044F18 E8B92435 FA32C3FD 2417842E B23B0C84 9CF84241
BF6FF7DE 45728391 73BBFEFF 2F3C848B 484BFE48 F61D59A5
5C45517D722EDB8B 6831D7E0EC65228B B16BA06E6E12D1DA
用户B 的私钥 dB :5E3OT7D3 F3C54DBA C72E6181 9E730B01 9A84208CA3A35E4C 2E353DFC CB2A3B53用户B 的公钥 = (xB,yB)坐标&:245493D4 46C38D8C COFl 1837 4690E7DF 633A8A4B FB3329B5ECE604B2 B4F37F43坐标yB :53C0869F 4B9E1777 3DE68FEC 45E14904 E0DEA45B F6CECF9918C85EA0 47C60A4C杂凑值A = H2re(ENTLaI |IDa a |b| xG yG| xA yA)。Za:E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A668487240F 75E20F31杂凑值4 = H2re(ENTLbI |IDb a |b| xG yG| xB yB)。Zb:6B4B6D0E 276691BD 4A11BF72 F4FB501A E309FDAC B72FA6CC336E6656 119ABD67步骤11 12中的相关值产生随机数rA :83A2C9C8 B96E5AF7 0BD480B4 72409A9A 327257F1EBB73F5B 073354B2 48668563计算椭圆曲线点= [rA]G = (xi; Yl)坐标X1 :6CB56338 16F4DD56 0B1DEC45 8310CBCC 6856C095 05324A6D23150C40 8F162BF0坐标yi :0D6FCF62 F1036C0A 1B6DACCF 57399223 A65F7D7B F2D9637E5BBBEB85 7961BF1A产生随机数rB :33FE2194 0342161C 55619C4A 0C060293 D543C80AF19748CE 176D8347 7DE71C80计算椭圆曲线点Rb = [rB]G = (x2, y2)坐标x2 :1799B2A2 C7782953 00D9A232 5C686129 B8F2B533 7B3DCF4514E8BBC1 9D900EE5坐标y2 :54C9288C 82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7D8740A91 D0DB3CF4步骤13 14中的相关值取元2=2127+(X2 &(2127-1)):B8F2B533 7B3DCF45 14E8BBC1 9D900EE5计算。=+X2-rB) modn 2B2E11CB F03641FC 3D939262 FC0B652A 70ACAA25 B5369AD38B375C02 65490C9F步骤15 16中的相关值取g=2丨27 + (χ, & (2'27 -1)):E856C095 05324A6D 23150C40 8F162BF0计算椭圆曲线点[罵]/?力坐标xA(l :2079015F 1A2A3C13 2B67CA90 75BB2803 1D6F2239 8DD8331E72529555 204B495B坐标yA(l :6B3FE6FB 0F5D5664 DCA16128 B5E7FCFD AFA5456C 1E5A914D1300DB61 F37888ED
计算椭圆曲线点巧+[高]A =(XA^l):坐标^cai :1C006A3B FF97C651 B7F70D0D E0FC09D2 3AA2BE7A8E9FF7DA F32673B4 16349B92坐标yA1 :5DC74F8A CC114FC6 F1A75CB2 86864F34 7F9B2CF2 9326A27079B7D37A FC1C145B计算Γ^[h-tB+ [J1 ) = (xv,yv)坐标xv :47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF2900F8B7F5 66E40905坐标yv :2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295步骤17中的相关值计算Kb = KDF (xv | | yv | | Za | | ZB, klen)XvI |yv| |zA| |zb47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F566E40905 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295 E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA098E51A66 8487240F 75E20F31 6B4B6D0E 27669IBD 4A11BF72 F4FB501AE309FDAC B72FA6CC 336E6656 119ABD67klen = 128共享密钥Kb :55B0AC62 A6B927BA 23703832 C853DED4计算选项Sb = H(0x02 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I X2 y2 47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F566E40905 E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A668487240F 75E20F31 6B4B6D0E 276691BD 4A11BF72 F4FB501A E309FDACB72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45 8310CBCC6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF57399223 A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C778295300D9A232 5C686129 B8F2B533 7B3DCF45 14E8BBC1 9D900EE5 54C9288C82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7 D8740A91 D0DB3CF4H (Xv I I Za I I Zb I I X1 I I Y1 I I X2 I I y2) :FF49D95B D45FCE99 ED54A8AD 7A7091109F513944 42916BD1 54D1DE43 79D976470x02 |yv| H(xv Za Zb X1My1 X2 y2)02 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295 FF49D95B D45FCE99 ED54A8AD 7A709110 9F51394442916BD1 54D1DE43 79D97647选项& :284C8F19 8F141B50 2E81250F 1581C7E9 EEB4CA69 90F9E02DF388B454 71F5BC5C步骤19 110中的相关值取&=2127 +(X1 & (2127 -1)):E856C095 05324A6D 23150C40 8F162BF0计算tA =(dA +Xi -rA) modn :236CF0C7 A177C65C 7D55E12D 361F7A6C174A78698AC099C0 874AD065 8A4743DC取J2=2127 +(X2 & (2127 -1)):B8F2B533 7B3DCF45 14E8BBC1 9D900EE5步骤111 112中的相关值计算椭圆曲线点= (Ao,少洲)坐标:66864274 6BFC066A 1E731ECF FF51131B DC81CF60 9701CB8C657B25BF 55B7015D坐标yB。1988A7C6 81CE1B50 9AC69F49 D72AE60E 8B71DB6C E087AF8499FEEF4C CD523064计算椭圆曲线点灭β = (Χβ丨,^i):坐标:7D2B4435 10886AD7 CA3911CF 2019EC07 078AFF11 6E0FC409A9F75A39 01F306CD坐标yB1 :331F0C6C 0FE08D40 5FFEDB30 7BC255D6 8198653B DCA68B9CBA100E73 197E5D24计算f/ = [h-tA }(PB + ^ )Rb ) = ( , γυ )坐标%:47C82653 4DC2F6F1 FBF28728 DD658F21E 174F481 79ACEF2900F8B7F5 66E40905坐标yu :2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295步骤113中的相关值计算Ka = KDF (Xu | | Yu | | Za | | ZB, klen)XuI IyuI |zA| |zB 47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F566E40905 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295 E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA098E51A66 8487240F 75E20F31 6B4B6D0E 27669IBD 4A11BF72 F4FB501AE309FDAC B72FA6CC 336E6656 119ABD67klen = 128共享密钥Ka :55B0AC62 A6B927BA 23703832 C853DED4计算选项S1 = H (0x02 yj H(xJ Za Zb X11 | Y11 | x2 Iy2))xj Za Zb X1 Iy1I X2 y2 47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F566E40905 E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A668487240F 75E20F31 6B4B6D0E 276691BD 4A11BF72 F4FB501A E309FDACB72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45 8310CBCC6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF57399223 A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C778295300D9A232 5C686129 B8F2B533 7B3DCF45 14E8BBC1 9D900EE5 54C9288C82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7 D8740A91 D0DB3CF4H (Xu I I Za I I Zb I I X1 I I I I x2 I I y2) :FF49D95B D45FCE99 ED54A8AD 7A7091109F513944 42916BD1 54D1DE43 79D976470x02 IyuI H(xJ Za Zb X1My1 X2 y2)
02 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295 FF49D95B D45FCE99 ED54A8AD 7A709110 9F51394442916BD1 54D1DE43 79D97647选项S1 :284C8F19 8F141B50 2E81250F 1581C7E9 EEB4CA69 90F9E02DF388B454 71F5BC5C计算选项\= !1((^03| IyuI H(xJ Za Zb X11 | Y11 | X2 Iy2))xj Za Zb X1 Iy1I |X2| y2 47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F566E40905 E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A668487240F 75E20F31 6B4B6D0E 276691BD 4A11BF72 F4FB501A E309FDACB72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45 8310CBCC6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF57399223 A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C778295300D9A232 5C686129 B8F2B533 7B3DCF45 14E8BBC1 9D900EE5 54C9288C82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7 D8740A91 D0DB3CF4H (Xu I I Za I I Zb I I X1 I I I I x2 I I y2) :FF49D95B D45FCE99 ED54A8AD 7A7091109F513944 42916BD1 54D1DE43 79D976470x03 IyuI H(xJ Za Zb X1My1 X2 y2)03 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295 FF49D95B D45FCE99 ED54A8AD 7A709110 9F51394442916BD1 54D1DE43 79D97647选项\:23444DAF 8ED75343 66CB901C 84B3BDBB 63504F40 65C1116C91A4C006 97E6CF7A计算选项&= H(0x03 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I X2 y2 47C82653 4DC2F6F1 FBF28728 DD658F21 E174F481 79ACEF29 00F8B7F566E40905 E4D1D0C3 CA4C7F11 BC8FF8CB 3F4C02A7 8F108FA0 98E51A668487240F 75E20F31 6B4B6D0E 276691BD 4A11BF72 F4FB501A E309FDACB72FA6CC 336E6656 119ABD67 6CB56338 16F4DD56 0B1DEC45 8310CBCC6856C095 05324A6D 23150C40 8F162BF0 0D6FCF62 F1036C0A 1B6DACCF57399223 A65F7D7B F2D9637E 5BBBEB85 7961BF1A 1799B2A2 C778295300D9A232 5C686129 B8F2B533 7B3DCF45 14E8BBC1 9D900EE5 54C9288C82733EFD F7808AE7 F27D0E73 2F7C73A7 D9AC98B7 D8740A91 D0DB3CF4H (xv I I Za I I Zb I I X1 I I I I x2 I I y2) :FF49D95B D45FCE99 ED54A8AD 7A7091109F513944 42916BD1 54D1DE43 79D976470x03 |yv| H(xv Za Zb X1My1 X2 y2)03 2AF86EFE 732CF12A D0E09A1F 2556CC65 0D9CCCE3 E249866BBB5C6846 A4C4A295 FF49D95B D45FCE99 ED54A8AD 7A709110 9F51394442916BD1 54D1DE43 79D97647选项&:23444DAF 8ED75343 66CB901C 84B3BDBB 63504F40 65C1116C91A4C006 97E6CF7A
17
基于之前的介绍可知,q可能为奇素数,也可能q= 2m,以上两个示例中的q均为 奇素数,以下两个示例中q = 2m。F2m上椭圆曲线密钥交换方式椭圆曲线方程为y2+xy = x3+ax2+b示例 3 :F2m-193基域生成多项式x193+x15+l系数a:0系数b :00 2FE22037 B624DBEB C4C618E1 3FD998B1 A18E1EE0D05C46FB余因子h:4基点G = ( ,yG),其阶记为η。坐标& :00 D78D47E8 5C936440 71BC1C21 2CF994E4 D21293AAD8060A84坐标yc:00 615B9E98 A31B7B2F DDEEECB7 6B5D8755 86293725F9D2FC0C阶η:80000000 00000000 00000000 43E9885C 46BF45D8 C5EBF3A1用户A 的私钥 dA :5E39F93D AD7F334A 7D57E0CD 0F5C5556 128DABC4F5D21844用户A 的公钥 Pa = (xA, yA)坐标xA 00 2A3B6E0C B88265C4 FB1DC1EB 9208DDFB AED784E5E8837972坐标yA:00 635BF2ED BD18BAD5 4AE54A11 9EEED807 D8007A23909F4BCC用户B 的私钥 dB :0F479000 13BDBEB9 D37426A3 D5DCA50B 51D7E68AE85522ED用户B 的公钥 = (xB,yB)坐标088DEF49 C86C2D62 3301A9B7 3619AD0C EB501EFAF436EE06坐标yB:01 E5CEC76D 90A8A542 0697E547 27F9DDA5 0D1E17FB0D4AF5FB杂凑值A = H2re(ENTLaI |IDa a |b| xG yG| xA yA)。Za:7F518EAE CD4B53C3 983707E2 64AFD495 E633E0EE El1ECB9EACD9E4DB A0457512杂凑值4 = H2re(ENTLbI |IDb a |b| xG yG| xB yB)。Zb:9BE6B11D B47ACC6A B9E60729 1270CE6F 07D873EC ED435556919A0255 5DC3BE84步骤11 12中的相关值产生随机数rA :789A80A5 84773D2C E07F303C 0A754723 0E09CC375EB42004计算椭圆曲线点= [rA]G = (xi; Yl)坐标X1 :01 543F4E17 9E9CAE08 EC39EC3A 26023547 EA1FEFD4 B306B8E4坐标y1:01 5AE6274C E1DD41D2 D703DF9C E1702F27 48EFE55C6BD2835A产生随机数rB :0374158C 755437D6 8AF8DA3A 10491DB1 D837EE13C411B623计算椭圆曲线点Rb = [rB]G = (x2, y2)坐标& :01 FF9CD527 28A988A8 3DCECF63 189C0EE3 6B401790E4FEC056坐标y2:01 86192973 ABDB5A7B 7B0C0501 0D98623E 3B4FF8AE1A702AAC步骤13 14中的相关值取无2= 2 95 + (x2 & -1)) 989C0EE3 6B401790 E4FEC056计算G=(^3+ .^ ) mod :3EF66606 B5D199FB 8D1B07F9 9887B3DE6DA70AC1
18224EC943计算h · tBmodn :7BD9981A D74667EE 346C1FE6 1E35471D 6FDCE52BC34F316B步骤15 16中的相关值取无丨=295 + (X1 & (2卵-1)) A6023547 FA1FEFD4 B306B8E4计算椭圆曲线点[巧]Ra = (Xao ,为ο):坐标xA(l:00 75E4B8FA 85211324 82F6BC20 7A67E43D 1434C91C1D0C91D8坐标yA(l:00 86591FC2 9D807E41 ADBDEBAA A6627071 636065FBE546BC14计算椭圆曲线点户卢[罵]凡=(X^h1):坐标xA1 00 2CD08E7B F1BEF15C 2539CD62 2FB084C0 B3CAF5FDEE5688C6坐标yA1:01 F31B5F04 865403A5 FD50230D 29DEFC64 9719AA5917CA08C8
计算 7 = [h-tB ]{PA + [^l ]Ra )=( ,γ,)坐标χν 00 A0CD5BAB AEBFF027 93AA433F 624025A5 65E8A33378A15E26坐标yv:01 CEA2EBF6 CCE80178 8880A83D 922CCFAB D8345CCA15FDB0CB步骤17中的相关值计算Kb = KDF (xv | | yv | | Za | | ZB, klen)
_] XvI |yv| |zA| Izb 00A0CD5B ABAEBFFO 2793M43 3F624025 A565E8A3 3378A15E2601CEA2 EBF6CCE8 01788880 A83D922C CFABD834 5CCA15FD B0CB7F518EAECD4B 53C39837 07E264AF D495E633 E0EEE11E CB9EACD9 E4DBA04575129BE6 B11DB47A CC6AB9E6 07291270 CE6F07D8 73ECED43 5556919A02555DC3 BE84klen = 128共享密钥Kb :82四叨33 0321D234 23A16995 7297EC80计算选项Sb = H(0x02 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I |x2| y2 00A0CD5B ABAEBFFO 2793M43 3F624025 A565E8A3 3378A15E267F518E AECD4B53 C3983707 E264AFD4 95E633E0 EEElIECB 9EACD9E4DBA04575 129BE6B1 1DB47ACC 6AB9E607 291270CE 6F07D873 ECED435556919A02 555DC3BE 8401543F 4E179E9C AE08EC39 EC3A2602 3547FA1FEFD4B306 B8E4015A E6274CE1 DD41D2D7 03DF9CE1 702F2748 EFE55C6BD2835A01 FF9CD527 28A988A8 3DCECF63 189C0EE3 6B401790 E4FEC05601861929 73ABDB5A 7B7B0C05 010D9862 3E3B4FF8 AE1A702A ACH (xv I I Za I I Zb I I X1 I I I I x2 I I y2) :0CA189F8 E28B8E8D 30CB4C24 E61E297280E0A686 6BDB5129 961A072B F4FFA43E0x02 |yv| H(xv Za Zb X1My1 X2 y2)02 01CEA2EB F6CCE801 788880A8 3D922CCF ABD8345C CA15FDB0CB0CA189 F8E28B8E 8D30CB4C 24E61E29 7280E0A6 866BDB51 29961A072BF4FFA4 3E选项& :75F40322 BA2F9C44 809D8D60 5E4403E5 8CFFABCD 4F0ADA474A72A06A 0A23E9AF步骤19 110中的相关值取^= 295 + (X1 & (2仍-1)) A6023547 FA1FEFD4 B306B8E4
计算tA =(dA +X1 -rA) modn :12575522 45B95F5F 6B549D1B 01ACEC39E2D2A049 AAC41A1F计算h · tAmodn :495D5489 16E57D7D AD52746C 06B3B0E7 8B4A8126AB10687C取X2= 295 + (x2 & (295 - 1)) 989C0EE3 6B401790 E4FEC056步骤111 112中的相关值计算椭圆曲线点=(XBO , yBoY坐标&。01 B97A51CF 690E8AE1 B3FDF131 E4CC9288 6D3B7C5286E381A2坐标yB(l:00 26816833 49B6603B CB6EDB6F 3A6478FE D9B4A7FB9A252CCD计算椭圆曲线点=(xm, ym)坐标:01 87F0CA04 8AB231F2 01458A5F 062EDEA1 734B7CF328ED956E坐标yB1:01 89882B8C 295CF7BE 1EF71FD8 74479IAA C52CECD5CAF2FAD6计算t/ = [h-tA ](Pfl + [^2 ) = (X^yu):坐标Xu 00 A0CD5BAB AEBFF027 93AA433F 624025A5 65E8A33378A15E26坐标yu:01 CEA2EBF6 CCE80178 8880A83D 922CCFAB D8345CCA15FDB0CB步骤113中的相关值计算Ka = KDF (χ | | Yu | | Za | | ZB, klen)xj |yj |zA| Izb 00A0CD5B ABAEBFFO 2793M43 3F624025 A565E8A3 3378A15E2601CEA2 EBF6CCE8 01788880 A83D922C CFABD834 5CCA15FD B0CB7F518EAECD4B 53C39837 07E264AF D495E633 E0EEE11E CB9EACD9 E4DBA04575129BE6 B11DB47A CC6AB9E6 07291270 CE6F07D8 73ECED43 5556919A02555DC3 BE84klen = 128共享密钥Ka :82四叨33 0321D234 23A16995 7297EC80计算选项S1 = H (0x02 yj H(xJ Za Zb X11 | Y11 | X2 Iy2))xj Za Zb X1 Iy1I X2 y2 00A0CD5B ABAEBFFO 2793M43 3F624025 A565E8A3 3378A15E267F518E AECD4B53 C3983707 E264AFD4 95E633E0 EEElIECB 9EACD9E4DBA04575 129BE6B 11DB47ACC 6AB9E607 291270CE 6F07D873 ECED435556919A02 555DC3BE 8401543F 4E179E9C AE08EC39 EC3A2602 3547FA1FEFD4B306 B8E4015A E6274CE1 DD41D2D7 03DF9CE1 702F2748 EFE55C6BD2835A01 FF9CD527 28A988A8 3DCECF63 189C0EE3 6B401790 E4FEC05601861929 73ABDB5A 7B7B0C05 010D9862 3E3B4FF8 AE1A702A ACH (Xu I I Za I I Zb I I X1 I I Y1 I I X2 I I y2) :0CA189F8 E28B8E8D 30CB4C24 E61E297280E0A686 6BDB5129 961A072B F4FFA43E0x02 IyuI H(xJ Za Zb X1My1 X2 y2)02 01CEA2EB F6CCE801 788880A8 3D922CCF ABD8345C CA15FDB0CB0CA189 F8E28B8E 8D30CB4C 24E61E29 7280E0A6 866BDB51 29961A072BF4FFA4 3E选项S1 :75F40322 BA2F9C44 809D8D60 5E4403E5 8CFFABCD 4F0ADA474A72A06A 0A23E9AF计算选项\= !1((^03| IyuI H(xJ Za Zb X11 | Y11 | x2 y2))
xj Za Zb X1 Iy1I X2 y2 00A0CD5B ABAEBFFO 2793M43 3F624025 A565E8A3 3378A15E267F518E AECD4B53 C3983707 E264AFD4 95E633E0 EEElIECB 9EACD9E4DBA04575 129BE6B1 1DB47ACC 6AB9E607 291270CE 6F07D873 ECED435556919A02 555DC3BE 8401543F 4E179E9C AE08EC39 EC3A2602 3547FA1FEFD4B306 B8E4015A E6274CE1 DD41D2D7 03DF9CE1 702F2748 EFE55C6BD2835A01 FF9CD527 28A988A8 3DCECF63 189C0EE3 6B401790 E4FEC05601861929 73ABDB5A 7B7B0C05 010D9862 3E3B4FF8 AE1A702A ACH (Xu I I Za I I Zb I I X1 I I I I x2 I I y2) :0CA189F8 E28B8E8D 30CB4C24 E61E297280E0A686 6BDB5129 961A072B F4FFA43E0x03 IyuI H(xJ Za Zb X1My1 X2 y2)03 01CEA2EB F6CCE801 788880A8 3D922CCF ABD8345C CA15FDB0CB0CA189 F8E28B8E 8D30CB4C 24E61E29 7280E0A6 866BDB51 29961A072BF4FFA4 3E选项\:A0E6264D 1C57EE72 85CE5D1D 7A3BFB03 E4196AF6 4DE9CF5F2E972190 46DC7F17计算选项&= H(0x03 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I X2 y2 00A0CD5B ABAEBFFO 2793M43 3F624025 A565E8A3 3378A15E267F518E AECD4B53 C3983707 E264AFD4 95E633E0 EEElIECB 9EACD9E4DBA04575 129BE6B1 1DB47ACC 6AB9E607 291270CE 6F07D873 ECED435556919A02 555DC3BE 8401543F 4E179E9C AE08EC39 EC3A2602 3547FA1FEFD4B306 B8E4015A E6274CE1 DD41D2D7 03DF9CE1 702F2748 EFE55C6BD2835A01 FF9CD527 28A988A8 3DCECF63 189C0EE3 6B401790 E4FEC05601861929 73ABDB5A 7B7B0C05 010D9862 3E3B4FF8 AE1A702A ACH (xv I I Za I I Zb I I X1 I I I I x2 I I y2) :0CA189F8 E28B8E8D 30CB4C24 E61E297280E0A686 6BDB5129 961A072B F4FFA43E0x03 |yv| H(xv Za Zb X1My1 X2 y2)03 01CEA2EB F6CCE801 788880A8 3D922CCF ABD8345C CA15FDB0CB0CA189 F8E28B8E 8D30CB4C 24E61E29 7280E0A6 866BDB51 29961A072BF4FFA4 3E选项& :A0E6264D 1C57EE72 85CE5D1D 7A3BFB03 E4196AF6 4DE9CF5F2E972190 46DC7F17示例 4 :F2m-257基域生成多项式χ257+χ12+1系数α 0系数b :00 E78BCD09 746C2023 78A7E72B 12BCE002 66B9627E CB0B5A25367AD1AD 4CC6242B余因子h :4基点G = ( ,yG),其阶记为η。坐标xG 00 CDB9CA7F 1Ε6Β0441 F658343F 4B10297C 0EF9B6491082400A 62Ε7Α748 5735FADD坐标yG:01 3DE74DA6 5951C4D7 6DC89220 D5F7777A 611B1C38BAE260B175951DC8 060C2B3E阶η :7FFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF BC972CF7 E6B6F900945B3C6A 0CF6161D用户A 的私钥 dA :4813903D 254F2C20 A94BC570 42384969 54BB5279F861952E F2C5298E 84D2CEAA用户A 的公钥 Pa = (xA, yA)坐标xA :00 8E3BDB2E 11F91933 88F1F901 CCC857BF 49CFC065 FB38B9069CAAE6D5 AFC3592F坐4555122A AC0075F4 2E0A8BBD 2C0665C7 89120DF19D77B4E3 EE4712F5 98040415用户B 的私钥 dB :08F41BAE 0922F47C 212803FE 681AD52B 9BF28A35E1CD0EC2 73A2CF81 3E8FD1DC用户B 的公钥 = (xB,yB)坐标xB:00 34297DD8 3AB14D5B 393B6712 F32B2F2E 938D4690 B095424B89DA880C 52D4A7D9坐标yB:01 99BBF11A C95A0EA3 4BBD00CA CFE3B33B DBD2B62D杂凑值A = H2re(ENTLaI |IDa a |b| xG yG| xAZa :ECF00802 15977B2E 5D6D61B9 8A99442F A9ACDF2B杂凑值4 = H2re(ENTLbI |IDb a |b| xG yG| xBZb:557BAD30 E183559A EEC3B225 6E1C7C11 9B87B527步骤11 12中的相关值产生随机数rA :54A3D667 3FF3A6BD 6B02EBB 164C2A3AF 6D4A4906229D9BFC E68CC366 A2E64BA4计算椭圆曲线点= [rA]G = (xi; Yl)坐标χ1:01 81076543 ED19058C 38B313D7 39921D46 B80094D9 61A13673D4A5CF8C 7159Ε304坐标Y101 D8CFFF7C Α27Α01Α2 E88C1867 3748FDE9 A74C1F9B45646ECA 0997293C 15C34DD8产生随机数rB :1F219333 87BEF781 D0A8F7FD 708C5AE0 A56EE3F423DBC2FE 5BDF6F06 8C53F7AD计算椭圆曲线点Rb = [rB]G = (x2, y2)坐标x2 :00 2A4832B4 DCD399BA AB3FFFE7 DD6CE6ED 68CC43FFA5F2623B 9BD04E46 8D322A2A坐标y2 00 16599BB5 2ED9EAFA D01CFA45 3CF3052E D60184D2EECFD42B 52DB7411 0B984C23步骤13 14中的相关值
50B93EC2 4ACB68335D20BA5D
yA) °
03E8803D C39E349F8DCA5621
yB) °
F870D22B 165D015ACF9465B0
取&= 2127 +(X2 & (2m -1)) :E8CC43FF A5F2623B 9BD04E46 8D322A2A计算、=(dB+X2 'rB) modn :3D51D331 14A453A0 5791DB63 5B45F8DBC54686D7 E2212D49 E4A717C6 BlODEDBO计算h·、modn :75474CC4 52914E81 5E476D8D 6D17E36F 5882EE67A1CDBC26 FE4122B0 B741A0A3步骤15 16中的相关值取χ丨=2丨27+ (χ, & (2丨27 — 1)):B80094D9 61A13673 D4A5CF8C 7159E304计算椭圆曲线点[元丨]RA = (ΧΑΟ ,力0):坐标xA。01 98AB5F14 349B6A46 F77FBFCB DDBFCD34 320DC1F4C546D13C 3A9F0E83 0C39B579坐标yA(l :00 BFB49224 ACCE2E51 04CD4519 C0CBE3AD 0C19BF11805BE108 59069AA6 9317A2B7计算椭圆曲线点/[高]=(^)1,3^1):坐标xA100 24A92F64 66A37C5C 12A2C68D 58BFB0F0 32F2B97660957CB0 5E63F961 F160FE57坐标yA100 F74A4F17 DC560A55 FDE0F1AB 168BCBF7 6502E240BA2D6BD6 BE6E5D79 16B288FC计算 Γ = [h · tB ]{PA + [无丨]Ra ) = (xy,yy)坐标xv00 DADD0874 06221D65 7BC3FA79 FF329BB0 22E9CB7DDFCFCCFE 277BE8CD 4AE9B954坐tg yv 01 F0464B1E 81684E5E D6EF281B 55624EF4 6CAA3B2D 37484372D91610B6 98252CC9步骤17中的相关值计算Kb = KDF (xv | | yv | | Za | | ZB, klen)
_] XvI |yv| |zA| Izb 00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCCFE277BE8 CD4AE9B9 5401F046 4B1E8168 4E5ED6EF 281B5562 4EF46CAA3B2D3748 4372D916 10B69825 2CC9ECF0 08021597 7B2E5D6D 61B98A99442F03E8 803DC39E 349F8DCA 5621A9AC DF2B557B AD30E183 559AEEC3B2256E1C 7C11F870 D22B165D 015ACF94 65B09B87 B527klen = 128共享密钥Kb :4E587E5C 66634F22 D973A7D9 8BF8BE23计算选项Sb = H(0x02 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I |x2| y2 00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCCFE277BE8 CD4AE9B9 54ECF008 0215977B 2E5D6D61 B98A9944 2F03E8803DC39E34 9F8DCA56 21A9ACDF 2B557BAD 30E18355 9AEEC3B2 256E1C7C11F870D2 2B165D01 5ACF9465 B09B87B5 27018107 6543ED19 058C38B313D73992 1D46B800 94D961A1 3673D4A5 CF8C7159 E30401D8 CFFF7CA27A01A2E8 8C186737 48FDE9A7 4C1F9B45 646ECA09
2397293C15 C34DD8002A4832B4 DCD399BA AB3FFFE7 DD6CE6ED 68CC43FF A5F2623B 9BD04E468D322A2A 0016599B B52ED9EA FADOICFA 453CF305 2ED60184 D2EECFD42B52DB74 110B984C 23H(xv| |ZA| |ZB| Ix1I Iy1I Ix2I |y2) :E05FE287 B73B0CE6 639524CD 86694311 562914F4F6A34241 01D885F8 8B05369C0x02 |yv| H(xv Za Zb X1My1 X2 y2)02 01F0464B 1E81684E 5ED6EF28 1B55624E F46CAA3B 2D37484372D91610 B698252C C9E05FE2 87B73B0C E6639524 CD866943 11562914F4F6A342 4101D885 F88B0536 9C选项& :4EB47D28 AD3906D6 244D01E0 F6AEC73B 0B51DE15 74C13798184E4833 DBAE295A步骤19 110中的相关值取&=2ηι + (χ, & (2127 — 1)):B80094D9 61A13673 D4A5CF8C 7159E304计算 、= (dA + X1 - rA ) modn :18A1C649 B94044DF 16DC8634 993F1A4AEE3F6426 DFE14AC1 3644306A A5A94187计算h · tAmodn :62871926 E501137C 5B7218D2 64FC692B B8FD909B7F852B04 D910C1AA 96A5061C取3 2=2127 +(JC2 & (2127 -1)) E8CC43FF A5F2623B 9BD04E46 8D322A2A步骤111 112中的相关值计算椭圆曲线点及β = (XB0,yB0)坐标χΒ001 0AA3BAC9 7786Β629 22F93414 57AC64F7 2552AA15D9321677 A10C7021 33Β16735坐标yB(l :00 C10837F4 8F53C46B 714BCFBF AA1AD627 11FCB03C0C25B366 BF176A2D C7B8E62E计算椭圆曲线点/VHsl·^= (Xiu, yB\)·.坐标xB100 C7A446E1 98DB4278 60C3BB50 ED2197DE B81619739141CA61 03745035 9FAD9A99坐标yB100 602E5A42 17427EAB C5E3917D E8IBFFAl D806591AF949DD7C 97EF90FD 4CF0A42D计算“:[h-iA}{PB+ [X1 ]i s) = {xu,yu)坐标Xu00 DADD0874 06221D65 7BC3FA79 FF329BB0 22E9CB7DDFCFCCFE 277BE8CD 4AE9B954坐F0464B1E 81684E5E D6EF281B 55624EF4 6CAA3B2D37484372 D91610B6 98252CC9步骤113中的相关值计算Ka = KDF (χ | | Yu | | Za | | ZB, klen)xj |yj |zA| |zb00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCCFE277BE8 CD4AE9B95 401F046 4B1E8168 4E5ED6EF 281B5562 4EF46CAA3B2D3748 4372D91610B69825 2CC9ECF0 08021597 7B2E5D6D 61B98A99442F03E8 803DC39E 349F8DCA 5621A9AC DF2B557B AD30E183 559AEEC3B2256E1C 7C11F870 D22B165D 015ACF94 65B09B87 B527klen = 128共享密钥Ka :4E587E5C 66634F22 D973A7D9 8BF8BE23计算选项S1 = H (0x02 yj H(xJ Za Zb X11 | Y11 | X2 Iy2))xj Za Zb X1 Iy1I X2 y2 00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCCFE277BE8 CD4AE9B9 54ECF008 0215977B 2E5D6D61 B98A9944 2F03E8803DC39E34 9F8DCA56 21A9ACDF 2B557BAD 30E18355 9AEEC3B2 256E1C7C11F870D2 2B165D01 5ACF9465 B09B87B5 27018107 6543ED19 058C38B313D73992 1D46B800 94D961A1 3673D4A5 CF8C7159 E30401D8 CFFF7CA27A01A2E8 8C186737 48FDE9A7 4C1F9B45 646ECA09 97293C15 C34DD8002A4832B4 DCD399BA AB3FFFE7 DD6CE6ED 68CC43FF A5F2623B 9BD04E468D322A2A 0016599B B52ED9EA FADOICFA 453CF305 2ED60184 D2EECFD42B52DB74 110B984C 23H(Xu| |ZA| |ZB| Ix1I Iy1I Ix2I |y2) :E05FE287 B73B0CE6 639524CD 86694311 562914F4F6A34241 01D885F8 8B05369C0x02 IyuI H(xJ Za Zb X1My1 X2 y2)02 01F0464B 1E81684E 5ED6EF28 1B55624E F46CAA3B 2D37484372D91610 B698252C C9E05FE2 87B73B0C E6639524 CD866943 11562914F4F6A342 4101D885 F88B0536 9C选项S1 :4EB47D28 AD3906D6 244D01E0 F6AEC73B 0B51DE15 74C13798184F4833 DBAE295A计算选项\= !1((^03| IyuI H(xJ Za Zb X11 | Y11 | x2 Iy2))xj Za Zb X1 Iy1I |X2| y2 00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCCFE277BE8 CD4AE9B9 54ECF008 0215977B 2E5D6D61 B98A9944 2F03E8803DC39E34 9F8DCA56 21A9ACDF 2B557BAD 30E18355 9AEEC3B2 256E1C7C11F870D2 2B165D01 5ACF9465 B09B87B5 27018107 6543ED19 058C38B313D73992 1D46B800 94D961A1 3673D4A5 CF8C7159 E30401D8 CFFF7CA27A01A2E8 8C186737 48FDE9A7 4C1F9B45 646ECA09 97293C15 C34DD8002A4832B4 DCD399BA AB3FFFE7 DD6CE6ED 68CC43FF A5F2623B 9BD04E468D322A2A 0016599B B52ED9EA FADOICFA 453CF305 2ED60184 D2EECFD42B52DB74 110B984C 23H(Xu| |ZA| |ZB| Ix1I Iy1I Ix2I |y2) :E05FE287 B73B0CE6 639524CD 86694311 562914F4F6A34241 01D885F8 8B05369C0x03 IyuI H(xJ Za Zb X1My1 X2 y2)03 01F0464B 1E81684E 5ED6EF28 1B55624E F46CAA3B 2D37484372D91610 B698252C C9E05FE 287B73B0C E6639524 CD866943 11562914F4F6A342 4101D885 F88B0536 9C
选项\:588AA670 64F24DC2 7CCAA1FA B7E27DFF 811D500A D7EF2FB8F69DDF48 CC0FECB7计算选项&= H(0x03 yv H(xv Za Zb X1 yj X2 y2))xv Za Zb X1 Iy1I X2 y2 00DADD08 7406221D 657BC3FA 79FF329B B022E9CB 7DDFCFCCFE277BE8 CD4AE9B9 54ECF008 0215977B 2E5D6D61 B98A9944 2F03E8803DC39E34 9F8DCA56 21A9ACDF 2B557BAD 30E18355 9AEEC3B2 256E1C7C11F870D2 2B165D01 5ACF9465 B09B87B5 27018107 6543ED19 058C38B313D73992 1D46B800 94D961A1 3673D4A5 CF8C7159 E30401D8 CFFF7CA27A01A2E8 8C186737 48FDE9A7 4C1F9B45 646ECA09 97293C15 C34DD8002A4832B4 DCD399BA AB3FFFE7 DD6CE6ED 68CC43FF A5F2623B 9BD04E468D322A2A 0016599B B52ED9EA FADOICFA 453CF305 2ED60184 D2EECFD42B52DB74 110B984C 23H(xv| |ZA| |ZB| Ix1I Iy1I |x2| |y2) :E05FE287 B73B0CE6 639524CD 86694311 562914F4F6A34241 01D885F8 8B05369C0x03 |yv| H(xv Za Zb X1My1 X2 y2)03 01F0464B 1E81684E 5ED6EF28 1B55624E F46CAA3B 2D37484372D91610 B698252C C9E05FE2 87B73B0C E6639524 CD866943 11562914F4F6A342 4101D885 F88B0536 9C选项&:588AA670 64F24DC2 7CCAA1FA B7E27DFF 811D500A D7EF2FB8F69DDF48 CC0FECB7总之,采用本发明的技术方案,能够较好地提高安全性。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
2权利要求
1.一种基于椭圆曲线的密钥交换方法,其特征在于,该方法包括A、通信双方预先确定一条椭圆曲线;B、作为通信发起方的用户A产生随机数rAe[1,n_l],并计算椭圆曲线点& = [rA]G =(X1, yi),将所述&发送给作为通信响应方的用户B;其中,所述G表示椭圆曲线的基点, 所述η表示G的阶,所述[rA]G表示计算倍点;C、用户B产生随机数rBe[l,n-l],并计算椭圆曲线点[rB]G = (x2, y2); 从所述&中取出域元素&,将其数据类型转换为整数形式,并计算5,所述g为&和η的函数;计算G 二 (义+ i · & ) mod π ;其中,所述dB表示用户B的私钥,所述mod表示模运算; 验证接收到的&是否满足椭圆曲线方程,如果不满足,则结束流程,否则,从所述&中 取出域元素X1,将其数据类型转换为整数形式,并计算i ,所述i为X1和η的函数;计算椭圆曲线点(尺+1 凡)=( ,外);其中,所述h表示余因子,h = #E(Fq)/ η,所述Ftl表示包含q个元素的有限域,所述E (Fq)表示域Fq中椭圆曲线的所有有理点组成 的集合,所述#E(Fq)表示集合中元素的个数,所述Pa表示用户A的公钥;确定所述V是否为无穷远点,如果是,则结束流程,否则,将xv和yv的数据类型转换为 比特串,并计算密钥Kb = KDF (xv, yv,ZA, Zb, klen);其中,所述KDF表示密钥派生函数,所述 klen表示密钥派生函数输出数据的长度,所述&是由用户A的可辨别标识、椭圆曲线方程 参数以及用户A的公钥计算出的杂凑值,所述&是由用户B的可辨别标识、椭圆曲线方程 参数以及用户B的公钥计算出的杂凑值; 将所述&发送给用户A ;D、用户A从所述Ra中取出域元素Xl,将其数据类型转换为整数形式,并依次计算 和 tA^{dA+x,-rA) mod η,所述dA表示用户A的私钥;验证接收到的&是否满足椭圆曲线方程,如果不满足,则结束流程,否则,从所述&中 取出域元素&,将其数据类型转换为整数形式,并计算g ;计算椭圆曲线点"=[h-tA](PB+(^WB) 二 (Xu^u),其中,所述&表示用户B的公钥; 确定所述U是否为无穷远点,如果是,则结束流程,否则,将&和yu的数据类型转换为 比特串形式,并计算密钥Ka = KDF(xu; yu; ZA, Zb, klen)。
2.根据权利要求1所述的基于椭圆曲线的密钥交换方法,其特征在于,所述计算S包括所述S = 2w+(x2&(2、1));其中,所述w =「「log "l/2"]-l,所述 厂 表示顶函数,所述&表示按比特与运算;所述计算 包括所述 = 2W + (X1 & (2W -1))。
3.根据权利要求1所述的基于椭圆曲线的密钥交换方法,其特征在于,所述将数据类 型转换为整数形式包括假设待转换的域元素为α,转换后的结果为整数χ; 若q为奇素数,则X= α ;若q = 2m,则所述α为长度为m的比特串,设S1^Snr2,…,%依次表示比特串中从左到右的各比特,则^ Σ2、。/=O
4.根据权利要求1所述的基于椭圆曲线的密钥交换方法,其特征在于,所述将数据类 型转换为比特串形式包括假设待转换的域元素为α,转换后的结果为比特串s ;若 q = 2m,则 S= α ;若q为奇素数,则所述α为区间
中的整数,首先将所述α转换为长度为1的 字节串3,/二卩/8^,/ =「10§2《],同时,1需要满足2机> α,设Mw,M1^,.",Mtl依次表示字节串S中从左到右的各字节,则需要满足《 =;/=0得到长度为m的比特串s,m = 81,Sffl^1, sm_2,…,S0依次表示比特串s中从左到右的各 比特,Si为Mj右起第i-8j+l个比特,其中_/ = |j78」,所述[_」表示底函数。
5.根据权利要求1所述的基于椭圆曲线的密钥交换方法,其特征在于,所述密钥派生 函数的计算方式包括设密钥派生函数的表示方式为KDF (X,y,ZA, Zb, klen);初始化一个由32比特构成的计数器ct = 0x00000001 ;针对取值依次为从1到「紈《/ν]的i,分别计算Hai = Hv (x |y I |ZA| Zb ct), i的取值 每加1,所述ct的取值也需要加1 ;所述Hv表示输出数据的长度为ν的杂凑函数,所述klen 小于O32-Dv;所述I I表示拼接;确定klen/v是否为整数,如果是,则令= Ha\k,en^,否则,令!Γ^/ν 等于 他—H中从左边起第(协"-(vx[klen/ν」))个比特;将/Za1 WHa2 Il…Il//α—印丨丨//^叫作为KDF(X,y,; Ζβ, kien)的输出结果。
6.根据权利要求1所述的基于椭圆曲线的密钥交换方法,其特征在于,所述&的计算 方式包括Za = H256 (ENTLa I |IDa| a| Ib xG| |yc| xA| |yA);其中,所述 IDa 表示用户 A 的可辨别标 识,为ASCII编码形式,所述ENTLa表示IDa的长度,用两个字节进行表示,所述a和b表示 椭圆曲线方程参数,均转换为比特串形式,所述xG和ye表示基点G的坐标,均转换为比特串 形式,所述、和yA表示用户A的公钥的坐标,均转换为比特串形式,所述H2re表示输出数据 的长度为256的杂凑函数;所述&的计算方式包括Zb = H256 (ENTLb I IlDj a| |b| xG| |ye| xB| yB);其中,所述 IDb 表示用户 B 的可辨别标 识,为ASCII编码形式,所述ENTLb表示IDb的长度,用两个字节进行表示,所述&和yB表示 用户B的公钥的坐标,均转换为比特串形式。
7.根据权利要求1 6中任一项所述的基于椭圆曲线的密钥交换方法,其特征在于,所 述用户B计算出Kb之后,进一步包括用户 B 计算 Sb = H(0x02 |yv| H(xv Za Zb X1 yj x2 | y2)),所述 XvJvJ1J1J2 和 Y2均转换为比特串形式;所述I I表示拼接;用户B将所述&发送给用户A ;用户 A 计算 S1 = H(0x02 IyuI H(xJ Za Zb X1 yj x2 y2)),所述 %、yu、Xl、yi、&和 Y2均转换为比特串形式;并验证S1 = Sb是否成立,如果是,则认为从用户B到用户A的认证 失败,结束流程,否则,计算\ =对0劝3| IyuI IHUuI ZaI Zb X1 Iy1I Ix2I |y2)),并发送给用 户B;用户 B 计算& = H(0x03| |yv| H(xv Za Zb X1 Yl | | x2 | y2)),并验证 & = \ 是否成 立,如果是,则认为从用户A到用户B的认证失败,结束流程。
全文摘要
本发明提供了一种基于椭圆曲线的密钥交换方法,在构造密钥生成函数时,充分考虑了用户身份信息、椭圆曲线方程参数信息以及用户的公钥等信息,而且在椭圆曲线点的计算时充分利用了余因子和随机数等信息,因此相比于现有技术,能够较好地提高安全性。
文档编号H04L9/08GK102104481SQ20101060910
公开日2011年6月22日 申请日期2010年12月17日 优先权日2010年12月17日
发明者叶顶锋, 周锦君, 季庆光, 张亚娟, 张振峰, 彭国华, 祝跃飞, 胡磊, 裴定一, 陈小明, 陈建华, 陈晓 申请人:中国科学院数据与通信保护研究教育中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1