数据加解密方法、服务器及存储介质与流程

文档序号:17125318发布日期:2019-03-16 00:20阅读:177来源:国知局
数据加解密方法、服务器及存储介质与流程

本发明涉及密码技术领域,尤其涉及一种数据加解密方法、服务器及存储介质。



背景技术:

随着计算机技术和网络技术的发展,人类已经进入大数据时代,面对大量用户的海量数据信息,如何确保重要数据的安全性,已成为信息安全技术领域的关注重点。

一方面,相对于普通pc来说,服务器通常在稳定性和安全性等方面具有更高要求。在实际工作中,为了加强信息安全管理,有时需要避免客户端本地长期存储重要数据。另一方面,在传统技术中,可以使用加解密算法对数据内容进行处理,以防止非授权用户获取数据内容,而现在使用的密码体制由算法和密钥组成,算法大都是公开的,密码体制的安全性主要取决于密钥的安全性。为了强化数据安全和信息保护,需要对密钥进行严格的保护并需要密钥具有一定的更换频度,然而现有的具有动态更新密钥功能的密码系统通常具有很高的系统复杂度。

然而,目前大多数的密钥管理产品中只提供固定长期的密钥管理,这样对于长期在网络中使用该密钥则存在较高的破译风险,从而导致个人私密信息泄露,对个人人身安全、财产安全等各方面造成不可估量损失。



技术实现要素:

鉴于以上内容,本发明提供一种数据加解密方法、服务器及存储介质,其主要目的在于提升个人密钥的安全性,保证个人信息在网络中的安全,以及密钥更换后但不影响利用老版本密钥进行操作的文件的使用,提高数据的安全性。

为实现上述目的,本发明提供一种数据加解密方法,该方法包括:

密钥生成步骤:设置密钥的更新周期,当所述服务器的系统时间到达更新周期时,随机生成新版本密钥;

密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文;

接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据;

第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;

第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及

解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。

优选地,所述方法包括:

设置所述密钥存储表的容量阈值;

当所述密钥存储表所占的空间大小大于所述容量阈值时,根据各版本密钥存储的先后顺序,依次删除先存储的旧版本密钥,直至所述密钥存储表所占的空间大小与所述容量阈值的比值小于预设百分比。

可选地,该方法还可以包括:

密文存储步骤:将所述第二密文存储至第二数据库中。

可选地,该方法还可以包括:

发送步骤:将所述第二密文发送给所述用户。

此外,本发明还提供一种服务器,该服务器包括存储器和处理器,所述存储器中包括数据加解密程序,该数据加解密程序被所述处理器执行时实现如下步骤:

密钥生成步骤:设置密钥的更新周期,当所述服务器的系统时间到达更新周期时,随机生成新版本密钥;

密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文;

接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据;

第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;

第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及

解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括数据加解密程序,该数据加解密程序被处理器执行时实现如上所述的数据加解密方法中的任意步骤。

在本发明中,所有密钥的生成和存储过程以及使用该密钥的加解密过程均由所述服务器完成,用户可以在客户端与所述服务器进行数据交互,将所述待加密数据以密文的形式存储在所述服务器中,或将服务器返回的所述第二密文存储在本地客户端中,在需要用到所述待加密数据时,再将所述第二密文发送给所述服务器解密,然后接收该服务器返回的待加密数据,避免了客户端本地长期存储所述待加密数据明文,从而确保所述待加密数据的数据安全。另外,通过采用密钥动态更新机制并结合使用对称密码体制和非对称密码体制,可以有效地阻止非法侵入者采用破解密钥的方式对所述服务器中的大规模数据进行破坏操作,进一步提高了数据安全性。

附图说明

图1为本发明服务器较佳实施例的示意图;

图2为图1中数据加解密程序较佳实施例的程序模块图;

图3为本发明一种数据加解密方法较佳第一实施例的流程图;

图4为本发明一种数据加解密方法较佳第二实施例的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种服务器。所述服务器,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等的一种或几种。参照图1所示,为本发明服务器1较佳实施例的示意图。实施例中,所述服务器1包括存储器11、处理器12以及网络接口13。

其中,所述存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述服务器1的内部存储单元,例如该服务器1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述服务器1的外部存储器11,例如所述服务器1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。

在本实施例中,所述存储器11的可读存储介质用于存储数据加解密程序10以及加解密过程中产生的数据,例如待加密数据、密钥编号和用户身份验证信息等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行数据加解密程序10。

网络接口13可以包括标准的有线接口、无线接口(如wi-fi接口)。通常用于在该服务器1与其他电子设备之间建立通信连接。

图1仅示出了具有组件11-13和数据加解密程序10的服务器1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

在一个实施例中,处理器12执行存储器11中存储的数据加解密程序10时实现如下步骤:

密钥生成步骤:设置密钥的更新周期,当所述服务器的系统时间到达更新周期时,随机生成新版本密钥;

密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文;

接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据;

第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;

第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及

解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。

具体原理请参照下述图2关于数据加解密程序10的程序模块图及图3、图4关于数据加解密方法的流程图的介绍。

参照图2所示,为图1中数据加解密程序10的程序模块图。所述数据加解密程序10被分割为多个模块,该多个模块被存储于存储器12中,并由处理器13执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。

所述数据加解密程序10可以被分割为:生成模块110、存储模块120、接收模块130、加密模块140及解密模块150。

所述生成模块110,用于设置密钥的更新周期,当所述服务器的系统时间到达更新周期时,随机生成新版本密钥。所述新版本密钥可以利用随机字符串生成器或预设的随机数产生算法生成。例如,假设设置服务器密钥更新的周期为24小时,每隔24小时系统就会随机地产生新版本的密钥。生成密钥的方式有很多,其中比较常用的就是随机字符串生成器法和随机数算法生成法。当利用随机字符串生成器生成密钥时,可以通过网页在线的方式随机生成不同版本的密钥;当利用预设的随机数算法生成密钥时,通过算法的规则随机生成不同的密钥。密钥生成的方式有很多,在此不再赘述。

所述存储模块120,用于利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文,其中所述的非对称加密算法为椭圆加密算法(ellipticcurvecryptography,ecc)。

ecc是一种公钥加密体制,最初由koblitz和miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成abel加法群上椭圆离散对数的计算困难性。公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。所述椭圆加密算法的优点有:一是安全性高,有研究表示160位的椭圆密钥与1024位的rsa密钥安全性相同。二是处理速度快,在私钥的加密解密速度上,ecc算法比rsa、dsa速度更快。三是存储空间占用小,带宽要求也比较低。例如,用椭圆加密算法将上述所生成的其中一个密钥加密,得到密钥密文enc_dk,并将enc_dk存储到密钥存储表中。密钥存储表里的每个密钥编号都有对应的密钥版本号和密钥密文与之对应,而且存在一对多的关系。密文enc_dk对应的密钥版本号为version,对应的密钥编号为keyid。另外,也可以采用rsa非对称加密算法,其特点之一是数学原理简单、在工程应用中比较易于实现,但它的单位安全强度相对较低。而ecc算法的数学理论非常深奥和复杂,在工程应用中比较难于实现,但它的单位安全强度相对较高。所以假如用rsa算法将上述的密钥进行加密,其安全性比用ecc算法加密要低。ecc加密算法的计算量小并且处理速度快。在一定的相同的计算资源条件下,虽然在rsa中可以提高公钥处理速度,即提高加密和签名验证的速度,使其在加密和签名验证速度上与ecc有可比性,但在私钥的处理速度上(解密和签名),ecc远比rsa快得多。同时ecc系统的密钥生成速度比rsa快百倍以上,以163位的ecc加密算法与1024位的rsa加密算法比较,ecc加密算法的签名时间为3.0ms,密钥对生成时间为3.8ms,但rsa加密算法却分别高达228.4ms和4708.3ms,因此在相同条件下,ecc加密算法则有更高的加密性能。而本发明最主要的技术效果就是为了提升数据加密的安全性,因此本发明采用ecc算法加密较佳。

所述第一数据库可以为关系型数据库,例如oracle、db2、microsoftsqlserver、microsoftaccess、mysql等,用于存储密钥存储表的数据,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段。

在一实施例中,密钥存储表有对应的容量阈值,当所述密钥存储表所占的空间大小大于所述容量阈值时,根据各版本密钥存储的先后顺序,依次删除先存储的旧版本密钥,直至所述密钥存储表所占的空间大小与所述容量阈值的比值小于预设百分比。例如,可以设置存储容量阈值为20m,也就是在计算机系统的存储容量中分配20m的存储容量用于存储密钥。计算机系统可以在密钥存储的同时记载密钥的存储时间。假设,最先存储的密钥对存储容量的需求为0.7m,次先存储的密钥对存储容量的需求为0.5m。当前已经存储的密钥占用的存储容量为19m。当更新的密钥对存储容量的需求为0.5m时,则删除最先存储的密钥,将更新的密钥与旧密钥中删除最先存储的密钥后剩余的密钥一起存储。而当更新的密钥对存储容量的需求为1m时,则删除最先存储的密钥和次先存储的密钥,将更新的密钥与旧密钥中删除最先存储的密钥、删除次先存储的密钥后剩余的密钥一起存储。由于设置了存储容量阈值,使得更新的密钥和旧密钥占用的存储容量限制在合理水平。

所述接收模块130,用于接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据。例如,接收的密钥编号为keyid。所述身份验证信息是表示用户身份的唯一标识,例如用户的账号和密码,通过用户的账号和密码,验证用户的身份信息。

所述加密模块140,用于为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;之后,利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文。例如,利用密钥明文和aes加密算法对待加密数据进行初次加密得到第一密文enc_dk,再利用所述身份验证信息生成的密钥和aes加密算法对接收的密钥编号keyid、所述当前版本密钥密文对应的密钥版本号version以及第一密文enc_dk进行二次加密得到第二密文。该第二密文可以存储到所述第一数据库,也可以存储到独立于第一数据库的第二数据库中,以提高数据储存的安全性。当然,第一数据库和第二数据库的类型可以相同也可以不同。例如,可以为oracle、db2、microsoftsqlserver、microsoftaccess、mysql的任意一种或两种。

所述第一对称加密算法,可以为des、3des、idea、feal、blowfish、aes等对称加密算法中的任意一种。3des是对一块数据用三个不同的密钥进行三次加密,强度更高,其可以加密的密钥长度为112位或168位,特征是运算速度慢、安全性中等、资源消耗比较高;而aes是高级加密标准,是下一代的加密算法标准,速度快,安全级别高,其可以加密的密钥长度为128、192、256位,特征是运算速度快、安全性高、资源消耗比较低。根据以上两个加密算法比较结果,aes算法的性能更好,因此本发明采用aes算法加密。第二加密算法可以与第一加密算法相同或不同。

在另一个实施例中,所述加密步骤的第二密文还可以包括:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号、所述第一密文以及所述盐值密文进行二次加密,得到第二密文。在该实施例中,所述二次加密的加密对象的数据格式可以为keyid&enc_dk&version&盐值。其中,keyid表示密钥编号,enc_dk表示第一密文,version表示所述初次加密所用密钥对应的密钥版本号,所述盐值为所述服务器产生的随机数,或为所述服务器存储的、由所述用户输入的随机字符串。盐值的作用就是为了增加密钥被破解的难度,从而提高数据加密的安全性。例如,假设服务器随机产生数为369,接收用户的密钥编号为keyid,第一密文为enc_dk,密钥版本号为version,则二次加密的加密对象的格式为keyid&enc_dk&version&369,利用盐值的随机性增加密码被破解的难度,提高数据的安全性。

所述解密模块150,用于当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。具体地,先利用所述身份验证信息生成的密钥对所述第二密文进行初次解密,得到对应的密钥编号、密钥版本号以及所述第一密文,再根据该密钥编号和密钥版本号得到对应版本的密钥,利用该密钥对所述第一密文进行解密,得到所述待加密数据。例如,利用所述身份验证信息生成的密钥对所述第二密文进行初次解密,得到对应的密钥编号keyid、密钥版本号version以及第一密文enc_dk,再根据密钥编号keyid、密钥版本号version得到对应的密钥,再利用密钥对所述第一密文enc_dk进行解密操作,得到解密结果。

参照图3所示,为本发明一种数据加解密方法第一较佳实施例的流程图。服务器1的处理器13执行存储器12中存储的数据加解密程序10时实现数据加解密方法的如下步骤:

步骤s300,设置密钥的更新周期,当所述服务器的系统时间到达更新周期时,随机生成新版本密钥。密钥周期的更新可以由服务器设置一个定时器,当定时器到达密钥更新的时间时,启动定时器,数据加解密程序就会执行生成模块,启动密钥的更新任务,随机生成新版本的密钥。

步骤s310,利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文。例如,采用ecc非对称算法对新版本的密钥进行加密,其计算量小且处理速度快,提高将密钥密文存储到密钥存储表的存储效率。利用ecc非对称算法对随机生成的密钥进行加密得到密钥密文,将该密钥密文存储至第一数据库(例如,mysql)的密钥存储表中。

步骤s320,接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据。此时数据加解密程序就会执行接收模块,例如接收待加密数据以及用户的账号和密码,验证用户的身份信息。

步骤s330,为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文。所述第一对称加密算法,可以为数据加密标准算法(dataencryptionstandard,des)、三重数据加密算法(tripledataencryptionalgorithm,3des)、国际数据加密算法(internationaldataencryptionalgorithm,idea)、feal(fastdataenciphermentalgorithm)、高级加密标准(advancedencryptionstandard,aes)、blowfish等对称加密算法中的任意一种。例如,可以采用aes加密算法,该算法可以加密的密钥长度为128、192、256位,特点是运算速度快、安全性高、资源消耗比较低,从而提高本发明数据加解密的效率和安全性。

步骤s340,利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文。此处的加密过程是运用所述身份验证信息生成的密钥和第二对称加密算法分别对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行加密,将加密得到的结果整合成一个整体得到第二密文。在一实施例中,所述第二对称加密算法可以采用idea加密算法,此算法使用128位密钥提供非常强的安全性,当对密钥编号keyid,对应的密钥版本号version,第一密文enc_dk进行二次加密时,安全性非常强且效率高,降低了被破解的风险,保证了数据加密的安全性。

步骤s350,当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。具体地,先利用所述身份验证信息生成的密钥对所述第二密文进行初次解密,得到对应的密钥编号、密钥版本号以及所述第一密文,再根据该密钥编号和密钥版本号得到对应版本的密钥,利用该密钥对所述第一密文进行解密,得到解密结果。例如,利用所述身份验证信息生成的密钥对所述第二密文进行初次解密,得到对应的密钥编号keyid、密钥版本号version以及第一密文enc_dk,再根据密钥编号keyid、密钥版本号version得到对应的密钥,再利用密钥对所述第一密文enc_dk进行解密操作,得到解密结果。

参照图4所示,为本发明一种数据加解密方法第二较佳实施例的流程图。服务器1的处理器13执行存储器12中存储的数据加解密程序10时实现数据加解密方法的如下步骤:

步骤s400,设置密钥的更新周期,当所述服务器的系统时间到达更新周期时,随机生成新版本密钥。密钥周期的更新可以由服务器设置一个定时器,当定时器到达密钥更新的时间时,启动定时器,数据加解密程序就会执行生成模块,启动密钥的更新任务,随机生成新版本的密钥。

步骤s410,利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文。例如,采用ecc非对称算法对新版本的密钥进行加密,其计算量小且处理速度快,提高将密钥密文存储到密钥存储表的存储效率。利用ecc非对称算法对随机生成的密钥进行加密得到密钥密文,将该密钥密文存储至第一数据库(例如,mysql)的密钥存储表中。

步骤s420,接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据。此时数据加解密程序就会执行接收模块,例如接收待加密数据以及用户的账号和密码,验证用户的身份信息。

步骤s430,为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文。所述第一对称加密算法,可以为des、3des、idea、feal、blowfish、aes等对称加密算法中的任意一种。例如,可以采用aes加密算法,该算法可以加密的密钥长度为128、192、256位,特点是运算速度快、安全性高、资源消耗比较低,从而提高本发明数据加解密的加解密效率和安全性。

步骤s440,利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号、所述第一密文以及所述盐值密文进行二次加密,得到第二密文。所述盐值密文是利用由所述身份验证信息生成的密钥和所述第二对称加密算法对盐值进行加密得到的,所述盐值为由所述服务器产生的随机数,或为所述服务器存储的、所述用户输入的随机字符串。在一实施例中,所述二次加密的加密对象的数据格式可以为keyid&enc_dk&version&盐值。其中,keyid表示密钥编号,enc_dk表示第一密文,version表示所述初次加密所用密钥对应的密钥版本号。在本实施例中,所述第二对称加密算法可以采用idea加密算法,此算法使用128位密钥提供非常强的安全性,当对密钥编号keyid,对应的密钥版本号version,第一密文enc_dk进行二次加密时,安全性非常强且效率高,大大降低了被破解的风险,保证了数据加密的安全性。

所述盐值密文的目的是为了增加攻击者破解的难度,那么在对盐值加密的时候要注意以下几点,否则盐值密文的意义也不会太大。

1、盐值不能太短;如果盐值只有少数两三位甚至一两位的话,攻击者完全可以穷举所有可能的盐值。

2、盐值不能固定;如果系统使用了固定的盐值,那么和不加盐值是一样的效果,攻击者可以利用固定的盐值提前准备破解方法。

3、不要使用能提前预知的值作为盐值;如果盐值能提前得知或提前推断出,攻击者也完全可以根据提前准备破解方法,从而对破解的难度也增加不了多少。

步骤s450,当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。具体地,先利用所述身份验证信息生成的密钥对所述第二密文进行初次解密,得到对应的密钥编号、密钥版本号以及所述第一密文,再根据该密钥编号和密钥版本号得到对应版本的密钥,利用该密钥对所述第一密文进行解密,得到解密结果。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质可以是硬盘、多媒体卡、sd卡、闪存卡、smc、只读存储器(rom)、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器等等中的任意一种或者几种的任意组合。所述计算机可读存储介质中包括数据加解密程序10,该数据加解密程序10被处理器执行时实现的功能,执行如下步骤:

密钥生成步骤:设置密钥的更新周期,当系统时间到达更新周期时,随机生成新版本密钥;

密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文;

接收步骤:接收用户的数据加密请求,该数据加密请求包括待加密数据、密钥编号和身份验证信息;

第一加密步骤:对接收的密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;

第二加密步骤:利用所述身份验证信息生成的密钥和第二对称加密算法对接收的密钥编号、所述当前版本密钥密文对应的密钥版本号以及该第一密文进行二次加密,得到第二密文;及

解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。

本发明所有密钥的生成和存储过程以及使用该密钥的加解密过程均由服务器完成,在加密过程中,客户端只需要向所述服务器提供待加密数据、身份验证信息和密钥编号即可得到服务器返回的第二密文;在解密过程中,客户端只需要向所述服务器提供待解密数据和身份验证信息即可到的所述待解密数据对应的原始数据。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

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