一种完整性认证方法技术

技术编号:4271224 阅读:131 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种完整性认证方法,属于信息完整性认证领域。本方法为:1)消息发送者将认证密钥和初始向量输入流密码算法;2)流密码算法根据消息的长度Length和认证码的长度w,生成该消息的密钥流序列;3)模累加密钥流序列中对应该消息比特为1的位置的密钥字;4)将密钥流序列中对应第Length个位置的密钥字和第Length+w个位置的密钥字依次模累加到步骤3)的结果上,生成认证码;5)消息发送者将消息和认证码发送给消息接收者;6)消息接收者将认证密钥和初始向量输入流密码算法,重复2)~4)生成认证码;通过判断认证码是否一致认证该消息的完整性。本发明专利技术大大简化通讯设备,同时运算简单,易于软硬件实现。

【技术实现步骤摘要】

本专利技术属于安全传输中的信息完整性认证领域,具体涉及。
技术介绍
信息产业的发展,把我们带入了一个数字化时代。大量的数字化信息在给人们带 来方便的同时,也带来了一系列问题,比如敏感信息可能轻易地被窃取、篡改、非法复制和 传播等等。因此我们需要一种机制,使得消息的接收者可以验证该消息确实是来自所声称 的消息源并且在传输的过程中未受到未授权的修改。完整性认证就是抗击对消息未授权修 改的安全服务。 现代密码学中的数据完整性与通信学中的检错码有密切的联系,并由其演变而 来。数据完整性技术的工作原理和检测码技术的工作原理本质上是相同的消息的发送 者通过编码为消息增加冗余来生成一个校验值,并将该校验值附在消息之后;消息的接 收者根据与发送者协商好的一系列规则,利用附加的消息值来检验所接收到的消息的正确 性。完整性认证方法要使得校验值在整个校验值空间中尽可能地均匀分布,这就使得攻击 者伪造一个有效校验值的概率达到最小。 与加密算法类似,实现数据完整性的密码转换也应该由密钥参数控制。所以完整 性认证方法中的认证码生成方法,就是对要认证的消息,在认证密钥的控制下做某种变换, 生成用于校验消息完整性的校验码。由对称密码技术生成的检验码通常成为消息认证码 (MAC)。 MAC的生成和验证可以使用密钥杂凑函数技术,也可以使用分组密码加密算法。在 这里,我们提出一个基于流密码算法的认证码生成方法。
技术实现思路
本专利技术的目的在于提供。本专利技术以要认证的消息、消息的长度、生成认证码的长度、认证密钥和初始向量作为输入,利用流密码算法产生消息认证码。消息的发送者利用认证密钥、初始向量、要认证的消息及长度和要生成的认证码的长度,使用本专利技术的方法生成认证码,连同消息一起发送给接收者。接收者利用认证密钥、初始向量、接收到的消息及长度和与发送者约定的认证码的长度,利用本专利技术的方法计算认证码,如果自己计算所得的认证码与发送者发送的认证码一致,则说明消息来自于所声称的发送者且在传输过程中未受到未授权方式修改。否则,说明消息来自于非法发送者或者在传输过程中受到未授权方式修改。从而实现数据的完整性认证。 本专利技术的技术方案为 —种完整性认证方法,其步骤为 1)消息发送者将认证密钥和初始向量输入流密码算法; 2)流密码算法根据消息的长度Length和认证码的长度w,生成该消息的密钥流序 列; 3)模累加所述密钥流序列中对应该消息比特为1的位置的密钥字;所示密钥字为将所述密钥流序列的某一位置起之后连续W个密钥流比特作为该位置对应的密钥字; 4)将所述密钥流序列中对应第Length个位置的密钥字模累加到步骤3)的结果 上; 5)将所述密钥流序列中对应第Length+w个位置的密钥字模累加到步骤4)的结果 上,生成认证码; 6)消息发送者将消息和步骤5)所生成的认证码发送给消息接收者; 7)消息接收者将认证密钥和初始向量输入流密码算法,重复步骤2) 5)生成认证码; 8)消息接收者根据步骤7)所生成的认证码与接收到的认证码是否一致,进行该 消息的完整性认证。 进一步的,所述密钥流序列的长度为Length+2Xw比特。 进一步的,所述认证码的长度w为大于1的正整数。 进一步的,所述认证码长度w的取值是32、64、96、128、160。 进一步的,所述累加所述密钥流序列中对应该消息比特为1的位置的密钥字的方 法为设一变量T,并初始化为O,如果M[i] = l,则计算T-TeC[i];其中M[i]表示消息的 第i比特,C[i]为所述密钥流序列的第i比特起的连续w比特,i = 0, 1, . . . , Length-1, 表示按比特异或运算。进一步的,采用公式T-Te C[Lengh]计算所述步骤4)。进一步的,采用公式MAC-T④C[Lenght+w]计算所述步骤5),生成所述认证码。 本专利技术中所示的消息或密钥流序列的位置均从零开始计数。(1)用认证码生成方法的部分输入(认证密钥、初始向量)构造流密码算法的输入(加密密钥和初始向量)。 (2)根据(1)中构造的加密密钥和初始向量,对流密码算法初始化并运行算法,根 据消息的长度Length和认证码的长度w产生密钥流序列。所需密钥流序列的长度为消息 的长度加两倍消息认证码长度。(3)所述密钥流序列从某一个位置起之后连续w个密钥流比特视作这个位置对应 的密钥字,将原始消息为1的位置对应的密钥字模累加(此处为模二加,即按比特异或)。 (4)将密钥流序列中对应第Length个位置的密钥字模累加到(3)的结果上。 (5)将密钥流序列中对应第Length+w个位置的密钥字模累加到(4)的结果上,生 成认证码。 本专利技术具有以下优点 (1)利用已有的流密码算法,流密码算法即可用于加密,又同时用于消息认证,可 以大大简化通讯设备。(2)只用到了按位异或运算,运算简单,容易实现。 (3)方法易于软硬件实现。具体实施例方式设认证密钥Key,初始向量IV,消息M,消息长度Length,认证码长度w。本认证方 法具体实施方法如下 (1)消息发送者将认证密钥Key和初始向量IV作为流密码算法的加密密钥和初始 向量(关于流密码算法可以参考http:〃www. ecrypt. eu. org/stream/)输入流密码算法。 (2)对流密码算法初始化并运行算法,根据消息的长度Length和认证码的长度w 产生密钥流序列。所需密钥流序列的长度为Length+2Xw比特。 (3)设一变量T,并初始化为0,即T二0。 M[i]表示消息的第i比特,C[i]表示 (2)中产生的密钥流序列的第i比特起的连续w比特,O《i《Length-l。对i = 0, l,..., Length-l,如果M[i] = 1,那么T-T①C[i];如果M[i] 二0,那么T不变。其中, 表示按比 特异或,即按比特模二加。(4) T=T C[Lengh]。C[Length]表示(2)中产生的密钥流序列的第Length比特 起的连续w比特。(5)计算MAOTe C[Lenght+w] 。c[Length+w]表示(2)中产生的密钥流序列的第Length+w比特起的连续w比特。MAC即为本方法产生的消息认证码。 (6)消息发送者将消息和步骤5)所生成的认证码发送给消息接收者; (7)消息接收者将认证密钥和初始向量输入流密码算法,重复步骤2) 5)生成认证码; (8)消息接收者根据步骤7)所生成的认证码与接收到的认证码是否一致,进行该 消息的完整性认证。本文档来自技高网...

【技术保护点】
一种完整性认证方法,其步骤为:1)消息发送者将认证密钥和初始向量输入流密码算法;2)流密码算法根据消息的长度Length和认证码的长度w,生成该消息的密钥流序列;3)模累加所述密钥流序列中对应该消息比特为1的位置的密钥字;所示密钥字为:将所述密钥流序列的某一位置起之后连续w个密钥流比特作为该位置对应的密钥字;4)将所述密钥流序列中对应第Length个位置的密钥字模累加到步骤3)的结果上;5)将所述密钥流序列中对应第Length+w个位置的密钥字模累加到步骤4)的结果上,生成认证码;6)消息发送者将消息和步骤5)所生成的认证码发送给消息接收者;7)消息接收者将认证密钥和初始向量输入流密码算法,重复步骤2)~5)生成认证码;8)消息接收者根据步骤7)所生成的认证码与接收到的认证码是否一致,进行该消息的完整性认证。

【技术特征摘要】
一种完整性认证方法,其步骤为1)消息发送者将认证密钥和初始向量输入流密码算法;2)流密码算法根据消息的长度Length和认证码的长度w,生成该消息的密钥流序列;3)模累加所述密钥流序列中对应该消息比特为1的位置的密钥字;所示密钥字为将所述密钥流序列的某一位置起之后连续w个密钥流比特作为该位置对应的密钥字;4)将所述密钥流序列中对应第Length个位置的密钥字模累加到步骤3)的结果上;5)将所述密钥流序列中对应第Length+w个位置的密钥字模累加到步骤4)的结果上,生成认证码;6)消息发送者将消息和步骤5)所生成的认证码发送给消息接收者;7)消息接收者将认证密钥和初始向量输入流密码算法,重复步骤2)~5)生成认证码;8)消息接收者根据步骤7)所生成的认证码与接收到的认证码是否一致,进行该消息的完整性认证。2. 如权利要求l所述的方法,其特征在于所述密钥流...

【专利技术属性】
技术研发人员:王鹏周春芳冯秀涛冯登国
申请(专利权)人:中国科学院软件研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1