数字签名 - LabVIEW开发者

时间:2024-02-20 11:23:47

数字签名

3.2  数字签名
    数字签名(也称数字签字、电子签名)在信息安全方面有重要应用,是实现认证的重要工具,在电子商务系统中是不可缺少的。
3.2.1 数字签名的基本概念
    在电子商务中,为了保证电子商务安全中的认证性和不可否认性,必须具有数字签名技术。数字签名是利用数字技术实现在网络传送文件时,附加个人标记,完成传统上手书签名盖章的作用,以表示确认、负责、经手等。
    数字签名与消息的真实性认证是不同的。消息认证是使接收方能验证消息发送者及所发信息内容是否被篡改过。当收发者之间没有利害冲突时,这对于防止第三者的破坏来说是足够了。但当接收者和发送者之间相互有利害冲突时,单纯用消息认证技术就无法解决他们之间的纠纷,此时需借助数字签名技术。

3.2.2 数字签名的必要性
    商业中的契约、合同文件、公司指令和条约,以及商务书信等,传统采用手书签名或印章,以便在法律上能认证、核准、生效。
    传统手书签名仪式要专门预定日期时间,契约各方到指定地点共同签署一个合同文件,短时间的签名工作量需要很长时间的前期准备工作。由于某个人不在要签署文件的当地,于是要等待、再等待。这种状况对于管理者,是延误时机:对于合作伙伴,是丢失商机:对于*机关,是办事效率低下。
    电子商务的发展大大地加快了商务的流程,已经不能容忍这种“慢条斯理”的传统手书签名方式。在电子商务时代,为了使商、贸、*机构和直接消费者各方交流商务信息更快、更准确和更便于自动化处理,各种凭证、文件、契约、合同、指令、条约、书信、订单、企业内部(分散在各地)的管理等必须实现网络化的传递。保障传递文件的机密性应使用加密技术,保障其完整性则用信息摘要技术,而保障认证性和不可否认性则应使用数字签名技术。
    数字签名可做到高效而快速的响应,任一时刻,在地球任何地方——只要有Internet,就可完成签署工作。
    数字签名除了可用于电子商务中的签署外,还可用于电子办公、电子转账及电子邮递等系统。

3.2.3 数字签名的原理
    签名是针对某一文件的,数字签名也必须针对某一电子文件,加上签名者个人的数字标记形成“数字签名”电子文件,这个电子文件从网上发送出去,接收方要能识别签名,具有认证性:从法律角度,具有不可否认性:发送方确实签署了,而接收方确实收到了。
    数字签名用一般的加密方法是无法完成的。它的基本原理是:发送者A用自己的私钥KSA对消息M加密后,得密文c,B收到密文c后,用A的公钥KPA解密后,得消息M’。如果可得消息M’,且M和M’一致,即KSA和KPA是一对密钥,M是经KSA加密的——说明M是经过A“签字”的,因为只有A有这个私钥KSA。而对于消息M,B可同时通过其他途径直接从A处得到。
    上述的基本原理是严格的,但不“实用”,因为用双钥密码*加密消息M是非常慢的。与单钥密码*加密消息的速度相比,双钥的要慢1 000倍以上。即使以后计算机的速度大幅度地提高,情况依然如此。因为为了防止破密,加密的复杂性和位数也会提高的。因此,在实际应用中,不是直接加密消息M,而是加密消息M的消息摘要H(M);消息摘要是很短的,用双钥密码*加密它是很快的。消息用散列函数处理得到消息摘要,再用双钥密码*的私钥加密就得到数字签名。这是实际使用的实现数字签名处理的方法。
    归纳一下,数字签名实际使用原理是:消息M用散列函数H得到消息摘要h1=H(M),然后发送方A用自己的双钥密码*的私钥KSA对这个散列值进行加密:EKSA(h1),来形成发送方A的数字签名。然后,这个数字签名将作为消息M的附件和消息M一起发送给消息接收方B。消息的接收方B首先把接收到的原始消息分成M’和EKSA(h1)。从M’中计算出散列值h2= H(M’),接着再用发送方的双钥密码*的公钥KPA来对消息的数字签名进行解密DKPA(EKSA(h1))得h1。如果散列值h1=h2,那么接收方就能确认该数字签名是发送方A的,而且还可以确定此消息没有被修改过。

3.2.4 数字签名的要求
    类似于手书签名,数字签名也应满足以下要求;
    (1)接收方B能够确认或证实发送方A的签名,但不能由B或第三方C伪造;
    (2)发送方A发出签名的消息给接收方B后,A就不能再否认自己所签发的消息;
    (3)接收方B对已收到的签名消息不能否认,即有收报认证;
    (4)第三者C可以确认收发双方之间的消息传送,但不能伪造这一过程。
    数字签名与手书签名的区别在于:手写签名(包括盖章)是模拟的,因人而异,即使同一个人也有细微差别,比较容易伪造,要区别是否是伪造,往往需要特殊专家。而数字签名是0和1的数字串,极难伪造,要区别是否为伪造,不需专家。对不同的信息摘要,即使是同一人,其数字签名也是不同的。这样就实现了文件与签署的最紧密的“捆绑”。
    数字签名分确定性数字签名和随机化式数字签名。确定性数字签名,其明文与密文一一时应,它对一特定消息的签名不变化,如RSA,Rabin等签名;另一类是随机式(概率式)数字签名,根据签名算法中的随机参数值,对同一消息的签名也有对应的变化。这样,一个明文可能有多个合法数字签名,如ELGamal等签名。

3.2.5 数字签名的作用
    数字签名可以证明:
    (1)如果他人可以用公钥正确地解开数字签名,则表示数字签名的确是由签名者产生的。
    (2)如果消息M是用散列函数H得到的消息摘要H(M),和消息的接收方从接收到的消息M’计算出散列值H(M’),这两种信息摘要相同表示文件具有完整性。
    数字签名机制提供了一种数字鉴别方法,普遍用于银行、电子商务、电子办公等。
    数字签名可以解决下述安全鉴别问题:
    (1)接收方伪造:接收方伪造一份文件,并声称这是发送方发送的;
    (2)发送者或接收者否认:发送者或接收者事后不承认自己曾经发送或接收过文件:
    (3)第三方冒充:网上的第三方用户冒充发送或接收文件;
    (4)接收方篡改:接收方对收到的文件进行改动。