专利名称:一种实现数据多级加密、解密的方法
技术领域:
本发明属于数据安全领域,尤其涉及一种实现数据多级加密、解密的方法。
背景技术:
随着信息技术与网络技术的快速发展,数据安全变得越来越重要。数据安全主要是指数据本身的安全与数据传输的安全。数据传输安全是指数据在传输过程中必须要确保数据的安全性,完整性和不可篡改性。数据加密被公认为是保护数据传输安全惟一实用的方法和保护存储数据安全的有效方法,是数据保护在技术上最重要的防线。数据加密是指按照特定的密码算法和密钥把敏感的明文数据变换成难以识别的密文数据。当需要时,可使用与加密对应的密码算法和密钥把密文数据还原成明文数据,即数据解密。通过在发送端对数据进行加密处理,在接收端对收到的密文数据进行解密,可保证数据在传输过程的安全性。目前,对于传输的数据,发送端大多采用一次加密,接收端对收到的密文进行一次解密即可得到想要的数据,这样可以即可在一定程度上保证数据安全,又可以减少加密、解密过程。但是,由于只对数据进行一次加密,数据安全性较低,黑客或者恶意攻击者很可能通过对截获的密文进行破解,进而得到数据明文,造成数据安全隐患。另外,目前即使有对数据进行多次加密的方案,一般也是采用固定次数的加密,当需要改变加密次数时,就需要更改加密模块,同时也需要改变相应的解密模块,实现复杂,成本高。
发明内容
本发明就是为了解决现有技术中存在的数据单次加密安全性低、多次加密实现复杂等的问题,提出了一种实现数据多级加密、解密方法,它可以实现对数据进行多次加密, 并且可以在不改变加密模块与解密模块的情况下,改变对数据的加密次数、加密算法及加密次序,提高了数据的安全性,实现方便,复杂度低。为了实现上述目的,本发明采用如下技术方案 一种实现数据多级加密的方法,它的步骤为
5101加密模块接收加密根密钥和要加密的数据;
5102加密模块解析要加密的数据,获得要加密的数据中已经划分好的多个数据段,其中每个数据段由加密描述信息和数据信息组成,各数据段加密描述信息至少包含的该数据段数据信息的长度、该数据段采用的加密算法及加密次序信息,加密次序排在最后的数据段的数据信息为所需数据;
5103判断解析得到的数据段的个数是否大于1,若是,执行步骤S105 ;否则,执行步骤 S104 ;
5104数据段个数为1,根据该数据段的加密算法,用加密根密钥对该数据段的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述与该加密数据相关信息的解密描述信息组合作为加密后的数据输出;
S105 根据第一加密次序数据段的加密算法,用加密根密钥对第一加密次序数据段的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为第一加密次序数据段的加密结果;
S106:依次根据加密次序相邻的两个数据段中加密次序在后的数据段的加密算法,利用加密次序在前的数据段中的数据信息或全部信息作为加密密钥对所述加密次序在后的数据段的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为所述加密次序在后的数据段的加密结果;
S107 判断所有的数据段是否都已完成加密,若是,执行步骤S108 ;否则,执行步骤 S106 ;
S108:将各数据段的加密结果按照各数据段在要加密的数据中的先后次序依次组合作为加密后的数据输出。所述解密描述信息至少包含加密得到的加密数据的长度、与该加密数据加密时使用的加密算法对应的解密算法、与该加密数据加密次序对应的解密次序。所述加密模块至少支持AES、3DES、SMS4中的一种加密算法。一种实现数据多级解密的方法,它的步骤为
5201解密模块接收解密根密钥和要解密的数据;
5202解密模块解析要解密的数据,获得要解密数据中每个数据段的解密描述信息与加密数据,解密描述信息至少包含该数据段的加密数据的长度、该数据段的加密数据的解密算法及解密次序信息,然后解密模块根据各数据段的加密数据的长度将要解密的数据分为多个数据段;
5203判断数据段个数是否大于1,若是,执行步骤S205 ;否则,执行步骤S204 ;
5204数据段数为1,根据该数据段的解密算法,利用解密根密钥对数据段中的加密数据进行解密,输出解密后的数据;
5205根据第一解密次序数据段的解密算法,利用解密根密钥对第一解密次序数据段的加密数据进行解密,得到解密结果;
S206:依次根据解密次序相邻的两个数据段中解密次序在后的数据段的解密算法,利用解密次序在前的数据段的解密结果中的与加密时生成加密数据使用的加密密钥对应的数据部分作为解密密钥对所述解密次序在后的数据段中的加密数据进行解密,得到所述解密次序在后的数据段的解密结果;
S207:判断所有的数据段是否都已完成解密,若是,执行步骤S208;否则,执行步骤 S206 ;
S208:输出解密次序在最后的数据段的解密结果作为解密后的数据。所述解密模块至少支持AES、3DES、SMS4中的一种算法。本发明的有益效果是本发明通过在要加密数据中的各数据段的有效数据前增加描述该数据段长度、加密算法及加密次序信息,实现了每段数据都可采用不同的算法进行加密,且每段数据的加密次序不固定,提高了数据的安全性;在需要更改各数据段的加密算法及加密次序时,无需更改加密模块与解密模块,只需更改数据段前描述该数据段的信息即可,具有安全性高,实现方便灵活,复杂度低,易于扩展等优点。
图1是加密模块连接示意图2是本发明所述实现数据多级加密的流程示意图3是要加密的数据结构示意图4是要加密的数据中各数据段的结构示意图5是解密模块连接示意图6是要解密的数据的结构示意图7是要解密的数据中各数据段的结构示意图8是本发明所述实现数据多级解密的流程示意图。
具体实施例方式下面结合附图与实施例对本发明做进一步说明。此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意实施例及其说明用于解释本发明,并不够成对本发明的不当限定。如图1所示,加密模块接收加密根密钥与要加密的数据输入,输出加密后的数据。如图2所示,要加密的数据由多个要加密的数据段组成。如图3所示,每个要加密的数据段由加密描述信息和数据信息组成,其中,加密描述信息至少包含该数据段数据信息的长度、该数据段要采用加密算法及该数据段的加密次序。如图4所示,实现数据多级加密的方法,它的步骤为
5101加密模块接收加密根密钥RKEY和要加密的数据DATA ;
5102加密模块解析要加密的数据DATA,获得DATA中划分好的η个数据段,其中,每个数据段由加密描述信息和数据信息组成,各数据段的加密描述信息至少包含该数据段数据信息的长度、该各段数据采用的加密算法和该各段数据的加密次序,加密次序排在最后的数据段中的数据信息为所需数据;
5103判断解析得到的数据段的个数η是否大于1,若是,执行步骤S105 ;否则,执行步骤 S104 ;
5104数据段个数为1,根据该数据段采用的加密算法,用加密根密钥RKEY对数据段即要加密的数据DATA中的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合,作为加密后的数据EDATA输出;
5105根据解析得到的各数据段的加密次序,将各数据段依次标记为Dp……、Dn,其中 η为大于1的自然数,根据第一加密次序数据SD1的加密算法,用加密根密钥RKEY对第一加密次序数据段D1中的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为第一加密次序数据段的加密结果ED1 ;
5106根据加密次序在后的数据段Dm+1的加密算法,利用加密次序在前的数据段Dm中的数据信息或全部信息作为加密密钥对加密次序在后的数据段Dlrt中的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为加密次序在后的数据段的加密结果EDm+1,其中m为大于等于1且小于η 的自然数;
S107 判断所有的数据段是否都已完成加密,若是,执行步骤S108 ;否则,m值增加1,执行步骤S106 ;
S108:将各数据段Dp……、Dn的加密结果EDp……、EDn按照各数据段在要加密的数据中的先后次序依次组合后作为加密后的数据EDATA输出。所述解密描述信息至少包含加密得到的加密数据的长度、与该加密数据加密时使用的加密算法对应的解密算法、与该加密数据加密次序对应的解密次序。所述加密模块至少支持AES、3DES、SMS4中的一种加密算法。如图5所示,解密模块接收要解密的数据EDATA和解密根密钥RKEY输入,输出解密后的数据。如图6所示,要解密的数据由多个要解密的数据段组成。如图7所示,要解密的数据段由解密描述信息和加密数据组成,其中,解密描述信息至少包含该数据段中加密数据的长度、该数据段采用的解密算法及该数据段的解密次序。如图8所示,实现数据多级解密的方法,它的步骤为
5201解密模块接收解密根密钥RKEY和要解密的数据EDATA ;
5202解密模块解析要解密的数据EDATA,获得EDATA中每个数据段的解密描述信息和加密数据,解密描述信息至少包含该数据段的加密数据的长度、该数据段的加密数据的解密算法及解密次序信息,然后解密模块根据各数据段的加密数据的长度将要解密的数据 EDATA分为η个数据段;
5203判断数据段个数η是否大于1,若是,执行步骤S205 ;否则,执行步骤S204 ;
5204数据段数为1,根据该数据段即要解密的数据EDATA的解密算法,利用解密根密钥RKEY对数据段中的加密数据进行解密,输出解密后的数据DATA ;
5205根据解析得到的各数据段的解密次序,将各数据段依次标记为EDp……丄化,其中,η为大于1的自然数,根据第一解密次序数据段ED1的解密算法,利用解密根密钥RKEY 对第一解密次序数据段ED1中的加密数据进行解密,得到D1,设置m=l ;
5206根据解密次序在后的数据段EDm+1的解密算法,利用解密次序在前的数据段EDm 的解密结果Dm中的与加密时生成加密数据使用的加密密钥对应的数据部分作为解密密钥对解密次序在后的数据段EDm+1中的加密数据进行解密,得到Dm+1 ;
5207判断所有的数据段是否都已完成解密,若是,执行步骤S208 ;否则,m值增加1,执行步骤S206 ;
5208输出解密次序在最后的数据段EDn的解密结果Dn,即解密后的数据DATA。所述解密模块至少支持AES、3DES、SMS4中的一种算法。上述实施例为本发明的较优选择,在本发明基础上进行修改或扩展的其它实施例,本领域相关技术人员可以很容易想到并实现,本发明不再赘述。
权利要求
1.一种实现数据多级加密的方法,其特征是,它的步骤为S101加密模块接收加密根密钥和要加密的数据;S102加密模块解析要加密的数据,获得要加密的数据中已经划分好的多个数据段,其中每个数据段由加密描述信息和数据信息组成,各数据段加密描述信息至少包含的该数据段数据信息的长度、该数据段采用的加密算法及加密次序信息,加密次序排在最后的数据段的数据信息为所需数据;S103判断解析得到的数据段的个数是否大于1,若是,执行步骤S105 ;否则,执行步骤 S104 ;S104数据段个数为1,根据该数据段的加密算法,用加密根密钥对该数据段的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为加密后的数据输出;S105:根据第一加密次序数据段的加密算法,用加密根密钥对第一加密次序数据段的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为第一加密次序数据段的加密结果;S106:依次根据加密次序相邻的两个数据段中加密次序在后的数据段的加密算法,利用加密次序在前的数据段中的数据信息或全部信息作为加密密钥对所述加密次序在后的数据段的数据信息和加密描述信息中的至少一个进行加密,将加密得到的加密数据与描述该加密数据相关信息的解密描述信息组合作为该加密次序在后的数据段的加密结果;S107 判断所有的数据段是否都已完成加密,若是,执行步骤S108 ;否则,执行步骤 S106 ;S108:将各数据段的加密结果按照各数据段在要加密的数据中的先后次序依次组合作为加密后的数据输出。
2.如权利要求1所述的实现数据多级加密的方法,其特征是,所述解密描述信息至少包含加密得到的加密数据的长度、与该加密数据加密时使用的加密算法对应的解密算法、 与该加密数据加密次序对应的解密次序。
3.如权利要求1所述的实现数据多级加密的方法,其特征是,所述加密模块至少支持 AES、3DES、SMS4中的一种加密算法。
4.一种实现数据多级解密的方法,其特征是,它的步骤为S201解密模块接收解密根密钥和要解密的数据;S202解密模块解析要解密的数据,获得要解密数据中每个数据段的解密描述信息与加密数据,解密描述信息至少包含该数据段的加密数据的长度、该数据段的加密数据的解密算法及解密次序信息,然后解密模块根据各数据段的加密数据的长度将要解密的数据分为多个数据段;S203判断数据段个数是否大于1,若是,执行步骤S205 ;否则,执行步骤S204 ;S204数据段数为1,根据该数据段的解密算法,利用解密根密钥对数据段中的加密数据进行解密,输出解密后的数据;S205根据第一解密次序数据段的解密算法,利用解密根密钥对第一解密次序数据段的加密数据进行解密,得到解密结果;S206:依次根据解密次序相邻的两个数据段中解密次序在后的数据段的解密算法,利用解密次序在前的数据段的解密结果中的与加密时生成加密数据使用的加密密钥对应的数据部分作为解密密钥对所述解密次序在后的数据段中的加密数据进行解密,得到所述解密次序在后的数据段的解密结果;S207 判断所有的数据段是否都已完成解密,若是,执行步骤S208 ;否则,执行步骤 S206 ;S208:输出解密次序在最后的数据段的解密结果作为解密后的数据。
5.如权利要求4所述的实现数据多级解密的方法,其特征是,所述解密模块至少支持 AES、.3DES、SMS4中的一种算法。
全文摘要
本发明公开了一种实现数据多级加密、解密的方法,它包括S101加密模块接收加密根密钥和要加密的数据;S102加密模块解析要加密的数据,获得每个数据段的长度、加密算法、加密次序及加密数据,并将要加密的数据分为多个数据段;S103判断数据段的个数是否大于1,若是,执行S105;否则执行S104;S104用加密根密钥对要加密的数据进行加密;S105用加密根密钥对第一加密次序数据段进行加密;S106依次利用加密次序在前的数据段对加密次序在后的数据段进行加密;S107判断所有的数据段是否都已完成加密,若是,执行S108;否则执行S106;S108将各数据段的加密结果按照各数据段在要加密的数据中的次序组合后输出。本发明具有安全性高,实现方便等优点。
文档编号H04L9/06GK102546152SQ20121007837
公开日2012年7月4日 申请日期2012年3月22日 优先权日2012年3月22日
发明者程国海, 陶圣华 申请人:山东泰信电子有限公司