CN102412971B - 基于sm2密钥交换协议的密钥协商方法及装置 - Google Patents
基于sm2密钥交换协议的密钥协商方法及装置 Download PDFInfo
- Publication number
- CN102412971B CN102412971B CN201110390564.7A CN201110390564A CN102412971B CN 102412971 B CN102412971 B CN 102412971B CN 201110390564 A CN201110390564 A CN 201110390564A CN 102412971 B CN102412971 B CN 102412971B
- Authority
- CN
- China
- Prior art keywords
- value
- parameter
- key
- positive integer
- negotiation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012795 verification Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000012790 confirmation Methods 0.000 claims description 8
- 230000000295 complement effect Effects 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 238000006243 chemical reaction Methods 0.000 description 8
- 239000003999 initiator Substances 0.000 description 6
- 238000009795 derivation Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- NTSBMKIZRSBFTA-AIDOXSFESA-N Digoxigenin bisdigitoxoside Chemical compound C1[C@H](O)[C@H](O)[C@@H](C)O[C@H]1O[C@@H]1[C@@H](C)O[C@@H](O[C@@H]2C[C@@H]3[C@]([C@@H]4[C@H]([C@]5(CC[C@@H]([C@@]5(C)[C@H](O)C4)C=4COC(=O)C=4)O)CC3)(C)CC2)C[C@@H]1O NTSBMKIZRSBFTA-AIDOXSFESA-N 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Algebra (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及信息技术领域,公开了一种基于SM2密钥交换协议的密钥协商方法及装置。该方法为:协商双方均根据令不等式n≤2x成立的X取值中的最小正整数值,来计算参数W,并根据该参数W与协商对端进行密钥协商。相较于采用先计算log2(n)对数值再向上取整的方式计算参数W的方法,有效地减少了计算量,并且降低了算法的实现复杂度,从而在很大程度上提高了基于SM2密钥交换协议的密钥协商流程的实现效率,进而优化了SM2密钥交换协议的工程化实现。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种基于SM2密钥交换协议的密钥协商方法及装置。
背景技术
2010年12月中国国家密码管理局将SM2、SM3密码算法公开,标志着SM2、SM3密码算法进入了商用化阶段。SM2密钥交换协议作为SM2密码算法的一个组成部分,其在密钥管理和密钥协商功能领域得到很好的应用。在SM2密钥交换协议工程实现过程中,W参数作为密钥交换协议内的一个重要参数,其参数值的生成运算效率成为整个密钥交换协议实现效率的决定性因素。
基于SM2密钥交换协议的规定,现有的密钥协商流程如下:
假设用户A为密钥协商发起方,而用户B为密钥协商响应方,用户A和用户B协商获得的密钥数据的长度为klen比特,以及用户A和用户B双方使用相同的椭圆曲线方程,其中,该椭圆曲线方程类型可选择素域方程y2=x3+ax+b,也可以选择二元扩域方程y2+xy=x3+ax2+b。
在SM2密钥交换协议内规定使用的密钥派生函数记为KDF(Z,klen),其作用是从一个秘密比特串中派生出密钥数据,其中,z为输入的秘密比特串,整数klen表示要获得的密钥数据的比特长度,要求该值小于(232-1)v,将长度为klen的密钥数据比特串记为K。在密钥数据生成的过程中,密钥派生函数需要调用密码杂凑函数(例如,SM3密码杂凑算法),通常将密码杂凑函数记为Hv(),密码杂凑函数的输出是长度为v比特的杂凑值。
下面介绍密钥派生函数运算步骤如下:
(1)、初始化一个32比特构成的计数器ct=0x00000001;
(2)、分别采用i从1到的取值循环执行以下步骤a和步骤b,各次的执行结果分别记为:Ha1、Ha2...... 其中,为生成的最后一个Hai的取值的部分或全部:
a、计算Hai=hv(Z||ct);||为级联运算
b、ct++;
在计算,时,若klen/v是整数,则令若klen/V是非整数,则令为最左边的个比特;
(3)、最后,令K便是获得的密钥数据。
基于获得的密钥函数,用户A和用户B为了获得相同的密钥,需要进行密钥协商,具体运算步骤如下:
记
用户A:
A1:采用随机数发生器产生随机数rA∈[1,n-1];
A2:计算椭圆曲线点RA=[rA]G=(x1,y1),(x1,y1)即是点RA的坐标值,G为选取的椭圆曲线参数。
A3:将RA发送给用户B;
用户B:
B1:采用随机数发生器产生随机数rB∈[1,n-1];
B2:计算椭圆曲线点RB=[rB]G=(x2,y2),(x2,y2)即是点RB的坐标值,G为选取的椭圆曲线参数。
B3:从RB中取出域元素x2,若域元素x2为二元扩域数据,则先要将其数据类型转换为整数,若域元素x2为素域数据,则无需转换,可直接进行后续操作;接着,计算用户B侧的中间参数
B4:计算其中,tB为用户B侧的中间参数,dB为用户B本地保存的私钥、rB为用户B本地产生的随机数。
B5:验证RA是否满足椭圆曲线方程(采用素域方式或二元扩域方式可预先与用户A约定,双方采用相同的椭圆曲线方程),若不满足则确定本次密钥协商失败,若满足,则从RA中取出域元素x1,若域元素x1为二元扩域域数据,则先要将其数据类型转换为整数,若域元素x1为素域数据,则无需转换,可直接进行后续操作,计算用户B侧的中间参数
B6:计算椭圆曲线点其中,h为选取的椭圆曲线参数,PA为用户A的公钥,判断V是否为无穷远点(如,xV=0,yV=0),若是,则确认用户B密钥协商失败,否则,将域元素xV、yV的数据类型转换为比特串;
B7:计算KB=KDF(xV||yV||ZA||ZB,klen);KB即为用户B通过密钥协商获得的密钥数据,此时,可默认用户B的密钥协商成功。
可选地,在执行B7后,用户B还可以进一步执行B8:
B8:将RA的坐标x1、y1和RB的坐标x2、y2的数据类型均转换为比特串,计算SB=Hash(0x02||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2)),Hash()可以看作是密码杂凑函数Hv(),SB可以看作是运算获得的一杂凑值。
B9:将RB发送给用户A,若执行了B8,则还需进一步将SB发送给用户A;
用户A:
A4:从RA中取出域元素x1,若域元素x1为二元扩域数据,则先要将其数据类型转换为整数,若域元素x1为素域数据,则无需转换,可直接进行后续操作,计算中间参数
A5:计算其中,tA为用户A侧的中间参数,dA为用户A本地保存的私钥、rA为用户A本地产生的随机数。
A6:验证RB是否满足椭圆曲线方程(与用户B约定),若不满足,则确定本次密钥协商失败;否则,从RB中取出域元素x2,若域元素x2为二元扩域域数据,则先要将其数据类型转换为整数,若域元素x2为素域数据,则无需转换,可直接进行后续操作,计算中间参数
A7:计算椭圆曲线点若U是无穷远点(如,xU=0,yU=0),则A协商失败;否则将域元素xU、yU的数据类型转换为比特串;
A8:计算KA=KDF(xU||yU||ZA||ZB,klen),KA即为用户A通过密钥协商获得的密钥数据,此时,可默认用户A的密钥协商成功;
可选地,在执行A8后,若接收到用户B发送的SB,则用户A还可以进一步执行A9和A10:
A9:将RA的坐标x1、y1和RB的坐标x2、y2的数据类型均转换为比特串,计算S1=Hash(0x02||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)),Hash()可以看作是密码杂凑函数Hv(),S1可以看作是运算获得的一杂凑值,并检验S1=SB是否成立,若成立,则确定用户B到用户A的密钥确认成功,若不成立则确定从用户B到用户A的密钥确认失败;
A10:计算SA=Hash(0x03||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2)),并将SA发送给用户B。
用户B:(若接收到用户A发送的SA,则用户B可以继续执行步骤B10和B11)
B10:计算S2=Hash(0x03||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2)),并检验S2=SA是否成立,若成立,则确定用户A到用户B的密钥确认成功,若不成立则确定从用户A到用户B的密钥确认失败。
上述过程便是SM2密钥交换协议描述的密钥协商过程,由此可知,在上述流程中,W参数值运算公式为其中n为椭圆曲线参数,称为阶n,阶n通常是160位以上的大整数,如果基于阶n直接求取log2(n)的对数值,然后再进行向上取整运算,在工程实现上是较为复杂的,也比较耗费计算时间,从而直接降低了密钥协商流程的实现效率,提升了密钥协商流程的实现复杂度。
发明内容
本发明实施例提供一种基于SM2密钥交换协议的密钥协商方法及装置,用以降低密钥协商流程的实现复杂度,提高密钥协商流程的实现效率。
本发明实施例提供的具体技术方案如下:
一种基于SM2密钥交换协议的密钥协商方法,包括:
确定本次密钥协商所使用的椭圆曲线参数阶n的取值;
计算所述阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值;
基于所述W的取值与协商对端进行密钥协商。
一种基于SM2密钥交换协议的密钥协商装置,包括:
第一控制模块,用于确定本次密钥协商所使用的椭圆曲线参数阶n的取值,并计算所述阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值;
第二控制模块,用于基于所述W的取值与协商对端进行密钥协商。
一种参数生成装置,包括:
确定单元,用于确定本次密钥协商所使用的椭圆曲线参数阶n的取值;
计算单元,用于计算所述阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值。
本发明实施例中,协商双方均根据令不等式n≤2x成立的X取值中的最小正整数值,来计算参数W,并根据该参数W与协商对端进行基于SM2密钥交换协议的密钥协商。相较于采用先计算log2(n)对数值再向上取整的方式计算参数W的方法,有效地减少了计算量,并且降低了算法的实现复杂度,从而在很大程度上提高了基于SM2密钥交换协议的密钥协商流程的实现效率,进而优化了SM2密钥交换协议的工程化实现。
附图说明
图1A为本发明实施例中密钥协商装置功能结构示意图;
图1B为本发明实施例中参数W生成装置功能结构示意图;
图2为本发明实施例中进行密钥协商的流程图;
图3为本发明实施例中生成参数W的第一种方法流程图;
图4为本发明实施例中生成参数W的第二种方法流程图。
具体实施方式
在基于SM2密钥交换协议的密钥协商过程中,为了降低密钥协商流程的执行复杂度,提高密钥协商流程的实现效率,本发明实施例中,进行密钥协商的双方不再采用来计算参数W,而是求取满足n≤2x中X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值(例如,将X的最小正整数值替代的运算结果代入公式中计算W的取值),然后,再基于采用这种方式计算出的W值与对端进行密钥协商。
下面仍以用户A和用户B为例,结合附图对本发明优选的实施方式进行详细说明。
参阅图1A所示,本发明实施例中,基于SM2密钥交换协议的密钥协商双方中,任意一方使用的密钥协商装置(可以是用户A,也可以是用户B)包括第一控制模块10和第二控制模块11,其中,
第一控制模块10,用于确定本次密钥协商所使用的椭圆曲线参数阶n的取值,并计算阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值;
第二控制模块11,用于基于上述参数W的取值与协商对端进行密钥协商。
如图1A所示,第二控制模块11内部又可细分为若干以软件形式实现的功能单元和以硬件形式实现的功能单元,这些功能单元的作用将在后续实施例中进行详细介绍,另一方面,图1A所示的第二控制模块11内部的功能单元的划分方式仅为一种举例,实现应用中可以根据具体的应用环境而另行规划,在此不再赘述。
另一方面,实际应用中,第一控制模块10可以是密钥协商装置中设置的逻辑模块,也可以是具有独立运行功能的子装置,参阅图1B所示,本发明实施例中,第一控制模块10包括确定单元100和计算单元101,其中,
确定单元100,用于确定本次密钥协商所使用的椭圆曲线参数阶n的取值;
计算单元101,用于计算阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值。
基于上述技术方案,参阅图2所示,本发明实施例中,SM2密钥协商双方中的任意一方(可以是用户A,也可以是用户B)所执行的具体流程如下:
步骤200:确定本次密钥协商所使用的椭圆曲线参数阶n的取值。
通常阶n的取值会预先设置,用户A和用户B在SM2密钥协商流程的启动阶段,会约定采用的椭圆曲线的方程,以及向对端发送自身采用的公钥,即PA和PB。
步骤210:计算确定的阶n小于或等于2的X次方时,X的最小正整数值,即确定令不等式n≤2x成立的X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值。
本实施例中,在确定令不等式n≤2x成立的X的最小正整数值时,执行的具体操作如下:参阅图3和图4所示,密钥协商装置需要先确定阶n的有效比特数m,即从高位第一个非0比特位算起,阶n包含的比特总数目;然后,将阶n的取值与2m-1进行大小比较,即判断n>2m-1?若是,则直接将m的当前取值作为X的最小正整数值;否则,采用设定步长值(如,步长值为1)对m逐次进行减小,每减少一次,判断一次n>2m-1?直到该不等式成立为止,并将m减少后的最后取值作为X的最小正整数值。
本实施例中,在获得X的最小正整数值后,在基于X的最小正整数值计算参数W的取值时,可以采用多种方式:
例如:参阅图3所示,可以先判断最后获得的m的奇偶性(即X的最小正整数取值的奇偶性),若m为奇数,则将m除以第一预设参数并进行向下取整后的结果作为参数W的取值,如,采用公式计算参数W的取值,其中,为向下取整操作,m为X的最小正整数;若m为偶数,则将m除以第一预设参数并进行向下取整后再减去第二预设参数的结果作为参数W的取值,如,采用公式计算参数W的取值,其中,2为第一预设参数,1为第二预设参数。
又例如,参阅图4所示,可以先判断最后获得的m的奇偶性(即X的最小正整数取值的奇偶性),若m为奇数,则将m右移设定位数后的结果作为参数W的取值,如,采用公式w=m>>1计算参数W的取值,其中,>>为向右移位操作,1为右移的设定位数,m>>1即表示将m的当前取值的最低位(二元扩域形式)删除,再将最高位补零;若m为偶数,则将m右移设定位数后再减去第三预设参数的结果作为参数W的取值,如,采用公式w=(m>>1)-1计算参数W的取值,其中,第一个1为右移设定位数,第二个1为第三预设参数。
步骤220:基于获得的参数W的取值与协商对端进行密钥协商。
参阅图2所示,实现SM2密钥交换协议的密钥协商装置即可作为发起方用户A,也可作为响应方用户B,其中,第一控制模块10即是计算参数W的运算模块,密钥协商装置通过第一控制模块10获得参数W后,与对端进行密钥协商的过程如下:
在SM2密钥交换协议流程启动后,用户发起方A和用户响应方B通过各自使用的密钥协商装置内设置的第一控制模块10分别获得相应的参数W,
接着,用户A通过密钥协商装置内的第二控制模块11计算随机数和椭圆曲线点,其中,第二控制模块11可以通过硬件方式实现,参阅图1所示,用户A可以通过第二控制模块11内的随机数发生单元生成随机数rA∈[1,n-1],而ECC运算单元可以基于生成的随机数产生椭圆曲线点RA=[rA]G=(x1,y1),同时,第二控制模块11将本密钥协商装置中密钥存储子模块内保存的参与本次密钥协商所用到的私钥dA相对应的公钥PA取出,并将公钥PA通过本地以软件形式实现的通信接口将椭圆曲线点RA和公钥PA发送给用户B;
用户B使用的密钥协商装置B从用户A接收的信息中主要包括:对方公钥PA、对方椭圆曲线点RA、对方用户信息ZA,同时获取本地用户信息ZB、椭圆曲线余因子参数h、协商密钥预期长度klen;
用户B采用本地第二控制模块11计算随机数和椭圆曲线点,其中,第二控制模块11可以通过硬件方式实现,如,用户B可以通过第二控制模块11内的随机数发生单元生成随机数rB∈[1,n-1],接着,通过第二控制模块11内的ECC运算单元可以基于生成的随机数产生椭圆曲线点RB=[rB]G=(x2,y2),同时,第二控制模块11将本密钥协商装置中密钥存储单元内保存的参与本次密钥协商所用到的私钥dB相对应的公钥PB取出,并通过本地以软件形式实现的通信接口将椭圆曲线点RB和公钥PB发送给用户A;
接着,用户B可以采用本地第二控制模块11内以软件形式实现的数据类型转换单元将获得的域元素x1和x2的数据类型转化成整数数据类型,然后,调用第二控制单元11内以软件形式实现的参数运算单元,基于已获得的参数W,采用公式分别计算出参数和其中,x1为椭圆曲线点RA的横坐标,x2为椭圆曲线点RB横坐标,此处便使用到了采用本发明实施例提供的方案生成的参数W。
接着,用户B通过密钥协商装置将对端公钥PA、对端椭圆曲线点RA、本地采用的椭圆曲线余因子参数h、参数参数传输至第二控制模块11内的硬件实现部分,并调用其中的大整数运算单元完成运算,其中私钥dB是从第二控制模块11中以硬件形式实现的密钥存储单元中读取出的,相关运算主要包括,先采用大整数模乘运算计算出再采用大整数模加运算计算出tB=(dB+l)modn;用户B继续调用上述大整数运算单元完成f=[h·tB]运算,相关运算主要包括大整数乘运算。
然后,用户B采用第二控制模块11内以硬件形式实现的ECC运算单元完成RA是否满足椭圆曲线方程的验证,再完成运算,相关运算主要包括:通过ECC点乘运算计算出通过ECC点加运算计算出g=PA+s,然后再次通过ECC点乘运算计算出V=f·g=(xV,yV)。
用户B通过密钥协商装置中的第二控制模块11将RA是否满足椭圆曲线方程的验证结果及椭圆曲线点V=(xV,yV)传输至软件实现部分,如果RA不满足椭圆曲线方程,或,V=(xV,yV)为椭圆曲线无穷远点,则结束运算;否则用户B通过第二控制模块11中以软件形式实现的数据类型转换单元将椭圆曲线点V=(xV,yV)中横坐标xV和纵坐标yV的数据类型转换为比特串数据类型,用户B通过第二控制模块11中以软件形式实现的密钥派生单元计算用户B本地的协商密钥KB=KDF(xV||yV||ZA||ZB,klen),至此,用户B可以默认密钥协商成功。
当然,可选的,用户B还可以进一步通过第二控制模块11中通过软件形式实现的数据类型转换单元将椭圆曲线点RA=(x1,y1)横坐标x1、纵坐标y1和椭圆曲线点RB=(x2,y2)横坐标x2、纵坐标y2的数据类型转换为比特串数据类型,然后,通过第二控制模块11中以软件形式实现的密码杂凑计算单元计算出如下校验信息:
SB=Hash(0x02||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2))
S2=Hash(0x03||yV||Hash(xV||ZA||ZB||x1||y1||x2||y2))
用户B将校验信息SB通过以软件形式的传输接口传输到用户A。
发起方A所属密钥协商装置接收用户B发送的信息,获得用户B的公钥PB、用户B椭圆曲线点RB、用户B的用户信息ZB、以及获取本地用户信息ZA、椭圆曲线余因子参数h、协商密钥预期长度klen,而后采用与用户B相同的流程计算出的:
KA=KDF(xU||yU||ZA||ZB,klen)
至此,发起方A也可以默认密钥协商成功。
进一步地,若用户A接收到用户B发送的校验信息SB,则也需要采用相同流程计算出以下验证信息:
S1=Hash(0x02||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2))
SA=Hash(0x03||yU||Hash(xU||ZA||ZB||x1||y1||x2||y2))
然后校验S1是否与SB相等,如果相等,则确认密钥协商成功,若不相等,则确认密钥协商失败,并将SA发送给用户B;
用户B验证SA是否等于S2,如果相等,则确认密钥协商成功,如果不相等,则确认密钥协商失败。
至此,SM2密钥交换协议中制定的SM2密钥协商流程完全结束。
综上所述,本发明实施例中,协商双方均根据令不等式n≤2x成立的X取值中的最小正整数值,来计算参数W,并根据该参数W与协商对端进行基于SM2密钥交换协议的密钥协商。其中,参数W的计算过程,可以在实际协商流程启动之前执行,或者,在实际协商流程启动之后执行,均可实现相同效果。相较于采用先计算log2(n)对数值再向上取整的方式计算参数W的方法,有效地减少了计算量,并且降低了算法的实现复杂度,从而在很大程度上提高了基于SM2密钥交换协议的密钥协商流程的实现效率,进而优化了SM2密钥交换协议的工程化实现。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种基于SM2密钥交换协议的密钥协商方法,其特征在于,包括:
确定本次密钥协商所使用的椭圆曲线参数阶n的取值;
计算所述阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值;
基于所述参数W的取值与协商对端进行密钥协商;
其中,计算所述阶n小于或等于2x时,X的最小正整数值,包括:
获取所述阶n的有效比特数m,当阶n的取值大于2m-1的取值时,所述X的最小正整数值为m的当前取值;当阶n的取值小于等于2m-1的取值时,采用设定步长值对m逐次进行减小,每减少一次,将阶n的取值与2m-1的取值进行一次比较,直到前者大于后者为止,此时所述X的最小正整数值为m的最后取值。
2.如权利要求1所述的方法,其特征在于,基于获得的X的最小正整数值获得参数W的取值,包括:
判断X的最小正整数值为奇数还是偶数,若为奇数,则将X的最小正整数值除以第一预设参数并进行向下取整后的结果作为参数W的取值;若为偶数,则将X的最小正整数值除以第一预设参数并进行向下取整后再减去第二预设参数后的结果作为参数W的取值。
3.如权利要求1所述的方法,其特征在于,基于获得的X的最小正整数值获得参数W的取值,包括:
判断X的最小正整数值为奇数还是偶数,若为奇数,则将X的最小正整数值右移设定位数后的结果作为参数W的取值;若为偶数,则将X的最小正整数值右移设定位数后再减去第三预设参数的结果作为参数W的取值。
4.如权利要求1-3任一项所述的方法,其特征在于,基于所述W的取值与协商对端进行密钥协商,包括:
接收协商对端发送的对端公钥PA、对端椭圆曲线点RA、对端用户信息ZA,以及获取本地用户信息ZB、本地私钥dB、本地生成的随机数rB、本地生成的椭圆曲线点RB、本地椭圆曲线余因子参数h和协商密钥预期长度klen;
基于已获得的参数W,分别根据椭圆曲线点RA的横坐标x1和椭圆曲线点RB的横坐标x2,采用SM2密钥交换协议规定的方式生成相应的参数和
根据本地椭圆曲线余因子参数h,本地私钥dB,所述参数和对端公钥PA、对端椭圆曲线点RA,本地生成随机数rB,采用SM2密钥交换协议规定的方式生成椭圆曲线点V,其坐标值为(xV,yV);
根据椭圆曲线点V的横坐标xV和纵坐标yV,对端用户信息ZA,本地用户信息ZB,以及协商密钥预期长度klen,采用SM2密钥交换协议规定的方式生成本地协商密钥KB。
5.如权利要求4的方法,其特征在于,生成本地协商密钥KB后,包括:
默认与协商对端的密钥协商成功;或者,
根据所述椭圆曲线点的横坐标xV和纵坐标yV,椭圆曲线点RA的横坐标x1和纵坐标y1,椭圆曲线点RB的横坐标x2和纵坐标y2,对端用户信息ZA,本地用户信息ZB,采用SM2密钥交换协议规定的方式计算验证信息SB和验证信息S2,并将验证信息SB发送至协商对端,令协商对端接收到验证信息SB后,采用相同方式生成验证信息SA和验证信息S1,并在确认SB和S1相等时,确定本地至协商对端的密钥协商成功,以及接收协商对端发送的验证信息SA,并在确认SA和S2相等时,确定协商对端至本地的密钥协商成功。
6.一种基于SM2密钥交换协议的密钥协商的装置,其特征在于,包括:
第一控制模块,用于确定本次密钥协商所使用的椭圆曲线参数阶n的取值,并计算所述阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值;
第二控制模块,用于基于所述参数W的取值与协商对端进行密钥协商;
其中,所述第一控制模块计算所述阶n小于或等于2x时,X的最小正整数值时,包括:
第一控制模块计算获取所述阶n的有效比特数m,当阶n的取值大于2m-1的取值时,所述X的最小正整数值为m的当前取值;当阶n的取值小于等于2m-1的取值时,采用设定步长值对m逐次进行减小,每减少一次,将阶n的取值与2m-1的取值进行一次比较,直到前者大于后者为止,此时所述X的最小正整数值为m的最后取值。
7.如权利要求6所述的装置,其特征在于,所述第一控制模块基于获得的X的最小正整数值获得参数W的取值时,判断X的最小正整数值为奇数还是偶数,若为奇数,则将X的最小正整数值除以第一预设参数并进行向下取整后的结果作为参数W的取值;若为偶数,则将X的最小正整数值除以第一预设参数并进行向下取整后再减去第二预设参数后的结果作为参数W的取值。
8.如权利要求6所述的装置,其特征在于,所述第一控制模块基于获得的X的最小正整数值获得参数W的取值时,判断X的最小正整数值为奇数还是偶数,若为奇数,则将X的最小正整数值右移设定位数后的结果作为参数W的取值;若为偶数,则将X的最小正整数值右移设定位数后再减去第三预设参数的结果作为参数W的取值。
9.如权利要求6-8任一项所述的装置,其特征在于,所述第二控制模块基于所述W的取值与协商对端进行密钥协商时,执行以下操作:
接收协商对端发送的对端公钥PA、对端椭圆曲线点RA、对端用户信息ZA,以及获取本地用户信息ZB、本地私钥dB、本地生成的随机数rB、本地生成的椭圆曲线点RB、本地椭圆曲线余因子参数h和协商密钥预期长度klen;
基于已获得的参数W,分别根据椭圆曲线点RA的横坐标x1和椭圆曲线点RB的横坐标x2,采用SM2密钥交换协议规定的方式生成相应的参数和
根据本地椭圆曲线余因子参数h,本地私钥dB,所述参数和对端公钥PA、对端椭圆曲线点RA,本地生成的随机数rB,采用SM2密钥交换协议规定的方式生成椭圆曲线点V,其坐标值为(xV,yV);
根据椭圆曲线点V的横坐标xV和纵坐标yV,对端用户信息ZA,本地用户信息ZB,以及协商密钥预期长度klen,采用SM2密钥交换协议规定的方式生成本地协商密钥KB。
10.如权利要求9的装置,其特征在于,所述第一控制模块生成本地协商密钥KB后,默认与协商对端的密钥协商成功;或者,根据所述椭圆曲线点的横坐标xV和纵坐标yV,椭圆曲线点RA的横坐标x1和纵坐标y1,椭圆曲线点RB的横坐标x2和纵坐标y2,对端用户信息ZA,本地用户信息ZB,采用SM2密钥交换协议规定的方式计算验证信息SB和验证信息S2,并将验证信息SB发送至协商对端,令协商对端接收到验证信息SB后,采用相同方式生成验证信息SA和验证信息S1,并在确认SB和S1相等时,确定本地至协商对端的密钥协商成功,以及接收协商对端发送的验证信息SA,并在确认SA和S2相等时,确定协商对端至本地的密钥协商成功。
11.一种参数生成装置,其特征在于,包括:
确定单元,用于确定本次密钥协商所使用的椭圆曲线参数阶n的取值;
计算单元,用于计算所述阶n小于或等于2x时,X的最小正整数值,并基于获得的X的最小正整数值获得参数W的取值;
其中,所述计算单元计算所述阶n小于或等于2x时,X的最小正整数值时,包括:
计算单元计算获取所述阶n的有效比特数m,当阶n的取值大于2m-1的取值时,所述X的最小正整数值为m的当前取值;当阶n的取值小于等于2m-1的取值时,采用设定步长值对m逐次进行减小,每减少一次,将阶n的取值与2m-1的取值进行一次比较,直到前者大于后者为止,此时所述X的最小正整数值为m的最后取值。
12.如权利要求11所述的装置,其特征在于,所述计算单元基于获得的X的最小正整数值获得参数W的取值时,判断X的最小正整数值为奇数还是偶数,若为奇数,则将X的最小正整数值除以第一预设参数并进行向下取整后的结果作为参数W的取值;若为偶数,则将X的最小正整数值除以第一预设参数并进行向下取整后再减去第二预设参数后的结果作为参数W的取值。
13.如权利要求11所述的装置,其特征在于,所述计算单元基于获得的X的最小正整数值获得参数W的取值时,判断X的最小正整数值为奇数还是偶数,若为奇数,则将X的最小正整数值右移设定位数后的结果作为参数W的取值;若为偶数,则将X的最小正整数值右移设定位数后再减去第三预设参数的结果作为W的取值。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110390564.7A CN102412971B (zh) | 2011-11-30 | 2011-11-30 | 基于sm2密钥交换协议的密钥协商方法及装置 |
PCT/CN2012/085233 WO2013078970A1 (zh) | 2011-11-30 | 2012-11-26 | 基于sm2密钥交换协议的密钥协商方法及装置 |
EP12852494.9A EP2787682B1 (en) | 2011-11-30 | 2012-11-26 | Key negotiation method and apparatus according to sm2 key exchange protocol |
JP2014543759A JP6014678B2 (ja) | 2011-11-30 | 2012-11-26 | Sm2鍵交換プロトコルに基づく鍵交渉方法及び装置 |
US14/361,750 US9313026B2 (en) | 2011-11-30 | 2012-11-26 | Key negotiation method and apparatus according to SM2 key exchange protocol |
KR1020147017887A KR101617561B1 (ko) | 2011-11-30 | 2012-11-26 | Sm2 키 교환 프로토콜 기반의 키 협상 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110390564.7A CN102412971B (zh) | 2011-11-30 | 2011-11-30 | 基于sm2密钥交换协议的密钥协商方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102412971A CN102412971A (zh) | 2012-04-11 |
CN102412971B true CN102412971B (zh) | 2015-04-29 |
Family
ID=45914836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110390564.7A Active CN102412971B (zh) | 2011-11-30 | 2011-11-30 | 基于sm2密钥交换协议的密钥协商方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9313026B2 (zh) |
EP (1) | EP2787682B1 (zh) |
JP (1) | JP6014678B2 (zh) |
KR (1) | KR101617561B1 (zh) |
CN (1) | CN102412971B (zh) |
WO (1) | WO2013078970A1 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102412971B (zh) * | 2011-11-30 | 2015-04-29 | 西安西电捷通无线网络通信股份有限公司 | 基于sm2密钥交换协议的密钥协商方法及装置 |
WO2015062239A1 (zh) * | 2013-11-04 | 2015-05-07 | 华为技术有限公司 | 密钥协商处理方法和装置 |
CN104702566B (zh) * | 2013-12-06 | 2021-08-06 | 苏州海博智能***有限公司 | 一种虚拟设备的授权使用方法及装置 |
US10503510B2 (en) | 2013-12-27 | 2019-12-10 | Intel Corporation | SM3 hash function message expansion processors, methods, systems, and instructions |
WO2015184991A1 (en) * | 2014-06-04 | 2015-12-10 | Jintai Ding | Improvements on cryptographic systems using pairing with errors |
US9317719B2 (en) | 2014-09-04 | 2016-04-19 | Intel Corporation | SM3 hash algorithm acceleration processors, methods, systems, and instructions |
US9658854B2 (en) | 2014-09-26 | 2017-05-23 | Intel Corporation | Instructions and logic to provide SIMD SM3 cryptographic hashing functionality |
EP3373505A1 (en) * | 2017-03-06 | 2018-09-12 | Koninklijke Philips N.V. | Device and method for sharing a matrix for use in a cryptographic protocol |
CN107579811A (zh) * | 2017-07-28 | 2018-01-12 | 广州星海集成电路基地有限公司 | 一种基于sm3密码杂凑算法的硬件优化方法 |
CN107689867B (zh) * | 2017-09-08 | 2019-12-10 | 晋商博创(北京)科技有限公司 | 一种在开放环境下的密钥保护方法和*** |
CN107896147B (zh) * | 2017-12-07 | 2020-07-28 | 福建联迪商用设备有限公司 | 一种基于国密算法协商临时会话密钥的方法及其*** |
CN108566375A (zh) * | 2018-03-12 | 2018-09-21 | 深圳壹账通智能科技有限公司 | 基于区块链的多端间消息通信的方法、终端及存储介质 |
CN109547209B (zh) * | 2018-11-19 | 2020-09-08 | 北京大学 | 一种两方sm2数字签名生成方法 |
CN110730184B (zh) * | 2019-10-22 | 2021-11-05 | 江苏先安科技有限公司 | 一种基于国密sm2算法的新型招投标加解密方法 |
CN111147250B (zh) * | 2019-12-18 | 2022-08-02 | 北京江南天安科技有限公司 | 一种数字签名方法、装置、发送端、接收端及*** |
CN111555879B (zh) * | 2020-07-13 | 2021-01-05 | 南京凯瑞得信息科技有限公司 | 一种卫星通信网管信道报文加解密方法及*** |
CN111953489A (zh) * | 2020-08-31 | 2020-11-17 | 中国电力科学研究院有限公司 | 基于sm2算法的发电单元采集业务的密钥交换设备及方法 |
CN112529313B (zh) * | 2020-12-17 | 2022-12-09 | 中国航空综合技术研究所 | 基于协商策略的智能人机工程设计优化方法 |
CN112688784B (zh) * | 2020-12-23 | 2023-04-11 | 中科美络科技股份有限公司 | 一种数字签名、验证方法、装置及*** |
CN113660087B (zh) * | 2021-07-06 | 2023-09-26 | 浙江传媒学院 | 一种基于有限域的sm9标识密码算法硬件实现*** |
CN113612799B (zh) * | 2021-08-25 | 2022-11-18 | 中国银行股份有限公司 | 一种基于sm2算法的区块链哈希加密方法及装置 |
CN114329518A (zh) * | 2021-12-10 | 2022-04-12 | 奇安信科技集团股份有限公司 | 软件密码模块账号的加密和解密方法及装置 |
CN114070561A (zh) * | 2022-01-17 | 2022-02-18 | 工业信息安全(四川)创新中心有限公司 | 一种基于sm2算法的零知识证明方法和*** |
CN114338047A (zh) * | 2022-03-08 | 2022-04-12 | 科大天工智能装备技术(天津)有限公司 | 基于国密的区块链工业数据加密方法、装置及存储介质 |
CN115174086B (zh) * | 2022-07-11 | 2023-06-27 | 三未信安科技股份有限公司 | 基于sm2椭圆曲线的二分之一概率密钥协商方法 |
CN115499832B (zh) * | 2022-11-14 | 2023-01-17 | 济南职业学院 | 一种工业无线通信安全方法 |
CN116032490B (zh) * | 2023-01-09 | 2023-10-03 | 郑州轻工业大学 | 一种基于改进SM2算法的Fabric区块链构建方法 |
CN117041961B (zh) * | 2023-09-05 | 2024-06-11 | 北京电子科技学院 | 基于sm2无证书的车联网终端认证方法及*** |
CN117436043A (zh) * | 2023-12-20 | 2024-01-23 | 鼎铉商用密码测评技术(深圳)有限公司 | 待执行文件的来源验证方法、设备以及可读存储介质 |
CN117811737A (zh) * | 2023-12-29 | 2024-04-02 | 北京海泰方圆科技股份有限公司 | 一种数据处理方法、装置及电子设备 |
CN117811730B (zh) * | 2023-12-29 | 2024-06-25 | 北京天融信网络安全技术有限公司 | 国密密钥协商方法、装置、计算设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111266A (zh) * | 2009-12-28 | 2011-06-29 | 航天信息股份有限公司 | 基于椭圆曲线的组密钥产生方法 |
CN102111681A (zh) * | 2009-12-24 | 2011-06-29 | 航天信息股份有限公司 | 一种用于数字电视广播条件接收***的密钥体系 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2542556C (en) | 2005-06-03 | 2014-09-16 | Tata Consultancy Services Limited | An authentication system executing an elliptic curve digital signature cryptographic process |
CN100414492C (zh) * | 2005-11-04 | 2008-08-27 | 北京浦奥得数码技术有限公司 | 一种椭圆曲线密码***及实现方法 |
CN101291214B (zh) | 2007-04-19 | 2011-08-10 | 华为技术有限公司 | 一种生成组密钥的方法、***和设备 |
CA2746830C (en) | 2008-12-16 | 2016-06-07 | Daniel R. L. Brown | Acceleration of key agreement protocols |
CN102412971B (zh) | 2011-11-30 | 2015-04-29 | 西安西电捷通无线网络通信股份有限公司 | 基于sm2密钥交换协议的密钥协商方法及装置 |
-
2011
- 2011-11-30 CN CN201110390564.7A patent/CN102412971B/zh active Active
-
2012
- 2012-11-26 WO PCT/CN2012/085233 patent/WO2013078970A1/zh active Application Filing
- 2012-11-26 KR KR1020147017887A patent/KR101617561B1/ko active IP Right Grant
- 2012-11-26 US US14/361,750 patent/US9313026B2/en active Active
- 2012-11-26 EP EP12852494.9A patent/EP2787682B1/en active Active
- 2012-11-26 JP JP2014543759A patent/JP6014678B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102111681A (zh) * | 2009-12-24 | 2011-06-29 | 航天信息股份有限公司 | 一种用于数字电视广播条件接收***的密钥体系 |
CN102111266A (zh) * | 2009-12-28 | 2011-06-29 | 航天信息股份有限公司 | 基于椭圆曲线的组密钥产生方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6014678B2 (ja) | 2016-10-25 |
US9313026B2 (en) | 2016-04-12 |
KR101617561B1 (ko) | 2016-05-02 |
JP2015500582A (ja) | 2015-01-05 |
US20150124970A1 (en) | 2015-05-07 |
EP2787682A4 (en) | 2015-09-30 |
EP2787682A1 (en) | 2014-10-08 |
EP2787682B1 (en) | 2018-09-05 |
CN102412971A (zh) | 2012-04-11 |
WO2013078970A1 (zh) | 2013-06-06 |
KR20140105504A (ko) | 2014-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102412971B (zh) | 基于sm2密钥交换协议的密钥协商方法及装置 | |
EP3035590B1 (en) | Method and device for generating digital signature | |
JP5373026B2 (ja) | デジタル署名と公開鍵の促進された検証 | |
CN110247757B (zh) | 基于国密算法的区块链处理方法、装置及*** | |
CN109246129B (zh) | 一种可验证客户端身份的sm2协同签名方法及*** | |
EP2503728B1 (en) | Incorporating data into public-key reconstruction data of an ecqv implicit certificate | |
CN109450640B (zh) | 基于sm2的两方签名方法及*** | |
CN111130804B (zh) | 一种基于sm2算法的协同签名方法及装置、***、介质 | |
CN111010277B (zh) | 密钥交换方法、装置和存储介质、计算装置 | |
US20120243680A1 (en) | Incorporating data into an ecdsa signature component | |
CA2769995A1 (en) | Issuing implicit certificates | |
CN112653554A (zh) | 一种签名方法、***、设备及可读存储介质 | |
Yang et al. | Quantum public-key cryptosystems based on induced trapdoor one-way transformations | |
WO2022116176A1 (zh) | 数字签名的生成方法、装置和服务器 | |
CN110943826B (zh) | 一种基于sm2算法的拆分密钥签名方法与*** | |
US11616994B2 (en) | Embedding information in elliptic curve base point | |
CN114338047A (zh) | 基于国密的区块链工业数据加密方法、装置及存储介质 | |
CN113872767A (zh) | 一种基于ecdsa算法的两方协同签名方法和装置 | |
CN1464678A (zh) | 基于半群上离散对数问题的数字签名及验证的方法 | |
CN111030823A (zh) | 超轻量级多次签名的数据处理方法、***、物联网平台 | |
CN115442052B (zh) | 一种协同签名方法、***、设备及计算机可读存储介质 | |
Zheng et al. | Security and performance of group key agreement protocols | |
CN115426188A (zh) | 基于两方联合生成加密方案参数的加密方法及相关装置 | |
JP5295048B2 (ja) | 情報共有システム、方法及びプログラム | |
JP2008054240A (ja) | バッチ証明検証方法、証明装置、検証装置、バッチ証明検証システム並びにプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |