登录后更精彩...O(∩_∩)O...
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 mind 于 2022-4-22 22:36 编辑
攻防世界 --- crypto4 --- 幂数加密
附件:txt文件
======================
文件内容如下:
[思路]
观察可知【附件】中给出数字串有7个0,而答案为8位字母,故尝试将0为分隔符。
分割后的数字串为: 88421 122 48 2244 4 142242 248 122
===================================
代码:
[答案]
分割后的数字串为: 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
其中空格表示字母的间隔,/表示单词的间隔。
字母加密结果对照
|