原本到了睡觉的时间,但是做完了SSL的笔记还有GCC和Oracle等的好多的笔记,所以刻苦一点。

The Priciple of Encryption/Decryption

--conventional encryption

上节成功的安装好了openssl安全库,下面就进入一些加解密的理论的学习,有关的权威的书籍《应用密码学:协议、算法与C源程序》

作者:Bruce Schneier

整个加密的过程就是一种数学的变换:

对应的数学表示:

加密时,f1是加密的函数变换,它的输入是明文和口令,
解密时,f2是解密的函数变换,它的输入是密文和口令。
f1和f2是互逆的两种变换,但是f1和f2输入的参数key可以相等也可以不相等。相等的时候就是用同一把密钥进行加密和解密,不相等的时候就是用不同的密钥进行加解密。

根据加解密的key相同或者不同,加密术分为两个体系:对称式加密体系(传统加密体系)和非对称式加密体系。
本节主要讲述对称式的加密体系和相关的实验。

对称式加密体系


这种加密体系的优点:加密速度很快,可以加密大量的数据

但是有个致命的缺点:在非本地加密通信时,密钥的传输问题(把加密好的密文给接收方,你得把密钥给他,但是怎么安全传输这个密钥呢?)
虽然对称式加密体系有这个致命的缺点,但是它仍然是加密的主要手段,因为其加密速度快,能加密大量的数据。

下面用openssl实验这种对称式加密方式

openssl的加解密命令:

加密:

解密:

其中的ciphername指的是所用的加解密的算法,可以用的算法:base64(知识二进制和文本信息的一种转换算法),des,des3,rc2,rc5,aes256。

注意:加解密时用的算法要一样,否则不能正常解密。

vi pt.txt(建立一个文件,名字:pt.txt)

在文件中输入内容:hello,encryption and decryption

然后利用上面的加密指令加密(注意openssl的路径要写对,/opt/openssl/bin/openssl,当然相对路径也ok,这是linux的相关知识),并对加密后的文件命名为:ct.bin(二进制的,名字随便)

然后查看ct.bin 的内容,发现全是乱码(传染的SecureCRT全是乱码,不得不重启)。

cat ct.bin

这样就对明文实现了对称式的加密,把加密好的密文ct.bin和口令告诉接收方,然后接收方就能解密了。(两个人的加解密算法之前协商一致)

接收方,然后利用上面的解密的命令对ct.txt解密,解密后的文件名字:qt.txt

分别cat  pt.txt和qt.txt发现内容完全一致。

这样就是实现了文件的加密式的传输,但是这里存在一个安全漏洞,我的口令怎么告诉接收方啊,我还得亲自跑过去趴到他的耳边告诉他,那我干嘛不把明文直接告诉他?这个问题下节用非对称解密体系来解决,让你不用亲自跑过去,还能实现安全无漏洞的传输。

加密传输SSL协议2_传统加密的更多相关文章

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

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

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

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

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

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

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

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

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

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

  6. 加密传输SSL协议4_综合方案

    隔了那么多天终于有时间继续把这个专题做完了,这次一定连续写完这方面的笔记. 上篇博文说明了非对称加密和对称加密各自的优缺点,那么就很自然的衍生出了一种综合的方案. 两种方案的结合--扬长避短 首先发送 ...

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

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

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

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

  9. 数据的加密传输——单片机上实现TEA加密解密算法

    各位大侠在做数据传输时,有没有考虑过把数据加密起来进行传输,若在串口或者无线中把所要传的数据加密起来,岂不是增加了通信的安全性.常用的加密解密算法比如DES.RSA等,受限于单片机的内存和运算速度,实 ...

随机推荐

  1. 【迪杰斯特拉双关键字最短路】【HDU3790】【最短路径问题】

    题目大意: 给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. 只需要再更新的时候判断一下就好 voi ...

  2. 【递推+矩阵快速幂】【HDU2604】【Queuing】

    Queuing Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  3. Mps与Mrp区别

    MPS是完成品的计划表,描述一个特定的完成品的生产时间和生产数量.MPS是一个决定完成品生  产排程及可答应量(ATP)的程序.依据MPS,MRP得以计算在该完成品需求之下,所有组件,零件以  至原材 ...

  4. Silverlight学习(五)图形标绘

    Silverlight中进行图形标绘的方法太多了,这里的标绘和Arcgis中的标绘不同,这里大多是静态的标绘.标绘的方法主要有Path(路径标记法).直接标绘(Line等).几何标记(LineGeom ...

  5. C++中socket编程

    原文:http://blog.csdn.net/cuiran/article/details/5854794 Server端 #include <WINSOCK2.H> #include ...

  6. 各版本SDK Tools及ADT下载技巧

    我们在开发的时候,尤其是使用Eclipse安装ADT插件进行环境配置,我们需要从下载ADT插件及SDK,当我们从官网下载的时候,有的时候可能找不到下载的地方或者下载不到自己想要的版本,我就在此总结下如 ...

  7. php安装配置文件 源码和yum版

    源码安装 ./configure --prefix=/usr/local/services/php \--with-config-file-path=/usr/local/service/php/et ...

  8. C期未考试参考答案

    输入10个数,要求编写一个排序函数,能够实现按绝对值从大到小排序.在主函数中输入10个数.输出排序后的10个数 #include<stdio.h>#include<math.h> ...

  9. css3之3D翻牌效果

      最近一直在学css3,发现他真的是越来越牛逼.现在的css3已经不在是以前的css了,它能做出的功能效果是我们没法想象的了.它可以实现flash,可以制作一些js能做出来的效果,还可以写出ps做出 ...

  10. mongo设计(一)

    原文:http://blog.mongodb.org/post/87200945828/6-rules-of-thumb-for-mongodb-schema-design-part-1 By Wil ...