隔了那么多天终于有时间继续把这个专题做完了,这次一定连续写完这方面的笔记。

上篇博文说明了非对称加密和对称加密各自的优缺点,那么就很自然的衍生出了一种综合的方案。

两种方案的结合--扬长避短

首先发送方如果想加密发送一个很大的数据,由于非对称加密的速度很慢,所以只能采用对称式的加密方式,加密这个很大的明文数据。这时的口令就是一个session key,这个口令是个随机数,每次通讯的时候都不一样,发送方也不关心这个口令是什么,因为他只要能安全的给接收方就可以了。

那么怎样才能确保这个session key安全的到达接收方呢?

用非对称加密的方式对session key加密,这样只有接收方用自己的私钥才能解密session key,并用session key解密那个很大的文件的密文。

其他的人不管是截取了那个数据都看不到原始的明文数据。

接收方的工作流程,这样就能很好的做到了数据的加密传输。

做到现在似乎已经无懈可击了,哈哈~~其实不然,这个方案依然有很大的安全漏洞,后面讲!

非对称加密的另一种应用--数字签名

在日常的生活中,这种签名的方案到处都在,如信用卡购物,付款的时候消费者要签名,证明这个账单或者文件被签名人认可。这里的数字签名一样的道理,但是有所不同,不同的是:购物时的签名,能通过笔迹确定这个签名是谁签的,但是在网络通信中怎么确定这个签名的主人呢?利用非对称加密就能搞定。

具体做法就是:发送方用自己的私钥加密也就是这个的签名,然后数据接收方用发送方的公钥解密还原明文。这里签名的意思就是发送者认可这个明文,然后才对这个明文签名的(加密),也就是说发送者对这个明文负法律责任。这个明文出现任何的虚假的信息,发送者都有法律责任,因为你签过名,认可了这个文件;因为只有你自己有你的私钥,这个签的人一定是你。(说什么我的私钥被盗了,不好意思,还是你的责任)

也就是说只要接收方收的的密文,用接收方的公钥能解密,就说明你签名了,文件出现任何的虚假的信息,接收方都可以追究发送方的责任。

签名认证的实验

(1)产生用于签名认证的一对钥匙

方式同加解密的钥匙对一样,不同点在于这里是用私钥加密,用公钥解密。

(2)用私钥签名(加密)

(3)用公钥验证(解密)

上面个的过程就奠定了对一个电子文件不可否认的基石,只要你对一个电子文档签了名(也就是用你的私钥对该电子文档加了密),就代表你对这个电子文档认可,你要对他的真实性负法律责任。

提示:

对数据的非对称加密和文件的签名认证其实是一回事,都是加解密的过程。不同的仅仅是加密和解密用的密钥不同,no big deal。

遗留问题:

前面说过非对称加密的速度很慢,特别是对大的文件。那么如果要签名一个很大的文件,应该怎么做?还是用一个session key结合对称加密?其实没有必要,因为我用私钥加密,我的公钥又散布给所有的人,任何人都能看到我的明文。他们只是要确定这个明文的可靠性,通过我的认证来确定这个明文的可靠性。下面将解决的办法。

加密传输SSL协议4_综合方案的更多相关文章

  1. 加密传输SSL协议7_SSL协议概述

    SSL(Secure Sockets Layer) SSL的功能,可以在通信的双方中建立一个加密的通信通道 同时还可以确认通信的双方是不是就是其声称的人,防止被钓鱼. SSL在网络协议栈中的位置:可以 ...

  2. 加密传输SSL协议8_Apache服务器的安装

    学习了那么多的理论的知识,下面通过在Apache服务器中安装和使用SSL协议,实现安全传输,但是首先要安装好Apache服务器. Apache服务器的安装 Linux下所有的软件的原码的安装都是三部曲 ...

  3. 加密传输SSL协议6_验证公钥

    如上图所示,我怎么能确定我手里的公钥就是我心中的接收方的公钥呢?怎么防止被钓鱼呢? 解决的办法就是引入一个第三方,一个权威机构,一个我们都相信的机构. 验证公钥,Digital Certificate ...

  4. 加密传输SSL协议1_OpenSSL的安装

    终于在自己不断的奋斗之后,来到科大的一波考试过去了,但是为了不使自己过于放松,回顾一下之前的东西,做一下笔记.所以新开一个专题笔记: Using Apache with SSL 引入:首先我们在平时的 ...

  5. 加密传输SSL协议5_Hash Function

    怎么对一个大的文件进行签名,因为文件比较大,非对称签名很慢.那么想,我能把这个大的文件通过一种函数变换,变成一个和源文件唯一对应的的小的文件吗?答案是可以的. Hash Function 这里任何的文 ...

  6. 加密传输SSL协议2_传统加密

    原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点. The Priciple of Encryption/Decryption --conventiona ...

  7. 加密传输SSL协议3_非对称加密

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

  8. 学习笔记: MD5/DES/RSA三类加密,SSL协议解析

    1. 不对称可逆加密的 的2种用法 (1)保证信息不被篡改 (2) 保证信息只能被我看到 2. CA证书的基本原理 流程如下:  百度公司 向CA机构报备 持有者姓名, 有效期, 要发布的公钥 , 扩 ...

  9. HTTPS(身披SSL协议的HTTP)

    参考链接: HTTP 与 HTTPS 的区别 HTTPS科普扫盲帖 HTTPS小结 HTTP 和 HTTPS 区别 HTTP是明文传输未加密,安全性差,HTTPS(HTTP + SSL)数据传输是加密 ...

随机推荐

  1. 图的邻接表存储 c实现

    图的邻接表存储 c实现 (转载) 用到的数据结构是 一个是顶点表,包括顶点和指向下一个邻接点的指针 一个是边表, 数据结构跟顶点不同,存储的是顶点的序号,和指向下一个的指针 刚开始的时候把顶点表初始化 ...

  2. MTK Android4.0.3 ICS 添加缅甸语Myanmar

    最近几个项目需要添加缅甸语,借助网络资源,同时结合自身实践,成功添加缅甸语,现分享经验如下. 一. 前期工作: 准备Myanmar字库,下载地址:http://www.myordbok.com/mya ...

  3. ASP.NET MVC 学习之路-6

    本文在于巩固基础 上文中使用的Code First创建数据库 本文将使用数据库生成模型 这里使用ADO.NET实体数据模型来生成模型 下面按照指导完成操作 下面看看如何使用这个框架 数据访问修改主要是 ...

  4. 前端开发必备的Sublime 3插件

    Sublime的大名已经无需我介绍了,首先先介绍如何启用插件安装功能: 打开Sublime 3,然后按 ctrl+` 或者在View → Show Console 在打开的窗口里黏贴这个网站上的代码( ...

  5. 用于Lucene的各中文分词比较

    对几种中文分析器,从分词准确性和效率两方面进行比较.分析器依次为:StandardAnalyzer.ChineseAnalyzer.CJKAnalyzer.IK_CAnalyzer.MIK_CAnal ...

  6. .Net 缓存依赖详解

    缓存命名空间的讲解流程 16.1  System.Web.Caching简介 本节从缓存命名空间的总体简介和组成结构入手,从整体上对System.Web.Caching进行概述. 16.1.1  Sy ...

  7. 实现Jquery触发一事件后,停留5秒,再接着触发下面的事件

    这里是一个广告位的Jquery的代码,有两个不同的广告位,一个是中间浮动显示的,显示5秒后自动消失,并限定每天仅出现一次(Cookie实现): //=====================广告位的j ...

  8. HDU 1038 - Biker's Trip Odometer

    算一下路程和速度... #include <iostream> #include <cstdio> using namespace std; const double p=3. ...

  9. 二.ubuntu14.04 3D特效设置

    一.如果按照第一篇都设置好了(显卡驱动等都已经正常),然后 1.安装CCSM设置管理器 用鼠标点击屏幕左侧Unity程序启动栏中的“Ubuntu软件中心”(有“A”字形的公文包图标), 在弹出的“Ub ...

  10. linux 下访问mysql

    1:先进到root:/# /usr/local/mysql/bin/2:root:/# mysql -u root -p     Enter password: