密码学入门 古老的围栏密码技术

news2024/12/25 9:02:35

1、简述

        由于隐私和安全的重要性不断增加,已经开发了多种加密方法和技术来保护我们的敏感数据。随着时间的推移而演变,从经典密码学发展到现代密码学。

        在本文中,我们将了解一种被称为围栏密码技术的技术,涵盖其加密和解密过程及其局限性。

        在了解围栏密码之前,我们先讨论一下经典密码学技术,即替换和转置。在替换技术中,原始消息的字符被替换为不同的字符、数字或符号。凯撒密码是替代技术的一个例子。相反,转置技术涉及通过排列重新排列明文。

        围栏密码属于转置技术的范畴,我们改变每个明文字母的位置。

2、加密

        围栏密码的加密过程需要选择轨道的数量,以所选轨道数量确定的Z字形对角写入消息,然后从左到右将每个轨道上的字符组合起来,以获得加密的消息。下面,我们将用一个例子来解释每个步骤。

        首先,将“RAILFENCE”视为纯文本。接下来,让我们将轨道或围栏的数量取为三,这也可以称为密钥。该键将决定锯齿形图案的高度。随后,我们可以按从左到右的Z字形斜写消息:

        最后,我们将组合各个行来生成密文,在本例中为“RFEALECIN”。

3、解密

        要开始解密,我们首先需要知道密文中的行数和列数。列数等于密文的长度。然后,我们必须计算出用于加密的行数,作为密钥。在确定了行和列的数量后,我们可以构建表格并确定字母的合适位置,因为围栏密码以Z字形从左到右对角加密文本:

        *表示密文中的字母被放置以形成明文的位置。我们从第一个“rail”(最上面一行)开始填写字母,然后从左向右移动。然后,我们在下一个轨道上继续这种模式,以此类推,直到所有星号位置都填充了密文中的字母:

        我们可以将从上到下、从左到右的字符组合起来,得到明文,即“RAILFENCE”。

4、小结

        看起来是不是觉得有种开玩笑的感觉?不过很多技术都是从看似可笑的方式发展出来。随着时代进步不断的将旧的技术淘汰,也是很自然的事情。

        使用频率分析可以很容易地破坏围栏密码的加密。加密的密钥是一个小于或等于密文长度的数字。因此,它极易受到暴力攻击。

        简言之,围栏技术是经典密码学的入门技术,现代自然没有人使用,它的局限性使其适合用于教育目的。因此,要保护敏感数据,在这个数字时代,我们依靠AES、RSA等现代加密技术来保护我们的信息和隐私。

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

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

相关文章

Unity组件开发--升降梯

我开发的升降梯由三个部分组成,反正适用于我的需求了,其他人想复用到自己的项目的话,不一定。写的也不是很好,感觉搞的有点复杂啦。完全可以在优化一下,项目赶工期,就先这样吧。能用就行,其他的…

MidJourney笔记(10)-faq-fast-help-imagine-info-public-stealth

/faq 在官方 Midjourney Discord 服务器中使用可快速生成流行提示工艺频道常见问题解答的链接。 不过这个命令,我也是没有找到入口,之前还能在MidJourney的频道里使用,然后最近发现没有权限,有点奇怪。不知道系统又做了什么升级。 /fast 切换到快速模式。

Vue3-34-路由-路由配置参数 props

说明 路由的路径中可以携带参数, 形式如 :/a/:pname ,这个:表示这是个参数,pname :表示 参数名称。 在组件中,可以通过 当前路由对象的 params 属性来获取到这个参数, 当前路由对象 可以通过 us…

Flutter 混合开发 - aar打包

背景 项目接入 Flutter 后有两种方式,一种是 module 引入开发,一种是 aar 依赖开发。当前项目中在 Debug 阶段为了方便调试采用 module 开发,在发版时(即 Release 阶段)采用 aar 依赖引入。为了配合这种模式就需要在 …

SpringBoot中动态注册接口

1. 说明 接口注册,使用RequestMappingHandlerMapping来实现mybatis中动态执行sql使用github上的SqlMapper工具类实现 2. 核心代码片段 以下代码为spring动态注册接口代码示例 Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping;publ…

手机上连网络转接app,电脑连接手机,共用网络转接app的办法

方法一,(不推荐) 因为太简单了所以写一下 电脑安装MuMu模拟器,之后安装网络转接app,这个模拟器设置了从电脑上安装app和,安卓与电脑同步文件夹功能,实现文件共享。所以直接用就可以了。 方法二…

彻底认识Unity ui设计中Space - Overlay、Screen Space - Camera和World Space三种模式

文章目录 简述Screen Space - Overlay优点缺点 Screen Space - Camera优点缺点 World Space优点缺点 简述 用Unity中开发了很久,但是对unity UI管理中Canvas组件的Render Mode有三种主要类型:Screen Space - Overlay、Screen Space - Camera和World Spa…

OR-3150:IGBT驱动光耦,可替代HCPL3150

具有MOSFET高输入阻抗和GTR低导通压降特性提供隔离反馈 高隔离电压 1.5A输出电流 工业温度范围:–40C 至 110C 宽工作 VCC 范围 特征 VCM 1500V 时最小共模抑制 (CMR) 为 35 kV/μs 最大低电平输出电压 (VOL) 1.0…

ERROR:SyntaxError: Non-ASCII character ‘\xc3‘ in file

报错信息: SyntaxError: Non-ASCII character ‘\xc3’ in file /home/user/ROSpy-LeaderFollower/src/follow_/src/scripts/tb3_flw.py on line 46, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 解决办法: pyt…

数据的创建、调用、修改、删除存储过程,以及第一类丢失更新(回滚丢失)和 第二类丢失更新(覆盖丢失/两次更新问题)

数据的创建存储过程、调用存储过程、修改存储过程、删除存储过程,以及第一类丢失更新(回滚丢失)和 第二类丢失更新(覆盖丢失/两次更新问题) 文章目录 一、创建存储的语法二、调用存储过程三、修改存储过程四、删除存储…

码云Gitee复制 GitHub 项目

码云提供了直接复制 GitHub 项目的功能,方便我们做项目的迁移和下载。 1.新建仓库 2.导入仓库 3.强制同步 如果 GitHub 项目更新了以后,在码云项目端可以手动重新同步,进行更新!

Vue3-36-路由-路由的元数据信息 meta

什么是 meta 简单的理解,meta 就是路由对象 的一个属性对象, 可以 通过这个 属性给 路由对象添加 一些必要的属性值, 在使用路由对象时可以获取到这个属性型对象,从而进行一些其他的逻辑判断。 meta 这个非常的简单,就…

将yolov8的检测框从正框修改为旋转框需要做那些修改?

将yolov8项目修改为yolov8_obb项目需要修改模型结构(增加角度预测)、dataloader(使其支持dota格式数据)、修改TaskAlignedAssigner(使其支持带角度的bbox)、修改loss(新增对角度的训练)、修改metric(将hbb指标titile修改为obb)、修改绘图代码(使其能绘制旋转框)。 …

Flink窗口与WaterMark

本文目录 窗口的生命周期Window Assigners窗口函数(Window Functions)TriggersEvictorsAllowed Lateness 窗口 窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。…

K8S陈述式资源管理(1)

命令行: kubectl命令行工具 优点: 90%以上的场景都可以满足对资源的增,删,查比较方便,对改不是很友好 缺点:命令比较冗长,复杂,难记声明式 声明式:K8S当中的yaml文件来实现资源管理 GUI:图形…

box-shadow参数学习及渲染过程研究

参数定义 CSS 的 box-shadow 属性用于在元素的框架周围添加阴影效果。它可以接受多个由逗号分隔的阴影效果,每个阴影效果由以下几部分组成: h-offset:水平阴影的位置。正值将阴影向右移动,负值将阴影向左移动。v-offset&#xf…

vue-video-player播放hls视频流

需求 最近需要接入海康视频摄像头,然后把视频的画面接入到自己的网站系统中。以前对接过rtsp固定IP的显示视频,这次的不一样,没有了固定IP。海康的解决办法是,摄像头通过配置服务器到萤石云平台,然后购买企业版账号和…

【unity小技巧】实现没有动画的FPS武器摇摆和摆动效果

文章目录 前言开始完结 前言 添加程序摇摆和摆动是为任何FPS游戏添加一些细节的非常简单的方法。但是并不是所以的模型动画都会配有武器摆动动画效果,在本文中,将实现如何使用一些简单的代码实现武器摇摆和摆动效果,这比设置动画来尝试实现类…

调整几行代码,接口吞吐提升 10 倍,性能调优妙啊!

景 分析过程 总结 背景 公司的一个ToB系统,因为客户使用的也不多,没啥并发要求,就一直没有经过压测。这两天来了一个“大客户”,对并发量提出了要求:核心接口与几个重点使用场景单节点吞吐量要满足最低500/s的要求。 当时一想,500/s吞吐量还不简单。Tomcat按照100个线程…

小心JDK20 ZipOutputStream

Oracle 團隊竟然這麽粗心,編譯JDK 20 時ZipOutputStream沒有編譯成功就發佈了。 所以這個20版本不可以使用ZipOutputStream。 GZIPInputStream 只能做最後的壓縮,不能添加多個附件ZipEntry。 下一個版本21不存在這個問題。 try(var zipOut new ZipOu…