CN118233089A - 一种rsa密钥生成和私钥恢复方法 - Google Patents
一种rsa密钥生成和私钥恢复方法 Download PDFInfo
- Publication number
- CN118233089A CN118233089A CN202410312760.XA CN202410312760A CN118233089A CN 118233089 A CN118233089 A CN 118233089A CN 202410312760 A CN202410312760 A CN 202410312760A CN 118233089 A CN118233089 A CN 118233089A
- Authority
- CN
- China
- Prior art keywords
- user
- information
- rsa
- private
- key
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 20
- 238000011084 recovery Methods 0.000 title claims abstract description 19
- 238000013507 mapping Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
RSA密钥生成和私钥恢复方法:当生成用户RSA密钥时,用户输入私密信息,私密信息被转化为数字信息,密码组件或密码装置利用用户私密信息生成素数p、q,计算n=pq,生成RSA公钥(e,n)和私钥(d,n);当需要恢复用户RSA私钥密钥时,用户输入私密信息,密码组件或密码装置利用用户私密信息生成与最初同样的素数p、q,利用公钥(e,n)恢复出私钥(d,n);用户私密信息包括用户知晓的信息或/和用户拥有的信息;恢复RSA私钥时,密码组件或密码装置检查利用用户私密信息生成的素数p、q的乘积pq与公钥参数n是否相同从而确定用户输入的信息是否正确;公钥参数e可携带生成素数p、q的额外参数。
Description
技术领域
本发明属于密码技术领域,特别是一种RSA密钥生成和私钥恢复方法。
背景技术
RSA密码体制是一种公开密钥密码体制,其密钥包括公钥和私钥,其中公钥可公开,私钥由密钥拥有者比如用户安全保存和使用(比如保存在专门的密码装置比如USB Key或用户计算装置比如计算机、移动终端中并在装置中使用)。RSA密钥的这种使用方式存在如下问题:
(1)由于存储私钥的密码装置比如USB Key或计算装置比如计算机被损坏,用户RSA私钥可能丢失、毁坏,而用户希望或需要继续使用以前的私钥(比如解密之前用RSA公钥加密的数据),这时就需要恢复用户RSA私钥;对此,目前通常的做法是将用户RSA私钥集中保存在一个密钥管理中心(Key Management Center,KMC),在用户需要恢复其私钥时由KMC通过安全的方式为用户恢复私钥;这种方式最大问题在于需要运行、维护一个安全性要求极高的KMC,且私钥恢复过程复杂;
(2)用户必须在专门的密码装置(比如USB Key)或使用固定的计算装置(比如计算机、移动终端)中存储、使用RSA私钥,这给用户带来了不便,而且将用户RSA私钥长期保存在计算机、移动终端等计算装置中存在私钥被窃取、泄漏的风险。
发明内容
本发明的目的是针对RSA私钥在保存、使用过程中存在的私钥毁坏、恢复麻烦、失窃、泄漏的问题,提出一种解决方案。
针对本发明的目的,本发明提出的技术方案为一种RSA密钥生成和私钥恢复方法,具体如下。
当生成用户RSA密钥时,用户输入私密信息,密码组件或密码装置利用用户私密信息生成素数p、q,计算n=pq,生成RSA公钥(e,n)和私钥(d,n)(公钥(e,n)被发布,比如通过数字证书发布);
当需要恢复用户RSA私钥密钥时,用户输入私密信息,密码组件或密码装置利用用户私密信息生成(恢复)(与密钥初始生成时同样的)素数p、q,利用p、q及公钥(e,n)恢复出私钥(d,n);
所述用户私密信息包括用户知晓的信息(比如PIN码,个人房产证件序号、毕业证书序号等)或/和用户拥有的信息(比如人体生物特征,比如指纹、虹膜等生物特征等,或者其他能映射为整数的信息);若用户私密信息为用户知晓的信息,则在生成或恢复用户RSA密钥时由用户通过输入设备输入私密信息(比如通过软硬键盘等);若用户私密信息为用户拥有的信息,则在生成或恢复用户RSA密钥时用户通过传感设备或专用信息获取设备输入私密信息(比如通过指纹获取设备、摄像头等输入用户指纹、脸像等);用户输入的私密信息被转化为(二进制)数字信息;所述密码组件或密码装置为具有RSA密钥生成、恢复功能的软件或硬件或软硬结合组件或装置;密码组件或密码装置利用同样的用户私密信息生成或恢复出同样的素数p、q。
密码组件或密码装置如何利用用户私密信息生成(恢复)素数p、q不属于本发明的内容,可以有各种方式,只要能实现此功能即可。
恢复私钥时密码组件或密码装置可以从公钥(e,n)获得n,或通过其他方式获得n。
若用户私密信息为用户人体生物特征,则由于人体生物特征的模糊性、利用用户生物特征生成素数p、q具有一定的不确定性,比如由于用户生物特征获取的位置不同,采用同样的方式生成(恢复)的素数p、q可能不同(但不一定就不同,好的转换、映射方案能减少这种可能性),因此,无法保证在恢复用户RSA私钥时利用用户生物特征生成的素数p、q正好与最初生成的素数p、q一样;还有,若生成素数p、q的用户私密信息是用户知晓的信息,那么,恢复用户RSA私钥时用户输入的信息有可能出错,从而无法恢复出与最初同样的素数p、q,对此,在恢复用户RSA私钥时可采用如下方式应对这些问题:
在恢复RSA私钥时,密码组件或密码装置检查利用用户私密信息生成(恢复)的素数p、q的乘积pq与公钥参数n是否相同,若不同,则返回错误提示(之后用户重新输入私密信息,或者在用户重新输入私密信息超过一定次数后,密码组件或密码装置中止RSA私钥恢复过程)。
若RSA密码运算采用了基于协同计算秘密的密码协同计算方式(比如基于秘密共享的密码协同计算方式),则密码组件或密码装置在恢复出私钥参数d后,利用d(可能还有φ(n)=(p-1)(q-1))重新生成协同计算秘密,更新各参与方的协同计算秘密(之后各参与方,包括密码组件或密码装置以及其他的协同计算装置或系统,使用更新的协同计算秘密进行密码协同计算)。
在具体实施中,利用用户私密信息生成素数p、q可能需要使用一些参数(比如,由于映射转换需要,或者为了使得同样的私密信息生成不同的素数p、q,从而生成不同的RSA密钥对),则可以采用如下方式通过公钥参数e携带用于生成素数p、q的参数:
在生成用户RSA密钥时,密码组件或密码装置所选择的整数e的二进制数位串中的部分数位是或者对应生成素数p、q所需的参数;
在恢复用户RSA私钥时,密码组件或密码装置从整数e的二进制数位串中的相应部分获得生成素数p、q所需的参数。
在具体实施中,为了区分利用用户敏感信息生成的RSA密钥和采用随机选择素数p、q的方式生成的RSA密钥,密码组件或密码装置可以在整数e的二进制数位串中的部分数位设定特定的标志(随机选择的e的对应数位恰好与此标志一致的概率极小)。
对于以上所述RSA密钥生成和私钥恢复方法,用于生成RSA密钥的用户私密信息是一种信息或者是多种信息的组合(两种或两种以上的私密信息的组合,比如PIN码+人体生物特征)。
基于本发明的方法,当用户RSA私钥丢失时,用户可通过重新输入相应的私密信息从而恢复出用户RSA私钥,且这些恢复操作可以在用户端的密码组件或密码装置中完成,无需一个专门的KMC来集中存储、恢复用户的RSA私钥;基于本发明的方法,用户端甚至无需在固定的装置保存用户的RSA私钥,用户可以在需要使用其RSA私钥时,通过输入私密信息随时恢复出RSA私钥,而在使用完后丢弃、销毁RSA私钥。
具体实施方式
下面对本发明的具体实施方式进行说明。以下内容仅是对本发明可能实施方式的说明,不代表全部可能的实施方式,不作为对本发明保护范围的限制。
在本发明的具体实施中,用户私密信息可以是用户知晓的信息,比如PIN码(Personal Identification Number),个人房产证证件号、个人毕业证证件号等,或者用户拥有的信息,比如人体生物特征,比如指纹、虹膜、脸像等,或其他能映射为整数的信息,或者多种信息的组合,比如PIN码+个人证件号码,PIN码+人体生物特征等;若用户私密信息为用户知晓的信息,则在生成(恢复)用户RSA密钥时由用户通过输入设备输入私密信息(比如通过软硬键盘等);若用户私密信息为用户拥有的信息,则在生成(恢复)用户RSA密钥时用户通过传感设备或专用信息获取设备输入私密信息(比如通过指纹获取设备、摄像头等);用户输入的私密信息被转化为(二进制)数字信息供密码组件或密码装置使用。
密码组件或密码装置如何利用用户私密信息生成(恢复)素数p、q,可以有各种方式,只要能利用用户私密信息生成(恢复)素数p、q即可(这不属于本发明的内容)。若用户私密信息是用户知晓的信息,可能的方式包括先计算用户私密信息的散列值(哈希值、杂凑值),然后在散列值的基础上按约定的方式分别生成素数p、q,比如通过多次取散列值、然后拼接形成两个初始整数,然后在此基础上进行进一步处理,直到得到的素数p、q为止(比如先得到一个奇数,若不为素数,
则不断加2,直到得到的数是素数);当然,还可以采用其他方式。
若用户私密信息是用户的生物特征信息,比如指纹、虹膜、脸像等,或其他能映射为整数的信息,则可以采用先将用户私密信息映射为一个整数k,然后再利用整数k生成、得到素数p、q的方式,对此有很多成熟的方案(比如,通过对k取多次散列值、散列值拼接,得到两个初始整数k1、k2,然后再利用整数k1、k2生成、得到素数p、q),或者,采用先将用户私密信息映射为两个不同的整数k1、k2,然后再利用整数k1、k2生成、得到素数p、q的方式,或者,采用其他将用户生物特征映射、转换为素数p、q的方案(本发明对此没有限定、限制)。
本发明对从用户私密信息映射得到p、q的方法没有限制,但是,无论采用何种方法,所采用的方法应该使得基于公开信息(比如n、e、e1)无法得到(破解)p、q(显然的)。
为了使得同样的私密信息能够生成不同的RSA密钥,或者出于其他原因或目的,在利用私密信息生成素数p、q的过程可以或者需要使用额外的参数,比如,在计算用户知晓的私密信息的散列值时,可以将私密信息与额外参数合并后再计算散列值,这样同样的私密信息可以生成不同的素数p、q,从而生成不同的RSA密钥;再比如,将用户私密信息映射为一个整数k(或两个整数k1、k2)可以使用额外参数作为输入的一部分,输入参数不同,映射得到的整数k(k1、k2)不同,由此得到不同的素数p、q,等等。
生成素数p、q的额外参数可以作为公钥参数e的一部分包含在公钥参数e中,具体地,可以先初选一个大整数,在其二进制数位串中选取一部分数位存放额外参数,其他数位存放固定数,然后在保持存放额外参数的二进制数位中所存放的数不变的情况下(其他数位可变),在这个包含额外参数的大整数基础上生成包含额外参数的公钥参数e,生成的e需满足与φ(n)=(p-1)(q-1)互素的要求(通常e为小于φ(n)的整数,若因包含的额外参数所占有的数位太多,可以使得e为大于φ(n)、甚至大于n的整数)。
在具体实施中,将区分随机生成的RSA密钥和利用敏感信息生成的RSA密钥的标志包含在公钥参数e中的方式与将额外参数包含在公钥参数e中的方式类似,存放标志的数位个数以及设定的标志应使得随机选择的e的对应数位恰好与此标志一致的概率在可接受的范围,比如小于千分之一。
若用户私密信息是两种或多种信息的组合,则可以利用两种或多种信息组合后的信息生成素数p、q:比如,私密信息是PIN码+用户房产证序列号,则可以将这两种信息的数字信息组合为一个字串,然后生成素数p、q;或者,将其中一种信息作为用另一种信息生成素数p、q的控制参数,比如私密信息是PIN码+指纹,则可以将PIN码作为利用用户指纹生成素数p、q的控制参数(同样的指纹,PIN码不同,生成的素数p、q不同);或者,利用不同的私密信息先分别生成中间整数,然后利用分别生成的中间整数组合生成素数p、q,比如私密信息是PIN码+指纹,先用PIN码生成整数k1,然后用指纹生成整数k2,之后利用k1、k2组合生成素数p、q。
无论采用何种方式生成p、q,生成素数p、q的步骤应该是确定性的,中间没有参入随机信息(数据),没有随机选择的不确定步骤。
在具体实施中,密码组件或密码装置可以为软件或硬件或软硬结合组件或装置,比如,可以是计算机、移动终端中的一个软件组件、程序,可以是由计算机、移动终端等通用计算装置构成的装置,私密信息获取设备可以是密码组件或密码装置的一部分,也可以是密码组件或密码装置之外的设备。
其他未说明的具体技术实施,对于相关领域的技术人员而言属于现有技术、公知知识。
Claims (8)
1.一种RSA密钥生成和私钥恢复方法,其特征是:
当生成用户RSA密钥时,用户输入私密信息,密码组件或密码装置利用用户私密信息生成素数p、q,计算n=pq,生成RSA公钥(e,n)和私钥(d,n);
当需要恢复用户RSA私钥密钥时,用户输入私密信息,密码组件或密码装置利用用户私密信息生成素数p、q,利用p、q及公钥(e,n)恢复出私钥(d,n);
所述用户私密信息包括用户知晓的信息或/和用户拥有的信息;若用户私密信息为用户知晓的信息,则在生成或恢复用户RSA密钥时由用户通过输入设备输入私密信息;若用户私密信息为用户拥有的信息,则在生成或恢复用户RSA密钥时用户通过传感设备或专用信息获取设备输入私密信息;用户输入的私密信息被转化为数字信息;所述密码组件或密码装置为具有RSA密钥生成、恢复功能的软件或硬件或软硬结合组件或装置;密码组件或密码装置利用同样的用户私密信息生成或恢复出同样的素数p、q。
2.根据权利要求1所述的RSA密钥生成和私钥恢复方法,其特征是:
在恢复RSA私钥时,密码组件或密码装置检查利用用户私密信息生成的素数p、q的乘积pq与公钥参数n是否相同,若不同,则返回错误提示。
3.根据权利要求1所述的RSA密钥生成和私钥恢复方法,其特征是:
用于生成RSA密钥的用户私密信息是一种信息或者是多种信息的组合。
4.根据权利要求1所述的RSA密钥生成和私钥恢复方法,其特征是:
若RSA密码运算采用了基于协同计算秘密的密码协同计算方式,则密码组件或密码装置在恢复出私钥参数d后,利用d重新生成协同计算秘密,更新各参与方的协同计算秘密。
5.根据权利要求1所述的RSA密钥生成和私钥恢复方法,其特征是:
用户密码组件或密码装置不保存用户RSA私钥;当需要使用用户RSA私钥进行密码运算时,密码组件或密码装置利用用户输入的私密信息恢复出用户的RSA私钥进行密码运算,使用完毕后销毁用户RSA私钥。
6.根据权利要求1所述的RSA密钥生成和私钥恢复方法,其特征是:
密码组件或密码装置在整数e的二进制数位串中的部分数位设定特定的标志,以区分利用用户敏感信息生成的RSA密钥和采用随机选择素数p、q的方式生成的RSA密钥。
7.根据权利要求1-6中任一项所述的RSA密钥生成和私钥恢复方法,其特征是:
若利用用户私密信息生成素数p、q需要使用额外参数,则在生成用户RSA密钥时,密码组件或密码装置所选择的整数e的二进制数位串中的部分数位是或者对应生成素数p、q所需的参数;在恢复用户RSA私钥时,密码组件或密码装置从整数e的二进制数位串中的相应部分获得生成素数p、q所需的参数。
8.根据权利要求7所述的RSA密钥生成和私钥恢复方法,其特征是:
将生成素数p、q的额外参数包含在公钥参数e中方式包括:初选一个大整数,在其二进制数位串中选取一部分存放额外参数,大整数的其他数位存放固定数,然后在保持存放额外参数的二进制数位中所存放的数不变的情况下,在这个包含额外参数的大整数基础上生成包含额外参数的公钥参数e,且生成的e与φ(n)=(p-1)(q-1)互素。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410218635 | 2024-02-28 | ||
CN2024102186352 | 2024-02-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118233089A true CN118233089A (zh) | 2024-06-21 |
Family
ID=91498777
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410312760.XA Pending CN118233089A (zh) | 2024-02-28 | 2024-03-19 | 一种rsa密钥生成和私钥恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118233089A (zh) |
-
2024
- 2024-03-19 CN CN202410312760.XA patent/CN118233089A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11811923B2 (en) | Single node multi-party encryption | |
JP6504013B2 (ja) | 暗号処理方法、暗号処理装置、および暗号処理プログラム | |
Chang et al. | Cancelable multi-biometric approach using fuzzy extractor and novel bit-wise encryption | |
Barman et al. | Fingerprint-based crypto-biometric system for network security | |
US20060036857A1 (en) | User authentication by linking randomly-generated authentication secret with personalized secret | |
JP2000315999A (ja) | 暗号鍵生成方法 | |
CN102640450A (zh) | 对安全令牌分配密钥的方法、操作安全令牌的方法、存储媒介和安全令牌 | |
WO2002080430A1 (en) | Method and apparatus for camouflaging of data, information and functional transformations | |
CN111739200B (zh) | 一种指纹电子锁的加密、解密认证方法和指纹电子锁 | |
US7512794B2 (en) | System and method for authentication | |
CN110719172B (zh) | 区块链系统中的签名方法、签名系统以及相关设备 | |
RU2316120C2 (ru) | Биометрическая система аутентификации | |
Suresh et al. | Two-factor-based RSA key generation from fingerprint biometrics and password for secure communication | |
CN114065169B (zh) | 一种隐私保护生物认证方法和装置、电子设备 | |
CN111368317A (zh) | 一种计算机数据加密系统及方法 | |
CN118233089A (zh) | 一种rsa密钥生成和私钥恢复方法 | |
Abiega-L’Eglisse et al. | A new fuzzy vault based biometric system robust to brute-force attack | |
Alarcon-Aquino et al. | Biometric Cryptosystem based on Keystroke Dynamics and K-medoids | |
CN118054904A (zh) | 一种动态可变的rsa密钥的生成和使用方法 | |
Suresh et al. | A stable cryptographic key generation from fingerprint biometrics using Gray code for secure data storage | |
CN116579005B (zh) | 一种用户数据安全存储管理方法 | |
Arumugam | An effective hybrid encryption model using biometric key for ensuring data security. | |
Venkatachalam et al. | Cryptography key generation using biometrics | |
EP3916592A1 (en) | Distributed data processing with systems comprising hsm, se and other secure storage elements | |
CN117113377A (zh) | 一种基于矩阵的密码锁密码加密方法及加密系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |