信息安全-古典密码学简介

news2024/9/22 11:31:07

目录

C. D. Shannon: 

一、置换密码

二、单表代替密码

① 加法密码

② 乘法密码

③密钥词组代替密码

三、多表代替密码

代数密码

四、古典密码的穷举分析

1、单表代替密码分析

五、古典密码的统计分析

1、密钥词组单表代替密码的统计分析        

2、英语的统计规律        

C. D. Shannon: 

采用混淆、扩散和乘积的方法来设计密码; 

混淆:使密文和明文、密钥之间的关系复杂化

扩散:将每一位明文和密钥的影响扩大到尽可能多的密文位中。

乘积和迭代:多种加密方法混合使用对一个加密函数多次迭代

古典密码编码方法:置换,代替,加法

古典密码学举例:

一、置换密码

把明文中的字母重新排列,字母本身不变,但其位置改变了,这样编成的密码称为置换密码。最简单的置换密码是把明文中的字母顺序倒过来,然后截成固定长度的字母组作为密文。

明文:明晨5点发动反攻。MING CHEN WU DIAN FA DONG FAN GONG

密文:GNOGN AFGNO DAFNA IDUWN EHCGN IM

理论上:①、置换密码的加密钥是置换矩阵 p,解密钥是置换矩阵 p-1 。②、置换密码经不起已知明文攻击。           

           

二、单表代替密码

① 加法密码

A和B是有 n个字母的字母表。定义一个由A到B的映射:f: A→B。f(ai )= bi=aj;j=i+k mod n;加法密码是用明文字母在字母表中后面第 k个字母来代替。K=3 时是著名的凯撒密码。

② 乘法密码

A和B是有n个字母的字母表。定义一个由A到B的映射:f: A→B。f(ai )= bi= aj      j=ik mod n。其中,(n,k)=1。注意:只有(n,k)=1,才能正确解密。

③密钥词组代替密码

随机选一个词语,去掉其中的重复字母,写到矩阵的第一行,从明文字母表中去掉这第一行的字母,其余字母顺序写入矩阵。然后按列取出字母构成密文字母表。

举例:密钥: HONG YE 

 矩阵:    HONGYE   选出顺序:按列

                ABCDFI

                JKLMPQ   改变密钥、矩阵大小

                RSTUVW  和取出序列,得到不同的

                XZ        密文字母表。

密文字母表 :  B={ HAJRXOBKSZNCLTGDMUYFPVEIQW }

三、多表代替密码

单表代替密码的安全性不高,一个原因是一个明文字母只由一个密文字母代替。

构造多个密文字母表,在密钥的控制下用相应密文字母表中的一个字母来代替明文字母表中的一个字母。一个明文字母有多种代替。Vigenere密码:著名的多表代替密码

代数密码

① Vernam密码

     明文、密文、密钥都表示为二进制位:

      M=m1,m2,… ,mn K =k1,k2,… ,kn C =c1,c2,… ,cn

② 加密 : c1= mi⊕ ki  ,i=1,2,… ,n   

     解密 : m1= ci⊕ ki  ,i=1,2,… ,n

③ 因为加解密算法是模2加,所以称为代数密码。

④ 对合运算:f=f-1,模 2加运算是对合运算。

      密码算法是对和运算,则加密算法=解密算法,工程实现工作量减半。

⑤ Vernam密码经不起已知明文攻击。

⑥ 如果密钥序列有重复,则Vernam密码是不安全的。

⑦一种极端情况:一次一密

               • 密钥是随机序列。

               • 密钥至少和明文一样长。

               • 一个密钥只用一次。

⑧一次一密是绝对不可破译的,但它是不实用的。

⑨ 一次一密给密码设计指出一个方向,人们用序列密码逼近一次一密。

四、古典密码的穷举分析

首先了解下什么是安全?

如果把一封信锁在保险柜中,把保险柜藏起来,然后告诉你去看这封信,这并不是安全,而是隐藏

相反,如果把一封信锁在保险柜中,然后把保险柜及其设计规范和许多同样的保险柜给你,以便你和世界上最好的开保险柜的专家能够研究锁的装置,而你还是无法打开保险柜去读这封信,这才是安全

柯克霍夫原则(Kerckhoffs‘s principle密码系统的加密算法和解密算法应该是公开的,密码系统的安全性要取决于密钥的安全性。密码分析学是基于己知密码算法但不知道密钥的情况下,试图从密文中破译出明文的科学

1、单表代替密码分析

① 加法密码

因为f(ai )= bi=aj  j=i+k mod n

所以k=1,2,... ,n-1,共n-1种可能,密钥空间太小。以英文为例,只有25种密钥。经不起穷举攻击。

② 乘法密码

因为f(ai )= bi=aj   j=ik mod n,且(k,n)=1。所以k共有(n)种可能,密钥空间更小。

对于英文字母表,n=26,k=1,3,5,7,9,11,15,17,19,21,23,25 取掉1,共11种,比加法密码更弱。经不起穷举攻击。

③ 密钥词语代替密码

因为密钥词语的选取是随机的,所以密文字母表完全可能穷尽明文字母表的全排列。 以英文字母表为例,n=26,所以共有26!种可能的密文字母表。26!≈4×10^26用计算机也不可能穷举攻击。

注意:穷举不是攻击密钥词语代替密码的唯一方法。

五、古典密码的统计分析

统计攻击(频率攻击)

假设:根据分析假设某些结论。

推断:在假设的前提下,推断出一些结论

验证发展:填上破译出的字母,根据词义、词规则不断发展

当攻者能窃听到密文时,否有其它更有效攻击方法?

1、密钥词组单表代替密码的统计分析        

任何自然语言都有自己的统计规律。如果密文中保留了明文的统计特征,就可用统计方法攻击密码。由于单表代替密码只使用一个密文字母表,一个明文字母固定的用一个密文字母来代替,所以密文的统计规律与明文相同。因此,单表代替密码可用统计分析攻破。

2、英语的统计规律        

每个单字母出现的频率稳定。

  最高频率字母      E

  次高频率字母      T A O I N S H R

  中高频率字母      D L

  低频率字母        C U M W F G Y P B

  最低频率字母     V K J X Q Z

频率最高的双字母组:

  TH HE IN ER AN RE ED ON

  ES ST EN AT TO NT HA ND

  OU EA NG AS OR TI IS ET

  IT AR TE SE HI OF

频率最高的三字母组:

   THE ING AND HER ERE ENT THA WAS

  ETH FOR DHT HAT SHE ION HIS ERS

  VER

其中THE的频率是ING的3倍!

英文单词以E,S,D,T为结尾的超过一半。英文单词以T,A,S,W为起始字母的约占一半。还有其它统计规律!教科书上有一个完整的统计分析例子。经得起统计分析是对近代密码的基本要求!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

报表-集成

1、部署报表服务器 以centos为例 1.1 将服务拷贝到服务器 其中JDK-17是对应平台的jdk 1.2 修改lite-report下的source.config 1.3 把设计好的报表文件拷贝到lite-report/report 1.4 启动服务:sh run.sh restart 2、使用Nginx location /litereport/ { …

前端笔记-day1

文章目录 01-标签的写法02-HTML的基本骨架03-标签的关系04-注释05-标题标签06-段落标签07-换行与水平线标签08-文本格式化标签09-图像的基本使用10-图像的属性12-绝对路径13-超链接14-音频15-视频标签16-招聘案例18-个人简历19-vue简介 01-标签的写法 <strong>文字内容&…

LabVIEW开发MOOG控制系统数据处理软件

LabVIEW开发MOOG控制系统数据处理软件 在现代航空领域&#xff0c;飞机结构的静强度试验是保证飞机安全运行的关键环节。MOOG加载控制系统作为试验中的关键设备&#xff0c;其数据输出的直观性和易处理性对于提高试验效率具有重要意义。设计了一种基于LabVIEW的MOOG控制系统数…

##15 探索高级数据增强技术以提高模型泛化能力

文章目录 前言数据增强的重要性常见的数据增强技术高级数据增强技术在PyTorch中实现数据增强结论 前言 在深度学习领域&#xff0c;数据增强是一种有效的技术&#xff0c;它可以通过在原始数据上应用一系列变换来生成新的训练样本&#xff0c;从而增加数据的多样性&#xff0c…

Redis过期删除策略和内存淘汰策略有什么区别?

Redis过期删除策略和内存淘汰策略有什么区别&#xff1f; 前言过期删除策略如何设置过期时间&#xff1f;如何判定 key 已过期了&#xff1f;过期删除策略有哪些&#xff1f;Redis 过期删除策略是什么&#xff1f; 内存淘汰策略如何设置 Redis 最大运行内存&#xff1f;Redis 内…

ADS基础介绍篇1

一. ADS简介 常用的射频仿真软件有ADS和AWR&#xff0c;ADS(Advanced Design system)最传统&#xff0c;是Agilent公司于2008年推出的电磁场仿真器&#xff0c;可提供原理图设计和layout版图设计。仿真功能十分强大&#xff0c;可提供从无源到有源&#xff0c;从直流到交流&am…

算法提高之矩阵距离

算法提高之矩阵距离 核心思想&#xff1a;多源bfs 从多个源头做bfs&#xff0c;求距离 先把所有1的坐标存入队列 再把所有1连接的位置存入 一层一层求 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 1…

关于画图-一次性搞定各类高级论文作图及配色

关于画图-一次性搞定各类高级论文作图及配色 图&#xff08;Figure&#xff09;可以让各类论文的结果更加直观&#xff0c;有时候一张图片比一大段文字更有说服力。 但许多新手作者可能会有一连串的疑惑&#xff1a;数据这么多&#xff0c;什么时候该做什么类型的图&#xff…

NASA数据集——2002-2011年全球18.7 至 89.0 千兆赫的亮度温度、海冰浓度和海冰积雪深度三级网格产品(AE_SI12)数据

AMSR-E/Aqua Daily L3 12.5 km Brightness Temperature, Sea Ice Concentration, & Snow Depth Polar Grids V003 三级网格产品&#xff08;AE_SI12&#xff09;包括 18.7 至 89.0 千兆赫的亮度温度、海冰浓度和海冰积雪深度。 简介 美国国家航空航天局地球观测系统 Aqu…

##16 利用迁移学习和微调提升深度学习模型性能

文章目录 前言什么是迁移学习&#xff1f;迁移学习的主要优势迁移学习的策略1. 特征提取器2. 微调 在PyTorch中实现迁移学习环境设置加载预训练模型修改模型以适应新任务训练和微调模型迁移学习的示例应用 结论 前言 在深度学习的多个领域中&#xff0c;迁移学习技术已经成为了…

现代信号处理9_正则化(CSDN_20240512)

正则化的引入 解线性方程组&#xff1a; 这项工作有很多种做法&#xff0c;下面介绍两种&#xff0c;如下图所示&#xff0c;有一些数据点需要拟合&#xff0c;拟合的方法有很多。 1&#xff09; 构造线性函数①&#xff0c;这种函数比较简单&#xff0c;此时 2&#xff09; 构…

信息系统项目管理师0102:可行性研究的内容(7项目立项管理—7.2项目可行性研究—7.2.1可行性研究的内容)

点击查看专栏目录 文章目录 7.2项目可行性研究7.2.1可行性研究的内容1.技术可行性分析2.经济可行性分析3.社会效益可行性分析4.运行环境可行性分析5.其他方面的可行性分析记忆要点总结7.2项目可行性研究 可行性研究是在项目建议书被批准后,从技术、经济、社会和人员等方面的条…

46 udp网络程序

查询网络服务的命令 netstat -nlup n: 显示数字 a&#xff1a;显示所有 u&#xff1a;udp服务 p&#xff1a;显示pid Recv-Q收到的数量&#xff0c;本地ip和远端ip&#xff0c;00表示可以收到任何地址 网络聊天 服务端 定义一个server类&#xff0c;成员保存ip地址&#xff…

JAVA毕业设计138—基于Java+Springboot+Vue的医院预约挂号小程序(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的医院预约挂号小程序(源代码数据库)138 一、系统介绍 本系统前后端分离带小程序和后台 小程序&#xff08;用户端&#xff09;&#xff0c;后台管理系统&a…

SQLite性能测试(插入)

最近一直在思考一个问题&#xff0c;SQLite 做到这么轻量级&#xff0c;那它注定不会像 MySql 一样强性能&#xff0c;那么它的性能怎么样呢&#xff1f;并发量多高呢&#xff1f; 官方解释&#xff1a; About SQLite 最大数据库大小&#xff1a;281TB 最大行大小&#xff1…

LVDS 接口标准和规范

低压差分信号具有传输速率快、抗干扰性强的特点&#xff0c;是现在广泛应用的数据接口标准之一。Xilinx FPGA支持LVDS电平标准&#xff0c;并提供了动态相位调整解决方案&#xff0c;解决了基于LVDS源同步传输时存在的数据偏斜问题。 1 LVDS 技术规范简介 随着接口和背板信号…

最新巨量X-Bogus、_signature参数逆向分析与算法还原

文章目录 1. 写在前面2. 接口分析3. 断点分析4. 扣代码补环境5. 数据解密 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路…

BGP(border gateway protocol)边界网关协议初识篇

BGP它是一种路径矢量协议&#xff0c;用于决定数据包在互联网中的最佳路径。 1、工作原理&#xff1a; 自治系统&#xff08;AS&#xff09;间路由: BGP主要用于连接不同自治系统之间的路由器&#xff0c;其中每个自治系统&#xff08;AS&#xff09;代表一组具有共同路由的网…

【MySQL】基本操作

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;MySQL 目录 &#x1f449;&#x1f3fb;创建和删除数据库&#x1f449;&#x1f3fb;数据库编码集和数据库校验集校验规则对数据库的影响 &#x1f449;&…

如何在matlab时间序列中X轴标注月-日

一般我们使用的时间序列都是以年为单位&#xff0c;比如下图&#xff1a; 而如果要绘制月尺度的时间变化图&#xff0c;则需要调整X轴的标注。下面代码展示了如何绘制小时尺度的降水数据。 [sname2,lon2,lat2] kml2xy(GZ_.kml); nc_bound2 [lon2,lat2]; area_ind2inpolygon(e…