凯撒密码加密算法python_CTF中会用到的密码学基础(节选)
Hello,大家好,好耐冇见,我系初音
今天我们来学习一下关于CTF中会用到的部分密码学基础(很简单的那部分)
01第一节、凯撒密码
在密码学中,凯撒密码(Caesar cipher),或称凯撒加密、凯撒变换、变换加密,是一种最简单且最广为人知的加密技术
它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文
下面举个小栗子
例如,当偏移量是左移1的时候(解密时的密钥就是1)
明文:ABCD
然后我们将字母按字母表的顺序往右边移动三个字母即得密文
密文:BCDE
那么如果我们得到了一个由凯撒密码加密的字符串,如何破解它呢?
1频率分析或者样式单词分析法
当我们拿到很长很长的一段密文字符串的时候,我们如果不确定这段文字是用了什么加密的,可以通过统计字符串中各字母出现的频率
然后对照典型目标语言书写的文字样本中各字母出现频率图(有可能目标语言是英语,也可能是法语等等)
2穷举法
或者还有一种简单暴力的方法,就是穷举
由于使用恺撒密码进行加密的语言一般都是字母文字系统,因此密码中可能是使用的偏移量也是有限的
例如使用26个字母的英语,它的偏移量最多就是25(思考:为什么是25?)
那么我们可以通过一些快速的脚本语言,列出25(假如一共有25种)不同偏移量的解密结果
然后就在里面找字句通顺的那个,就是答案了
凯撒密码很简单,下面我们来说说它的升级版,维吉尼亚密码
02
第二节、维吉尼亚密码
维吉尼亚密码(又译维热纳尔密码)是使用一系列凯撒密码组成密码字母表的加密算法,属于多表密码的一种简单形式
维吉尼亚密码曾多次被发明。该方法最早记录在吉奥万·巴蒂斯塔·贝拉索( Giovan Battista Bellaso)于1553年所著的书《吉奥万·巴蒂斯塔·贝拉索先生的密码》中
然而,后来在19世纪时被误传为是法国外交官布莱斯·德·维吉尼亚(Blaise De Vigenère)所创造,因此现在被称为“维吉尼亚密码”
维吉尼亚密码以其简单易用而著称,同时初学者通常难以破解,因而又被称为“不可破译的密码”
纵向的坐标代表秘钥, 横向的坐标代表明文
下面还是举个小栗子
假如我们的明文是
明文:ABCDEFG
然后我们协商一个密钥为
密钥:HATSUNE
然后我们查找上面那个对照表(有点像两个X\Y坐标确定一个二维点)
最上面横轴刻度的那个A(明文刻度)和最左边纵轴刻度的H(密钥刻度)对应的是H,然后以此类推,B和A对应的是B,C和T对应的是V,D和S对应的是V,E和U对应的是Y,F和N对应的是S,G和E对应的是K
最后我们就可以得到密文
密文:HBVVYSK
解密的话也简单,我们知道了密文和密钥,密钥第一个字母H对应H行,然后在H行去找密文第一个字母H在哪里,找到H对应的是A列,于是明文就是A
那么如何破解呢?这个问题其实说复杂也复杂,说简单也简单,但是鉴于CTF种很少出现叫你破解维吉尼亚密码的
感兴趣的同学可以自己去研究研究
1卡西斯基试验
略(说不写就不写)
2弗里德曼试验
略(说不写就不写)
3频率分析
略(说不写就不写)
然后接下来怎么会少的了练习的题目呢
1题目一
小茗同学高中时候喜欢同桌的男神
有一天,上课时候,男神给她递来了一个小纸条(如下)
面对男神期待的笑容,小茗百思不得其解其内容
高考结束后,小茗考入某大学信息安全专业,几年之后小茗毕业了
突然有一天,上班的小茗莫名其妙大喊一声:我顶你个肺!
便晕了过去,请问为什么?
ukq pdkqcdp e swjpaz pk owu pdwp e hkra ukq, xqp e swjp pk owu, bqyg ukq!
2题目二
小茗晕了两分钟之后醒了,立马收东西请假闭关修炼
三天之后,通过她大舅的儿子的三外甥的同学的妈妈的姐姐要到了当年暗恋男神的微信号wxxuxuxu
加了男神之后立马给他发了一条微信(如下)
与此同时,当年的男神已经有了女朋友阿慈,此时正在床上努力给阿慈治疗失眠症
男神接到这个莫名其妙的好友申请和信息之后,百思不得其解,来到自己小书房里面思考了半天
出门一掌就拍晕了自己女朋友,请问为什么?
ulrl dcofbofykx xwprxfis zuhibx mityn if vbzlla dlcka qi Pexciukx.
算出答案的可以在留言区留言
算出答案的可以在留言区留言
算出答案的可以在留言区留言
本文还没完
6.18 5折大促
知识星球官方6.18 5折大促,<玄说-安全>等你加入
咨询请加qq:717532978
加入请扫描下方二维码
我就知道你“在看”
凯撒密码加密算法python_CTF中会用到的密码学基础(节选)相关推荐
- playfair密码和凯撒密码加密算法的Java实现
文章目录 一.实现广义的凯撒密码加密算法 二.实现广义的playfair密码的加密算法 总结 加密原理: 一.实现广义的凯撒密码加密算法 //实现广义的凯撒密码//凯撒密码的加密String plai ...
- 凯撒密码加密算法 (8 分)
凯撒密码加密算法 (8 分) 编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母. 输入格式: 接收两行输入,第一行为待加密的明文,第二行为密钥 ...
- 凯撒密码加密算法python_Python密码学入门:凯撒密码
1 什么是密码学 自古以来,间谍.士兵.黑客.海盗.商人等人,大多依靠密码学来确保他们的秘密不会人尽皆知.密码学是一门使用秘密编码的学科.想要明白密码长什么样,看一看下面两段文本. nyr N.vNw ...
- php实现凯撒密码加密算法,Python实现的凯撒密码算法示例
本文实例讲述了Python实现的凯撒密码算法.分享给大家供大家参考,具体如下: 一 介绍 凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方 ...
- php实现凯撒密码加密算法,Golang 实现凯撒密码
一.凯撒密码加密代码思路 基本思路: 设置明文 和 位移步长(秘钥) 将明文转成小写,准备 明文字节切片 与 密文切片 循环将每个明文字符 按照 位移步长 做位移,存入密文切片 返回密文 导入包 im ...
- 凯撒密码加密算法python_Python最新暴力破解WiFi,攻破所有密码限制,最强破解!...
生成密码本 对于这个密码本就是我们常用的密码,一般是有数字.字母和符号组成.而现在呢?我们就用Python生成一个简单的密码本,这里用到的思路主要是穷举法.这里用到的库是itertools,没有的可以 ...
- java密码框转字符串_实现汉字的凯撒密码(内容包括:去掉字符串中的转义字符、汉字的unicode转换)...
实验内容: 选择合适的秘钥,利用上述三个算法:熟悉恺撒密码.双重置换密码.一次一密密码算法.加密如下明文: 大风起兮云飞扬, 威加海内兮归故乡, 安得猛士兮守四方. <大风歌>--刘邦 3 ...
- 凯撒密码中有数字怎么办_【论链】浅谈量子计算与区块链中的密码安全
来源:武谷论链 作者:尤浩量子力学博士 以下是尤浩博士链导讲堂分享记录: 任正非专访 任正非专访 任正非专访 任正非专访 任正非最新采访:区块链在量子计算面前一钱不值 (2019-11-06) 任正非 ...
- python中凯撒密码_python实现凯撒密码、凯撒加解密算法
凯撒密码的原理:计算并输出偏移量为3的凯撒密码的结果 注意:密文是大写字母,在变换加密之前把明文字母都替换为大写字母 def casar(message): # *************begin* ...
最新文章
- 图的最短路径dijkstra算法
- top命令详解-性能分析
- 打造专属BGM,​Python 深度学习教你
- lnmp架构——nginx的负载均衡
- console线驱动安装_centos7安装docker
- tableau可视化数据分析60讲(九)-tableau数值计算字符串计算(重点知识)
- ASP.NET Web API路由规则(二)
- 从《兄弟连》到团队管理
- Batch request processing in backend
- 在程序开发中日志级别
- [go]---从java到go(01)---基础与入门上手
- 企业自助分析难以推动?我用这套四步走方案解决了这个难题
- android去掉titlebar
- SQL Server内存泄漏
- 字典-dict(无序)
- python毕业设计作品基于django框架的鲜花水果商城毕设成品(6)开题答辩PPT
- 给大家拓宽点边界,15分钟带你入门sklearn与机器学习——分类算法篇
- 英特尔第二代神经计算棒(Intel Neural Compute Stick 2)相关测试
- Python 自动化教程(5) : 自动生成Word文件
- Struts2 常用标签使用(三十九)