学习阅读的文章地址:http://www.youdzone.com/signature.html
另外学习过程中写些笔记,是个好习惯~~
公钥私钥的原则:
- 一个公钥对应一个私钥。
- 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
- 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
- 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
bob有一对公匙和私匙,他自己保留私匙,把公匙分给pat 和susan
case1:susan 用bob的公匙写加密信件发给bob
susan想邀请bob和她dating,用bob的公匙加密信件本身发给bob,信件本身被加密了,bob拿到被加密的文件后,用私匙解密,得到正确的信件内容。私匙只有bob拥有,其他人即使得到密文信件,也没法知道信件的真实内容了。
case2:bob用数字签名的方式回信给susan
bob接受了susan的dating请求,决定以数字签名的方式回信给susan,回信的内容是大家都可以见的。首先bob写好信件,通过hash函数,形成信件的摘要(digest),然后用私匙加密信件摘要(digest)成一个数字签名(Signature),并且把数字签名(signature)附在信件后面发送给susan。susan收到信件后,怎么确定这个信件是bob发的呢?首先她用bob的公匙解密数字签名(signature),然后把信件内容通过hash函数形成摘要(digest),如果信件摘要和解密数字签名以后的内容是一致的,那么就可以断定这封信是来自bob的了。数字签名可以防止内容在互联网上传输的过程中,被其他人篡改。
case3:数字签名的骗局
故事2如果这样发展,Doug其实对susan爱慕已久,他知道susan对bob有dating请求(线下潜入bob电脑,或者瞟一眼看到),他回去决定假冒bob,回应susan的邀请。首先doug潜入susan的系统,把bob的公匙换成自己的公匙,然后用自己的私匙给susan发一封拒绝dating的信件,并且是假借bob的名义的。susan以为是bob写的,就用bob的公匙(这时已经被替换成doug的公匙了),解开数字签名,并且验证通过了。susan认定这是bob拒绝了她。doug完美的欺骗了susan。
case4:数字证书Digital Certification
bob决定对自己的公匙做数字证书,让第三方来保管公匙,以防doug之徒的破坏。他找到"证书中心"(certificate authority,简称CA)。CA也有自己的公匙和私匙,它把bob的公匙和bob的信息一起加密,做成数字证书。bob有了这个数字证书以后,给susan写信的时候,不但在信下附上数字签名,还附上数字证书。susan拿到信以后,先用ca的公匙解密数字证书,得到bob的公匙,然后再解开bob的数字签名。
相关推荐
公钥私钥数字签名数字证书详解
数字证书原理,公钥私钥加密原理基础概念和原理,数字证书的管理与使用
详细介绍了区块链使用的不对称加密在数字证书数字签名的应用
java公钥加密私钥解密与数字证书,数字证书的生成看这里 http://hi.baidu.com/chenminliang/blog/item/2b30db24920ae0338744f9db.html
1.1、公钥密码体制(public-key cryptography)公钥密码体制分为三个部分,公钥、私钥、加密解密算法,它的加密解密过程如下:加密:通过加密算
1、很多刚接触加解密的同学会对单钥、双钥加密、公钥、私钥、数字证书、数字签名的概念感到头疼,这篇文章就是给你治病的。 2、童叟无欺,保证你看了过后会很满意。
公钥加密,数字签名,公钥认证,认证授权,基于 PKI 授权.zip
所有与数字证书相关的各种概念和技术,统称为PKI( Public Key Infrastructure 公钥基础...数字证书里包含了用户身份信息,用户公钥信息(两者用于确定用户)和CA的私钥数字签名(使用CA的公钥可判断证书是否被篡改)。
1:调用.NET2.0的MAKECERT创建含有私钥的数字证书,并存储到个人证书区; 2:将该证书导出为pfx文件,并为其指定一个用来打开pfx文件的password; 3:读取pfx文件,导出pfx中公钥和私钥; 4:用pfx证书中的公钥进行...
PHP通过OpenSSL生成证书、密钥并且加密解密数据,以及公钥,私钥和数字签名的理解 php代码简单生成 容易理解
文章中详细讲解 数字证书中是如何工作的。 公钥私钥是怎么回事。如何验证证书等。
1:调用.NET2.0的MAKECERT创建含有私钥的数字证书,并存储到个人证书区; 2:将该证书导出为pfx文件,并为其指定一个用来打开pfx文件的password; 3:读取pfx文件,导出pfx中公钥和私钥; 4:用pfx证书中的公钥进行...
1:调用.NET2.0的MAKECERT创建含有私钥的数字证书,并存储到个人证书区; 2:将该证书导出为pfx文件,并为其指定一个用来打开pfx文件的password; 3:读取pfx文件,导出pfx中公钥和私钥; 4:用pfx证书中的公钥进行...
学习RSA算法,读取数字证书中的私钥对文件进行加密,使用数字证书的公钥解密,这种方式就是RSA算法.
数字证书实际上是一串很长的编码,包括证书申请者的名称及相关信息、申请者的公钥、签发证书的CA的数字签名及证书的有效期等内容,通常保存在...因为加密过程不可逆,只有用私钥才能解密,所以数字证书的管理尤其重要。
C++语言实现调用CryptAPI函数库,生成自签名的数字证书,可以生成Pfx(P12)的证书,里面保存密钥对(公钥和私钥),Cer证书(里面只有公钥),还可以网上下载相关证书解析代码
数字证书格式 相关知识 和 方法 常见的数字证书格式以及区别 JKS BKS 证书导入、导出…… cer和pfx/p12 .key和.crt pem ... 公钥和私钥的区别 适合做关于证书的同胞们来参考,反正是找了很久且帮了大忙的东东
单向认证:客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到 客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到...
创建数字证书,更新数字证书,RSA私钥签名,公钥解密,验证数字签名,合并图章到另找一张图片
利用java读取PFX中的公钥和私钥对,采用RSA算法对文件进行加密解密。