摩尔斯电码和栅栏密码 ——合天网安实验室学习笔记

article/2025/4/20 0:34:39

实验链接

通过学习本实验理解摩尔斯电码和栅栏密码的编码解码过程;掌握编写摩尔斯电码的编码解码程序和编写多功能栅栏密码的编码解码程序。

链接:http://www.hetianlab.com/expc.do?ce=64d3e661-ebbb-41fd-a220-a17d608f994e

实验简介

实验所属系列: 密码学

实验对象: 本科/专科信息安全专业

相关课程及专业: Windows编程,C语言,汇编语言

实验类别: 实践实验类

预备知识

  • 摩尔斯电码

    • 摩尔斯电码的概念:

      摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。它发明于1837年,发明者有争议,是美国人塞缪尔·莫尔斯或者艾尔菲德·维尔。 摩尔斯电码是一种早期的数字化通信形式,但是它不同于现代只使用零和一两种状态的二进制代码,它的代码包括五种: 点、划、点和划之间的停顿、每个词之间中等的停顿以及句子之间长的停顿。

    • 摩尔斯电码的应用:

      摩斯密码编码简单清晰,二义性小,编码主要是由两个字符表示:"."、"-",一长一短,这在很多情况下应用很多,比如发送求救信号。电影《风声》中就是采用在衣服上缝出摩尔密码,将消息传播出去。动漫《名侦探柯南》中《推理对决,新一vs冲矢昴》(tv511)就是用了这种方法。

      在利用摩尔密码灯光求救的时候,定义:灯光长亮为"-",灯光短亮为".",那么就可以通过手电筒的开关来发送各种信息,例如求救信息。

      如果灯光是按照“短亮 暗 短亮 暗 短亮 暗 长亮 暗 长亮 暗 长亮 暗 短亮 暗 短亮 暗 短亮”这个规律来显示的话那么它就意味是求救信号SOS。

      因为SOS的摩尔编码为:··· --- ··· ,按照上面的规定即可进行灯光编码。这个编码其实非常简单,三短、三长、三短。

      除了灯光之外,利用声音(两种区别的声音)也可以发出求救信号。这种求救方式是我们都应该进行了解的,也许在必要的时候就可以派上用场。

      2015年1月,遭到恐怖组织“伊斯兰国”(IS)绑架的日本人质后藤健二被斩首,消息震惊国际,当年2月1日在网络上流传着一段由日本网友的解读影片,内容指出后藤在IS所发布的影片中,相较于右边的人质汤川遥菜相比,后藤眨眼的次数显得较为频繁,有日本网友将后藤健二画面放大,日本网友解密认为,后藤是透过眨眼来打出摩斯密码,而其所要透露的信息是“不要救我”,引起不少网友议论。

      摩尔斯电码被广泛的应用于很多动漫以及影视剧中,包括在早期的战争中也有很多的运用.

  • 栅栏密码

    • 栅栏密码的概念:

      所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。 不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多。(一般不超过30个,也就是一、两句话)也就是说栅栏密码是移位密码的一种。

    • 栅栏密码的应用:

      其实栅栏密码在现实生活中的应用很少,基于它爆破破解的难度低就不太可能用来保存什么重要的数据,出现的场合主要是一些ctf竞赛题,作为古典密码中算是运用最广的一种,在密码学的题目中一般都会对最终的结果进行栅栏加密。

实验目的

  • 理解摩尔斯电码和栅栏密码的编码解码过程

  • 掌握编写摩尔斯电码的编码解码程序

  • 掌握编写多功能栅栏密码的编码解码程序

实验环境

服务器:Kali Linux 64位 ,IP地址:随机分配

辅助工具:任意一门语言的编译环境

请在实验机内下载文件及源码:http://tools.hetianlab.com/tools/Morse.zip

实验步骤

步骤一

作为一战期间德意志帝国的一名密码学专家,某日通过无线电截获了协约国的两份秘密信件,貌似包含了协约国集团的作战计划和后续的战略部署,但是两份信件好像都经过某种不知名的编码方式进行加密了,作为专家的你能否通过自己的力量解密这两封信件,扭转战争的局势呢?

我们的实验任务分为3个部分:

  • 理解摩尔斯编码和栅栏密码的加密解码原理

  • 使用任意一门语言,实现对指定文件中的摩尔斯编码进行解码,以及对指定文件进行摩尔斯编码。

  • 使用任意一门语言,编写一个多功能栅栏加解密程序,实现以下但不限于以下的功能:

    • 对指定文件中的字符串进行栅栏穷举,显示出分为几栏时结果是什么?

    • 能够指定分几栏去进行解密(注意差错处理)

    • 能够指定分几栏去进行加密(注意差错处理)

任务描述:阅读以下的资料,了解摩尔斯密码和栅栏密码的编码原理以及解码原理,并回答相应的问题。

  • 摩尔斯密码编码原理

    摩尔斯密码是替换密码的一种,通过特定的密码置换表对相应的字符进行转换就是摩尔斯密码的编码原理,由于转换方式太过于简单以及编码之后特征太明显,到了今天我们已经很难从影视作品或是简单的ctf竞赛题目之外来找到摩尔斯密码的应用了,但不可否认他在密码学的发展过程中所起到的作用,通过学习摩尔斯密码我们也可以初步体会到替换密码的魅力。

    以下就是摩尔斯密码的替换表。

    26个字母的摩斯密码表:
    在这里插入图片描述

    数字的摩斯密码表:
    在这里插入图片描述

    标点符号的摩斯密码表:
    在这里插入图片描述

  • 栅栏密码编码原理

    与摩尔斯密码相对,栅栏密码应该算是古典密码学中最经典的移位密码了,两者可以说代表了密码学中最重要的两个概念(扩散和混淆)。

    我们以2栏栅栏密码为例来讲解它的加密和解密过程。

    比如明文:THERE IS A CIPHER

    两个一组,得到:(TH) (ER) (E ) (IS) ( A) © (IP) (HE) (R )

    先取出第一个字母:TEEI IHR

    再取出第二个字母:HR SACPE

    连在一起就是:TEEI IHRHR SACPE

    还原为所需密码。

    而解密的时候,我们先把密文从中间分开,变为两行:

    TEEI IHR

    HR SACPE

    再按上下上下的顺序组合起来:

    THERE IS A CIPHER

    那么将2栏密码扩展到多栏呢?

    相信你也已经注意到,在之前的明文中,我在CIPHER这个单词之后加了一个空格,那么目的相信你也已经猜测出来,就是为了让明文字符串的长度是2的倍数,那么栅栏密码的分栏的第一个前提就是分的栏数是明文长度的倍数,这样才会分出来的每个栏长度都一样。

    对于多栏,我们还是用上面的例子来讲解。

    上面的明文字符串(THERE IS A CIPHER )的长度是18,所以我们可以把他分为2,3,4,6,9栏,这里我们以6栏为例。

    以每个元素相隔6个字符分割出栅栏。

    第一栏:TII

    第二栏:HSP

    第三栏:E H

    第四栏:RAE

    第五栏:E R

    第六栏: C

    连接在一起就是:TIIHSPE HRAEE R C

小实验:在压缩包里,Morse cipher文本保存着使用摩尔斯密码加密后的密文,而Fence cipher文本中保存着栅栏密码加密后的密文。其中Morse cipher文本文件是没有密码的,而当你对Morse cipher文本进行破译之后就可以得到Fence cipher压缩包的密码了。

步骤二

任务描述:破解Morse cipher文本中的Morse 密文。

实验:使用任意一门语言,实现对指定文件中的摩尔斯编码进行解码,以及对指定文件进行摩尔斯编码。

实验指导:基于上面我们对于摩尔斯编码的原理的理解,我们可以知道摩尔斯编码当明文加密的长度比较大的时候,密文看起来会很复杂,但是说到底就是一种简单的替换,因此我们可以建立一种对应的关系,类似于Python中的字典这样的形式,对密文进行逐字符的替换。

查看示例文本

cat text.txt
在这里插入图片描述

对示例文本进行摩尔斯编码

python ./morse.py -e text.txt -o ./test.txt
在这里插入图片描述

查看编码后的文本

cat test.txt
在这里插入图片描述

对编码后的文本进行解码

python ./morse.py -d test.txt -o ./decode_test.txt
在这里插入图片描述

查看解码结果

cat decode_test.txt

在这里插入图片描述

对Morse_text.txt文件解码:
在这里插入图片描述
最终观察111.txt文件可找到密文:
在这里插入图片描述
文件夹破解成功:
在这里插入图片描述

步骤三

任务描述:通过对摩尔斯密文的破译,我们能得到最终机密文件的压缩密码,基于最终文本的名称以及他它的密文(长度大于主流的加密长度以及组成的字符为26个英文字母),我们可以断定这段密文是基于栅栏密码进行加密的,但是我们没有办法去判断它是分成几栏进行加密的密文,所以需要我们对可能的结果进行穷举尝试,但基于一点,最终获取的明文一定是按照栅栏加密的要求进行加密的。

实验:使用任意一门语言,编写满足以下功能的程序:

  • 对指定文件中的字符串进行栅栏穷举,显示出分为几栏时结果是什么?

  • 能够指定分几栏去进行解密(注意差错处理)

  • 能够指定分几栏去进行加密(注意差错处理)

查看示例文本

cat example.txt

在这里插入图片描述

对示例文本进行栏数为4的栅栏编码

python ./zhalan.py -e example.txt 4 -o encode_test.txt
在这里插入图片描述

查看编码结果

cat encode_test.txt

在这里插入图片描述

直接在屏幕上打印编码结果

python ./zhalan.py -e ./example.txt 4 -p
在这里插入图片描述

对编码结果进行可能的爆破解码

python ./zhalan.py -d encode_test.txt -a -o decode_test.txt

在这里插入图片描述

查看解码结果

cat decode_test.txt
在这里插入图片描述

直接对结果进行打印

python ./zhalan.py -d encode_test.txt -a -p

在这里插入图片描述

指定解码栏数为4

python ./zhalan.py -d encode_test.txt 4 -o ./4.txt

在这里插入图片描述

查看解码结果

cat 4.txt

在这里插入图片描述

直接对解码结果进行打印

python ./zhalan.py -d encode_test.txt 4 -p
在这里插入图片描述

实验完成!

尝试对Fence_text.txt解密:
在这里插入图片描述
观察到分为6栏的答案较为合理,指定解码栅栏为6:
在这里插入图片描述
实验完成。

答题

在这里插入图片描述


http://chatgpt.dhexx.cn/article/NheSGink.shtml

相关文章

【合天网安】DoraBox之文件包含及任意文件读取漏洞

【合天网安实验室】DoraBox之文件包含及任意文件读取漏洞 目的: 过DoraBox靶场系列练习,学习任意文件包含、目录限制文件包含及任意文件读取漏洞的利用过程。 实验过程: 1.确保Apache、MySQL服务正常开启 2、查看.txt文本内容 3.使用includ…

合天网安实验室-sql注入实验一

根据指导书我们要先在实验机进入这个网址http://10.1.1.11:81 进入之后会看到三个实例。 实例一 根据指导书的提示来做这一题。后面两个实例也要看这个指导书。 先判断是否存在注入 方法一 在参数后面加上单引号,比如: http://xxx/abc.php?id1’ 如果页面返回错误&#xff…

合天网安《Weekly CTF》第四周

Check your source code 题目介绍 打开靶机&#xff0c;进步网站&#xff0c;是一个登陆框 首先&#xff0c;根据题名的提示&#xff0c;f12&#xff0c;发现存在source.txt 打开source.txt&#xff0c;出现源码 对源码进行分析 <?php $flag "XXXXXXXXXXXX"…

计算机取证之Xplico ——合天网安实验室学习笔记

实验链接 Xplico是一款开源的网络取证分析工具&#xff0c;其分析与呈现的能力非常强大。Xplico可以捕获Internet网络应用层流量&#xff0c;通过流量解析&#xff0c;解析出网络包中的各种应用数据&#xff0c;还原网络数据发送现场。通过本实验学习掌握Xplico使用方法&#…

合天网安实验室CTF-Exp200-Come on,Exploit me!

合天网安实验室CTF-Exp200-Come on,Exploit me! 题目描述 Audrey Tang. ⊙.⊙ 我只能说到这儿了 相关附件 exp200 题目链接 参考解题步骤 1、下载附件先用VSCode打开看看 换个行看看 通过and换行有68行 2、根据题目描述猜测   如果没有接触过perl语言看到这些文本应该…

CTF挑战赛-合天网安实验室

[TOCCTF挑战赛-合天网安实验室逆向解析] http://www.hetianlab.com/CTFrace.html 1.逆向100 修改后缀为.apk 安卓模拟器打开&#xff0c;发现要求输入Password 用Android逆向助手打开&#xff0c;dex转jar&#xff0c;发现明文password 输入&#xff0c;得到flag。 2.逆向200 …

内存取证之Volatility ——合天网安实验室学习笔记

实验链接 Volatility是一款顶级的开源内存取证分析工具&#xff0c;支持Windows&#xff0c;Linux&#xff0c;MaC&#xff0c;Android等系统的内存取证&#xff0c;它由Python编写成&#xff0c;通过本实验学习内存取证的思想与方法&#xff0c;掌握volatility的使用。 链接…

合天网安实验室CTF练习赛之逆向题

最近搞逆向&#xff0c;就做做CTF题吧 挑战地址&#xff1a;http://www.hetianlab.com/CTFrace.html 对linux的逆向还没深入学习&#xff0c;所以re300暂时空着 2017.11.07&#xff1a;竟然还想起有这个事情没完成....,那就现在完成re300吧&#xff1a;合天网安实验室CTF练习…

合天网安实验室CTF-解密200-找茬游戏

合天网安实验室CTF-解密200-找茬游戏 题目描述 diff 相关附件 cry200.zip 题目链接 参考解题步骤 1、下载附件解压后得到一个文件夹&#xff0c;里面有两张图片 2、直接仔细观察未发现不同之处 3、既然表面没有不同&#xff0c;那应该是内部信息不同啦&#xff0c;用binw…

合天网安实验室CTF-Steg150-一段欢快的曲调

合天网安实验室CTF-Steg150-一段欢快的曲调 题目描述 滴滴 相关附件 stego100.wav 题目链接 参考解题步骤 1、下载的附件是一段wav格式的音频&#xff0c;打开听了一下&#xff0c;确实是欢快的曲调。 2、听的时候很奇怪为什么左声道没有声音&#xff0c;直到听到第1分11秒…

CTF挑战赛-合天网安实验室-Reverse逆向200writeup

自己做的时候 那个INT3断点一直搞不定 后来按照这篇文章的方法成功 转载自合天小逆向探究断点异常 作者iFurySt 东搞西搞都在瞎搞&#xff0c;今天到合天上面看到一个逆向题(RE200)&#xff0c;拿下来搞了一下&#xff0c;学到了点东西&#xff0c;分享一下。 首先当然是…

合天网安实验室CTF-Web100-Give Me Flag

合天网安实验室CTF-Web100-Give Me Flag 题目描述 哎,不小心把代码弄乱惹 相关附件 web100.zip 题目链接 参考解题步骤 1、下载附件打开后是一段JavaScript代码&#xff0c;但看起来被混淆了 源文件是没有换行的&#xff0c;我这里手动换行以便观察 2、试了一下直接翻译&…

合天网安实验室-第十六周-有点另类的SSRF

正式开始之前先普及一下SSRF漏洞的相关协议&#xff08;普及内容摘自大佬博客&#xff1a;https://www.anquanke.com/post/id/262430#h3-4&#xff09; File协议 读取本地文件用的 HTTP协议 探测一下内网活着的主机&#xff08;但是很多不会开Http协议&#xff0c;没多大用&…

合天网安实验室CTF-基础50-0x01

合天网安实验室CTF-基础50-0x01 最近无聊时准备刷点题&#xff0c;由简到难慢慢来吧 题目描述 真的不能再简单了! 相关附件 misc50.zip 题目链接 参考解题步骤 1、下载下来的压缩包解压后只有一个misc50.exe文件 2、先用sublime打开看一下&#xff0c;竟然是flag{666C616…

合天网安实验室CTF-基础100-Flag就在这儿

合天网安实验室CTF-基础100-Flag就在这儿 题目描述 嗯,什么东东&#xff1f;相信聪明的你一定会想到吧 相关附件 misc100.txt 题目链接 参考解题步骤 1、下载附件打开后是61366行每行是由逗号分隔的3个数&#xff0c;大部分是255&#xff0c;255&#xff0c;255 这里只截取…

合天网安实验室CTF-逆向100-看你的咯,移动安全大神

合天网安实验室CTF-逆向100-看你的咯,移动安全大神 题目描述 dex2jar是我们的好朋友 相关附件 rev100.zip 题目链接 参考解题步骤 1、下载附件解压后只有一个文件rev100 2、根据题目描述可以知道需要使用工具dex2jar。   由于本人使用的kali&#xff0c;很多工具系统都…

合天网安实验室 渗透测试项目一

利用网站漏洞获取该服务器shell&#xff1b;&#xff08;网页关入侵–铜牌任务&#xff09; 进入网站&#xff0c;找到文件上传口 写个一句话木马&#xff0c;上传&#xff0c;经过几次上传测试&#xff0c;发现是检测content-type&#xff0c;所以抓包&#xff0c;修改conte…

Docker未授权漏洞复现(合天网安实验室)

简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 一个完整的Docker有以下几个部分组成…

合天网安 CTF之第六周-套娃一样的上传

合天网安 CTF之第六周-套娃一样的上传 一、实验目的 本实验无writeup&#xff0c;需要同学们发挥自己所学&#xff0c;拿下最终目标 二、实验环境 目标机&#xff1a;Centos7 IP地址&#xff1a;10.1.1.147:5006 攻击机&#xff1a;win7 IP地址&#xff1a;随机分配 要求…

合天网安就业班_【合天网安实验室】SQL注入入门一

标签&#xff1a; 时间&#xff1a;2015年1月17日 实验平台&#xff1a;合天网安实验室.Web应用安全.SQL注入实验一 实验环境&#xff1a;ApachePHPMysql 实验原理&#xff1a; SQL注入是一种将SQL代码插入或添加到应用的输入参数中的攻击&#xff0c;之后再将这些参数传递给后…