第1章数字签名概述
在信息安全领域,数字签名是一种非常重要的技术手段,它能够为许多应用提供身份认证、数据完整性保护、数据不可否认性及匿名性等服务,因此数字签名是健全信息安全机制不可缺少的重要手段。本章首先简单介绍数字签名的背景;其次详细描述数字签名的原理、形式化定义和分类;*后对本书的结构安排进行介绍。
1.1背景简介
1.1.1信息安全
在古代,人们往往通过飞鸽传书、驿马送信、烽火狼烟和孔明灯等方式传递信息,具有速度缓慢、易受外界因素影响、信息保密性不强等缺点,例如,陆游《渔家傲 寄仲高》中的“东望山阴何处是?往来一万三千里。写得家书空满纸。流清泪,书回已是明年事。”就充分体现了古代信息传递的弊端。随着社会的发展,近现代传递信息的方式越来越多,如写信、打电话、发电子邮件、网上聊天和卫星传播等。其中互联网就是当今社会普遍使用的信息交流技术,在人们日常生活和工作中具有举足轻重的作用。它打破了时间和空间的限制,让人们可以在任何时间、任何地点和世界上任何角落的人进行沟通交流,从而呈现出“海内存知己,天涯若比邻”的情景,充分体现了人类社会发展的巨大进步。但是在人们享受互联网带来的更多便捷服务的同时,也面临着许多各种各样的、复杂的网络攻击,这给信息安全带来严峻考验。这主要是由于信息在存储、传输和处理阶段都是在开放的互联网上进行的,因而更易受到窃听、截取、修改、伪造和重放等攻击手段的威胁,例如,不法分子利用网络系统的漏洞肆意进行攻击、传播病毒、伪造信息和盗取机密等,给政府、企业造成巨大经济损失。因此,随着网络信息的不断扩大和网络环境的日益复杂,信息安全成为当前信息技术快速发展过程中亟待解决的重要问题,只有解决了信息安全问题,信息技术才能更加可靠地发展。
根据信息安全发展的一些重要特征,得出信息安全主要包括以下几点性质。
(1)机密性:保证信息安全*基本的性质,要求只有信息拥有者才能看到和使用信息且信息不能泄露给其他人。加密技术是保证信息机密性的一种重要手段,就像生活中邮寄信件一样,只有将信件密封在信封中,才能放心地将信件发送出去,这个过程实质上也是信息的加密过程。
(2)完整性:为了保证信息的真实性。信息在存储、传输过程中不能进行非法篡改、删减、伪造等操作。
(3)可用性:为了保证信息能够被其他人正常使用。提高系统的准确性、增加备份处理、抵抗非法操作等方法是保证信息可用性的常见手段。
(4)可控制性:为了有效控制信息的流向,从而进一步确保网络活动能够安全有序的进行。
(5)不可否认性:信息发送者不能否认自己发出的信息,信息接收者也不能否认接收到的信息。该特性能够约束网络用户在使用网络通信时的行为规范,是保证信息安全的基本性质。
总之,信息安全是促进我国经济发展和社会发展、保障国家安全的重要技术手段。在信息化社会里,没有信息安全的保障,就没有国家的可持续发展。信息安全研究网络环境下数据的机密性、完整性、可用性,网络服务的可靠性理论、技术和方法,确保网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭到破坏、更改、泄露,系统能够连续、可靠、正常地运行,网络服务不中断。
不同组织和机构对信息安全的定义也有所不同,其中,国际标准化组织(ISO)将信息安全定义为:为数据处理系统建立和采用的技术、管理上的安全保护,为的是保护计算机硬件、软件、数据不因偶然和恶意的原因而遭到破坏、更改和泄露。
美国《联邦信息安全管理法案》(FederalInformation Security Management Act,FISMA)中,信息安全定义为:保护信息和信息系统以避免未授权的访问、使用、泄露、破坏、修改或者销毁,以确保信息的完整性、保密性和可用性。
另外,信息安全的定义也有狭义和广义之分。①狭义:信息安全是指为实现电子信息的完整性、机密性、可用性和可控性,以及信息网络的软件、硬件及其系统中的数据不因恶意的或偶然的原因而遭到泄露、更改、破坏,为信息处理系统采取的管理上和技术上的安全措施。②广义:指网络安全领域的相关管理和技术的一切研究,包括网络上信息的完整性、可用性、机密性、可控性和真实性等研究。
信息安全是一项复杂的信息系统工程,涉及很多方面的因素,需要综合运用数学、计算机、信息论、编码学、密码学、通信技术、管理技术等各种学科和技术的研究成果,并且需要在实践中不断提高和探索。其中密码学是解决各种信息安全问题的关键技术,可以提供信息的机密性、完整性、可用性、可控制性以及不可否认性,因此可以说,信息安全离不开密码学,离开了密码学,信息安全就无从谈起。
1.1.2密码学
密码学是信息安全的核心技术之一,包括密码编码学和密码分析学两部分,其中密码编码学主要研究如何对信息进行编码以实现信息隐蔽,密码分析学主要研究如何通过密文获取对应的明文信息。密码编码学与密码分析学既相互对立又相互依存,从而推动了密码学自身的快速发展。
通常,密码学分为对称密码学与非对称密码学,非对称密码体制往往又称为公钥密码学。图1-1给出了密码学的基本模型。
在图1-1中,信息发送者首先从密钥源获得密钥,然后通过加密算法对信息进行加密得到密文,信息接收者在收到密文之后,先利用从密钥源得到的密钥,再通过解密算法解密密文,从而获得原始信息。这里值得说明的是,在对称密码学中,一对加密或解密算法使用的密钥相同;在公钥密码学中,加密或解密算法使用的密钥不同且难以从公钥推导出私钥。
1.2数字签名的概念
随着信息技术的快速发展,*初的信息加密已经不能满足当今网络通信的安全需求,在实际应用中,人们不仅关心信息的保密性,更加重视信息的真实性和完整性,为了解决这一问题,提出了数字签名的思想。在现实生活中,人们通常在文件上进行手写签名,以证明该文件来源的真实性和对文件内容的认可,这是由于手写签名是很难伪造的。数字签名技术基于此而发展起来,与手写签名类似,其模拟生活中印章和签字的功能,对网络中的电子文档进行签名,从而解决网络通信中信息伪造和否认等问题,保证了网络中信息传输的真实性、可追溯性、不可否认性。
1.2.1数字签名的基本原理
数字签名是一段无法被伪造的数字串,这段数字串只能由信息发送者产生并且能够有效证明信息发送者发送信息的真实性。在数字签名中,由于公钥加密算法要求加密密钥(私钥)和解密密钥(公钥)两者中不能由一个推导出另一个,因此这类算法得到广泛应用,是数字签名的重要基础和理论保证,能够直接影响数字签名的安全性和实用性。理论上,公钥的公开不会对私钥的安全性构成任何威胁,因此公钥可以按需求发送给多个信息接收者,而私钥则必须被安全存储。目前主要是基于公钥加密算法构建数字签名。
1.2.2数字签名的定义
数字签名是对现实生活中手写签名和印章的电子模拟,通过利用签名者(信息发送者)的私钥对所要签署的信息进行加密从而产生数字签名。由于签名者的公钥是公开的,所以验证者(信息接收者)可以利用其公钥对签名进行验证,以确认签名者的身份。数字签名的主要过程如下。
首先签名者用私钥对信息的摘要进行签名,并把签名和信息一起传送给验证者。验证者在收到签名和信息后同样用哈希(Hash)函数计算信息的摘要,并使用签名者的公钥验证收到的签名是否是这个摘要的有效签名,如果是,则说明信息没有被修改;否则说明信息在传输过程中被修改过。数字签名的过程如图1-2所示。
一般而言,数字签名方案主要由以下三种算法组成。
(1)密钥生成算法KeyGen:输人安全参数A,输出系统公共参数PP和签名者的公私钥对(pk,sk),即KeyGen(P)-(PP,pk,sk)。
(2)数字签名生成算法Sign:输人系统公共参数PP、消息m和签名者的私钥sk,输出一个有效的签名s,即Sign(m,sk,PP)-s。
(3)数字签名验证算法Verify:输人系统公共参数PP、消息m、签名s和签名者的公钥pk,输出True或者False,即Verify(m,s,pk,PP)-{True,False}。这里,如果算法Verify输出True,则表示签名s是有效的数字签名;输出False,则表示签名s是无效的数字签名。
数字签名方案的正确性:正确性是数字签名方案必须要满足的一个基本性质。简单地说,数字签名方案的正确性是指,如果数字签名方案的各个参与方都是诚实的,并且都能够完整地执行协议,那么数字签名验证算法Verify总是能够以不可忽略的概率输出True,数字签名方案正确性的正式表述如下:
如果KeyGen(1)-(PP,pk,sk),并且,那么算法Verify(m,s,pk,PP)将以不可忽略的概率输出True。
1.2.3数字签名的特点
一个有效的数字签名必须要具备以下基本特点。
(1)完整性:数字签名可以有效验证信息的完整性,任何对信息细微的修改都将导致该信息的数字签名无法通过验证,因此完整性可防止信息被恶意篡改,此外由于哈希函数具有抗碰撞的特点,签名者可对信息的哈希函数值进行签名以提高数字签名的效率。
(2)身份认证:在信息传输过程中,数字签名可以对信息发送者的身份进行确认。例如,当用户向用户B发送一条消息M时,只要用户B验证该消息数字签名的真实性,就可以确认这条消息是否是用户发送的。
(3)不可伪造性:在签名者私钥安全的前提下,任何攻击者都不能伪造一个合法有效的数字签名,只有掌握了签名私钥的签名者才能产生有效的数字签名。不可伪造性是数字签名*基本、*重要的性质之一。
(4)不可否认性:数字签名者身份认证的基础,能够让签名者不能否认信息是由他签发的。对于一个数字签名,由于签名者的公钥是公开的,因此任何人都能够验证其有效性,并能通过公钥证书和验证结果确认签名者的身份,且签名者不能否认其签名。不可否认性使得签名者和验证者对签名真伪发生争议时,第三方能很容易地解决双方的争执。例如,在一个网络购物系统中,顾客通过网络向商家发送订单订购商品,如果顾客随意否认他的订单,就会造成电子商务交易的混乱,使得商家的利益受损,那么此时若在订单上使用数字签名就可以防止顾客的这种抵赖行为。如果顾客否认了他的订单,商家可以将带有数字签名的订单提供给认证方。由于顾客的公钥是公开的,认证方可以通过顾客的公钥去验证签名的有效性。如果签名有效,则说明此订单确实是顾客所发,从而顾客不能否认。
目前主要的数字签名算法都是建立在公钥密码学的基础上,已经成为公钥密码学的一个重要研究分支,在网络身份认证、密钥管理、多方安全计算、电子商务、电子政务及可信网络等领域都得到广泛应用,是确保网络中信息真实性、可靠性和完整性的重要工具,几乎所有网络安全协议的实现都离不开数字签名的支持,可以说没有数字签名就没有真正的网络安全。
1.2.4数字签名的安全性分析
针对数字签名安全性的研究,即鉴定签名方案是否满足完整性、身份认证、不可伪造性和不可否认性等安全性质,一直是促进该项技术发展的重要因素之一。
数字签名方案安全性的主要研究方法是从理论上进行分析,主要有以下三种分析方法。
(1)安全性评估:在数字签名方案设计过程中,设计者对所设计的方案进行相关的密码分析,尽可能保证其在所能考虑范围内的安全性。由于一般情况下,方案设计者无法穷举所有可能出现的情况,因此这种分析不是安全性证明,只是一种对签名方案安全性的评估,可以在一定程度上使用户对方案拥有信心。
(2)安全性证明:在数字签名方案设计过程中,设计者通过证明所设计的数字签名方案被密码攻击者破译的难度相当于破解一个公认的世界难题,来证明方案的安全性。目前主要的安全性证明方法有两类一基于随机预言机模型的安全性证明与基于
展开