密码学:古典密码.

news2024/11/17 23:53:11

密码学:古典密码.

古典密码是密码学的一个类型,大部分加密方式是利用替换式密码或移项式密码,有时是两者的混合。古典密码在历史上普遍被使用,但到现代已经渐渐不常用了。一般来说,一种古典密码体制包含一个字母表(如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

     

      

      

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

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

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

相关文章

MATLAB 点云均匀体素下采样(6)

MATLAB 点云均匀体素下采样的不同参数效果测试 (6) 一、实现效果二、算法介绍三、函数说明3.1 函数3.2 参数四、实现代码(详细注释!)一、实现效果 不同参数调整下的均匀体素下采样结果如下图所示,后续代码复制黏贴即可: 分别为0.3m,0.2m,0.1m尺度下的格网下采样结果…

【C++复习2】C++编译器的工作原理

如果你是一名newbird的话,建议观看如下视频加深你的理解,再看如下内容: https://www.bilibili.com/video/BV1N24y1B7nQ?p7 The cherno会额外告诉你如何将目标文件转换成汇编代码,CPU执行指令的过程以及编译器如何通过删除冗余变…

【MySQL】SQL优化

上一篇索引是针对查询语句进行优化,但在MySQL中可不仅有查询语句,针对其他的SQL语句同样也能进行优化 文章目录 1.插入数据2.主键优化3.order by 优化4.group by优化5.limit优化6.update优化 1.插入数据 插入数据所使用的关键字为insert,SQL语句为 insert into 表名(字段1,字…

Huntly: 一款超强大的自托管信息管理工具,支持管理RSS、自动保存网页、稍后阅读

Huntly是一款开源的自托管信息管理工具,旨在帮助用户更好地管理和处理各种信息。Huntly可以通过管理RSS、自动保存网页和稍后阅读等功能来帮助用户更有效地收集、保存和浏览信息。 github 地址:GitHub - lcomplete/huntly: Huntly, information manageme…

服务器的基本概念与初始Ajax

1. 客户端与服务器 1.1 上网的目的 刷微博、看新闻、听歌、看电影。。。 本质目的:通过互联网的形式来获取和消费资源 1.2 服务器 上网过程中,负责存放和对外提供资源的电脑,叫做服务器。 1.3 客户端 上网过程中,负责获取…

如何用ChatGPT搭建品牌文本体系?(品牌名+slogan+品牌故事)

该场景对应的关键词库(26个): 品牌名、奶茶、中文名、情感联想度、饮料、价值观/理念、发音、slogan、产品功能导向、行业性质导向、经营理念导向、消费者观念导向、口语化、修辞手法、品牌故事、创始人初心品牌故事、里程碑事件故事、产品初…

OpenPCDet系列 | 3.框架训练准备流程

文章目录 训练准备流程1. dataloader部分2. network部分3. optimizer部分4. scheduler部分训练准备流程 对于OpenPCDet中模型的训练过程如下所示,在训练前一般需要进行4个部分的准备:数据准备、网络模型准备、以及优化器和学习率调度器。下面对这4个大部分分别介绍。主要就是…

【PWN刷题__ret2syscall】[Wiki] ret2syscall

初次接触到ret2syscall,而ret2syscall的题目目前没有在各大平台的题目类型筛选中找到,所以还是刷一刷Wiki的经典题目吧!过程中遇到很多问题,包括偏移量的计算、ret2syscall原理的理解等等。尝试以萌新的视角,来分享、解…

我们给AutoGPT写了个插件,手把手看看它的玩法~

目录 先保证你电脑里安装了 Python,然后使用的第一步是安装运行需要的库,这需要你输入这行代码 它会安装这个 txt 文件里面所有的库,比如openai库是用来调用 ChapGPT 的功能,beautifulsoup4库是用来解析网页内容等等。 到此为止…

间谍软件开发商利用漏洞利用链攻击移动生态系统

导语:间谍软件开发商结合使用了零日漏洞和已知漏洞。谷歌TAG的研究人员督促厂商和用户应加快给移动设备打补丁的步伐。 间谍软件开发商利用漏洞利用链攻击移动生态系统去年,几家商业间谍软件开发商开发并利用了针对 iOS 和安卓用户的零日漏洞。然而&…

Vue3项目中使用ECharts图表并实现自适应效果

文章目录 一、Vue3项目安装ECharts二、引入、使用ECharts1.创建图表组件,并在父组件中引入使用2.引入ECharts3.ECharts图表自适应 总结 一、Vue3项目安装ECharts 在项目中输入如下代码: npm install echarts --save安装完成可以在package.json中看到&a…

Vuex在项目中的实际应用

前言 最近让我搞一个关怀版本的系统。纯纯前端、无语死。就是整个系统的字体还有框框啥的变大。简单暴力的做法就是重新写一套样式咯,这不纯纯累死人啊。琢磨了一下,如果可以保存关怀版的一个标志,然后全部组件都可以获取到该标志。通过该标志,然后动态的指定类的样式。 V…

从状态机的角度看 HTML 实体编码的解析:你知道 HTML 实体编码处于哪些位置时可以被正常解析吗?

文章目录 参考描述HTML 实体编码HTML 实体编码为什么需要 HTML 字符编码支持特殊字符和符号避免语法冲突 HTML 实体编号与实体字符常用字符所对应的 HTML 实体编码 HTML 实体编码与 HTML 解析器状态机有限状态机HTML 解析器HTML 与有限状态机HTML 解析器与 HTML 实体编码属性值…

python-11-多线程模块threading

python使用多线程实例讲解 1 进程和线程 1.1 进程和线程的概念 进程(process)和线程(thread)是操作系统的基本概念。 进程是资源分配的最小单位,线程是CPU调度的最小单位。 线程是程序中一个单一的顺序控制流程,进程内一个相对独立的、可调度的执行单…

如何充分利用实时聊天系统?

随着商业和电子商务领域经历快速的数字革命,必须迅速适应的一个因素是我们与客户的互动方式。几年前,电子邮件和电话还是主要的客户联系方式。如今,客户期望更好的服务和更即时的沟通。实时聊天支持系统可以解决此问题,如SaleSmar…

【消息中间件】如何解决RocketMQ消息堆积的问题

文章目录 一、背景二、MQ消息堆积三、消息堆积常见于以下几种情况:四、解决上述问题需要做到五、如何解决消息堆积和延迟问题 一、背景 消息处理流程中,如果客户端的消费速度跟不上服务端的发送速度,未处理的消息会越来越多,这部…

day25_新特性

今日内容 零、 复习昨日 一、JDK8新特性介绍 二、接口新特性 三、Lambda表达式 四、函数式接口 五、Stream流 六、新日期API 零、 复习昨日 晨考 一、JDK8新特性 接口中默认方法静态方法 − 默认方法就是一个在接口里面有了一个实现的方法。静态方法就是接口中有个已经使用的静…

Windows下安装QT

一、Windows下安装QT 1、QT官网 QT官网:https://download.qt.io/,打开官网地址,如下: 目录结构介绍 目录说明snapshots预览版,最新的开发测试中的 Qt 库和开发工具onlineQt 在线安装源official_releases正式发布版&am…

2023,滴滴“摸着自动驾驶过河”

在“滴滴网约车”的出行领域,出行网络和数据量级是滴滴自动驾驶的优势。但就自动驾驶技术本身来看,滴滴仍然需要展示更多的肌肉。 作者|斗斗 出品|产业家 滴滴自动驾驶有了新动作。 一款“人性化”的概念车、两个加速实现量产L4级车辆的自研硬件、一…

【攻略】北京国际鲜花港

文章目录 一、概述二、经典景观1.万花馆2.花艺中心3.花神广场4.瑞云坪5.百花田6.奇石园7.梅园8.唐草园9.幻花湖10.大地花海11.白滩12.樱花大道13.海棠园 三、网友点评四、注意事项五、北京其他景点推荐 北京国际鲜花港_360百科北京顺义区十大著名景点—2、北京顺义国际鲜花港 -…