即使是很强大的计算机也需要大量的时间去计算一个数字签名。此外,对于长文件可能需要很多签名,因为要签署的文件不能是任意长的。于是使用了一个技巧,首先把文件压缩到较短的固定长度,然后对压缩的数据计算签名。能否将压缩逆转是没有关系的,因为签名`总可由原来的文件复制出来,用于这种类型计算的函数被称为单向散列函数。 一般而言,单向散列函数是从可变长度的文档导出固定长度值的函数,这个值以压缩的形式代表了文档原来的内容,并且不能用来重建原来的文件。在智能卡领域,这些函数被排它地用来计算数字签名的输人值。如果文件的长度不是散列函数所用字组长度的倍数,必须适当地予以填补。 为了使散列函数有很高的效能