CN106603243A - 数字签名的私钥处理方法和系统 - Google Patents
数字签名的私钥处理方法和系统 Download PDFInfo
- Publication number
- CN106603243A CN106603243A CN201611255315.6A CN201611255315A CN106603243A CN 106603243 A CN106603243 A CN 106603243A CN 201611255315 A CN201611255315 A CN 201611255315A CN 106603243 A CN106603243 A CN 106603243A
- Authority
- CN
- China
- Prior art keywords
- private key
- share
- digital signature
- confounding factors
- private
- 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
Links
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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种数字签名的私钥处理方法和系统,其方法包括:在密码机内部生成并存储第一混淆因子,获取用于数字签名的原始私钥,通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子。根据本发明的方案,可以在采用云签名服务平台方案进行数字签名时,降低私钥泄露风险。
Description
技术领域
本发明涉及密码学与信息安全技术领域,特别涉及一种数字签名的私钥处理方法和系统。
背景技术
数字证书认证机构(Certificate Authority,CA)可以为企业签发用于电子发票业务的电子发票专用证书。企业通过互联网连接税务机关建设的电子发票业务系统,为消费者开具增值税电子发票。由于一个企业可能有多个电子发票业务员,要求他们在获得授权的条件下,都可以同时独立地完成开具电子发票的业务。任何一位发票业务员所开具的电子发票,均应由企业的电子发票专用证书来签署数字签名。
为了便于企业方便地完成开具电子发票的业务,要求在云环境中集中管理所有企业的电子发票专用证书及对应的私钥,企业的管理员可以为多个电子发票业务员赋予开具电子发票的权限。与此同时,云签名平台需要支持存储海量密钥,并且满足电子发票业务的性能要求,支持大量企业用户并发处理。
其中,数字签名(Digital Signature)一般是利用非对称算法(AsymmetricAlgorithm),来达到其他人可以验证该签名但却无法假冒该签名的目的。最常用的非对称算法有RSA(公钥加密算法)、DSA(Digital Signature Algorithm,RSA的变种)和椭圆曲线算法,目前的不少数字签名系统都是基于RSA算法的。
所谓非对称算法,就是一个人无法通过已知的正向计算参数推导出反向计算的参数,即已知正向计算过程,无反向计算能力。这种非对称算法本身是公开的,但每个人可以选择不同的参数,参数不同,所构成的变换函数就不同。对某个人来说,他可以选择一组参数,其中一部分是用于逆向计算的,称为秘密参数,技术上称为保密密钥或私钥;另一部分是用于正向计算的,是公开的参数,技术上称为公开密钥或公钥。
数字签名就是基于这种非对称算法得以实施的。一方面保护自己的秘密参数-私钥,以保证他人无法冒充自己进行签名,另一方面通过公开可以公开的部分-公钥,供相关人士能够验证该签名(从理论上说,利用公开的参数来推导秘密的参数,在计算上是不可行的)。
为了满足大规模、高并发的要求,数字签名系统中需要配置专用的密码运算设备(俗称“密码机”),并需要实现密码设备的集群,而这些专用设备的价格相对比较昂贵,并且不利于动态扩展。由于云计算系统是基于主流的通用服务器硬件来构建,具有海量计算能力、海量存储、动态扩展等技术优势,用来执行密码学运算的性价比更高。因此,可以数字签名运算托管在云计算系统来完成,即采用云签名平台方案,这种方案的基本思路:企业的电子发票专用证书及其私钥均托管在GDCA(云计算服务提供商)建设的云签名服务平台,在云环境中集中管理及使用密钥。在企业授权的个人要生成电子发票数字签名时,通过PC或移动设备的目标客户端软件连接云签名服务平台,调用云签名服务平台的API来完成电子发票签名。这种云签名服务平台方案具有诸多优点,例如,保证了数字签名的法律效力,便于验证数字签名的有效性,降低了电子发票证书管理的复杂度等等。这种方案虽然可以满足大规模、高并发的要求,然而这种集中管理签名私钥的方式却增加了私钥泄漏的风险。
发明内容
本发明的目的在于提供一种数字签名的私钥处理方法和系统,可以在采用云签名服务平台方案进行数字签名时,降低私钥泄露风险。
本发明的目的通过如下技术方案实现:
一种数字签名的私钥处理方法,其特征在于,包括:
在密码机内部生成并存储第一混淆因子;
获取用于数字签名的原始私钥;
通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子。
一种数字签名的私钥处理系统,包括:
初始化单元,用于在密码机内部生成并存储第一混淆因子;
密钥获取单元,用于获取用于数字签名的原始私钥;
密钥分解单元,用于通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子。
根据上述本发明的方案,其是在密码机内部生成并存储第一混淆因子,通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子,由于通过引用的第一混淆因子对原始私钥进行了分解,可以对原始私钥进行有效隐藏,提升了原始私钥的安全性,可以应用在云签名服务平台方案中,降低私钥泄露风险,同时,第一混淆因子保存在密码机内部,进一步提升了原始私钥的隐私性。
附图说明
图1为一个实施例中的数字签名的私钥处理方法的实现流程示意图;
图2为另一个实施例中的数字签名的私钥处理方法的实现流程示意图;
图3为又一个实施例中的数字签名的私钥处理方法的实现流程示意图;
图4为一个实施例中的数字签名的私钥处理系统的组成结构示意图;
图5为另一个实施例中的数字签名的私钥处理系统的组成结构示意图;
图6为又一个实施例中的数字签名的私钥处理系统的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
实施例一
本发明实施例一提供一种数字签名的私钥处理方法,图1为一个实施例中的数字签名的私钥处理方法的实现流程示意图。如图1所示,该实施例中的数字签名的私钥处理方法包括:
步骤S101:在密码机内部生成并存储第一混淆因子;
这里,所述第一混淆因子一般为一随机整数,其中,密码机也称为密码运算设备。
步骤S102,获取用于数字签名的原始私钥;
其中,获取用于数字签名的原始私钥的方式一般有两种,一种是在密码机内部生成,另一种是从密码机外部导入。
步骤S103:通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子;
这里,所述私钥私密份额包括所述第一混淆因子,可以是所述第一混淆因子即为所述私钥私密份额,也可以是所述第一混淆因子仅为所述私钥私密份额中的一个数据,即所述私钥私密份额中除所述第一混淆因子外还包括其他因子时。
具体地,可以调用预设的分解算法对原始私钥进行分解,获得私钥公开份额和私钥私密份额。其中,可以基于并发处理效率和私钥安全性的不同要求,采用不同的分解算法。分解算法可以是加法运算、减法运算、乘法运算、除法运算、指数运算、对数运算等等中的任意一种或者任意多种的组合。
据此,根据上述本实施例的方案,其是在密码机内部生成并存储第一混淆因子,通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子,由于通过引用的第一混淆因子对原始私钥进行了分解,可以对原始私钥进行有效隐藏,提升了原始私钥的安全性,可以应用在云签名服务平台方案中,降低私钥泄露风险,同时,第一混淆因子保存在密码机内部,进一步提升了原始私钥的隐私性。
在其中一个实施例中,如图2所示,本发明的数字签名的私钥处理方法,还可以包括步骤S201或者/和步骤S202,其中:
步骤S201:将所述私钥公开份额下发给目标客户端;
其中,将所述私钥公开份额下发给目标客户端存在两种情况:一种情况是目标客户端在生成密钥阶段获得所述私钥公开份额并保存以供签名时用于产生部分签名结果;另一种情况是每次要产生签名时由服务器将该私钥公开份额下发到目标客户端,由目标客户端持有的密钥解密获得公开份额之后用于产生部分签名结果。
具体地,可以通过与目标客户端间的安全通道将私钥公开份额推送到目标客户端。此外,目标客户端在接收到私钥公开份额较佳的保存方式是将该私钥公开份额存储在内存中,而不要存储在永久存储介质(如硬盘、Flash等)。
需要说明的是,私钥公开份额并非指任何用户都可以获取的,一般都处于加密状态,而只是相对于某一客户端(例如目标客户端)才可以解密,譬如通过客户端的硬件ID、用户生物特征、用户PIN码等因素相互结合才能够将私钥公开份额进行解密。
步骤S202:在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,保存该其他因子;
根据需要,若所述私钥私密份额中除第一混淆因子外若还包括其他因子,该其他因子可以选择将所述私钥私密份额全部保存在密码机内部,也可以选择保存在数据库中。
需要说明的是,在图2中示出的是包括步骤S201和步骤S202的情况,根据需要,也可以只包括其中的一个步骤。此外,步骤S201和步骤S202也可以不采用上述先后顺序执行,也可以同时执行。
此外,为了保证原始私钥的安全性,在其中一个实施例中,在通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额之后,如图2所示,还包括:
步骤S203:删除所述原始私钥。
实施例二
本发明实施例二提供一种数字签名的私钥处理方法,该实施例二中以对所述原始私钥进行乘法分解为例进行说明。
基于私钥安全性的考虑,在本实施例中,所述通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额可以包括:通过所述第一混淆因子对所述原始私钥进行乘法分解,获得所述私钥公开份额和所述私钥私密份额。
其中,乘法分解的具体方式可以是,用所述原始私钥除以所述第一混淆因子,得到的商值作为私钥公开份额,余数和第一混淆因子作为所述私钥私密份额。这种方式下,原始私钥=第一混淆因子*私钥公开份额+余数。但需要说明的是,这里的等式关系可能隐含了对模数N的取模操作。譬如,对于RSA算法,上述关系的模数N为RSA公开密钥中的模数n;对于椭圆曲线ECC算法,上述关系的模数N为生成元G的阶。
在本实施例中,由于采用的是乘法分解,使得私钥公开份额和原始私钥之间没有任何一个比特是完全相同的,不会泄露原始私钥的信息,提升了原始私钥的安全性。如果不考虑运算效率方面的问题,分割的私密份额与公开份额都可以是一个比特长度与模数N的比特长度相同或者接近的大整数,它们的乘积对模数N取模之后才与原始私钥相关联,这样可以获得与原始私钥基本一致的密钥算法强度。为此,在其中一个实施例中,所述私钥公开份额和和所述私钥私密份额的比特长度与模数N的比特长度相匹配,这里相匹配包括相同和接近(即比特长度差值小于一设定的正数)。
以下以乘法分解为例,就本发明的数字签名的私钥处理方法的几个实施例进行说明。
在其中一个实施例中,可以进一步地,采用与数字签名算法相匹配的乘法分解方式对所述原始私钥进行乘法分解。
在其中一个实施例中,所述数字签名算法为RSA算法,所述采用与数字签名算法相匹配的乘法分解方式对所述原始私钥进行乘法分解包括:根据d=(dpri·dpub+d0)(mod N)将所述原始私钥分解成私钥公开份额和私钥私密份额,其中,d表示原始私钥,dpub表示私钥公开份额,dpri和d0表示私钥私密份额,且dpri还表示第一混淆因子。mod表示取模运算,N为取模运算的模数。
此外,当大量用户将私钥保存在云签名服务平台,考虑到一般密码机内部存储容量有限,不足以满足存储海量用户私钥的需求。但如果将用户私钥保存在密码机外部,一方面在运算时导入私钥需要消耗额外的时间,另一方面增加了私钥泄密的风险。为此,在其中一个实施例中,可以将对于多个用户均相同的所述第一混淆因子保存在密码机内部,一方面不需要满足存储海量用户私钥,且在根据私钥私密份额中的第一混淆因子进行签名操作中,不需要额外从外部导入该第一混淆因子的时间。另外,还可以是将对于多个用户均相同的第一混淆因子保存在密码机内部以保证第一混淆因子的安全性。
在其中一个实施例中,为了增强原始私钥的安全性,可以将d=(dpri·dpub+d0)(mod N)中的余数d0作为第二混淆因子,为不同原始私钥分配不同的第二混淆因子。也就是说,原始私钥的乘法分解关系表达为d=(dpri·dpub+dj)(mod N),dj表示对第j个原始私钥的第二混淆因子。在分割原始私钥后,可以将对于多个用户均相同的第一混淆因子dpri保存在云签名服务平台的密码机内部,将第二混淆因子dj保存云签名服务平台的在数据库中。采用本实施例中的方案,只要第二混淆因子dj的密钥位数足够,即使获得了某个用户的证书私钥(或者称为原始私钥)、密钥公开份额dpub,由于第二混淆因子dj对于每个证书用户的私钥而言都是不同的,也无法推导出私钥私密份额dpri,采用本实施例中的方案,可以进一步增强私钥的安全性。
此外,除了可以将d=(dpri·dpub+d0)(mod N)中的余数d0作为第二混淆因子,根据需要还可以额外引入第三混淆因子。在其中一个是示例中,本发明的数字签名的私钥处理方法,还可以包括:采用引入的第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理,得到混淆处理后的所述私钥公开份额和所述私钥私密份额。
此外,所述将所述私钥公开份额下发给目标客户端包括:将混淆处理后的所述私钥公开份额下发给目标客户端;
所述在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,保存该其他因子包括:保存引入的第三混淆因子,且在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,还保存所述其他因子。
具体地,如图3所示,提供一种数字签名的私钥处理方法,该实施例中是以用第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理为例进行说明,本实施例中的数字签名的私钥处理方法包括:
通过引用的第一混淆因子对原始私钥进行乘法分解获得私钥公开份额,将所述第一混淆因子作为私钥私密份额;
步骤S301:在密码机内部生成并存储第一混淆因子;
步骤S302:获取用于数字签名的原始私钥;
步骤S303:通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子,所述私钥公开份额下发给目标客户端;
步骤S304:采用引入的第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理,得到混淆处理后的所述私钥公开份额和所述私钥私密份额;
在其中一个实施例中,对于乘法分解,混淆处理后的所述私钥公开份额为dpub/dh,混淆处理后的所述私钥私密份额为dpri·dh,dpub表示私钥公开份额,dpri表示私钥私密份额,dh表示第三混淆因子。
此外,如图3所示,在其中一个实施例中,还可以包括:
步骤S305:将所述混淆处理后的所述私钥公开份额下发给目标客户端;
步骤S306:保存引入的第三混淆因子,且在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,还保存所述其他因子。
其中,第三混淆因子,根据需要,可以保存在密码机内部,也可以保存在数据库中,但考虑到密码机内部存储空间有限,一般选择保存在数据库中。
其中,第三混淆因子基于不同的考虑可以采用不同的生成方式,以下提供其中几种第三混淆因子的生成方式,可以根据实际需要,采用下述任意一种方式生成第三混淆因子dh。
方式一,周期性的生成所述第三混淆因子,其中前后两个周期内的第三混淆因子不同。
也就是说,以周期性的混淆因子作为第三混淆因子。在这种方式中,如果对于所有的用户都使用相同的私钥私密份额dpri,并且保持不变,存在某个用户私钥被泄漏可能威胁其它用户私钥的风险。为了增强安全性,引入了周期性的混淆因子dperiod,服务器下发的密钥公开份额为:dpub/dperiod,相应地服务器基于dpri·dperiod计算最终签名结果。
服务器维护第三混淆因子生存期,在该周期之内第三混淆因子dperiod才有效,一旦过了这个周期,将重新生成第三混淆因子。
在更新第三混淆因子时,必须要在目标客户端获得同步之后,服务端才能使用新的第三混淆因子。每个第三混淆因子都应该分配一个ChangeCount参数,相当于第三混淆因子的新鲜性标志,在目标客户端提交部分签名时应携带这个参数,而服务器则需要缓存曾经使用的历史第三混淆因子,确保可以使用与目标客户端一致的第三混淆因子来确定数字签名,即最终签名结果。
方式二,对在线的活跃用户进行分组,分别为各组生成不同的第三混淆因子;
由于用户可能从其他CA机构申请签发数字证书,然后导入到云签名服务平台使用,这种情况下用户可以同时获得原始私钥及密钥公开份额dpub,进而可以计算出私钥私密份额dpri,这样会对其他用户的原始私钥形成安全威胁。
为了进一步增强安全性,可以将在线的活跃用户分割为N个组,每个组的用户使用不相同的第三混淆因子dj。在极端情况下,每个分组只有1个用户,此时每个用户的混淆因子均不相同,即使泄漏了1个用户的混淆因子,也不会对其他用户的私钥形成安全威胁。
方式三,对在线的活跃用户进行分组,周期性的分别为各组生成不同的第三混淆因子;
该方式三是将上述的方式一和方式二进行结合,具有上述方式一和方式二的有益效果。
具体地,将在线的活跃用户分割为N个组,每个组的用户使用不相同的第三混淆因子dj,period,其中,每个分组的第三混淆因子dj,period周期性的生成,可以参见上述方式一和方式二的描述,在此不予赘述。
方式四,为用户分配标识符,根据所分配的标识符计算对应用户的第三混淆因子。
在方式四中,每个用户都分配唯一的标识符(如用户证书的序列号、可以区分用户的生物特征信息等)。
在分割私钥的过程中,根据用户的标识符来计算第三混淆因子dj=f(UserId)。服务器下发的密钥公开份额为:dpub/dj,相应地服务器基于dpri·dj计算最终签名结果。密码机中仅存储私钥私密份额dpri,在云签名平台执行签名运算时,需要将用户的标识符UserId也送入密码机,由UserId来计算出用于计算最终签名结果的份额(即混淆处理后的私钥私密份额)dpri·dj=dpri·f(UserId),最后完成最终签名结果的计算过程。
此外,获取用于数字签名的原始私钥的方式一般有两种,一种是在密码机内部生成,另一种是从密码机外部导入。在获取用于数字签名的原始私钥时,若所述原始私钥是从所述密码机外部导入的,为了确保私钥私密份额的安全性,要求对于每个用户的第一混淆因子均不相同。而在获取用于数字签名的原始私钥时,若所述原始私钥是在所述密码机内部生成的,由于安全性有保证,为了节约密码机内部空间,可以采用对于每个用户的第一混淆因子均相同的模式,但在条件允许的情况下(例如内部空间足够大),也可以采用均不相同的第一混淆因子。
实施例三
本发明实施例三提供一种数字签名的私钥处理方法,该实施例三中以对所述原始私钥进行加法分解为例进行说明。
基于并发处理效率的考虑,在本实施例中,所述通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额包括:通过所述第一混淆因子对所述原始私钥进行加法分解,获得所述私钥公开份额和所述私钥私密份额。
其中,加法分解过程具体可以是用所述原始私钥减去所述第一混淆因子,得到的差值作为所述私钥公开份额,而所述第一混淆因子作为所述私钥私密份额,即原始私钥=私钥公开份额+私钥私密份额,但需要说明的是,这里的等式关系也可能隐含了对模数N的取模操作。譬如,对于RSA算法,上述关系的模数N为RSA公开密钥中的模数n;对于椭圆曲线ECC算法,上述关系的模数N为生成元G的阶。
在本实施例中,通过加法分解对原始私钥进行分解,由于加法分解后的私钥公开份额下发给目标客户端,加法分解后的私钥私密份额保存在服务器侧,这样,在需要进行数字签名时,目标客户端这样可以根据私钥公开份额计算第一部分签名结果,服务器可以根据私钥私密份额计算第二部分签名结果,其中,第一部分签名结果和第二部分签名结果可以由目标客户端和服务器并行计算,然后由服务器或者目标客户端来合成最终结果,相对于乘法分解方式(需要一方先计算,然后另一方在此基础上进行运算)可以具有较高的处理速度,在并发处理效率方面有较高要求的场合,应该优先选择加法分解方案。
在其中一个实施例中,可以进一步地,采用与数字签名算法相匹配的加法分解方式对所述原始私钥进行加法分解。
考虑到目前的不少数字签名算法都是基于RSA算法的,在其中一个实施例中,所述数字签名算法为RSA算法,所述采用与数字签名算法相匹配的加法分解方式对所述原始私钥进行加法分解包括:根据d=(dpri+dpub)(mod N)将用于数字签名的原始私钥分解成私钥公开份额和私钥私密份额,其中,d表示原始私钥,dpub表示私钥公开份额,dpri表示私钥私密份额,且dpri还表示第一混淆因子。
为了进一步提升原始私钥的安全性,对于加法分解,同样也可以采用引入的第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理。具体地,本发明实施例中的数字签名的私钥处理方法还可以包括:若所述第一混淆因子对于各用户均相同,则采用引入的第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理,得到混淆处理后的所述私钥公开份额和所述私钥私密份额。其中,混淆处理后的所述私钥公开份额为dpub-dh,混淆处理后的所述私钥私密份额为dpri+dh,dpub表示私钥公开份额,dpri表示私钥私密份额,dh表示第三混淆因子。
其中,对于加法分解的第三混淆因子基于不同的考虑也可以采用不同的生成方式,以下提供其中几种第三混淆因子的生成方式,可以根据实际需要,采用下述任意一种方式生成第三混淆因子dh。
方式一,周期性的生成所述第三混淆因子,其中前后两个周期内的第三混淆因子不同。
也就是说,以周期性的混淆因子作为第三混淆因子。在这种方式中,如果对于所有的用户都使用相同的私钥私密份额dpri,并且保持不变,存在某个用户私钥被泄漏可能威胁其它用户私钥的风险。为了增强安全性,引入了周期性的混淆因子dperiod,服务器下发的密钥公开份额为:dpub-dperiod,相应地服务器基于dpri+dperiod计算最终签名结果。
服务器维护第三混淆因子生存期,在该周期之内第三混淆因子dperiod才有效,一旦过了这个周期,将重新生成第三混淆因子。
在更新第三混淆因子时,必须要在目标客户端获得同步之后,服务端才能使用新的第三混淆因子。每个第三混淆因子都应该分配一个ChangeCount参数,相当于第三混淆因子的新鲜性标志,在目标客户端提交部分签名时应携带这个参数,而服务器则需要缓存曾经使用的历史第三混淆因子,确保可以使用与目标客户端一致的第三混淆因子来确定数字签名,即最终签名结果。
方式二,对在线的活跃用户进行分组,分别为各组生成不同的第三混淆因子;
由于用户可能从其他CA机构申请签发数字证书,然后导入到云签名服务平台使用,这种情况下用户可以同时获得原始私钥及密钥公开份额dpub,进而可以计算出私钥私密份额dpri,这样会对其他用户的原始私钥形成安全威胁。
为了进一步增强安全性,可以将在线的活跃用户分割为N个组,每个组的用户使用不相同的第三混淆因子dj。在极端情况下,每个分组只有1个用户,此时每个用户的混淆因子均不相同,即使泄漏了1个用户的混淆因子,也不会对其他用户的私钥形成安全威胁。
方式三,对在线的活跃用户进行分组,周期性的分别为各组生成不同的第三混淆因子;
该方式三是将上述的方式一和方式二进行结合,具有上述方式一和方式二的有益效果。
具体地,将在线的活跃用户分割为N个组,每个组的用户使用不相同的第三混淆因子dj,period,其中,每个分组的第三混淆因子dj,period周期性的生成,可以参见上述方式一和方式二的描述,在此不予赘述。
方式四,为用户分配标识符,根据所分配的标识符计算对应用户的第三混淆因子。
在方式四中,每个用户都分配唯一的标识符(如用户证书的序列号、可以区分用户的生物特征信息等)。
在分割私钥的过程中,根据用户的标识符来计算第三混淆因子dj=f(UserId)。服务器下发的密钥公开份额为:dpub-dj,相应地服务器基于dpri+dj计算最终签名结果。密码机中仅存储私钥私密份额dpri,在云签名平台执行签名运算时,需要将用户的标识符UserId也送入密码机,由UserId来计算出用于计算最终签名结果的份额(即混淆处理后的私钥私密份额)dpri+dj=dpri+f(UserId),最后完成最终签名结果的计算过程。
本发明的数字签名的私钥处理方法可以较佳的应用于数字签名的生成中。以下对应用于数字签名的生成中的具体过程进行说明。
首先,以最终的数字签名结果在服务器完成为例进行说明。
服务器将所述私钥公开份额下发给目标客户端后,目标客户端根据所述私钥公开份额执行签名操作得到第一部分签名结果,目标客户端将该第一部分签名结果返回给服务器;服务器根据第一部分签名结果和所述私钥私密份额确定最终签名结果,服务器将该最终签名结果返回给目标客户端。
其中,对于乘法分解,服务器根据第一部分签名结果和所述私钥私密份额确定最终签名结果的具体过程是:使用所述私钥私密份额在第一部分签名结果的基础上进行模幂运算,得到最终签名结果。
RSA密码体制中生成数字签名的核心算法为模幂算法,即Sigd(m)=h(m)dmod N,其中m为待签名原文,h(·)代表某种杂凑算法(如SHA1)。RSA签名算法的模幂运算可以等效变换成为
采用RSA算法进行数字签名时,目标客户端根据所述私钥公开份额执行签名操作得到第一部分签名结果包括:目标客户端根据得到第一部分签名结果和摘要信息;
服务器根据第一部分签名结果和所述私钥私密份额确定最终签名结果包括:根据确定所述最终签名结果;
其中,h(m)表示待签名数据的摘要信息,表示第一部分签名结果,Sigd(m)表示最终签名结果。
对于加法分解,RSA签名算法的模幂运算可以等效变换成为
其中,服务器根据第一部分签名结果和所述私钥私密份额确定最终签名结果的具体过程是:服务器根据所述私钥私密份额执行签名操作得到的第二部分签名结果,服务器对所述第一部分签名结果和第二部分签名结果进行合成运算,得到最终签名结果。
采用RSA算法进行数字签名时,目标客户端根据所述私钥公开份额执行签名操作得到第一部分签名结果包括:目标客户端根据得到的第一部分签名结果和摘要信息;
服务器根据所述私钥私密份额执行签名操作得到的第二部分签名结果包括:服务器根据计算第二部分签名结果;
服务器对所述第一部分签名结果和第二部分签名结果进行合成运算,得到最终签名结果包括:服务器根据合成最终签名结果;
其中,h(m)表示待签名数据的摘要信息,表示第一部分签名结果,表示第二部分签名结果,Sigd(m)表示最终签名结果。
其次,以最终的数字签名结果在客户端完成为例进行说明。
服务器将所述私钥公开份额下发给目标客户端,还根据私钥私密份额执行签名操作得到第二部分签名结果,将该第二部分签名结果发送给目标客户端;目标客户端根据所述私钥公开份额和所述第二部分签名结果确定最终签名结果。
其中,对于乘法分解,目标客户端根据所述私钥公开份额和所述第二部分签名结果确定最终签名结果包括:目标客户端使用所述私钥公开份额在第而部分签名结果的基础上进行模幂运算,得到最终签名结果。
采用RSA算法进行数字签名时,服务器根据所述私钥私密份额执行签名操作得到的第二部分签名结果包括:服务器根据计算第二部分签名结果;
目标客户端根据所述私钥公开份额和所述第二部分签名结果确定最终签名结果包括:目标客户端根据确定所述最终签名结果;
其中,h(m)表示待签名数据的摘要信息,表示第二部分签名结果,Sigd(m)表示最终签名结果。待签名数据的摘要信息一般是目标客户端使用设定的摘要算法计算出后发送给服务器。
对于加法分解,目标客户端根据所述私钥公开份额和所述第二部分签名结果确定最终签名结果包括:目标客户端根据所述私钥公开份额执行签名操作得到第一部分签名结果,目标客户端对所述第一部分签名结果和第二部分签名结果进行合成运算,得到最终签名结果。
采用RSA算法进行数字签名时,目标客户端根据所述私钥公开份额和所述第二部分签名结果确定最终签名结果包括:目标客户端根据得到第一部分签名结果;
目标客户端对所述第一部分签名结果和第二部分签名结果进行合成运算,得到最终签名结果包:目标客户端根据合成最终签名结果;
其中,h(m)表示待签名数据的摘要信息,表示第一部分签名结果,表示第二部分签名结果,Sigd(m)表示最终签名结果。
由于数字签名的运算分别在目标客户端、服务器两端执行,而密钥公开份额需要下发到目标客户端,会对原始私钥的安全性产生威胁。云签名服务平台的密码机需要为大量用户执行并发运算,服务器的运行效率直接影响到系统的整体性能。因此,需要在效率与安全性之间做出权衡。
关键要素是合理选择第一混淆因子的长度(第一混淆因子的长度决定了私钥公开份额和私钥私密份额的长度),若长度选取过小则无法满足安全性要求,若长度选取过大则影响服务器的运算效率。譬如,若要求降低对服务端的性能压力,可以将第一混淆因子的长度选择为160比特;若系统用户数不多,但是要求客户端签名的时间较短,则可以将密钥公开份额的长度选择160比特,由此,也可以推导第一混淆因子的长度。因此,在其中一个实施例中,根据服务器的性能压力程度或者/和客户端数量确定待引用的第一混淆因子的长度。
应用示例
为了便于理解本发明的方案,以下通过一个具体的应用示例对本发明实施例中的数字签名的私钥处理方法进行说明。该应用示例包括生成密钥、使用密钥完成数字签名的全过程,但这并构成对本发明方案的限定。
初始化阶段
云签名服务平台在初始化阶段选择一个随机密钥dpri,并存储在密码机内部以保证该密钥的隐私性。
签发证书阶段
用户向CA机构申请办理云签名数字证书,CA系统从密码机申请用户证书密钥对。
HSM内部生成一个RSA密钥对(公钥和原始私钥),并将其中的原始私钥根据d=(dpri·dpub+d0)(mod N)分解出私钥公开份额dpui和私钥私密份额dpub:
将公钥及私钥公开份额dpub返回给CA系统。
CA系统为用户签发数字证书,证书中包含了用户的公钥。然后CA系统将用户的数字证书及私钥私密份额dpub推送到云签名服务平台。
提取密钥阶段
用户在云签名目标客户端输入登录凭证,云签名服务平台验证用户的身份,并查询获得注册用户的User ID。在识别用户成功之后,云签名服务平台通过安全通道将私钥公开份额dpub推送到云签名客户端(相当于上述的目标客户端)。云签名客户端将私钥公开份额dpub存储在内存中,不要存储到永久存储介质(如硬盘、Flash等)。
使用密钥阶段
当云签名客户端要使用密钥进行数字签名运算时,云签名客户端首先使用MD5、SHA1、或者SHA256等摘要算法计算待签名数据的摘要h(m),然后使用私钥公开份额dpub进行模幂运算再将摘要h(m)及模幂运算结果同时发送到云签名服务平台。
云签名服务平台使用平台密钥份额dplatform和摘要h(m)计算最终签名结果,具体地根据确定所述最终签名结果。
退出阶段
当云签名客户端退出登录状态时,销毁存储在内存中的私钥公开份额。
本发明实施例中的数字签名的私钥处理方法可以较佳的应用于电子发票签名业务中。以下对在电子发票签名业务的应用进行说明。
1)用户管理
用户管理的关键步骤如下:
(1)企业代表向CA申请专门用于电子发票业务的电子发票专用证书,CA在审核之后采用机构证书的模板来签发电子发票专用证书。
(2)企业的管理员、业务员分别在CA注册,并分别申请移动证书。
(3)企业持有预先从CA申请的UKey,其中包含机构证书,企业代表借助机构证书在电子发票业务系统申请注册,成为系统的合法机构用户。
(4)企业管理员、业务员分别在电子发票业务系统申请注册,成为系统的合法个人用户。
(5)企业代表使用机构证书登录电子发票业务系统,将企业帐号与管理员、业务员之间建立绑定关系。
(6)电子发票业务系统将用户信息同步推送到云签名服务平台。
2)权限控制模型
由于一个企业中可能设置多个业务员,并且不排除企业可以持有多张不同用途的电子发票专用证书,若采用基于角色的访问控制(RBAC),则指派为业务员角色的个人可以访问所有电子发票专用证书。因此,本系统宜采用RBAC与访问控制列表(ACL)相结合的访问控制模型。
实施RBAC模型,可以设置若干用户组,属于一个组的成员可以继承组的访问权限。然后,将每个电子发票专用证书作为资源对待,为其建立ACL,分配系统用户的操作权限。
3)基本业务流程
3.1)签发证书
用户向CA机构申请办理云签名数字证书的时候,提交企业的机构证书,并对申请信息执行签名。在完成资料审核之后,CA系统签发云签名证书,并将证书及私钥发送到云签名服务平台,云签名服务平台使用机构证书的公钥来加密私钥私密份额dpub,并在数据库中存储,然后销毁原始私钥。
3.2)授权管理
业务员使用移动证书登录云签名服务平台,发起使用本企业某个电子发票专用证书的申请,该申请将会提交给企业管理员进行审核。
企业管理员使用UKey中的机构证书登录云签名服务平台,审核电子发票业务员提交的申请,如果审核通过并选择授权使用,管理平台将业务员的移动证书与电子发票专用证书、企业电子印章建立关联。
与此同时,管理员还将私钥公开份额dpub的密文下载到客户端,使用机构证书的私钥来解密钥公开份额dpub,然后再使用电子发票业务员的移动证书公钥来加密钥公开份额dpub,并将密文上传到证书管理平台。
3.3)客户端登录及初始化流程
电子发票业务员登录电子发票目标客户端的步骤如下:
(1)打开电子发票目标客户端,连接电子发票业务系统。
(2)业务员选择移动证书并输入PIN,电子发票业务系统在成功验证业务员证书的有效性之后,目标客户端完成登录。
(3)客户端显示电子发票专用证书的列表,由业务员选择当前要使用的证书。
(4)客户端向云签名服务平台提交下载电子发票专用证书密钥的申请。
(5)云签名服务平台确认该业务员拥有访问该电子发票专用证书的权限之后,将电子发票专用证书密钥的用户密钥份额下发到相应的客户端。
(6)目标客户端使用业务员移动证书的私钥来解密密钥公开份额dpub。
如果上述登录流程成功执行,现在客户端已经持有电子发票专用证书以及密钥公开份额dpub,可以执行开具电子发票的相关操作。
3.4)签名流程
开具电子发票的签名流程包括如下步骤:
(1)业务员选择要开具发票的模板名称;
(2)业务员在客户端输入要开具发票的具体项目内容(单位名称、发票内容、金额等);
(3)客户端将数据填充到预先设计的发票模板中,生成待签名的PDF文件;数据传送到电子发票业务系统;
(4)电子发票目标客户端使用电子发票专用证书对应密钥的密钥公开份额dpub来计算部分数字签名(相当于上述的第一部分签名结果);
(5)电子发票目标客户端向电子发票业务系统发起签名请求,消息内容包含交易ID、发票内容、PDF文件及摘要、电子发票专用证书、部分数字签名等信息;
(6)电子发票业务系统向云签名服务平台发送签名通告,将相关数据发送给云签名服务平台;
(7)云签名服务平台在收到签名通告之后,立即启动后台计算,使用电子发票专用证书对应密钥的平台密钥份额来计算部分数字签名,合成最终的数字签名并写入PDF文件,返回给电子发票业务系统;
(8)电子发票业务系统将PDF文件返回给电子发票目标客户端展现给用户,结束签名流程。
3.5)验证流程
如果云签名服务平台输出的电子发票为带有RSA签名的PDF文件,可以使用任何支持PDF数字签名的目标客户端来验证发票的有效性。
在目标客户端验证数字签名有效性的过程中,需要连接CA机构提供的在线证书状态查询服务(OCSP)来验证证书及证书链的有效性,还需要验证时间戳的有效性。
3.6)解绑业务员流程
企业管理员可以通过机构证书在云签名服务平台申请解除电子发票专用证书与业务员移动证书之间的绑定关系。与此同时,证书管理平台将被相应业务员移动证书公钥加密的用户密钥份额的密文删除。解除绑定之后,业务员登陆目标客户端将无法下载电子发票专用证书的密钥。
3.7)证据存储
每张电子发票的签名过程都在云签名服务平台保存了记录,电子发票业务系统还可以为消费者开放一个发票查询接口。当用户上传一个PDF文件,电子发票业务系统通过与云签名服务平台进行交互,提取该发票的相关信息,包括生成时间、具体内容等取证信息。
其中,不同分解方式的比较:
加法分解方案的混淆因子与私钥之间执行加法运算,如果第一混淆因子的长度比原始私钥小得多,则原始私钥的低位比特获得保护,而高位比特基本上都以原始状态发送到目标客户端,就是说泄漏了原始私钥的部分信息。
乘法分解方案在引入混淆因子时采用了乘法运算,基本上私钥公开份额dpub与原始私钥之间没有任何一个部分是完全相同的,所以不会泄漏原始私钥的信息。如果不考虑运算效率方面的问题,分割的私钥私密份额与私钥公开份额都可以是一个比特长度与模数N相同的大整数,它们的乘积对模数N取模之后才与原始私钥相关联,这样可以获得与原始私钥基本一致的密钥算法强度。
在执行效率方面,加法分解方案的私钥私密份额和私钥公开份额可以由客户端、服务端并行计算,然后由任何一方来合成最终结果。乘法分解方案则需要由客户端、服务端依次计算,可以由任意一方先进行计算,然后另一方在此基础上再进行模幂运算,才能够获得最终结果。
由此可见,在并发处理效率方面有较高要求的场合下,应该优先选择加法分解方案;在私钥安全性有较高要求的场合下,应该优先选择乘法分解方案。
实施例四
根据上述实施例中的数字签名的私钥处理方法,本发明实施例四提供一种数字签名的私钥处理系统。参见图4所示,为该实施例中的数字签名的私钥处理系统的组成结构示意图。如图4所示,该实施例中的数字签名的私钥处理系统包括初始化单元401、密钥获取单元402和密钥分解单元403,其中:
初始化单元401,用于在密码机内部生成并存储第一混淆因子;
密钥获取单元402,用于获取用于数字签名的原始私钥;
密钥分解单元403,用于通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子。
在其中一个实施例中,如图5所示,本发明的数字签名的私钥处理系统,还可以包括;
密钥下发单元501,用于将所述私钥公开份额下发给目标客户端;
或者/和
密钥保存单元502,用于在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,保存该其他因子。
在其中一个实施例中,密钥分解单元403可以通过所述第一混淆因子对所述原始私钥进行乘法分解,获得所述私钥公开份额和所述私钥私密份额。
在其中一个实施例中,密钥分解单元403可以采用与数字签名算法相匹配的乘法分解方式对所述原始私钥进行乘法分解。
在其中一个实施例中,所述数字签名算法为RSA算法,密钥分解单元403可以根据d=(dpri·dpub+d0)(mod N)将所述原始私钥分解成私钥公开份额和私钥私密份额,其中,d表示原始私钥,dpub表示私钥公开份额,dpri和d0表示私钥私密份额,且dpri还表示第一混淆因子。
在其中一个实施例中,将d0作为第二混淆因子,为不同证书用户的原始私钥分配不同的第二混淆因子。
在其中一个实施例中,保存单元502将所述第二混淆因子保存在数据库中。
在其中一个实施例中,密钥分解单元403可以通过所述第一混淆因子对所述原始私钥进行加法分解,获得所述私钥公开份额和所述私钥私密份额。
在其中一个实施例中,密钥分解单元403可以采用与数字签名算法相匹配的加法分解方式对所述原始私钥进行加法分解。
在其中一个实施例中,所述数字签名算法为RSA算法,密钥分解单元403可以根据d=(dpri+dpub)(mod N)将用于数字签名的原始私钥分解成私钥公开份额和私钥私密份额,其中,d表示原始私钥,dpub表示私钥公开份额,dpri表示私钥私密份额,且dpri还表示第一混淆因子。
在其中一个实施例中,如图6所示,本发明数字签名的私钥处理系统还可以包括:
密钥混淆单元601,用于在所述第一混淆因子对于各用户均相同时,采用初始化单元401引入的第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理,得到混淆处理后的所述私钥公开份额和所述私钥私密份额。
在其中一个实施例中,混淆处理后的所述私钥公开份额为dpub/dh,混淆处理后的所述私钥私密份额为dpri·dh,dpub表示私钥公开份额,dpri表示私钥私密份额,dh表示第三混淆因子。
在其中一个实施例中,混淆处理后的所述私钥公开份额为dpub-dh,混淆处理后的所述私钥私密份额为dpri+dh,dpub表示私钥公开份额,dpri表示私钥私密份额,dh表示第三混淆因子。
在其中一个实施例中,所述第三混淆因子采用下述任意一种方式生成;
方式一,周期性的生成所述第三混淆因子,其中前后两个周期内的第三混淆因子不同;
方式二,对在线的活跃用户进行分组,分别为各组生成不同的第三混淆因子;
方式三,对在线的活跃用户进行分组,周期性的分别为各组生成不同的第三混淆因子;
方式四,为用户分配标识符,根据所分配的标识符计算对应用户的第三混淆因子。
在其中一个实施例中,如图6所示,本发明数字签名的私钥处理系统还可以包括:
密钥删除单元602,用于在密钥分解单元403通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额的步骤之后,删除所述原始私钥。
本发明实施例提供的数字签名的私钥处理系统,需要指出的是:以上对于数字签名的私钥处理系统的描述,与上述在目标客户端侧执行的数字签名的私钥处理方法的描述是类似的,并且具有上述在目标客户端侧执行的数字签名的私钥处理方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的数字签名的私钥处理系统中未披露的技术细节,请参照上述提供的在目标客户端侧执行的数字签名的私钥处理方法的描述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (20)
1.一种数字签名的私钥处理方法,其特征在于,包括:
在密码机内部生成并存储第一混淆因子;
获取用于数字签名的原始私钥;
通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子。
2.根据权利要求1所述的数字签名的私钥处理方法,其特征在于,还包括:
将所述私钥公开份额下发给目标客户端;
或者/和
在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,保存该其他因子。
3.根据权利要求1所述的数字签名的私钥处理方法,其特征在于,所述通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额包括:
通过所述第一混淆因子对所述原始私钥进行乘法分解,获得所述私钥公开份额和所述私钥私密份额。
4.根据权利要求3所述的数字签名的私钥处理方法,其特征在于,还采用与数字签名算法相匹配的乘法分解方式对所述原始私钥进行乘法分解。
5.根据权利要求3所述的数字签名的私钥处理方法,其特征在于,所述数字签名算法为RSA算法,所述采用与数字签名算法相匹配的乘法分解方式对所述原始私钥进行乘法分解包括:
根据d=(dpri·dpub+d0)(modN)将所述原始私钥分解成私钥公开份额和私钥私密份额,其中,d表示原始私钥,dpub表示私钥公开份额,dpri和d0表示私钥私密份额,且dpri还表示第一混淆因子。
6.根据权利要求5所述的数字签名的私钥处理方法,其特征在于,所述私钥公开份额和和所述私钥私密份额的比特长度与模数N的比特长度相匹配。
7.根据权利要求5所述的数字签名的私钥处理方法,其特征在于,将d0作为第二混淆因子,为不同证书用户的原始私钥分配不同的第二混淆因子。
8.根据权利要求7所述的数字签名的私钥处理方法,其特征在于,将所述第二混淆因子保存在数据库中。
9.根据权利要求1所述的数字签名的私钥处理方法,其特征在于,所述通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额包括:
通过所述第一混淆因子对所述原始私钥进行加法分解,获得所述私钥公开份额和所述私钥私密份额。
10.根据权利要求9所述的数字签名的私钥处理方法,其特征在于,采用与数字签名算法相匹配的加法分解方式对所述原始私钥进行加法分解。
11.根据权利要求10所述的数字签名的私钥处理方法,其特征在于,所述数字签名算法为RSA算法,所述采用与数字签名算法相匹配的加法分解方式对所述原始私钥进行加法分解包括:
根据d=(dpri+dpub)(modN)将用于数字签名的原始私钥分解成私钥公开份额和私钥私密份额,其中,d表示原始私钥,dpub表示私钥公开份额,dpri表示私钥私密份额,且dpri还表示第一混淆因子。
12.根据权利要求1、3或9所述的数字签名的私钥处理方法,其特征在于,还包括:
若所述第一混淆因子对于各用户均相同,则采用引入的第三混淆因子分别对所述私钥公开份额和所述私钥私密份额进行混淆处理,得到混淆处理后的所述私钥公开份额和所述私钥私密份额。
13.根据权利要求12所述的数字签名的私钥处理方法,其特征在于,混淆处理后的所述私钥公开份额为dpub/dh,混淆处理后的所述私钥私密份额为dpri·dh,dpub表示私钥公开份额,dpri表示私钥私密份额,dh表示第三混淆因子。
14.根据权利要求12所述的数字签名的私钥处理方法,其特征在于,混淆处理后的所述私钥公开份额为dpub-dh,混淆处理后的所述私钥私密份额为dpri+dh,dpub表示私钥公开份额,dpri表示私钥私密份额,dh表示第三混淆因子。
15.根据权利要求13或14所述的数字签名的私钥处理方法,其特征在于,所述第三混淆因子采用下述任意一种方式生成;
方式一,周期性的生成所述第三混淆因子,其中前后两个周期内的第三混淆因子不同;
方式二,对在线的活跃用户进行分组,分别为各组生成不同的第三混淆因子;
方式三,对在线的活跃用户进行分组,周期性的分别为各组生成不同的第三混淆因子;
方式四,为用户分配标识符,根据所分配的标识符计算对应用户的第三混淆因子。
16.根据权利要求1所述的数字签名的私钥处理方法,其特征在于,在获取用于数字签名的原始私钥时,若所述原始私钥是从所述密码机外部导入的,则对于每个用户的第一混淆因子均不相同。
17.根据权利要求1所述的数字签名的私钥处理方法,其特征在于,在所述通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额的步骤之后,还包括:删除所述原始私钥。
18.根据权利要求1所述的数字签名的私钥处理方法,其特征在于,在引用引入第一混淆因子前,还包括:
根据服务器的性能压力程度或者/和客户端数量确定待引用的第一混淆因子的长度。
19.一种数字签名的私钥处理系统,其特征在于,包括:
初始化单元,用于在密码机内部生成并存储第一混淆因子;
密钥获取单元,用于获取用于数字签名的原始私钥;
密钥分解单元,用于通过所述第一混淆因子将所述原始私钥分解成私钥公开份额和私钥私密份额,所述私钥私密份额包括所述第一混淆因子。
20.根据权利要求19所述的数字签名的私钥处理系统,其特征在于,还包括;
密钥下发单元,用于将所述私钥公开份额下发给目标客户端;
或者/和
密钥保存单元,用于在所述私钥私密份额除所述第一混淆因子外还包括其他因子时,保存该其他因子。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2016102182747 | 2016-04-08 | ||
CN201610218274 | 2016-04-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106603243A true CN106603243A (zh) | 2017-04-26 |
CN106603243B CN106603243B (zh) | 2020-06-16 |
Family
ID=58581388
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611255315.6A Active CN106603243B (zh) | 2016-04-08 | 2016-12-30 | 数字签名的私钥处理方法和装置 |
CN201611271028.4A Active CN106789080B (zh) | 2016-04-08 | 2016-12-30 | 数字签名生成方法和装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611271028.4A Active CN106789080B (zh) | 2016-04-08 | 2016-12-30 | 数字签名生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN106603243B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033762A (zh) * | 2018-07-05 | 2018-12-18 | 南京云信达科技有限公司 | 一种用于解决复杂检验对象软件授权的方法 |
CN110113169A (zh) * | 2019-04-15 | 2019-08-09 | 北京三未信安科技发展有限公司 | 基于rsa的协同数字签名方法、装置及电子设备 |
CN110177073A (zh) * | 2019-04-09 | 2019-08-27 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置、系统及计算机可读存储介质 |
CN110177088A (zh) * | 2019-05-08 | 2019-08-27 | 矩阵元技术(深圳)有限公司 | 一种临时身份认证方法、装置及系统 |
CN110428247A (zh) * | 2019-07-02 | 2019-11-08 | 常州市常河电子技术开发有限公司 | 非对称加密计算中大数乘除法的变权值快速实现方法 |
CN110572258A (zh) * | 2019-07-24 | 2019-12-13 | 中国科学院数据与通信保护研究教育中心 | 一种云密码计算平台及计算服务方法 |
CN111106938A (zh) * | 2018-10-26 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 信息处理方法、系统及设备 |
CN113691365A (zh) * | 2020-05-16 | 2021-11-23 | 成都天瑞芯安科技有限公司 | 云私钥生成和使用方法 |
CN113793147A (zh) * | 2021-08-02 | 2021-12-14 | 杭州复杂美科技有限公司 | 一种区块链隐藏交易金额的方法、设备及储存介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107302438B (zh) * | 2017-08-07 | 2020-10-30 | 吕文华 | 一种基于密钥更新的私钥保护方法、系统及装置 |
CN107948189B (zh) * | 2017-12-19 | 2020-10-30 | 数安时代科技股份有限公司 | 非对称密码身份鉴别方法、装置、计算机设备及存储介质 |
CN108471352B (zh) * | 2018-03-16 | 2022-03-04 | 数安时代科技股份有限公司 | 基于分布式私钥的处理方法、系统、计算机设备及存储介质 |
CN109639680B (zh) * | 2018-12-14 | 2021-06-29 | 杭州安司源科技有限公司 | 一种三元对等的即时通信身份认证和权限控制方法 |
CN110881048B (zh) * | 2019-12-16 | 2021-11-09 | 苏宁云计算有限公司 | 基于身份认证的安全通讯方法及装置 |
CN112131610A (zh) * | 2020-09-07 | 2020-12-25 | 百望股份有限公司 | 一种版式文件数字签名方法及电子设备 |
CN114679281B (zh) * | 2022-03-15 | 2023-12-01 | 北京宏思电子技术有限责任公司 | 一种基于rsa的联合签名生成方法及装置 |
CN116260594B (zh) * | 2023-05-09 | 2023-07-18 | 北京天辰信科技有限公司 | 一种电子签名文件的签署方法及系统 |
CN117499050A (zh) * | 2023-11-09 | 2024-02-02 | 广西北投声远科技股份公司 | 一种基于加密技术的云端签名方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060285683A1 (en) * | 2004-10-01 | 2006-12-21 | Lakshminarayanan Anatharaman | Method for cryptographically processing a message, method for generating a cryptographically processed message, method for performing a cryptographic operation on a message, computer system, client computer, server computer and computer program elements |
CN102893284A (zh) * | 2011-03-15 | 2013-01-23 | 松下电器产业株式会社 | 篡改监视系统、管理装置、保护控制模组及检测模组 |
CN104040939A (zh) * | 2011-10-24 | 2014-09-10 | 皇家Kpn公司 | 内容的安全分发 |
-
2016
- 2016-12-30 CN CN201611255315.6A patent/CN106603243B/zh active Active
- 2016-12-30 CN CN201611271028.4A patent/CN106789080B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060285683A1 (en) * | 2004-10-01 | 2006-12-21 | Lakshminarayanan Anatharaman | Method for cryptographically processing a message, method for generating a cryptographically processed message, method for performing a cryptographic operation on a message, computer system, client computer, server computer and computer program elements |
CN102893284A (zh) * | 2011-03-15 | 2013-01-23 | 松下电器产业株式会社 | 篡改监视系统、管理装置、保护控制模组及检测模组 |
CN104040939A (zh) * | 2011-10-24 | 2014-09-10 | 皇家Kpn公司 | 内容的安全分发 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109033762A (zh) * | 2018-07-05 | 2018-12-18 | 南京云信达科技有限公司 | 一种用于解决复杂检验对象软件授权的方法 |
CN111106938A (zh) * | 2018-10-26 | 2020-05-05 | 阿里巴巴集团控股有限公司 | 信息处理方法、系统及设备 |
CN110177073A (zh) * | 2019-04-09 | 2019-08-27 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置、系统及计算机可读存储介质 |
CN110113169A (zh) * | 2019-04-15 | 2019-08-09 | 北京三未信安科技发展有限公司 | 基于rsa的协同数字签名方法、装置及电子设备 |
CN110113169B (zh) * | 2019-04-15 | 2021-11-12 | 北京三未信安科技发展有限公司 | 基于rsa的协同数字签名方法、装置及电子设备 |
CN110177088A (zh) * | 2019-05-08 | 2019-08-27 | 矩阵元技术(深圳)有限公司 | 一种临时身份认证方法、装置及系统 |
CN110177088B (zh) * | 2019-05-08 | 2021-09-21 | 矩阵元技术(深圳)有限公司 | 一种临时身份认证方法、装置及系统 |
CN110428247A (zh) * | 2019-07-02 | 2019-11-08 | 常州市常河电子技术开发有限公司 | 非对称加密计算中大数乘除法的变权值快速实现方法 |
CN110572258A (zh) * | 2019-07-24 | 2019-12-13 | 中国科学院数据与通信保护研究教育中心 | 一种云密码计算平台及计算服务方法 |
CN113691365A (zh) * | 2020-05-16 | 2021-11-23 | 成都天瑞芯安科技有限公司 | 云私钥生成和使用方法 |
CN113691365B (zh) * | 2020-05-16 | 2024-04-26 | 成都天瑞芯安科技有限公司 | 云私钥生成和使用方法 |
CN113793147A (zh) * | 2021-08-02 | 2021-12-14 | 杭州复杂美科技有限公司 | 一种区块链隐藏交易金额的方法、设备及储存介质 |
CN113793147B (zh) * | 2021-08-02 | 2023-11-24 | 杭州复杂美科技有限公司 | 一种区块链隐藏交易金额的方法、设备及储存介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106789080B (zh) | 2020-05-15 |
CN106603243B (zh) | 2020-06-16 |
CN106789080A (zh) | 2017-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106603243A (zh) | 数字签名的私钥处理方法和系统 | |
Wang et al. | Privacy-preserving public auditing for data storage security in cloud computing | |
JP4855940B2 (ja) | 暗号用鍵の世代の効率的な管理 | |
CN109474423A (zh) | 数据加解密方法、服务器及存储介质 | |
CN108377237A (zh) | 用于云端密文存储的具有所有权管理的数据去重系统及其数据去重方法 | |
Sun et al. | Non-repudiation storage and access control scheme of insurance data based on blockchain in IPFS | |
CN112104619A (zh) | 基于外包密文属性加密的数据访问控制系统和方法 | |
CN114175028B (zh) | 密码假名映射方法、计算机系统、计算机程序和计算机可读介质 | |
Luo et al. | An effective integrity verification scheme of cloud data based on BLS signature | |
Win et al. | Privacy enabled digital rights management without trusted third party assumption | |
Yu et al. | Provably secure identity based provable data possession | |
CN108768975A (zh) | 支持密钥更新和第三方隐私保护的数据完整性验证方法 | |
Liu et al. | Integrity auditing for multi-copy in cloud storage based on red-black tree | |
Kang et al. | A decentralized identity-based blockchain solution for privacy-preserving licensing of individual-controlled data to prevent unauthorized secondary data usage | |
CN106209365A (zh) | 云环境下利用备份数据在用户撤销时重签名的方法 | |
Xie et al. | A novel blockchain-based and proxy-oriented public audit scheme for low performance terminal devices | |
CN107360252B (zh) | 一种异构云域授权的数据安全访问方法 | |
Rewadkar et al. | Cloud storage system enabling secure privacy preserving third party audit | |
Arulananth et al. | Multi party secure data access management in cloud using user centric block chain data encryption | |
CN109586917B (zh) | 基于非对称密钥池的抗量子计算的签章方法和签章系统 | |
Reedy et al. | A Secure Framework for Ensuring EHR's Integrity Using Fine-Grained Auditing and CP-ABE | |
Pervez et al. | Oblivious access control policies for cloud based data sharing systems | |
Premkamal et al. | Traceable CP-ABE for outsourced big data in cloud storage | |
Ming et al. | Certificateless public auditing scheme with sensitive information hiding for data sharing in cloud storage | |
Ahmed et al. | Integrity verification for an optimized cloud architecture |
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 |