2.数字签名的相关技术
针对数字签名所涉及的学科以及技术进行阐述,通过介绍密码学,哈希函数,更深入的介绍数字签名,通过密码学以及数字签名系统实现的过程中常用的一种函数的了解,相信能加深对数字签名的理解。
2.1 密码学
密码学是研究编制密码和破译密码的科学。研究密码变化的规律,应用于编制密码以保守通信秘密的,成为编码学;应用于破译密码以获取通信情报的,称为破译学,总称为密码学。
密码是信息交互双方按照一定的约定规则进行信息保护的一种有效手段。按照一定的算法对信息进行加密称为加密变换,对已经加密的信息按照一定的算法进行解密,称为解密变换。随着科技的发展,加密不仅仅局限于信息,现在更多的可以应用于声音,图像甚至数据,这些都可以进行加密或者解密,进而大大提高了信息的安全性[1]。
2.2 密码学的发展
密码学之所以发展成为目前比较尖端的学科,主要归功于人们不断地加密解密的实战过程,根据这个过程衍生出了更多的加密和解密算法以及新的规则。
20世纪70年代以后,人们提出了公开密钥体制,原理是用单向函数的数学原理,以实现加密解密的功能。加密密钥是公开的,解密密钥是保密的。这种新的密码体制一经提出就引起了密码界的广泛关注和探讨。根据一定的规律,在特定的条件下,用一定的技术手段,对密文进行绑架,然后进行分析,获得为经加密前的信息,从而实现破解的目的,称之为密码破译。密码有多种多样,强度也各不相同,所以对条件要求也不尽相同[2]。
2.3 哈希函数
Hash,一般翻译做“散列”,也有直接音译为“哈希”的,定义为把长度不固定的的信息,按照特定的算法,把长度变成固定的信息,这种变换之后的信息就成为散列值。
数学公式表示为:h=H(M),其中H( )为单向散列函数,M为任意长度明文,h为固定长度散列值。
哈希算法的性质从特点上一般分为四项:
(1)输入:消息是任意有限长度。
(2)输出:哈希值是固定长度。
(3)容易计算:对于任意给定的消息,容易计算其哈希值。
(4)单向性:对于给定的哈希值h,要找到M使得H(M)=h在计算上是不可行的[3]。
哈希算法的性质从安全性上一般分为三项:
(1)抗弱碰撞性:对于给定的消息M1,要发现另一个消息M2,满足H(M1)=H(M2)在计算上是不可行的。
(2)抗强碰撞性:找任意一对不同的消息M1,M2,使H(M1)=H(M2)在计算上是不可行的。
(3)雪崩效应:当一个输入位发生变化时,输出位将发生很大变化。
哈希算法在信息安全方面的应用主要表现在以下三个方面。
(1)文件校验:目前比较常用的校验算法有奇偶校验和CRC校验,虽然两者具有校验数据传输中的信道误码,但是却不能有效的防止对数据的破坏,因为其不具有抵抗篡改的功能。
(2)数字签名:哈希算法是密码学研究体系中至关重要的一种算法。由于单向散列函数的运算速度比较快,相对于非对称算法,所以在目前的数字签名协议中,大多数都采用单向散列函数。
(3)鉴权协议:是在信息传输的过程中,在信道是可被侦听的,但是不能篡改的条件下,一种安全有效的保障方法[4]。
3.数字签名
在对数字签名概念进行说明之前,我们先对传统签名进行分析,众所周知,传统的签名目的是为了证明某些文件是当事人经手的,保障其合法性。但是在日常生活中,伪造传统的签名并不是很麻烦,这就使得传统的签名在安全性上大打折扣,从而突出了数字签名的特点:在数字签名中,如果你想要伪造数字签名产生的签名的话,没有产生签名的私钥是根本行不通的,起码在计算机上是不可能实现的。 数字签名系统的设计与实现+流程图(2):http://www.751com.cn/jisuanji/lunwen_3472.html