现代社会对信息安全的需求大部分可以通过密码技术来实现,密码技术是信息安全的核心技术,它主要包括加密、密钥管理和签名认证三大技术。
6.1.1加密技术
加密技术是实现信息保密性的一种重要手段。利用加密技术可以达到对电子商务安全的需求,保证商务交易的机密性、完整性、真实性和不可否认性等。通常信息加密的途径是通过密码技术实现的,密码技术是保护信息的保密性、完整性、可用性的有力手段,它可以在一种潜在不安全的环境中保证通信及存储数据的安全,密码技术还可以有效地用于报文认证、数字签名等,以防止种种电子欺骗。可以说,加密技术是认证技术及其他许多安全技术的基础,也是信息安全的核心技术。
随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、“黑客”程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、“黑客”的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。
但我们必须清楚地认识到,这一切一切的安全问题我们不可能一下子全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许网络永远也不能有这么一天,就像“矛”与“盾”,网络与病毒、“黑客”永远是一对共存体。
现代的电脑加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。
1.加密的由来
加密作为保障数据安全的一种方式,它产生的历史相当久远,它起源于公元前2000年(几十个世纪了),当时埃及人是最先使用特别的象形文字作为信息编码的,随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。
近期加密技术主要应用于军事领域,如美国独立战争、美国内战和两次世界大战。最广为人知的编码机器是German Enigma机,在第二次世界大战中,德国人利用它创建了加密信息。此后,由于Alan Turing和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。当初,计算机的研究就是为了破解德国人的密码。随着计算机的发展、运算能力的增强,过去的密码都变得十分简单了,于是人们又不断地研究出了新的数据加密方式,如利用ROSA算法产生的私钥和公钥就是在这个基础上产生的。
2.加密的概念
数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程。
3.加密的理由
加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取。一个简单的例子就是密码的传输,计算机密码极为重要,许多安全防护体系是基于密码的,密码的泄露在某种意义上来讲意味着其安全体系的全面崩溃。
通过网络进行登录时,所键入的密码以明文的形式被传输到服务器,而网络上的窃听是一件极为容易的事情,所以很有可能“黑客”会窃取得用户的密码,如果用户是Root用户或Administrator用户,那后果将是极为严重的。
数字签名就是基于加密技术的,它的作用就是用来确定用户是否是真实的。应用最多的是电子邮件,如当用户收到一封电子邮件时,邮件上面标有发信人的姓名和信箱地址,很多人可能会简单地认为发信人就是信上说明的那个人,但实际上伪造一封电子邮件是极为容易的事。在这种情况下,就要用到加密技术基础上的数字签名,用它来确认发信人身份的真实性。
类似数字签名技术的还有一种身份认证技术,有些站点提供入站FTP和WWW服务,当然用户通常接触的这类服务是匿名服务,用户的权力要受到限制,但也有的这类服务不是匿名的,如某公司为了信息交流提供用户的合作伙伴非匿名的FTP服务,或开发小组把他们的Web网页上载到用户的WWW服务器上,现在的问题就是,用户如何确定正在访问用户服务器的人就是用户认为的那个人,身份认证技术就是一个最好的解决方案。
文件加密不只用于电子邮件或网络上的文件传输,也可应用静态的文件保护,如PIP软件就可以对磁盘、硬盘中的文件或文件夹进行加密,以防他人窃取其中的信息。
4.两种加密方法
加密技术通常分为两大类:“对称式”和“非对称式”。
对称式加密就是加密和解密使用同一个密钥,通常称为“Session Key”。这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必须配对使用,否则不能打开加密文件。“公钥”是可以对外公布的;“私钥”则不能,只能由持有人一个人知道。收件人解密时只要用自己的私钥即可,这样就很好地避免了密钥的传输安全性问题。
5.加密技术中的摘要函数(MAD、MAD和MAD)
摘要是一种防止改动的方法,其中用到的函数叫摘要函数。这些函数的输入可以是任意大小的消息,而输出是一个固定长度的摘要。摘要有这样一个性质:如果改变了输入消息中的任何东西,甚至只有一位,输出的摘要将会发生不可预测的改变,也就是说输入消息的每一位对输出摘要都有影响。总之,摘要算法从给定的文本块中产生一个数字签名(fingerprint或message digest),数字签名可以用于防止有人从一个签名上获取文本信息或改变文本信息内容并进行身份认证。摘要算法的数字签名原理在很多加密算法中都被使用,如SO/KEY和PGP(Pretty Good Privacy)。
现在流行的摘要函数有MAD和MAD,但要记住客户机和服务器必须使用相同的算法,无论是MAD还是MAD,MAD客户机不能和MAD服务器交互。
MAD摘要算法的设计是出于利用32位RISC结构来最大其吞吐量,而不需要大量的替换表(substitution table)来考虑的。
MAD算法是以消息给予的长度作为输入,产生一个128位的“指纹”或“消息化”。要产生两个具有相同消息化的文字块或者产生任何具有预先给定“指纹”的消息,都被认为在计算上是不可能的。
MAD摘要算法是个数据认证标准。MAD的设计思想是要找出速度更快,比MAD更安全的一种算法,MAD的设计者通过使MAD在计算上慢下来,以及对这些计算做了一些基础性的改动来解决安全性这一问题,是MAD算法的一个扩展。
6.密钥的管理
密钥既然要求保密,就涉及密钥的管理问题,管理不好,密钥同样可能被无意识地泄露,并不是有了密钥就高枕无忧,任何保密也只是相对的,是有时效的。要管理好密钥我们还要注意以下几个方面:
(1)密钥的使用要注意时效和次数。
如果用户可以一次又一次地使用同一密钥与别人交换信息,那么密钥也同其他任何密码一样存在着一定的安全性,虽然说用户的私钥是不对外公开的,但是也很难保证私钥长期的不被泄露。另外,使用一个特定密钥加密的信息越多,提供给窃听者的材料也就越多,从某种意义上来讲也就越不安全了。
因此,一般强调仅将一个对话密钥用于一条信息中或一次对话中,或者建立一种按时更换密钥的机制以减小密钥暴露的可能性。
(2)多密钥的管理。
假设在某机构中有100个人,如果他们任意两人之间可以进行秘密对话,那么总共需要多少密钥呢?每个人需要知道多少密钥呢?也许很容易得出答案,如果任何两个人之间需要不同的密钥,则总共需要4950个密钥,而且每个人应记住99个密钥。如果机构的人数是1000、10000人或更多,这种办法就显然过于愚蠢了,管理密钥将是一件可怕的事情。
Kerberos提供了一种解决问题的较好方案,它是由MIT发明的,使保密密钥的管理和分发变得十分容易,但这种方法本身还存在一定的缺点。为能在互联网上提供一个实用的解决方案,Kerberos建立了一个安全的、可信任的密钥分发中心(Key Distribution Center,KDC),每个用户只要知道一个和KDC进行会话的密钥就可以了,而不需要知道成百上千个不同的密钥。
假设用户甲想要和用户乙进行秘密通信,则用户甲先和KDC通信,用只有用户甲和KDC知道的密钥进行加密,用户甲告诉KDC他想和用户乙进行通信,KDC会为用户甲和用户乙之间的会话随机选择一个对话密钥,并生成一个标签,这个标签由KDC和用户乙之间的密钥进行加密,在用户甲启动和用户乙对话时,用户甲把这个标签交给用户乙。这个标签的作用是让用户甲确信和他交谈的是用户乙,而不是冒充者。因为这个标签是由只有用户乙和KDC知道的密钥进行加密的,所以即使冒充者得到用户甲发出的标签也不可能进行解密,只有用户乙收到后才能够进行解密,从而确定了与用户甲对话的人就是用户乙。
当KDC生成标签和随机会话密码,就会把它们用只有用户甲和KDC知道的密钥进行加密,然后把标签和会话密钥传给用户甲,加密的结果可以确保只有用户甲能得到这个信息,只有用户甲能利用这个会话密钥和用户乙进行通话。同理,KDC会把会话密码用只有KDC和用户乙知道的密钥加密,并把会话密钥给用户乙。
用户甲会启动一个和用户乙的会话,并用得到的会话密钥加密自己和用户乙的会话,还要把KDC传给它的标签传给用户乙以确定用户乙的身份,然后用户甲和用户乙之间就可以用会话密钥进行安全的会话了,而且为了保证安全,这个会话密钥是一次性的,这样“黑客”就更难进行破解了。同时由于密钥是一次性由系统自动产生的,则用户不必记那么多密钥了,方便了人们的通信。
7.数据加密的标准
最早、最著名的保密密钥或对称密钥加密算法DES(Data Encryption Standard)是由IBM公司在20世纪70年代发展起来的,并经政府的加密标准筛选后,于1976年11月被美国政府采用,DES随后被美国国家标准局和美国国家标准协会(American National Standard Institute,ANSI)承认。
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出。DES用软件进行解码需用很长时间,而用硬件解码速度非常快。幸运的是,当时大多数“黑客”并没有足够的设备制造出这种硬件设备。在1977年,人们估计要耗资两千万美元才能建成一个专用计算机用于DES的解密,而且需要12个小时的破解才能得到结果。当时DES被认为是一种十分强大的加密方法。
随着计算机硬件的速度越来越快,制造一台这样特殊的机器的花费已经降到了十万美元左右,而用它来保护十亿美元的银行,那显然是不够保险了。另一方面,如果只用它来保护一台普通服务器,那么DES确实是一种好的办法,因为“黑客”绝不会仅仅为入侵一个服务器而花那么多的钱破解DES密文。
另一种非常著名的加密算法就是RSA。RSA算法是基于大数不可能被质因数分解假设的公钥体系。简单地说就是找两个很大的质数。一个对外公开的为“公钥”;另一个不告诉任何人,称为“私钥”,这两个密钥是互补的,也就是说用公钥加密的密文可以用私钥解密,反过来也一样。
假设用户甲要寄信给用户乙,他们互相知道对方的公钥。甲就用乙的公钥加密邮件寄出,乙收到后就可以用自己的私钥解密出甲的原文。由于别人不知道乙的私钥,所以即使是甲本人也无法解密那封信,这就解决了信件保密的问题。另一方面,由于每个人都知道乙的公钥,他们都可以给乙发信,那么乙怎么确信是不是甲的来信呢?那就要用到基于加密技术的数字签名了。
甲用自己的私钥将签名内容加密,附加在邮件后,再用乙的公钥将整个邮件加密(注意这里的次序,如果先加密再签名的话,别人可以将签名去掉后签上自己的签名,从而篡改了签名)。这样这份密文被乙收到以后,乙用自己的私钥将邮件解密,得到甲的原文和数字签名,然后用甲的公钥解密签名,这样一来就可以确保两方面的安全了。
8.加密技术的应用
加密技术的应用是多方面的,但最为广泛的还是在电子商务和VPN上的应用,下面分别简述。
(1)在电子商务方面的应用。
电子商务(E-business)要求顾客可以在网上进行各种商务活动,不必担心自己的信用卡会被人盗用。在过去,用户为了防止信用卡的号码被窃取到,一般是通过电话订货,然后使用用户的信用卡进行付款。现在人们开始用RSA(一种公开/私有密钥)的加密技术,提高信用卡交易的安全性,从而使电子商务走向实用成为可能。
许多人都知道NETSCAPE公司是Internet商业中领先技术的提供者,该公司提供了一种基于RSA和保密密钥的应用于互联网的技术,被称为安全插座层(Secure Sockets Layer,SSL)。
也许很多人知道Socket,它是一个编程界面,并不提供任何安全措施,而SSL不但提供编程界面,而且向上提供一种安全的服务,SSL3.0现在已经应用到了服务器和浏览器上,SSL2.0则只能应用于服务器端。
SSL3.0用一种电子证书(electric certificate)来实现身份进行验证后,双方就可以用保密密钥进行安全的会话了。它同时使用“对称”和“非对称”加密方法,在客户与电子商务的服务器进行沟通的过程中,客户会产生一个Session Key,然后客户用服务器端的公钥将Session Key进行加密,再传给服务器端,在双方都知道Session Key后,传输的数据都是以Session Key进行加密与解密的,但服务器端发给用户的公钥必须先向有关发证机关申请,以得到公证。
基于SSL3.0提供的安全保障,用户就可以自由订购商品并且给出信用卡号了,也可以在网上和合作伙伴交流商业信息并且让供应商把订单和收货单从网上发过来,这样可以节省大量的纸张,为公司节省大量的电话、传真费用。在过去,电子信息交换(Electric Data Interchange,EDI)、信息交易(information transaction)和金融交易(financial transaction)都是在专用网络上完成的,使用专用网的费用大大高于互联网。正是这样巨大的诱惑,才使人们开始发展互联网上的电子商务,但不要忘记数据加密。
(2)加密技术在VPN中的应用。
现在,越来越多的公司走向国际化,一个公司可能在多个国家都有办事机构或销售中心,每一个机构都有自己的局域网LAN(Local Area Network),但在当今的网络社会人们的要求不仅如此,用户还希望将这些LAN联结在一起组成一个公司的广域网,这在现在已不是什么难事了。
事实上,很多公司都已经这样做了,但他们一般租用专用线路来连结这些局域网,考虑的就是网络的安全问题。现在具有加密/解密功能的路由器已到处都是,这就使人们通过互联网连接这些局域网成为可能,这就是我们通常所说的虚拟专用网(Virtual Private Network,VPN)。当数据离开发送者所在的局域网时,该数据首先被用户端连接到互联网上的路由器进行硬件加密,数据在互联网上是以加密的形式传送的,当达到目的LAN的路由器时,该路由器就会对数据进行解密,这样目的LAN中的用户就可以看到真正的信息了。
6.1.2密钥管理技术
在采用密码技术保护的现代通信系统中,密码算法通常是公开的,因此其安全性就取决于对密钥的保护。密钥管理的任务就是管理密钥的产生到销毁全过程,包括系统初始化、密钥的产生、存储、备份、恢复、装入、分配、保护、更新、控制、丢失、吊销和销毁等。从网络应用来看,密钥一般分为以下几类:基本密钥、会话密钥、密钥加密密钥和主机密钥等。
(1)基本密钥:基本密钥又称初始密钥,是由用户选定或由系统分配,可在较长时间内由一对用户专门使用的秘密密钥,也称用户密钥。基本密钥既要安全,又要便于更换。基本密钥与会话密钥一起用于启动和控制密钥生成器,从而生成用于加密数据的密钥流。
(2)会话密钥:会话密钥即两个通信终端用户在一次通话或交换数据时所用的密钥。当用于对传输的数据进行保护时称为数据加密密钥,而用于保护文件时称为文件密钥。会话密钥的作用是使人们不必太频繁地更换基本密钥,有利于密钥的安全和管理。这类密钥可由用户双方预先约定,也可由系统通过密钥建立协议动态地生成并赋予通信双方,它为通信双方专用,故又称专用密钥。
(3)密钥加密密钥:用于对传送的会话或文件密钥进行加密时采用的密钥,也称为次主密钥、辅助密钥或密钥传送密钥。每个节点都分配有一个这类密钥。为了安全,各节点的密钥加密密钥应该互不相同。每个节点都须存储有关到其他各节点和本节点范围内各终端所用的密钥加密密钥,而各终端只需要一个与其节点交换会话密钥时所需要的密钥加密密钥,称为终端主密钥。
(4)主机主密钥:是对密钥加密密钥进行加密的密钥,存于主机处理器中。
除了上述几种密钥外,还有一些密钥,如用户选择密钥、算法更换密钥等,这些密钥的某些作用可以归入上述几类中。
1.密钥的产生和装入
密钥的产生必须考虑具体密码体制的公认的限制。
网络系统中加密需要大量的密钥,以分配给各主机、节点和用户。产生好的密钥是非常重要的。可以用手工的方法,也可以用密钥产生器产生密钥。用密钥产生器产生密钥不仅可以减轻烦琐的劳动,而且可以消除人为的差错。
不同种类的密钥产生的方法不同。基本密钥是控制和产生其他加密密钥的密钥,而且长期使用,其安全性非常关键,需要保证其完全随机性、不可重复性和不可预测性。而任何密钥产生器产生的密钥都有周期性和被预测的危险,不适宜作主机密钥。基本密钥量小,可以用掷硬币等方法手工产生。密钥加密密钥可以用伪随机数产生器、安全算法等产生。如在主机主密钥控制下,由X9.17安全算法生成。会话密钥、数据加密密钥可在密钥加密密钥控制下通过安全算法产生。
密钥的装入有以下几种情形:
(1)主机主密钥的装入:主密钥由可信赖的保密员在非常安全的条件下装入主机,一旦装入,就不能读取。输入环境要防电磁辐射、防窜扰、防人为出错。并且要用可靠的算法检验证实装入的密钥是否正确。
(2)终端主密钥的装入:可由保密员在安全的条件下装入,也可以用专用的密钥注入设备装入,以后不能读取。同样要验证装入密钥的正确性。
(3)会话密钥的获取:如主机与某终端通信,主机产生会话密钥,以相应的终端主密钥对其进行加密,将加密结果送给相应的终端,终端收到后,解密得到会话密钥。
2.对称密码体制的密钥分配
任何密码系统的强度都依赖于密钥分配技术,密钥分配研究密码系统中密钥的分发和传送问题。对称密码的密钥分配的方法归纳起来有两种:利用公钥密码体制实现和利用安全信道实现。
利用安全信道实现是指直接面议或通过可靠的信使传递。传统的方法是通过邮递或信使传送密钥,密钥可用打印、穿孔纸带或电子形式记录。这种方案的安全性完全取决于信使的忠诚和素质。这种方式成本较高,有人估计分配密钥的费用占密码系统费用的1/3.为了减少费用,可采用分层的方法,信使只传送密钥加密密钥,这种方法只适宜于高安全级密钥,如主密钥的传递;也可采用某种隐蔽的方法,如将密钥分拆成几部分分别递送,除非敌手可以截获密钥的所有部分。这只适宜于少量密钥的情况,如主密钥、密钥加密密钥。会话密钥可以用主密钥加密后通过公用网络传送。
在局部网络中,每对用户可以共享一个密钥。两个用户A和B要建立会话密钥,须经过以下3步:
①A同B发出建立会话密钥的请求和一个一次性随机数N1.
②B用与A共享的主密钥对应答的消息加密,并发送给A,应答的消息中包括B选取的会话密钥、B的身份、f(N1)和另一个一次性随机数N2.
③A用新建立的会话密钥加密f(N2)并发送给B。
在大型网络中,不可能每对用户共享一个密钥。因此采用中心化密钥分配方式,由一个可信赖的联机服务器作为密钥分配中心(KDC)来实现。如果用户A和B要建立共享密钥,可以采用如下5个步骤:
①A向KDC发出会话密钥请求。该请求由两个数据项组成,一是A与B的身份;二是一次性随机N1.
②KDC为A的请求发出应答。应答是用A与KDC的共享主密钥加密的,因而只有A能解密这一消息,并确信消息来自KDC。消息中包含A希望得到的一次性会话密钥K,以及A的请求,还包括一次性随机数N1.因此A能验证自己的请求没有被篡改,并通过一次性随机数N1可知收到的应答不是过去的应答的重放。消息中还包含A要转发给B的部分,这部分包括一次性会话密钥Ks和A的身份。它们是用B与KDC的共享主密钥加密的。
③A存储会话密钥,并向B转发从KDC的应答中得到的应该转发给B的部分。B收到后,可得到会话密钥Ks,从A的身份可知会话的另一方为A。
④用会话密钥K加密另一个一次性随机数N2,并将加密结果发送给A。
⑤A用会话密钥Ks加密f(N2),并将加密结果发送给B。
应当注意前3步已完成密钥的分配,后两步结合第②、③步完成认证功能。
3.公钥密码体制的密钥分配
当A要与B通信时,A产生一对公钥、私钥对,并向B发送产生的公钥和A的身份。B收到A的消息后,产生会话密钥Ks,用A发送来的公钥加密后发送给A。A用私钥解密得到会话密钥Ks。此时,A和B可以用会话密钥Ks进行保密通信。A销毁此次产生的公钥、私钥对,B销毁从A得到的公钥。
公钥的分配方法有以下几种:
(1)公开发布:用户将自己的公钥发给所有其他用户或向某一团体广播。如将自己的公钥附加在消息上,发送到公开的区域,如互联网的邮件列表。这种方法简单但有一个非常大的缺陷,别人很容易伪造这种公开的发布。
(2)公钥动态目录表:指建立一个公用的公钥动态目录表,表的建立和维护以及公钥的分布由某个公钥管理机构承担,每个用户都可靠地知道管理机构的公钥。公钥的分配步骤如下:
用户A向公钥管理机构发送一带时戳的请求,请求得到用户B当前的公钥。
管理机构为A的请求发出应答,应答中包含B的公钥以及A向公钥管理机构发送的带时间戳的请求。
A用B的公钥加密一个消息并发送给B,这个消息由A的身份和一个一次性随机数M组成。
B用与A同样的方法从公钥管理机构得到A的公钥。
B用A的公钥加密一个消息并发送给A,这个消息由N1和N2组成,这里N2是B产生的一个一次性随机数。
A用B的公钥加密N2,并将加密结果发送给B。
用上述方案分配公钥也有缺点,由于每一用户要想与他人通信都要求助于公钥管理机构,因而公钥管理机构有可能成为系统的“瓶颈”,而且公钥目录表也容易被窜扰。
分配公钥的一种安全有效的方法是采用公钥证书,用户通过公钥证书相互之间交换自己的公钥而无需与公钥管理机构联系。公钥证书由证书管理机构CA为用户建立,其中的数据项有该用户的公钥、用户的身份和时间戳等。所有的数据经CA用自己的私钥签字后就形成证书。证书中可能还包括一些辅助信息,如公钥使用期限、公钥序列号或识别号、采用的公钥算法、使用者的住址或网址等。
4.密钥托管
密钥托管密码系统是具有备份解密能力的密码系统。它允许授权者在特定的条件下,借助于一个以上持有专用数据恢复密钥的、可信赖的委托方所提供的信息来解密密文。数据恢复密钥不同于通常的加、解密密钥,但由它们可以恢复加、解密密钥。
密钥托管技术提供了一个备用的解密途径,政府机构在需要时,可通过密钥托管技术解密用户的信息,而用户的密钥若丢失或损坏,也可通过密钥托管技术恢复出自己的密钥。一个密钥托管系统由用户安全组件USC、密钥托管组件KEC和数据恢复组件DRC三个部分组成。USC使用密钥K加密明文数据,并把数据恢复域DRF连接到密文上;DRC则利用KEC提供的信息和包含于数据恢复域DRF中的信息恢复出明文。
6.1.3数字签名技术
数字签名是通过一个单向哈希函数对要传送的报文进行处理,用以认证报文来源并核实报文是否发生变化的一个字母数字串。该字母数字串称为该消息的消息鉴别码或消息摘要,这就是通过单向哈希函数实现的数字签名;在公钥体制下的签名,用户用自己的私钥对原始数据的哈希摘要进行加密,然后信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与自己收到的原始数据产生的哈希摘要对照,便可确信原始资料是否被篡改,这样就保证了传输的不可否认性。这就是公钥签名技术。
数字签名可以解决否认、伪造、篡改及冒充等问题,具体要求为:
发送者事后不能否认发送的报文签名。
接收者能够核实发送者发送的报文签名、接收者不能伪造发送者的报文签名、接收者不能对发送者的报文进行部分篡改。
网络中的其他用户不能冒充作为发送者和接收者。
1.RSA数字签名体制
RSA是最流行的一种加密标准,基于RSA公钥密码体制的数字签名方案通常称为RSA数字签名方案。RSA既可以用来加密数据,也可以用于身份认证。其安全性主要是基于大整数素数分解的难解性。
2.ElGamal数字签名体制
ElGamal于1985年基于离散对数问题提出了一个数字签名体制。
3.数字签名标准DSS
DSA(Digital Signature Algorithm)是Schnorr和ElGamal签名的变种,被美国NIST作为DSS(Digital Signature Standard)数字签名标准。DSS由美国国家标准技术研究所(NIST)和国家安全局共同开发。