找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 92|回复: 0

攻防世界 --- crypto4 --- 幂数加密

[复制链接]

2万

主题

138

回帖

14万

积分

管理员

积分
140115
发表于 2022-4-22 21:38:33 | 显示全部楼层 |阅读模式 IP:山东省青岛市 移动

登录后更精彩...O(∩_∩)O...

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 mind 于 2022-4-22 22:36 编辑

攻防世界 --- crypto4 --- 幂数加密

3.png

1.png

附件:txt文件

======================

文件内容如下:

[思路]
观察可知【附件】中给出数字串有7个0,而答案为8位字母,故尝试将0为分隔符。
分割后的数字串为: 88421 122 48 2244 4 142242 248 122

9.png
(上图来源)
============
===================================
代码:

[答案]

分割后的数字串为: 88421 122 48 2244 4 142242 248 122

上串为2的幂数: 33210 011 23 1122 2 021121 123 011


我们发现,题目与标准的幂数加密不同,每个字母中有重复的数字出现,但其实2个重复的幂数实际上相当于乘2,例如33代表的,就是2^3+2^3=2^4,也就是4。
根据幂数加密的原理,发现其实不用纠结于原理,直接把分割后的各个子串求和,再转字母即可。
==================================

二进制幂数加密法


二进制幂数加密法,由于英文字母只有26个字母。只要2的0、1、2、3、4、5次幂就可以表示31个单元。通过用二进制幂数表示字母序号数来加密。

二进制数除了0和1的表示方法外,在由二进制转换成十进制的时候,还可以表示成2的N次方的形式。例如:
15=2^0+2^1+2^2+2^3
并且我们发现,任意的十进制数都可以用2^n或2^n+2^m+……的形式表示出来,可以表示的单元数由使用的max n来决定。
可表示的单元数=2^(n+1)-1
二进制幂数加密法就是应用这个原理,由于英文字母只有26个字母,由公式可知,只要2的0、1、2、3、4、5次幂就可以表示31个单元。通过用二进制幂数表示字母序号数来加密。例如

明文: d o n o t p u l l a l l y o u r e g g s i n o n e b a s k e t
字母序号:4 15 14 15 20 16 21 12 12 1 12 12 25 15 21 18 5 7 7 19 9 14 15 14 5 2 1 19 11 5 20
由于4=2^2 所以D加密过之后是2;15=2^0+2^1+2^2+2^3所以O加密后是0123。同理得到上述明文的加密后的密文
密文:2 0123/123 0123 24/4 024 23 23/0 23 23/034 0123 024 14/02 012 012 014/03 123 /0123 123 02/1 0 014 013 02 24
其中空格表示字母的间隔,/表示单词的间隔。
字母加密结果对照


幂数加密.png





回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|时间戳|加密|CTF WiKi|CTF平台汇总|CTF show|ctfhub|棱角安全|rutracker|攻防世界|php手册|peiqi文库|CyberChef|猫捉鱼铃|手机版|小黑屋|cn-sec|IOTsec-Zone|在线工具|分享屋 ( 鲁ICP备2021028754号 )

GMT+8, 2024-9-21 10:46

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表