基于非对称密钥体系的私钥保护方法

文档序号:8499879阅读:710来源:国知局
基于非对称密钥体系的私钥保护方法
【技术领域】
[0001]本发明涉及一种基于非对称密钥体系的私钥保护方法,用于手机银行、手机APP等电子签名数字证书密钥加密、身份验证领域。
【背景技术】
[0002]目前在纯软解决方案中尚无同类可比技术。
[0003]常规的方法是单CPU运算,即私钥在客户端做独立的加密运算后提交给验证方使用公钥做解密验签。
[0004]与本技术方案最接近的现有技术是U盾,从安全性角度参考硬件U盾进行分析,硬件U盾采用独立的CPU和内存空间进行加密运算,目的在于防止黑客木马跟踪内存进程盗取私钥或伪造签名。

【发明内容】

[0005]为了于防止黑客木马跟踪内存进程盗取私钥或伪造签名,本发明提供了一种基于非对称密钥体系的私钥保护方法。
[0006]本发明的技术方案是:
[0007]基于非对称密钥体系的私钥保护方法,在创建密钥对和/或签名加密时采用分布式运算。
[0008]将公钥拆分成不同的公钥片段,进行所述分布式运算时,在代理服务器端CPU和用户终端CPU分别完成不同层次的加密计算。
[0009]在分布式运算时,仅对公钥进行分布式运算,而不对私钥进行分布式运算,私钥不变,使用户端的私钥和代理服务器端端的公钥构成非对称关系。
[0010]创建密钥对时采用分布式运算的方法具体包括以下步骤:
[0011]S1、在代理服务器端端随机生成两个素数Pai和P A2,Pai和P A2相乘得到公钥P Λ;
[0012]s2、在用户终端赋值E = Pa,并在用户终端随机生成两个素数P和Q,计算模N =P.Q ;
[0013]S3、在用户终端计算 R= (P-1).(Q-1);
[0014]84、销毁?和0;
[0015]s5、在用户终端比较E和R,当E>R时,对E进行除余运算,直到E〈R时,判断E是否小于RSA_F4 (65537),如果是,则重复步骤si,否则进行下一步;
[0016]s6、在用户终端计算E关于R的模反元素dA;
[0017]87、销毁1^“;
[0018]s8、在用户终端生成随机数R,R e [1,N-1];
[0019]s9、在用户终端计算得到C = M"dA(mod N);
[0020]slO、在代理服务器端上计算得到C’ = C~PA1 (mod N);
[0021]sll、在代理服务器端上比较C’ == C,如果是,则重复步骤Si,否则进行下一步;
[0022]sl2、在代理服务器端上计算R’ = C"PB(mod N);
[0023]sl3、在代理服务器端上比较R’ == R,如果是,则重复步骤Si,否则完成计算。
[0024]私钥在用户终端产生,并且对私钥进行加密计算后,销毁私钥加密计算的公式参数,使私钥不离开用户终端。
[0025]所述签名加密的方法,包括对公钥分拆和验签,将公钥分拆出一个公钥片段,并以此作为影子公钥经过加密推送给可信验签端,由代理服务器端CPU和可信验签端的CPU对公钥进行分布式运算。
[0026]签名加密时采用分布式运算的方法具体包括以下步骤:
[0027]kl、在代理服务器端上计算C’ = C"PA1 (mod N);
[0028]k2、在可信验签端计算 H’ = C’ ~PA2 (mod N);
[0029]k3、在可信验签端填充得到H = unPad (H');
[0030]k4、在可信验签端比较H== hash (Μ’ ),如果是,则验签通过,否则验签不通过。
[0031]本发明增加了影子公钥的概念和逻辑,必须经由影子公钥参与分布式运算,私钥加密或签名密文才能通过公钥验签。避免加密运算与黑客木马等入侵者在同一个CPU和内存环境中工作,避免了由于私钥泄露而被盗用签名的问题。
[0032]用户端私钥存储仍然采用离散存储冗余运算的方法;而非简单的以文件形式保存私钥。这大大增强了私钥被盗取的难度。加之本次申报的新方法,确保即便是万一私钥被盗取了也无法伪造/冒用签名。并且在本发明实施的过程中,无需改变原有非堆成密钥体系和变原有PKI证书架构。
【附图说明】
[0033]图1是公钥分拆关系示意图;
[0034]图2是公钥拆分-密钥对生成示意图;
[0035]图3是公钥拆分-验签示意图。
[0036]图中:
[0037]A:使用共钥密码体系的用户,即用户终端;
[0038]B:提供联合验签的服务提供方,即代理服务端;
[0039]C:可信验签端,例如银行一一此处的“C”含义与公式演算过程中的“C”、“C’ ”的含义不同;其中公式演算过程的C是密文。
【具体实施方式】
[0040]下面结合附图对本发明的技术方案进行具体阐述,需要指出的是,本发明的技术方案不限于实施例所述的实施方式,本领域的技术人员参考和借鉴本发明技术方案的内容,在本发明的基础上进行的改进和设计,应属于本发明的保护范围。
[0041]如图1所示,本发明所述基于非对称密钥体系的私钥保护方法:
[0042]理论推导,其中,M为明文,N为公共模数,Pa为用户A的公钥,dA为用户A的私钥,Pai和P A2为用户A的公钥片段,C为通过私钥d A生成的密文,C’是指代理服务器端端B对密文C的二次加密文。
[0043]非对称关系可表述为(dAXPA) = M(mod N)
[0044]因为:Pa=PaiXPa2
[0045]所以:M~(dA X Pai X ΡΑ2) = M (mod N)
[0046]Μ~ ((dAXPA1) ΧΡΑ2) = M (mod N)
[0047]即:PA2与(dAXPA1)构成关于N的非对称关系
[0048]公式演算
[0049]对明文M,使用dA做私钥加密:
[0050]C = M'dA(mod N)
[0051]对密文C,使用Pai做公钥加密:
[0052]C,= C'Pai (mod N)
[0053]即:C,=(M'dA (mod N)) 'Pai (mod N)
[0054]= (M' (dAXPA1)) (mod N)
[0055]对密文C’,使用PA2做公钥解密:
[0056]C,"PA2 (mod N)
[0057]= (C'PA1 (mod N)) 'PA2 (mod N)
[0058]= C~ (PaiXPa2) (mod N)
[0059]= C~PA(mod N)
[0060]= M
[0061]M’:待验证消息。
[0062]如图2所示,创建密钥对时采用分布式运算的方法具体包括以下步骤:
[0063]S1、在代理服务器端上随机生成两个素数Pai和P A2相乘得到公钥P A;
[0064]s2、在用户端赋值E = Pa,并在用户终端随机生成两个素数P和Q,计算模N =P.Q ;
[0065]s3、在用户端计算 R= (P-1).(Q-1);
[0066]84、销毁?和0;
[0067]s5、在用户端比较E和R,当E>R时,对E进行除余运算,直到E〈R时,判断E是否小于RSA_F4 (65537),如果是,则重复步骤si,否则进行下一步;
[0068]s6、在用户终端计算E关于R的模反元素dA;
[0069]s7j'f|$R*E;
[0070]s8、在用户端生成随机数R,R e [1,N-1];
[0071]s9、在用户端计算得到C = M"dA(mod N);
[0072]slO、在代理服务器端上计算得到C’ = C~PA1 (mod N);
[0073]sll、在代理服务器端上比较C’ == C,如果是,则重复步骤Si,否则进行下一步;
[0074]sl2、在代理服务器端上计算R’ = C"PA2 (mod N);
[0075]sl3、在代理服务器端上比较R’ == R,如果是,则重复步骤Si,否则完成计算。
[0076]如图3所示,签名加密时采用分布式运算的方法具体包括以下步骤:
[0077]kl、在代理服务器端上计算C’ = C"PA1 (mod N);
[0078]k2、在可信验签端计算 H’ = C’ ~PA2 (mod N);
[0079]k3、在可信验签端填充得到H = unPad (H’);
[0080]k4、在可信验签端比较H== hash (Μ’ ),如果是,则验签通过,否则验签不通过。
【主权项】
1.基于非对称密钥体系的私钥保护方法,其特征在于,该方法包括: 在创建密钥对和/或签名加密时采用分布式运算。
2.根据权利要求1所述的方法,其特征在于,在创建密钥对时,将服务器端的公钥在代理服务器端拆分成不同的公钥片段,进行所述分布式运算时,在代理服务器端CPU和用户端CPU分别完成不同层次的加密计算。
3.根据权利要求2所述的方法,其特征在于,在分布式运算时,由代理服务器端CPU和用户端CPU完成对公钥进行分布式运算,而不对私钥进行分布式运算,私钥不变,使用户端的私钥和代理服务器端端的公钥构成非对称关系。
4.根据权利要求1、2或3所述的方法,其特征在于,创建密钥对时采用分布式运算的方法具体包括以下步骤: S1、在代理服务器端端随机生成两个素数Pai和P A2,将Pai和P A2相乘得到公钥P A; s2、在用户端赋值E = Pa,并在用户终端随机生成两个素数P和Q,计算模N = P.Q ; s3、在用户端计算R = (P-1).(Q-1); s4、销毁P和Q; s5、在用户端比较E和R,当E>R时,对E进行除余运算,直到E〈R时,判断E是否小于RSA_F4 (65537),如果是,则重复步骤si,否则进行下一步;s6、在用户端计算E关于R的模反元素dA;s7、销毁R和E ; s8、在用户端生成随机数R,R e [1,N-1]; s9、在用户端计算得到C = M"dA(mod N); slO、在代理服务器端上计算得到C’ =C~PA1 (mod N); sll、在代理服务器端上比较C’ == C,如果是,则重复步骤Si,否则进行下一步; sl2、在代理服务器端上计算R’ = C"PA2 (mod N); sl3、在代理服务器端上比较R’ == R,如果是,则重复步骤Si,否则完成计算。
5.根据权利要求1或2所述的方法,其特征在于,私钥在用户端产生,并且对私钥进行加密计算后,销毁私钥加密计算的公式参数,使私钥不离开用户端。
6.根据权利要求1或2所述的方法,其特征在于,签名加密时采用分布式运算的方法,包括对公钥分拆和验签,将公钥分拆出一个公钥片段,并以此作为影子公钥经过加密推送给可信验签端,由代理服务器端CPU和可信验签端的CPU对公钥进行分布式运算。
7.根据权利要求1、5或6所述的方法,其特征在于,所述签名加密的方法具体包括以下步骤: kl、在代理服务器端上计算C’ = C"PA1 (mod N); k2、在可信验签端计算H’ = C,"PA2 (mod N); k3、在可信验签端填充得到H = unPad (H'); k4、在可信验签端比较H== hash (Μ’),如果是,则验签通过,否则验签不通过。
8.根据权利要求7所述的方法,其特征在于,步骤kl在代理服务器端上计算C’=C"PA1 (mod N)之后通过安全通道进入可信验签端。
【专利摘要】基于非对称密钥体系的私钥保护方法,在创建密钥对和/或签名加密时采用分布式运算。将公钥拆分成不同的公钥片段,其中一段用于二次加密,另一段用于解密和验签。进行所述分布式运算时,在代理服务器端CPU和用户终端CPU分别完成不同层次的加密计算。在分布式运算时,仅对公钥进行,而不对私钥进行分布式运算,私钥不变,使私钥和代理服务器端上的公钥构成非对称关系。本发明增加了影子公钥的概念和逻辑。必须经由影子公钥参与分布式运算,私钥加密或签名密文才能通过公钥验签。避免加密运算与黑客木马等入侵者在同一个CPU和内存环境中工作,避免了由于私钥泄露而被盗用签名的问题。
【IPC分类】H04L9-32, H04L9-08
【公开号】CN104821884
【申请号】CN201510246652
【发明人】吕文华, 宛海加, 王家辰
【申请人】收付宝科技有限公司
【公开日】2015年8月5日
【申请日】2015年5月14日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1