数字指纹压缩模块生成器及其应用的制作方法

文档序号:7697729阅读:167来源:国知局

专利名称::数字指纹压缩模块生成器及其应用的制作方法
技术领域
:本发明属于信息安全
技术领域
,特别是涉及一种数字指纹压縮模块生成器及其应用。
背景技术
:数字指纹在数字签名、完整性检验、身份认证和动态口令鉴别等现代信息安全技术中被广泛应用,对于输入的任意长度消息序列,输出固定长度的数字指纹值,这种数据压縮机制是数字指纹的关键,因此用于实现数字指纹生成的压縮部件被称为数字指纹压縮模块。目前使用最广泛的数字指纹生成方式是MD系列和SHA系列,它们都是基于逻辑运算直接构造的,近年来,对这类数字指纹标准的分析研究取得了重大突破,MD5已不安全,虽然还未找到SHA-1的碰撞,但其计算复杂度已经约减到263次。数字指纹机制的设计主要分为三类:(l)直接构造法。19卯年Rivest设计了MD4,它不基于任何假设及密码体制,而是采用大量的逻辑运算,从此这种直接构造法受到人们的广泛青睐,但近年来的分析结果使人们对这种构造法本身的安全性产生了严重质疑。(2)基于分组密码的构造法,其安全性依赖于分组密码的安全性。(3)基于难解性问题的构造法。利用一些难解性问题诸如离散对数、因子分解等问题可构造数字指纹机制,在合理的假设下是可证明安全的,但其效率低,缺乏实用性。其中基于多变元多项式方程组的难解性构造数字指纹机制,与基于其它困难性问题设计的数字指纹机制相比,它的效率主要取决多变元多项式的稀疏程度,因此可以权衡安全性和实用性来控制多变元多项式方程组的稀疏度,以满足用户的需求。目前,基于有限域上多变元多项式方程组的难解性构造的数字指纹算法主要有采用Kipnis-Shamir立方多项式形式来构造数字指纹算法的压縮函数,但压縮函数的形式过于复杂,且由此导出的压縮函数随机性较差;其次是采用有限域上两个多变元二次多项式方程组的组合,前一个采用超定二次方程进行扩张,后一个采用二次不定方程进行压縮,这种结构不容易控制组合方程的稀疏性,因此效率很差。由于这些技术缺陷,尚无真正安全高效的数字指纹机制被提出,相应的数字指纹压縮模块自动生成技术和应用技术也未出现。
发明内容本发明目的在于针对现有技术的不足,提出一种数字指纹压縮模块生成器及其应用。本发明所提供数字指纹压縮模块生成器的技术方案为包括有参数设定模块和压縮函数生成模块;所述参数设定模块用于设定数字指纹压縮模块的相关参数,相关参数包括有数字指纹压縮模块输出的数字指纹长度m、有限域《大小及多变元多项式方程组中每个方程的次数J和项数r,其中数字指纹长度附="&,《=2、^为正整数;所述压縮函数生成模块用于在有限域巧上随机生成满足上述相关参数的一个多变元多项式方程组,将该多变元多项式方程组作为数字指纹压縮模块;所生成的多变元多项式方程组内所有方程的最高项次数必须大于2,设定多变元多项式方程组中的方程个数为w,根据"设定多变元多项式方程组中的变元个数为/,其中。而且,多变元多项式方程组的变元个数/设定为2w。基于以上技术方案,本发明还提供了应用该数字指纹压縮模块生成器实现的数字指纹生成方法,包括以下步骤,步骤l,填充报文,将填充后的报文分为丄个分组M。,…,Mw,其中任一分组M,的长度为m位;再将每个分组^T。,…,M,—,分别编码成有限域^上一个w维向量;步骤2,设定一个w维向量作为初始向量/F;步骤3,采用数字指纹压縮模块生成器所生成的数字指纹压縮模块对报文逐步进行分组压缩,压縮过程从初始向量/r采用用户密钥K^加密后,与分组M。的级联开始;按分组号逐步执行将第"l步的状态变量CJ^和分组Mm级联起来作为第/步的状态变量Cr,.,B口CF^CF(CFwP4i),其中CF为数字指纹压縮模块,C^lliWM表示将有限域《上两个"维向量级联为一个2"维向量;最后第丄步中,状态变量CKW和分组级联得到状态变量Cf^步骤4,将状态变量CJ^作为数字指纹输出。而且,所述用户密钥《^采用有限域《上的一个w维向量,通过初始向量/K与用户密钥《^逐位异或实现加密。而且,当数字指纹机制不需带密钥时,将用户密钥《^设为w维零向量。本发明还提供了应用该数字指纹压縮模块生成器实现的数据完整性检测方法,首先将数字指纹压縮模块生成器所生成数字指纹压縮模块整体作为数据发送方和数据接收方共同的私钥;数据发送方根据私钥生成数据文件的数字指纹,并将数据文件和数字指纹一起发送给数据接收方;数据接收方收到数据发送方发送的数据文件和数字指纹后,用自己的私钥生成所接收到数据文件的数字指纹,并与收到的数字指纹相比较,若两个数字指纹相同,则判断数据文件未被篡改,否则数据文件已被篡改;其中数据发送方和数据接收方根据私钥生成数字指纹包括以下步骤,步骤一,将数据文件作为报文进行填充,将填充后的报文分为丄个分组M。,…,Jl^—,,其中任一分组M,的长度为m位;再将每个分组M。,…,A^—,分别编码成有限域^上一个w维向量;步骤二,设定一个w维向量作为初始向量/F;步骤三,采用数字指纹压縮模块生成器所生成的数字指纹压縮模块对报文逐步进行分组压縮,压缩过程从初始向量/F与分组M。的"维向量级联开始;按分组号逐步执行将第/-1步的状态变量CFm和分组级联起来作为第/步的状态变量CK.,S卩CT尸CF(CTmIIA^),其中CF为数字指纹压縮模块,CTmIIM4表示将有限域《上两个w维向量级联为一个2w维向量;最后第丄步中,状态变量CT^和分组Mw级联得到状态变量步骤四,将状态变量C^作为数字指纹输出。本发明具有多项优点(l)安全性基于一个公认的数学难题,因此能够抵御碰撞分析等攻击方法。(2)生成的数字指纹长度可变,支持任意位长度的消息摘要。(3)引入了整体随机性,能够随机选择数字指纹压縮模块而不是随机化消息本身。(4)设计自动化,用户可根据实际需求输入参数,数字指纹压縮模块生成器就能根据参数构造满足其特定要求的数字指纹机制。(5)用户根据特定需要选择数字指纹机制,从而最大限度节省了计算资源。尤其是与目前国外其他基于多变元的数字指纹生成方法相比,算法空间更大、效率和安全性更高且构造结构简单易于实现。图1为本发明实施例的数字指纹生成方法示意图。图2为有限域GF(16)上的存储空间示意图;图3为有限域GF(256)上的存储空间示意图。具体实施例方式本发明提出的数字指纹压縮模块生成器包括有参数设定模块和压縮函数生成模块;包括有参数设定模块和压缩函数生成模块;所述参数设定模块用于设定数字指纹压縮模块的相关参数,相关参数包括有数字指纹压缩模块输出的数字指纹长度m、有限域&大小及多变元多项式方程组中每个方程的次数c/和项数r,其中数字指纹长度w-"A,《=2、A为正整数;所述压縮函数生成模块用于在有限域《上随机生成满足上述相关参数的一个多变元多项式方程组,将该多变元多项式方程组作为数字指纹压縮模块;所生成的多变元多项式方程组内所有方程的最高项次数必须大于2,设定多变元多项式方程组中的方程个数为w,根据W设定多变元多项式方程组中的变元个数为/P,其中/7>"。上述数字指纹压縮模块生成器可以通过硬件或软件方法实现。参数设定模块可以提供存储部件和输入部件,可以在存储部件中存储预设参数值,或者由用户通过输入部件选择参数值。设定好的相关参数的参数值由参数设定模块输入到压縮函数生成模块后,压縮函数生成模块就会自动构造符合输入参数值的数字指纹压縮模块。因此这种数字指纹压縮模块生成器可以用支持用户设计自动化,用户能够根据实际需要选择参数值,方便地获取所需数字指纹压縮模块。具体实施时,数字指纹压縮模块生成过程可以为(1)用户指定数字指纹压縮模块的参数有限域^大小、输出数字指纹长度mbit及压縮函数每个方程的次数J和项数r,其屮^=2、因此,数字指纹压縮模块生成器的参数接收模块可以设置一个四元组Ot,m,A。,其所有的参数均为正整数,其中A决定有限域巧的大小,由于有限域上乘法运算较为耗费计算资源,在工程设计中有限域通常取得较小,这样实施时可以将有限域上的乘法运算作预运算造表存储,于是将有限域上的乘法运算转化为查表运算以提高运算效率,所以取A《8较为适宜;由于计算机编码中常以字节为单位,结合安全性,取附^160且为8的倍数;次数d理论上可取任意正整数,在需保证效率的情况下,它与项数r成反比。具体实施时,基本域也可以取大域如GF(2")等,但此时有限域上的乘法比较复杂,一般推荐使用GF(24)或GF(2S),结合其他基于MQ问题的密码体制。多变元多项式方程组中每个方程项数一般取50200为宜。假如在安全性要求相对较低的领域如低廉智能卡上使用,项数还可取得更为稀疏。当多变元多项式方程组采用三次以上的多项式时,项数可以适当减少。(2)利用随机数生成器在有限域《上随机生成满足上述条件的多变元多项式方程组作为数字指纹压縮模块。该多变元多项式方程组由^上2"个变元及"个方程组成,每个方程的形式如下上述方程中f次项每一项的选择过程随机选择4-,及6,,其中4_,€《,6,.e,/e。下面以输入参数A=8,m=256,r=lOO,d=3的齐次多项式为例,介绍数字指纹压縮模块生成器的实现过程,用C语言伪代码表示为structTE腿S3rd{〃用四个元素的结构体存储每个二次项intcoefficient;〃三次项的系数intXI—suffix;〃三次项第一个变元的下标intX2—suffix;//三次项第二个变元的下标intX3_suffix;//三次项第三个变元的下标structTE脂S3rd*next;};for(j=0;j<256/8;j++)for(i=0;i<100;i++)(〃压縮模块多项式方程组采用动态链表存储和调用,其中每个结点表〃示一个三次项,用结构体TERMS3rd表示。get_random(R)表示生〃成一个0到R-l之间的随机数。temp=(TE腿S3rd*)malloc(sizeof(TERMS3rd));temp-〉coefficient=get—random(256);temp->XI—suffix=get_random(256/8x2);temp->X2_suffix=get_random(256/8x2);temp->X3—suffix=get—random(256/8><2);temp->next—NULL;11通过数字指纹压縮模块生成器得到的数字指纹压縮模块,也可以通过硬件或软件以及软硬件相结合的方法提供使用。作为信息安全技术中的常用模块,可固化为数据协处理器件,以电子器件的形式提供组装使用。数字指纹压縮模块起到数据压縮作用,所以多变元多项式方程组中的变元个数p〉"。而最优选的情况,就是取p为2w。这样数字指纹生成过程简洁高效。本发明提供了相应技术方案,参见图l:步骤1,填充报文,将填充后的报文分为Z个分组M。,…,M^,,其中任一分组M,的长度为m位,;再将每个分组M。,…,M^1分别编码成有限域《上一个"维向量;图1中报文的长度原为/:bit,为了能够分组进行压縮,需要在长度不规律的报文后填充一个1和若干个0及数值《的相应二进制串^,若报文的长度大于2"bit,则K-夂mod264,具体填充方式为在报文后填充一个1,Kmodm-65个0,后64位填充&,&不足64位时高位补0。其中若报文长度K刚好被w整出,则填充0的个数为(m-65)个。填充后报文长度变为丄xwbit。其中L为报文分组的个数。步骤2,设定一个w维向量作为初始向量/K;初始向量/K可以用户随意设定,也可预选存储到数字指纹压縮模块中。步骤3,采用数字指纹压縮模块生成器所生成的数字指纹压縮模块对报文逐步进行分组压縮,压縮过程从初始向量/F采用用户密钥《e;;加密后,与分组M。的"维向量级联开始;按分组号逐步执行将第Z-1步的状态变量和分组Mm级联起来作为第/步的状态变量CT,,即CK-CF(CFMP4i),其中CF为数字指纹压縮模块,CP^IiWM表示将有限域《上两个"维向量级联为一个2"维向量;最后第丄步中,状态变量CTw和分组Tl^w级联得到状态变量CTZ;具体的流程就是第1步,Cy产CF(CTollAfo);第2步,第/—l步,CR-fC^CCF^IM-s);第Z步,CT严CF(CKMll7k^);其中每步都是将有限域《上两个"维向量级联为一个2"维向量,然后通过数字指纹压縮模块压制成l个"维向量,再参与下一步级联压縮。该过程可以通过计算机程序实现,可用C语言伪代码表示为CT。=/r/^;/;//逐位异或运算for(z'=l;zW++)CF;;CF(CFmIIM》;本发明创造性地提出了一种数字指纹机制中引入用户密钥的方法。普通数字指纹生成是不采用密钥的,但本发明引入用户密钥7&少后,可以同时支持消息认证功能。具体实施时,用户密钥K^可以采用有限域^上的一个"维向量,通过初始向量/F与用户密钥尺^逐位异或实现加,实现简单方便。并且可以选择带密钥和不带密钥两种情况,在不带密钥时,只需将用户密钥ife7设为w维零向量即可。步骤4,将状态变量CI^作为所生成的数字指纹输出。具体实施时,可以将数字指纹压縮模块生成和数字指纹生成这两种过程结合起来,提供针对客户需求的全自动数字指纹订制服务。用户在输入参数值后,数字指纹压縮模块自动生成,然后处理用户所提供报文,输出数字指纹。数据完整性检测是数字指纹技术的一项重要应用。现有数据完整性检测中为了进行信息保护,数据发送方在为数据文件生成数字指纹后,还需加密后进行传送。数据接收方接收到数据文件后,首先解密,然后对比数字指纹。而本发明基于具有整体随机性的数字指纹压缩模块,提供了更简便地检测方案首先将数字指纹压縮模块生成器所生成数字指纹压縮模块整体作为数据发送方和数据接收方共同的私钥;数据发送方根据私钥生成数据文件的数字指纹,并将数据文件和数字指纹一起发送给数据接收方;数据接收方收到数据发送方发送的数据文件和数字指纹后,用自己的私钥生成所接收到数据文件的数字指纹,并与收到的数字指纹相比较,若两个数字指纹相同,则判断数据文件未被篡改,否则数据文件己被篡改。也就是说,数字指纹压縮模块既用于生成数字指纹,也直接作为私钥使用。数据完整性检测过程中,数据接收方和数据发送方进行数字指纹生成不需引入用户密钥《W,步骤如下步骤一,将数据文件作为报文进行填充,将填充后的报文分为丄个分组iV/。,…,A^一,其中任一分组M,的长度为W位;再将每个分组M。,…,Mw分别编码成有限域《上一个"维向量;步骤二,设定一个W维向量作为初始向量/F;步骤三,采用数字指纹压縮模块生成器所生成的数字指纹压縮模块对报文逐步进行分组压縮,压缩过程从初始向量/F与分组^f。的n维向量级联开始;按分组号逐步执行将第z'-1步的状态变量CFm和分组Mm级联起来作为第f步的状态变量C^,即CT产CF(CJ^HM—,),其中CF为数字指纹压縮模块,CFmIIM.,表示将有限域巧上两个"维向量级联为一个2"维向量;最后第Z步中,状态变量CF^和分组Mw级联得到状态变量CFi;步骤四,将状态变量C^作为数字指纹输出。为了方便理解本发明所提供技术方案的效果,以下从安全性理论分析和实验两方面进行说明以供参考(一)安全性理论有限域上二次多变元多项式方程组的求解问题称为MQ问题,它是一个公认的NP困难性问题,当多变元多项式方程组的次数大于2时,一般称之为MP问题,求解MP问题比求解MQ问题更难,因此也是NP困难性问题。本发明中数字指纹压縮模块的压縮机制可以表示为其中《=2、x=(v,x2)eif,,(jc)是在《上随机选择的多变元多项式方程组(次数大于2)。从理论上可证明CF(x)满足(l)是抗逆向攻击的;(2)是弱无碰撞的;(3)是强无碰撞的。利用CF(;c)和Merkle-Damgard结构构造的新数字指纹算法,也满足上述三个条件,理论推导和证明从略。求解多变元多项式方程组的传统方法是构造Gr6bner基的Buchberger算法及其变型F4、F5。它的基本思想是先把单项式排序,然后根据适当的多项式系数合并两个方程来约去最高位的单项式。重复此过程直到所有方程中的同一个变量被约去,最后解余下改变过的多项式方程组。但遗憾的是,实际操作中剩余单项式的次数在消元过程中急剧增加,因此即使对于一个中等数量的未知量,此算法的时间复杂度都巨大而不可行。在最坏的运行情况下,可知Buchberger的算法要运行两倍指数时间。Shamir等人证明了当MQ方程是超定时,解方程的复杂度大大降低,并提出了求解超定MQ问题的XL算法,Courtois等提出了改进的XL系列算法如XSL算法等,Bardet等给出了求解超定MQ的复杂度。Courtois等指出如果MQ是稀疏的,且具有一个规则的结构,那么问题就很容易解决,但对于一般的稀疏MQ问题并不十分有效。Murphy等定义了一个新的分组密码BES,只使用GF(2S)上的简单代数结构,并且与AES有相同的信息空间和密钥空间,由此得到的一个重要结果是:AES-128加密体制可以描述成一个GF(2S)上的非常稀疏的超定多元二次方程组:方程数量5248个(其中二次方程3840个,线性方程1408个),3968个变元,组成非零项7808个,它的解就是AES的密钥,上述方程组的理论项数大约为235,可见其代数表达式的稀疏程度,但目前代数攻击AES-128最好的复杂度超过2,,大大超过穷尽搜索密钥的复杂度。TangXJ等中引入了Dixon结式,并提出了一种新的求解MQ问题的DR算法,与上述文献类似,只对特殊的稀疏方程有效。JintaiDing等较为详细的讨论了稀疏MQ问题,并在大型工作站作了测试,实验结果表明,目前求解MQ问题的方法对方程的项数不太敏感。从目前的研究进展来看,域《(《>2)上随机稀疏MQ问题仍然是难解的。因此本发明所提供数字指纹压縮模块为随机选择的高次稀疏方程时结论仍然成立。不过选择时应该谨慎,尽量避免具有特殊规则的稀疏多项式方程。(二)实验说明,从三个方面进行分析压縮效率分析本发明中基本域《一般可取《=24或9=28,压缩过程中主要运算为巧上的乘法运算和加法运算,因此实现效率较高,也易于硬件实现。由于基本域《较小,因此可预运算并存储其乘法表,乘法运算与AES相仿均通过査表完成。通过随机选择指定项数、基本域和数字指纹长度的来构造新压縮机制(以下简称MPH,以"一数字指纹长度值"为后缀进行标识)。实验环境为InterCore2P86002.4GHz、2G内存,实现平台为WindowsXPVisuaIC++6.0,实验中多变元多项式方程组采用有限域上多变元三次齐次多项式。表l、表2给出了MPH与现有安全数字指纹机制SHA系列相应输出长度比较的测试结果,Terms表示压缩函数每个方程的项数,吞吐量MB/sec。表1和表2可以看出,MPH的实现效率主要取决于压縮函数的项数,当Terms-lO时MPH与SHA的效率大致相仿,当Terms-lOO时MPH效率大约只有SHA的十分之一。其原因为MPH的效率主要取决于基本域上的乘法查表运算,d次多变元多项式每一项最多需要d次査表运算,假设MPH压缩函数的方程个数为",则MPH的每轮压縮运算共需查表次数为dxwx7^T^,因此MPH的效率与项数大致为线性关系。表1GF(16)上MPH与SHA系列的效率比较MPHoverGF(16)Te應--MPH掘MPH-256MPH-384MPH-512158.31155.21448.94648.676236.80534.75830.54730.153517,52017.44317.43717.341109.3789.0589.0339.031601.671.6051.5971.5811000.9620.9550.9470.9405000.1850.1780.1480.126SHA14.41813.0616.9246.51917表2GF(256)上MPH与SHA系列的效率比较<table>tableseeoriginaldocumentpage18</column></row><table>存储空间分析MPH的存储包括两个部分:基本域上的乘法表和压縮机制。乘法表的大小取决于基本域《,压縮机制的存储大小与方程的个数"、方程的次数d及其每个方程的项数有关。MPH的存储空间S(单位:bit)可表示为s(",《,^:r^7w)="(iog〗+diog〗").renw+(《一i)2.iogg参见附图2和附图3,图中分别提供了有限域GF(16)、GF(256)上MPH-160、MPH-256、MPH-384、MPH-512的存储空间,横坐标为项数,竖坐标为存储空间,单位为^>。扩散与混淆性质统计分析为了隐藏明文消息的冗余度,Shannon提出了混乱与散布的概念,加密体制中要求充分且均匀地利用密文空间,数字指纹生成方式同样如此,要尽量做到相应消息串与对应的数字指纹不相关,而对于结果的二进制表示,每bit只有O或l两种可能,因此理想数字指纹的散布效果应该是初值的细微变化将导致结果的每bit都以50o/。的概率变化。考察在消息串发生lbit变化的情况下,引起数字指纹结果的变化比特数为万。定义平均变化比特数》、平均变化概率i3、万的均方差A5、P的均方差AP分别为W台m其中W为统计次数,《为第/次测试变化的比特数,w为数字指纹长度。每次测试方法:在消息空间中随机选取一段消息进行MPH压縮,然后改变消息串lbit得到另一数字指纹结果,比较两个结果得到变化的比特数为5,。以6(256)上的]^11-160为例,其中统计次数N^1000。表3GF(256)上MPH-160的性能测试Terms》z(5尸/%1073.971,6246.2318.605075.921.3147.4413.7810076.740.9648.375.2120078.46U549.285.63由表3可知,MPH-160的》和尸非常接近理想状况下80和50。/o的变化概率,相当充分均匀地利用了消息空间,消息的任何扰动,都使得数字指纹结果在统计上产生接近等概率的均匀分布,从统计效果上看,保证了攻击者在已知一些消息数字指纹对的情况下无法得到任何数字指纹分布的有用信息。而Afi与AP越接近于零,则表明压縮机制对消息的混淆与扩散性质的稳定性越好,表3表明MPH混淆扩散性的稳定性较差;稳定性大致与压縮函数项数成正比。因此在压缩函数的随机选取过程可以增加一些性能控制因子如AP,以筛选出密码性质良好的方程来构造MPH。通过安全性分析和实验分析表明,本发明所提供技术方案在效率和性能方面与现有技术具有可比性,在安全性方面优于现有技术,且易于软硬件实现,可作为一种实用的安全数字指纹机制。权利要求1.一种数字指纹压缩模块生成器,其特征在于包括有参数设定模块和压缩函数生成模块;所述参数设定模块用于设定数字指纹压缩模块的相关参数,相关参数包括有数字指纹压缩模块输出的数字指纹长度m、有限域Fq大小及多变元多项式方程组中每个方程的次数d和项数r,其中数字指纹长度m=nk,q=2k,k为正整数;所述压缩函数生成模块用于在有限域Fq上随机生成满足上述相关参数的一个多变元多项式方程组,将该多变元多项式方程组作为数字指纹压缩模块;所生成的多变元多项式方程组内所有方程的最高项次数必须大于2,设定多变元多项式方程组中的方程个数为n,根据n设定多变元多项式方程组中的变元个数为p,其中p>n。2.利用权利要求1所述的数字指纹压縮模块生成器,其特征在于多变元多项式方程组的变元个数p设定为2"。3.利用权利要求2所述数字指纹压縮模块生成器实现的数字指纹生成方法,其特征在于包括以下步骤,步骤1,填充报文,将填充后的报文分为I个分组M。,…,M^,其中任一分组M,.的长度为附位;再将每个分组^T。,…,Mw分别编码成有限域《上一个"维向量;步骤2,设定一个w维向量作为初始向量/F;步骤3,采用数字指纹压缩模块生成器所生成的数字指纹压縮模块对报文逐步进行分组压縮,压縮过程从初始向量JF采用用户密钥X^加密后,与分组M。的级联开始;按分组号逐步执行将第Z-1步的状态变量CT,,和分组Mw级联起来作为第/步的状态变量CK,,即Cr产CF(CKwP40,其中CF为数字指纹压縮模块,CFMP^表示将有限域《上两个w维向量级联为一个2n维向量;最后第Z步中,状态变量CT^和分组级联得到状态变量CTi;步骤4,将状态变量C^作为数字指纹输出。4.如权利要求3所述的数字指纹生成方法,其特征在于所述用户密钥A^r采用有限域&上的一个"维向量,通过初始向量/F与用户密钥/Te/逐位异或实现加密。5.如权利要求4所述的数字指纹生成方法,其特征在于当数字指纹机制不需带密钥时,将用户密钥i^y设为"维零向量。6.利用权利要求1所述数字指纹压縮模块生成器实现的数据完整性检测方法,其特征是首先将数字指纹压縮模块生成器所生成数字指纹压縮模块整体作为数据发送方和数据接收方共同的私钥;数据发送方根据私钥生成数据文件的数字指纹,并将数据文件和数字指纹一起发送给数据接收方;数据接收方收到数据发送方发送的数据文件和数字指纹后,用自己的私钥生成所接收到数据文件的数字指纹,并与收到的数字指纹相比较,若两个数字指纹相同,则判断数据文件未被篡改,否则数据文件已被篡改;其中数据发送方和数据接收方根据私钥生成数字指纹包括以下步骤,步骤一,将数据文件作为报文进行填充,将填充后的报文分为Z个分组M。,…,M^,,其中任一分组M,的长度为m位;再将每个分组M。,…,M^,分别编码成有限域《上一个"维向量;步骤二,设定一个W维向量作为初始向量/F;步骤三,采用数字指纹压縮模块生成器所生成的数字指纹压縮模块对报文逐步进行分组压縮,压缩过程从初始向量/F与分组Af。的"维向量级联开始;按分组号逐步执行将第i-1步的状态变量crH和分组iK,,级联起来作为第/步的状态变量cf,,即cFrCF(a^iiMJ,其中c尸为数字指纹压縮模块,ct,.,iimh表示将有限域《上两个"维向量级联为一个2"维向量;最后第丄步中,状态变量CFw和分组Mw级联得到状态变量CF力;步骤四,将状态变量c^作为数字指纹输出。全文摘要本发明提供了数字指纹压缩模块生成器,以及利用所生成的数字指纹压缩模块来构造数字指纹的方法,并提出相应的一种数据完整性检测方法。本发明建立的数字指纹机制主要优点是安全性高、输出值长度可变、引入了数字指纹生成的整体随机性;支持根据用户实际需求自动化构造满足其特定要求的数字指纹机制;节省计算资源。并且,在效率和性能方面与目前广泛使用的数字指纹机制也具有可比性。文档编号H04L9/30GK101478394SQ200910060508公开日2009年7月8日申请日期2009年1月13日优先权日2009年1月13日发明者张焕国,王后珍申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1