加密方式的识别方法、装置和存储介质与流程

文档序号:27324402发布日期:2021-11-10 01:04阅读:194来源:国知局
加密方式的识别方法、装置和存储介质与流程

1.本技术涉及网络安全领域,尤其涉及一种加密方式的识别方法、装置和存储介质。


背景技术:

2.报文传输数据时,除了采用有密钥的强加密,还可以采用无密钥的弱加密。通常采用弱加密方式会进行多层加密,使得加密方式未知且加密层数未知。在进行破解时,并不能确定采用了哪种加密方式进行加密。


技术实现要素:

3.本技术实施例提供一种加密方式的识别方法、装置和存储介质,以实现快速确定加密方式。
4.为实现上述技术目的,本技术实施例采用如下技术方案:
5.第一方面,本技术提供一种加密方式的识别方法,该方法包括:获取待解密数据;采用n种加密方式分别对待解密数据进行解密得到n个解密结果,并计算待解密数据的信息熵以及n个解密结果的信息熵;根据n种加密方式、n个解密结果、待解密数据的信息熵以及n个解密结果的信息熵,得到目标解密结果和与目标解密结果对应的加密方式。
6.由上述可知,本技术提供的加密方式的识别方法,基于加密过程数据的信息熵会增加,正确解密过程数据的信息熵会减少的原理,在对每一层进行解密时,遍历n种加密方式来对待解密数据尝试解密,并计算解密前后数据的信息熵,根据n种加密方式、n种加密方式对待解密数据解密后的n种解密结果和解密前待解密数据的信息熵和n种解密结果的信息熵,得到目标解密结果和与目标解密结果对应的加密方式,通过信息熵指明最优的解密结果和加密方式,可以实现快速确定加密方式。
7.在本技术一些实施例中,加密方式为弱加密方式,弱加密方式指根据加密规则进行加密,而不采用密钥进行加密。对于弱加密方式的数据进行解密,由于不必知道密钥,可以方便进行解密。
8.在本技术另一些实施例中,目标解密结果包括n个解密结果中,信息熵小于待解密数据的信息熵的解密结果。基于加密过程数据的信息熵会增加,正确解密过程数据的信息熵会减少的原理,如果信息熵小于待解密数据的信息熵的解密结果,则表明更可能得到了正确的加密方式。
9.在本技术另一些实施例中,n种加密方式中的第一加密方式对应一个第一门限,当第一加密方式对应的解密结果的信息熵与待解密数据的信息熵相比,减小的数值大于或等于第一门限时,则第一加密方式对应的解密结果属于目标解密结果。不同加密方式,信息熵减小的程度是不同的。
10.在本技术另一些实施例中,还包括:在目标解密结果的信息熵满足条件时,将目标解密结果作为待解密数据进行下一轮解密。可以实现对多重加密进行解密。
11.在本技术另一些实施例中,目标解密结果的信息熵满足条件,包括:目标解密结果
的信息熵相对于待解密数据的信息熵减小的数值大于第二门限。当目标解密结果有多个时,可以从中优选解密结果和解密方式。
12.在本技术另一些实施例中,根据n种加密方式、n个解密结果、待解密数据的信息熵以及n个解密结果的信息熵,得到目标解密结果和与目标解密结果对应的加密方式,包括:将n种加密方式、n个解密结果、待解密数据的信息熵以及n个解密结果的信息熵输入至机器学习模型,得到目标解密结果和与目标解密结果对应的加密方式。可以通过机器学习模型实现更复杂的解密。
13.第二方面,本技术提供一种加密方式的识别装置,包括获取模块,用于获取待解密数据;解密模块,用于采用n种加密方式分别对待解密数据进行解密得到n个解密结果,并计算待解密数据的信息熵以及n个解密结果的信息熵;判断模块,用于根据n种加密方式、n个解密结果、待解密数据的信息熵以及n个解密结果的信息熵,得到目标解密结果和与目标解密结果对应的加密方式。
14.第三方面,提供一种加密方式的识别装置,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行指令,以实现如上述第一方面提供的加密方式的识别方法。
15.第四方面,本技术提供一种计算机可读存储介质,包括指令。当指令在计算机上运行时,使得计算机执行如上述第一方面提供的方法。
16.第五方面,本技术提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述第一方面提供的方法。
17.需要说明的是,上述指令可以全部或者部分存储在计算机可读存储介质上。其中,计算机可读存储介质可以与加密方式的识别装置的处理器封装在一起的,也可以与加密方式的识别装置的处理器单独封装,本技术对此不作限定。
18.本技术中第二方面、第三方面、第四方面和第五方面的描述,可以参考第一方面的详细描述;并且,第二方面、第三方面、第四方面和第五方面描述的有益效果,可以参考第一方面的有益效果分析,此处不再赘述。
19.在本技术中,上述名字对加密方式的识别装置或功能模块本身不构成限定,在实际实现中,这些加密方式的识别装置或功能模块可以以其他名称出现。只要各个加密方式的识别装置或功能模块的功能和本技术类似,属于本技术权利要求及其等同技术的范围之内。
20.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
21.图1是本技术实施例提供的一种加密方式的识别方法所涉及的实施环境示意图;
22.图2是本技术实施例提供的一种加密方式的识别装置的结构流程图;
23.图3是本技术实施例提供的另一种加密方式的识别装置的结构流程图;
24.图4是本技术实施例提供的一种加密方式的识别方法的流程示意图。
具体实施方式
25.首先对本技术涉及的一些概念进行描述:
26.强加密:加密过程中使用秘钥,无法通过算法直接破解的加密方式,例如如rsa(ron rivest,adi shamir,leonard adleman)加密。对称加密和非对称加密均为强加密。
27.对称加密:对称加密就指加密和解密使用同一个密钥,通常称之为会话密钥(session key)。
28.非对称加密:非对称加密指加密和解密使用不同密钥,通常包括两个密钥——公钥和私钥,其中,公钥用于加密,私钥用于解密,公钥和私钥配对使用,否则不能正确解密。
29.弱加密:根据某种加密规则(例如编码、置换、位移等算法)进行加密,即加密过程中不会采用密钥进行加密,对侧根据加密规则可以逆向解密,例如base64加密。
30.在软件应用开发中,数据加密已经是普遍的要求,但对于数据传输过程中的数据加密的加密级别,在业内并没有统一要求。如前文所述的,加密方式包括强加密和弱加密,在正常情况下,通常使用需要密钥的强加密方式来完成加密,但传输密钥同样是技术上比较难以解决的问题,因此在许多进行数据传输的场景中,采用多重弱加密方式来令数据看起来有类似强加密的加密效果,使原数据不易被破解。
31.在弱加密方式未知并且加密层数未知的情况下,如果在对每一层解密时都对上一层所有解密结果遍历所有加密方式,将导致解密效率极低。为此,基于加密过程数据的信息熵会增加,正确解密过程数据的信息熵会减少的原理,本技术实施例提供了一种加密方式的识别方法、装置和存储介质,在对每一层进行解密时,遍历多种加密方式来对数据尝试解密,并计算解密前后数据的信息熵,根据解密方式、解密结果和解密前数据的信息熵和解密后解密结果的信息熵,得到目标解密结果和与目标解密结果对应的加密方式,通过信息熵指明最优的解密结果和加密方式,可以实现快速确定加密方式。
32.特别地,可以将输入机器学习模型,由机器学习模型根据信息熵减小程度选择优选的至少一组解密结果和加密方式,还可以进一步判断是否对优选的解密结果进行下一层解密,从而快速对多重加密方式进行解码。
33.如图1所示,提供了一种对数据的加密方式进行识别的应用场景。在第一设备11向第二设备12传输报文中,携带经过加密(可以为多重加密)的数据,加密方式的识别装置13通过抓包的方式获取报文,进而获取经过加密的数据,从而对加密方式进行识别。
34.需要说明的是,本技术实施例提供的加密方式的识别方法、装置和存储介质不仅可以应用于对上述数据传输场景中,还可以应用于对本地存储的数据的加密方式进行说明的场景。
35.如图2所示,在按照功能划分模块的情况下,本技术实施例提供的加密方式的识别装置13可以包括获取模块21、解密模块22和判断模块23,这些模块用于执行如图4所示的加密方式的识别方法。
36.如图3所示,在采用集成单元的情况下,本技术实施例提供的加密方式的识别装置13可以包括处理器31、存储器32和通信接口33。图2所示的各模块可以集成在处理器31中。通信接口33用于与其他设备通信,例如从网络中获取报文。存储器32用于存储供处理器31执行的可执行指令,使得处理器31执行该指令时实现如图4所示的加密方式的识别方法。
37.如图4所示,本技术实施例提供的加密方式的识别方法包括:
38.s401、获取待解密数据。
39.该步骤可以由前文所述的获取模块21来执行。
40.示例性的,可以通过获取第一设备11和第二设备12之间进行交易过程中传输的超文本传输协议(hyper text transfer protocol,http)报文,该报文中包括的加密参数可以作为待解密数据。具体可以通过burpsuite,fidder等http报文拦截工具完成。
41.s402、采用n种加密方式分别对待解密数据进行解密得到n个解密结果,并计算待解密数据的信息熵以及n个解密结果的信息熵。
42.该步骤可以由前文所述的解密模块22来执行。
43.这n种加密方式可以是前文所述的弱加密方式,而解密过程是加密过程的逆过程。计算未解密之前待解密数据的信息熵,采用每种加密方式对待解密数据进行解密可以得到一个解密结果,并计算该解密结果的信息熵。所以一种加密方式可以得到一个解密结果以及该解密结果的信息熵。
44.信息熵h(x)的计算公式如下:
45.h(x)=e[log(2,1/p(xi))]=

∑p(xi)log(2,p(xi))(i=1,2,..n)
ꢀꢀꢀ
公式1
[0046]
其中,e[]表示期望;p(xi)表示随机变量xi发生的概率;xi表示随机变量,在本技术实施例中,假设字符可能n个取值作为符号集合,计算待解密数据的信息熵时,xi表示待解密数据的各个字符采用符号集合中的一个值,计算解密结果的信息熵时,xi表示解密结果的各个字符采用符号集合中的一个值。
[0047]
s403、根据n种加密方式、n个解密结果、待解密数据的信息熵以及n个解密结果的信息熵,得到目标解密结果和与目标解密结果对应的加密方式。
[0048]
该步骤可以由前文所述的判断模块23来执行。
[0049]
基于加密过程数据的信息熵会增加,正确解密过程数据的信息熵会减少的原理,可以从n个解密结果中,选择信息熵小于待解密数据的信息熵的解密结果作为目标解密结果,并确定与目标解密结果对应的加密方式(即解密得到该目标解密结果时所采用的加密方式)。
[0050]
进一步地,针对n种加密方式中的每种加密方式都可以对应一个门限,当该加密方式对应的解密结果的信息熵与待解密数据的信息熵相比,减小的数值大于或等于该门限时,则该加密方式得到的解密结果即属于目标解密结果。
[0051]
另外,还可以通过机器学习模型进行决策,通过更复杂方式确定目标解密结果和对应的加密方式,例如将n种加密方式、n个解密结果、待解密数据的信息熵以及n个解密结果的信息熵输入至机器学习模型,得到目标解密结果和与目标解密结果对应的加密方式。该机器学习模型可以包括决策树模型、贝叶斯模型等,本技术不作限定。其中,决策树模型的效率会优于贝叶斯模型的效率。
[0052]
当然,该机器学习模型事先要经过训练,在训练过程中,即将原始数据(对应于解密过程中的解密结果)、一种加密方式、该原始数据经过该加密方式加密后得到的加密结果(对应于解密过程中的待解密数据)、原始数据的信息熵、加密结果的信息熵作为该机器学习模型的一组输入集合,将同一原始数据经过多种加密方式得到的多组输入集合输入该机器学习模型并进行训练,即可得到训练好的机器学习模型。
[0053]
目标解密结果也不限于一个,可以有多个,可以选择解密结果的信息熵相对于待解密数据的信息熵减小数值最大的解密结果作为解密后的明文输出给用户。
[0054]
另外,在目标解密结果的信息熵满足条件时,将目标解密结果作为待解密数据,进
行下一轮解密,即可实现对多层加密的数据进行解密。例如,如果目标解密结果的信息熵相对于待解密数据的信息熵减小的数值大于一个门限,则可以将目标解密结果作为待解密数据,进行下一轮解密。否则,则可以将目标解密结果作为解密后的明文输出给用户。
[0055]
由上述可知,本技术提供的加密方式的识别方法,基于加密过程数据的信息熵会增加,正确解密过程数据的信息熵会减少的原理,在对每一层进行解密时,遍历n种加密方式来对待解密数据尝试解密,并计算解密前后数据的信息熵,根据n种加密方式、n种加密方式对待解密数据解密后的n种解密结果和解密前待解密数据的信息熵和n种解密结果的信息熵,得到目标解密结果和与所述目标解密结果对应的加密方式,通过信息熵指明最优的解密结果和加密方式,可以实现快速确定加密方式。
[0056]
需要说明的是,上述加密方式的识别装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术实施例的范围。
[0057]
本技术实施例可以根据上述方法示例对上述加密方式的识别装置等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0058]
本技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在上述加密方式的识别装置上运行时,使得该加密方式的识别装置执行上述方法实施例中的各个功能或者步骤。例如,该计算机可读存储介质可以是只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read

only memory,cd

rom)、磁带、软盘和光数据存储设备等。
[0059]
本技术实施例还提供一种计算机程序产品,当计算机程序产品在上述加密方式的识别装置上运行时,使得上述加密方式的识别装置执行上述方法实施例中的各个功能或者步骤。
[0060]
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0061]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0062]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的
部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0063]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0064]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
[0065]
以上内容,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1