密码学:古典密码.-程序员宅基地

技术标签: # 密码学 领域.  web安全  密码学  网络安全  CTF夺旗 领域.  

密码学:古典密码.

古典密码是密码学的一个类型,大部分加密方式是利用替换式密码或移项式密码,有时是两者的混合。古典密码在历史上普遍被使用,但到现代已经渐渐不常用了。一般来说,一种古典密码体制包含一个字母表(如A~Z),以及一个操作规则或一种操作设备。古典密码是一类简单的密码体系,到了现代密码时代几乎不可信赖.


目录:

密码学:古典密码.

古典密码:线性映射.

(1)凯撒密码.

(2)维吉尼亚密码

古典密码:固定替换

(1)培根密码

(2)猪圈密码

古典密码:移位密码

(1)栅栏密码

(2)曲路密码


古典密码:线性映射.

(1)凯撒密码.

在古典密码中,凯撒密码是一种最简单且广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3时,所有字母A将被替换成D、B变成E,以此类推。

下面是凯撒密码的加密和解密的公式,其中 X 为待操作的 文本n 为 密钥 (即偏移量)

◆  En(x)=(x+n) mod26

◆  Dn(x)=(x-n) mod26

即使使用唯密文攻击,凯撒密码也是一种非常容易破解的加密方式。当我们知道(或者猜测》密文中使用了某个简单的替换加密方式,但是不确定是否为凯撒密码时,可以通过使用诸如频率分析或者样式单词分析的方法,就能从分析结果中看出规律,确定使用的是否为凯撒密码。

当我们知道(或者猜测)密文使用了凯撒密码,但是不知道其偏移量时,解决方法更简单。由于使用凯撒密码进行加密的字符一般是字母,因此密码中可能是使用的偏移量也是有限的。例如,使用26个字母的英语,它的偏移量最大是25(偏移量26等同于偏移量0,即没有变换),因此通过穷举法可以轻易地进行破解。


(2)维吉尼亚密码

维吉尼亚密码 (Vigenere Cipher) 是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的简单形式。在凯撒密码中,字母表中的每个字母都有一定的偏移,如偏移量为3时,A转换为了D,B转换为了E;而维吉尼亚密码由一些偏移量不同的凯撒密码组成。

其加密的过程非常简单,假设明文为: ATTACKATDAWN,密钥为LEMON。首先,循环密钥形成密钥流,使之与明文长度相同:

K= key1 + key2 + key3 + ...

即 LEMONLEMONLE; 然后根据每位秘钥对原文加密,如第1位密钥是L,对应第12个字母,那么偏移量则为12-1=11,对于第1位明文A,加密后的密文应为 (A+11) mod26,即L; 重复这个步骤就可以得到密文LXFOPVEFRNHR。

一般,破解维吉尼亚密码有一些固定的套路: 可以寻找密文中相同的连续字符串,则密钥长度一定为其间隔的因数,或者寻找 “ the ” “ lam ” 之类的特殊单词。当然,现在已经有现成的工具可以使用,遇到维吉尼亚密码可以直接使用在线工具求解:Vigenere


古典密码:固定替换

(1)培根密码

倍根密码(Bacon's Cipher)是由法兰西斯·培根发明的一种隐写术,加密时,明文中的每个字母都会转换成一组5个英文字母.


(2)猪圈密码

猪圈密码(Pigpen Cipher) 是一种以格子为基础的简单替代式密码。猪圈密码的符号与个字母的密码配对.

例如,若对明文“X marks the spot”进行加密.


古典密码:移位密码

(1)栅栏密码

栅栏密码是把要加密的明文分成每 N 个一组,然后把每组的第 1 个字符连起来,形成一段无规律的字符串。在加密时,假设明文为“wearefamily”,密钥为 “ 4 ”,先用密钥 “ 4 ” 将明文每 4 个字符分为组“wear || efam || ily”,然后依次取出每组第1、2、3个字母,组为“wei || efl || aay || rm”,再连接起来就可以得到密文“weieflaayrm“


(2)曲路密码

曲路密码的密钥其实是整个表格的列数和曲路路径,设明文为 “THISISATESTTEXT ”,先将文本填入矩阵.

再按预先约定的路径,从表格中取出字符,即可得到密文:ISTXETTSTHISETA


好用的解密网站:在线AES加密解密、AES在线加密解密、AES encryption and decryption--查错网

     

      

      

学习书籍:从0到1:CTFer成长之路..

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_54977781/article/details/130530410

智能推荐

Android音视频技术1--Android SurfaceView使用_surfaceview 首帧渲染回调-程序员宅基地

文章浏览阅读283次。开篇提到视频数据源渲染提到过SurfaceView,SurfaceView是Android提供的渲染图形类。一.SurfaceView简介Android平台图形渲染类。 主要由于游戏场景,适合频发绘制刷新的View。 Surfaceview可用于工作线程刷新View。 普通View为被动刷新,主动刷新则选择SurfaceView。二.SurfaceView与View的区别Sur..._surfaceview 首帧渲染回调

SpringMVC_@ControllerAdvice_springmvc controlleradvice-程序员宅基地

文章浏览阅读133次。SpringMVC_@ControllerAdvice一.全局异常处理二.全局数据绑定三.全局数据预处理新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表F..._springmvc controlleradvice

[LQR简要快速入门]+[一级倒立摆的LQR控制]-程序员宅基地

文章浏览阅读8k次,点赞34次,收藏127次。[LQR简要快速入门]+[一级倒立摆的LQR控制]1. 什么是LQR2. 公式含义3. 倒立摆的建模3.1 线性化3.2 状态空间建立4. LQR算法实现5. MATLAB代码仿真6. 优缺点1. 什么是LQRLQR是一种最优控制算法,简要讲即为寻求一种算法,使得在满足系统稳定性能的同时,系统在达到稳定的过程中消耗的能量也最少(具有实际意义)。利用最优控制理论的知识可以知道,既然要达到两个指标(1. 性能;2. 能量)的最优,可以很容易列出积分形式的最优指标:J=∫0∞(xTQx+uTRu)dt(1_lqr

anaconda: import numpy报错:ImportError: DLL load failed: 找不到指定的模块_anaconda import numpy 模块错误-程序员宅基地

文章浏览阅读795次。anaconda: import numpy报错:ImportError: DLL load failed: 找不到指定的模块在使用vscode 和anaconda时,在vscode中 import numpy,出现了以上报错可以查看是否未添加anaconda的环境变量具体参考如下文章,如何配置环境变量https://blog.csdn.net/Buster001/article/details/90025712..._anaconda import numpy 模块错误

c钩子库Minhook的使用_minihook使用 vs-程序员宅基地

文章浏览阅读5.4k次。简述最近在学习钩子库,逛了一下gay hub,发现了一个项目minhook,纯钩子库,甚合我意,就研究了一下,写了2个例子。后续打算研究一下这个钩子库的源代码,了解一下具体怎么实现的。例子例子就不贴到这上面了,给出github地址:minhook钩子库的使用示例例子vs2008编译通过,使用的dll,lib文件都是从minhook项目编译而来。minhook项目github地址..._minihook使用 vs

python 发布包_如何将自己的Python包发布到PyPI-程序员宅基地

文章浏览阅读150次。以前写过一篇类似的文章: 如何打包自己的项目并且发布到pypi上,不过由于PyPI进行了一些更新,因此旧方法不大适用了。趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此这次又尝试了如何将Python包发布到新版本的PyPI上。编写setup.py以haipproxy为例,它的setup.py如下from os import path as os_pathfrom s..._如何将python包推送到pipy

随便推点

RCE远程命令执行漏洞挖掘思路_rce漏洞挖掘-程序员宅基地

文章浏览阅读3.2k次,点赞3次,收藏19次。RCE漏洞存在的地方包括:在url参数上,文件下载处,在查看图片,查看文件等地方在文件删除上,SSRF可能存在的地方,变量参数提交的地方等_rce漏洞挖掘

[数据仓库]分层概念,ODS,DM,DWD,DWS,DIM的概念_ods层-程序员宅基地

文章浏览阅读10w+次,点赞118次,收藏518次。ODS是什么?ODS 全称是 Operational Data Store,操作数据存储.“面向主题的”,数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,也就说传说中的 ETL 之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。但是,这一层面的数据却不等同于原始数据。在源数据装入这一层时,要进行诸如去噪(例如有一条数据中人的年龄是 300 岁,这种属于异常数据,就需要提前做一些处理)、去重(例如在个人资料表中,同一 ID 却有两条重复_ods层

Lucene介绍与使用-程序员宅基地

文章浏览阅读9.1w次,点赞237次,收藏928次。1、了解搜索技术1.1 什么是搜索简单的说,搜索就是搜寻、查找,在IT行业中就是指用户输入关键字,通过相应的算法,查询并返回用户所需要的信息。1.2 普通的数据库搜索类似:select * from 表名 where 字段名 like ‘%关键字%’例如:select * from article where content like ’%here%’结果: where here..._lucene

一个简单的协议定制_parseline-程序员宅基地

文章浏览阅读262次,点赞8次,收藏4次。socket、序列化和反序列化、自定义协议、一般服务器设计原则和各种场景_parseline

【RT-Thread】学习日记之系统节拍Tick_rt_tick_get-程序员宅基地

文章浏览阅读715次。RT-Thread 学习日记之系统节拍Tick_rt_tick_get

MySQL数据库——高级查询语句_mysql高级查询语句-程序员宅基地

文章浏览阅读5k次,点赞17次,收藏94次。数据库是用来存储数据,更新,查询数据的工具,而查询数据是一个数据库最为核心的功能,数据库是用来承载信息,而信息是用来分析和查看的。例:SELECT A.Store_Name Store, SUM(A.Sales) “Total Sales” FROM fxk003 A GROUP BY A.Store_Name;例:SELECT Store_Name, SUM(Sales) FROM fxk003 GROUP BY Store_Name HAVING SUM(Sales) > 1500;_mysql高级查询语句

推荐文章

热门文章

相关标签