[密码学入门]凯撒密码(Caesar Cipher)

密码体质五元组:P,C,K,E,D

P,plaintext,明文空间

C,ciphertext,密文空间

K,key,密钥空间

E,encrypt,加密算法

D,decrypt,解密算法

单表代换

单表:英文26字母的顺序

代换:替换为别的字母并保证解密的唯一性

假如我们让加密方式为所有字母顺序移动3位

import stringstring.ascii_lowercase
'abcdefghijklmnopqrstuvwxyz'

密钥 ,b=3

加密算法y=(x+b)mod26

plaintext='flag{Caesar Cipher}'
def encrypt(plaintext,b):ciphertext=''for each in plaintext:if each in string.ascii_lowercase:ciphertext+=string.ascii_lowercase[(string.ascii_lowercase.index(each)+3)%26]else:ciphertext+=eachreturn ciphertextret=encrypt(plaintext,3)
# iodj{Cdhvdu Clskhu}

解密算法为x=(y-b)mod26

ret='iodj{Cdhvdu Clskhu}'
def decrypt(ciphertext,b):plaintext=''for each in ciphertext:if each in string.ascii_lowercase:plaintext+=string.ascii_lowercase[(string.ascii_lowercase.index(each)-3)%26]else:plaintext+=eachreturn plaintextret=decrypt(ret,3)
# flag{Caesar Cipher}

密钥空间26

明文空间,密文空间均为26个英文字母(无法加密其他字符和数字)

如果不使用英文标准表,而是从26字母的全排列(26!)中随机选择一个,敌手单纯爆破这个单表和密钥还是很难的。

不过单表代换密码有一个问题:无法掩盖英文字母的统计学特征(如字母e的出现次数更多)。

假如:e在明文中出现700次,e被加密为s,s在密文中也会出现700次。敌手可以通过分析单个字母,词组,词缀等方法直接跳过秘钥,直接尝试恢复明文。

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

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

相关文章

每日一题 2596. 检查骑士巡视方案

难度:中等 很简单,从第 0 步开始模拟即可,唯一sb的就是测试用例中如果(0,0)处不为0的话就直接false,而不是去找0在哪 我的代码: class Solution:def checkValidGrid(self, grid: L…

Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory

文章目录 参考博客: Linux中执行bash脚本报错/bin/bash^M: bad interpreter: No such file or directory 首先在此对这位博主表示感谢。 运行bash脚本会出现两个文件,1037.err和1037.out。 1037.err的文件内容如下: /data/home/user12/.lsbat…

RobotFrameWork自动化测试环境搭建

前言 Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD&#xff0…

Redis-带你深入学习数据类型zset

目录 1、zset有序集合 2、zset相关命令 2.1、添加或更新指定的元素——zadd 2.2、获取有序集合zset的元素个数相关命令:zcard、zcount 2.3、返回指定区间元素相关命令:zrange、arevrange、zrangebyscore 2.4、删除相关命令:zpopmax、zp…

can除了raw protocol之外,还有什么协议?

CAN(Controller Area Network)除了原始协议(Raw Protocol)之外,还有一些高层次的协议和通信标准,这些协议在CAN基础上添加了更多的功能和特性,使其更适合不同的应用场景。以下是一些常见的CAN协…

supervisord 进程管理器 Laravel执行队列

supervisord 进程管理器 执行队列 安装 yum install supervisor修改配置文件 /etc/supervisord.conf 最后一行 ini改为conf files=/etc/supervisor.d/*.conf vim /etc/supervisord.conf/etc/supervisord.d目录下新增配置文件 vim laravel-worker.conf 修改i 粘贴内容 退出修…

最优化:建模、算法与理论(优化建模——2)

3.10 K-均值聚类 聚类分析是 统计学中的一个基本问题,其在机器学习,数据挖掘,模式识别和图像分析中有着重要应用。聚类不同于分类,在聚类问题中我们仅仅知道数据点本身,而不知道每个数据点具体的标签。聚类分析的任务…

理财是什么?怎样学习理财?

大家好,我是财富智星,今天跟大家分享一下理财是什么?怎样学习理财的方法。 一、理财的基本原则 1、理财应注重投资而不是投机,要与时间为友。 让我们先考虑以下问题:什么样的回报才算是真正的高回报?假设有…

TypeScript命名空间和模块

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 命名空间(Namespace) 命名空间(Namespace)使用场景 第三方库 兼容…

linux rz乱码文件删除

通过rz上传文件的时候经常会遇到 文件乱码问题,删又删不掉。 使用rz -be的方法上传 遇到乱码文件操作步骤 1. ls -i # 列出文件的编号 2. find . -inum 29229139 -delete # 根据编号删除文件 find 需要扫描的路径 -inum 文件编号 -delete

动态调用微服务

主要由三个文件组成 DynamicService.java DynamicFeignClientFactory.java DynamicClient.java 代码 package org.jeecg.modules.cloud.feign;import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; im…

RabbitMQ MQTT集群方案官方说明

RabbitMQ MQTT 官方网说明 官方地址: https://www.rabbitmq.com/mqtt.html 从3.8开始,该MQTT插件要求存在一定数量的群集节点。这意味着三分之二,五分之三,依此类推。 该插件也可以在单个节点上使用,但不支持两个节点的集群。 如…

Unity粒子系统ParticleSystem各模块及其参数学习

粒子系统控制面板默认有4个模块:Particle System(主模块),Emission(发射模块), Shape(形状模块),Renderer(渲染器模块) 1.Particle …

Vue.js not detected解决方法

扩展程序》管理扩展程序》详情》允许访问文件地址打开

软件测试7大误区

随着软件测试对提高软件质量重要性的不断提高,软件测试也不断受到重视。但是,国内软件测试过程的不规范,重视开发和轻视测试的现象依旧存在。因此,对于软件测试的重要性、测试方法和测试过程等方面都存在很多不恰当的认识&#xf…

Vulnhub系列靶机---HarryPotter-Fawkes-哈利波特系列靶机-3

文章目录 信息收集主机发现端口扫描dirsearch扫描gobuster扫描 漏洞利用缓冲区溢出edb-debugger工具msf-pattern工具 docker容器内提权tcpdump流量分析容器外- sudo漏洞提权 靶机文档:HarryPotter: Fawkes 下载地址:Download (Mirror) 难易程度&#xff…

WEBPACK基础配置【总结】

webpack打包原理: webpack是一个js应用程序的静态模块打包工具,当webpack处理应用程序时,它的内部构建一个依赖图,会映射项目中需要打包的每个模块,并生成一个或多个bundle包。因此我们会在web pack.config.js中配置各…

【Datawhale简单学点大模型笔记】大模型的有害性

参考: https://github.com/datawhalechina/so-large-lm/blob/main/第三章:大模型的有害性-上.md https://github.com/datawhalechina/so-large-lm/blob/main/第四章:大模型的有害性-下.md 大模型的有害性 性能差异社会偏见和刻板印象有害信…

C++面试/笔试准备,资料汇总

文章目录 后端太卷,建议往嵌入式,qt,测试,音视频,C一些细分领域投简历。有任何疑问评论区聊,我看到了回复 C面试/笔试准备,资料汇总自我介绍项目实习尽可能有1.编程语言:一.熟悉C语言…

【牛客面试必刷TOP101】Day4.BM15删除有序链表中重复的元素-I和BM17二分查找-I

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:牛客面试必刷TOP101 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&…