一种基于LFSR哈希的无条件安全认证方法与流程

文档序号:26308033发布日期:2021-08-17 13:48阅读:295来源:国知局
一种基于LFSR哈希的无条件安全认证方法与流程

本发明涉及信息安全领域,更具体地说,涉及适用于量子安全系统的一种基于lfsr哈希的无条件安全认证方法。



背景技术:

消息认证技术是能一种能够对信息的收发方进行身份鉴别的技术,是保护信息安全的第一道大门,它的任务是识别、验证消息的合法性、真实性以及完整性,在数字签名、保密通信等领域都扮演着不可或缺的角色。传统的认证方案有很多种,如基于rsa,离散对数,椭圆曲线等,但是这些方案仅具有计算安全性,面临着量子计算的威胁。因此,探索一种高效实用且无条件安全的哈希认证方法已经成为信息安全领域中亟待解决的问题。

wegman和carte最早在理论上提出了用全域哈希(universalhash)族构造无条件安全的哈希认证方法,见参考文献:newhashfunctionandtheiruseinauthenticationandsetequality,journalofcomputerandsystemsciences22,265-279,1981。之后经过十几年的不断探索,最后由krawczyk提出了基于lfsr(线性移位反馈寄存器)的无条件安全的哈希函数实现,见参考文献:lfsr-basedhashingandauthentication,springer-verlagberlinheidelberg1994,并且普遍被人们接受。krawczyk提出的基于lfsr的toeplitz矩阵方法,其生成的哈希函数已经被证明是无条件安全的,再结合一次一密技术,确保了通信双方认证信息的无条件安全。人们围绕着如何提高toeplitz矩阵认证方案的效率上提出了一些可行的方法。

krawczyk提出的基于lfsr哈希的无条件安全认证方法需要假设认证双方预先共享的不可约多项式p(x)以及初始状态s是随机选择的,并且需要保证p(x)和s的信息不可以被攻击者直接获得,即这些信息是通过认证双方预先共享的随机密钥串来表达的。定义m为发送的消息,h(m)为lfsr生成的哈希值对应的向量。这种认证方法的无条件的安全性分为两种情况:h(m)=0时,安全性来源于不可约多项式的随机性,h(m)不为零时,安全性来源于toeplitz矩阵的随机性,。为了达到足够的安全性,通常将不可约多项式p(x)的次数定为128。然而,128次不可约多项式共有大约2128/128的数量级,很难全部将它们求出并随机选择一个。因此实际使用的过程中选取的不可约多项式的随机性并不高,实际认证的安全性因此受到限制。

并且,在现有技术中,如文献“周雷,程节,唐世彪.基于toeplitz矩阵的高速qkd系统认证方案研究.量子电子学报,2019,36(3):329-335”和“崔珂.量子密钥分发实时处理技术研究.安徽:中国科学技术大学,2014”中使用的基于lfsr哈希的认证方法中,为了加速计算速度,认证过程通常需要通过设计好的硬件来实现,而硬件结构设计的过程中需要提前固定好不可约多项式p(x)的形式,即p(x)的形式直接体现在了通用硬件的结构中,因此p(x)往往是可以被攻击者所获悉的,这就直接违反了安全性证明的假设。因此在实际的硬件环境中,现有的技术存在安全性的漏洞。



技术实现要素:

要解决的技术问题

针对现有技术中存在的实际使用环境下的安全性问题,本发明提供了一种基于lfsr哈希的无条件安全认证方法,通过在信息的比特串后面加上时间戳,可以在不改变有效信息内容的情况下剔除哈希值为零的情况,它可以实现在p(x)被公开的前提下依然可以获得无条件安全性,和现有技术相比,弥补了基于lfsr哈希的认证在实际使用环境中的安全性。

技术方案

本发明的目的通过以下技术方案实现。

一种基于lfsr哈希的无条件安全认证方法,所述方法包括:

步骤1,发送方和接收方共享第一比特串和第二比特串;

步骤2,生成待认证消息,所述待认证消息由内容主体和时间戳以及其他相关信息(如流水号等)组成,所述时间戳可以由当前时刻对应的周期性时钟决定,所述时间戳以二进制比特串形式生成;

步骤3,进行哈希运算,发送者用第一比特串和不可约多项式生成托普利兹矩阵,并利用所述托普利兹矩阵分块方法对待认证消息进行加速计算,得出待认证消息的哈希值;

步骤4,检验生成的哈希值是否为零向量,若是,则返回步骤2重新执行,若否,则执行步骤5;

步骤5,生成标签,发送者利用第二比特串对步骤3生成的哈希值进行一次一密操作,生成标签;

步骤6,发送消息并认证,发送者将待认证消息和标签一并发送给接收者,接收者利用第一比特串和和不可约多项式生成托普利兹矩阵,生成待认证消息的哈希值,并利用第二比特串对标签进行解密,如果所述解密结果与所述哈希值相同,则认证通过,反之则不通过。

进一步地,按上述步骤1至步骤6进行多轮认证,此后每轮认证,发送方和接收方保留第一比特串,并在步骤1中发送方和接收方仅更新第二比特串。

进一步地,根据实现环境的不同,第一轮的步骤3和步骤6中可以直接保存托普利兹矩阵,在之后的每轮直接利用已保存的托普利兹矩阵生成哈希值,也可以在第一轮不保存,此后的每轮利用第一比特串和不可约多项式直接生成哈希值。

进一步地,所述步骤1中,公开固定二元域gf(2)中n阶不可约多项式的形式。

进一步地,所述步骤2中,所述时间戳由当前时刻对应的周期性时钟决定,并以二进制比特串形式生成。

进一步地,所述步骤3中,在待认证消息的末尾补入零比特。

进一步地,所述步骤5中,所述一次一密操作选择异或操作,生成标签为,式中,h表示哈希函数,m表示待认证消息,r表示用于一次一密的比特串。

有益效果

相比于现有技术,本发明的优点在于:

(1)解决了现有技术的安全性漏洞。现有的基于lfsr哈希的认证方法普遍采用硬件实施的方法,如fpga等,p(x)需要在硬件加工环节就被固定,并且体现在硬件的结构中,因此p(x)的信息被攻击者获知,这会造成安全性的漏洞。

(2)本发明的方案在允许p(x)公开的情况下依然提供了无条件安全的认证。通过增加一步对h(m)=0是否成立的判断,在生成标签的过程中排除了哈希值为0的情况,因此在安全性的证明中不需要依赖p(x)的随机性,仅通过用于一次一密的密钥串r和初始状态s的完全随机性就可以保证认证过程的无条件安全。

(2)减少了安全性失败概率:本发明通过采取加时间戳的处理方式并对生成的哈希值增加一步检验,对h(m)=0的待认证信息重新加新的时间戳,从而排除了h(m)=0的情况。因此,与参考文献“lfsr-basedhashingandauthentication,springer-verlagberlinheidelberg1994”中的认证方法相比,本发明所生成的哈希函数其安全性由,提高到。因此,本发明提供的哈希认证方法提供了一个更紧的安全性失败概率的上界,进一步减少了lfsr哈希函数的安全性失败概率。

附图说明

图1为本发明的认证方法整体结构示意图;

图2为利用lfsr生成toeplitz矩阵并计算哈希值的加速算法过程示意图;

图3为实施例1中待认证消息m对应的比特串示意图;

图4为实施例1中待认证消息生成的哈希值对应的比特串示意图;

图5为实施例1中攻击者伪造的一个消息mf对应的比特串示意图。

具体实施方式

下面结合说明书附图和具体的实施例,对本发明作详细描述。

考虑一个典型的认证场景:认证双方alice和bob通过一个不可靠的信道进行信息传输,传输过程中信息可能会被攻击者截获并篡改,但认证双方可以预先共享一串安全的密钥,此过程可以通过bb84协议的量子密钥分发等方式实现。本发明的方案实施方式如图1所示,具体实施步骤如下:

步骤1,发送方和接收方之间共享两串n位的随机比特串sr。公开地固定二元域gf(2)中n阶不可约多项式的形式。

步骤2,生成待认证的消息m。待认证的消息由想要传递的内容主体和当前的时间戳组成。时间戳由当前时刻对应的周期性时钟所决定,以二进制比特串的形式生成。将内容主体转化为二进制比特串,在后面直接加上时间戳对应的比特串从而生成待认证的消息mm的内容如图3所示。把m的长度记为m

步骤3,哈希运算。发送者和接收者可以利用s的值和不可约多项式的形式,生成用于进行哈希的托普利兹toeplitz矩阵,所述矩阵为矩阵,其中m是消息的长度,n是所要生成的哈希值的长度。优选地,采用对toeplitz矩阵分块的方法来进行加速计算,快速生成关于待认证消息的哈希值。为了方便分块矩阵的运算,在哈希运算开始前还需要在消息的末尾补入一定数量的零比特。此步骤的所有运算均在二元域中进行,即对每一步运算的结果都进行模2处理。

步骤4,检验生成的哈希值是否为零向量。若为零,则返回步骤2根据新的时间戳生成消息重新进行。若不为零,则进入下一步。

步骤5,生成标签。发送者利用手中的随机密钥串对上一步生成的哈希值进行异或操作(即一次一密),生成标签

步骤6,消息发送及认证。发送者将消息m和标签t一起发送给接收者。接收者利用收到的消息m生成哈希值,再利用手中的密钥串r对标签t进行解密。如果解密的结果与得到的哈希值相同,则认证通过,反之则不通过。

需要说明的是,以上为第一轮认证的步骤。对于多轮认证的情况,此后每轮认证,发送方和接收方保留第一比特串,步骤1中双方仅更新第二比特串;根据实现环境的不同,第一轮的步骤3、6中可以直接保存托普利兹矩阵,在之后的每轮直接利用已保存的托普利兹矩阵生成哈希值,也可以在第一轮不保存,此后的每轮利用第一比特串和不可约多项式直接生成哈希值。第一种方案适合储存能力强但计算速度一般的环境,第二种适合并行计算速度快但储存能力弱的环境。

实施例1

优选地,取n=128,选取公开的p(x)=x128+x29+x27+x2+1。需说明的是,本实施例仅演示第一轮认证的情况,之后的每轮认证均按第一轮认证的步骤进行。

步骤1,认证双方共享由随机数生成的128比特的初始状态s和随机比特串rsr的信息仅被认证双方所共享。优选地,使用bb84协议量子密钥分发来实现此步骤,从而保证攻击者无法获得sr的任何信息。

步骤2,假设发送者alice想要发送一串392比特的文本,那么她将这条消息转化为二进制的编码,并且在这串编码后加上时间戳。可选地,取8比特的时钟,即时钟周期为256,假设此时的时间戳为(11111100)。在文本的末端加上时间戳,生成400比特的消息m。可选地,m对应的二进制比特串的形式见图3,其中最后八位为时间戳。

步骤3,由基于lfsr的toeplitz矩阵的生成方法,alice利用p(x)=x128+x29+x27+x2+1和随机的128位比特串s的值可以生成的toeplitz矩阵,即构造出了哈希函数h。利用分块矩阵的方法可以快速地得到h(m)。

步骤4,alice发现h(m)=0,即生成的128比特的哈希值中每一项都是0,就废除本轮认证。alice重新生成新的消息,假设此时新的时间戳为(11001100),则按照之前相同的步骤生成的哈希值不为零,如图4所示。因此进入下一步。

步骤5,发送者将h()用随机比特串r进行一次一密操作,生成标签。并将消息和标签t一起发送给接收者bob。

步骤6,bob接收到消息和标签后,首先得到消息的长度为400比特,利用自己手中的比特串s和公开的不可约多项式p(x)=x128+x29+x27+x2+1生成哈希函数h的toeplitz矩阵)。再利用手中的密钥串r计算并于标签t比较。若二者相同则认证通过,反之则不通过。

上述步骤3中,哈希运算的具体过程如图2所示:

h(m)的生成:

toeplitz矩阵具有如下特性:如果矩阵中元素的行下标ik和列下标j,l满足,其中那么ai,j=ak,l,因此toeplitz矩阵可以使用第一列和第一行共个随机数确定。的toeplitz矩阵的形式如下所示:

基于lfsr的toeplitz矩阵是在toeplitz矩阵的基础上,进一步降低了对随机矩阵元素的需求数目,但是提供的安全性等效于上面两种方案。在toeplitz矩阵中,第一行的元素是随机生成的,但是在基于lfsr的toeplitz方案中,第一行的矩阵元素是通过lfsr的生成规则来确定的。lfsr的生成规则是由一个在gf(2)域内的不可约多项式p(x)确定的。例如128位lfsr的生成多项式p(x)如下式:p(x)=x128+x29+x27+x2+1。

在基于lfsr的toeplitz矩阵生成方案中,第一列的元素由随机数生成,后一列的元素可以看做是前面一列元素下移一个位置,在第一行加入一个新元素构成的。第一行的中加入的矩阵元素则是通过lfsr的生成规则来确定的。lfsr的生成规则是由一个在gf(2)域内的不可约多项式p(x)确定的。例如本实施例中选择的128位lfsr的生成多项式:p(x)=x128+x29+x27+x2+1。

它表示下一个lfsr序列的第一个比特是由当前lfsr序列的第128,126,101和99位异或得到的,如,其余比特是当前序列比特下移一位得到的。因此,基于lfsr的toeplitz矩阵的确定只需要第一列n个比特和描述p(x)需要的n个比特。对于满足互联网需求的身份认证,一般m在108量级,n取值128,即一般情形下n<<m,所以存储资源的消耗大大降低了。同时,lfsr生成算法采用异或操作,非常适合硬件完成,有利于实现高速的身份认证模块。

在fpga内并行计算过程如下:

由于h(m)矩阵维数较大,在实际计算时对fpga内的缓存空间需求量极大,且计算的死时间过长。因此考虑通过采用分块矩阵乘法的原理,利用流水线的方式在fpga中并行计算,这样可以不必要等待数据接收完才开始计算,每到来一定量的数据,就进行一次计算,可以很大程度上减少所需的缓存空间大小和计算的死时间。

通过选择符合非0系数集中在较低级数的生成多项式g(x),其中g(x)为p(x)除去最高次数项之后的多项式。可以实现lfsr在fpga运行的一个时钟周期内并行迭代计算,生成多个连续的伪随机数,例如在本实施例中,g(x)=x29+x27+x2+1。

以通过千兆网口进行数据输入为例,假设输入数据的速率为800mbps,即100ns可以传输80bit的认证数据,假设n=128,那么在fpga的一个周期内可以同时进行80次迭代计算,同时生成,因此可以直接得到128×80的小toeplitz矩阵。如图2所示,ai,j表示行列对应的矩阵元,一个周期内可以完成对80比特消息的运算。若选取fpga的运行时钟周期大于10mhz,那么在fpga一个时钟周期内就可以完成对认证信息的收集和其对应的h(m)矩阵的生成。在计算过程中只需要维持128+80+80=288bit的缓存空间,同时提高了系统认证过程的实时性。最后再将多次并行运算得到的临时结果累加即可得到最终的哈希hash结果认证字段。

需要指出的是,本方案中选择对80个比特的消息进行并行计算,因此在计算开始前需要对消息串m进行补零操作,使m的长度变成80的倍数。本实施例中m的长度为400,正好为80的倍数,因此不需要进行补零操作。

本发明所增加的加时间戳和验证步骤在p(x)的形式公开的前提下,对认证过程的安全性起着不可或缺的作用。如果仅仅采用之前普遍应用的方法,攻击者利用p(x)的信息可以直接成功完成对认证消息的篡改。

一个攻击者成功攻击的例子:在本实施例的情况下,发送者将直接发送消息m和其对应的标签t,而攻击者截获m后,可以得到m对应的多项式m(x),其中m(x)每一项的系数为m对应的二进制比特,并且验证得到m(x)可以被p(x)整除。根据基于lfsr生成的toeplitz矩阵的哈希认证方法的性质,当m(x)可以被p(x)整除时,生成的哈希值一定为零。因此,如图5所示,给出了一个攻击者伪造的mf的例子,其中加粗及下划线的比特为修改的比特。攻击者可以直接伪造另一条可以满足mf(x)被p(x)整除的消息mf,直接将截获的m换为mf发送给bob。由于mmf对应的哈希值相同(都为零),因此对应的标签也相同,因此bob在验证时一定会通过对mf的认证,攻击者成功完成了篡改。

该攻击例子的前提条件是发送者发出的消息m会产生零哈希值。采用本发明的方案之后,发送者将直接避免发出哈希值为零的消息m,因此不存在上述成功攻击的可能。

以上示意性地对本发明创造及其实施方式进行了描述,该描述没有限制性,在不背离本发明的精神或者基本特征的情况下,能够以其他的具体形式实现本发明。附图中所示的也只是本发明创造的实施方式之一,实际的结构并不局限于此,权利要求中的任何附图标记不应限制所涉及的权利要求。所以,如果本领域的普通技术人员受其启示,在不脱离本创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本专利的保护范围。此外,“包括”一词不排除其他元件或步骤,在元件前的“一个”一词不排除包括“多个”该元件。产品权利要求中陈述的多个元件也可以由一个元件通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1