基于国密加密引擎实现的安全存储系统和方法与流程

文档序号:17488391发布日期:2019-04-23 20:11阅读:363来源:国知局
基于国密加密引擎实现的安全存储系统和方法与流程

本公开涉及数据存储,更具体地,本公开涉及一种基于国密加密引擎实现的安全存储系统、方法和计算机系统。



背景技术:

随着云计算和大数据的发展,用户数据的存储安全越来越重要。用户数据包括用户的重要文件及其一些私密影像信息等,用户既希望很方便将数据存储于云平台,又希望数据的访问控制权只限于自己,而平台的运营方无权访问。云计算平台的安全存储系统的目标是实现高效可控的网络云存储系统,为用户的应用及数据提供安全的存储服务和实用的性能保证。云存储的安全问题,主要涉及两个方面:一是身份认证和访问控制问题,即资源的访问控制权;二是数据的加密存储和性能问题。

在现有技术中,云存储主要关注的是数据的加密存储和性能问题,而没有关注身份认证和访问控制问题。而对数据的加密存储和性能的研究主要集中在加密算法的研究上,而没有注意加解密密钥的保护。另外,目前应用于服务器的数据安全存储技术虽然有很多,有基于硬件实现的,也有基于软件实现的,但是基于cpu(片上)的国密加密引擎实现方案还没有。

在现有技术中,云平台的安全存储方法主要分为两类:一是通过服务器利用软算法(如openssl)或内置加密卡、或者外部利用加密机来完成对用户的数据的加密;二是通过客户端利用软件或硬件装置先对数据进行加密,然后再将加密的数据传输到服务器进行存储。采用第一种方法,即采用服务器中的软算法进行加解密,占用cpu的计算资源,影响存储性能;采用加密卡或者加密机方式提供安全服务,成本高,非一体并且会带来安全风险,容易被io监听或旁路,并且会受到io通道的瓶颈限制,影响性能。采用第二种方法,即先在客户端完成加密,然后再将加密的数据传传输到服务器进行存储,性能低,影响用户体验。



技术实现要素:

鉴于上述情况,本公开提供了一种基于国密加密引擎实现安全存储的系统、方法和计算机系统,以及用于安全读取数据的系统、方法和计算机系统。

根据本公开的一方面,提供了一种安全存储系统,该安全存储系统包括:接收模块,用于接收用户口令;和加解密模块,用于:基于接收的用户口令生成保护密钥;基于真随机数和主密钥生成加解密密钥;利用所生成的加解密密钥来加密要存储的数据;以及,利用所生成的保护密钥来加密所述加解密密钥。

根据本公开的另一方面,提供了一种安全存储方法,该方法包括:接收用户口令;基于接收的用户口令生成保护密钥;基于真随机数和主密钥生成加解密密钥;利用所生成的加解密密钥来加密要存储的数据;以及利用所生成的保护密钥来加密所述加解密密钥。

根据本公开的另一方面,提供了一种用于安全存储的计算机系统,该计算机系统包括:处理器;和存储器,其上存储有指令,当所述指令由所述处理器运行时使得所述处理器执行如上所述的安全存储方法。

根据本公开的另一方面,提供了一种用于安全读取数据的系统,该用于安全读取数据的系统包括:接收模块,用于接收用户口令;加解密模块,用于:基于接收的用户口令生成保护密钥,利用所生成的保护密钥来解密加解密密钥,利用所解密的加解密密钥来解密加密的要读取的数据;和输出模块,用于输出所解密的数据。

根据本公开的又一方面,提供了一种用于安全读取数据的方法,该方法包括:接收用户口令;基于接收的用户口令生成保护密钥;利用所生成的保护密钥来解密加解密密钥;利用所解密的加解密密钥来解密加密的要读取的数据;以及输出所解密的数据。

根据本公开的再一方面,提供了一种用于安全存储的计算机系统,该计算机系统包括:处理器;和存储器,其上存储有指令,当所述指令由所述处理器运行时使得所述处理器执行如上所述用于安全读取数据的方法。

如以下将详细描述的,根据本公开的实施例的基于cpu(片上)国密加密引擎安全存储系统、方法和计算机系统,以及用于安全读取数据的系统、方法和计算机系统,不仅提供用户身份认证的安全访问机制,还对用户的数据提供高性能的加密保护。具体地,本公开基于cpu(片上)加密引擎和用户的口令,建立身份认证机制和密钥保护机制;基于cpu的密钥推导模块和真随机数模块,生成用户数据的加解密密钥;基于用户口令保护密钥,完成用户数据加解密密钥的保护;基于cpu硬件加密引擎的国密对称算法完成用户数据的机密性保护;基于cpu硬件加密擎的国密摘要算法完成用户数据的完整性保护。

在附图和以下描述中阐述了本公开的技术构思的一个或多个实施方式的细节。根据说明书、附图和权利要求,本公开的技术构思的其他特征、方面和优点将变得显而易见。

应该理解,前面的一般描述和下面的详细描述两者都是示例性的,并且旨在提供要求保护的技术构思的进一步说明,而不旨在限制本公开的技术构思。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应该理解,以下附图仅示出了本公开的某些实施例,因此不应该被看作是对本公开的技术构思的范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1是可以应用根据本公开的实施例的系统、方法和计算机系统的存储系统的分布式计算网络的图;

图2a是示出根据本公开的实施例的安全存储系统的一个示例的图;

图2b是示出根据本公开的实施例的安全存储系统的另一个示例的图;

图2c是示出根据本公开的实施例的安全存储系统的又一个示例的图;

图3是根据本公开的实施例的安全存储方案的架构图;

图4是根据本公开的实施例的安全存储数据的方案的一个示例流程图;

图5是根据本公开的实施例的安全存储数据的方案的另一个示例流程图;

图6是根据本公开的实施例的安全存储数据的方案的又一个示例流程图;

图7是根据本公开的实施例的安全存储数据的方案的再一个示例流程图;

图8a是示出根据本公开的实施例的用于安全读取数据的系统的一个示例的图;

图8b是示出根据本公开的实施例的用于安全读取数据的系统的另一个示例的图;

图9是根据本公开的实施例的安全读取数据的方案的一个示例流程图;

图10是根据本公开的实施例的安全读取数据的方案的另一个示例流程图;

图11是根据本公开的实施例的安全读取数据的方案的又一个示例流程图;

图12是根据本公开的实施例的安全读取数据的方案的再一个示例流程图;

图13是示出根据本公开的实施例的用于安全存储数据和/或用于安全读取数据的计算机系统的图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

应注意到:相同的标号和标记在下面的附图中表示相同的元素,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图1是可以应用根据本公开的实施例的系统、方法和计算机系统的存储系统的分布式计算网络的图。

参考图1,可以应用根据本公开的实施例的系统、方法和计算机系统的存储系统的分布式计算网络可以包括第一客户端110、第二客户端120、第三客户端130和云存储平台140,其中第一客户端110、第二客户端120、第三客户端130和云存储平台140可以经由网络150而进行数据通信。具体地,第一客户端110、第二客户端120和第三客户端130中的任何或全部可以经由网络150而将数据存储到云存储平台140,并且第一客户端110、第二客户端120和第三客户端130中的任何或全部可以经由网络150从云存储平台140读取存储的数据和/或其他数据。

应该理解,虽然在图1只示出了三个客户端设备,第一客户端110、第二客户端120和第三客户端130,但是本公开对此没有限制,即应用根据本公开的实施例的系统、方法和计算机系统的存储系统的分布式计算网络可以包括任何数量的客户端设备。

在本公开中,应用根据本公开的实施例的系统、方法和计算机系统的存储系统的分布式计算网络中包括的客户端设备(例如第一客户端110、第二客户端120和第三客户端130)包括但不限于智能手机、平板个人计算机(pc)、移动电话、视频电话、电子书阅读器、台式pc、膝上型pc、上网本pc、个人数字助理(pda)、便携式多媒体播放器(pmp)、mp3播放器、移动医疗设备、相机、可穿戴设备(例如,头戴式设备(hmd)、电子衣服、电子牙套(brace)、电子项链、电子配件、电子纹身或智能手表)和/或其它。图1中所示的云存储平台140可以是通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统。示例性地,云存储平台140可以是一种网络在线存储的模式,即把数据存放在通常由第三方托管的多台虚拟服务器,而非专属的服务器上,示例性地,云存储平台140可以是但不限于百度云盘、金山t盘、google云盘等。图1中所示的网络150可以是现有的或在未来研发出的任何类型的有线或无线网络,例如通过光纤、同轴电缆、双绞线等进行有线通信的有线网络,或者基于长期演进(longtermevolution,lte)、全球微波互操作性接入(worldwideinteroperabilityformicrowaveaccess,wimax、全球移动通信系统(globalsystemformobilecommunication,gsm)、码分多址(codedivisionmultipleaccess,cdma)、蓝牙、近场通信(nearfieldcommunication,nfc)、无线保真(wirelessfidelity,wi-fi)和射频识别(radiofrequencyidentification,rfid)等各种无线通信协议进行无线通信的无线网络。

图2a是示出根据本公开的实施例的安全存储系统的一个示例的图。图2a中所示的安全存储系统200a可以位于图1中的云存储平台140中,示例性地,图2a中所示的安全存储系统200a可以位于图1中的云存储平台140中包括的服务器中。

参考图2a,根据本公开的实施例的安全存储系统200a可以包括接收模块210和加解密模块220。其中,接收模块210可以用于接收用户口令和用户要存储的数据;加解密模块220可以用于执行数据的加密等操作,其将在下文中结合图3至图6详细描述。加解密模块220内置诸如国密算法的各种可以执行数据的加解密等操作的算法,换言之,加解密模块220执行的操作至少可以基于国密算法。可替代地或另外的,加解密模块220还可以内置可以执行数据的加解密等操作的国际算法。其中,国密算法的示例包括但不限于国密sm2算法、国密sm3算法和国密sm4算法,国际算法的示例包括但不限于国际标准摘要算法sha1算法。

图2b是示出根据本公开的实施例的安全存储系统的另一个示例的图。和图2a不同的是,图2b中所示的安全存储系统200b除了包括接收模块210和加解密模块220之外,还包括真随机数模块230和密钥推导模块240。其中,真随机数模块230可以用于生成真随机数,密钥推导模块240可以用于生成主密钥。

图2c是示出根据本公开的实施例的安全存储系统的又一个示例的图。和

图2b不同的是,图2c中所示的安全存储系统200c中的加解密模块220、真随机数模块230和密钥推导模块240位于cpu上。应该理解,虽然在图2c中,加解密模块220、真随机数模块230和密钥推导模块240三者都位于cpu上,但是本公开对此并没有限制,即,加解密模块220、真随机数模块230和密钥推导模块240中的任何一个或多个或全部可以位于cpu上。

在上文中,结合图2a至图2c描述了根据本公开的实施例的安全存储系统,但是应该理解,根据本公开的实施例的安全存储系统不限于图2a至图2c的所示。任何可以实施在下文中结合图3至图6描述的安全存储数据的方法的安全存储系统都在本公开的技术构思的范围内。

图3是根据本公开的实施例的安全存储方案的架构图。图3示出了根据本公开的实施例的安全存储方案中的数据路径l1至l6。数据路径l1至l6的详细描述将在下文中结合图4至图7来进行。

图4是根据本公开的实施例的安全存储数据的方案的一个示例流程图。

参考图4,根据本公开的实施例的安全存储数据的方案可以从步骤s400开始。在步骤s400中,接收模块,例如图2a至图2c中的接收模块210可以接收用户口令。在接收模块接收了用户口令之后,接收模块可以将接收的用户口令传输到加解密模块,例如图2a至图2c中的加解密模块220。之后,加解密模块可以执行步骤s410,在步骤s410中,加解密模块可以基于接收的用户口令生成保护密钥。示例性地,加解密模块可以基于用户口令,采用sha1算法和国密sm3算法中的至少一种算法来生成用户的保护密钥。具体地,加解密模块可以基于用户口令,采用sha1算法来生成用户的保护密钥。可替代地,加解密模块可以基于用户口令,采用国密sm3算法来生成用户的保护密钥。可替代地,加解密模块可以基于用户口令,先后采用sha1算法和国密sm3算法来生成用户的保护密钥。可替代地,加解密模块可以基于用户口令,先后采用国密sm3算法和sha1算法来生成用户的保护密钥。基于接收的用户口令生成用户的保护密钥的数据路径可以如图3中的数据路径l1所示。

之后,加解密模块可以执行步骤s420,在步骤s420中,加解密模块可以基于真随机数和主密钥生成加解密密钥。示例性地,加解密模块可以基于真随机数和主密钥,利用国密sm4算法硬件加密引擎来生成加解密密钥。其中,真随机数和主密钥可以是在存储数据时通过相应的模块生成的。具体地,真随机数可以由真随机数模块,例如图2b至图2c中的真随机数模块230生成;主密钥可以由密钥推导模块,例如图2b至图2c中的密钥推导模块240生成。当密钥推导模块位于cpu上时,主密钥可以由密钥推导模块,例如图2c中的密钥推导模块240通过读取cpu中的efuse来生成。可替代地,真随机数和主密钥可以是先前生成之后存储在存储器中的。基于真随机数和主密钥生成加解密密钥的数据路径示例性地可以如图3中的数据路径l2所示。

在加解密模块生成加解密密钥之后,加解密模块可以执行步骤s430,在步骤s430中,加解密模块可以利用在步骤s420中生成的加解密密钥来加密要存储的数据。示例性地,加解密模块可以利用所生成的加解密密钥,通过国密sm4算法来加密要存储的数据。利用所生成的加解密密钥来加密要存储的数据的数据路径可以如图3中的数据路径l3所示。

在将要存储的数据加密之后,加解密模块可以执行步骤s440,在步骤s440中,加解密模块可以利用在步骤s410中生成的保护密钥来加密在步骤s420中生成加解密密钥。示例性地,加解密模块利用所生成的保护密钥,通过国密sm4算法来加密加解密密钥。利用所生成的保护密钥来加密加解密密钥的数据路径可以如图3中的数据路径l4所示。

在上文中,结合图3和图4描述的根据本公开的实施例的安全存储数据的系统和方法,一方面该方法通过基于用户口令生成的保护密钥来加密用于加密要存储的数据的加解密密钥,使得无论是黑客还是云存储平台的运营方,在没有获取用户口令之前,都无法破解用户数据加解密密钥,而无法获取到用户文件的明文数据,从而使得存储在云存储平台上的数据的访问控制权只限于存储数据的用户,真正实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。另外,用户还可以定期更新口令,同时更新加密加解密密钥的保护密钥;而用于加密要存储的数据的加解密密钥无需更新,既方便了用户,又提升用户安全级别。

另一方面,在本公开的实施例中,由于加解密模块、真随机数模块和密钥推导模块中的至少一个可以位于cpu上,因而根据本公开的实施例的安全存储数据的系统和方法解决了软件算法占用cpu,性能不高的问题;并且相对于增加加密卡和加密机的方式,根据本公开的实施例的安全存储数据的系统和方法更能降低成本,降低安全风险,具有更高的性价比。另外相对于客户端先加密然后再传输加密的数据的方式,根据本公开的实施例的安全存储数据的系统和方法对用户完全透明,更能提高用户体验。

又一方面,根据本公开的实施例的安全存储数据的方法基于国密算法来生成加解密密钥和加密数据,国密算法相对于其他国际算法而言,具有更快的加密速度,且具有国家自主性。

图5是根据本公开的实施例的安全存储数据的方案的另一个示例流程图。为了简便,省去图5与图4相重复的内容。参考图5,图5与图4的区别是,图5包括步骤s550。在步骤s550中,加解密模块,例如图2a至图2c中的加解密模块220可以对用户口令进行哈希计算。示例性地,加解密模块可以通过国密sm3算法来对用户口令进行哈希计算并加入salt值后生成用户口令摘要。生成的用户口令摘要在下文中结合图9至图12描述的用于安全读取数据的操作中可以用于认证用户身份。对用户口令进行哈希计算从而生成用户口令摘要的数据路径可以如图3中的数据路径l5所示。

和结合图3和图4描述的根据本公开的实施例的安全存储数据的系统和方法相比,结合图3和图5描述的根据本公开的实施例的安全存储数据的系统和方法,通过对用户口令进行哈希计算来生成用户口令摘要,使得在读取数据时,可以通过对比基于用户口令生成的用户口令摘要和存储的用户口令摘要来认证读取数据的用户的用户身份,进一步实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。

图6是根据本公开的实施例的安全存储数据的方案的又一个示例流程图。为了简便,省去图6与图4相重复的内容。参考图6,图6与图4的区别是,图6包括步骤s650。在步骤s650中,加解密模块,例如图2a至图2c中的加解密模块220可以对要存储的数据进行哈希计算。示例性地,加解密模块可以通过国密sm3算法来对要存储的数据进行哈希计算从而生成数据摘要。生成的数据摘要在下文中结合图9至图12描述的用于安全读取数据的操作中可以用于验证所解密的数据的完整性。对要存储的数据进行哈希计算从而生成数据摘要的数据路径可以如图3中的数据路径l6所示。

和结合图3和图4描述的根据本公开的实施例的安全存储数据的系统和方法相比,结合图3和图6描述的根据本公开的实施例的安全存储数据的系统和方法,通过对要存储的数据进行哈希计算来生成数据摘要,使得在读取数据时,可以通过对比解密后的数据的数据摘要和存储的数据摘要来验证所解密的数据的完整性,进一步提升了对用户数据的保护。

图7是根据本公开的实施例的安全存储数据的方案的再一个示例流程图。参考图7可知,图7所示的根据本公开的实施例的安全存储数据的方案的示例流程包括图5中的对用户口令进行哈希计算从而生成用户口令摘要的步骤(步骤s750)和图6中的对要存储的数据进行哈希计算从而生成数据摘要的步骤(步骤s760)两者。为了简便,此处将省去其重复描述。

和结合图3和图4描述的根据本公开的实施例的安全存储数据的系统和方法相比,图7描述的根据本公开的实施例的安全存储数据的系统和方法,一方面通过对用户口令进行哈希计算来生成用户口令摘要,使得在读取数据时,可以通过对比基于用户口令生成的用户口令摘要和存储的用户口令摘要来认证读取数据的用户的用户身份,进一步实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。另一方面,通过对要存储的数据进行哈希计算来生成数据摘要,使得在读取数据时,可以通过对比解密后的数据的数据摘要和存储的数据摘要来验证所解密的数据的完整性。进一步提升了对用户数据的保护。

在上文中,结合图2a至图7描述了根据本公开的实施例的安全存储数据的系统和方法,在下文中,本公开将结合图8a至图12来描述根据本公开的实施例的用于安全读取数据的系统和方法。

图8a是示出根据本公开的实施例的用于安全读取数据的系统的一个示例的图。图8a中所示的用于安全读取数据的系统800a可以位于图1中的云存储平台140中,示例性地,图8a中所示的用于安全读取数据的系统800a可以位于图1中的云存储平台140中包括的服务器中。

参考图8a,根据本公开的实施例的用于安全读取数据的系统800a可以包括接收模块810、加解密模块820和输出模块830。其中,接收模块810可以用于接收用户口令;加解密模块820可以用于执行数据的解密等操作,其将在下文中结合图9至图12详细描述;输出模块830可以用于输出解密的数据和其他信息。和图200a至图200c中所示的加解密模块220类似,加解密模块820内置诸如国密算法的各种可以执行数据的加解密等操作的算法,换言之,加解密模块820执行的操作至少可以基于国密算法。可替代地或另外的,加解密模块820还可以内置可以执行数据的加解密等操作的国际算法。其中,国密算法的示例包括但不限于国密sm2算法、国密sm3算法和国密sm4算法,国际算法的示例包括但不限于国际标准摘要算法sha1算法。

图8b是示出根据本公开的实施例的用于安全读取数据的系统的另一个示例的图。和图8a不同的是,图8b中所示的安全存储系统800b中的加解密模块820位于cpu上。

在上文中,结合图8a和图8b描述了根据本公开的实施例的用于安全读取数据的系统,但是应该理解,根据本公开的实施例的用于安全读取数据的系统不限于图8a和图8b的所示。任何可以实施在下文中结合图9至图12描述的安全读取数据的方法的系统都在本公开的技术构思的范围内。

图9是根据本公开的实施例的安全读取数据的方案的一个示例流程图。

参考图9,根据本公开的实施例的安全读取数据的方案可以从步骤s900开始。在步骤s900中,接收模块,例如图8a和图8b中的接收模块810可以接收用户口令。在接收模块接收了用户口令之后,接收模块可以将接收的用户口令传输到加解密模块,例如图8a和图8b中的加解密模块820。之后,加解密模块可以执行步骤s910,在步骤s910中,加解密模块可以基于接收的用户口令生成保护密钥。示例性地,加解密模块可以基于用户口令,采用sha1算法和国密sm3算法中的至少一种算法来生成用户的保护密钥。具体地,加解密模块可以基于用户口令,采用sha1算法来生成用户的保护密钥。可替代地,加解密模块可以基于用户口令,采用国密sm3算法来生成用户的保护密钥。可替代地,加解密模块可以基于用户口令,先后采用sha1算法和国密sm3算法来生成用户的保护密钥。可替代地,加解密模块可以基于用户口令,先后采用国密sm3算法和sha1算法来生成用户的保护密钥。

之后,加解密模块可以执行步骤s920,在步骤s920中,加解密模块可以利用在步骤s910中生成的保护密钥来解密加解密密钥。示例性地,加解密模块可以利用所生成的保护密钥,通过国密sm4算法硬件解密引擎来解密加解密密钥。

在加解密模块解密了加解密密钥之后,加解密模块可以执行步骤s930,在步骤s930中,加解密模块可以利用在步骤s920中解密的加解密密钥来解密要读取的数据。示例性地,加解密模块可以利用所解密的加解密密钥,通过国密sm4算法来解密要读取的数据。

在将要读取的数据解密之后,加解密模块可以将解密的数据传输到输出模块,例如图8a和图8b中的输出模块830。之后,输出模块可以输出所解密的数据(步骤s940)。

在上文中,结合图9描述的根据本公开的实施例的安全读取数据的系统和方法,一方面通过基于用户口令生成的保护密钥来解密用于解密要读取的数据的加解密密钥,使得无论是黑客还是云存储平台的运营方,在没有获取用户口令之前,都无法破解用户数据加解密密钥,而无法获取到用户文件的明文数据,从而使得存储在云存储平台上的数据的访问控制权只限于存储数据的用户,真正实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。另外,用户还可以定期更新口令,同时更新解密加解密密钥的保护密钥;而用于解密要读取的数据的加解密密钥无需更新,既方便了用户,又提升用户安全级别。

另一方面,在本公开的实施例中,由于加解密模块可以位于cpu上,因而根据本公开的实施例的安全读取数据的方法解决了软件算法占用cpu,性能不高的问题;并且相对于增加加密卡和加密机的方式,根据本公开的实施例的安全读取数据的方法更能降低成本,降低安全风险,具有更高的性价比;另外相对于先传输再通过客户端解密加密的数据的方式,根据本公开的实施例的安全读取数据的方法对用户完全透明,更能提高用户体验。

图10是根据本公开的实施例的安全读取数据的方案的另一个示例流程图。为了简便,省去图10与图9相重复的内容。参考图10,图10与图9的区别是,图10包括步骤s1050。在步骤s1050中,加解密模块,例如图8a和图8b中的加解密模块820可以生成用户口令摘要,并将所生成的用户口令摘要与存储的用户口令摘要进行对比。示例性地,加解密模块可以通过国密sm3算法来对用户口令进行哈希计算并加入salt值后生成用户口令摘要。然后,加解密模块可以将生成的用户口令摘要和存储的用户口令摘要进行对比以认证读取数据的用户的用户身份。在生成的用户口令摘要和存储的用户口令摘匹配的情况下,根据本公开的实施例的安全读取数据的方案可以继续执行根据本公开的实施例的安全读取数据的方法,其和上面结合图9描述的根据本公开的实施例的安全读取数据的方法类似,因此,此处省略其重复描述。在生成的用户口令摘要和存储的用户口令摘不匹配的情况下,根据本公开的实施例的安全读取数据的方案可以返回到步骤s1000。示例性地,在生成的数据摘要和存储的数据摘要不匹配的情况下,输出模块可以选择性的输出错误信息并提示用户重新输入用户口令。

和结合图9描述的根据本公开的实施例的安全读取数据的方法相比,结合图10描述的根据本公开的实施例的安全读取数据的方法,通过对用户口令进行哈希计算来生成用户口令摘要,并将生成的用户口令摘要和存储的用户口令摘要进行对比来认证读取数据的用户的用户身份,进一步实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。

图11是根据本公开的实施例的安全读取数据的方案的又一个示例流程图。为了简便,省去图11与图9相重复的内容。参考图11,图11与图9的区别是,图11包括步骤s1150。在步骤s1150中,加解密模块,例如图8a和图8b中的加解密模块820可以对所解密的数据进行哈希计算以生成数据摘要,并将所生成的数据摘要与存储的数据摘要进行对比。示例性地,加解密模块可以通过国密sm3算法来对所解密的数据进行哈希计算以生成数据摘要。然后,加解密模块可以将生成的数据摘要和存储的数据摘要进行对比以验证所解密的数据的完整性。在生成的数据摘要和存储的数据摘要匹配的情况下,根据本公开的实施例的安全读取数据的方法可以将解密的数据传输到输出模块,然后输出模块输出所解密的数据(步骤s1140)。在生成的数据摘要和存储的数据摘要不匹配的情况下,根据本公开的实施例的安全读取数据的方法可以结束。示例性地,在生成的数据摘要和存储的数据摘要不匹配的情况下,输出模块可以选择性的输出错误信息。

和结合图9描述的根据本公开的实施例的安全读取数据的系统和方法相比,结合图11描述的根据本公开的实施例的安全读取数据的系统和方法,通过对所解密的数据进行哈希计算生成数据摘要,并将所生成的数据摘要与存储的数据摘要进行对比来验证所解密的数据的完整性,进一步提升了对用户数据的保护。

图12是根据本公开的实施例的安全读取数据的方案的再一个示例流程图。参考图12可知,图12所示的根据本公开的实施例的安全读取数据的方案的示例流程包括图10中的生成用户口令摘要,并将所生成的用户口令摘要与存储的用户口令摘要进行对比的步骤(步骤s1250);和图11中的对所解密的数据进行哈希计算生成数据摘要,并将所生成的数据摘要与存储的数据摘要进行对比的步骤(步骤s1260)两者。为了简便,此处将省去其重复描述。

和结合图9描述的根据本公开的实施例的安全读取数据的系统和方法相比,结合图12描述的根据本公开的实施例的安全读取数据的系统和方法,一方面通过对用户口令进行哈希计算来生成用户口令摘要,并将生成的用户口令摘要和存储的用户口令摘要来认证读取数据的用户的用户身份,进一步实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。另一方面,通过对所解密的数据进行哈希计算生成数据摘要,并将所生成的数据摘要与存储的数据摘要进行对比来验证所解密的数据的完整性,进一步提升了对用户数据的保护。

应该理解,在上文中,结合图2a至图12描述的根据本公开的安全存储数据和/或读取数据的系统和方法,虽然其中示例性地使用国密sm4算法来进行加解密操作,并且示例性地使用国密sm3算法来进行哈希操作,但是本公开不限于此。换言之,根据本公开的安全存储数据和/或读取数据的系统和方法中的国密sm4算法可以可替代地使用现有地和/或在将来研发的任何国密对称加解密算法来代替,并且根据本公开的安全存储数据和/或读取数据的系统和方法中的国密sm3算法可以可替代地使用现有地和/或在将来研发的任何国密哈希(摘要)算法来代替。

图13是示出根据本公开的实施例的用于安全存储数据和/或用于安全读取数据的计算机系统的图。根据本公开的实施例的用于安全存储数据和/或用于安全读取数据的计算机系统至少包括处理器;以及存储器,用于存储计算机程序指令。当计算机程序指令由处理器加载并运行时,所述处理器执行如上所述的根据本公开的实施例的安全存储数据和/或安全读取数据的方法。

在上文中,结合本公开的实施例描述了根据本公开的安全存储数据和/或安全读取数据的系统、方法和计算机系统。其一方面通过基于用户口令生成的保护密钥来加解密用于加解密要存储的数据的加解密密钥和通过生成用户口令摘要,并将所生成的用户口令摘要与存储的用户口令进行对比来认证读取数据的用户的用户身份,使得无论是黑客还是云存储平台的运营方,在没有获取用户口令之前,都无法破解用户数据加解密密钥,而无法获取到用户文件的明文数据,从而使得存储在云存储平台上的数据的访问控制权只限于存储数据的用户,真正实现了将存储的数据的访问权和所有权掌握在存储数据的用户的手中。另外,用户还可以定期更新口令,同时更新加解密加解密密钥的保护密钥;而用于加解密要存储的数据的加解密密钥无需更新,即方便了用户,又提升用户安全级别。

另一方面,结合本公开的实施例描述的安全存储数据和/或安全读取数据的系统、方法和计算机系统通过对所解密的数据进行哈希计算生成数据摘要,并将所生成的数据摘要与存储的数据摘要进行对比来验证所解密的数据的完整性,进一步提升了对用户数据的保护。

又一方面,在本公开的实施例中,由于加解密模块、真随机数模块和密钥推导模块中的至少一个可以位于cpu上,因而根据本公开的实施例的安全存储数据和/或安全读取数据的系统、方法和计算机系统解决了软件算法占用cpu,性能不高的问题;并且相对于增加加密卡和加密机的方式,根据本公开的实施例的安全存储数据的方法更能降低成本,降低安全风险,具有更高的性价比;另外相对于客户端先加密然后再传输方式和先传输在通过客户端设备解密加密的数据的方式,根据本公开的实施例的安全存储数据和/或安全读取数据的系统、方法和计算机系统对用户完全透明,更能提高用户体验。

应该理解,以上所描述的实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本公开的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,该模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本公开各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。需要说明的是,在本文中,诸如第一和第三等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所附权利要求及其等同物的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1