发明内容
有鉴于此,本发明提供一种数据传输加解密方法、装置及系统,以解决现有加密和传输过程中加密强度不够大,安全系数较低的问题。
该方案具体为:
一种数据传输加密方法,包括:
确定用于加密明文的密码;
根据所述密码和预先建立的密文字符集,利用可逆逻辑运算加密明文,得到密文;
确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数;
将所述加密参数进行加密,并获得密文和加密后加密参数的校验值;
将所述密文、校验值和各个加密后加密参数按照预设格式组合成数据帧;
将所述数据帧进行传输。
优选的,所述明文根据密码和预先建立的密文字符集利用可逆逻辑运算按照以下过程进行加密:
根据密码和明文长度得到中间密码;
将明文字符与中间密码按位进行所述可逆逻辑运算;
分别根据每一位运算结果的数值找到所述密文字符集中对应的字符;
将所述查找到的字符按照所述明文的顺序组成密文。
优选的,所述参数按照以下过程进行加密:
将密码、密码长度、密文长度和与异或运算对应的加密版本号分别与预设常数进行异或运算。
优选的,按照以下过程获得密文和加密后加密参数的校验值:
计算加密后的密码、密码长度、密文长度、加密版本号和密文的和,作为校验值。
一种数据传输解密方法,包括:
利用校验值对接收的数据帧进行校验;
当校验结果为正确时,根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数;
解密加密参数,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号;
根据所述密码和预先建立的密文字符集,利用与所述加密版本号对应的可逆逻辑运算解密密文,得到明文。
优选的,所述加密参数按照以下过程解密:
将密码、密码长度、密文长度和与异或运算对应的加密版本号分别与预设常数进行异或运算。
优选的,所述密文按照以下过程解密:
根据密码和明文长度得到中间参数;
在密文字符集中查找每一位密文对应的位置序号;
将查找到的位置序号与中间参数进行所述加密版本号对应的可逆逻辑运算的逆运算;
将运算结果放置到其对应的位置,组成明文。
一种数据传输加密装置,包括:
密码确定单元,用于确定用于加密明文的密码;
明文加密单元,用于根据所述密码和预先建立的密文字符集,利用可逆逻辑运算加密明文,得到密文;
加密参数确定单元,用于确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数;
参数加密单元,用于将所述加密参数进行加密;
校验值获取单元,用于获得密文和加密后加密参数的校验值;
数据帧组成单元,用于将所述密文、校验值和各个加密后加密参数按照预设格式组合成数据帧;
传输单元,用于将所述数据帧进行传输。
一种数据传输解密装置,包括:
检验单元,用于利用校验值对接收的数据帧进行校验;
读取单元、用于当校验结果为正确时,根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数;
参数解密单元,用于解密加密参数,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号;
密文解密单元,用于根据所述密码和预先建立的密文字符集,利用与所述加密版本号对应的可逆逻辑运算解密密文,得到明文。
一种数据传输加解密系统,包括:数据传输加密装置和数据传输解密装置,其中:
所述数据传输加密装置用于,确定用于加密明文的密码,根据所述密码和预先建立的密文字符集,利用可逆逻辑运算加密明文,得到密文,确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数,将所述加密参数进行加密,并获得密文和加密后加密参数的校验值,将所述密文、校验值和各个加密后加密参数按照预设格式组合成数据帧,将所述数据帧进行传输;
所述数据传输解密装置用于,利用校验值对接收的数据帧进行校验,当校验结果为正确时,根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数,解密加密参数,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号,根据所述密码和预先建立的密文字符集,利用与所述加密版本号对应的可逆逻辑运算解密密文,得到明文。
从上述的技术方案可以看出,本发明实施例公开的据传输加密方法,采用将加密过程中的加密参数同时进行加密,并按照预设格式组成数据帧的方式进行传输的方法,提高了加密强度,从而实现了提高数据安全性的目的。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种数据传输加密方法,采用将加密过程中的加密参数同时进行加密,并按照预设格式组成数据帧的方式进行传输的方法,其具体实施方式如下所示:
实施例一
本发明实施例1公开的数据传输加解密方法如图1所示,包括:
步骤S11、确定用于加密明文的密码;
随机选择密码,为了保证安全,密码的长度一般大于等于6小于等于255个字节。
步骤S12、根据所述密码和预先建立的密文字符集,利用可逆逻辑运算加密明文,得到密文;
本发明中的预先建立的密文字符集是由0~255之间的数组成的一个长度为256个字节的数组,数组内的每个值不重复且随机排列,包含0~255之间的每一个数。它具有256的阶乘种组合,其示意图如图2所示。
选择一种可逆逻辑运算,将密码与明文按照该逻辑运算进行计算,根据结果在密文字符集中查找对应的密文。
步骤S13、确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数;;
将密码、密码的长度、密文长度和与选取的可逆逻辑运算对应的加密版本号作为加密参数。
步骤S14、将所述加密参数进行加密,并获得密文和加密后加密参数的校验值;
将加密参数进行加密,并根据加密结果和密文获得校验值。
步骤S15、将所述密文、校验值和各个加密后加密参数按照预设格式组合成数据帧;
将密文、校验值和各个加密后的参数,按照传输双方预先设定好的格式组成数据帧,如图3所示,加密方按照上图所示,给各个参数预先设定其位置及所占用的字节长度,解密方则根据这一规律拆分接收的数据帧,还原各个参数。
步骤S16、将所述数据帧进行传输。
发明公开了一种数据传输加密方法,采用将加密过程中的加密参数同时进行加密,并按照预设格式组成数据帧的方式进行传输的方法,提高了加密强度,从而实现了提高数据安全性的目的。
实施例二
本发明实施例2公开的数据传输加密方法的流程如图4所示,包括:
步骤S41、确定用于加密明文的密码;
步骤S42、根据密码和明文长度得到中间密码;
该步骤是为了使加密过程中密码的长度大于明文的长度,使得加密过程中明文字节和密码可以一一对应,中间密码的获得有多种形式,可以将密码做C次自连接,而C=明文的长度/密码的长度+1。
步骤S43、将明文字符与中间密码按位进行可逆逻辑运算;
该步骤中需要选择可逆逻辑运算的类型,可以为异或也可以为与非,只要是具有可逆运算的逻辑运算都是可以的。本实施例中以异或运算为例。
步骤S44、分别根据每一位运算结果的数值找到所述密文字符集中对应的字符;
如果明文第一位与中间参数第一位的异或结果为5,则在预设的密文字符集中找到位于第五的字符。
步骤S45、将所述查找到的字符按照所述明文的顺序组成密文;
将每一位查找到的字符作为当前加密的明文字符的密文字符,将所有的密文字符按照明文的顺序进行组合,得到密文。
步骤S46、确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数;
步骤S47、将加密参数分别与预设常数进行异或运算;
本步骤中将密码、密码长度、密文长度和与异或运算对应的加密版本号,分别按位与预设的常数进行异或运算,将得到的结果作为加密后的加密参数值。当然,也可以选用其他类型的可逆逻辑运算。
步骤S48、将加密后的密码、密码长度、密文长度、加密版本号和密文求和,作为校验值;
步骤S49、将所述密文、校验值和各个加密后加密参数按照预设格式组成数据帧;
步骤S410、将所述数据帧进行传输。
本实施例中对加密参数的加密过程进行了进一步的限定,将密码、密码长度、密文长度和加密版本号都作为加密过程中产生的加密参数进行加密,并增加了和校验值,提高了加密的安全性。
同样,也可以不采用获得中间密码的方式,直接将密码对明文进行加密,当密码的位数不够时,再循环利用该密码,直到加密完明文为止。使得加密过程更简单,速度更快。
实施例三
本实施例将以实际的数值为例,对数据传输加密方法进行进一步的描述,令常数N=2,密文字符集为{0,3,4,5,7,9,10,2,1},密码为m={1,0,2},明文data={3,1,5,4,6},当前的加密版本号是v=1,其流程如图5所示,包括:
步骤S51、确定加密明文的密码;
当前密码为m={1,0,2}。
步骤S52、根据密码和明文长度得到中间密码;
根据公式求得C=明文的长度/密码的长度+1=2,则将密码做2次自连接的结果为{1,0,2,1,0,2}。
步骤S53、将明文字符与中间密码按位进行可逆逻辑运算;
从明文data的第一个字符开始依次与计算中间密码C得像一位置上的字符做异或运算:
3XOR 1=2,1XOR 0=1,5XOR 2=7,4XOR 1=5,6XOR 0=6。
步骤S54、分别根据每一位运算结果的数值找到所述密文字符集中对应的字符;
3XOR 1=2,查找密文字符集中下标为2字符是4;
1XOR 0=1,查找密文字符集中下标为1字符是3;
5XOR 2=7,查找密文字符集中下标为7字符是2;
4XOR 1=5,查找密文字符集中下标为5字符是9;
6XOR 0=6,查找密文字符集中下标为6字符是10;
步骤S55、将所述查找到的字符按照所述明文的顺序组成密文;
则加密后的密文为{4,3,2,9,10}。
步骤S56、确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数;
步骤S57、将加密参数分别与预设常数进行异或运算;
将当前的密文长度5与常量2做异或(XOR)运算,得到加密后的密文长度,5XOR 2=7;将密码{1,0,2}中的数值分别与2做异或运算,1XOR2=3,0XOR 2=2,2XOR 2=0,得到加密后的密码M`={3,2,0};将加密版本号与2异或,1XOR 2=3,则加密后的版本号是3。将密码长度3与2异或,3XOR 2=1,则加密后的密码长度是1。
步骤S58、将加密后的密码、密码长度、密文长度、加密版本号和密文求和,作为校验值;
得到的校验值结果为44。
步骤S59、将所述密文、校验值和各个加密后加密参数按照预设格式组成数据帧。
假设校验值的位置为数据帧中第1-4个字节,加密后的加密版本号的位置为数据帧中第5-8个字节,加密后的密文长度的位置为数据帧中第9-12个字节,第13个字节存储加密后的密码长度,从第14个字节开始存储密文,密文的长度为6,然后从第二十个字节开始存储加密后的密码。则加密后的帧格式为:{0044,0003,0007,1,4,3,2,9,10,3,2,0}。
步骤S510、将所述数据帧进行传输。
本发明同时公开了一种数据传输解密方法,其具体实施方式如下:
实施例四
本实施例公开了一种数据传输解密方法,其流程如图6所示,包括:
步骤S61、利用校验值对接收的数据帧进行校验,判断传输过程是否成功,若传输过程成功,则继续执行,若传输过程不成功,则结束;
步骤S62、根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数;
步骤S63、解密加密参数,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号;
步骤S64、根据所述密码和预先建立的密文字符集,利用与所述加密版本号对应的可逆逻辑运算解密密文,得到明文。
本实施例公开的解密方法与实施例1中的加密方法相对应,首先利用校验值对接收的数据帧进行校验,对传输成功的数据帧按照与加密方法相对应得步骤进行解密得到明文。
实施例五
本实施例公开的数据传输解密方法的流程如图7所示,包括:
步骤S71、利用和校验值对接收的数据帧进行校验,判断传输过程是否成功,若传输过程成功,则继续执行,若传输过程不成功,则结束;
具体的判断过程为,将接收的数据帧除和校验值外的其他数值进行相加,如果结果与和校验值相同,则传输成功,如果结果与和校验值不同,则传输失败。
步骤S72、根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数;
步骤S73、加密后的加密参数分别与预设常数进行异或运算,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号;
由于逻辑运算为可逆,所以将加密后的结果进行再一次运算的过程为解密过程。
步骤S74、根据密码和明文长度得到中间密码;
如果加密过程中没有用到中间密码,则此步骤可以省略。
步骤S75、在密文字符集中查找每一位密文对应的位置序号;
步骤S76、将查找到的位置序号与中间参数进行所述加密版本号对应的可逆逻辑运算;
由于逻辑运算为可逆,所以将加密后的结果进行再一次运算的过程为解密过程。
步骤S77、将运算结果放置到其对应的位置,组成明文。
实施例六
本实施例以实施例3中的加密过程为基础,详细介绍其对应的解密过程,其流程如图8所示,包括:
步骤S81、利用和校验值对接收的数据帧进行校验,判断传输过程是否成功,若传输过程成功,则继续执行,若传输过程不成功,则结束;
此时接收的数据帧为{0044,0003,0007,1,4,3,2,9,10,3,2,0},将其从第5位开始相加,将相加的结果与44作比较,如果相等,则说明传输成功,如果不相等,则传输不成功,本实施例中两者相等,则继续执行。
步骤S82、根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数;
根据加密过程中采用的数据帧格式,校验值的位置为数据帧中第1-4个字节,加密后的加密版本号的位置为数据帧中第5-8个字节,加密后的密文长度的位置为数据帧中第9-12个字节,第13个字节存储加密后的密码长度,从第14个字节开始存储密文,密文的长度为6,然后从第二十个字节开始存储加密后的密码,分别读取出各个数值。
步骤S83、将读取出的各个加密后的数值分别与预设常数进行异或运算:
由加密后的密码长度与常数2做异或运算,1XOR 2=3,则密码长度为3,将加密后的版本号的每个字节与常量2做异或运算,0003XOR 2=0001,得到加密算法的版本号为1;将加密后的密码M`从第一个字节开始,与常量2做异或运算,3XOR 2=1,2XOR 2=0,0XOR 2=2,得到密码为{1,0,2};将接收到的加密后的密文长度值的每个字节与常量2做异或运算,0007XOR 2=0005,得到密文长度为5。
步骤S84、根据密码和明文长度得到中间密码;
根据公式求得C=明文的长度/密码的长度+1=2,则将密码做2次自连接的结果为{1,0,2,1,0,2}
步骤S85、在密文字符集中查找每一位密文对应的位置序号;
步骤S86、将查找到的位置序号与中间参数进行所述加密版本号对应的可逆逻辑运算的逆运算;
也就是将密文进行解密。
步骤S87、将运算结果放置到其对应的位置,组成明文。
解密过程结束。
本发明同时公开了一种数据传输加密装置,其结构如图9所示,包括:
密码确定单元91,用于确定用于加密明文的密码;明文加密单元92,用于根据所述密码和预先建立的密文字符集,利用可逆逻辑运算加密明文,得到密文;加密参数确定单元93,用于确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数;参数加密单元94,用于将所述加密参数进行加密;校验值获取单元95,用于获得密文和加密后加密参数的校验值;数据帧组成单元96,用于将所述密文、校验值和各个加密后加密参数按照预设格式组合成数据帧;传输单元97,用于将所述数据帧进行传输。
本发明同时公开了一种数据传输解密装置,其结构如图10所示,包括:
检验单元101,用于利用校验值对接收的数据帧进行校验;读取单元102,用于当校验结果为正确时,根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数;参数解密单元103,用于解密加密参数,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号;密文解密单元104,用于根据所述密码和预先建立的密文字符集,利用与所述加密版本号对应的可逆逻辑运算解密密文,得到明文。
本发明还公开了一种数据传输加解密系统,其结构如图11所示,包括:
数据传输加密装置111,用于确定用于加密明文的密码,根据所述密码和预先建立的密文字符集,利用可逆逻辑运算加密明文,得到密文,确定密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号为加密参数,将所述加密参数进行加密,并获得密文和加密后加密参数的校验值,将所述密文、校验值和各个加密后加密参数按照预设格式组合成数据帧,将所述数据帧进行传输;
数据传输解密装置112,用于利用校验值对接收的数据帧进行校验,当校验结果为正确时,根据预设格式分别读取出加密后的密文、校验值和各个加密后的加密参数,解密加密参数,得到密码、密码长度、密文长度和与所述可逆逻辑运算对应的加密版本号,根据所述密码和预先建立的密文字符集,利用与所述加密版本号对应的可逆逻辑运算解密密文,得到明文。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程存储器(EPROM)、电可擦除可编程存储器(EEPROM)、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。