位置:51电子网 » 技术资料 » 其它综合

智能卡的散列函数

发布时间:2008/11/22 0:00:00 访问次数:515

  即使是很强大的计算机也需要大量的时间去计算一个数字签名。此外,对于长文件可能需要很多签名,因为要签署的文件不能是任意长的。于是使用了一个技巧,首先把文件压缩到较短的固定长度,然后对压缩的数据计算签名。能否将压缩逆转是没有关系的,因为签名`总可由原来的文件复制出来,用于这种类型计算的函数被称为单向散列函数。

  一般而言,单向散列函数是从可变长度的文档导出固定长度值的函数,这个值以压缩的形式代表了文档原来的内容,并且不能用来重建原来的文件。在智能卡领域,这些函数被排它地用来计算数字签名的输人值。如果文件的长度不是散列函数所用字组长度的倍数,必须适当地予以填补。

  为了使散列函数有很高的效能,它必须显示出某些特性。其结果应为定长,以便它能很容易被签名算法使用,因为通常要处理大量的数据,散列函数必须有很高的吞吐率。它也必须能很容易计算散列值。相反,从已知的散列值,它必须困难地或者甚至是完全不可能导出原来的文件。最后,它必须是“抗碰撞”(collision resistant)的,这就是说,对于一个给定的文件,很难找到能产生相同散列值的第2个文件。

  然而,的确存在着产生相同散列值的其他文件,这是很自然的,因为所有可能的报文,其长度范围从0至无限长,都呈现为同一固定长度的散列值。这样的一个不可避免的结果就是将发生碰撞,这就是为什么使用的术语是“抗碰撞”而不是“无碰撞”。

  碰撞的影响是什么?这里有两个具有相同散列值的文件,因而有相同的数字签名。它带来的致命后果是使签名毫无价值。因为,有可能改变文件而没有任何人能查出真相,它正好发生在可用于散列函数的两种典型攻击之一。其中包括系统地搜寻能产生和原来文件相同散列值的第2个文件。如果这个文件是有意义的,则由此散列值导出的数字签名就是不足信的。因为这两个文件是可以互换的,签名没有作用。

  对散列值的第2种攻击稍微有点狡猾。这里,与有相同散列值的文件的内容不同,而且是事先准备好的。这并没有特别困难,如果考虑到所有的特殊符号并且扩充了可用的字符组。结果是一个数字签名同时对两份文件生效,而且无法断定那份文件是原来签署的。

  找到具有相同散列值的两份文件并不像乍看起来那么困难。存在着使用在统计学中著名的生日悖论的可能性。这是用两个问题来进行的,第1个问题是:在室内必须有多少人才能使其中一人有和提问题的人有相同生日的概率大于50%。答案是简单的;只需要比较提问题的人和室内其余每一个人的生日,至少应有183(365÷2)人在室内。

  第2个问题揭示了矛盾,或者是相比之下较为令人吃惊的结果。它就是必需有多少人在室内使其中2人有相同生日的概率大于50%,答案仅仅是23人。理由是虽然仅仅有23人在,但却代表了总数为253对可比的生日。两个有相同生日的概率的比较是立足于这些对的。①

  正好这个悖论可用来攻击散列函数,构造两个有相同散列值的文件要比修改一个文件直至它产生给定的散列值要容易的多,这个结果就使得散列函数的输出要有足够长以便成功地挫败这两种类型的攻击。绝大多数散列函数产生之值至少为128位长,在目前一般认为它适合用于防止上述两种类型的攻击。

  已经提出了多种散列函数,其中一些已规定在标准中。然而,经常重复出现对这些函数的修改,这是由于发现了成功的攻击形式之故。表1是当前常用散列函数的简短摘要。遗憾地是,关于其内部操作已超出了本书内容的范围。

  表1 常用散列函数概要

  iso/iec 10118-2规定了一个立足于n位字组加密算法(即des算法)的散列函数,散列值可以按所述算法是n或2n位长。散列函数报文摘要4md4(message digest4)和它的后继者md5是由ronald l.rivest在1900~1991年间提出的。它们都立足于独立的算法,二者都产生128位的散列值。nist在1992年发表了一个为dss算法的散列函数称之为sha。在发现一些弱点之后,它被修改了,自1995年中以来,修改后的散列函数被称为sha-1,它在pips 180-1的名义下也被标准化了。

  由于向智能卡传送数据一般都较慢,散列函数是在终端和连到终端的计算机中执行的。这个缺点由散列函数可以被更换这一事实而得到补偿。此外,在大多数情况下,存储量限制也阻止了把散列函数存储在卡中,几乎在所有的情况下程序的大小都是4kb汇编代码。典型的散列函数的吞吐率比起加给它们的要求都要高得多。用一个运行于33mhz的80386计算机,通常它至少有300kb/s;而对于200mhz的奔腾pc来说,则其大致范围为4~8 mb/s。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



  即使是很强大的计算机也需要大量的时间去计算一个数字签名。此外,对于长文件可能需要很多签名,因为要签署的文件不能是任意长的。于是使用了一个技巧,首先把文件压缩到较短的固定长度,然后对压缩的数据计算签名。能否将压缩逆转是没有关系的,因为签名`总可由原来的文件复制出来,用于这种类型计算的函数被称为单向散列函数。

  一般而言,单向散列函数是从可变长度的文档导出固定长度值的函数,这个值以压缩的形式代表了文档原来的内容,并且不能用来重建原来的文件。在智能卡领域,这些函数被排它地用来计算数字签名的输人值。如果文件的长度不是散列函数所用字组长度的倍数,必须适当地予以填补。

  为了使散列函数有很高的效能,它必须显示出某些特性。其结果应为定长,以便它能很容易被签名算法使用,因为通常要处理大量的数据,散列函数必须有很高的吞吐率。它也必须能很容易计算散列值。相反,从已知的散列值,它必须困难地或者甚至是完全不可能导出原来的文件。最后,它必须是“抗碰撞”(collision resistant)的,这就是说,对于一个给定的文件,很难找到能产生相同散列值的第2个文件。

  然而,的确存在着产生相同散列值的其他文件,这是很自然的,因为所有可能的报文,其长度范围从0至无限长,都呈现为同一固定长度的散列值。这样的一个不可避免的结果就是将发生碰撞,这就是为什么使用的术语是“抗碰撞”而不是“无碰撞”。

  碰撞的影响是什么?这里有两个具有相同散列值的文件,因而有相同的数字签名。它带来的致命后果是使签名毫无价值。因为,有可能改变文件而没有任何人能查出真相,它正好发生在可用于散列函数的两种典型攻击之一。其中包括系统地搜寻能产生和原来文件相同散列值的第2个文件。如果这个文件是有意义的,则由此散列值导出的数字签名就是不足信的。因为这两个文件是可以互换的,签名没有作用。

  对散列值的第2种攻击稍微有点狡猾。这里,与有相同散列值的文件的内容不同,而且是事先准备好的。这并没有特别困难,如果考虑到所有的特殊符号并且扩充了可用的字符组。结果是一个数字签名同时对两份文件生效,而且无法断定那份文件是原来签署的。

  找到具有相同散列值的两份文件并不像乍看起来那么困难。存在着使用在统计学中著名的生日悖论的可能性。这是用两个问题来进行的,第1个问题是:在室内必须有多少人才能使其中一人有和提问题的人有相同生日的概率大于50%。答案是简单的;只需要比较提问题的人和室内其余每一个人的生日,至少应有183(365÷2)人在室内。

  第2个问题揭示了矛盾,或者是相比之下较为令人吃惊的结果。它就是必需有多少人在室内使其中2人有相同生日的概率大于50%,答案仅仅是23人。理由是虽然仅仅有23人在,但却代表了总数为253对可比的生日。两个有相同生日的概率的比较是立足于这些对的。①

  正好这个悖论可用来攻击散列函数,构造两个有相同散列值的文件要比修改一个文件直至它产生给定的散列值要容易的多,这个结果就使得散列函数的输出要有足够长以便成功地挫败这两种类型的攻击。绝大多数散列函数产生之值至少为128位长,在目前一般认为它适合用于防止上述两种类型的攻击。

  已经提出了多种散列函数,其中一些已规定在标准中。然而,经常重复出现对这些函数的修改,这是由于发现了成功的攻击形式之故。表1是当前常用散列函数的简短摘要。遗憾地是,关于其内部操作已超出了本书内容的范围。

  表1 常用散列函数概要

  iso/iec 10118-2规定了一个立足于n位字组加密算法(即des算法)的散列函数,散列值可以按所述算法是n或2n位长。散列函数报文摘要4md4(message digest4)和它的后继者md5是由ronald l.rivest在1900~1991年间提出的。它们都立足于独立的算法,二者都产生128位的散列值。nist在1992年发表了一个为dss算法的散列函数称之为sha。在发现一些弱点之后,它被修改了,自1995年中以来,修改后的散列函数被称为sha-1,它在pips 180-1的名义下也被标准化了。

  由于向智能卡传送数据一般都较慢,散列函数是在终端和连到终端的计算机中执行的。这个缺点由散列函数可以被更换这一事实而得到补偿。此外,在大多数情况下,存储量限制也阻止了把散列函数存储在卡中,几乎在所有的情况下程序的大小都是4kb汇编代码。典型的散列函数的吞吐率比起加给它们的要求都要高得多。用一个运行于33mhz的80386计算机,通常它至少有300kb/s;而对于200mhz的奔腾pc来说,则其大致范围为4~8 mb/s。

  欢迎转载,信息来源维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!