个快速和安全的单向散列函数

上传人:ji****72 文档编号:39566293 上传时间:2018-05-17 格式:DOCX 页数:7 大小:481.21KB
返回 下载 相关 举报
个快速和安全的单向散列函数_第1页
第1页 / 共7页
个快速和安全的单向散列函数_第2页
第2页 / 共7页
个快速和安全的单向散列函数_第3页
第3页 / 共7页
个快速和安全的单向散列函数_第4页
第4页 / 共7页
个快速和安全的单向散列函数_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《个快速和安全的单向散列函数》由会员分享,可在线阅读,更多相关《个快速和安全的单向散列函数(7页珍藏版)》请在金锄头文库上搜索。

1、一个快速和安全的单向散列函数一个快速和安全的单向散列函数摘要在现代信息安全单向散列函数在数据完整性消息认证和数字签名中发挥着 基础性的作用。在本文我们提出了一个快速的单向散列函数来优化时间延迟与 强烈碰撞阻力,保证一个好的压缩和单向抵抗。它是基于标准的安全散列函数 (SHA - 1)算法。分析表明该算法,我们称之为(fSHA-1),耐碰撞,确保良好的压缩和 前映像的抵抗。此外,相比标准安全哈希函数的执行时间是短得多。1. 简介 哈希函数是引入加密技术来提供数据完整性、 消息认证和数字签名的。 把一个人意长度的输入压缩成一个固定长度的小代码的函数被称为哈希函数。 输入到一个散列函数的代码被称为作

2、为一个消息或纯文本,而散列函数的输出 通常是被称为消息摘要,散列值,散列码,或简单的哈希散列结果。散列函数被 定义为:一个哈希函数 H 是一个转化,取走一个输入 m,返回一个规定长度的 被叫做哈希值 h 的字符串。单向散列函数必须有以下属性:(1)单向阻抗性, 对于给定的哈希值 h,很难找到一个 x,使得 H(x)=h,(2)弱碰撞抵抗力,对 于任何给定的输入 x 不可行找到一个 y 使得 H(y)=H(x),yx,(3)强碰撞抵 抗,找到一对(x,y)是的 H(x)=H(y)是不可行的。我们必须注意对于正 常的有 m-bit 输出散列函数,它需要 2 的 m 次幂的操作找到一个弱碰撞抵抗,

3、最快的方式找到一个碰撞抵抗是生日攻击,它只需要 2 的 m/2 次幂的操作。 SHA- 1 在计算上被称为是安全的,,因为找到一个消息对应于一个给定的消息 摘要是不可行的,或者说找到两个不同的信息有着相同的信息摘要也是不可行 的。一个小的信息的改变会得到一个完全不同的信息摘要,签名将无法验证。 在本文中,一个快散列单向函数算法被提出,优化时间延迟具有较强的耐碰撞, 保证一个好的压缩和单向的阻抗特性。 2. 相关研究 安全散列算法(SHA)是由国家研究所的标准和技术(NIST)以及国家安全局 (NSA)和出版 联邦信息处理标准(FIPS 180)在 1993 年。这个版本是经常称 为 SHA-0

4、。它是由国家安全局出版后不久就撤回。美国国家安全局解释说因为 安全问题将会对标准作小的变动。国家安全局没有披露任何进一步的解释。一 个修订版本发布作为 FIPS 180 - 1 在 1995 年,通常称为 SHA 1。这个标准 被定义为安全散列标准。sha - 1 与 SHA-0 相比唯一的不同是在消息压缩功能 函数中只有一个位的旋转。SHA-0 和 SHA- 1 两个都从最大大小为 264 位的消 息中产生一个 160 位的消息摘要。2002 年 NIST 开发三个新散列函数 SHA - 256、384 和 512,它们的散列值分别是 256 位、384 位和 512 位。这些函数 都是以

5、SHA-1 为基础的,一个 224-bit 的基于 SHA-265 的哈希函数加入了 SHS 行列,在 2004 年,但是相比于这个家族的其他成员 SHA-224 就显得不 是那么优秀了。所以还是在努力开发改进替代。 Szydlo 和丽莎在10给出了几个简单的信息预处理技术,并展示如何将这 些技术结合 MD5 和 sha 1,以便于应用不再容易受到已知碰撞攻击。在14 提出了一种改进了的方法,发现 sha - 1 碰撞对。为此,他们使用数学的技术用于描述消息修改技术,提出了一个改进。这两种方法提高了攻击的复杂性 58 轮 SHA- 1,并且他们发现许多新的和碰撞。 Asawa 和 Tiwari

6、 在6提出了与 sha - 1 哈希函数类似的函数,但在信息长 度和轮转次数上和 sha - 1 是一样的。为了增加算法的安全方面,链接变量的 长度增加了,给出的消息摘要的长度为 192 位。同时,不同的信息膨胀用于这 样一种方式, 通过在每个链接变量生成更多的位差,消息扩张变得更强。他们 提出了一个新的消息摘要 算法基于前面的算法,可以用在任何消息完整性 监测或署应用但是他们不能优化程序时间延迟。 3所提出的散列函数的描述 提出的散列函数(fSHA-1)是类似于 SHA - 1 算法,不仅字符串的长度相同, 而且轮转的次数也相同,但是它消耗的时间相比于 SHA-1 要小得多。本节细 节讨论提

7、出函数的功能方面,包括一个简短的用到的基本术语的介绍,包括位 字符串,整数,字的操作,和消息填充。3.1 位串和整数 这里我们定义一些基本术语关于提出的散列函数。 1.一个十六进制数是一个元素,集合是 0,1,9,A,F。一 个十六进制数字是表示一个 4 比特串。例如(7=0111,A=1010)。2.一个字等于 32 位字符串可以表示为一个 8 个十六进制位数的序列。 把一个词转化为 8 个十六进制数字字符串,每 4 比特转换成对应的 十六进制,和前面描述的一样。例如(1010 0001 0000 0011 1111 1110 0010 0011=A103FE23)。 3.一个在 0 和之间

8、的整数将被描述成一个字。这整数的1232 最后的最重要的 4bits 被最右边的十六进制数字代替。例如:291=被(=00000123)代替。我们必821232256222015须注意,若果 z 是一个整数,0z,那么,z=(),其中642yx 322且。因此 x 和 y 可以分别被 X 和 Y 代替,z 可以被(X,Y)对所代替。 4.一个块可以表示为一个 16 字的序列。 3.2 字的操作X+Y 的操作定义如下:字 X 和 Y 代表整数 x 和 y,前提,。对于正整数 n 和 m,区分开 n%m 与 n 除m,计算 z 的值用方程:%,条件。现在,通过转 换 z 的值为一个字并定义 Z:。

9、循环左移操作,其中 X 是一个字,n 是一个 0 到 32 的整数,定义如下:,通过丢弃 X 的最左边的 n-bits 在其右边加上 n 个 0,可以得到 Xn;同理可得 Xn。 3.3 信息填充 提出的函数(fISH1)是用来计算作为输入的消息或数据文件消息摘要的。消 息或数据文件应该被认为是一个位串。消息的长度是比特数信息。如果一个消 息的比特数是 8 的倍数,为了简洁,我们可以把消息表示为十六进制数。消息 填充的目的是使填充的消息总长度为一个 512 的倍数。在计算信息摘要时 fISH- 1 循环处理 512 位的数据块作。接下来讲述信息填充是如何进行的。一个信息 后边跟了一个 1 和

10、m 个 0 再跟上一个 64 bit 的整数,如此来产生一个 512*n 的填充信息。64bits 代表原信息的长度,填充后的信息将被分成 n 个 512 bits 的块用于 fISH-1 处理。假设一个消息长度且按如下规则附加了信息:1. “1”被附加了,如果原始信息是“01010000”,加 1 后的信息为“010100001”。2. “0”被附加了,被加的“0”的数量是依据原始信息长度定的。最后一个512 位的块的最后 64 位是用以存储原始信息的长度信息的。例 1:假设原始信息=01100001 01100010 01100011 01100100 01100101 加“0”“1”后的

11、十六进制的填充信息=61626364 65800000 00000000 00000000 00000000 00000000 000000000 00000000 00000000 00000000 00000000 00000000 000000003. 包括那亮个表示细心长度的字。如果,那么第一个字是全 0。附加这两个字到填充信息。假设原始信息如例 1 中所说,那么长度 l=40。代表 40 的两个字是 00000000 00000028。 所以最终的填充信息=61626364 65800000 00000000 00000000 00000000 00000000 000000000

12、00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000028 3.4 函数和使用的常量 一个序列的逻辑函数 f(0),f(1),f(79)在提出的哈希函数中被使用。每一个 逻辑函数处理三个 32-bits 的字 B,C,D 并产生一个 32-bits 的字作为输出。 函数 f(t,B,C,D)有如下定义: 定义 1.一系列常数的字 K(0),K(1),。K(79)在提出的哈希函数中被 使用。定义如下:3.5 计算消息摘要 消息摘要的计算使用前面描述的填补消息。这个计算是使用两个缓冲区描 述,每一个都由五个 32-

13、bit 的字和一个捌拾个 32-bit 的序列组成。前边的 5 字 的缓冲区被标记为 A,B,C,D,E。第二个 5 字缓冲区被标记为 H), H1,H2,H3,H4。这个 80 字的序列被标记为 W(0),W(1), .,W(79)。一个单字的临时缓冲区被使用。生成消息摘要,之前被定义的 16 字的块 W(0),W(1),.,W(n)被有序的处理。每一个 W(i)的 处理都包括 80 个步骤。在处理快之前 H(i)将被定义如下:之后便开始 W(i)的处理,下边给出 W(i)的详细处理过程:4. 试验结果 我们提出了一种新的专用的散列函数(fISH-1)基于 SHA - 1 方案。仿真结果 的

14、文本数据见表(1)。它表明,建议算法需要少量的时间来生成消息摘要相比于 SHA 1,因为在提出的算法中正如我们所解释的有不同的地址计算复杂性。它 和 SHA-1 一样输出一个 160 位的信息摘要。尽管输入信息只有微小的改变,但 是输出却会产生巨大的不同。图 1 和图 2 给出了计算时间的比较。5. 总结 在本文中,我们依据标准安全 SHA - 1 哈希函数提出了一个新的消息摘要算法, 可以用在检测消息完整性或签署应用程序。 实验结果表明,文中提出的哈希函数是耐碰撞且能保证一个好的压缩和原象对抗。也减少了计算时间相比于 几种标准的安全散列函数。此外,fISH-1 和 SHA-1 的不同会随着信息字数 的增加而增加,因为 fISH-1 执行的时间是有限的相比于 SHA-1 的致信时间。参考文献:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号