密码技术探险——图解密码技术读书笔记

从明文通信到对称加密

明文通信

为什么要加密呢?不妨先看看明文通信

未加密的危险

Eve 可以直接窃听到Alice与Bob的通信过程,通过抓包就可以查看到通信内容,如果邮件内容是羞答答的,怎么可以被其他人看到呢?(邪魅微笑)

在逼格满满的咖啡厅,你正在愉快的刷着微博,逛着知乎,浏览豆瓣,你以为你连着免费WiFi爽歪歪,

图,喝咖啡,玩手机

然后其实被他笔记本造的WiFi,

图,黑客

顺便一提,关于抓包,现成的抓包工具很多,如 wiresharkcharles 等,这里有一篇使用charles抓APP包的文章,要不要 看看

开始加密

凯撒密码(字母代换)

凯撒密码.jpg

将一个字母表向指定方向平移N位,解密反之,N为密钥 。

密钥只可能是0-25共26个,用1-25每个数作为密钥尝试解密,很容易发现明文,从而得出密钥是几。(暴力破解)

简单替换密码

简单替换密码.jpg

两个字母表中字母之间随机一一对应, 密钥是替换表。

密钥空间是 26!= 2^88。所以考虑使用(频率破解)。

对称密码标准
  • DES(Data Encryption Standard)(不再推荐)
  • AES(Advanced Encryption Standard) (应该使用)

AES 目前采用的是Rijndael 算法,Rijndael 的分组长度可以是以32bit为单位在128到256范围内选择。目前AES 规定分组长度只能有128,192,256三种。

AES 一轮的步骤:

  • 加密:SubBytes —> ShiftRows —> MixColumns —> AddRoundKey
  • 解密:AddRoundKey —> InvMixColumns —> InvShiftRows —> InvSubBytes

其中步骤的含义为:

  1. SubBytes: 每个字节的值(0-255的任意值)为索引,从一张拥有256个值的替换表(S-Box)中查找对应的值处理。将一个1字节的值替换成另一个1字节的值。
  2. ShiftRows:将4个字节为单位的行(Row)按照一定的规则左平移。
  3. MixColumns:将一个4字节的值进行比特运算,变成另一个4字节的值。
  4. AddRoundKey :将MixColumns的输出与轮密钥XOR。

对称加密

Alice 和 Bob 使用相同的秘钥来加解密消息,也就是对称加密,上面提到的加密算法都是对称加密。

对称加密图示

这样,即使第三者 Eve 窃听到通信过程,那么 Eve 也只能看到奇奇怪怪符号组成的密文

加密之后的情况

这样Alice和Bob就可以放心的互相通信了吗?对啊!当然不是,这只是解决了机密性的问题,对称加密的密钥需要被发送给对方,对方才能解密,但直接发送,秘钥也会被窃听,这就是秘钥配送问题。

存在的缺陷

解决秘钥配送

  • 事先当面将秘钥给对方,不通过网络传输秘钥,避免了被窃听的机会;
  • 通过密钥分配中心解决;
  • 通过 Diffie-Hellman 密钥交换来解决;
  • 通过公钥密码来解决。

Diffie-Hellman

公钥加密

简述

公钥加密又叫非对称加密,这类加密算法中存一对秘钥:

  • 公钥——用来加密信息,公开给任何人
  • 私钥——用来解密信息,自己私藏

公钥和私钥匙是天生一对,一个确定的公钥加密的信息,只有他的私钥才能解密信息。

公钥加密样式

使用公钥加密对信息进行加密通信的流程如下:

公钥加密

公钥算法——RSA

RSA是一种非对称加密算法,是1977年由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值