首页> 中国专利> 一种结合数据局部性特征的频率分析方法

一种结合数据局部性特征的频率分析方法

摘要

本发明属于密码学领域,公开了一种结合数据局部性特征的频率分析方法,在获取的最新版本的密文数据块序列C与之前备份的明文数据块序列M相关性很低的情况下,依然能够获得较高的破译率;将明文数据块和密文数据块根据频率大小进行排名并将排名前u的明密文分别按名次进行配对,获得u组明密文对,再找到与其中一对明密文对相邻的明文数据块和密文数据块,将找出的明文数据块和密文数据块分别按频率排序,获得排名前v的明密文对,将两次获得的明密文对均加入到破译集合T和迭代集合G,将迭代集合G中的明密文对进行重复寻找相邻数据块的步骤,直至迭代集合为空集,最后形成的破译集合即为最终结果。

著录项

  • 公开/公告号CN106685636A

    专利类型发明专利

  • 公开/公告日2017-05-17

    原文格式PDF

  • 申请/专利权人 电子科技大学;

    申请/专利号CN201710174177.7

  • 发明设计人 李经纬;秦川;李柏晴;张小松;

    申请日2017-03-22

  • 分类号H04L9/00;

  • 代理机构成都弘毅天承知识产权代理有限公司;

  • 代理人王正楠

  • 地址 611731 四川省成都市高新区(西区)西源大道2006号

  • 入库时间 2023-06-19 02:09:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-08

    授权

    授权

  • 2017-06-09

    实质审查的生效 IPC(主分类):H04L9/00 申请日:20170322

    实质审查的生效

  • 2017-05-17

    公开

    公开

说明书

技术领域

本发明涉及密码学领域,特别是一种结合数据局部性特征的频率分析方法。

背景技术

重复数据删除(简称数据去重)技术通过识别数据流中的冗余,只传输或存储唯一数据,而使用指向已存储数据的指针替换重复副本,以达到节省传输带宽或存储空间的目的。在支持数据去重的存储系统(统称为数据去重系统)中,去重后的任意数据块都被一个或多个文件引用,而文件则以指向这些数据块的指针的集合形式存储。这种文件共用数据块的存储模式强调了数据块的敏感性,因为一个数据块的泄漏可能扩散影响到共用这个数据块的所有文件。

为了保护数据隐私,一种普遍的方法是数据加密。在传统的安全加密方式下,每个用户应具有不同的密钥,这样不同用户之间的相同数据会被加密为不同密文,难以被执行去重操作。现有技术是采用收敛加密来加密数据块:收敛加密基于数据块的内容来产生加密密钥(例如数据块的哈希值),可把相同的明文数据块加密为相同的密文数据块,从而能够在保护数据隐私的基础上支持数据密文的去重。另一方面,由于收敛加密将相同的数据加密为了相同的密文(即为确定性加密),不可避免地会泄漏数据块的频率信息,例如如果一个明文数据块出现了n次,则它对应的密文数据块也将出现n次。

传统频率分析是一种古典的密码分析方法,可用于破解确定性加密(例如替换密码)。应用频率分析来破译密文去重系统主要包括如下两个步骤:

步骤1,分别将已知备份M中的明文数据块和目标备份C中的密文数据块进行频率排序;

步骤2,将C中的每个密文数据块映射为M中与其具有相同名次的明文数据块。

传统频率分析方法在密文去重系统中的破译效果有限(通过基于真实数据集的实验分析,仅能正确破译0.0001%的数据块),这主要出于两方面原因:①由于M可能是一个较早时间点(例如若干个月之前)的备份,其中的数据块与最新版本备份中的数据块内容存在差异,会打乱M和C中数据块频率排序的对应关系,导致错误的破译;②在M(和C)的频率排序中可能存在许多具有相同频率的明文数据块(和密文数据块),频率分析方法难以正确对应这些具有相同频率的明文数据块(和密文数据块)。

lp优化方法是最新提出的一种基于组合最优化的频率分析方法,已经被应用于破译确定性加密;然而,通过实验分析,传统频率分析方法能够达到与lp优化方法相同的破译效果;最新研究指出lp最优化方法实质上与传统频率分析方法是等价的。

发明内容

基于以上技术问题,本发明提供了一种结合数据局部性特征的频率分析方法,在获取的最新版本的密文数据块序列与之前备份的明文数据块序列相关性很低的情况下,依然能够获得较高的破译率。

本发明采用的技术方案如下:

一种结合数据局部性特征的频率分析方法,所述频率分析方法包括以下步骤:

步骤1:根据最新版本加密备份时产生的密文数据块序列C和之前备份时产生的未加密的明文数据块序列M判断攻击模式,所述攻击模式包括唯密文攻击模式和已知明文攻击模式;

步骤2:在所述唯密文攻击模式下,将明文数据块序列M中的明文数据块Mi根据出现频率高低进行排序并取出前u个明文数据块将密文数据块序列C中的密文数据块Cj根据出现频率高低进行排序并取出前u个密文数据块将k值相同的明文数据块和密文数据块配对,得到u组明密文对,将所述u组明密文对加入到破译集合T和迭代集合G;

在所述已知明文攻击模式下,已知密文数据块序列C中的x个密文数据块和与所述密文数据块对应的明文数据块,得到x组明密文对,将所述x组明密文对加入到迭代集合G;

其中,k代表频率排名的序号且k=1,2,…,u,i代表明文数据块的序号,j代表密文数据块的序号;

步骤3:从迭代集合G中取出一组明密文对从明文数据块序列M中提取出与明文数据块左相邻的所有明文数据块,构成左相邻明文集合从明文数据块序列M中提取出与明文数据块右相邻的所有明文数据块,构成右相邻明文集合从密文数据块序列C中提取出与密文数据块左相邻的所有密文数据块,构成左相邻密文集合从密文数据块序列C中提取出与密文数据块右相邻的所有密文数据块,构成右相邻密文集合

步骤4:将左相邻明文集合中的明文数据块根据与同时出现的频率高低进行排名,将左相邻密文集合中的密文数据块根据与同时出现的频率高低进行排名,分别将两次排名前v的明文数据块和密文数据块取出并按相同名次进行配对,得到v组明密文对;将右相邻明文集合中的明文数据块根据与同时出现的频率高低进行排名,将右相邻密文集合中的密文数据块根据与同时出现的频率高低进行排名,分别将两次排名前v的明文数据块和密文数据块取出并按相同名次进行配对,得到v组明密文对;最终得到2v组明密文对,剔除在破译集合T中出现过的明密文对,将所述2v组明密文对中剩余的明密文对加入到破译集合T和迭代集合G;

步骤5:重复步骤3和步骤4,直至迭代集合G为空集,最终输出的破译集合T中的所有明密文对为所破译的密文数据块。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

在最新版本加密备份时产生的密文数据块序列和之前备份时产生的未加密的明文数据块序列相关性很小的前提下,利用明文数据块破译密文数据块,亦能获得较大的破解率,这样有助于有效利用资源,实现数据破译的目的;通过优化u和v的参数值,即可调节频率分析方法中明密文对的选取方式,提高破译的正确率,具有很强的实用性;在实际分析中,迭代集合可能随着备份大小的增加变得非常大,会耗尽储存空间,可进一步加入一个参数w合理限制迭代集合的大小,节约空间且使该破译方法变得灵活。

附图说明

图1是本发明的频率分析的系统流程图;

图2是实施例1的算法实现图;

图3是实施例2中破译流程图;

图4是实施例3中唯密文攻击模式下基于FSL真实数据集的结果图;

图5是实施例3中唯密文攻击模式下基于虚拟数据集的结果图;

图6是实施例3中已知明文攻击模式下的结果图。

具体实施方式

本说明书中公开的所有特征,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。

下面结合附图对本发明作详细说明。

一种结合数据局部性特征的频率分析方法,所述频率分析方法包括以下步骤:

步骤1:根据最新版本加密备份时产生的密文数据块序列C和之前备份时产生的未加密的明文数据块序列M判断攻击模式,所述攻击模式包括唯密文攻击模式和已知明文攻击模式;

步骤2:在所述唯密文攻击模式下,将明文数据块序列M中的明文数据块Mi根据出现频率高低进行排序并取出前u个明文数据块将密文数据块序列C中的密文数据块Cj根据出现频率高低进行排序并取出前u个密文数据块将k值相同的明文数据块和密文数据块配对,得到u组明密文对,将所述u组明密文对加入到破译集合T和迭代集合G;

在所述已知明文攻击模式下,已知密文数据块序列C中的x个密文数据块和与所述密文数据块对应的明文数据块,得到x组明密文对,将所述x组明密文对加入到迭代集合G;

其中,k代表频率排名的序号且k=1,2,…,u,i代表明文数据块的序号,j代表密文数据块的序号;

步骤3:从迭代集合G中取出一组明密文对从明文数据块序列M中提取出与明文数据块左相邻的所有明文数据块,构成左相邻明文集合从明文数据块序列M中提取出与明文数据块右相邻的所有明文数据块,构成右相邻明文集合从密文数据块序列C中提取出与密文数据块左相邻的所有密文数据块,构成左相邻密文集合从密文数据块序列C中提取出与密文数据块右相邻的所有密文数据块,构成右相邻密文集合

步骤4:将左相邻明文集合中的明文数据块根据与同时出现的频率高低进行排名,将左相邻密文集合中的密文数据块根据与同时出现的频率高低进行排名,分别将两次排名前v的明文数据块和密文数据块取出并按相同名次进行配对,得到v组明密文对;将右相邻明文集合中的明文数据块根据与同时出现的频率高低进行排名,将右相邻密文集合中的密文数据块根据与同时出现的频率高低进行排名,分别将两次排名前v的明文数据块和密文数据块取出并按相同名次进行配对,得到v组明密文对;最终得到2v组明密文对,剔除在破译集合T中出现过的明密文对,将所述2v组明密文对中剩余的明密文对加入到破译集合T和迭代集合G;

步骤5:重复步骤3和步骤4,直至迭代集合G为空集,最终输出的破译集合T中的所有明密文对为所破译的密文数据块。

本发明的工作原理是:由于数据备份保留了绝大多数数据块的顺序,如每天备份项目的工作进度快照,若一天内的改动较小,则在两次备份之间未被改动的大部分数据块仍将保持相同的内容和顺序,因此如果明文数据块是密文数据块的原始数据,那么明文数据块左边或右边相邻的明文数据块有较大可能性也是密文数据块左边或右边相邻密文数据块的原始数据;将明文数据块和密文数据块根据频率大小进行排名并分别按名次进行配对,获得明密文对,再找到与其中一对明密文对相邻的明文数据块和密文数据块,将找出的明文数据块和密文数据块分别按频率排序,再次获得明密文对,将两次获得的明密文对均加入到破译集合和迭代集合,将迭代集合中的明密文对进行重复寻找相邻数据块的步骤,直至迭代集合为空集,最后形成的破译集合即为最终结果。

下面,结合具体实施例来对本发明做进一步详细说明。

具体实施例

实施例1

本发明的所采用的具体算法如下(如图2所示):

Attack输入M、C和参数(u,v,w),w为迭代集合G中元素的个数(算法第1行);

调用Count函数获得一系列关联数组FM(储存M中各明文数据块的频率)、LM(储存中各明文数据块的频率)、RM(储存中各明文数据块的频率)(算法第2行)、FC(储存C中各密文数据块的频率)、LC(储存中各密文数据块的频率)和RC(储存中各密文数据块的频率)(算法第3行);

利用Attack进一步初始化迭代集合G(算法第4-8行);

若为唯密文攻击模式,选取频率最高的u组明密文对作为G;若为已知明文攻击模式,将泄漏的明密文对作为G;Attack使用G初始化T(算法第9行)。

在迭代过程中(算法第10—22行),Attack每次从G中选取一组明密文对(M,C),调用函数FreqAnalysis破译与M和C相邻的2v组明密文对(算法第11—13行)。

检查这些明密文对是否重复破译,并将新破译的结果加入T中;若G未满,同时将这些结果加入G(算法第14—21行);若G为空集时,停止迭代并最终返回T(算法第23行)。

Count函数统计数据块序列X(C或M)中每个数据块的频率,以及左右相邻数据块同时出现的频率;对于X中的任意数据块Xi,如果Xi不属于FX,Count初始化FX[Xi](算法第27—30行),Count增加Xi在FX中存储的频率;类似地,Count统计Xi的左右相邻数据块Xi-1和Xi+1,分别判断其在LX[Xi]和RX[Xi]中是否需要初始化,并增加同时出现的频率(算法第32—43行)。

传统频率分析方法:FreqAnalysis函数针对明文数据块集合YM和密文数据块集合YC实施频率分析,首先对YM和YC进行频率排序(算法第48—49行),将频率最高的v组明密文根据排名进行配对(算法第50—54行),最后返回这些明密文对作为破译结果(算法第55行)。

实施例2

在唯密文攻击模式下,假设已经获得备份M=M1||M2||M1||M2||M3||M4||M2||M3||M4,并用它来推断最新备份C=C1||C2||C5||C2||C1||C2||C3||C4||C2||C3||C4||C4对应的原始明文数据块;假设真实情况下,Cj的原始明文是Mi,其中i=1,2,3,4,而C5的原始明文数据块不存在M之中。为简单起见,不失一般性地设置u=v=1,w为无穷大。

如图3所示,首先应用传统频率分析方法找到M2和C2是频率最高的明密文对,所以使用(M2,C2)来初始化G并将其添加到T中。接着将(M2,C2)从G中取出并基于它,找到中,(M1,C1)是频率最高的明密文对,同时,在和中,(M3,C3)是频率最高的明密文对;因此,将(M1,C1)和(M3,C3)分别加入到G和T中;进一步对(M1,C1)和(M3,C3)重复这个过程,可以从(M3,C3)的右相邻集合中推测出另一个组明密文对(M4,C4)。

结合数据局部性特征的频率分析方法能够成功推测出四个密文数据块C1、C2、C3和C4所对应的原始明文数据块,与之相对比的是传统频率分析方法仅仅能够成功推测出C2所对应的明文数据块。

实施例3

基于FSL真实数据集与虚拟数据集的具体实施方式:

FSL真实数据集是Stony Brook University收集的9个用户从2011年到2014年共享文件系统镜像的日常备份,每个镜像由所包含的所有数据块(平均长度可为1~128KB)的48位指纹代表。实施例关注FSL数据集中2013年的部分(一共包含147天的备份镜像),选取从2013年1月22日到2013年5月23日均具有完整备份的6个用户的备份镜像,这些镜像包含的数据块的平均长度为8KB,重复数据删除之前共计2.69TB。

虚拟数据集是基于Lillibrige的方法产生的一系列仿真备份镜像。首先,基于真实的Ubuntu 16.04镜像(为1.1GB)产生初始化镜像,并将初始化镜像配置为4.28GB;然后建立镜像序列,其中每一个镜像在上一个镜像的基础上随机选择2%文件,修改这些文件2.5%的内容,并添加10MB新数据;通过循环操作,最终生成包含10个虚拟镜像的镜像序列,每个镜像被认为是在不同时间点对初始Ubuntu 16.04镜像备份的仿真。根据以上参数选择,每个产生虚拟镜像与原始Ubuntu 16.04大约具有10倍~45倍重复比率。

唯密文攻击模式下得出的结果:

选取u=5,v=30,w=200000作为默认参数配置,这是基于以上FSL真实数据集实验得出的最优参数配置。

图4是基于FSL真实数据集的结果。横轴代表分别以2013年1月22日、2月22日、3月22日和4月21日的FSL备份镜像作为已知的数据备份M,目标是破译最新的2013年5月23日的数据备份(作为C);纵轴代表能够成功破译C中数据块的比率=成功破译出的C中的数据块个数/C中数据块总数。1号线是应用传统的频率分析方法得到的结果,最多只能破译C中0.0001%数据;2号线是应用发明内容得到的结果,当最近一次月备份镜像(4月21日)作为M时,能够成功破译C中约17.8%的数据块。此外,还有一个规律是M的备份时间距离C越近,那么破译率越高,这是因为临近备份的M与C对应的明文备份具有更高相似度。

图5是基于虚拟数据集的实施结果。在测试中,每次以通过Ubuntu 16.04镜像公开获得的初始化镜像为M来破译由横轴索引的虚拟镜像序列中的每个镜像(即以虚拟镜像序列中的各镜像作为C)。类似地,纵轴代表能够成功破译C中数据块的比率;3号线是应用传统的频率分析方法得到的结果,最多只能破译C中0.2%数据;4号线是应用发明内容得到的结果,当以第一个虚拟镜像作为C时,能够成功破译其中约12.93%数据。10次备份以后,发明内容的破译率降低到6%,但仍然远远大于传统频率分析方法的破译率(仅有0.0007%)。

已知明文攻击模式下得出的结果:

由于传统频率分析方法的破译效果不理想,这里只分析发明内容在已知明文攻击下的破译效果。在已知明文攻击中,攻击者不仅能够获得C,还能知道C中的一小部分密文数据块所对应的明文数据块,因此定义泄漏率为已知的C中的明密文对个数/C中密文总数。这里的测试考虑平均情况,即选择中间版本的备份作测试(例如在FSL公开数据集中选择4月22日的备份作为M,在虚拟备份序列中选择第5个虚拟备份作为C);由于发现在已知明文攻击下通过迭代能够破译更多的明密文对,调整参数为u=5、v=30和w=500000(上个实验中w=200000),从而将破译的明密文对都囊括到G中。

图6是已知明文攻击下的结果。5号线表示本发明在FSL数据集中的结果,6号线表示本发明在虚拟数据集中结果,将泄露率从0.0%变化到0.2%,即导致显著的破译效果增加。例如,当泄露率从0增加到0.2%时,在FSL数据集和虚拟数据集中,破译率分别从11.09%增长到27.14%和10.34%增长到28.32%。

如上所述即为本发明的实施例。本发明不局限于上述实施方式,任何人应该得知在本发明的启示下做出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号