数字签名功能使用论文
数字签名功能使用论文 编者按:本论文主要从原理;基于身份的数字签名;
数字签名在电子政务 中的应用等进行讲述,包括了数字签名与传统手写签名差别、优势、形式化定义、 意义、形式、对原文的数字签名、对数字签名的验证、有序多重数字签名是由文 件的发送者规定好签名的顺序、签署文件方面、验证方面、签名的复制等,具体 资料请见:
论文摘要:分析数字签名的功能、原理及其与传统手写签名的差别,对基 于身份的数字签名进行了探讨,给出了数字签名在电子政务中的具体应用。
论文关键词:数字签名:电子政务;
信息安全 1概述 1.1概念与功能 数字签名是防止他人对传输的文件进行破坏.以及确定发信人的身份的手 段该技术在数据单元上附加数据,或对数据单元进行秘密变换.这种数据和变换 允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,从而达到保 护数据,防止被人进行伪造的目的。简单说来,数字签名是指用密码算法,对待 发的数据进行加密处理,生成一段数据摘要信息附在原文上一起发送,接受方对 其进行验证,判断原文真伪其签名思想是签名只能南一个人(个体)创建,但可以 被任何人校验. 数字签名技术可以解决数据的否认、伪造、篡改及冒充等问题,满足上述 要求的数字签名技术有如下主要功能:(1)发送者事后不能否认自己发送的签 名;
(2)接收者能够核实发送者发送的签名;
(3)接收者不能伪造发送者的签名;
(4)接收者不能对发送者的原文进行篡改;
(5)数据交换中的某一用户不能冒充另 一用户作为发送者或接收者 1.2数字签名与传统手写签名差别 (1)签署文件方面:一个手写签名是所签文件的物理部分,而数字签名不 是,所以要使用其他的办法将数字签名与所签文件“绑定”。
(2)验证方面:一个手写签名是通过和一个真实的手写签名相比较来验证的而数字签名是通过一个公开的验证算法来验证:
(3)签名的复制:一个手写签名不容易被复制,因为复制品通常比较容易 被鉴别来:而数字签名很容易被复制,因为一个文件的数字签名的复制品和原文 件是一样的:所以要使用数字时问戳等特殊的技术避免数字签名的重复使用。
(4)手书签名是模拟的,且因人而异。数字签名是0和1的数字串,因人和 消息而异。
一个安全有效的签名方案必须满足以下要求:1)任何人都可以验证签名的 有效性;
2)除了合法的签名者外,其他人伪造签名是困难的;
3)对一个消息的签 名不可复制为另一个消息的签名;
4)签名的消息不可被篡改,一旦被篡改,则任 何人都可以发现消息与签名的不一致;
5)签名者事后不能否认自己的签名。
安全的数字签名实现的条件:发方必须向收方提供足够的非保密信息,以 便使其能验证消息的签名,但又不能泄露用于产生签名的机密信息,以防止他人 伪造签名。此外,还有赖于仔细设计的通信协议:
2原理 数字签名有两种:一种是对整体消息的签名,一种是对压缩消息的签名。
每一种又可分为两个子类:一类是确定性(Deterministi)数字签名,其明文与密文 是一一对应的,它对特定消息的签名不变化;
一类是随机化的(Randomized)或概 率式数字签名。
目前的数字签名技术大多是建立在公共密钥体制的基础上,其工作原理 是:
(1)签名:发方将原文用哈希算法求得数字摘要,用签名私钥对数字摘要 加密得数字签名,将原文与数字签名一起发送给接受方。
签名体制=(M,S,K,v),其中M:明文空间,S:签名的集合,K:密钥 空间,V:证实函数的值域,由真、伪组成。
签名算法:对每一m∈M和每一k∈K,易于计算对m的签名s=Sigk(M)∈S 签名算法或签名密钥是秘密的,只有签名人掌握。(2)验证:收方验证签名时,用发方公钥解密数字签名,得出数字摘要;
收方将原文采用同样哈希算法又得一新的数字摘要,将两个数字摘要进行比较, 如果二者匹配,说明经签名的电子文件传输成功。
验证算法:
Verk(S,M)∈{真,伪}={0,l1 3基于身份的数字签名 3.1优势 1984年Shamir提出基于身份的加密、签名、认证的设想,其中身份可以是 用户的姓名、身份证号码、地址、电子邮件地址等。系统中每个用户都有一个身 份,用户的公钥就是用户的身份,或者是可以通过一个公开的算法根据用户的身 份可以容易地计算出来,而私钥则是由可信中心统一生成。在基于身份的密码系 统中,任意两个用户都可以安全通信,不需要交换公钥证书,不必保存公钥证书 列表,也不必使用在线的第三方,只需一个可信的密钥发行中心为每个第一次接 入系统的用户分配一个对应其公钥的私钥就可以了。基于身份的密码系统不存在 传统CA颁发证书所带来的存储和管理开销问题。
3.2形式化定义 基于身份的数字签名由以下4个算法组成, Setup(系统初始化):输入一个安全参数k,输出系统参数param、和系统私 钥mk,该算法由密钥产生机构PKG运行,最后PKG公开params,保存mk。
Extract(用户密钥生成):输入params、mk和用户的身份ID,输出用户的私钥diD, 该算法由PKG完成,PKG用安全的信道将diD返回给用户。Sign(签名):输入一个 安全参数r、params、diD以及消息M,输出对}肖息M的签名盯,该算法由用户实 现。Verify(验证):输入params、签名人身份ID、消息m和签名,输出签名验证结 果1或0,代表真和伪,该算法由签名的验证者完成。其中,签名算法和验证算法 与一般签名方案形式相同。
4数字签名在电子政务中的应用 4.1意义数字签名的过程和政务公文的加密/解密过程虽然都使用公开密钥体系, 但实现的过程正好相反,使用的密钥对也各不相同。数字签名使用的是发送方的 密钥对,发送方用自己的私钥进行加密,接收方用发送方的公钥进行解密。这是 一个一对多的关系,即任何拥有发送方公钥的人都可以验证数字签名的正确性。
政务公文的加密/解密则使用接收方的密钥对,这是多对一的关系,即任何知道 接收方公钥的人都可以向接收方发送加密公文,只有唯一拥有接收方私钥的人才 能对公文解密。在实际应用过程中,通常一个用户拥有两个密钥对,一个密钥对 用来对数字签名进行加密,解密;
另一个密钥对用来对公文进行加密懈密,这种 方式提供了更高的安全性。
4.2形式 4.2.1个人单独签名 由于政务公文的文件相对来说都比较大,所以一般需要先对所要传输的原 文进行加密压缩后形成一个文件摘要,然后对这个文件摘要进行数字签名。一般 由两个阶段组成:对原文的数字签名和对数字签名的验证。
(1)对原文的数字签名 先采用单向散列哈希算法对所要传输的政务公文x进行加密计算和压缩, 推算出一个文件摘要z。然后,公文的发送方用自己的私钥SKA对其加密后形成 数字签名Y,并将该数字签名附在所要传送的政务公文后形成一个完整的信息包 (X+Y)。再用接收方的公钥PKB对该信息包进行加密后,通过网络传输给接收方。
(2)对数字签名的验证 接收方收到该信息包后,首先用自己的私钥SKB对整个信息包进行解密, 得到两部分信息:数字签名部分Y和政务公文原文部分x;
其次,接收方利用发 送方的公钥PKA对数字签名部分进行解密,得到一个文件摘要Z;
接着,接收方 也采用单向散列哈希算法对所收到的政务公文原文部分进行加密压缩,推算出另 外一个文件摘要z1。由于原文的任何改动都会使推算出的文件摘要发生变化,所 以只要比较两个文件摘要z和z1就可以知道公文在传输途中是否被篡改以及公文 的来源所在。如果两个文件摘要相同,那么接收方就能确认该数字签名是发送方 的,并且说明文件在传输过程中没有被破坏。通过数字签名能够实现对原始报文 的鉴别。4.2.2多重数字签名 在电子政务的应用中,有时也需要多个人批阅同一份文件,这就需要用到 多重数字签名,多重数字签名与现实环境中多人书面签名的最大区别在于书面签 名的长度与签名人数成正比,而多重数字签名的长度与个人单独签名长度相同。
根据签名顺序和过程的不同,又可分为有序多重签名和广播多重签名。
有序多重数字签名是由文件的发送者规定好签名的顺序,每一位签名者只 要验证前一位签名者的签名信息,如果通过验证,就在原来的基础上加上自己的 数字签名后把文件发送给下一位签名者,如果验证失败则终止签名过程。最后一 名签名者要负责把文件和最终的签名传输给接收者。多重数字签名的实现可以与 电子政务的实际工作流程结合应用,以达到简单实用的目的。