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

智能卡的数字签名

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

  数字签名,经常也被称做电子签名,是用来建立电子传送的报文或电子文档的可靠性的。核查数字签名便有可能断定报文或文档是否被改动过。

  签名具有的特性是它只能由单独的某个人正确产生,但它可以——或至少由任何接收报文的人所核查,被从前见到过签名的收件人、或具有可相比较的拷贝的人所核查,这也是数字签名的实质的特j眭。只有一个人或一张智能卡能“签署”一文档,但每个人都能核查签名是否是真实的。满足这个所需的特性,使非对称加密技术表现为理想的出发点。

  被签署的报文或文档通常至少有数千字节长,为了把产生加密代码和的计算时间保持在可接受的限度之内,不是用整个数据串来计算代码和的。相反,首先产生数据串的散列值,简单地说,散列函数就是单向数据压缩函数,这种压缩是不可恢复的,这就是说原有数据不可能从压缩数据中重建出来。由于散列值的计算很快,散列函数就成了计算数字签名的理想辅助工具。

  “数字签名”一词通常仅仅和非对称加密算法联系使用,因为公开和私有密钥的分离使它们非常适合用于数字签名。然而,在实践中经常使用立足于对称加密方法的“签名”。对于这样的签名,只有拥有用来产生签名的秘密密钥的那个人才有可能去核查文档的真实性。这样的“签名”,从签名一字的真正意义来说就不是个真正的签名,但在实践中还经常是这样使用的。在这种情况下,标志所用处理类型的“数字”一词被去掉了。

  图1 两种基本的数字签名格式的分类

  从信息技术的观点看来,这里有两种不同的方法在报文上附加一个签名,如图1所示。对于给定的数据串,第1种是加密代码和的形式,类似于报文鉴别码mac。签名附在真正报文之后(带有附录的数字签名),这样的好处是可以完整地读出报文而无需先验证签名。然而,不利之处在于报文的长度由于签名的长度而增大了。在智能卡的情况中,这是很值得考虑的。这一缺点可由采用第2种给报文附加数字签名的方法来避免,它被称做具有恢复报文的数字签名。利用此技术,真正报文的散列值被附在报文上,接着它的是一个关于数字签名算法的输入字组,被形成于数字串的结束处。这就是说,数字签名的报文增大的仅是散列值的长度,但在数字签名未被核查之前,不再能完全读出它,参见图1所示。

  图2 用rsa算法签署一报文把产生的签名附在报文之后(带有附录的数字签名)

  产生带有附录的数字签名的过程很容易说明,首先,用散列算法从报文的内容形成散列值。举例来说,报文可能是由任何字处理程序产生的文件,散列值用诸如本例中的rsa非对称加密算法解密。这一计算的结果就是真实的签名,它被附在报文的后面,参见图2。

  现在,签署的报文可以经过一个非保密的途径传送给收件人,收件人把签名与报文分开而后用相同的散列算法压缩报文,数字签名用rsa算法的公开密钥加密,把结果和散列计算的结果相比较。如果二者之值是相同的,则报文在途中未被改变。否则,或者是报文也可能是签名在传输中被改变了。在后一种情况下,真实性不再是可信的,而且也不能认为报文的内容未被改变,参见图3和图4所示。

  图3 用rsa算法签署把报文和报文的散列值组合起来形成于签
  名中(具有恢复报文的数字签名)

  图4 核查用rsa算法签署的报文,其中签名是附在
  报文之后的(带有附录的数字签名)

  智能卡的任务在这个情节中是很简单的。它至少存储有私有密钥,并用它把从报文形成的散列值解密,这就意味着它产生了签名。除此之外,诸如产生散列值或跟着而来的对签名的验证,原则上可用pc一样地完成得很好。

  对于智能卡来说,理想的情况仍然是经过其接口接收报文,计算散列值并将签署的报文送回终端,验证签字也可在智能卡中执行。当然,这个过程不比计算签名更秘密些,但它显然要“对应用友好”些,这是因为散列算法和rsa密钥可在智能卡中凭借简单的交换而改变,而没有必要在pc中去改变任何程序和数据。

  在这两个例子中,用于产生和验证数字签名的密钥是整体的,这就是说在给定的系统中对所有的智能卡都是一样的。如果为了安全的缘故应采取不同的安排,使得每张卡有它自己的用于数字签名的密钥 。

  rsa不是可用来产生数字签名的惟-算法,有着为此应用而专门开发的加密方法,称之为数字签名算法dsa(digital signature algorithm)。它是首先由美国国家标准和技术研究院nist(us national institute of st

  数字签名,经常也被称做电子签名,是用来建立电子传送的报文或电子文档的可靠性的。核查数字签名便有可能断定报文或文档是否被改动过。

  签名具有的特性是它只能由单独的某个人正确产生,但它可以——或至少由任何接收报文的人所核查,被从前见到过签名的收件人、或具有可相比较的拷贝的人所核查,这也是数字签名的实质的特j眭。只有一个人或一张智能卡能“签署”一文档,但每个人都能核查签名是否是真实的。满足这个所需的特性,使非对称加密技术表现为理想的出发点。

  被签署的报文或文档通常至少有数千字节长,为了把产生加密代码和的计算时间保持在可接受的限度之内,不是用整个数据串来计算代码和的。相反,首先产生数据串的散列值,简单地说,散列函数就是单向数据压缩函数,这种压缩是不可恢复的,这就是说原有数据不可能从压缩数据中重建出来。由于散列值的计算很快,散列函数就成了计算数字签名的理想辅助工具。

  “数字签名”一词通常仅仅和非对称加密算法联系使用,因为公开和私有密钥的分离使它们非常适合用于数字签名。然而,在实践中经常使用立足于对称加密方法的“签名”。对于这样的签名,只有拥有用来产生签名的秘密密钥的那个人才有可能去核查文档的真实性。这样的“签名”,从签名一字的真正意义来说就不是个真正的签名,但在实践中还经常是这样使用的。在这种情况下,标志所用处理类型的“数字”一词被去掉了。

  图1 两种基本的数字签名格式的分类

  从信息技术的观点看来,这里有两种不同的方法在报文上附加一个签名,如图1所示。对于给定的数据串,第1种是加密代码和的形式,类似于报文鉴别码mac。签名附在真正报文之后(带有附录的数字签名),这样的好处是可以完整地读出报文而无需先验证签名。然而,不利之处在于报文的长度由于签名的长度而增大了。在智能卡的情况中,这是很值得考虑的。这一缺点可由采用第2种给报文附加数字签名的方法来避免,它被称做具有恢复报文的数字签名。利用此技术,真正报文的散列值被附在报文上,接着它的是一个关于数字签名算法的输入字组,被形成于数字串的结束处。这就是说,数字签名的报文增大的仅是散列值的长度,但在数字签名未被核查之前,不再能完全读出它,参见图1所示。

  图2 用rsa算法签署一报文把产生的签名附在报文之后(带有附录的数字签名)

  产生带有附录的数字签名的过程很容易说明,首先,用散列算法从报文的内容形成散列值。举例来说,报文可能是由任何字处理程序产生的文件,散列值用诸如本例中的rsa非对称加密算法解密。这一计算的结果就是真实的签名,它被附在报文的后面,参见图2。

  现在,签署的报文可以经过一个非保密的途径传送给收件人,收件人把签名与报文分开而后用相同的散列算法压缩报文,数字签名用rsa算法的公开密钥加密,把结果和散列计算的结果相比较。如果二者之值是相同的,则报文在途中未被改变。否则,或者是报文也可能是签名在传输中被改变了。在后一种情况下,真实性不再是可信的,而且也不能认为报文的内容未被改变,参见图3和图4所示。

  图3 用rsa算法签署把报文和报文的散列值组合起来形成于签
  名中(具有恢复报文的数字签名)

  图4 核查用rsa算法签署的报文,其中签名是附在
  报文之后的(带有附录的数字签名)

  智能卡的任务在这个情节中是很简单的。它至少存储有私有密钥,并用它把从报文形成的散列值解密,这就意味着它产生了签名。除此之外,诸如产生散列值或跟着而来的对签名的验证,原则上可用pc一样地完成得很好。

  对于智能卡来说,理想的情况仍然是经过其接口接收报文,计算散列值并将签署的报文送回终端,验证签字也可在智能卡中执行。当然,这个过程不比计算签名更秘密些,但它显然要“对应用友好”些,这是因为散列算法和rsa密钥可在智能卡中凭借简单的交换而改变,而没有必要在pc中去改变任何程序和数据。

  在这两个例子中,用于产生和验证数字签名的密钥是整体的,这就是说在给定的系统中对所有的智能卡都是一样的。如果为了安全的缘故应采取不同的安排,使得每张卡有它自己的用于数字签名的密钥 。

  rsa不是可用来产生数字签名的惟-算法,有着为此应用而专门开发的加密方法,称之为数字签名算法dsa(digital signature algorithm)。它是首先由美国国家标准和技术研究院nist(us national institute of st

相关IC型号

热门点击

 

推荐技术资料

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


 复制成功!