信息安全复习三:古典密码之设计好的密码算法

一.章节梗概

讨论以下算法,理解怎么设计好的密码算法的关键问题
1.Caesar cipher
2.单字母表密码
3.Playfairmima
4.维吉尼亚密码
5.自动生成密码

二.Caesar cipher

2.1 穷举攻击

穷举攻击定义:尝试所有密钥直到有一个合法密钥能够把密文还原成明文,这就是穷举攻击。

进行穷举攻击的条件
1.密钥数量比较少,可以穷举
2.明文是有信息量在里面的,可以通过信息来判断解密后的信息是否正确。

注意:如果明文是一个纯粹随机的序列,我们没法解密。

2.2 改进凯撒密码

攻击者总能通过穷举法对凯撒密码算法进行破译。
如何改进:增加密钥数量。

三、 单字母表密码

3.1 单字母表密码的特点

密钥数量足够多,密钥是26个字母长度。

单字母密码分两种不同的加密形式,一个单表代换密码,一个多表代换。

3.2 加密方法

加密方式:替代法
采用另一个乱序字母表来替代明文字母,明文字母和密文字母保持一一对应关系。要得到一个乱序字母表,可以采取随机排列的方式,也可以由一张混淆字母表生成,过程如下:

a) 随机选择一个密钥字或密钥短语,例如:cybersecurity
b) 去掉重复字母:cybersuit
c) 这些字母构成矩阵的第一行,矩阵的后续各行由标准字母表中去掉密钥字的字母后剩下的字母构成
d) 按列取出矩阵中的字母得到混淆字母表:
canydobfp
egqrhvsjw
ukxilztm

3.3 单字母表密码的攻击手段

1.出现频率高的词
2.字母频率分析的方法:因为单字母表密码没有改变原来明文里的字母出现的频率,因此我们就可以根据替换后的字母频率与已知的字母频率相对应,就可以分析出替换前的字母。

3.4 单字母表的致命缺陷

把明文里字母的统计规律原封不动的保留到了密文里面。

注:密钥数量多了,但它还是可以破译的,而且攻击者去攻击的技术手段不需要去穷举。

思考:什么是好的密码算法?

好的密码算法:攻击者只能用穷举法进行攻击,除此之外别无他法,这样我们可以量化攻击难度,攻击者的攻击成本和key size成正比。
在这里插入图片描述

3.5 改进单字母表密码

两种改进方案:
1.明文分组,一次加密多个字母,如playfair密码,对明文进行分组,然后一次代替(多对一)
2.一个字母被多个字母代替,如维吉尼亚密码,明文里的一个字母,在密文里被多个字母来替代(一对多)

单字母密码密码分析(上)

四、无条件安全&计算机上安全

4.1 定义

无条件安全:是指我们假设攻击者有无限的时间,有无限的计算机资源,它也不能够解密,不能够攻破的密码算法。

计算机上安全:是指我们假设攻击者的时间是有限的,攻击者的计算资源是有限的情况下,无法解密。

4.2 讨论

在计算机安全的定义下,我们设计密码时,只需要考虑加密者的计算成本远远低于攻击者在不知道密钥的情况下破译密码的成本就可以了。

无条件安全的定义下,能够达到无条件安全的这样一种机制时不存在的,或者只在理论上安全,我们现实中使用的密码方案没有无条件安全这种方案。

五、playfair密码(多对一)

5.1 定义

Playfair是一次加密双字母组合,也就是我们把明文分组的时候,2个字母为一组。

Playfair是惠斯通发明的,配合他发明的电报机一起使用,当要发送一个字母G的时候,黄色的指针偏转,指向字母G。
在这里插入图片描述

5.2 playfair密码加密步骤

分为三大步:1.编制密码表 2.整理明文 3.编写密文
构成部分:1.密钥 2.密码 3.密文 4.注明某个字母代替的另一个字母

1.编制密码表:
选一个关键字,关键字是密钥,下面的例子的关键字是“CRAZYDOG”;
构造一个关键字的矩阵,用于加密;
规定I和J不做区分,所以I的位置既是J又是I;
在这里插入图片描述

2.整理明文:对明文进行分组,两个字母一组,如果是重复的字母,中间加一个X,剩一个单字母也用X填充,如communist,应成为co,mx,mu,ni,st;

3.编写密文:加密规则为,同行取右边,同列取左边,其他取交叉;

加密规则的详细解释如下

1 若p1 p2在同一行,对应密文c1 c2分别是紧靠p1 p2 右端的字母。其中第一列被看做是最后一列的右方。如,按照前表,ct对应dc

2 若p1 p2在同一列,对应密文c1 c2分别是紧靠p1 p2 下方的字母。其中第一行被看做是最后一行的下方。

3 若p1 p2不在同一行,不在同一列,则c1 c2是由p1 p2确定的矩形的其他两角的字母(至于横向替换还是纵向替换要事先约好,或自行尝试)。如,按照前表,wh对应ku或uk。**

如,依照上表,明文where there is life,there is hope.

可先整理为:WH ER ET HE RE IS LI FE TH ER EI SH OP EX

然后密文为:KU YO XD OL OY PL FK DL FU YO LG LN NG LY

将密文变成大写,然后几个字母一组排列。

如5个一组就是KUYOX DOLOY PLFKD LFUYO LGLNN GLY

密码表的详细解释如下:

在这个5*5的密码表中,共有5行5列字母,代表从A-Z 共26个字母,其中I和J不作区分。
第一列(或第一行)是密钥,其余按照字母顺序。密钥是一个单词或词组,若有重复字母,可将后面重复的字母去掉。
当然也要把使用频率最少的字母去掉。如:密钥是Live and learn,去掉后则为liveandr。
如果密钥过长可占用第二列或行。
填写好关键字后剩下的表按A-Z的顺序填写,关键字里已有的字母不再填写。

5.3 对Playfair密码的攻击和改进

只需要几百个单词的文本就可以被攻击。
改进:增大明文分组。

六、维吉尼亚密码(一对多)

6.1 定义

维吉尼亚密码是一种使用多表代换的代换密码,是在凯撒密码的基础上扩展出来的多表密码。

为了生成密码,需要使用表格法。这一表格包括了26行字母表,每一行都由前一行向左偏移一位得到。具体使用哪一行字母表进行编译是基于密钥进行的,在过程中会不断地变换。

维吉尼亚密码引入了“密钥”的概念,根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计。

6.2 加密与解密原理

在这里插入图片描述
加密:
维吉尼亚密码必须有一个密钥,这个密钥由字母组成,最少一个,最多可与明文字母数量相等。

例如:
明文:SECRET MESSAGE
密钥:CODE

1.首先,选择某一关键词重复而得到密钥。
明文 SECRETMESSAGE
密钥 CODECODECODEC

2.对照表格,密钥中的字母为行,明文中的字母为列。例如明文的第一个字母为S,密钥的第一个字母为C,对应表格,则密文的第一个字母为U。

3.对照完得密文:USFVGHPIUGDKG

解 密
解密前首先要知道密钥和密文。

例如:
密文:TLDKKOVD
密钥:TWO

1.密钥重复至与密文等长,密钥:TWOTWOTW

2.对照表格,密钥第一个字母为T,找到T行中的密文第一个字母T,为A列,可得明文第一个字母为A。

3.相应对照剩余字母,得明文:APPROACH

维吉尼亚密码

七、自动密钥密码(Autokey Cipher)

密钥和明文一样长。

自动密钥密码是密码学中的一种加密算法,与维吉尼亚密码类似。区别在于密钥不同。它的密钥开头是一个关键词,之后则是明文的重复

是一种比较强的密码。

缺陷:可以用来做密码分析,密钥key用的英文文本,加密对象也是英文文本,密钥里的字母频率和明文里统计规律是一样的;

把动态生成密钥发挥到极限就是在密文里如何把明文里一些统计上的规律屏蔽掉,把这个思想发挥到极致我们要找一个这样的keyword,它和明文一样长,不会重复使用或循环使用,在统计上和明文没有任何练习。

条件一:密钥和明文一样长。
条件二:密钥和明文不能有统计上的联系。

八、一次一密(One-Time-Pad)

一次一密是对称密钥密码的理论标杆。

如果密钥和消息一样长,且真正随机,那么该密码无条件安全。

1918年Gillbert Vernam提出密钥与明文一样长且没有统计关系的密钥内容,算法表述采用二进制数据,且申请了专利:
在这里插入图片描述
异或运算有这些性质:在这里插入图片描述
所以上面密码的算法是可逆的。

1949年,Shannon在他发表的经典论文中证明了一次一密的无条件安全性密钥的分发是个大问题,实用价值较弱,因为这个密码要求通讯双方提前共享一个纯粹的密钥序列。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/13952.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker私有仓库Harbor搭建及使用

文章目录 一、Harbor简介二、Harbor仓库部署三、Harbor仓库使用 一、Harbor简介 官网地址:https://github.com/goharbor/harbor Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等…

如何在Web上实现激光点云数据在线浏览和展示?

无人机激光雷达测量是一项综合性较强的应用系统,具有数据精度高、层次细节丰富、全天候作业等优势,能够精确测量三维现实世界,为各个行业提供了丰富有效的数据信息。但无人机激光雷达测量产生的点云数据需要占用大量的存储空间,甚…

SpringSecurity之权限模块设计

目录 前言 实现思路 代码结构 使用说明 前言 前面我们了解了关于微服务权限设计方案以及J W T的相关介绍,今天我们来聊一下,如何避免自己重复的写相同的代码,一次代码实现,即可完美复制到任何项目中实现权限相关的功能。 实现…

RK3568平台开发系列讲解(驱动基础篇)SMP(Symmetrical Multi-Processing)

🚀返回专栏总目录 文章目录 一、linux SMP 和 AMP二、linux SMP的启动流程三、CPU的描述:cpumask四、CPU之间的关系沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍 SMP(Symmetrical Multi-Processing)。 一、linux SMP 和 AMP 目前支持多核处理器的实时操…

CxImage学习使用1:环境搭建

目录 前言 一、CxImage相关介绍 二、编译源码 三、将CxImage使用到自己的工程中 前言 CxImage是一个可以用于MFC 的C图像处理类库类,它可以打开,保存,显示,转换各种常见格式的图像文件,比如BMP, JPEG, GIF, PNG, TI…

300元的蓝牙耳机什么牌子好?300内无线蓝牙耳机推荐

感受过无线的自在舒适后,越来越多的小伙伴爱上了蓝牙耳机白天出街更潇洒,目前市面上蓝牙耳机琳琅满目可选择性较多价格从几十、几百元到数千元不等然而蓝牙耳机的安全性、舒适性如何?连接稳吗?下面整理了几款300元价位的耳机分享给…

【CSDN周赛】第46期题解

👨‍💻个人主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 本文章收录于专栏 【CSDN周赛】 本篇文章目录 🌏一、吃吃吃🌸题目描述🌸题解 🌏二、n …

Java核心技术 卷1-总结-12

Java核心技术 卷1-总结-12 具体的集合链表数组列表 具体的集合 下表中除了以 Map结尾的类之外, 其他类都实现了 Collection 接口,而以 Map结尾的类实现了 Map 接口。 集合类型描述ArrayList一种可以动态增长和缩减的索引序列LinkedList一种可以在任何位…

MySQL高级篇——索引的创建与设计原则

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线牛客面试题 目录 一、索引的分类与使用 1.1 索引的分类 1.1.1. 普通索引 1.1.2. 唯一性索引 1.1.3. 主键索引(唯一非空) 1.1.4…

百度ai智能写作工具-百度ai自动写文章

百度AI智能写作工具:让创作更快捷、高效! 在当今竞争激烈的文化创意市场中,创作一篇高质量的文章需要投入大量时间和精力。然而,有了百度AI智能写作工具,创作变得更快捷、高效了。 百度AI智能写作工具采用最先进的人…

数据可视化神器!Matplotlib Python教程 | 从入门到精通绘制各种类型的图形和保存图形

大家好,我是爱吃熊掌的鱼,今天我要给大家带来一篇有趣开朗的Matplotlib Python教程。Matplotlib是Python中最流行的数据可视化库之一,它可以帮助我们将数据转化为易于理解的图表和图形。无论你是初学者还是专业人士,Matplotlib都是…

ThreadPoolExecutor源码阅读流程图

1.创建线程池 public ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue<Runnable> workQueue) {this(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue,Executors.defaultThreadFactory(), def…

巧用千寻位置GNSS软件| 线路施工放样应用技巧

线路施工放样主要是解决线路工程和水利工程施工中&#xff0c;线路及渠道中线和边坡施工放样编辑的专用程序。千寻位置GNSS软件中完成线路施工放样可按照下述步骤操作。 点击【测量】->【线路施工放样】&#xff0c;选择一条线路放样&#xff0c;如图 5.6-1所示。 图 5.6-1…

IT人员选择光缆的五大原因

基于铜和光纤的信号都会受到衰减&#xff0c;或者波形信号随着距离的推移而减弱。然而&#xff0c;光纤电缆可以在更长的距离上传输数据。事实上&#xff0c;差异是巨大的。 当构建需要长距离、高速和/或高带宽连接的网络时&#xff0c;毫无疑问&#xff1a;光纤电缆会赢得胜利…

在更高的起点创业 专访Aqara重庆服务商,探问「经营秘籍」

从小众产品到大众选择&#xff0c;智能家居在短短几年内迅速崛起&#xff0c;成为各大Shopping Mall的引流神器。而作为一种新消费&#xff0c;智能家居产品也为品牌和渠道在获客方面提出了新的考验。相比传统建材&#xff0c;智能家居如何快速引流&#xff0c;促进成交&#x…

【MySQL】如何使用MySQL锁(全局锁、表级锁、行级锁)?

文章目录 概述一、全局锁介绍语法特点 二、表级锁介绍表锁元数据锁意向锁 三、行级锁介绍行锁间隙锁&临键锁 概述 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xf…

怎么把avi文件转换成mp4视频格式,4个高能方法

怎么把avi文件转换成mp4视频格式&#xff1f; 当您下载到avi格式的视频文件时&#xff0c;您可能会选择将其转换为MP4格式的文件。 avi是一种由微软开发的多媒体容器格式&#xff0c;尽管现在已经被认为是老旧的技术&#xff0c;但由于其简单易懂的开发API和Windows的通用性&am…

状态机编程

//定义的枚举 typedef enum { KEY_UP 1, //按键按下 Edge_Lead2, //前沿抖动 KEY_DOWN 3, //按键松开 Edge_Back4, //后沿抖动 } KEY_Status; 主函数&#xff1a; #include "stm32f4xx.h" #include "led.h" #include "delay.h" #include "…

JavaScript—javaEE

文章目录 1.关于JavaScript2.引入的方式3.输入输出4.语法4.1变量4.2基本数据类型4.3运算符4.4数组4.5函数4.6对象 5.dom5.1获取元素5.2操作元素5.3表单控件5.4样式&#xff1a;style属性5.5模仿和服务端交互 6.ajax6.1概念6.2作用6.3Ajax代码6.4Ajax发get请求6.5Ajax发post请求…
最新文章