CN109474423B - 数据加解密方法、服务器及存储介质 - Google Patents

数据加解密方法、服务器及存储介质 Download PDF

Info

Publication number
CN109474423B
CN109474423B CN201811503032.8A CN201811503032A CN109474423B CN 109474423 B CN109474423 B CN 109474423B CN 201811503032 A CN201811503032 A CN 201811503032A CN 109474423 B CN109474423 B CN 109474423B
Authority
CN
China
Prior art keywords
key
ciphertext
encryption
decryption
version
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
Application number
CN201811503032.8A
Other languages
English (en)
Other versions
CN109474423A (zh
Inventor
梁炳春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN201811503032.8A priority Critical patent/CN109474423B/zh
Publication of CN109474423A publication Critical patent/CN109474423A/zh
Application granted granted Critical
Publication of CN109474423B publication Critical patent/CN109474423B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及密码技术,提供了一种数据加解密方法、服务器及存储介质。该方法包括:设置密钥的更新周期,生成和存储多版本密钥;接收用户发送的包括身份验证信息和待加密数据的数据加密请求;为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥对所述待加密数据进行初次对称加密,得到第一密文;利用由所述身份验证信息生成的密钥对所述密钥编号、所述当前版本密钥的密钥版本号以及所述第一密文进行二次对称加密,得到第二密文;接收所述用户发送的数据解密请求,对所述第二密文进行逆向解密操作,得到解密结果。利用本发明,可以实现密钥定期更新,增强密钥的安全性。

Description

数据加解密方法、服务器及存储介质
技术领域
本发明涉及密码技术领域,尤其涉及一种数据加解密方法、服务器及存储介质。
背景技术
随着计算机技术和网络技术的发展,人类已经进入大数据时代,面对大量用户的海量数据信息,如何确保重要数据的安全性,已成为信息安全技术领域的关注重点。
一方面,相对于普通PC来说,服务器通常在稳定性和安全性等方面具有更高要求。在实际工作中,为了加强信息安全管理,有时需要避免客户端本地长期存储重要数据。另一方面,在传统技术中,可以使用加解密算法对数据内容进行处理,以防止非授权用户获取数据内容,而现在使用的密码体制由算法和密钥组成,算法大都是公开的,密码体制的安全性主要取决于密钥的安全性。为了强化数据安全和信息保护,需要对密钥进行严格的保护并需要密钥具有一定的更换频度,然而现有的具有动态更新密钥功能的密码***通常具有很高的***复杂度。
然而,目前大多数的密钥管理产品中只提供固定长期的密钥管理,这样对于长期在网络中使用该密钥则存在较高的破译风险,从而导致个人私密信息泄露,对个人人身安全、财产安全等各方面造成不可估量损失。
发明内容
鉴于以上内容,本发明提供一种数据加解密方法、服务器及存储介质,其主要目的在于提升个人密钥的安全性,保证个人信息在网络中的安全,以及密钥更换后但不影响利用老版本密钥进行操作的文件的使用,提高数据的安全性。
为实现上述目的,本发明提供一种数据加解密方法,该方法包括:
密钥生成步骤:设置密钥的更新周期,当所述服务器的***时间到达更新周期时,随机生成新版本密钥;
密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文;
接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据;
第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;
第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及
解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。
优选地,所述方法包括:
设置所述密钥存储表的容量阈值;
当所述密钥存储表所占的空间大小大于所述容量阈值时,根据各版本密钥存储的先后顺序,依次删除先存储的旧版本密钥,直至所述密钥存储表所占的空间大小与所述容量阈值的比值小于预设百分比。
可选地,该方法还可以包括:
密文存储步骤:将所述第二密文存储至第二数据库中。
可选地,该方法还可以包括:
发送步骤:将所述第二密文发送给所述用户。
此外,本发明还提供一种服务器,该服务器包括存储器和处理器,所述存储器中包括数据加解密程序,该数据加解密程序被所述处理器执行时实现如下步骤:
密钥生成步骤:设置密钥的更新周期,当所述服务器的***时间到达更新周期时,随机生成新版本密钥;
密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文;
接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据;
第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;
第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及
解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中包括数据加解密程序,该数据加解密程序被处理器执行时实现如上所述的数据加解密方法中的任意步骤。
在本发明中,所有密钥的生成和存储过程以及使用该密钥的加解密过程均由所述服务器完成,用户可以在客户端与所述服务器进行数据交互,将所述待加密数据以密文的形式存储在所述服务器中,或将服务器返回的所述第二密文存储在本地客户端中,在需要用到所述待加密数据时,再将所述第二密文发送给所述服务器解密,然后接收该服务器返回的待加密数据,避免了客户端本地长期存储所述待加密数据明文,从而确保所述待加密数据的数据安全。另外,通过采用密钥动态更新机制并结合使用对称密码体制和非对称密码体制,可以有效地阻止非法侵入者采用破解密钥的方式对所述服务器中的大规模数据进行破坏操作,进一步提高了数据安全性。
附图说明
图1为本发明服务器较佳实施例的示意图;
图2为图1中数据加解密程序较佳实施例的程序模块图;
图3为本发明一种数据加解密方法较佳第一实施例的流程图;
图4为本发明一种数据加解密方法较佳第二实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种服务器。所述服务器,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器等的一种或几种。参照图1所示,为本发明服务器1较佳实施例的示意图。实施例中,所述服务器1包括存储器11、处理器12以及网络接口13。
其中,所述存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述服务器1的内部存储单元,例如该服务器1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述服务器1的外部存储器11,例如所述服务器1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
在本实施例中,所述存储器11的可读存储介质用于存储数据加解密程序10以及加解密过程中产生的数据,例如待加密数据、密钥编号和用户身份验证信息等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,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,用于利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文,其中所述的非对称加密算法为椭圆加密算法(Elliptic curvecryptography,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、Microsoft SQL Server、Microsoft Access、MySQL等,用于存储密钥存储表的数据,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段。
在一实施例中,密钥存储表有对应的容量阈值,当所述密钥存储表所占的空间大小大于所述容量阈值时,根据各版本密钥存储的先后顺序,依次删除先存储的旧版本密钥,直至所述密钥存储表所占的空间大小与所述容量阈值的比值小于预设百分比。例如,可以设置存储容量阈值为20M,也就是在计算机***的存储容量中分配20M的存储容量用于存储密钥。计算机***可以在密钥存储的同时记载密钥的存储时间。假设,最先存储的密钥对存储容量的需求为0.7M,次先存储的密钥对存储容量的需求为0.5M。当前已经存储的密钥占用的存储容量为19M。当更新的密钥对存储容量的需求为0.5M时,则删除最先存储的密钥,将更新的密钥与旧密钥中删除最先存储的密钥后剩余的密钥一起存储。而当更新的密钥对存储容量的需求为1M时,则删除最先存储的密钥和次先存储的密钥,将更新的密钥与旧密钥中删除最先存储的密钥、删除次先存储的密钥后剩余的密钥一起存储。由于设置了存储容量阈值,使得更新的密钥和旧密钥占用的存储容量限制在合理水平。
所述接收模块130,用于接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据。例如,接收的密钥编号为keyID。所述身份验证信息是表示用户身份的唯一标识,例如用户的账号和密码,通过用户的账号和密码,验证用户的身份信息。
所述加密模块140,用于为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;之后,利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文。例如,利用密钥明文和AES加密算法对待加密数据进行初次加密得到第一密文ENC_DK,再利用所述身份验证信息生成的密钥和AES加密算法对接收的密钥编号keyID、所述当前版本密钥密文对应的密钥版本号version以及第一密文ENC_DK进行二次加密得到第二密文。该第二密文可以存储到所述第一数据库,也可以存储到独立于第一数据库的第二数据库中,以提高数据储存的安全性。当然,第一数据库和第二数据库的类型可以相同也可以不同。例如,可以为Oracle、DB2、Microsoft SQLServer、Microsoft Access、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,为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文。所述第一对称加密算法,可以为数据加密标准算法(Data Encryption Standard,DES)、三重数据加密算法(Triple Data EncryptionAlgorithm,3DES)、国际数据加密算法(International Data Encryption Algorithm,IDEA)、FEAL(Fast Data Encipherment Algorithm)、高级加密标准(Advanced EncryptionStandard,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、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据加解密方法,应用于服务器,其特征在于,该方法包括:
密钥生成步骤:设置密钥的更新周期,当所述服务器的***时间到达更新周期时,随机生成新版本密钥;
密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文,第一数据库为关系型数据库;
接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据,所述身份验证信息是表示用户身份的唯一标识;
第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;
第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及
解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。
2.如权利要求1所述的数据加解密方法,其特征在于,所述第一对称加密算法和所述第二对称加密算法为DES、3DES、IDEA、FEAL、BLOWFISH、AES对称加密算法中的任意一种或两种。
3.如权利要求1所述的数据加解密方法,其特征在于,所述第二密文还包括盐值密文,该盐值密文是利用由所述身份验证信息生成的密钥和所述第二对称加密算法对盐值进行加密得到的,所述盐值为所述服务器产生的随机数,或所述用户输入的随机字符串。
4.如权利要求3所述的数据加解密方法,其特征在于,所述二次加密的加密对象的数据格式为keyID&ENC_DK&version&盐值,其中,keyID表示密钥编号,ENC_DK表示第一密文,version表示所述初次加密所用密钥对应的密钥版本号。
5.如权利要求1所述的数据加解密方法,其特征在于,在所述解密步骤中,先利用由所述身份验证信息生成的密钥对所述第二密文进行初次解密,得到对应的密钥编号、密钥版本号以及所述第一密文,再根据该密钥编号和该密钥版本号得到对应的密钥,利用该密钥对所述第一密文进行解密,得到解密结果。
6.如权利要求1所述的数据加解密方法,其特征在于,该方法还包括:
设置所述密钥存储表的容量阈值,当所述密钥存储表所占的空间大小大于所述容量阈值时,根据各版本密钥存储的先后顺序,依次删除先存储的旧版本密钥,直至所述密钥存储表所占的空间大小与所述容量阈值的比值小于预设百分比。
7.如权利要求1所述的数据加解密方法,其特征在于,该方法还包括:
密文存储步骤:将所述第二密文存储至第二数据库中。
8.如权利要求1所述的数据加解密方法,其特征在于,该方法还包括:
发送步骤:将所述第二密文发送给所述用户。
9.一种服务器,包括存储器和处理器,其特征在于,所述存储器中包括数据加解密程序,该数据加解密程序被所述处理器执行时实现如下步骤:
密钥生成步骤:设置密钥的更新周期,当所述服务器的***时间到达更新周期时,随机生成新版本密钥;
密钥存储步骤:利用预先确定的非对称加密算法对随机生成的每个版本的密钥进行加密,将加密得到的密钥密文存储至第一数据库的密钥存储表中,该密钥存储表包括密钥编号字段、密钥版本号字段和密钥密文字段,每个密钥编号对应至少一个密钥版本号和密钥密文,第一数据库为关系型数据库;
接收步骤:接收用户发送的数据加密请求,该数据加密请求包括身份验证信息和待加密数据,所述身份验证信息是表示用户身份的唯一标识;
第一加密步骤:为所述数据加密请求分配密钥编号,并利用与该密钥编号对应的当前版本密钥密文进行解密,得到密钥明文,利用该密钥明文和第一对称加密算法对所述待加密数据进行初次加密,得到第一密文;
第二加密步骤:利用由所述身份验证信息生成的密钥和第二对称加密算法对所述分配的密钥编号、所述当前版本密钥密文对应的密钥版本号以及所述第一密文进行二次加密,得到第二密文;及
解密步骤:当接收到所述用户对所述第二密文的解密操作请求时,对所述第二密文进行两次逆向解密操作,得到解密结果。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有数据加解密程序,所述数据加解密程序被处理器调用执行时,实现如权利要求1至8中任一项所述的数据加解密方法的步骤。
CN201811503032.8A 2018-12-10 2018-12-10 数据加解密方法、服务器及存储介质 Active CN109474423B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811503032.8A CN109474423B (zh) 2018-12-10 2018-12-10 数据加解密方法、服务器及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811503032.8A CN109474423B (zh) 2018-12-10 2018-12-10 数据加解密方法、服务器及存储介质

Publications (2)

Publication Number Publication Date
CN109474423A CN109474423A (zh) 2019-03-15
CN109474423B true CN109474423B (zh) 2022-10-21

Family

ID=65674972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811503032.8A Active CN109474423B (zh) 2018-12-10 2018-12-10 数据加解密方法、服务器及存储介质

Country Status (1)

Country Link
CN (1) CN109474423B (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756675B (zh) * 2019-03-28 2023-04-07 钉钉控股(开曼)有限公司 数据处理方法、装置、设备和***
CN110147658A (zh) * 2019-04-16 2019-08-20 平安科技(深圳)有限公司 用户信息加解密方法、***和计算机设备
CN110084051A (zh) * 2019-04-29 2019-08-02 京工博创(北京)科技有限公司 一种数据加密方法和***
CN110598440B (zh) * 2019-08-08 2023-05-09 中腾信金融信息服务(上海)有限公司 一种分布式自动加解密***
CN110636503B (zh) * 2019-09-24 2023-03-24 中国联合网络通信集团有限公司 数据加密方法、装置、设备及计算机可读存储介质
CN110995433A (zh) * 2019-10-28 2020-04-10 北京三快在线科技有限公司 数据加密方法、装置、电子设备及计算机可读存储介质
CN111131278B (zh) * 2019-12-27 2022-09-06 京东科技控股股份有限公司 数据处理方法及装置、计算机存储介质、电子设备
CN111274611A (zh) * 2020-02-04 2020-06-12 北京同邦卓益科技有限公司 数据脱敏方法、装置及计算机可读存储介质
CN111404943B (zh) * 2020-03-18 2021-10-26 腾讯科技(深圳)有限公司 数据的处理方法、装置、电子设备及计算机可读存储介质
CN111881474B (zh) * 2020-07-24 2023-09-15 杭州弦冰科技有限公司 基于可信计算环境的私钥管理方法和装置
CN112115491B (zh) * 2020-08-20 2024-03-22 恒安嘉新(北京)科技股份公司 一种对称加密密钥保护方法、装置、设备及存储介质
CN111935181B (zh) * 2020-09-25 2021-01-26 北京天御云安科技有限公司 一种全密态条件下密钥切换的业务无中断实现方法
CN112492352A (zh) * 2020-11-17 2021-03-12 北京慕华信息科技有限公司 一种视频加解密方法、装置、电子设备及存储介质
CN113761551A (zh) * 2020-11-18 2021-12-07 北京沃东天骏信息技术有限公司 密钥的生成方法、加密方法、解密方法和装置
CN112769559B (zh) * 2020-12-31 2022-04-22 无锡艾立德智能科技有限公司 一种基于多密钥的对称密钥同步方法
CN112769565B (zh) * 2021-01-15 2022-12-23 中国工商银行股份有限公司 密码加密算法的升级方法、装置、计算设备和介质
CN112887087B (zh) * 2021-01-20 2023-04-18 成都质数斯达克科技有限公司 数据管理方法、装置、电子设备及可读存储介质
CN112668032B (zh) * 2021-03-16 2021-06-04 四川微巨芯科技有限公司 加解密计算机的方法及***、计算机、服务器和移动设备
CN113162763A (zh) * 2021-04-20 2021-07-23 平安消费金融有限公司 数据加密及存储方法、装置、电子设备及存储介质
CN113517981B (zh) * 2021-04-28 2023-05-23 河南中烟工业有限责任公司 一种密钥管理方法、代码版本的管理方法及装置
CN113392428B (zh) * 2021-06-28 2023-11-10 西藏联萨智能科技有限公司 数据保护方法、装置、设备及介质
CN113556735B (zh) * 2021-07-09 2024-05-03 深圳市高德信通信股份有限公司 一种数据加密方法
CN113676318B (zh) * 2021-07-15 2024-02-27 北京思特奇信息技术股份有限公司 密钥轮换不影响原密码加解密的方法
CN113346999B (zh) * 2021-08-09 2021-10-26 国网浙江省电力有限公司杭州供电公司 一种基于拆分加密的大脑中枢***
CN113591138A (zh) * 2021-09-30 2021-11-02 连连(杭州)信息技术有限公司 一种业务数据处理方法、装置、设备及介质
CN114024724B (zh) * 2021-10-25 2023-06-13 四川启睿克科技有限公司 一种基于物联网的对称密钥动态生成方法
CN113709188B (zh) * 2021-10-27 2022-03-11 北京蓝莓时节科技有限公司 会话控制信息处理方法、装置、***和存储介质
CN114244508B (zh) * 2021-12-15 2023-07-28 平安科技(深圳)有限公司 数据加密方法、装置、设备及存储介质
CN116032514B (zh) * 2022-03-08 2024-05-24 海南伍尔索普电子商务有限公司 一种分布式高并发数据安全加解密的方法
CN116089967B (zh) * 2022-05-12 2024-03-26 荣耀终端有限公司 数据防回滚方法和电子设备
CN115174136B (zh) * 2022-05-23 2024-02-02 北京旷视科技有限公司 数据获取和数据传送方法、终端、服务器及存储介质
CN115174236A (zh) * 2022-07-08 2022-10-11 上海百家云科技有限公司 一种鉴权认证方法、装置、电子设备及存储介质
CN117857078B (zh) * 2023-11-23 2024-06-11 烟台新韦达智慧科技有限公司 一种可变长混合动态传输加解密方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573551A (zh) * 2014-12-25 2015-04-29 广东欧珀移动通信有限公司 一种文件处理的方法及移动终端
CN106888183A (zh) * 2015-12-15 2017-06-23 阿里巴巴集团控股有限公司 数据加密、解密、密钥请求处理的方法和装置及***
CN108234112A (zh) * 2016-12-14 2018-06-29 ***通信集团安徽有限公司 数据加密和解密方法及***
WO2018165835A1 (zh) * 2017-03-14 2018-09-20 深圳大学 云密文访问控制方法及***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9076004B1 (en) * 2014-05-07 2015-07-07 Symantec Corporation Systems and methods for secure hybrid third-party data storage
CN108880806A (zh) * 2018-08-01 2018-11-23 深圳三角形科技有限公司 加密、解密方法、芯片及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573551A (zh) * 2014-12-25 2015-04-29 广东欧珀移动通信有限公司 一种文件处理的方法及移动终端
CN106888183A (zh) * 2015-12-15 2017-06-23 阿里巴巴集团控股有限公司 数据加密、解密、密钥请求处理的方法和装置及***
CN108234112A (zh) * 2016-12-14 2018-06-29 ***通信集团安徽有限公司 数据加密和解密方法及***
WO2018165835A1 (zh) * 2017-03-14 2018-09-20 深圳大学 云密文访问控制方法及***

Also Published As

Publication number Publication date
CN109474423A (zh) 2019-03-15

Similar Documents

Publication Publication Date Title
CN109474423B (zh) 数据加解密方法、服务器及存储介质
CN105260668B (zh) 一种文件加密方法及电子设备
CN107959567B (zh) 数据存储方法、数据获取方法、装置及***
US10635835B2 (en) Decentralized token table generation
WO2018112948A1 (zh) 区块生成方法、装置和区块链网络
Teng et al. A Modified Advanced Encryption Standard for Data Security.
CN108259171B (zh) Shader文件的保护方法及装置
CN110661748B (zh) 一种日志的加密方法、解密方法及装置
CN103095452A (zh) 需要采用穷举法解密的随机加密方法
CN105721156A (zh) 用于模幂加密方案的通用编码函数
CN117240625B (zh) 一种涉及防篡改的数据处理方法、装置及电子设备
CN112804133A (zh) 一种基于区块链技术的加密群聊方法及***
CN113422832B (zh) 文件传输方法、装置、设备和存储介质
CN106919348A (zh) 防暴力破解的分布式存储***及存储方法
CN113067816A (zh) 数据加密方法及装置
CN112199730A (zh) 一种终端上应用数据的处理方法、装置及电子设备
CN109412788B (zh) 基于公共密钥池的抗量子计算代理云存储安全控制方法和***
CN103593592A (zh) 一种用户数据的加解密方法
CN111798236A (zh) 交易数据加、解密方法、装置及设备
CN107437998A (zh) 使用不安全和安全环境计算安全椭圆曲线标量乘法
CN115865448A (zh) 一种数据自加密装置和方法
US11533167B2 (en) Methods and devices for optimal information-theoretically secure encryption key management
Nagendran et al. Hyper Elliptic Curve Cryptography (HECC) to ensure data security in the cloud
CN103746798A (zh) 一种数据访问控制方法及***
Tian et al. A trusted control model of cloud storage

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