【所谓的公钥私钥】
原文: http://blog.gqylpy.com/gqy/302
"1.鲍勃有两把钥匙,一把是公钥,另一把是私钥
2.鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。
3.苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。
4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。
5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。
6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。
7.鲍勃将这个签名,附在信件下面,一起发给苏珊。
8.苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的。
9.苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。
10.复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。
11.后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。
12.鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。
13.苏珊收信后,用CA的公钥解开数字证书,就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。
文献原著:
http://www.youdzone.com/signature.html
"
原文: http://blog.gqylpy.com/gqy/302
原文地址:https://www.cnblogs.com/gqy02/p/11369892.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Windows挂载CFS文件系统
- XMU oj Problem List
- Python入门笔记(安装及初步使用)
- python 入门笔记[语法基础(上)]
- 怎样解决 JavaScript 生态中第三方安全性问题?
- 【Hadoop 分布式部署 十:配置HDFS 的HA、启动HA中的各个守护进程】
- 【Hadoop 分布式部署 十 一: NameNode HA 自动故障转移】
- Hive安装部署及简单测试 网页《一》
- Hive初步使用、安装MySQL 、Hive配置MetaStore、配置Hive日志《二》
- Python - lambda函数
- Oracle 基础学习笔记
- 算法【最大子序列问题】
- 【算法、递归回溯解决数独】
- Anaconda使用命令
- 最大连续子数组