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

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

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

首先发送方如果想加密发送一个很大的数据,由于非对称加密的速度很慢,所以只能采用对称式的加密方式,加密这个很大的明文数据。这时的口令就是一个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. Cassandra - Non-system keyspaces don't have the same replication settings, effective ownership information is meaningless

    In cassandra 2.1.4, if you run "nodetool status" without any keyspace specified, you will ...

  2. 为什么Underscore

    Underscore是什么? Underscore一个JavaScript实用库,提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象.它是这个问题的答案:“如果我在一个空白 ...

  3. c#部分常用方法

    此文章不断补充 1.判断该字符串是否存在于字符串数组中 string[] arr = {"aaa","bbb","aba","cc ...

  4. tcp窗口滑动以及拥塞控制

    转自:http://blog.chinaunix.net/uid-26275986-id-4109679.html TCP协议作为一个可靠的面向流的传输协议,其可靠性和流量控制由滑动窗口协议保证,而拥 ...

  5. Nhibernate 映射关系,一对多 多对一与多对手在映射文件中的体现。

    今天做了第一个Nhibernate项目,摸着石头过河,学到了一些东西,在这里将自己总结体会到的一些映射关系写出来,与大家分享,由于是初学者,如果有不对的地方希望大家能够指出来. 首先要说明要建立的几张 ...

  6. SQL Server 改变数据库的名字

    方法 1: alter database modiry name = new_database_name; ---------------------------------------------- ...

  7. js数值转换

    先来几个题吧: var num1 = Number("123blue");var num2 = Number("");var num3 = Number([]) ...

  8. Web模板

    http://www.iteye.com/news/26229 http://designmodo.com/admin-html-website-templates/#ixzz1mj36E4kN ht ...

  9. Protel在PCB中添加汉字

    使用Protel 99SE的工程人员都知道Protel在PCB绘制中是不支持汉字输入的,但作为工厂生产调试的方便,不可避免的要在PCB上制作中文标示,有时为说明板子的用途,注意事项等都要输入中文丝印, ...

  10. 10-3[RF] feature selection

    main idea: 计算每一个feature的重要性,选取重要性前k的feature: 衡量一个feature重要的方式:如果一个feature重要,则在这个feature上加上noise,会对最后 ...