Lauren与密码学4,初识密码系统
来源:互联网 发布:js match 匹配字符 编辑:程序博客网 时间:2024/06/05 21:04
Haorui: 我们的“随机女生”,投骰子所生产的数列是准随机数吗?
Lauren: 我想想,每次投骰子,数字是随机的,两次之间也无关联。但是比如我第一次投了一个六,第二次也投了个六。这算不算重复产生?
Haorui: 这个是随机产生的,巧合而已,不能算重复产生。重复产生的意思是每次都一样。所以投骰子所生产的数列是准随机数。
Lauren: 明白。
Haorui: 今天了解一下密码系统基础知识。先讲一个故事,我读中学的时候,和小女生常常递小纸条。但是怕别的同学或老师知道纸条里的内容。所以我想了一个加密办法,叫“字母平移法“。看看下面的图,平移两位。
如果我想写“hello”,每个字母平移两位,就成了“jgnnq”。“hello” 没有加密的,称为明文,大家都容易懂。但是加密后,就变成密文 “jgnnq”,就没有人懂了。我加密的时候先左移两位,对方收到后,再移回来,就可以解密了。
Lauren: Haorui哥,你真聪明。
Haorui: 想泡妞,办法总是有的,关键是要花心思。其实平移法是一种古典密码,称为凯撒密码。它的运作方式与现代密码学的一些概念非常相似了。见下图:
Lauren: 哦,原来一个密码系统有加解密算法、密钥组成。为什么要用算法加密钥这种形式呢,放在一起不行吗?
Haorui: 当然可以,这与我们现实生活中锁与钥匙的概念是一样的。其主要目的是为了大规模量产,锁生产厂家不可能为每一家人研发出一把锁。有了锁加钥匙这个组合,厂家只用一个结构的锁加上不同钥匙就可以卖给千万家使用。密码系统也是一样的,设计一套密码系统也是希望可以以后能重复使用的,只是密钥变了,密码算法不变。比如上面的例子,也可批量生产,我用移二位,其它的同学可以移三位、五位、八位等等。也就是说,每个同学都可以有一套自己的加密方式,但是加解密算法是一样。
Lauren: 重复使用会增加破解风险的。
Haorui: 对,但是这是没有办法避免的。比如平移法,如果攻击者窃取了大量的密文。破解起来是非常容易的。我读书的时候写过一个小程序,输入十几本英文小说,输出小说中单词的出现频率。发现单词the,a, is, are的频率最高。所以攻击者就可以找出频率最高的密文单词,然后通过分析,很快就可以破解密文了。当然也可以用傻瓜式的暴力破解,也就是每个密码都试一遍,直到找到明文。
Lauren: 看起来很难的样子。
Haorui: 有点像警察办案,一点一点找线索。
给你说个段子,某市公安局长发表讲话,“经过我们三个月来日以继夜、艰苦卓越的排查工作,我们终于得出了一个惊人的结论:312案件的罪犯不是国内的,就是国外的。”
Lauren: 好冷。。。
- Lauren与密码学4,初识密码系统
- Lauren与密码学5,对称密码系统
- Lauren与密码学6,非对称密码系统
- Lauren与密码学1,Who is Lauren?
- Lauren与密码学9,数字签名
- Lauren与密码学3,我是随机数。
- Lauren与密码学7,哈希函数
- Lauren与密码学2,什么是现代计算机密码学?
- Lauren与密码学8,消息认证码MAC
- 一些网上密码学资源(9)-密码系统
- 一些网上密码学资源(9)-密码系统
- RSA密码系统 基于大数环境编写 密码学课程设计
- 密码学复习笔记1【基本概念与传统密码技术】
- [密码学]恺撒密码
- [密码学]维热纳尔密码
- 密码学 移位密码
- 密码学之序列密码
- 密码学之分组密码
- [LeetCode]231. Power of Two-判断一个整数是否是2的幂次方
- IP地址
- okhttp的工作原理以及缓存机制
- chromiumFX 的使用
- 微信公众平台开发(83) 生成带参数二维码
- Lauren与密码学4,初识密码系统
- 做过的abaqus项目总结
- MIT18.06线性代数课程笔记4b:打乱矩阵集合及相关性质
- OpenGL库函数glFinish()和glFlush()的说明
- 紫书第五章-----C++与STL入门(1)
- [数据结构]四种数据存储结构---顺序存储 链接存储 索引存储 散列存储
- n个人围成一圈,凡报到3的倍数的人离开圈子,然后再数下去
- Mybatis 插入数据的时候Date类型,时间精度丢失
- HTML angular定时改变指定文本内容