加密传输SSL协议3_非对称加密
困死了,这里对非对称加密体系开个头,具体的实验明天写
非对称加密体系
为了解决对称加密中密钥的传输的问题,一些天才的数学家就提出了非对称式的加密体系,也称为公钥加密体系。
加密和解密的密钥是不同的。一把称为公钥,一把称为私钥。

比如,甲、乙、丙三个人要给丁发送信息,但是他们都不想让另外的两个人知道信息的内容。
首先丁要散布自己的公钥给甲、乙、丙,让地球人都知道他的公钥,若甲要给丁发送信息,那么甲就用丁的公钥加密数据,由于在这种加密体系中公钥只能加密,私钥只能解密,所以乙丙等任何人都不能解密,只有拥有私钥的丁能解密。这样就实现了不涉及密钥传输的安全传输。
非对称加密相关实验
(1)产生钥匙对
非对称加密涉及两把密钥,一把公钥,一把私钥。在进行数据传输之前,数据接收方首先要产生这个钥匙对。一般都是用RSA算法,并且这时的钥匙不再像对称加密时的一句口令那么简单了。而是一个很多字节的文件。

上面指令先产生私钥,这个私钥1024个bit。然后根据私钥再产生对应的公钥,这样一对钥匙就产生了。
然后数据接收方就把自己的公钥到处宣告,让地球人都知道,这样谁想给他发信息就可以用公钥加密,然后把密文传给他,他就能用私钥解密。
但是接收方的私钥不能让任何人只要,也就是说这个私钥文件不能落入别人之手,否则就会泄密。当然完全可以用前面讲的对称加密给他设一层口令,只有能回答口令的人才能使用私钥解密,这样即使私钥被其它人偷走了也没关系。(这个口令不传输,自己在脑子里记住就ok了,就像银行卡密码)
上面的公钥是直接根据私钥文件输出到屏幕上的,可以重定向的一个文件中:在后面加 > filename
(2)数据发送方用散布的公钥加密

这里的inkey后面的file就是公钥文件。
(3)数据接收方用自己的私钥解密密文

这里的inkey后面的file指的是私钥文件。
但是私钥的加密的速度很慢,比传统加密体系的速度慢三个数量级,所以只能加密少量的数据。如果你想给远在他乡的朋友传送1G的岛国电影种子,传统加密涉及到密钥的传输,不安全(别说打电话告诉他密钥,你就那么相信中国移动等运营商,不怕他盗取你的种子,哈哈~~);非对称式加密速度慢点很。为了解决这个问题,我们综合对称加密和非对称加密,这个在下节讲解。
加密传输SSL协议3_非对称加密的更多相关文章
- 加密传输SSL协议2_传统加密
原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点. The Priciple of Encryption/Decryption --conventiona ...
- 加密传输SSL协议5_Hash Function
怎么对一个大的文件进行签名,因为文件比较大,非对称签名很慢.那么想,我能把这个大的文件通过一种函数变换,变成一个和源文件唯一对应的的小的文件吗?答案是可以的. Hash Function 这里任何的文 ...
- 加密传输SSL协议6_验证公钥
如上图所示,我怎么能确定我手里的公钥就是我心中的接收方的公钥呢?怎么防止被钓鱼呢? 解决的办法就是引入一个第三方,一个权威机构,一个我们都相信的机构. 验证公钥,Digital Certificate ...
- 加密传输SSL协议7_SSL协议概述
SSL(Secure Sockets Layer) SSL的功能,可以在通信的双方中建立一个加密的通信通道 同时还可以确认通信的双方是不是就是其声称的人,防止被钓鱼. SSL在网络协议栈中的位置:可以 ...
- 加密传输SSL协议4_综合方案
隔了那么多天终于有时间继续把这个专题做完了,这次一定连续写完这方面的笔记. 上篇博文说明了非对称加密和对称加密各自的优缺点,那么就很自然的衍生出了一种综合的方案. 两种方案的结合--扬长避短 首先发送 ...
- 加密传输SSL协议8_Apache服务器的安装
学习了那么多的理论的知识,下面通过在Apache服务器中安装和使用SSL协议,实现安全传输,但是首先要安装好Apache服务器. Apache服务器的安装 Linux下所有的软件的原码的安装都是三部曲 ...
- 加密传输SSL协议1_OpenSSL的安装
终于在自己不断的奋斗之后,来到科大的一波考试过去了,但是为了不使自己过于放松,回顾一下之前的东西,做一下笔记.所以新开一个专题笔记: Using Apache with SSL 引入:首先我们在平时的 ...
- ssl原理,非对称加密握手,对称加密传输
SSL的基本思想是用非对称加密来建立链接(握手阶段),用对称加密来传输数据(传输阶段).这样既保证了密钥分发的安全,也保证了通信的效率. SSL握手,单方服务器认证(一般的浏览器上网) SSL握手,双 ...
- 学习笔记: MD5/DES/RSA三类加密,SSL协议解析
1. 不对称可逆加密的 的2种用法 (1)保证信息不被篡改 (2) 保证信息只能被我看到 2. CA证书的基本原理 流程如下: 百度公司 向CA机构报备 持有者姓名, 有效期, 要发布的公钥 , 扩 ...
随机推荐
- Appium Android Bootstrap控制源代码的分析AndroidElement
通过上一篇文章中<Appium Android Bootstrap源代码分析之简单介绍>我们对bootstrap的定义以及其在appium和uiautomator处于一个什么样的位置有了一 ...
- java中使用URLClassLoader访问外部jar包的java类
很多时候 我们写的Java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类. 下边是一种简单的实现方法: Class ...
- jQuery :lt()选择器
定义和用法 :lt() 选择器选取 index 值小于指定数字的元素.(不包含指定值) index 值从 0 开始.(从0开始计数) 最常见的用法:与其他选择器一起使用,选取指定组合中特定序号之前的元 ...
- jQuery的extend详解
JQuery的extend扩展方法: Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解. 一.Jquery的扩展方 ...
- HTML5 canvas绘制线条曲线
HTML5 canvas入门 线条例子 1.简单线条 2.三角形 3.填充三角形背景颜色 4.线条颜色以及线条大小 5.二次贝塞尔曲线 6.三次贝塞尔曲线 <!doctype html> ...
- css中element element和element>element选择器的区别
就是这样的选择器: 比如html中有这样一段布局: <div> <p>我是一个段落</p> </div> 这时你用div p{background:ye ...
- 用正则表达式抓取网页中的ul 和 li标签中最终的值!
获取你要抓取的页面 const string URL = "http://www.hn3ddf.gov.cn/price/GetList.html?pageno=1& ...
- python 网络编程第三版
为服务端增加多线程解决方案 1.服务端代码如下: ***这个版本并没有真正的起到多线程的作用,主要原因在于t.join():以后的版本会改进这个问题*** #!/usr/bin/python #!co ...
- Android开发:自定义GridView/ListView数据源
http://mobile.51cto.com/android-259861.htm 在开发中,我们常常会遇到比较复杂的GridView/ListView的布局,重新实现BaseAdapter不但能帮 ...
- PSAM SAM
第一个问题: 为什么要用SAM? 究竟谁最开始使用SAM这个词,已经无从考证,能够确认的是:这个世界上先有了PSAM,然后才有了SAM.由于网络状况的原因,或者是应用环境的要求,使用IC卡作为支付介质 ...