`
saybody
  • 浏览: 903634 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论
阅读更多

详解数字签名

转自 阿须数码


作者:帷幄 2001-7-25
【来源:计算机世界网】

目前有许多种技术保证信息的安全不受侵犯,例如加密技术、访问控制技术、认证技术以及安全审计技术等,但这些技术大多数是用来预防用的,信息一旦被攻破,我们不能保证信息的完整性。为此,一种新兴的用来保证信息完整性的安全技术——数字签名技术成为人们非常关心的话题。那么,什么是数字签名技术?它有什么特殊功能呢?

概念

在数字签名技术出现之前,曾经出现过一种“数字化签名”技术,简单地说就是在手写板上签名,然后将图像传输到电子文档中,这种“数字化签名”可以被剪切,然后粘贴到任意文档上,这样非法复制变得非常容易,所以这种签名的方式是不安全的。数字签名技术与数字化签名技术是两种截然不同的安全技术,数字签名与用户的姓名和手写签名形式毫无关系,它实际使用了信息发送者的私有密钥变换所需传输的信息。对于不同的文档信息,发送者的数字签名并不相同。没有私有密钥,任何人都无法完成非法复制。从这个意义上来说,“数字签名”是通过一个单向函数对要传送的报文进行处理得到的,用以认证报文来源并核实报文是否发生变化的一个字母数字串。

原理

该技术在具体工作时,首先发送方对信息施以数学变换,所得的信息与原信息惟一对应;在接收方进行逆变换,得到原始信息。只要数学变换方法优良,变换后的信息在传输中就具有很强的安全性,很难被破译、篡改。这一个过程称为加密,对应的反变换过程称为解密。
现在有两类不同的加密技术,一类是对称加密,双方具有共享的密钥,只有在双方都知道密钥的情况下才能使用,通常应用于孤立的环境之中,比如在使用自动取款机(ATM)时,用户需要输入用户识别号码(PIN),银行确认这个号码后,双方在获得密码的基础上进行交易,如果用户数目过多,超过了可以管理的范围时,这种机制并不可靠。
另一类是非对称加密,也称为公开密钥加密,密钥是由公开密钥和私有密钥组成的密钥对,用私有密钥进行加密,利用公开密钥可以进行解密,但是由于公开密钥无法推算出私有密钥,所以公开的密钥并不会损害私有密钥的安全,公开密钥无须保密,可以公开传播,而私有密钥必须保密,丢失时需要报告鉴定中心及数据库。

算法

数字签名的算法很多, 应用最为广泛的三种是: Hash签名、DSS签名和RSA签名。
1. Hash签名
Hash签名不属于强计算密集型算法,应用较广泛。它可以降低服务器资源的消耗,减轻中央服务器的负荷。Hash的主要局限是接收方必须持有用户密钥的副本以检验签名, 因为双方都知道生成签名的密钥,较容易攻破,存在伪造签名的可能。
2. DSS和RSA签名
DSS和RSA采用了公钥算法,不存在Hash的局限性。RSA是最流行的一种加密标准,许多产品的内核中都有RSA的软件和类库。早在Web飞速发展之前,RSA数据安全公司就负责数字签名软件与Macintosh操作系统的集成,在Apple的协作软件PowerTalk上还增加了签名拖放功能,用户只要把需要加密的数据拖到相应的图标上,就完成了电子形式的数字签名。与DSS不同,RSA既可以用来加密数据,也可以用于身份认证。和Hash签名相比,在公钥系统中,由于生成签名的密钥只存储于用户的计算机中,安全系数大一些。

功能

数字签名可以解决否认、伪造、篡改及冒充等问题。具体要求:发送者事后不能否认发送的报文签名、接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改、网络中的某一用户不能冒充另一用户作为发送者或接收者。数字签名的应用范围十分广泛,在保障电子数据交换(EDI)的安全性上是一个突破性的进展,凡是需要对用户的身份进行判断的情况都可以使用数字签名,比如加密信件、商务信函、定货购买系统、远程金融交易、自动模式处理等等。

缺憾

数字签名的引入过程中不可避免地会带来一些新问题,需要进一步加以解决,数字签名需要相关法律条文的支持。
1. 需要立法机构对数字签名技术有足够的重视,并且在立法上加快脚步,迅速制定有关法律,以充分实现数字签名具有的特殊鉴别作用,有力地推动电子商务以及其他网上事务的发展。
2. 如果发送方的信息已经进行了数字签名,那么接收方就一定要有数字签名软件,这就要求软件具有很高的普及性。
3. 假设某人发送信息后脱离了某个组织,被取消了原有数字签名的权限,以往发送的数字签名在鉴定时只能在取消确认列表中找到原有确认信息,这样就需要鉴定中心结合时间信息进行鉴定。
4. 基础设施(鉴定中心、在线存取数据库等)的费用,是采用公共资金还是在使用期内向用户收费?如果在使用期内收费,会不会影响到这项技术的全面推广?

实施

实现数字签名有很多方法,目前采用较多的是非对称加密技术和对称加密技术。虽然这两种技术实施步骤不尽相同,但大体的工作程序是一样的。 用户首先可以下载或者购买数字签名软件,然后安装在个人电脑上。在产生密钥对后,软件自动向外界传送公开密钥。由于公共密钥的存储需要,所以需要建立一个鉴定中心(CA)完成个人信息及其密钥的确定工作。鉴定中心是一个政府参与管理的第三方成员,以便保证信息的安全和集中管理。用户在获取公开密钥时,首先向鉴定中心请求数字确认,鉴定中心确认用户身份后,发出数字确认,同时鉴定中心向数据库发送确认信息。然后用户使用私有密钥对所传信息签名,保证信息的完整性、真实性,也使发送方无法否认信息的发送,之后发向接收方;接收方接收到信息后,使用公开密钥确认数字签名,进入数据库检查用户确认信息的状况和可信度;最后数据库向接收方返回用户确认状态信息。不过,在使用这种技术时,签名者必须注意保护好私有密钥,因为它是公开密钥体系安全的重要基础。如果密钥丢失,应该立即报告鉴定中心取消认证,将其列入确认取消列表之中。其次,鉴定中心必须能够迅速确认用户的身份及其密钥的关系。一旦接收到用户请求,鉴定中心要立即认证信息的安全性并返回信息。

分享到:
评论

相关推荐

    数字签名数字签名数字签名

    数字签名是一种重要的信息安全技术,主要用于验证数据的完整性和发送者的身份。在计算机科学,特别是密码学领域,数字签名并非实际的笔迹签名,而是通过复杂的数学算法生成的一段固定长度的二进制数据。这个数据附加...

    公钥私钥加密解密数字证书数字签名详解.docx

    ### 公钥私钥加密解密、数字证书与数字签名详解 #### 一、基础知识概述 在探讨公钥私钥加密解密、数字证书以及数字签名之前,我们需要先理解几个核心概念。 **1. 密钥对:** - 在非对称加密技术中,存在两种密钥...

    代码签名数字证书(含私钥),数字签名是使用自己的私钥签名,C,C++

    数字签名并非我们日常生活中手写的签名,而是通过一种加密算法,使用私钥对数据进行的一种特殊标记。这个过程类似于物理世界中的印章,但具有更高的安全性。在C或C++编程中,开发人员可以使用代码签名证书来为他们的...

    57.PE文件逆向之什么是数字签名及Signtool签名工具详解(一)1

    【网络安全自学篇】PE文件逆向之什么是数字签名及Signtool签名工具详解(一) 在计算机安全领域,数字签名是验证软件来源可靠性和完整性的关键机制。它是一种电子形式的签名,通过加密算法确保软件未经篡改且由可信...

    数字签名 数字签名,[美]Mohan Atreya等著 贺军等译,清华大 pdf

    ### 数字签名技术详解 #### 一、数字签名概述 数字签名是一种用于验证电子信息来源真实性、完整性和不可抵赖性的加密技术。它基于公钥密码体制,并结合了哈希函数来确保数据的安全传输。数字签名不仅可以确认消息...

    PDF中数字签名设置步骤

    ### PDF中数字签名设置步骤详解 #### 一、前言 在数字时代,电子文档的安全性和可信度变得尤为重要。PDF格式作为最常用的电子文档之一,提供了丰富的功能来确保文档的真实性和完整性,其中数字签名就是一项重要的...

    数字签名添加器

    《数字签名添加器详解及其应用》 在信息技术领域,安全性和可靠性是至关重要的。数字签名技术作为确保数据完整性和防止篡改的一种手段,扮演着关键角色。本文将深入探讨“数字签名添加器”这一工具,它能帮助我们为...

    轻松理解数字签名和数字证书

    ### 数字签名与数字证书详解 #### 一、数字签名概览 数字签名是一种用于验证电子文档完整性和来源的技术手段,常被应用于电子商务、电子政务以及其他需要确保信息安全传输的领域。数字签名通过加密技术实现,具体...

    计算机课程设计rsa数字签名实现

    【RSA数字签名实现详解】 RSA数字签名是一种广泛应用于网络安全中的加密技术,它是基于RSA公钥密码体制的一种非对称加密算法。在这个计算机课程设计中,我们将深入探讨如何使用MATLAB来实现RSA数字签名的生成与验证...

    数字签名工具箱.rar

    《数字签名工具箱详解》 数字签名在信息技术领域扮演着至关重要的角色,它是一种用于验证电子文档完整性和发送者身份的技术。"数字签名工具箱"是实现这一技术的实用工具,能够帮助用户对数据进行安全签名,确保信息...

    ELGamal数字签名方案的实现

    **ElGamal数字签名方案详解** ElGamal数字签名是一种基于公钥密码体制的签名方法,由 Taher ElGamal 在1985年提出。它利用了离散对数问题的困难性,确保了签名的安全性和不可伪造性。ElGamal签名方案是公钥密码学中...

    电子商务中的数字签名技术

    ### 电子商务中的数字签名技术详解 #### 一、引言 随着互联网技术的快速发展,电子商务已成为现代商业活动中不可或缺的一部分。然而,随着电子商务的普及,如何确保交易的安全性成为了亟待解决的问题之一。数字...

    使用iTextSharp.pdf进行数字签名的demo

    **使用iTextSharp.pdf进行数字签名的Demo详解** 在PDF文档的安全性方面,数字签名扮演着至关重要的角色。它能够确保文档的完整性和作者身份的验证。iTextSharp是一款广泛使用的开源库,专用于处理PDF文档,其中包括...

    数字签名的java实现

    在IT领域,数字签名是一种重要的安全机制,它用于验证数据的完整性和发送者的身份。在Java编程语言中,我们可以利用内置的Java Cryptography Architecture (JCA) 和 Java Cryptography Extension (JCE) 来实现这一...

Global site tag (gtag.js) - Google Analytics