解密消息时,取每一个加密后的分组ci并计算:
由于: ,全部(mod n)这个公式能恢复出明文。
公开密钥 n:两素数p和q的乘积(p和q必须保密) e:与(p-1)(q-1)互素
私人密钥
加密
解密
3.公开密钥数字签名算法(签名)
dsa(digital signature algorithm,数字签名算法,用作数字签名标准的一部分),它是另一种公开密钥算法,它不能用作加密,只用作数字签名。dsa使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。它也可用于由第三方去确定签名和所签数据的真实性。dsa算法的安全性基于解离散对数的困难性,这类签字标准具有较大的兼容性和适用性,成为网络安全体系的基本构件之一。
dsa签名算法中用到了以下参数:
p是l位长的素数,其中l从512到1024且是64的倍数。
q是160位长且与p-1互素的因子。
,其中h是小于p-1并且满足 大于1的任意数。
x是小于q的数。
另外,算法使用一个单向散列函数h(m)。标准指定了安全散列算法(sha)。三个参数p,q和g是公开的,且可以被网络中所有的用户公有。私人密钥是x,公开密钥是y。
对消息m签名时:
(1) 发送者产生一个小于q的随机数k。
(2) 发送者产生:
r和s就是发送者的签名,发送者将它们发送给接受者。
(3) 接受者通过计算来验证签名:
如果v=r,则签名有效。
dsa签名:
公开密钥:
p 512位到1024位的素数
q 160位长,并与p-1互素的因子
,其中h是小于p-1并且满足 大于1的任意数。
私人密钥:
x小于q
签名:
k选取小于q的随机数
验证:
如果v=r,则签名被验证。
4.数字签名与数字信封
公钥密码体制在实际应用中包含数字签名和数字信封两种方式。
数字签名是指用户用自己的私钥对原始数据的哈希摘要进行加密所得的数据。信息接收者使用信息发送者的公钥对附在原始信息后的数字签名进行解密后获得哈希摘要,并通过与自己用收到的原始数据产生的哈希哈希摘要对照,便可确信原始信息是否被篡改。这样就保证了数据传输的不可否认性。
哈希算法是一类符合特殊要求的散列函数(hash)函数,这些特殊要求是:
接受的输入报文数据没有长度限制;
对任何输入报文数据生成固定长度的摘要("数字指纹")输出;
由报文能方便地算出摘要;
难以对指定的摘要生成一个报文,由该报文可以得出指定的摘要;
难以生成两个不同的报文具有相同的摘要。
数字信封的功能类似于普通信封。普通信封在法律的约束下保证只有收信人才能阅读信的内容;数字信封则采用密码技术保证了只有规定的接收人才能阅读信息的内容。 数字信封中采用了单钥密码体制和公钥密码体制。信息发送者首先利用随机产生的对称密码加密信息,再利用接收方的公钥加密对称密码,被公钥加密后的对称密码被称之为数字信封。在传递信息时,信息接收方要解密信息时,必须先用自己的私钥解密数字信封,得到对称密码,才能利用对称密码解密所得到的信息。这样就保证了数据传输的真实性和完整性。
5.数字证书
数字证书是各类实体(持卡人/个人、商户/企业、网关/银行等)在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方证书的有效性,从而解决相互间的信任问题。证书是一个经证书认证中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。 从证书的用途来看,数字证书可分为签名证书和加密证书。签名证书主要用于对用户信息进行签名,以保证信息的不可否认性;加密证书主要用于对用户传送信息进行加密,以保证信息的真实性和完整性。
简单的说,数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性。证书格式及证书内容遵循x.509标准。
6.数字证书的应用
现有持证人甲向持证人乙传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下:
(1) 甲准备好要传送的数字信息(明文)。
(2) 甲对数字信息进行哈希(hash)运算,得到一个信息摘要。
(3) 甲用自己的私钥(sk)对信息摘要进行加密得到甲的数字签名,并将其附在数字信息上。
(4) 甲随机产生一个加密密钥(des密钥),并用此密钥对要发送的信息进行加密,形成密文。
(5) 甲用乙的公钥(pk)对刚才随机产生的加密密钥进行加密,将加密后的des密钥连同密文一起传送给乙。
(6) 乙收到甲传送过来的密文和加过密的des密钥,先用自己的私钥(sk)对加密的des密钥进行解密,得到des密钥。
(7) 乙然后用des密钥对收到的密文进行解密,得到明文的数字信息,然后将des密钥抛弃(即des密钥作废)。
(8) 乙用甲的公钥(pk)对甲的数字签名进行解密,得到信息摘要。
(9) 乙用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。
(10) 乙将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。
三.pki组成
pki是一种新的安全技术,它由公开密钥密码技术、数字证书、证书发放机构(ca)和关于公开密钥的安全策略等基本成分共同组成的。pki是利用公钥技术实现电子商务安全的一种体系,是一种基础设施,网络通讯、网上交易是利用它来保证安全的。从某种意义上讲,pki包含了安全认证系统,即安全认证系统-ca/ra系统是pki不可缺的组成部分。
pki(public key infrastructure)公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用pki框架管理密钥和证书可以建立一个安全的网络环境。pki主要包括四个部分:x.509格式的证书(x.509 v3)和证书废止列表crl(x.509 v2);ca/ra操作协议;ca管理协议;ca政策制定。一个典型、完整、有效的pki应用系统至少应具有以下部分;
认证中心ca ca是pki的核心,ca负责管理pki结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份,ca还要负责用户证书的黑名单登记和黑名单发布,后面有ca的详细描述。
x.500目录服务器 x.500目录服务器用于发布用户的证书和黑名单信息,用户可通过标准的ldap协议查询自己或其他人的证书和下载黑名单信息。
具有高强度密码算法(ssl)的安全www服务器 出口到中国的www服务器,如微软的iis、netscape的www服务器等,受出口限制,其rsa算法的模长最高为512位,对称算法为40位,不能满足对安全性要求很高的场合,为解决这一问题,采用了山东大学网络信息安全研究所开发的具有自主版权的ssl安全模块,在ssl安全模块中使用了自主开发的sjy系列密码设备,并且把ssl模块集成在apache www服务器中,apache www服务器在www服务器市场中占有百分之50以上的份额,其可移植性和稳定性很高。
web(安全通信平台) web有web client端和web server端两部分,分别安装在客户端和服务器端,通过具有高强度密码算法的ssl协议保证客户端和服务器端数据的机密性、完整性、身份验证。
自开发安全应用系统 自开发安全应用系统是指各行业自开发的各种具体应用系统,例如银行、证券的应用系统等。