古典密码学简介

news2024/11/21 0:35:18

目录

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/1641700.html

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

相关文章

从零开始学AI绘画,万字Stable Diffusion终极教程(二)

【第2期】关键词 欢迎来到SD的终极教程,这是我们的第二节课 这套课程分为六节课,会系统性的介绍sd的全部功能,让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在第一节课里面,我们…

【数据库原理及应用】期末复习汇总高校期末真题试卷

试卷 一、填空题 1.________是位于用户与操作系统之间的一层数据管理软件。 2.数据库系统的三级模式结构是指________、________、________。 3.数据库系统的三种数据模型是________ 、________、________。 4.若关系中的某一属性组的值能唯一地标识一个元组,则…

【LinuxC语言】信号的基本概念与基本使用

文章目录 前言一、信号的概念二、信号的使用2.1 基本的信号类型2.2 signal函数 总结 前言 在Linux环境下,信号是一种用于通知进程发生了某种事件的机制。这些事件可能是由操作系统、其他进程或进程本身触发的。对于C语言编程者来说,理解信号的基本概念和…

使用 ORPO 微调 Llama 3

原文地址:https://towardsdatascience.com/fine-tune-llama-3-with-orpo-56cfab2f9ada 更便宜、更快的统一微调技术 2024 年 4 月 19 日 ORPO 是一种新的令人兴奋的微调技术,它将传统的监督微调和偏好校准阶段合并为一个过程。这减少了训练所需的计算…

8.MyBatis 操作数据库(进阶)

文章目录 1.动态SQL插入1.1使用注解方式插入数据1.2使用xml方式插入数据1.3何时用注解何时用xml?1.4使用SQL查询中有多个and时,如何自动去除多余and1.4.1方法一:删除and之后的代码如图所示,再次运行1.4.2方法二:加上tr…

C语言——文件相关操作

2.什么是文件 3.文件的打开和关闭 4.文件的顺序读写 5.文件的随机读写 6.文本文件和二进制文件 7.文件读取结束的判定 8.文件缓冲区 一、文件相关介绍 1、为什么使用文件 文件用于永久存储数据。通过使用文件,我们可以在程序关闭后保存数据,以便将来…

Springboot图片上传【本地+oss】

文章目录 1 前端组件页面2 本地上传3 上传到阿里云oss3.1申请开通账号&#xff0c;做好先导准备3.2 开始使用 1 前端组件页面 使用的VueElement组件 在线cdn引入&#xff1a; <script src"https://cdn.bootcdn.net/ajax/libs/vue/2.7.16/vue.js"></script&…

Simulink|【免费】虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型

目录 主要内容 仿真模型要点 2.1 整体仿真模型 2.2 电压电流双闭环模块 2.3 SVPWM调制策略 2.4 无功电压模块 2.5 自适应控制策略及算法 部分结果 下载链接 主要内容 该模型为simulink仿真模型&#xff0c;主要实现的内容如下&#xff1a; 随着风力发电、…

免费APP分发平台 - 一个指南和解析

数字化时代的APP分发平台 随着数字化进程的加速免费APP分发平台 - 一个指南和解析&#xff0c;移动应用&#xff08;APP&#xff09;市场正迅速扩大。在这个充满竞争的市场中免费APP分发平台 - 一个指南和解析&#xff0c;一个优秀的APP分发平台能够帮助开发者和商家更有效地触…

用keras识别狗狗

一、需求场景 从照片从识别出狗狗 from keras.applications.resnet50 import ResNet50 from keras.preprocessing import image from keras.applications.resnet50 import preprocess_input, decode_predictions import numpy as np# 加载预训练的ResNet50模型 model ResNet5…

网络知识点之—QoS

QoS&#xff08;Quality of Service&#xff0c;服务质量&#xff09;指一个网络能够利用各种基础技术&#xff0c;为指定的网络通信提供更好的服务能力&#xff0c;是网络的一种安全机制&#xff0c; 是用来解决网络延迟和阻塞等问题的一种技术。QoS的保证对于容量有限的网络来…

【matlab基础知识】(三)二维曲线绘制plot

x[-pi:0.0001:pi]; 选择较小步距 ysin(tan(x))-tan(sin(x));plot(x,y) 条件和函数值做一个点乘 x[-2:0.02:2];y1.1*sign(x).*(abs(x)>1.1)x.*(abs(x)<1.1);plot(x,y) 颜色&#xff0c;线形&#xff0c;曲线上的标志 由于0.01cosx波动太小&#xff0c;所以plotyy绘制多…

C语言 | Leetcode C语言题解之第64题最小路径和

题目&#xff1a; 题解&#xff1a; int minPathSum(int** grid, int gridSize, int* gridColSize) {int rows gridSize, columns gridColSize[0];if (rows 0 || columns 0) {return 0;}int dp[rows][columns];dp[0][0] grid[0][0];for (int i 1; i < rows; i) {dp[i…

【吃透Java手写】- Spring(上)-启动-扫描-依赖注入-初始化-后置处理器

【吃透Java手写】Spring&#xff08;上&#xff09;启动-扫描-依赖注入-初始化-后置处理器 1 准备工作1.1 创建自己的Spring容器类1.2 创建自己的配置类 ComponentScan1.3 ComponentScan1.3.1 Retention1.3.2 Target 1.4 用户类UserService Component1.5 Component1.6 测试类 2…

STM32——WWDG(窗口看门狗)

技术笔记&#xff01; 1.WWDG&#xff08;窗口看门狗&#xff09;简介 本质&#xff1a;能产生系统复位信号和提前唤醒中断的计数器。 特性&#xff1a; 递减的计数器&#xff1b; 当递减计数器值从 0x40减到0x3F时复位&#xff08;即T6位跳变到0&#xff09;&#xff1b; …

GPT-ArcGIS数据处理、空间分析、可视化及多案例综合应用

在数字化和智能化的浪潮中&#xff0c;GIS&#xff08;地理信息系统&#xff09;和GPT&#xff08;生成式预训练模型&#xff09;的结合正日益成为推动科研、城市规划、环境监测等领域发展的关键技术。GIS以其强大的空间数据处理、先进的空间分析工具、灵活的地图制作与可视化能…

OpenCV 实现重新映射(53)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV 实现霍夫圆变换(52) 下一篇 :OpenCV实现仿射变换(54) 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 一个。使用 OpenCV 函数 cv&#xff1a;&#xff1a;remap 实现简…

mysql-sql-练习题-4-标记(排名 条件判断)

标记 标记找规律连续登录2-7天用户建表排名找规律 最大连胜次数建表多次排名 找规律输出更多数据 标记计数 百分比 标记找规律 连续登录2-7天用户 建表 create table continuous_login(user_id1 integer comment 用户id,date_login date comment 登陆日期 ) comment 用户登录…

一加12/11/10/Ace2/Ace3手机上锁回锁BL无限重启黑屏9008模式救砖

一加12/11/10/Ace2/Ace3手机官方都支持解锁BL&#xff0c;搞机的用户也比较多&#xff0c;相对于其他品牌来说&#xff0c;并没有做出限制&#xff0c;这也可能是搞机党最后的救命稻草。而厌倦了root搞机的用户&#xff0c;就习惯性回锁BL&#xff0c;希望彻底变回官方原来的样…

约瑟夫问题新解法

前言 又碰到了约瑟夫问题&#xff0c;这样的题目本来用环形链表模拟的话就能做出来。然而&#xff0c;最近新学习了一种做法&#xff0c;实在是有点震惊到我了。无论是思路上&#xff0c;还是代码量上&#xff0c;都是那么的精彩。就想也震惊一下其他人。谁能想到原来模拟出来四…