CN109818741A - 一种基于椭圆曲线的解密计算方法及装置 - Google Patents

一种基于椭圆曲线的解密计算方法及装置 Download PDF

Info

Publication number
CN109818741A
CN109818741A CN201711173825.3A CN201711173825A CN109818741A CN 109818741 A CN109818741 A CN 109818741A CN 201711173825 A CN201711173825 A CN 201711173825A CN 109818741 A CN109818741 A CN 109818741A
Authority
CN
China
Prior art keywords
decryption
private key
terminal
ciphertext
key component
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.)
Granted
Application number
CN201711173825.3A
Other languages
English (en)
Other versions
CN109818741B (zh
Inventor
宁红宙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Aisino Corp
Original Assignee
Aisino Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Aisino Corp filed Critical Aisino Corp
Priority to CN201711173825.3A priority Critical patent/CN109818741B/zh
Publication of CN109818741A publication Critical patent/CN109818741A/zh
Application granted granted Critical
Publication of CN109818741B publication Critical patent/CN109818741B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及加解密技术领域,特别涉及一种基于椭圆曲线的解密计算方法及装置。该方法为:第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,公钥为根据第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;将密文和计算结果发送至第二解密终端,以触发第二解密终端采用第二私钥分量对计算结果进行解密计算,计算出相应的明文和校验码,并在判定校验码与密文中的校验码相同时,确定解密成功,并将计算出的明文发送至第一解密终端;接收计算出的明文,确定解密成功。

Description

一种基于椭圆曲线的解密计算方法及装置
技术领域
本发明涉及加解密技术领域,特别涉及一种基于椭圆曲线的解密计算方法及装置。
背景技术
随着智能终端技术、移动互联网技术和云计算技术的不断发展,越来越多的互联网络应用迁往移动智能终端上,如,用于手机终端的支付业务等,使得用户在移动过程中,能够随时随地的使用移动智能终端进行购物、支付、转账汇款等。但随着也带来很多的安全风险隐患。
在传统的互联网络中,针对在移动智能终端上进行的购物、支付、转账汇款等敏感操作的应用,通常需要加密、签名等密码运算来保证信息传输和处理的过程的安全。而密码运算所需要的非临时性密钥通常都保存在密钥不可导出的密码运算设备中,如,USBKEY、IC卡、密码卡等,以使得密钥在产生、加解密计算过程中不会出现在用户所用的电脑内存中,充分保障了应用使用密码操作的安全性。
然而,当前的移动智能终端是为了方便用户携带而设置的,若用户在使用移动智能终端进行密码运算时,还需插入密码运算设备,那么就失去了移动智能终端便携性的意义。目前,移动智能终端上并未集成有密钥不可导出的密码运算设备,那么,移动智能终端进行密码运算时所需的用户的密钥,如,加密密钥,签名密钥等,只能存储在移动智能终端的存储卡上,这样,就增大了用户密钥被非法人员拷贝和非法获取的风险,从而带来很大的安全隐患,进而给用户带来不必要的损失。
有鉴于此,需要设计一种新的基于椭圆曲线的解密计算方法及装置,以弥补现有技术中存在的缺陷和不足之处。
发明内容
本发明实施例的目的是提供一种基于椭圆曲线的解密计算方法及装置,用以解决现有技术中存在的用户私钥存储在移动智能终端的存储卡上,从而被非法人员拷贝和/或获取的可能性较大,进而导致用户私钥安全性不高的问题。
本发明实施例中提供的具体技术方案如下:
一种基于椭圆曲线的解密计算方法,包括:
第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
第一解密终端将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至第一解密终端;
第一解密终端接收所述计算出的明文,确定解密成功。
较佳的,在第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算之前,进一步包括:
第一解密终端根据所述第一私钥分量计算出相应的公钥分量,并发送给第二解密终端,以触发第二解密终端根据所述第二私钥分量和所述公钥分量计算出相应的公钥,并发送给第一解密终端。
较佳的,第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,具体包括:
从密文C中提取出比特串C1,并将C1的数据类型转换为在椭圆曲线上的点C1的坐标,并计算所述第一私钥分量dA和C1的点乘,表示为C1’,其中,C1’=[dA]C1,dA为正整数,密文C包括椭圆曲线上的点C1,校验码C2和密文内容C3。
较佳的,触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,具体包括:
触发第二解密终端执行以下操作:
第二解密终端将第二私钥分量dB和C1’的点乘,作为椭圆曲线上的点坐标[dB]C1’=(x2,y2),并将坐标x2,y2的数据类型转换为比特串;
第二解密终端采用密钥派生函数对x2与y2的拼接进行处理,得到t,其中,t=KDF(x2‖y2,klen),x2‖y2表示x2与y2的拼接,klen为C3的比特长度;
第二解密终端从密文中提取出C3,并将C3和t做异或处理,得到解密后的明文M’,其中,M’=C3⊕t;
第二解密终端采用密码杂凑函数对x2,M’和y2的拼接进行相应处理,计算出验证码u,其中,u=Hash(x2‖M’‖y2),x2‖M’‖y2为x2,M’和y2的拼接。
一种基于椭圆曲线的解密计算方法,包括:
第二解密终端接收第一解密终端发送的所述密文和计算结果,其中,所述计算结果为第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算后得到的,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功;
第二解密终端将所述计算出的明文发送至第一解密终端,以使得第一解密终端在接收到所述计算出的明文后,确定解密成功。
一种基于椭圆曲线的解密计算装置,包括:
计算单元,用于采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
发送单元,用于将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至所述装置;
接收单元,用于接收所述计算出的明文,确定解密成功。
较佳的,在采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算之前,所述计算单元进一步用于:
根据所述第一私钥分量计算出相应的公钥分量,并发送给第二解密终端,以触发第二解密终端根据所述第二私钥分量和所述公钥分量计算出相应的公钥,并发送给所述装置。
较佳的,在采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果时,所述计算单元具体用于:
从密文C中提取出比特串C1,并将C1的数据类型转换为在椭圆曲线上的点C1的坐标,并计算所述第一私钥分量dA和C1的点乘,表示为C1’,其中,C1’=[dA]C1,dA为正整数,密文C包括椭圆曲线上的点C1,校验码C2和密文内容C3。
较佳的,在触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码时,所述发送单元具体用于:
触发第二解密终端执行以下操作:
第二解密终端将第二私钥分量dB和C1’的点乘,作为椭圆曲线上的点坐标[dB]C1’=(x2,y2),并将坐标x2,y2的数据类型转换为比特串;
第二解密终端采用密钥派生函数对x2与y2的拼接进行处理,得到t,其中,t=KDF(x2‖y2,klen),x2‖y2表示x2与y2的拼接,klen为C3的比特长度;
第二解密终端从密文中提取出C3,并将C3和t做异或处理,得到解密后的明文M’,其中,M’=C3⊕t;
第二解密终端采用密码杂凑函数对x2,M’和y2的拼接进行相应处理,计算出验证码u,其中,u=Hash(x2‖M’‖y2),x2‖M’‖y2为x2,M’和y2的拼接。
一种基于椭圆曲线的解密计算装置,包括:
接收单元,用于接收第一解密终端发送的密文和计算结果,其中,所述计算结果为第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算后得到的,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
计算单元,用于采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功;
发送单元,用于将所述计算出的明文发送至第一解密终端,以使得第一解密终端在接收到所述计算出的明文后,确定解密成功。
本发明有益效果如下:
综上所述,本发明实施例中,解密终端在对密文进行解密计算的过程中,第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;第一解密终端将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至第一解密终端;第一解密终端接收所述计算出的明文,确定解密成功。
采用上述方法,将各个解密终端自身产生相应的私钥分量,并分别存储在本地,且任何一方解密终端均无法仅根据本地存储的私钥分量推算出另一解密终端本地存储的私钥分量,那么,在采用私钥进行解密时,需要两个私钥分量共同做计算才能完成解密操作,克服了用户私钥单一存储一个解密终端上而易被他人非法获取的风险,从而提升了用户密钥的安全性。
附图说明
图1为本发明实施例中,一种基于椭圆曲线的解密计算方法的详细流程图;
图2为本发明实施例中,解密终端生成公钥的流程图;
图3为本发明实施例中,另一种基于椭圆曲线的解密计算方法的详细流程图;
图4为本发明实施例中,解密终端进行解密计算的流程图;
图5为本发明实施例中,第一解密终端的结构示意图;
图6为本发明实施例中,第二解密终端的结构示意图。
具体实施方式
为了解决现有技术中存在的用户私钥存储在移动智能终端的存储卡上,从而被非法人员拷贝和/或获取的可能性较大,进而导致用户私钥安全性不高的问题,本发明实施例中提供了一种新的基于椭圆曲线的解密计算方法及装置,该方法为:第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;第一解密终端将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至第一解密终端;第一解密终端接收所述计算出的明文,确定解密成功。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面将通过具体实施例对本发明的方案进行详细描述,当然,本发明并不限于以下实施例。
参阅图1所示,本发明实施例中,一种基于椭圆曲线的解密计算方法的详细流程如下:
步骤100:第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,上述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,上述公钥为根据上述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的。
实际应用中,在执行步骤100之前,第一解密终端还需要进一步的根据上述第一私钥分量计算出相应的公钥分量,并发送给第二解密终端,以触发第二解密终端根据上述第二私钥分量和上述公钥分量计算出相应的公钥,并发送给第一解密终端。
本发明实施例中,各个解密终端预先通过随机数发生器产生自己的私钥分量,并分别存储至各个解密终端本地。
具体的,本发明实施例中,解密终端可以包括第一解密终端和第二解密终端,那么,可以将第一解密终端产生的私钥分量定义为第一私钥分量,第二解密终端产生的私钥分量定义为第二私钥分量,较佳的,第一解密终端将第一私钥分量存储在本地,第二解密终端将第二私钥分量存储在本地,本发明实施例中,为了更好的保证用户使用私钥的安全性,第一解密终端和第二解密终端中有一方为不需要满足便携性要求的解密终端(如,服务器端),这样,就能在服务器端采用各种安全技术和手段,以保障存储在服务器端本地的私钥分量的安全性,相应的提高用户使用私钥的安全性。
例如,假设用户手机通过随机数发生器产生的私钥分量11存储在用户手机本地,服务器端通过随机数发生器产生的私钥分量12存储在服务器端本地,且用户手机和服务器端中任何一方均无法仅根据自身存储的私钥分量推算出另一方存储的私钥分量,用户手机和服务器端可通过私钥分量11和私钥分量12共同计算出相应的公钥1,并公开发布,那么,加密终端在确定需要向用户发送消息时,利用公钥1采用椭圆曲线公钥加密算法对消息进行加密处理,得到相应的密文,并将密文发送给用户手机,用户手机在接收到密文后,若需要对密文进行解密计算,则需要与服务器端通过私钥分量11和私钥分量12共同完成解密计算,进一步的,由于服务器端不需要满足便携性要求,故可以针对存储在服务器端的私钥分量12,采用各种安全技术和手段,以保障私钥分量12的安全性,这样,就相应的提升了用户手机使用私钥的安全性。
由于在非对称密钥加密系统中,需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥(本发明实施例中简称为公钥),另一个由用户自己秘密保存,即私用密钥(本发明实施例中简称为私钥),信息发送者用公钥去加密,而信息接收者则用私钥去解密。
实际应用中,椭圆曲线参数采用国家密码管理局规定的SM2曲线参数,设椭圆曲线为E(Fq),其中,E为有限域上由a和b定义的一条椭圆曲线,Fq包含q个元素的素域,E(Fq)为Fq上椭圆曲线E所有有理点(包括无穷远点O)组成的集合,G为椭圆曲线E上的一个基点,其阶为n,n为素数,用[k]P表示椭圆上的点乘运算,k为正整数,P为椭圆曲线上的一个点。
那么,本发明实施例中,第一解密终端和第二解密终端需要根据第一私钥分量和第二私钥分量预先计算出相应的公钥。具体的,参阅图2所示,本发明实施例中,解密终端生成公钥的流程图。假设第一解密终端通过随机数发生器产生的,并存储在本地的第一私钥分量为dA,第二解密终端通过随机数发生器产生的,并存储在本地的第二私钥分量为dB,其中,dA,dB∈[1,n-1],第一解密终端使用第一私钥分量和基点G计算第一解密终端相对应的公钥分量PA,PA=[dA]G,第一解密终端将PA发送至第二解密终端,第二解密终端根据第二私钥分量dB和PA计算出相应的公钥PAB,较佳的,本发明实施例中,公钥PAB为第二私钥分量dB与公钥分量PA的点乘,其中,PAB=[dB]PA,第二解密终端将公钥PAB发送给第一解密终端,并公开发布公钥PAB
那么,加密终端在确定有消息M发送给解密终端,且需要进行加密计算时,可采用解密终端公开发布的公钥PAB对消息M进行加密处理,具体的,可以采用基于椭圆曲线公钥加密算法对消息M进行加密处理。加密算法流程如下:设需要发送的消息为比特串M,klen为M的比特长度,用随机数发送器产生随机数k∈[1,n-1];计算椭圆曲线点C1=[k]G,并将C1的数据类型转换为比特串;计算椭圆曲线点[k]PAB=(x2,y2),并将x2,y2的数据类型转换为比特串;计算校验码C2=Hash(x2‖M‖y2);计算t=KDF(x2‖y2,klen);计算密文内容C3=M⊕t;输出密文C=C1‖C2‖C3。加密终端将密文C发送给解密终端,解密终端对接收到的密文C进行解密计算。
具体的,在执行步骤100时,第一解密终端从密文C中提取出比特串C1,并将C1的数据类型转换为在椭圆曲线上的点C1的坐标,并计算上述第一私钥分量dA和C1的点乘,表示为C1’,其中,C1’=[dA]C1,dA为正整数,密文C包括椭圆曲线上的点C1,校验码C2和密文内容C3
步骤110:第一解密终端将上述密文和上述计算结果发送至第二解密终端,以触发第二解密终端采用上述第二私钥分量对上述计算结果进行解密计算,计算出相应的明文和校验码,并判断上述校验码与上述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将上述计算出的明文发送至第一解密终端。
实际应用中,第一解密终端在对密文C完成自身的解密计算后,将密文C和C1’发送至第二解密终端,以触发第二解密终端根据接收到的密文C和C1’完成后续的解密计算。
具体的,第二解密终端在接收到第一解密终端发送的密文C和计算结果C1’后,将第二私钥分量dB和C1’的点乘,作为椭圆曲线上的点坐标[dB]C1’=(x2,y2),并将坐标x2,y2的数据类型转换为比特串;采用密钥派生函数对x2与y2的拼接进行处理,得到t,其中,t=KDF(x2‖y2,klen),x2‖y2表示x2与y2的拼接,klen为C3的比特长度;从密文中提取出C3,并将C3和t做异或处理,得到解密后的明文M’,其中,M’=C3⊕t;采用密码杂凑函数对x2,M’和y2的拼接进行相应处理,计算出验证码u,其中,u=Hash(x2‖M’‖y2),x2‖M’‖y2为x2,M’和y2的拼接;从密文C中提取出比特串C2,并判断u与C2是否相同,并在判定结果为是时,确定解密成功,并将明文M’发送至第一解密终端。
第二解密终端计算(x2,y2)的过程为:
[dB]C1’=[dA×dB]C1=[dA×dB×k]C1=[k]PAB=(x2,y2)。
步骤120:第一解密终端接收上述计算出的明文,确定解密成功。
具体的,第一解密终端在接收到第二解密终端发送的明文M’后,确定解密成功。
参阅图3所示,本发明实施例中,一种基于椭圆曲线的解密计算方法的详细流程如下:
步骤300:第二解密终端接收第一解密终端发送的上述密文和计算结果,其中,上述计算结果为第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算后得到的,上述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,上述公钥为根据上述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的。
步骤310:第二解密终端采用上述第二私钥分量对上述计算结果进行解密计算,计算出相应的明文和校验码,并判断上述校验码与上述密文中的校验码是否相同,并在判定结果为是时,确定解密成功。
步骤320:第二解密终端将上述计算出的明文发送至第一解密终端,以使得第一解密终端在接收到上述计算出的明文后,确定解密成功。
下面采用具体的应用场景对上述实施例作进一步详细说明,参阅图4所示,本发明实施例中,一种基于椭圆曲线的解密计算方法的具体流程如下:
第一解密终端为用户手机,本地存储有第一私钥分量,第二解密终端为与用户手机相连的服务器端,本地存储有第二私钥分量,那么,用户手机在接收到加密终端发送的密文C后,从密文C中提取出C1,并采用本地存储的第一私钥分量和C1计算出C1’;用户手机将密文C和C1’发送至服务器端;服务器端在接收到C和C1’后,采用存储在本地的第二私钥分量,C和C1’计算(x2,y2),t,M’和u,并从密文C中提取出C2,以及判断u和C2是否相同,若判定u=C2,则确定解密成功,将M’发送至用户手机。
基于上述实施例,参阅图5所示,本发明实施例中,一种基于椭圆曲线的解密计算装置(如,第一解密终端),至少包括计算单元50,发送单元51和接收单元52,其中,
计算单元50,用于采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
发送单元51,用于将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至所述装置;
接收单元52,用于接收所述计算出的明文,确定解密成功。
较佳的,在采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算之前,所述计算单元50进一步用于:
根据所述第一私钥分量计算出相应的公钥分量,并发送给第二解密终端,以触发第二解密终端根据所述第二私钥分量和所述公钥分量计算出相应的公钥,并发送给所述装置。
较佳的,在采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果时,所述计算单元50具体用于:
从密文C中提取出比特串C1,并将C1的数据类型转换为在椭圆曲线上的点C1的坐标,并计算所述第一私钥分量dA和C1的点乘,表示为C1’,其中,C1’=[dA]C1,dA为正整数,密文C包括椭圆曲线上的点C1,校验码C2和密文内容C3。
较佳的,在触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码时,所述发送单元51具体用于:
触发第二解密终端执行以下操作:
第二解密终端将第二私钥分量dB和C1’的点乘,作为椭圆曲线上的点坐标[dB]C1’=(x2,y2),并将坐标x2,y2的数据类型转换为比特串;
第二解密终端采用密钥派生函数对x2与y2的拼接进行处理,得到t,其中,t=KDF(x2‖y2,klen),x2‖y2表示x2与y2的拼接,klen为C3的比特长度;
第二解密终端从密文中提取出C3,并将C3和t做异或处理,得到解密后的明文M’,其中,M’=C3⊕t;
第二解密终端采用密码杂凑函数对x2,M’和y2的拼接进行相应处理,计算出验证码u,其中,u=Hash(x2‖M’‖y2),x2‖M’‖y2为x2,M’和y2的拼接。
基于上述实施例,参阅图6所示,本发明实施例中,一种基于椭圆曲线的解密计算装置(如,第二解密终端),至少包括接收单元60,计算单元61和发送单元62,其中,
接收单元60,用于接收第一解密终端发送的密文和计算结果,其中,所述计算结果为第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算后得到的,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
计算单元61,用于采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功;
发送单元62,用于将所述计算出的明文发送至第一解密终端,以使得第一解密终端在接收到所述计算出的明文后,确定解密成功。
综上所述,本发明实施例中,解密终端在对密文进行解密计算的过程中,第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;第一解密终端将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至第一解密终端;第一解密终端接收所述计算出的明文,确定解密成功。
采用上述方法,将各个解密终端自身产生相应的私钥分量,并分别存储在本地,且任何一方解密终端均无法仅根据本地存储的私钥分量推算出另一解密终端本地存储的私钥分量,那么,在采用私钥进行解密时,需要两个私钥分量共同做计算才能完成解密操作,克服了用户私钥单一存储一个解密终端上而易被他人非法获取的风险,从而提升了用户密钥的安全性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种基于椭圆曲线的解密计算方法,其特征在于,包括:
第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
第一解密终端将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至第一解密终端;
第一解密终端接收所述计算出的明文,确定解密成功。
2.如权利要求1所述的方法,其特征在于,在第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算之前,进一步包括:
第一解密终端根据所述第一私钥分量计算出相应的公钥分量,并发送给第二解密终端,以触发第二解密终端根据所述第二私钥分量和所述公钥分量计算出相应的公钥,并发送给第一解密终端。
3.如权利要求1或2所述的方法,其特征在于,第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,具体包括:
从密文C中提取出比特串C1,并将C1的数据类型转换为在椭圆曲线上的点C1的坐标,并计算所述第一私钥分量dA和C1的点乘,表示为C1’,其中,C1’=[dA]C1,dA为正整数,密文C包括椭圆曲线上的点C1,校验码C2和密文内容C3。
4.如权利要求3所述的方法,其特征在于,触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,具体包括:
触发第二解密终端执行以下操作:
第二解密终端将第二私钥分量dB和C1’的点乘,作为椭圆曲线上的点坐标[dB]C1’=(x2,y2),并将坐标x2,y2的数据类型转换为比特串;
第二解密终端采用密钥派生函数对x2与y2的拼接进行处理,得到t,其中,t=KDF(x2‖y2,klen),x2‖y2表示x2与y2的拼接,klen为C3的比特长度;
第二解密终端从密文中提取出C3,并将C3和t做异或处理,得到解密后的明文M’,其中,M’=C3⊕t;
第二解密终端采用密码杂凑函数对x2,M’和y2的拼接进行相应处理,计算出验证码u,其中,u=Hash(x2‖M’‖y2),x2‖M’‖y2为x2,M’和y2的拼接。
5.一种基于椭圆曲线的解密计算方法,其特征在于,包括:
第二解密终端接收第一解密终端发送的所述密文和计算结果,其中,所述计算结果为第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算后得到的,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功;
第二解密终端将所述计算出的明文发送至第一解密终端,以使得第一解密终端在接收到所述计算出的明文后,确定解密成功。
6.一种基于椭圆曲线的解密计算装置,其特征在于,包括:
计算单元,用于采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果,其中,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
发送单元,用于将所述密文和所述计算结果发送至第二解密终端,以触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功,并将所述计算出的明文发送至所述装置;
接收单元,用于接收所述计算出的明文,确定解密成功。
7.如权利要求6所述的装置,其特征在于,在采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算之前,所述计算单元进一步用于:
根据所述第一私钥分量计算出相应的公钥分量,并发送给第二解密终端,以触发第二解密终端根据所述第二私钥分量和所述公钥分量计算出相应的公钥,并发送给所述装置。
8.如权利要求6或7所述的装置,其特征在于,在采用存储在所述装置本地的第一私钥分量对接收到的密文进行解密计算,得到相应的计算结果时,所述计算单元具体用于:
从密文C中提取出比特串C1,并将C1的数据类型转换为在椭圆曲线上的点C1的坐标,并计算所述第一私钥分量dA和C1的点乘,表示为C1’,其中,C1’=[dA]C1,dA为正整数,密文C包括椭圆曲线上的点C1,校验码C2和密文内容C3。
9.如权利要求8所述的装置,其特征在于,在触发第二解密终端采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码时,所述发送单元具体用于:
触发第二解密终端执行以下操作:
第二解密终端将第二私钥分量dB和C1’的点乘,作为椭圆曲线上的点坐标[dB]C1’=(x2,y2),并将坐标x2,y2的数据类型转换为比特串;
第二解密终端采用密钥派生函数对x2与y2的拼接进行处理,得到t,其中,t=KDF(x2‖y2,klen),x2‖y2表示x2与y2的拼接,klen为C3的比特长度;
第二解密终端从密文中提取出C3,并将C3和t做异或处理,得到解密后的明文M’,其中,M’=C3⊕t;
第二解密终端采用密码杂凑函数对x2,M’和y2的拼接进行相应处理,计算出验证码u,其中,u=Hash(x2‖M’‖y2),x2‖M’‖y2为x2,M’和y2的拼接。
10.一种基于椭圆曲线的解密计算装置,其特征在于,包括:
接收单元,用于接收第一解密终端发送的密文和计算结果,其中,所述计算结果为第一解密终端采用存储在本地的第一私钥分量对接收到的密文进行解密计算后得到的,所述密文为加密终端利用公钥采用椭圆曲线加密算法对明文进行加密后得到的,所述公钥为根据所述第一私钥分量和存储在第二解密终端本地的第二私钥分量确定的;
计算单元,用于采用所述第二私钥分量对所述计算结果进行解密计算,计算出相应的明文和校验码,并判断所述校验码与所述密文中的校验码是否相同,并在判定结果为是时,确定解密成功;
发送单元,用于将所述计算出的明文发送至第一解密终端,以使得第一解密终端在接收到所述计算出的明文后,确定解密成功。
CN201711173825.3A 2017-11-22 2017-11-22 一种基于椭圆曲线的解密计算方法及装置 Active CN109818741B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711173825.3A CN109818741B (zh) 2017-11-22 2017-11-22 一种基于椭圆曲线的解密计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711173825.3A CN109818741B (zh) 2017-11-22 2017-11-22 一种基于椭圆曲线的解密计算方法及装置

Publications (2)

Publication Number Publication Date
CN109818741A true CN109818741A (zh) 2019-05-28
CN109818741B CN109818741B (zh) 2022-06-07

Family

ID=66601144

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711173825.3A Active CN109818741B (zh) 2017-11-22 2017-11-22 一种基于椭圆曲线的解密计算方法及装置

Country Status (1)

Country Link
CN (1) CN109818741B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110247752A (zh) * 2019-07-02 2019-09-17 中山大学 基于椭圆曲线加密的LoRa混沌通信系统及其实现方法
CN110535873A (zh) * 2019-09-16 2019-12-03 北京数字认证股份有限公司 应用于数据协同加密系统的加密方法、解密方法
CN112118254A (zh) * 2020-09-16 2020-12-22 许永宾 一种物联网智能终端设备隐私数据防护系统
CN112131596A (zh) * 2020-09-30 2020-12-25 北京海泰方圆科技股份有限公司 加解密方法、设备及存储介质
CN112713989A (zh) * 2019-10-25 2021-04-27 航天信息股份有限公司 一种解密方法及装置
CN112737783A (zh) * 2019-10-28 2021-04-30 航天信息股份有限公司 一种基于sm2椭圆曲线的解密方法及设备
CN113098678A (zh) * 2019-12-23 2021-07-09 中移(苏州)软件技术有限公司 信息处理方法、终端、中心设备、服务器及存储介质
CN117176351A (zh) * 2023-11-02 2023-12-05 北京密码云芯科技有限公司 数据传输处理方法、系统、计算机设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1444168A (zh) * 2003-04-23 2003-09-24 浙江大学 一种椭圆曲线上基于公钥证书的概率型非对称加密方法
CN1505306A (zh) * 2002-11-29 2004-06-16 海南信安数据系统有限公司 椭圆曲线加密解密方法和装置
CN101079701A (zh) * 2006-05-22 2007-11-28 北京华大信安科技有限公司 高安全性的椭圆曲线加解密方法和装置
CN101166088A (zh) * 2007-09-27 2008-04-23 航天信息股份有限公司 基于用户身份标识的加解密方法
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和系统
CN104917611A (zh) * 2014-03-13 2015-09-16 航天信息股份有限公司 用于云计算的数据加解密处理方法和装置
CN106961336A (zh) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 一种基于sm2算法的密钥分量托管方法和系统
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN109068322A (zh) * 2018-08-22 2018-12-21 航天信息股份有限公司 解密方法、系统、移动终端、服务器及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1505306A (zh) * 2002-11-29 2004-06-16 海南信安数据系统有限公司 椭圆曲线加密解密方法和装置
CN1444168A (zh) * 2003-04-23 2003-09-24 浙江大学 一种椭圆曲线上基于公钥证书的概率型非对称加密方法
CN101079701A (zh) * 2006-05-22 2007-11-28 北京华大信安科技有限公司 高安全性的椭圆曲线加解密方法和装置
CN101166088A (zh) * 2007-09-27 2008-04-23 航天信息股份有限公司 基于用户身份标识的加解密方法
CN104917611A (zh) * 2014-03-13 2015-09-16 航天信息股份有限公司 用于云计算的数据加解密处理方法和装置
CN104243456A (zh) * 2014-08-29 2014-12-24 中国科学院信息工程研究所 适用于云计算的基于sm2算法的签名及解密方法和系统
CN106961336A (zh) * 2017-04-18 2017-07-18 北京百旺信安科技有限公司 一种基于sm2算法的密钥分量托管方法和系统
CN107196763A (zh) * 2017-07-06 2017-09-22 数安时代科技股份有限公司 Sm2算法协同签名及解密方法、装置与系统
CN109068322A (zh) * 2018-08-22 2018-12-21 航天信息股份有限公司 解密方法、系统、移动终端、服务器及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
WEI ZHANG ECT.: "A Lightweight Anonymous Mutual Authentication with Key Agreement Protocol on ECC", 《2017 IEEE TRUSTCOM/BIGDATASE/ICESS》 *
李方伟,何成勇: "基于椭圆曲线密码组合公钥的ad hoc密钥管理方案", 《通信技术》 *
郭伟青等: "一种基于素域椭圆曲线的公钥密码方案的设计", 《计算机工程与科学》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110247752A (zh) * 2019-07-02 2019-09-17 中山大学 基于椭圆曲线加密的LoRa混沌通信系统及其实现方法
CN110247752B (zh) * 2019-07-02 2021-09-07 中山大学 基于椭圆曲线加密的LoRa混沌通信系统及其实现方法
CN110535873B (zh) * 2019-09-16 2021-11-05 北京数字认证股份有限公司 应用于数据协同加密系统的加密方法、解密方法
CN110535873A (zh) * 2019-09-16 2019-12-03 北京数字认证股份有限公司 应用于数据协同加密系统的加密方法、解密方法
CN112713989B (zh) * 2019-10-25 2023-01-24 航天信息股份有限公司 一种解密方法及装置
CN112713989A (zh) * 2019-10-25 2021-04-27 航天信息股份有限公司 一种解密方法及装置
CN112737783B (zh) * 2019-10-28 2022-08-12 航天信息股份有限公司 一种基于sm2椭圆曲线的解密方法及设备
CN112737783A (zh) * 2019-10-28 2021-04-30 航天信息股份有限公司 一种基于sm2椭圆曲线的解密方法及设备
CN113098678B (zh) * 2019-12-23 2022-06-03 中移(苏州)软件技术有限公司 信息处理方法、终端、中心设备、服务器及存储介质
CN113098678A (zh) * 2019-12-23 2021-07-09 中移(苏州)软件技术有限公司 信息处理方法、终端、中心设备、服务器及存储介质
CN112118254A (zh) * 2020-09-16 2020-12-22 许永宾 一种物联网智能终端设备隐私数据防护系统
CN112131596A (zh) * 2020-09-30 2020-12-25 北京海泰方圆科技股份有限公司 加解密方法、设备及存储介质
CN117176351A (zh) * 2023-11-02 2023-12-05 北京密码云芯科技有限公司 数据传输处理方法、系统、计算机设备及存储介质
CN117176351B (zh) * 2023-11-02 2024-02-06 北京密码云芯科技有限公司 数据传输处理方法、系统、计算机设备及存储介质

Also Published As

Publication number Publication date
CN109818741B (zh) 2022-06-07

Similar Documents

Publication Publication Date Title
CN109818741A (zh) 一种基于椭圆曲线的解密计算方法及装置
CN106961336B (zh) 一种基于sm2算法的密钥分量托管方法和系统
CN105024994B (zh) 无对运算的安全无证书混合签密方法
CN102170357B (zh) 组合密钥动态安全管理系统
CN103714634B (zh) 一种安全下载终端主密钥的方法及系统
CN109347878A (zh) 去中心化的数据验证及数据安全交易系统及方法
CN105307165B (zh) 基于移动应用的通信方法、服务端和客户端
CN106790253A (zh) 基于区块链的认证方法和装置
CN109064324A (zh) 基于联盟链的交易方法、电子装置及可读存储介质
KR20180114182A (ko) 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안
Rezaeighaleh et al. New secure approach to backup cryptocurrency wallets
CN106713336B (zh) 基于双重非对称加密技术的电子数据保管系统及方法
CN104967693B (zh) 面向云存储的基于全同态密码技术的文档相似度计算方法
CN101964793A (zh) 终端和服务器间的数据传输方法及系统、签到和支付方法
CN104618109B (zh) 一种基于数字签名的电力终端数据安全传输方法
CN105812349B (zh) 一种基于身份信息的非对称密钥分发及消息加密方法
JP6950745B2 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN110519046A (zh) 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统
CN106850190A (zh) 一种对基于区块链数字凭证的销毁方法
CN109861956B (zh) 基于状态通道的数据验证系统、方法、装置及设备
CN107276752A (zh) 对云支付限制密钥进行解密的方法、装置和系统
CN109068322A (zh) 解密方法、系统、移动终端、服务器及存储介质
CN109889494A (zh) 一种可撤销的云数据安全共享方法
CN103108245B (zh) 一种智能电视支付密钥系统以及基于智能电视的支付方法
CN110414961A (zh) 防止追踪交易转出方的转账方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant