CN109936450A - 面向调控运行数据的实时感知混合加解密方法及装置 - Google Patents
面向调控运行数据的实时感知混合加解密方法及装置 Download PDFInfo
- Publication number
- CN109936450A CN109936450A CN201711344631.5A CN201711344631A CN109936450A CN 109936450 A CN109936450 A CN 109936450A CN 201711344631 A CN201711344631 A CN 201711344631A CN 109936450 A CN109936450 A CN 109936450A
- Authority
- CN
- China
- Prior art keywords
- data
- real
- ciphertext
- algorithm
- time running
- 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.)
- Granted
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种面向调控运行数据的实时感知混合加解密方法及装置,其中加密方法包括:获取实时运行数据;采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。本发明可以提高实时运行数据的完整性和安全性。
Description
技术领域
本发明涉及数据安全技术领域,尤其涉及面向调控运行数据的实时感知混合加解密方法及装置。
背景技术
随着移动通信、互联网技术的迅速发展和智能终端的广泛普及,移动互联技术对电网业务模式创新和运营效率提升产生了深远影响。电网公司积极利用互联网思维,借鉴“互联网+”成功案例,主动设计移动业务场景,移动应用在给智能电网带来诸多便利的同时,也引发了一系列的安全挑战。调控运行数据实时性强,交互频繁,传统的移动应用信息安全防护薄弱,加密方法欠缺,这样调控运行数据在传输过程中被拦截破解的风险就高,同时,考虑到调控领域在电网中的核心地位,实时运行数据的失控不仅会造成严重经济损失,而且可能危及社会安全。因此,需要充分考虑实时数据安全问题。目前最好的方法就是对数据加密,断绝他人窥探隐私的可能性。然而,目前的各种加密方法的数据安全性仍有待提高。
发明内容
本发明实施例提供一种面向调控运行数据的实时感知混合加密方法,用以提高实时运行数据的安全性,该方法包括:
获取实时运行数据;
采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;
将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;
采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。
本发明实施例还提供一种面向调控运行数据的实时感知混合解密方法,用以提高实时运行数据的安全性,该方法包括:
获得组合数据密文,所述组合数据密文是将实时运行数据、MD5数据密文和时间戳组合后采用AES256算法加密获得的;所述MD5数据密文是将实时运行数据采用MD5算法加密获得的;其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换;
采用AES256算法对组合数据密文进行解密,获得实时运行数据、MD5数据密文和时间戳。
本发明实施例还提供一种面向调控运行数据的实时感知混合加密装置,用以提高实时运行数据的安全性,该装置包括:
数据获取模块,用于获取实时运行数据;
第一加密模块,用于采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;
数据组合模块,用于将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;
第二加密模块,用于采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。
本发明实施例还提供一种面向调控运行数据的实时感知混合解密装置,用以提高实时运行数据的安全性,该装置包括:
数据获得模块,用于获得组合数据密文,所述组合数据密文是将实时运行数据、MD5数据密文和时间戳组合后采用AES256算法加密获得的;所述MD5数据密文是将实时运行数据采用MD5算法加密获得的;其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换;
数据解密模块,用于采用AES256算法对组合数据密文进行解密,获得实时运行数据、MD5数据密文和时间戳。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现:上述面向调控运行数据的实时感知混合加密方法;和/或,上述面向调控运行数据的实时感知混合解密方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行:上述面向调控运行数据的实时感知混合加密方法的计算机程序;和/或,上述面向调控运行数据的实时感知混合解密方法的计算机程序。
在本发明实施例中,对MD5算法过程进行改进,将初始化数据由传统的4个改为8个,在继承传统算法稳定性的基础上减少了碰撞性,四轮运算完成后生成的MD5数据密文的长度从传统的128位提高到256位,加密倍数和安全性大幅提高,增强了抵御强行攻击的能力;本发明实施例还对AES256算法过程进行改进,其轮函数包括字节替换变换、行列合并变换和轮密钥加变换,相对于传统算法减少了计算步骤,缩短了加密时长;本发明实施例综合采用上述改进的MD5算法和AES256算法,实现面向调控运行数据的实时感知混合加解密,保证了实时运行数据的安全性,为调控领域实时运行数据在移动应用的交互传输过程提供了安全可靠的技术方案。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中面向调控运行数据的实时感知混合加密方法的示意图;
图2为本发明实施例中AES算法优化前与优化后的对比示意图;
图3为本发明实施例中数据加密传输的具体示例图;
图4为本发明实施例中面向调控运行数据的实时感知混合解密方法的示意图;
图5为本发明实施例中加解密过程的具体示例图;
图6为本发明实施例中面向调控运行数据的实时感知混合加密装置的示意图;
图7为本发明实施例中面向调控运行数据的实时感知混合加密装置的具体示例图;
图8为本发明实施例中面向调控运行数据的实时感知混合解密装置的示意图;
图9为本发明实施例中面向调控运行数据的实时感知混合解密装置的具体示例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
为了提高实时运行数据的安全性,本发明实施例提供一种面向调控运行数据的实时感知混合加密方法,如图1所示,该方法可以包括:
步骤101、获取实时运行数据;
步骤102、采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;
步骤103、将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;
步骤104、采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。
由图1所示流程可以得知,本发明实施例为了满足实时运行数据在交互过程中能够安全、可靠、完整的要求,选用了两种加密方法,一种是MD5算法(Message-DigestAlgorithm 5,信息-摘要算法5),另一种是AES算法(Advanced Encryption Standard,高级加密标准),并对这两种加密方法都进行了改进。根据MD5算法的不可逆性,对MD5算法进行了改进,避免其碰撞性,选其加密实时运行数据,保证数据的完整性和可靠性;对AES算法进行改进,提高加密速度,根据其加密速度快、安全性高的特征,选其作为最后防线,保证数据安全性。利用改进的上述两种加密方法应用于实时运行数据的混合加密,可以实现移动应用实时运行数据的安全、可靠传输和交互,不影响数据传输速率。
具体实施时,在获取到实时运行数据后,先采用MD5算法对实时运行数据进行加密,获得MD5数据密文。为了减少MD5算法的碰撞性,提高其加密数据的安全性,对MD5算法进行了改进,将初始化数据由传统的4个改为8个,四轮运算完成后生成的MD5数据密文的长度从传统的128位提高到256位。
实施例中,在采用8个初始化数据执行四轮运算之前,可以对待加密数据进行数据填充,使信息字节长度对512取模得448;对数据填充后的待加密数据添加信息字节,使添加后的待加密数据的信息字节长度为512的整数倍。
其中,数据填充例如可以是:在待加密数据后面进行填充,填充第一位为1,其余为0,直至满足上述信息字节长度条件时才停止用0填充。数据填充后,待加密数据的信息字节长度将被扩展至N×512+448。在数据填充之后,增加信息字节长度。例如可以在数据填充后的待加密数据之后再填充上一个以64位二进制表示的填充前的信息字节长度。添加完毕后,待加密数据的信息字节长度为N×512+448+64=(N+1)×512,最终信息字节长度就是512的整数倍,这样可以满足后续处理中对信息字节长度的要求。假设待加密数据本身已满足后续处理中对信息字节长度的要求,即待加密数据本身已满足信息字节长度是512的整数倍的要求,也可以不做数据填充和添加信息字节的处理。
在采用MD5算法对实时运行数据进行加密的过程中,需要先准备初始数据。本发明实施例中,将初始化数据由传统的4个改为8个。例如,可以采用8个32位整数(A,B,C,D,E,F,G,H)用来计算信息摘要,初始化使用的是十六进制表示的数字:A=0x01234567,B=0x89abcdef,C=0x10abcdef,D=0xfedcba01,E=0xfedcba98,F=0x76543210,G=0xebdbuf41,H=0x67abed25。将这8个链接变量A、B、C、D、E、F、G、H分别赋给8个变量a、b、c、d、e、f、g、h个变量,进行算法主循环操作。
算法主循环操作中,4个函数可以如下:
F(X,Y,Z)=(X&Y)|((~X)&Z);
G(X,Y,Z)=(X&Z)|(Y&(~Z));
H(X,Y,Z)=X^Y^Z;
I(X,Y,Z)=Y^(X|(~Z));其中&代表与操作,|代表或操作,~代表非操作,^代表异或操作,X、Y、Z分别为上述8个变量a、b、c、d、e、f、g、h其中任一,且X、Y、Z互不相同。
实施例中,采用MD5算法对实时运行数据进行加密,获得MD5数据密文,可以包括:
采用8个初始化数据a、b、c、d、e、f、g、h执行四轮运算,运算过程中四轮函数按照每次操作对a、b、c、d、e、f、g、h中的其中3个作一次非线性函数运算,将所得结果加上变量Mj和常数ti,将所得结果向左位移一个不定的常数s,并加上a、b、c、d、e、f、g、h其中之一,将所得结果取代a、b、c、d、e、f、g、h其中之一,生成256位的MD5数据密文;其中,变量Mj是待加密数据的第j个分组。
下面举例详细说明四轮运算过程。四轮循环运算循环的次数是分组的个数,每轮循环都很相似,每次操作对a、b、c、d、e、f、g、h中的其中3个作一次非线性函数运算,然后将所得结果加上第9个变量Mj(文本的一个子分组)和一个常数ti,再将所得结果向左位移一个不定的常数s,并加上a、b、c、d、e、f、g、h其中之一,最后用该结果取代a、b、c、d、e、f、g、h之一。在本例中可以具体包括:
1、将每512字节细分成16个小组,每个小组64位(8个字节)。
2、设Mj表示消息(待加密数据)的第j个子分组(从0到15),<<<s表示循环左移s位,则四种操作为:
FF(a,b,c,d,e,f,g,h,Mj,s,ti)
表示a=b+((c+d+e+F(f,g,h)+Mj+ti)<<<s)
GG(a,b,c,d,e,f,g,h,Mj,s,ti)
表示a=b+((c+d+e+G(f,g,h)+Mj+ti)<<<s)
HH(a,b,c,d,e,f,g,h,Mj,s,ti)
表示a=b+((c+d+e+H(f,g,h)+Mj+ti)<<<s)
II(a,b,c,d,e,f,g,h,Mj,s,ti)
表示a=b+((c+d+e+I(f,g,h)+Mj+ti)<<<s)
常数ti可以按如下方法选择:
在第i步中,ti是232×abs(cosi)的整数部分,i的单位是弧度。
四轮运算:
第一轮
a=FF(a,b,c,d,e,f,g,h,M0,4,0xd76aa478)
b=FF(b,c,d,e,f,g,h,a,M1,8,0xe8c7b756)
c=FF(c,d,e,f,g,h,a,b,M2,12,0x242070db)
d=FF(d,e,f,g,h,a,b,c,M3,16,0xc1bdceee)
e=FF(e,f,g,h,a,b,c,d,M4,20,0xf57c0faf)
f=FF(f,g,h,a,b,c,d,e,M5,24,0x4787c62a)
g=FF(a,b,c,d,e,f,g,h,M6,4,0xa8304613)
h=FF(b,c,d,e,f,g,h,a,M7,8,0xfd469501)
a=FF(c,d,e,f,g,h,a,b,M8,12,0x698098d8)
b=FF(d,e,f,g,h,a,b,c,M9,16,0x8b44f7af)
c=FF(e,f,g,h,a,b,c,d,M10,20,0xffff5bb1)
d=FF(f,g,h,a,b,c,d,e,M11,24,0x895cd7be)
e=FF(a,b,c,d,e,f,g,h,M12,4,0x6b901122)
f=FF(b,c,d,e,f,g,h,a,M13,8,0xfd987193)
g=FF(c,d,e,f,g,h,a,b,M14,12,0xa679438e)
h=FF(d,e,f,g,h,a,b,c,M15,16,0x49b40821)
第二轮
e=GG(e,f,g,h,a,b,c,d,M1,20,0xf61e2562)
h=GG(f,g,h,a,b,c,d,e,M6,24,0xc040b340)
a=GG(a,b,c,d,e,f,g,h,M11,4,0x265e5a51)
g=GG(b,c,d,e,f,g,h,a,M0,8,0xe9b6c7aa)
c=GG(c,d,e,f,g,h,a,b,M5,12,0xd62f105d)
d=GG(d,e,f,g,h,a,b,c,M10,16,0x2441453)
e=GG(e,f,g,h,a,b,c,d,M15,20,0xd8a1e681)
f=GG(f,g,h,a,b,c,d,e,M4,24,0xe7d3fbc8)
a=GG(a,b,c,d,e,f,g,h,M9,4,0x21e1cde6)
b=GG(b,c,d,e,f,g,h,a,M14,8,0xc33707d6)
c=GG(c,d,e,f,g,h,a,b,M3,12,0xf4d50d87)
d=GG(d,e,f,g,h,a,b,c,M8,16,0x455a14ed)
h=GG(e,f,g,h,a,b,c,d,M13,20,0xa9e3e905)
f=GG(f,g,h,a,b,c,d,e,M2,24,0xfcefa3f8)
g=GG(a,b,c,d,e,f,g,h,M7,4,0x676f02d9)
b=GG(b,c,d,e,f,g,h,a,M12,8,0x8d2a4c8a)
第三轮
e=HH(e,f,g,h,a,b,c,d,M1,20,0xf61e2562)
h=HH(f,g,h,a,b,c,d,e,M6,24,0xc040b340)
a=HH(a,b,c,d,e,f,g,h,M11,4,0x265e5a51)
g=HH(b,c,d,e,f,g,h,a,M0,8,0xe9b6c7aa)
c=HH(c,d,e,f,g,h,a,b,M5,12,0xd62f105d)
d=HH(d,e,f,g,h,a,b,c,M10,16,0x2441453)
e=HH(e,f,g,h,a,b,c,d,M15,20,0xd8a1e681)
f=HH(f,g,h,a,b,c,d,e,M4,24,0xe7d3fbc8)
a=HH(a,b,c,d,e,f,g,h,M9,4,0x21e1cde6)
b=HH(b,c,d,e,f,g,h,a,M14,8,0xc33707d6)
c=HH(c,d,e,f,g,h,a,b,M3,12,0xf4d50d87)
d=HH(d,e,f,g,h,a,b,c,M8,16,0x455a14ed)
h=HH(e,f,g,h,a,b,c,d,M13,20,0xa9e3e905)
f=HH(f,g,h,a,b,c,d,e,M2,24,0xfcefa3f8)
g=HH(a,b,c,d,e,f,g,h,M7,4,0x676f02d9)
b=HH(b,c,d,e,f,g,h,a,M12,8,0x8d2a4c8a)
第四轮
e=II(e,f,g,h,a,b,c,d,M1,20,0xf61e2562)
h=II(f,g,h,a,b,c,d,e,M6,24,0xc040b340)
a=II(a,b,c,d,e,f,g,h,M11,4,0x265e5a51)
g=II(b,c,d,e,f,g,h,a,M0,8,0xe9b6c7aa)
c=II(c,d,e,f,g,h,a,b,M5,12,0xd62f105d)
d=II(d,e,f,g,h,a,b,c,M10,16,0x2441453)
e=II(e,f,g,h,a,b,c,d,M15,20,0xd8a1e681)
f=II(f,g,h,a,b,c,d,e,M4,24,0xe7d3fbc8)
a=II(a,b,c,d,e,f,g,h,M9,4,0x21e1cde6)
b=II(b,c,d,e,f,g,h,a,M14,8,0xc33707d6)
c=II(c,d,e,f,g,h,a,b,M3,12,0xf4d50d87)
d=II(d,e,f,g,h,a,b,c,M8,16,0x455a14ed)
h=II(e,f,g,h,a,b,c,d,M13,20,0xa9e3e905)
f=II(f,g,h,a,b,c,d,e,M2,24,0xfcefa3f8)
g=II(a,b,c,d,e,f,g,h,M7,4,0x676f02d9)
b=II(b,c,d,e,f,g,h,a,M12,8,0x8d2a4c8a)
每一轮循环全部结束之后,将A、B、C、D、E、F、G、H分别加上a、b、c、d、e、f、g、h,接着用下一个分组继续运行算法,最后的输出散列值是A、B、C、D、E、F、G、H的级联。
由上述实施例可以得知,改进之后的MD5算法采用同基本算法几乎完全相同的运算方法,因此算法的时间复杂度没有改变,且继承了原有算法的稳定性,但减少了碰撞性。该改进算法生成的消息摘要的长度从原来的128位提高到256位,加密位数和安全性提高了很多倍,增加了其抵御强行攻击的能力。
本发明实施例中,为了提高AES算法的加密速度,对加密算法进行改进,具体改进如下:
以AES-128为例,要进行10轮的轮变换,除最后一轮只进行了字节替换变换(SB),行移位变换(SR),轮密钥加变换(AK)以外,其余前九轮都依次进行了四个变换,并且顺序是字节替换变换(SB),行移位变换(SR),列混淆变换(MC),轮密钥加变换(AK)保持不变,本发明实施例对前九轮同样的变换进行改进。为了提高算法的运行速度,将前九轮的SR,MC两个步骤进行合并,设经过SB变换后的状态为:
经过SR,MC变换后的状态为:
那么,
根据矩阵相乘的特点,上面的公式可写成一个向量变换的形式:
①
其中是一个的矩阵。
在此计算过程中,只涉及与运算,可以通过左移一位实现,可以通过后再与本身进行运算实现。将列混淆变换和行移位变换合并。图2为AES算法优化前与优化后的对比示意图,由图2可知,本发明实施例中优化后的AES算法合并了行移位变换和列混淆变换,成为行列合并变换,AES算法的轮函数由原来的四个变换:字节替换变换、行移位变换、列混淆变换和轮密钥加变换成为三个变换:字节替换变换、行列合并变换、轮密钥加变换,减少了一个计算步骤,缩短了加密时间,提高了AES算法的执行效率。
实施例中,可以将组合数据密文在移动端、信息外网和信息内网中传输;将MD5数据密文配置于Token串中传输至服务器。图3中示出了生成的数据密文的传输示例,如图3所示,实时运行数据在移动应用交互传输过程中以密文的形式流通。
本发明实施例还提供了一种面向调控运行数据的实时感知混合解密方法,如图4所示,该方法可以包括:
步骤401、获得组合数据密文,所述组合数据密文是将实时运行数据、MD5数据密文和时间戳组合后采用AES256算法加密获得的;所述MD5数据密文是将实时运行数据采用MD5算法加密获得的;其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换;
步骤402、采用AES256算法对组合数据密文进行解密,获得实时运行数据、MD5数据密文和时间戳。
在实施例中,所述MD5数据密文可以被配置于Token串中并传输至服务器;
图4所示方法可以进一步包括:
判断时间戳是否在请求实时运行数据的时间范围内;
判断解密获得的MD5数据密文与Token串中的MD5数据密文是否一致;
若上述判断结果均为是,则确认解密获得的实时运行数据有效;否则,重新请求实时运行数据。
图5给出了加解密过程的一个示例,如图5所示,在加密过程中,当请求实时运行数据时,先采用改进的MD5算法对数据进行加密,生成256位密文;将MD5加密过的实时运行数据的密文串放在Token认证中,传到服务器;将MD5加密过的实时运行数据的密文串、实时运行数据和时间戳组合;采用改进的AES256算法对其组合数据进行加密,生成密文;实时运行数据经过以上混合加密过程,生成的密文在移动端、信息外网、信息内网传输。在解密过程中,当密文到达目的端的时候先用AES256算法对其解密,解密出实时运行数据、MD5加密过的实时运行数据密文串,以及时间戳;然后,判断得到的MD5加密过的实时运行数据密文串与Token串中的密文串是否一致;以及判断时间戳对应时间是否在请求范围内,如果密文串一致并且时间在请求范围内,证明实时运行数据有效,返给前端展示即可;如果密文串不一致,证明实时运行数据被改动了,或者时间上已过期,已经失去了其价值,需要再请求数据。
由上述实施例可知,本发明实施例基于MD5算法和AES算法以及时间戳的混合加密方法,针对调控运行数据实时性强、交互频繁的特点,对实时运行数据进行二次加密。MD5算法根据其不可逆性,加密数据可以保证数据的完整性和可靠性。采用改进的MD5算法,可以增强其安全性,减少碰撞性。AES算法加密速度快,安全性高,采用改进的AES加密算法不仅能提高其加密速度,而且还能保证实时运行数据的安全。
本发明实施例中还提供了一种面向调控运行数据的实时感知混合加密装置及解密装置,如下面的实施例所述。由于这些装置解决问题的原理分别与面向调控运行数据的实时感知混合加密方法及解密方法相似,因此这些装置的实施可以参见相应方法的实施,重复之处不再赘述。
图6为本发明实施例中面向调控运行数据的实时感知混合加密装置的示意图,如图7所示,该装置可以包括:
数据获取模块601,用于获取实时运行数据;
第一加密模块602,用于采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;
数据组合模块603,用于将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;
第二加密模块604,用于采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。
在一个实施例中,所述第一加密模块602可以进一步用于:
采用8个初始化数据a、b、c、d、e、f、g、h执行四轮运算,运算过程中四轮函数按照每次操作对a、b、c、d、e、f、g、h中的其中3个作一次非线性函数运算,将所得结果加上变量Mj和常数ti,将所得结果向左位移一个不定的常数s,并加上a、b、c、d、e、f、g、h其中之一,将所得结果取代a、b、c、d、e、f、g、h其中之一,生成256位的MD5数据密文;其中,变量Mj是待加密数据的第j个分组。
在一个实施例中,所述第一加密模块602可以进一步用于:
在采用8个初始化数据执行四轮运算之前,对待加密数据进行数据填充,使信息字节长度对512取模得448;
对数据填充后的待加密数据添加信息字节,使添加后的待加密数据的信息字节长度为512的整数倍。
如图7所示,在一个实施例中,图6所示装置可以进一步包括:
数据传输模块701,用于将组合数据密文在移动端、信息外网和信息内网中传输;将MD5数据密文配置于Token串中传输至服务器。
图8为本发明实施例中面向调控运行数据的实时感知混合解密装置的示意图,如图9所示,该装置可以包括:
数据获得模块801,用于获得组合数据密文,所述组合数据密文是将实时运行数据、MD5数据密文和时间戳组合后采用AES256算法加密获得的;所述MD5数据密文是将实时运行数据采用MD5算法加密获得的;其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换;
数据解密模块802,用于采用AES256算法对组合数据密文进行解密,获得实时运行数据、MD5数据密文和时间戳。
在一个实施例中,所述MD5数据密文可以被配置于Token串中并传输至服务器;
如图9所示,图8所示装置可以进一步包括:
判断处理模块901,用于判断时间戳是否在请求实时运行数据的时间范围内;判断解密获得的MD5数据密文与Token串中的MD5数据密文是否一致;若上述判断结果均为是,则确认解密获得的实时运行数据有效;否则,重新请求实时运行数据。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现:上述面向调控运行数据的实时感知混合加密方法;和/或,上述面向调控运行数据的实时感知混合解密方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行:上述面向调控运行数据的实时感知混合加密方法的计算机程序;和/或,上述面向调控运行数据的实时感知混合解密方法的计算机程序。
综上所述,在本发明实施例中,对MD5算法过程进行改进,将初始化数据由传统的4个改为8个,在继承传统算法稳定性的基础上减少了碰撞性,四轮运算完成后生成的MD5数据密文的长度从传统的128位提高到256位,加密倍数和安全性大幅提高,增强了抵御强行攻击的能力;本发明实施例还对AES256算法过程进行改进,其轮函数包括字节替换变换、行列合并变换和轮密钥加变换,相对于传统算法减少了计算步骤,缩短了加密时长;本发明实施例综合采用上述改进的MD5算法和AES256算法,充分利用其加密特点和加密安全性,对调控领域交互频繁、安全性要求高的实时运行数据进行混合加解密,保证了实时运行数据的安全性,为调控领域实时运行数据在移动应用的交互传输过程提供了安全可靠的技术方案。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种面向调控运行数据的实时感知混合加密方法,其特征在于,包括:
获取实时运行数据;
采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;
将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;
采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。
2.如权利要求1所述的方法,其特征在于,所述采用MD5算法对实时运行数据进行加密,获得MD5数据密文,包括:
采用8个初始化数据a、b、c、d、e、f、g、h执行四轮运算,运算过程中四轮函数按照每次操作对a、b、c、d、e、f、g、h中的其中3个作一次非线性函数运算,将所得结果加上变量Mj和常数ti,将所得结果向左位移一个不定的常数s,并加上a、b、c、d、e、f、g、h其中之一,将所得结果取代a、b、c、d、e、f、g、h其中之一,生成256位的MD5数据密文;其中,变量Mj是待加密数据的第j个分组。
3.如权利要求1所述的方法,其特征在于,所述采用MD5算法对实时运行数据进行加密,获得MD5数据密文,还包括:
在采用8个初始化数据执行四轮运算之前,对待加密数据进行数据填充,使信息字节长度对512取模得448;
对数据填充后的待加密数据添加信息字节,使添加后的待加密数据的信息字节长度为512的整数倍。
4.如权利要求1所述的方法,其特征在于,进一步包括:
将组合数据密文在移动端、信息外网和信息内网中传输;
将MD5数据密文配置于Token串中传输至服务器。
5.一种面向调控运行数据的实时感知混合解密方法,其特征在于,包括:
获得组合数据密文,所述组合数据密文是将实时运行数据、MD5数据密文和时间戳组合后采用AES256算法加密获得的;所述MD5数据密文是将实时运行数据采用MD5算法加密获得的;其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换;
采用AES256算法对组合数据密文进行解密,获得实时运行数据、MD5数据密文和时间戳。
6.如权利要求5所述的方法,其特征在于,所述MD5数据密文被配置于Token串中并传输至服务器;
所述方法进一步包括:
判断时间戳是否在请求实时运行数据的时间范围内;
判断解密获得的MD5数据密文与Token串中的MD5数据密文是否一致;
若上述判断结果均为是,则确认解密获得的实时运行数据有效;否则,重新请求实时运行数据。
7.一种面向调控运行数据的实时感知混合加密装置,其特征在于,包括:
数据获取模块,用于获取实时运行数据;
第一加密模块,用于采用MD5算法对实时运行数据进行加密,获得MD5数据密文,其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;
数据组合模块,用于将实时运行数据、MD5数据密文和时间戳进行组合,获得组合数据;
第二加密模块,用于采用AES256算法对组合数据进行加密,获得组合数据密文,其中,所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换。
8.如权利要求7所述的装置,其特征在于,所述第一加密模块进一步用于:
采用8个初始化数据a、b、c、d、e、f、g、h执行四轮运算,运算过程中四轮函数按照每次操作对a、b、c、d、e、f、g、h中的其中3个作一次非线性函数运算,将所得结果加上变量Mj和常数ti,将所得结果向左位移一个不定的常数s,并加上a、b、c、d、e、f、g、h其中之一,将所得结果取代a、b、c、d、e、f、g、h其中之一,生成256位的MD5数据密文;其中,变量Mj是待加密数据的第j个分组。
9.如权利要求7所述的装置,其特征在于,所述第一加密模块进一步用于:
在采用8个初始化数据执行四轮运算之前,对待加密数据进行数据填充,使信息字节长度对512取模得448;
对数据填充后的待加密数据添加信息字节,使添加后的待加密数据的信息字节长度为512的整数倍。
10.如权利要求7所述的装置,其特征在于,进一步包括:
数据传输模块,用于将组合数据密文在移动端、信息外网和信息内网中传输;将MD5数据密文配置于Token串中传输至服务器。
11.一种面向调控运行数据的实时感知混合解密装置,其特征在于,包括:
数据获得模块,用于获得组合数据密文,所述组合数据密文是将实时运行数据、MD5数据密文和时间戳组合后采用AES256算法加密获得的;所述MD5数据密文是将实时运行数据采用MD5算法加密获得的;其中,所述MD5算法采用8个初始化数据执行四轮运算,生成256位的MD5数据密文;所述AES256算法的轮函数包括字节替换变换、行列合并变换和轮密钥加变换;
数据解密模块,用于采用AES256算法对组合数据密文进行解密,获得实时运行数据、MD5数据密文和时间戳。
12.如权利要求11所述的装置,其特征在于,所述MD5数据密文被配置于Token串中并传输至服务器;
所述装置进一步包括:
判断处理模块,用于判断时间戳是否在请求实时运行数据的时间范围内;判断解密获得的MD5数据密文与Token串中的MD5数据密文是否一致;若上述判断结果均为是,则确认解密获得的实时运行数据有效;否则,重新请求实时运行数据。
13.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现:权利要求1至4任一所述方法;和/或,权利要求5至6任一所述方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行:权利要求1至4任一所述方法的计算机程序;和/或,权利要求5至6任一所述方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711344631.5A CN109936450B (zh) | 2017-12-15 | 2017-12-15 | 面向调控运行数据的实时感知混合加解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711344631.5A CN109936450B (zh) | 2017-12-15 | 2017-12-15 | 面向调控运行数据的实时感知混合加解密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109936450A true CN109936450A (zh) | 2019-06-25 |
CN109936450B CN109936450B (zh) | 2022-06-14 |
Family
ID=66979407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711344631.5A Active CN109936450B (zh) | 2017-12-15 | 2017-12-15 | 面向调控运行数据的实时感知混合加解密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109936450B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122554A1 (en) * | 2001-03-05 | 2002-09-05 | Lilly Glenn M. | Device for and method of one-way cryptographic hashing |
US20080304664A1 (en) * | 2007-06-07 | 2008-12-11 | Shanmugathasan Suthaharan | System and a method for securing information |
CN105160262A (zh) * | 2015-08-25 | 2015-12-16 | 浙江工业大学 | 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 |
CN105704149A (zh) * | 2016-03-24 | 2016-06-22 | 国网江苏省电力公司电力科学研究院 | 一种电力移动应用安全防护方法 |
CN106549963A (zh) * | 2016-11-05 | 2017-03-29 | 北京工业大学 | 基于hdfs的安全存储系统 |
-
2017
- 2017-12-15 CN CN201711344631.5A patent/CN109936450B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020122554A1 (en) * | 2001-03-05 | 2002-09-05 | Lilly Glenn M. | Device for and method of one-way cryptographic hashing |
US20080304664A1 (en) * | 2007-06-07 | 2008-12-11 | Shanmugathasan Suthaharan | System and a method for securing information |
CN105160262A (zh) * | 2015-08-25 | 2015-12-16 | 浙江工业大学 | 一种基于Struts2框架和MD5加密技术的服务器上传文件命名方法 |
CN105704149A (zh) * | 2016-03-24 | 2016-06-22 | 国网江苏省电力公司电力科学研究院 | 一种电力移动应用安全防护方法 |
CN106549963A (zh) * | 2016-11-05 | 2017-03-29 | 北京工业大学 | 基于hdfs的安全存储系统 |
Non-Patent Citations (3)
Title |
---|
ALOK KUMAR KASGAR ET.AL: "New Modified 256-bit MD5 Algorithm with SHA Compression Function", 《INTERNATIONAL JOURNAL OF COMPUTER APPLICATIONS (0975 – 8887)》 * |
马亮: "一种双策略 CDN 防盗链的设计与实现", 《中国新通信》 * |
魏世勇: "基于安全传输策略的网络化预测控制系统设计", 《工程科学学报》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109936450B (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101753292B (zh) | 用于链接式加密模式的方法和设备 | |
KR101369748B1 (ko) | 데이터 암호화 방법 및 그 장치 | |
CN109041052A (zh) | 一种基于标识算法的安全通信方法及系统 | |
CN112511304A (zh) | 一种基于混合加密算法的电力数据隐私通信方法 | |
CN105184115B (zh) | 用于将隐式完整性或可信性检查包括到白箱实现中的方法 | |
CN109635586A (zh) | 媒体文件加密密钥管理方法、系统、设备及存储介质 | |
CN105095695B (zh) | 经由白箱实现的不正确功能行为实现授权 | |
JP2020522753A (ja) | ブロック暗号を演算するデバイス及び方法 | |
CN109005184A (zh) | 文件加密方法及装置、存储介质、终端 | |
CN109600224A (zh) | 一种sm2密钥生成、签名方法、终端、服务器和存储介质 | |
CN105024992A (zh) | 在单个白箱实现中实现使用相关安全性设置 | |
CN106131008B (zh) | 视音频监控设备及其安全认证方法、视音频展示设备 | |
JP2022095852A (ja) | デジタル署名方法、署名情報の検証方法、関連装置及び電子機器 | |
CN105915345B (zh) | 一种家庭网关设备生产测试中授权生产和改制的实现方法 | |
Liu et al. | Fault attacks on authenticated encryption modes for GIFT | |
CN104618380A (zh) | 一种适用于物联网的密钥更新方法 | |
CN114338648A (zh) | 一种基于国密算法的sftp多端文件安全传输的方法及系统 | |
Nkandeu et al. | Image encryption using the logistic map coupled to a self-synchronizing streaming | |
CN100459493C (zh) | 流密码生成器、随机数生成方法、加密系统及加密方法 | |
CN105281893A (zh) | 用于引入白箱实现对串集合的依赖性的方法 | |
CN105763322B (zh) | 一种可混淆的加密密钥隔离数字签名方法及系统 | |
CN109936450A (zh) | 面向调控运行数据的实时感知混合加解密方法及装置 | |
CN113746642B (zh) | 一种计算机间通信方法及系统 | |
CN115174261A (zh) | 基于分阶划层与密中密分发的混合加密解密系统与方法 | |
CN106487495B (zh) | 基于整数混沌的轻量级rfid认证方法 |
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 |