CN111949996A - 安全私钥的生成方法、加密方法、系统、设备及介质 - Google Patents
安全私钥的生成方法、加密方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN111949996A CN111949996A CN201910406116.8A CN201910406116A CN111949996A CN 111949996 A CN111949996 A CN 111949996A CN 201910406116 A CN201910406116 A CN 201910406116A CN 111949996 A CN111949996 A CN 111949996A
- Authority
- CN
- China
- Prior art keywords
- private key
- conversion
- segment
- hardware identifier
- data
- 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 76
- 238000006243 chemical reaction Methods 0.000 claims abstract description 123
- 238000013507 mapping Methods 0.000 claims description 45
- 238000004364 calculation method Methods 0.000 claims description 44
- 238000004422 calculation algorithm Methods 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 241001074639 Eucalyptus albens Species 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种安全私钥的生成方法,能够实现私钥的可信存储,该安全私钥的生成方法包括:获取原始私钥,根据预设规则对原始私钥进行第一转换,得到中间私钥;获取设备硬件的硬件标识,根据硬件标识对中间私钥进行第二转换,得到安全私钥。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种安全私钥的生成方法、加密方法、系统、计算机设备及计算机可读存储介质。
背景技术
现实场景中,用户通常会使用密钥对实现数据加密或数字签名等目的。加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容,所以数据加密可以保护数据,防止监听攻击。数字签名是为了实现身份认证,是用来判断某个身份的真实性,确认身份后,系统才可以依据不同的身份给予不同的权限。无论是何种场景,使用密钥对加密必然会存在私钥和公钥,公钥可以对外公开,私钥则由用户自己保存。通常,私钥做为核心数据必须保存在终端,而一旦保存就存在各种被窃取的风险。
目前,现有技术中没有解决上述技术问题的方案。
发明内容
本发明的目的在于提供一种安全私钥的生成方法、加密方法、系统、计算机设备和计算机可读存储介质,能够实现私钥的可信存储。
本发明的一个方面提供了一种安全私钥的生成方法,上述方法包括:获取原始私钥,根据预设规则对上述原始私钥进行第一转换,得到中间私钥;获取设备硬件的硬件标识,根据上述硬件标识对上述中间私钥进行第二转换,得到安全私钥。
可选的,上述根据预设规则对上述原始私钥进行第一转换,得到中间私钥,包括:获取第一预设转换表,其中,上述第一预设转换表包括多条第一映射关系,每条上述第一映射关系均包括原始数据及与上述原始数据对应的第一转换数据;在上述第一预设转换表中,以上述原始私钥作为上述原始数据,从上述多条映射关系中确定出与上述原始私钥对应的第一目标映射关系;将上述原始私钥替换为上述第一目标映射关系中的第一转换数据,以得到上述中间私钥。
可选的,上述根据上述硬件标识对上述中间私钥进行第二转换,得到安全私钥,包括:对上述硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;根据上述标识长度将上述中间私钥等分,得到N个第一分段私钥,其中,N为大于等于1的正整数;根据上述第三转换后的硬件标识和N个上述第一分段私钥得到上述安全私钥。
可选的,上述根据上述第三转换后的硬件标识和N个上述第一分段私钥得到上述安全私钥,包括:步骤A1:将上述第三转换后的硬件标识和N个上述第一分段私钥中第1个上述第一分段私钥按照预设算法进行计算,得到第1个第一中间计算结果;步骤A2:判断i是否等于N,当i不等于N时,执行步骤A3,当i等于N时,执行步骤A4,其中,i的初始值为1;步骤A3:获取N个上述第一分段私钥中的第i+1个上述第一分段私钥,将第i个上述第一中间计算结果与第i+1个上述第一分段私钥按照上述预设算法进行计算,得到第i+1个上述第一中间计算结果;步骤A4:将计算出的所有上述第一中间计算结果进行组合,得到上述安全私钥。
本发明的另一个方面提供了一种加密方法,上述方法包括:获取安全私钥,其中,上述安全私钥是根据上述任一实施例所述的方法得到的;根据上述安全私钥和预设加密库对待加密数据进行加密,得到加密结果。
可选的,上述根据上述安全私钥和预设加密库对待加密数据进行加密,得到加密结果,包括:获取设备硬件的硬件标识,对上述硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;根据上述标识长度对上述安全私钥等分,得到N个第二分段私钥,其中,N为大于等于1的正整数;根据上述第三转换后的硬件标识和N个上述第二分段私钥得到上述中间私钥;根据上述中间私钥对上述待加密数据进行加密,得到上述加密结果。
可选的,上述根据上述第三转换后的硬件标识和N个上述第二分段私钥得到上述中间私钥,包括:步骤B1:将上述第三转换后的硬件标识和N个上述第二分段私钥中第1个上述第二分段私钥按照预设算法进行计算,得到第1个第二中间计算结果;步骤B2:判断j是否等于N,当j不等于N时,执行步骤B3,当j等于N时,执行步骤B4,其中,j的初始值为1;步骤B3:获取N个上述第二分段私钥中的第j+1个上述第二分段私钥,将第三转换后的硬件标识、第j个上述第二中间计算结果与第j+1个上述第二分段私钥按照上述预设算法进行计算,得到第j+1个上述第二中间计算结果;步骤B4:将计算出的所有上述第二中间计算结果进行组合,得到上述中间私钥。
可选的,上述根据上述中间私钥对上述待加密数据进行加密,得到加密结果,包括:获取第二预设转换表,其中,上述第二预设转换表包括多条第二映射关系,每条上述第二映射关系均包括输入元素及与上述输入元素对应的第二转换数据;在上述第二预设转换表中,以上述中间私钥和上述待加密数据作为上述输入元素,从上述多条第二映射关系中确定与上述中间私钥和上述待加密数据对应的第二目标映射关系;根据上述第二目标映射关系中的第二转换数据得到上述加密结果。
本发明的再一个方面提供了一种安全私钥的生成系统,上述系统包括:第一转换模块,用于获取原始私钥,根据预设规则对上述原始私钥进行第一转换,得到中间私钥;第二转换模块,用于获取设备硬件的硬件标识,根据上述硬件标识对上述中间私钥进行第二转换,得到安全私钥。
本发明的又一个方面提供了一种加密系统,上述系统包括:第一转换模块,用于获取原始私钥,根据预设规则对上述原始私钥进行第一转换,得到中间私钥;第二转换模块,用于获取设备硬件的硬件标识,根据上述硬件标识对上述中间私钥进行第二转换,得到安全私钥。
本发明的又一个方面提供了一种计算机设备,该计算机设备包括:存储器、处理器以及存储在上述存储器上并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现上述任一实施例所述的安全私钥的生成方法和/或加密方法。
本发明的又一个方面提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述任一实施例所述的安全私钥的生成方法和/或加密方法。
本发明提供的安全私钥的生成方法,在将原始私钥落地之前,先利用预设规则对原始私钥进行动态保护,再利用外界无法获知的硬件标识对动态保护后的原始私钥静态保护,得到安全私钥,并将该安全私钥存储在本地系统文件中。由于外界无法获知硬件标识,即便外界得到本地存储的安全私钥,也无法通过逆转方式获知原始私钥,进而可以实现私钥的可信存储。
此外,本发明提供的加密算法基于安全私钥和预设算法库对待加密数据进行加密,得到的加密结果与原始私钥利用原始加密库对待加密数据进行加密的结果一致,这样只需利用原始的解密方法进行解密即可,降低开发难度和并提升系统运算速度。同时,本发明的加密过程中不会出现原始私钥,即便外界得到安全私钥和预设算法库也无法获知原始私钥。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性示出了根据本发明实施例的安全私钥的生成方法的流程图;
图2示意性示出了根据本发明另一实施例的安全私钥的生成方法的流程图;
图3示意性示出了根据本发明实施例的安全私钥的生成方案的示意图;
图4示意性示出了根据本发明实施例的加密方法的流程图;
图5示意性示出了根据本发明实施例的安全私钥的生成系统的框图;
图6示意性示出了根据本发明实施例的加密系统的框图;
图7示意性示出了根据本发明实施例的适于实现安全私钥的生成方法和/或加密方法的计算机设备的框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
下面结合附图对本发明提供的安全私钥的生成方法进行说明。
图1示意性示出了根据本发明实施例的安全私钥的生成方法的流程图
如图1所示,该安全私钥的生成方法可以包括步骤S101~步骤S102,其中:
步骤S101,获取原始私钥,根据预设规则对原始私钥进行第一转换,得到中间私钥。
需要说明的是,该安全私钥的生成方法可以应用在终端设备,终端设备可以预先生成原始私钥及与该原始私钥配对的原始公钥。本实施例中,为了保障原始私钥的安全性,在将原始私钥落地之前,可以对原始私钥进行转换,得到安全私钥,并将得到的安全私钥存储在终端设备,其中,由原始私钥得到安全私钥的过程可以称为白盒化过程,该白盒化过程可以通过白盒加密模块实现,白盒加密模块可以包括步骤S101~步骤S102,安全私钥又可以称为白盒私钥。
本实施例中,根据预设规则对原始私钥进行第一转换,可以包括:
获取第一预设转换表,其中,第一预设转换表包括多条第一映射关系,每条第一映射关系均包括原始数据及与原始数据对应的第一转换数据;
在第一预设转换表中,以原始私钥作为原始数据,从多条映射关系中确定出与原始私钥对应的第一目标映射关系;
将原始私钥替换为第一目标映射关系中的第一转换数据,以得到中间私钥。
例如,原始私钥为1234,第一预设转换表包括的第一映射关系分别为:原始数据为1,对应的第一转换数据为4;原始数据为2,对应的第一转换数据为6;原始数据为3,对应的第一转换数据为2;原始数据为4,对应的第一转换数据为7。基于此,将原始私钥转换为第一目标映射关系中的第一转换数据后为:4627。进一步,对上一步得到“4627”进行哈希计算,可以得到中间私钥,例如为0110。
步骤S102,获取设备硬件的硬件标识,根据所述硬件标识对第一转换后的原始私钥进行第二转换,得到安全私钥。
其中,设备硬件可以是本地安装的硬件,如CPU、硬盘和/或物理网卡等。硬件标识码用于标识设备的硬件,可以由设备的若干硬件部分的标识信息计算生成,在该步骤中,可以通过获取各硬件部分的标识信息然后计算得到,也可以直接获取计算生成后的硬件标识码,或者直接将获取的标识信息作为硬件标识。
可选的,设备硬件的硬件标识可以根据设备的CPU标识、硬盘序列号和/或物理网卡的MAC(Media Access Control,介质访问控制)地址计算得到。其中,CPU标识包括信息处理器的类型、型号、制造商信息、商标信息、缓存大小和钟速度等等;硬盘序列号是指硬盘物理序列号,是指硬盘的出厂编码,具有唯一性;物理网卡的MAC地址是烧录在物理网卡里的硬件地址信息,是物理网卡厂家自己分配的唯一标志符。可选的,本实施例可以利用设备操作系统的驱动程序获取CPU标识、硬盘序列号和/或物理网卡的MAC地址,以确保获取的标识信息不被仿冒。
需要说明的是,采用CPU标识、硬盘序列号和/或物理网卡的MAC地址来计算设备硬件的硬件标识,一方面,能够较好的从硬件角度标识客户终端,使得不同设备具有不同的硬件标识;另一方面,能够在设备发生磁盘磁道损坏、临时增加外设等临时性故障或变化时,硬件标识不会发生变化,有利于提升安全私钥的稳定性。本实施例不对设备硬件做限定,只要能够保证硬件标识具有固定性、唯一性及私有性即可。
本实施例中,根据硬件标识对第一转换后的原始私钥进行第二转换,得到安全私钥,可以包括:
对硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;
根据标识长度将中间私钥等分,得到N个第一分段私钥,其中,N为大于等于1的正整数;
根据第三转换后的硬件标识和N个第一分段私钥得到安全私钥。
具体的,对硬件标识进行第三转换可以是利用哈希算法将硬件标识进行转换,得到流密钥,该流密钥即为第三转换后的硬件标识,其中,任何一种哈希算法均可以在本发明中使用。进一步利用确定出的标识长度将中间私钥等分为N份,即N个第一分段私钥。例如,中间私钥为0110,第三转换后的硬件标识为11,则可以得到两个第一分段私钥,第1个第一分段私钥为01,第2个第一分段私钥为10。进一步,可以根据第三转换后的硬件标识和这N个第一分段私钥得到安全私钥。可选的,本实施例还可以只取中间私钥一部分,例如前10个字节,然后利用标识长度将这部分中间私钥等分。需要说明的是,对于不能参与等分的中间私钥的部分可以丢弃,如中间私钥的长度为11字节,标识长度为5字节,则剩余的不能参与等分的1个字节可以丢掉。
本实施例中,根据第三转换后的硬件标识和N个第一分段私钥得到安全私钥,可以包括:
步骤A1:将第三转换后的硬件标识和N个第一分段私钥中第1个第一分段私钥按照预设算法进行计算,得到第1个第一中间计算结果;
步骤A2:判断i是否等于N,当i不等于N时,执行步骤A3,当i等于N时,执行步骤A4,其中,i的初始值为1;
步骤A3:获取N个第一分段私钥中的第i+1个第一分段私钥,将第i个第一中间计算结果与第i+1个第一分段私钥按照预设算法进行计算,得到第i+1个第一中间计算结果;
步骤A4:将计算出的所有第一中间计算结果进行组合,得到安全私钥。
例如,本实施例中的预设算法可以为异或运算,结合上述示例,N=2,在i=1时,将第三转换后的硬件标识11和第1个第一分段私钥01进行异或得到第1个第一中间计算结果10;判断此时的i是否等于2,由于此时的i<N,因此可以将第1个第一中间计算结果10和第2个第一分段私钥10异或得到第2个第一中间计算结果00,此时i=2,由于此时的i=N,因此可以将第1个第一中间计算结果10和第2个第一中间计算结果00组合得到安全私钥1000。
需要说明的是,本发明在执行“根据第三转换后的硬件标识和N个第一分段私钥得到安全私钥”的步骤时,可以有多个替换实施例,步骤A1~A4仅仅是一个示例,例如,还可以将i的初始值设置为0,或者将步骤A2在步骤A1之前执行,等等,本发明对此不做限定。
进一步,本实施例可以将得到的安全私钥存储在本地,由于本地存储的安全私钥是先经过预设规则做动态保护,再经过外界无法获知的硬件标识做静态保护,因此即便外界将该安全私钥拷走也无法解出原始私钥,进而可以实现对私钥的可信存储。
图2示意性示出了根据本发明另一实施例的安全私钥的生成方法的流程图。
如图2所示,该安全私钥的生成方法可以包括步骤S201~步骤S205,其中:
步骤S201,调用密钥生成接口;
步骤S202,判断设备上是否安装有TPM/TCM芯片,若是则执行步骤S203,若否则执行步骤S204;
步骤S203,调用TPM/TCM芯片,生成密钥对;
步骤S204,生成安全私钥及输出公钥;
步骤S205,返回公钥。
在本实施例中,密钥生成接口即为图3中的API,然后通过图3中的Adaptor(适配器)判断本地是否安装有TPM(Trusted Platform Module)/TCM(Trusted CryptographyModule)芯片,若有则调用TPM/TCM芯片,生成密钥对。以TPM芯片为例,在存在TPM芯片的设备上,首选使用TPM芯片来存储私钥,调用TPM芯片的编程接口,可直接在TPM芯片内部生成密钥并保存。申请TPM芯片生成自定义TPM用户和关联的用户密钥,并使用用户口令保护,可以保护密钥不被恶意导出和拷贝,并防止本机其他程序非法使用,申请和保护过程采用TPM1.2的标准协议,属于通用标准,不再赘述。Windows Vista以后,微软对Windows平台的跨应用程序TPM访问做了集中化处理,在TPM Base Service之上可以编写自己的TSS模块使用TPM芯片,采用自实现TSS模块的方式来使用TPM,自实现的TSS模块中对调用者做验证,可确保不被冒用。在设备上没有安装TPM/TCM芯片时,可以通过图3中的Adaptor将原始密钥和原始公钥输入WhiteBox模块(即白盒加密模块),WhiteBox模块可以输出安全私钥和原始公钥。进一步,可以将原始公钥暴露给需要交互的其他设备。需要说明的是,本实施例也可以手动指定是通过TPM/TCM芯片生成密钥还是通过WhiteBox模块生成安全私钥并输出公钥。
另外,若是利用TPM/TCM芯片生成的私钥可以保存在硬件模块内部,并提供过密钥索引进行使用。若是利用白盒加密模块生成的安全私钥,由于安全私钥本身就是安全可信的,因此可以存储在文件系统中。
在生成安全私钥之后,可以利用该安全私钥进行加密或者数字签名,本公开支持的算法例如可以包括RSA(Rivest-Shamir-Adleman)算法、ECDSA(The Elliptic CurveDigital Signature Algorithm)算法和SM2算法等。
图4示意性示出了根据本发明实施例的加密方法的流程图。
如图4所示,该加密方法可以包括步骤S401~步骤S402,其中:
步骤S401,获取安全私钥,其中,安全私钥可以根据上述实施例得到。
需要说明的是,本发明提供的加密方法可以应用在客户终端,优选地,为了保障加密结果的安全性,安全私钥的生成方法和加密方法可以应用在同一客户终端。
步骤S402,根据安全私钥和预设加密库对待加密数据进行加密,得到加密结果。
其中,本实施例中的加密结果与原始私钥利用原始加密库对待加密数据进行加密的结果一致。在现有技术中,未对原始私钥进行白盒化,会直接利用原始私钥和原始加密库对待加密数据进行加密,然后利用原始公钥进行解密。本实施例中,安全私钥已经不同于原始私钥,若是继续利用安全私钥和原始加密库对应待加密数据进行加密,则无法利用原始公钥进行解密。基于此,本实施构建了一个预设加密库,以使得利用安全私钥和预设加密库对待加密数据进行加密后得到的加密结果仍然能够使用原始公钥解密。
可选的,根据安全私钥和预设加密库对待加密数据进行加密,得到加密结果,包括:
获取设备硬件的硬件标识,对硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;
根据标识长度对安全私钥等分,得到N个第二分段私钥,其中,N为大于等于1的正整数;
根据第三转换后的硬件标识和N个第二分段私钥得到中间私钥;
根据中间私钥对待加密数据进行加密,得到加密结果。
具体的,硬件标识部分可以如上述实施例所述,此处不再赘述。本实施例中,对硬件标识进行第三转换可以是利用哈希算法将硬件标识进行转换,得到流密钥,该流密钥即为第三转换后的硬件标识,然后利用确定出的标识长度将安全私钥等分为N份,即N个第二分段私钥。例如,安全私钥为1000,第三转换后的硬件标识为11,则可以得到两个第二分段私钥,第1个第二分段私钥为10,第2个第二分段私钥为00。进一步,可以根据第三转换后的硬件标识和这N个第二分段私钥得到安全私钥。
本实施例中,根据第三转换后的硬件标识和N个第二分段私钥得到中间私钥,包括:
步骤B1:将第三转换后的硬件标识和N个第二分段私钥中第1个第二分段私钥按照预设算法进行计算,得到第1个第二中间计算结果;
步骤B2:判断j是否等于N,当j不等于N时,执行步骤B3,当j等于N时,执行步骤B4,其中,j的初始值为1;
步骤B3:获取N个第二分段私钥中的第j+1个第二分段私钥,将第三转换后的硬件标识、第j个第二中间计算结果与第j+1个第二分段私钥按照预设算法进行计算,得到第j+1个第二中间计算结果;
步骤B4:将计算出的所有第二中间计算结果进行组合,得到中间私钥。
例如,本实施例中的预设算法可以为异或运算,结合上述示例,N=2,在j=1时,将第三转换后的硬件标识11和第1个第二分段私钥10进行异或得到第1个第二中间计算结果01;判断此时的j是否等于2,由于此时的j<N,因此可以将第三转换后的硬件标识11、第1个第二中间计算结果01和第2个第二分段私钥00依次异或得到第2个第二中间计算结果10,此时j=2,由于此时的j=N,因此可以将第1个第二中间计算结果01和第2个第二中间计算结果10组合得到中间私钥0110。
需要说明的是,本发明在执行“根据第三转换后的硬件标识和N个第二分段私钥得到安全私钥”的步骤时,可以有多个替换实施例,步骤B1~B4仅仅是一个示例,例如,还可以将i的初始值设置为0,或者将步骤B2在步骤B1之前执行,等等,本发明对此不做限定。
进一步,根据中间私钥对待加密数据进行加密,得到加密结果,可以包括:
获取第二预设转换表,其中,第二预设转换表包括多条第二映射关系,每条第二映射关系均包括输入元素及与输入元素对应的第二转换数据;
在第二预设转换表中,以中间私钥和待加密数据作为输入元素,从多条第二映射关系中确定与中间私钥和待加密数据对应的第二目标映射关系;
根据第二目标映射关系中的第二转换数据得到加密结果。
本实施例中,第二预设转换表的作用在于通过内部转换使得本次的加密结果与利用原始私钥对待加密数据进行加密的结果一致。本实施例可以包括多个第二预设转换表,每个第二预设转换表用于对应一个运算规则,并且每个第二预设转换表中的输入元素可以包括至少两个元素。在利用多个第二预设转换表进行内部转换时,需要先确定中间私钥和待加密数据的运算法则,然后以该中间私钥和待加密数据的运算法则作为第二预设转换表对应的运算法则,从多个第二预设转换表中确定出第二目标预设转换表,然后将中间私钥和待加密数据这两部分中涉及该运算法则的部分作为输入元素,从该第二目标预设转换表的多条第二映射关系中确定出第二目标映射关系,进而根据第二目标映射关系中的第二转换数据得到加密结果。需要说明的是,在执行“根据中间私钥对待加密数据进行加密,得到加密结果”这一步骤时,可能涉及多种运算法则,对于每种运算法则均可以按照上述实施例所述的步骤执行,此处不再赘述。
例如,利用中间私钥对应待加密数据进行加密的过程中涉及加法运算和乘法运算,比如运算式为(a+b)×c=a×c+b×c。其中,本实施例可以包括一个加法转换表和一个乘法转换表,对于乘法转换表的适用于a×c和b×c,根据乘法转换表得到a×c对应第二转换数据d,b×c对应第二转换数据f,则此时运算式变更为d+f,加法转换表适用于d+f,根据加法转换表得到d+f对应第二转换数据g,则g即为最终得到加密数据,且该加密数据与原始私钥利用原始加密库对待加密数据进行加密的结果一致。
本发明提供的加密方法,不仅可以对数据进行加密,还可以用于数据签名,不管是何种加密场景,由于安全私钥是利用外界无法获知的硬件标识做为额外的转换因子,即便安全私钥和预设加密库被拷贝到其他设备黑盒使用加密功能,由于其他设备无法获知本设备的硬件标识,因此一旦硬件标识不匹配,加密结果一定不合法,后续使用公钥验证数字签名的过程也会失败。
图5示意性示出了根据本发明实施例的安全私钥的生成系统的框图。
如图5所示,该安全私钥的生成系统500可以包括第一转换模块501和第二转换模块502,其中:
第一转换模块501,用于获取原始私钥,根据预设规则对原始私钥进行第一转换,得到中间私钥;
第二转换模块502,用于获取设备硬件的硬件标识,根据硬件标识对中间私钥进行第二转换,得到安全私钥。
可选的,第一转换模块在根据预设规则对原始私钥进行第一转换得到中间私钥时,还用于:
获取第一预设转换表,其中,第一预设转换表包括多条第一映射关系,每条第一映射关系均包括原始数据及与原始数据对应的第一转换数据;
在第一预设转换表中,以原始私钥作为原始数据,从多条映射关系中确定出与原始私钥对应的第一目标映射关系;
将原始私钥替换为第一目标映射关系中的第一转换数据,以得到中间私钥。
可选的,第二转换模块在根据硬件标识对中间私钥进行第二转换得到安全私钥时,还用于:
对硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;
根据标识长度将中间私钥等分,得到N个第一分段私钥,其中,N为大于等于1的正整数;
根据第三转换后的硬件标识和N个第一分段私钥得到安全私钥。
可选的,第一转换模块在根据第三转换后的硬件标识和N个第一分段私钥得到安全私钥时,还用于:
步骤A1:将第三转换后的硬件标识和N个第一分段私钥中第1个第一分段私钥按照预设算法进行计算,得到第1个第一中间计算结果;
步骤A2:判断i是否等于N,当i不等于N时,执行步骤A3,当i等于N时,执行步骤A4,其中,i的初始值为1;
步骤A3:获取N个第一分段私钥中的第i+1个第一分段私钥,将第i个第一中间计算结果与第i+1个第一分段私钥按照预设算法进行计算,得到第i+1个第一中间计算结果;
步骤A4:将计算出的所有第一中间计算结果进行组合,得到安全私钥。
图6示意性示出了根据本发明实施例的加密系统的框图。
如图6所示,该加密系统600可以包括获取模块601和加密模块602,其中:
获取模块601,用于获取安全私钥,其中,安全私钥是根据如上所述的实施例得到的;
加密模块602,用于根据安全私钥和预设加密库对待加密数据进行加密,得到加密结果。
可选的,加密模块还用于:
获取设备硬件的硬件标识,对硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;
根据标识长度对安全私钥等分,得到N个第二分段私钥,其中,N为大于等于1的正整数;
根据第三转换后的硬件标识和N个第二分段私钥得到中间私钥;
根据中间私钥对待加密数据进行加密,得到加密结果。
可选的,加密模块在根据第三转换后的硬件标识和N个第二分段私钥得到中间私钥时,还用于:
步骤B1:将第三转换后的硬件标识和N个第二分段私钥中第1个第二分段私钥按照预设算法进行计算,得到第1个第二中间计算结果;
步骤B2:判断j是否等于N,当j不等于N时,执行步骤B3,当j等于N时,执行步骤B4,其中,j的初始值为1;
步骤B3:获取N个第二分段私钥中的第j+1个第二分段私钥,将第三转换后的硬件标识、第j个第二中间计算结果与第j+1个第二分段私钥按照预设算法进行计算,得到第j+1个第二中间计算结果;
步骤B4:将计算出的所有第二中间计算结果进行组合,得到中间私钥。
可选的,加密模块在根据中间私钥对待加密数据进行加密得到加密结果时,还用于:
获取第二预设转换表,其中,第二预设转换表包括多条第二映射关系,每条第二映射关系均包括输入元素及与输入元素对应的第二转换数据;
在第二预设转换表中,以中间私钥和待加密数据作为输入元素,从多条第二映射关系中确定与中间私钥和待加密数据对应的第二目标映射关系;
根据第二目标映射关系中的第二转换数据得到加密结果。
图7示意性示出了根据本发明实施例的适于实现安全私钥的生成方法和/或加密方法的计算机设备的框图。本实施例中,计算机设备700可以是执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备700至少包括但不限于:可通过系统总线相互通信连接的存储器701、处理器702、网络接口703。需要指出的是,图7仅示出了具有组件701-703的计算机设备700,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
本实施例中,存储器703至少包括一种类型的计算机可读存储介质,可读存储介质包括包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器701可以是计算机设备700的内部存储单元,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器701也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器701还可以既包括计算机设备700的内部存储单元也包括其外部存储设备。在本实施例中,存储器701通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如安全私钥的生成方法的程序代码和/或加密方法的程序代码等。此外,存储器701还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器702在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器702通常用于控制计算机设备700的总体操作。例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等的程序代码和/或加密方法的程序代码。
在本实施例中,存储于存储器701中的安全私钥的生成方法和/或加密方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器702)所执行,以完成本发明。
网络接口703可包括无线网络接口或有线网络接口,该网络接口703通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口703用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
本实施例还提供一种计算机可读存储介质,包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等,其上存储有计算机程序,所述计算机程序被处理器执行时实现安全私钥的生成方法和/或加密方法。
显然,本领域的技术人员应该明白,上述的本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明实施例不限制于任何特定的硬件和软件结合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (12)
1.一种安全私钥的生成方法,其特征在于,所述方法包括:
获取原始私钥,根据预设规则对所述原始私钥进行第一转换,得到中间私钥;
获取设备硬件的硬件标识,根据所述硬件标识对所述中间私钥进行第二转换,得到安全私钥。
2.根据权利要求1所述的方法,其特征在于,所述根据预设规则对所述原始私钥进行第一转换,得到中间私钥,包括:
获取第一预设转换表,其中,所述第一预设转换表包括多条第一映射关系,每条所述第一映射关系均包括原始数据及与所述原始数据对应的第一转换数据;
在所述第一预设转换表中,以所述原始私钥作为所述原始数据,从所述多条映射关系中确定出与所述原始私钥对应的第一目标映射关系;
将所述原始私钥替换为所述第一目标映射关系中的第一转换数据,以得到所述中间私钥。
3.根据权利要求1所述的方法,其特征在于,所述根据所述硬件标识对所述中间私钥进行第二转换,得到安全私钥,包括:
对所述硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;
根据所述标识长度将所述中间私钥等分,得到N个第一分段私钥,其中,N为大于等于1的正整数;
根据所述第三转换后的硬件标识和N个所述第一分段私钥得到所述安全私钥。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第三转换后的硬件标识和N个所述第一分段私钥得到所述安全私钥,包括:
步骤A1:将所述第三转换后的硬件标识和N个所述第一分段私钥中第1个所述第一分段私钥按照预设算法进行计算,得到第1个第一中间计算结果;
步骤A2:判断i是否等于N,当i不等于N时,执行步骤A3,当i等于N时,执行步骤A4,其中,i的初始值为1;
步骤A3:获取N个所述第一分段私钥中的第i+1个所述第一分段私钥,将第i个所述第一中间计算结果与第i+1个所述第一分段私钥按照所述预设算法进行计算,得到第i+1个所述第一中间计算结果;
步骤A4:将计算出的所有所述第一中间计算结果进行组合,得到所述安全私钥。
5.一种加密方法,其特征在于,所述方法包括:
获取安全私钥,其中,所述安全私钥是根据权利要求1至4任一项所述的方法得到的;
根据所述安全私钥和预设加密库对待加密数据进行加密,得到加密结果。
6.根据权利要求5所述的方法,其特征在于,所述根据所述安全私钥和预设加密库对待加密数据进行加密,得到加密结果,包括:
获取设备硬件的硬件标识,对所述硬件标识进行第三转换,并确定第三转换后的硬件标识的标识长度;
根据所述标识长度对所述安全私钥等分,得到N个第二分段私钥,其中,N为大于等于1的正整数;
根据所述第三转换后的硬件标识和N个所述第二分段私钥得到所述中间私钥;
根据所述中间私钥对所述待加密数据进行加密,得到所述加密结果。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第三转换后的硬件标识和N个所述第二分段私钥得到所述中间私钥,包括:
步骤B1:将所述第三转换后的硬件标识和N个所述第二分段私钥中第1个所述第二分段私钥按照预设算法进行计算,得到第1个第二中间计算结果;
步骤B2:判断j是否等于N,当j不等于N时,执行步骤B3,当j等于N时,执行步骤B4,其中,j的初始值为1;
步骤B3:获取N个所述第二分段私钥中的第j+1个所述第二分段私钥,将所述第三转换后的硬件标识、第j个所述第二中间计算结果与第j+1个所述第二分段私钥按照所述预设算法进行计算,得到第j+1个所述第二中间计算结果;
步骤B4:将计算出的所有所述第二中间计算结果进行组合,得到所述中间私钥。
8.根据权利要求6所述的方法,其特征在于,所述根据所述中间私钥对所述待加密数据进行加密,得到所述加密结果,包括:
获取第二预设转换表,其中,所述第二预设转换表包括多条第二映射关系,每条所述第二映射关系均包括输入元素及与所述输入元素对应的第二转换数据;
在所述第二预设转换表中,以所述中间私钥和所述待加密数据作为所述输入元素,从所述多条第二映射关系中确定与所述中间私钥和所述待加密数据对应的第二目标映射关系;
根据所述第二目标映射关系中的第二转换数据得到所述加密结果。
9.一种安全私钥的生成系统,其特征在于,所述系统包括:
第一转换模块,用于获取原始私钥,根据预设规则对所述原始私钥进行第一转换,得到中间私钥;
第二转换模块,用于获取设备硬件的硬件标识,根据所述硬件标识对所述中间私钥进行第二转换,得到安全私钥。
10.一种加密系统,其特征在于,所述系统包括:
获取模块,用于获取安全私钥,其中,所述安全私钥是根据权利要求1至4任一项所述的方法得到的;
加密模块,用于根据所述安全私钥和预设加密库对待加密数据进行加密,得到加密结果。
11.一种计算机设备,所述计算机设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一项所述方法和/或权利要求5至8任一项所述方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4任一项所述方法和/或权利要求5至8任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910406116.8A CN111949996A (zh) | 2019-05-15 | 2019-05-15 | 安全私钥的生成方法、加密方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910406116.8A CN111949996A (zh) | 2019-05-15 | 2019-05-15 | 安全私钥的生成方法、加密方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111949996A true CN111949996A (zh) | 2020-11-17 |
Family
ID=73336631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910406116.8A Pending CN111949996A (zh) | 2019-05-15 | 2019-05-15 | 安全私钥的生成方法、加密方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949996A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113922969A (zh) * | 2021-10-27 | 2022-01-11 | 杭州弦冰科技有限公司 | Intel SGX可信服务集群化部署的实现方法、系统及电子设备 |
CN116915401A (zh) * | 2023-08-23 | 2023-10-20 | 江苏云涌电子科技股份有限公司 | 一种基于可信密码模块tcm的密钥生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105027498A (zh) * | 2013-06-11 | 2015-11-04 | 章寅生 | 一种通过远程分隔和组装数据文件实现安全存储的方法及其系统和装置 |
CN106792669A (zh) * | 2016-12-28 | 2017-05-31 | 北京五八信息技术有限公司 | 基于混合加密算法的移动终端信息加密方法及装置 |
CN108155993A (zh) * | 2017-12-29 | 2018-06-12 | 北京树米网络科技有限公司 | Vsim卡的数据加密方法及装置 |
-
2019
- 2019-05-15 CN CN201910406116.8A patent/CN111949996A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105027498A (zh) * | 2013-06-11 | 2015-11-04 | 章寅生 | 一种通过远程分隔和组装数据文件实现安全存储的方法及其系统和装置 |
CN106792669A (zh) * | 2016-12-28 | 2017-05-31 | 北京五八信息技术有限公司 | 基于混合加密算法的移动终端信息加密方法及装置 |
CN108155993A (zh) * | 2017-12-29 | 2018-06-12 | 北京树米网络科技有限公司 | Vsim卡的数据加密方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113922969A (zh) * | 2021-10-27 | 2022-01-11 | 杭州弦冰科技有限公司 | Intel SGX可信服务集群化部署的实现方法、系统及电子设备 |
CN116915401A (zh) * | 2023-08-23 | 2023-10-20 | 江苏云涌电子科技股份有限公司 | 一种基于可信密码模块tcm的密钥生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108809646B (zh) | 安全共享密钥共享系统 | |
CN107770159B (zh) | 车辆事故数据记录方法及相关装置、可读存储介质 | |
CN111245597B (zh) | 密钥管理方法、系统及设备 | |
US20160094347A1 (en) | Method and system for secure management of computer applications | |
CN110401615B (zh) | 一种身份认证方法、装置、设备、系统及可读存储介质 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
CN109818730B (zh) | 盲签名的获取方法、装置和服务器 | |
US20230325516A1 (en) | Method for file encryption, terminal, electronic device and computer-readable storage medium | |
CN111428254A (zh) | 密钥存储方法、装置、设备以及存储介质 | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
CN111628863B (zh) | 一种数据签名的方法、装置、电子设备及存储介质 | |
CN113688399A (zh) | 固件数字签名保护方法、装置、计算机设备及存储介质 | |
CN108229192B (zh) | 一种文件解密方法、装置及客户端 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN111949996A (zh) | 安全私钥的生成方法、加密方法、系统、设备及介质 | |
US11354427B2 (en) | Encrypting/decrypting method for multi-digit number and encrypting/decrypting server | |
CN114499859A (zh) | 密码验证方法、装置、设备及存储介质 | |
CN101582765A (zh) | 绑定用户的便携式可信移动装置 | |
CN111859314A (zh) | 一种基于加密软件的sm2加密方法、系统、终端及存储介质 | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
CN110401533B (zh) | 一种私钥加密方法及装置 | |
CN114117388A (zh) | 设备注册方法、设备注册装置、电子设备以及存储介质 | |
CN113158218A (zh) | 数据加密方法、装置及数据解密方法、装置 | |
CN111444202A (zh) | 去中心化应用的信息处理方法、装置、设备以及存储介质 | |
CN100546242C (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 |