CN115809459B - 软件密码模块的数据保护及解密方法、系统、设备及介质 - Google Patents
软件密码模块的数据保护及解密方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN115809459B CN115809459B CN202310059688.XA CN202310059688A CN115809459B CN 115809459 B CN115809459 B CN 115809459B CN 202310059688 A CN202310059688 A CN 202310059688A CN 115809459 B CN115809459 B CN 115809459B
- Authority
- CN
- China
- Prior art keywords
- key
- protection
- master key
- master
- protection 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.)
- Active
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种软件密码模块的数据保护及解密方法、系统、设备及介质,所属的技术领域为信息安全技术。所述软件密码模块的数据保护方法,包括:利用主密钥保护密钥与服务端协同计算得到外部随机数,利用外部随机数、硬件特征因子和随机操作因子生成主密钥;利用保护密钥对目标数据进行加密,利用主密钥对保护密钥进行加密,删除主密钥;确定用户密码,并通过衍生算法生成用户密码对应的口令衍生密钥;基于Shamir门限机制对主密钥保护密钥进行分片,并利用口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;将M个保护密钥分片分别存储至本地存储空间和服务端。本申请能够提高软件密码模块的安全性。
Description
技术领域
本申请涉及信息安全技术领域,特别涉及一种软件密码模块的数据保护及解密方法、系统、设备及介质。
背景技术
密码技术是信息安全的基石,保障安全高效的密码计算能力是确保信息安全的重要一环,需要对密码计算的安全防护进行精心设计,以降低密钥、敏感参数等因计算环境、计算过程而造成泄露的风险,进而确保密码模块能为应用提供安全计算服务。
随着密码在各种应用中被广泛使用,提供密码计算的主要产品包括各种类型的密码机、密码卡、密码模块。其中,软件密码模块具有使用灵活、操作便捷、成本低廉等不可替代的优点而备受欢迎。但是,软件密码模块通常运行于不可信的计算运行环境,且缺乏合理可靠的安全性保护计算模型,其密钥、关键敏感参数以及密码计算过程无法被安全保护,存在敏感数据泄露和被监听的风险。
因此,如何提高软件密码模块的安全性是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种软件密码模块的数据保护方法、一种软件密码模块的数据保护系统、一种软件密码模块的数据解密方法、一种软件密码模块的数据解密系统、一种电子设备及一种存储介质,能够提高软件密码模块的安全性。
为解决上述技术问题,本申请提供一种软件密码模块的数据保护方法,该数据保护方法包括:
利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;
确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;
将M个所述保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述保护密钥分片,所述服务端存储有N2个所述保护密钥分片,恢复所述主密钥保护密钥所需的保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
可选的,在将所述保护密钥分片分别存储至所述本地存储空间和服务端之后,还包括:
若接收到数据解密请求,则接收所述用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
获取存储于所述服务端的保护密钥分片;
利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;
利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到所述目标数据;
删除所述主密钥。
可选的,利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,包括:
从所述存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片中选取K个保护密钥分片;
利用所述口令衍生密钥对K个所述保护密钥分片进行解密。
可选的,获取存储于所述服务端的保护密钥分片,包括:
根据所述软件密码模块的身份信息构建分片获取请求,并向所述服务端发送所述分片获取请求,以便所述服务端根据所述身份信息进行认证并在认证通过后返回存储于所述服务端的保护密钥分片。
可选的,在利用保护密钥对目标数据进行加密之前,还包括:
接收加密请求,并根据所述加密请求确定当前用户类型;
若当前用户类型为用户,则将用户敏感参数设置为所述目标数据;
若当前用户类型为管理员,则将公共敏感参数设置为所述目标数据。
本申请还提供了一种软件密码模块的数据解密方法,包括:
若接收到数据解密请求,则接收用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
获取存储于服务端的保护密钥分片;其中,所述保护密钥分片通过对主密钥保护密钥进行Shamir门限机制的分片操作得到;
利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;
利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到目标数据,删除所述主密钥。
本申请还提供了一种软件密码模块的数据保护系统,包括:
主密钥生成模块,用于利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
加密模块,用于利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;
衍生计算模块,用于确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片处理模块,用于基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;
分片存储模块,用于将M个所述保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述保护密钥分片,所述服务端存储有N2个所述保护密钥分片,恢复所述主密钥保护密钥所需的保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
本申请还提供了一种软件密码模块的数据解密系统,包括:
口令衍生密钥生成模块,用于若接收到数据解密请求,则接收用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片获取模块,用于获取存储于服务端的保护密钥分片;其中,所述保护密钥分片通过对主密钥保护密钥进行Shamir门限机制的分片操作得到;
密钥恢复模块,用于利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
密钥计算模块,用于利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;
解密模块,用于利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到目标数据,删除所述主密钥。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述软件密码模块的数据保护方法或上述软件密码模块的数据解密方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述软件密码模块的数据保护方法或上述软件密码模块的数据解密方法执行的步骤。
本申请提供了一种软件密码模块的数据保护方法,包括:利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;将M个所述保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述保护密钥分片,所述服务端存储有N2个所述保护密钥分片,恢复所述主密钥保护密钥所需的保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
本申请利用主密钥保护密钥与服务端协同计算得到外部随机数,进而利用外部随机数、硬件特征因子和随机操作因子生成主密钥,以完成数据的加密操作。本申请将用于生成外部随机数的主密钥保护密钥进行基于Shamir门限机制的分片操作,并使用用户密码对应的口令衍生密钥对每一分片进行加密得到M个保护密钥分片。本申请将M个保护密钥分片分别存储至软件密码模块的本地存储空间和服务端,且仅靠软件密码模块或服务端中的一端无法恢复主密钥保护密钥,降低了软件密码模块因为不可信环境而可能造成的密钥泄露的情况。因此,本申请能够提高软件密码模块的安全性。本申请同时还提供了一种软件密码模块的数据保护系统、一种软件密码模块的数据解密方法、一种软件密码模块的数据解密系统、一种电子设备及一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种软件密码模块的数据保护方法的流程图;
图2为本申请实施例所提供的一种软件密码模块的密钥保护模型示意图;
图3为本申请实施例所提供的一种联合计算流程图;
图4为本申请实施例所提供的一种软件密码模块的数据保护系统的结构示意图。
实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种软件密码模块的数据保护方法的流程图。
具体步骤可以包括:
S101:利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
其中,本实施例可以应用于软件密码模块。上述主密钥保护密钥用于对生成主密钥的外部随机数进行保护,主密钥保护密钥可以为用户主密钥保护密钥,也可以为密码主管主密钥保护密钥,不同的用户角色可以有其对应的主密钥保护密钥。
软件密码模块可以使用主密钥保护密钥和服务端共同通过联合解密计算获得外部随机数。具体的,协同计算的过程包括:向所述服务端发起协同计算申请;在所述服务端确认所述协同计算申请通过后,生成协同计算请求包,并将所述协同计算请求包发送至所述服务端,以便所述服务端对所述协同计算请求包进行计算得到协同计算应答包;接收所述服务端发送的协同计算应答包,对所述协同计算应答包进行计算得到协同计算结果,根据主密钥保护密钥与协同计算结果计算得到外部随机数。
硬件特征因子为软件密码模块所在设备的硬件信息特征,例如IP地址、MAC地址、设备序列号等。随机操作因子为用户在软件密码模块所在设备上执行的操作,如单击、双击、拖拽等。
在得到外部随机数、硬件特征因子和随机操作因子后,可以利用外部随机数、硬件特征因子和随机操作因子生成主密钥。
S102:利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;
其中,软件密码模块中还存在保护密钥,保护密钥用于对数据进行保护,保护密钥可以包括用户保护密钥和公用保护密钥,用户保护密钥用于保护用户关键敏感参数,公用保护密钥用于保护公用敏感参数。本实施例可以利用保护密钥对目标数据(用户关键敏感参数或公用敏感参数)进行加密,还可以利用主密钥对所述保护密钥进行加密,并删除所述主密钥。
作为一种可行的实施方式,在利用保护密钥对目标数据进行加密之前,还可以接收加密请求,并根据所述加密请求确定当前用户类型;若当前用户类型为用户,则将用户敏感参数设置为所述目标数据;若当前用户类型为管理员(又称密码主管),则将公共敏感参数设置为所述目标数据。
S103:确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
其中,上述用户密码可以为普通用户输入的密码,也可以为密码主管输入的密码,可以通过衍生算法生成所述用户密码对应的口令衍生密钥。
S104:基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;
其中,本步骤的目的在于对主密钥保护密钥进行分片保存,基于Shamir门限机制对所述主密钥保护密钥进行分片,使用口令衍生密钥对每一分片进行加密,得到M个保护密钥分片。
S105:将M个保护密钥分片分别存储至本地存储空间和所述服务端;
其中,在得到M个保护密钥分片之后,本步骤将M个保护密钥分片中的一部分存储于软件密码模块的本地存储空间,另一部分存储于服务端。具体的,所述本地存储空间存储有N1个所述保护密钥分片,所述服务端存储有N2个所述保护密钥分片,恢复所述主密钥保护密钥所需的保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
本实施例利用主密钥保护密钥与服务端协同计算得到外部随机数,进而利用外部随机数、硬件特征因子和随机操作因子生成主密钥,以完成数据的加密操作。本实施例将用于生成外部随机数的主密钥保护密钥进行基于Shamir门限机制的分片操作,并使用用户密码对应的口令衍生密钥对每一分片进行加密得到M个保护密钥分片。本实施例将M个保护密钥分片分别存储至软件密码模块的本地存储空间和服务端,且仅靠软件密码模块或服务端中的一端无法恢复主密钥保护密钥,降低了软件密码模块因为不可信环境而可能造成的密钥泄露的情况。因此,本实施例能够提高软件密码模块的安全性。
作为对于图1对应实施例的进一步介绍,在将所述保护密钥分片分别存储至所述本地存储空间和服务端之后,还可以通过以下方式解密数据:
步骤A1:若接收到数据解密请求,则接收所述用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
步骤A2:获取存储于所述服务端的保护密钥分片;
具体的,本实施例可以根据所述软件密码模块的身份信息构建分片获取请求,并向所述服务端发送所述分片获取请求,以便所述服务端根据所述身份信息进行认证并在认证通过后返回存储于所述服务端的保护密钥分片。
步骤A3:利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
具体的,本实施例可以从所述存储于所述本地存储空间的N1个保护密钥分片和存储于所述服务端的N2个保护密钥分片中选取K个保护密钥分片;利用所述口令衍生密钥对K个所述保护密钥分片进行解密。
步骤A4:利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;
步骤A5:利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到所述目标数据;
步骤A6:删除所述主密钥。
本申请实施例还提供了一种软件密码模块的数据解密方法,包括:若接收到数据解密请求,则接收用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;获取存储于服务端的保护密钥分片;其中,所述保护密钥分片通过对主密钥保护密钥进行Shamir门限机制的分片操作得到;利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到目标数据,删除所述主密钥。
本实施例根据接收到的用户密码生成对应的口令衍生密钥,利用口令衍生密钥对存储于本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,进而根据解密结果恢复所述主密钥保护密钥。本申请利用主密钥保护密钥与服务端协同计算得到外部随机数,进而利用外部随机数、硬件特征因子和随机操作因子生成主密钥,以完成数据的解密操作。上述过程,需要软件密码模块和服务端共同协作才能恢复主密钥保护密钥,降低了软件密码模块因为不可信环境而可能造成的密钥泄露的情况。因此,本实施例能够提高软件密码模块的安全性。
以上实施例提供了软件密码模块的数据解密过程,在该过程之前,还可以存在以下数据加密过程:利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;将M个所述保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述保护密钥分片,所述服务端存储有N2个所述保护密钥分片,恢复所述主密钥保护密钥所需的保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
现有的软件密码模块要么没有采取有效措施对自身的安全进行防护,要么只采用了较低强度的安全措施,因为缺乏合理的安全性设计形成较为合理的安全计算保护模型,无法在对外提供商用密码计算时确保自身安全,因此可能导致危险外溢,进一步危及到使用该软件密码模块的相关其他应用的安全。
区别于密码机、密码卡或硬件密码模块,软件密码模块因为缺少硬件设备的保护,其密钥的产生、存储均暴露在一个不可信,或者说半诚实的环境之中。而密码的安全性主要在于密钥的安全防护,所以密钥及相关敏感参数的保护是软件密码模块防护的重中之重。同时,因为软件密码模块运行环境的不可信,则其独立计算出的计算结果也完全可能因为被恶意攻击、操纵而不可信,所以有必要提出解决办法,解决计算过程的安全性。
基于上述问题,本实施例提出了一种设计合理而实用有效的软件密码安全计算模型。该模型通过Shamir门限机制,实现对密码计算模块中关键密钥、敏感参数的安全保护,防止其被恶意篡改或泄露。同时,基于非对称商密算法,采用联合计算的机制实现对密码计算过程的安全保护,杜绝不可信终端如果被恶意控制后计算结果不可信的问题。通过该计算模型的使用解决了在不安全的半诚实环境中,软件密码计算的主要安全性问题。本实施例提供了密钥保护的层次模型,以及使用口令衍生密钥将被以门限机制分割后的密钥进行加密后分散保存于多地,并在使用时取回本地予以恢复的保护方法,本实施例还提供了通过联合计算来确保在非诚实环境下密码计算的安全性;以及通过前后台联合计算恢复主密钥的关键参数,进而计算获得主密钥的方法。
请参见图2,图2为本申请实施例所提供的一种软件密码模块的密钥保护模型示意图,该模型包括多因子层、主密钥层、保护密钥层和敏感参数层,多因子层中用户口令衍生密钥保护用户主密钥保护密钥以及密码主管主密钥保护密钥,用户主密钥保护密钥或密码主管主密钥保护密钥可以协同计算保护外部随机数,外部随机数、硬件特征因子和随机操作因子可以衍生得到主密钥。主密钥用于保护用户保护密钥和公用保护密钥,用户保护密钥用于保护用户关键敏感参数,公用保护密钥用于保护公用敏感参数。本实施例提供了一种基于Shamir门限分享与联合计算机制的高安全软件密码计算模型。该模型主要通过实现对软件密码模块的关键密钥,敏感参数的安全保护以及实现对非可信环境下的计算流程的保护来确保密码计算的安全性。
图2中处于最底层的是软件密码模块的各种需要进行机密性、完整性保护的敏感参数,根据这些参数性质的不同,分为了用户敏感参数、公用敏感参数,并由上层的用户保护密钥和公用保护密钥分别进行加密保护,而这些保护密钥又被上层的主密钥进行加密保护。
主密钥由外部随机数、硬件特征因子和随机操作因子等多因子共同以密钥衍生算法产生 ,该主密钥每次仅在使用时计算产生,使用完毕后即刻销毁,避免直接保存于本地。其中,外部随机数由用户主密钥保护密钥和密码主管主密钥保护密钥加密保护。
用户主密钥保护密钥或密码主管主密钥保护密钥基于Shamir门限机制进行分片,并分别由软件密码模块的用户口令衍生密钥或密码主管口令衍生密钥进行保护后分别存于软件密码模块和服务端处,确保仅靠任何一端,均无法完全恢复该密钥。在使用时,按照如下流程恢复出主密钥并解密相关敏感参数:
步骤B1:用户输入正确的用户密码,软件密码模块通过衍生算法得到对应的口令衍生密钥。
步骤B2:软件密码模块向服务端申请取回保存于服务端的部分用户主密钥保护密钥的分片。
步骤B3:服务端认证请求合法性后,取出该软件密码模块对应的分片并安全返回给软件密码模块。
步骤B4:软件密码模块将所有分片解密后获得完整的用户主密钥保护密钥。
步骤B5:软件密码模块使用用户主密钥保护密钥和服务端共同通过联合解密计算获得外部随机数。
步骤B6:软件密码模块使用外部随机数、硬件特征因子和随机操作因子共同计算得出软件密码模块的主密钥。
步骤B7:软件密码模块通过主密钥解密其它敏感参数。
为了避免软件密码模块因为运行环境的不可信,而出现运算过程被恶意控制导致计算结果不可信。该模式提出了联合计算模型,将计算过程分为了软件密码模块侧计算和服务端计算两部分,通过可信的服务端的参与,共同计算得出可信的密码运算结果。其工作流程如下图3所示,图3为本申请实施例所提供的一种联合计算流程图,包括以下步骤:
a:软件密码模块发起联合计算申请,通过协同计算认证,服务端确认协同计算申请的合法性。
b:软件密码模块生成协同计算请求包,包括需要的密文数据和相关计算参数。
c:软件密码模块将协同计算请求及所需的数据发送给服务端。
d:服务端进行部分解计算工作,同时生成协同计算请求应答包以及计算的中间数据。
e:服务端将协同计算请求应答包返回给软件密码模块,其中包括计算的中间数据。
f:软件密码模块结合协同计算应答包中的数据(包括从服务端获得的中间数据),完成最终计算,即:进行剩余的密码计算得到最终结果。
本实施例通过科学合理的密钥保护模型,形成了安全的密钥保护层次。本实施例引入了用户、环境、后台等多方因子参与密钥的产生和恢复,降低了因为密钥材料泄露而可能产生的密钥攻击。主密钥仅在使用时通过必要的参数进行计算产生,降低了主密钥被攻击的可能性。用户主密钥保护密钥被以门限机制分片,被用户口令衍生密钥保护后分别存储于客户端和服务端,任何一段的信息均不足以恢复出完整密钥,降低了客户端因为不可信环境而可能造成的密钥泄露。 主密钥的解密,以及重要的密码计算,需要通过和后台的联合计算方能完成,计算因为通过引入了可信的服务端参与,增强了在半诚实环境下密码计算的安全性。
请参见图4,图4为本申请实施例所提供的一种软件密码模块的数据保护系统的结构示意图;
该系统可以包括:
主密钥生成模块401,用于利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
加密模块402,用于利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;
衍生计算模块403,用于确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片处理模块404,用于基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个保护密钥分片;
分片存储模块405,用于将M个所述保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述保护密钥分片,所述服务端存储有N2个所述保护密钥分片,恢复所述主密钥保护密钥所需的保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
本实施例利用主密钥保护密钥与服务端协同计算得到外部随机数,进而利用外部随机数、硬件特征因子和随机操作因子生成主密钥,以完成数据的加密操作。本实施例将用于生成外部随机数的主密钥保护密钥进行基于Shamir门限机制的分片操作,并使用用户密码对应的口令衍生密钥对每一分片进行加密得到M个保护密钥分片。本实施例将M个保护密钥分片分别存储至软件密码模块的本地存储空间和服务端,且仅靠软件密码模块或服务端中的一端无法恢复主密钥保护密钥,降低了软件密码模块因为不可信环境而可能造成的密钥泄露的情况。因此,本实施例能够提高软件密码模块的安全性。
进一步的,还包括:
口令衍生密钥生成模块,用于在将所述保护密钥分片分别存储至所述本地存储空间和服务端之后,若接收到数据解密请求,则接收所述用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片获取模块,用于获取存储于所述服务端的保护密钥分片;
密钥恢复模块,用于利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
密钥计算模块,用于利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;
解密模块,用于利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到所述目标数据;
主密钥删除模块,用于删除所述主密钥。
进一步的,密钥恢复模块,利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密的过程包括:从所述存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片中选取K个保护密钥分片;利用所述口令衍生密钥对K个所述保护密钥分片进行解密。
进一步的,分片获取模块获取存储于所述服务端的保护密钥分片的过程包括:根据所述软件密码模块的身份信息构建分片获取请求,并向所述服务端发送所述分片获取请求,以便所述服务端根据所述身份信息进行认证并在认证通过后返回存储于所述服务端的保护密钥分片。
进一步的,还包括:
数据确定模块,用于在利用保护密钥对目标数据进行加密之前,接收加密请求,并根据所述加密请求确定当前用户类型;若当前用户类型为用户,则将用户敏感参数设置为所述目标数据;若当前用户类型为管理员,则将公共敏感参数设置为所述目标数据。
本申请实施例还提供了一种软件密码模块的数据解密系统,包括:
口令衍生密钥生成模块,用于若接收到数据解密请求,则接收用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片获取模块,用于获取存储于服务端的保护密钥分片;其中,所述保护密钥分片通过对主密钥保护密钥进行Shamir门限机制的分片操作得到;
密钥恢复模块,用于利用所述口令衍生密钥对存储于所述本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
密钥计算模块,用于利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
解密模块,用于利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到目标数据,删除所述主密钥。
本实施例根据接收到的用户密码生成对应的口令衍生密钥,利用口令衍生密钥对存储于本地存储空间的保护密钥分片和存储于所述服务端的保护密钥分片进行解密,进而根据解密结果恢复所述主密钥保护密钥。本申请利用主密钥保护密钥与服务端协同计算得到外部随机数,进而利用外部随机数、硬件特征因子和随机操作因子生成主密钥,以完成数据的解密操作。上述过程,需要软件密码模块和服务端共同协作才能恢复主密钥保护密钥,降低了软件密码模块因为不可信环境而可能造成的密钥泄露的情况。因此,本实施例能够提高软件密码模块的安全性。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory ,ROM)、随机存取存储器(Random Access Memory ,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种软件密码模块的数据保护方法,其特征在于,包括:
利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;
确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个主密钥保护密钥分片;
将M个所述主密钥保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述主密钥保护密钥分片,所述服务端存储有N2个所述主密钥保护密钥分片,恢复所述主密钥保护密钥所需的主密钥保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
2.根据权利要求1所述软件密码模块的数据保护方法,其特征在于,在将所述主密钥保护密钥分片分别存储至所述本地存储空间和服务端之后,还包括:
若接收到数据解密请求,则接收所述用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
获取存储于所述服务端的主密钥保护密钥分片;
利用所述口令衍生密钥对存储于所述本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;
利用所述主密钥保护密钥与所述服务端协同计算得到所述外部随机数,利用所述外部随机数、所述硬件特征因子和所述随机操作因子生成所述主密钥;
利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到所述目标数据;
删除所述主密钥。
3.根据权利要求2所述软件密码模块的数据保护方法,其特征在于,利用所述口令衍生密钥对存储于所述本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片进行解密,包括:
从所述存储于所述本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片中选取K个主密钥保护密钥分片;
利用所述口令衍生密钥对K个所述主密钥保护密钥分片进行解密。
4.根据权利要求2所述软件密码模块的数据保护方法,其特征在于,获取存储于所述服务端的主密钥保护密钥分片,包括:
根据所述软件密码模块的身份信息构建分片获取请求,并向所述服务端发送所述分片获取请求,以便所述服务端根据所述身份信息进行认证并在认证通过后返回存储于所述服务端的主密钥保护密钥分片。
5.根据权利要求1所述软件密码模块的数据保护方法,其特征在于,在利用保护密钥对目标数据进行加密之前,还包括:
接收加密请求,并根据所述加密请求确定当前用户类型;
若当前用户类型为用户,则将用户敏感参数设置为所述目标数据;
若当前用户类型为管理员,则将公共敏感参数设置为所述目标数据。
6.一种软件密码模块的数据解密方法,其特征在于,包括:
若接收到数据解密请求,则接收用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
获取存储于服务端的主密钥保护密钥分片;
利用所述口令衍生密钥对存储于本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;其中,存储于所述本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片的生成和存储过程包括:基于Shamir门限机制对主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个主密钥保护密钥分片;将M个所述主密钥保护密钥分片分别存储至本地存储空间和所述服务端;所述本地存储空间存储有N1个所述主密钥保护密钥分片,所述服务端存储有N2个所述主密钥保护密钥分片,恢复所述主密钥保护密钥所需的主密钥保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2;
利用所述主密钥保护密钥与所述服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到目标数据,删除所述主密钥。
7.一种软件密码模块的数据保护系统,其特征在于,包括:
主密钥生成模块,用于利用主密钥保护密钥与服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
加密模块,用于利用保护密钥对目标数据进行加密,利用所述主密钥对所述保护密钥进行加密,删除所述主密钥;
衍生计算模块,用于确定用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片处理模块,用于基于Shamir门限机制对所述主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个主密钥保护密钥分片;
分片存储模块,用于将M个所述主密钥保护密钥分片分别存储至本地存储空间和所述服务端;其中,所述本地存储空间存储有N1个所述主密钥保护密钥分片,所述服务端存储有N2个所述主密钥保护密钥分片,恢复所述主密钥保护密钥所需的主密钥保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2。
8.一种软件密码模块的数据解密系统,其特征在于,包括:
口令衍生密钥生成模块,用于若接收到数据解密请求,则接收用户密码,并通过衍生算法生成所述用户密码对应的口令衍生密钥;
分片获取模块,用于获取存储于服务端的主密钥保护密钥分片;
密钥恢复模块,用于利用所述口令衍生密钥对存储于本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片进行解密,并根据解密结果恢复所述主密钥保护密钥;其中,存储于所述本地存储空间的主密钥保护密钥分片和存储于所述服务端的主密钥保护密钥分片的生成和存储过程包括:基于Shamir门限机制对主密钥保护密钥进行分片,并利用所述口令衍生密钥对每一分片进行加密,得到M个主密钥保护密钥分片;将M个所述主密钥保护密钥分片分别存储至本地存储空间和所述服务端;所述本地存储空间存储有N1个所述主密钥保护密钥分片,所述服务端存储有N2个所述主密钥保护密钥分片,恢复所述主密钥保护密钥所需的主密钥保护密钥分片数量至少为K,M= N1+N2,M>K,K>N1,K>N2;
密钥计算模块,用于利用所述主密钥保护密钥与所述服务端协同计算得到外部随机数,利用所述外部随机数、硬件特征因子和随机操作因子生成主密钥;
解密模块,用于利用所述主密钥解密得到所述保护密钥,利用所述保护密钥解密得到目标数据,删除所述主密钥。
9.一种电子设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至5任一项所述软件密码模块的数据保护方法或权利要求6所述软件密码模块的数据解密方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至5任一项所述软件密码模块的数据保护方法或权利要求6所述软件密码模块的数据解密方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310059688.XA CN115809459B (zh) | 2023-01-18 | 2023-01-18 | 软件密码模块的数据保护及解密方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310059688.XA CN115809459B (zh) | 2023-01-18 | 2023-01-18 | 软件密码模块的数据保护及解密方法、系统、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115809459A CN115809459A (zh) | 2023-03-17 |
CN115809459B true CN115809459B (zh) | 2023-08-15 |
Family
ID=85487377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310059688.XA Active CN115809459B (zh) | 2023-01-18 | 2023-01-18 | 软件密码模块的数据保护及解密方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115809459B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633544B (zh) * | 2023-07-21 | 2023-10-10 | 杭州海康威视数字技术股份有限公司 | 硬件密码模组内多核密钥分级存储与同步方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464301A (zh) * | 2020-04-28 | 2020-07-28 | 郑州信大捷安信息技术股份有限公司 | 一种密钥管理方法及系统 |
CN111625791A (zh) * | 2020-04-28 | 2020-09-04 | 郑州信大捷安信息技术股份有限公司 | 一种基于软件密码模块的密钥管理方法及系统 |
CN112529573A (zh) * | 2020-08-31 | 2021-03-19 | 上海添玑网络服务有限公司 | 一种组合式区块链门限签名方法及系统 |
CN112784306A (zh) * | 2021-02-01 | 2021-05-11 | 杭州链网科技有限公司 | 一种基于密钥分片多签的跨链托管方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104834868A (zh) * | 2015-04-28 | 2015-08-12 | 一铂有限公司 | 电子数据保护方法、装置及终端设备 |
US9954684B2 (en) * | 2016-02-29 | 2018-04-24 | PreVeil LLC | Secure sharing |
-
2023
- 2023-01-18 CN CN202310059688.XA patent/CN115809459B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464301A (zh) * | 2020-04-28 | 2020-07-28 | 郑州信大捷安信息技术股份有限公司 | 一种密钥管理方法及系统 |
CN111625791A (zh) * | 2020-04-28 | 2020-09-04 | 郑州信大捷安信息技术股份有限公司 | 一种基于软件密码模块的密钥管理方法及系统 |
CN112529573A (zh) * | 2020-08-31 | 2021-03-19 | 上海添玑网络服务有限公司 | 一种组合式区块链门限签名方法及系统 |
CN112784306A (zh) * | 2021-02-01 | 2021-05-11 | 杭州链网科技有限公司 | 一种基于密钥分片多签的跨链托管方法及系统 |
Non-Patent Citations (1)
Title |
---|
D. Kamalraj等.Shamir's key based confidentiality on cloud data storage.《2015 International Conference on Advances in Computing, Communications and Informatics (ICACCI)》.2015,第418-423页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115809459A (zh) | 2023-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111130757B (zh) | 一种基于区块链的多云cp-abe访问控制方法 | |
US8462955B2 (en) | Key protectors based on online keys | |
US8787566B2 (en) | Strong encryption | |
US9673975B1 (en) | Cryptographic key splitting for offline and online data protection | |
EP2786292B1 (en) | Methods and devices for securing keys for a non-secured, distributed environment with applications to virtualization and cloud-computing security and management | |
JP7454564B2 (ja) | 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品 | |
He et al. | A social-network-based cryptocurrency wallet-management scheme | |
CN104618096B (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
CN108155994B (zh) | 应用于rsa解密的安全外包计算方法 | |
KR20010067966A (ko) | 피케이아이 기반의 상업용 키위탁 방법 및 시스템 | |
CN111971929A (zh) | 安全分布式密钥管理系统 | |
Hussein et al. | A survey of cryptography cloud storage techniques | |
CN109347923B (zh) | 基于非对称密钥池的抗量子计算云存储方法和系统 | |
Athena et al. | Survey on public key cryptography scheme for securing data in cloud computing | |
Chidambaram et al. | Enhancing the security of customer data in cloud environments using a novel digital fingerprinting technique | |
CN115809459B (zh) | 软件密码模块的数据保护及解密方法、系统、设备及介质 | |
CN110610102B (zh) | 一种数据访问方法、装置及系统 | |
Ogunleye et al. | Elliptic Curve Cryptography Performance Evaluation for Securing Multi-Factor Systems in a Cloud Computing Environment | |
Hammami et al. | Secured outsourcing towards a cloud computing environment based on DNA cryptography | |
CN115277078A (zh) | 用于处理基因数据的方法、装置、设备和介质 | |
Smriti et al. | Secure File Storage in Cloud Computing Using a Modified Cryptography Algorithm | |
Ramesh et al. | Cha-Cha 20: stream cipher based encryption for cloud data centre | |
Reddy et al. | Data Storage on Cloud using Split-Merge and Hybrid Cryptographic Techniques | |
JP2013179473A (ja) | アカウント生成管理システム、アカウント生成管理サーバ、アカウント生成管理方法及びアカウント生成管理プログラム | |
Exceline et al. | Existing enabling technologies and solutions to maintain privacy and security in healthcare records |
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 |