数字签名和数字证明书 数字签名 在金融和商业等系统中许多业务都要求在单据上加以签名或加盖印章证实其真实性以备日后查验在利用计算机网络传送报文时可将公开密钥法用于电子(数字)签名来代替传统的签名为使数字签名能代替传统的签名必须满足下述三个条件 () 接收者能够核实发送者对报文的签名 () 发送者事后不能抵赖其对报文的签名 () 接收者无法伪造对报文的签名 ) 简单数字签名 在这种数字签名方式中发送者A可使用私用密钥Kda对明文P进行加密形成DKda(P)后传送给接收者BB可利用A的公开密钥Kea对DKda(P)进行解密得到EKea(DKda(P))=P如图(a)所示 我们按照对数字签名的三点基本要求进行分析后可得知 () 接收者能利用A的公开密钥Kea对DKda(P)进行解密这便证实了发送者对报文的签名 () 由于只有发送者A才能发送出DKda(P)密文故不容A进行抵赖 () 由于B没有A所拥有的私用密钥故B无法伪造对报文的签名 由此可见图 (a)所示的简单方法可以实现对传送的数据进行签名但并不能达到保密的目的因为任何人都能接收DKda(P)且可用A的公开密钥Kea对DKda(P)进行解密为使A所传送的数据只能为B所接收必须采用保密数字签名 ) 保密数字签名 为了实现在发送者A和接收者B之间的保密数字签名要求A和B都具有密钥再按照图(b)所示的方法进行加密和解密 () 发送者A可用自己的私用密钥Kda对明文P加密得到密文DKda(P) () A再用B的公开密钥Keb对DKda(P)进行加密得到EKeb(DKda(P))后送B () B收到后先用私用密钥Kdb进行解密即DKdb(EKeb(DKda(P)))=DKda(P) () B再用A的公开密钥Kea对DKda(P)进行解密得到EKea(DKda(P))=P 数字证明书(Certificate) () 用户A在使用数字证明书之前应先向认证机构CA申请数字证明书此时A应提供身份证明和希望使用的公开密钥A () CA在收到用户A发来的申请报告后若决定接受其申请便发给A一份数字证明书在证明书中包括公开密钥A和CA发证者的签名等信息并对所有这些信息利用CA的私用密钥进行加密(即CA进行数字签名) () 用户A在向用户B发送报文信息时由A用私用密钥对报文加密(数字签名)并连同已加密的数字证明书一起发送给B () 为了能对所收到的数字证明书进行解密用户B须向CA机构申请获得CA的公开密钥BCA收到用户B的申请后可决定将公开密钥B发送给用户B () 用户B利用CA的公开密钥B对数字证明书加以解密以确认该数字证明书确系原件并从数字证明书中获得公开密钥A并且也确认该公开密钥A确系用户A的 () 用户B再利用公开密钥A对用户A发来的加密报文进行解密得到用户A发来的报文的真实明文 ——返回教材目录 了解更多计算机相关基础课程视频 |