代码编织梦想

目录

曼切斯特编码题目

波利比奥斯方阵密码脚本爆破

Zip伪加密题目

音符编码+连续base64编码+url编码题目

Web过滤注入题目


曼切斯特编码题目

1.题目发现是曼切斯特编码,将密文转2进制后进行解密

2.后将16进制转字符可得flag

3.尝试敲代码实现解码实现了解曼彻斯特编码,10为1,01为0

将密文转化为2进制,再两位进行一个划分进行曼彻斯特编码,再转化为十六进制再转字符

波利比奥斯方阵密码脚本爆破

1.发现有一个base64编码提示解密后

2.提示说明文长度有14位,观察密文长度有28位。推测是波利比奥斯方阵密码,但不知道秘钥。波利比奥斯方阵密钥特征:密钥是密文中每一种字符。

3.脚本思路,通过枚举密钥进行破解

4.发现脚本中有好用的代码思路,可以利用进行以后的解密思路,在此进行详细分析

分开字符串

查找字母在字符串的位置

题目总结:使用itertools.permutations()与for循环可以进行不同排序,jojn()函数可以分开字符串中的每个字符也可以反过来,index()函数用于查找()内的字母第一次出现的位置。

Zip伪加密题目

1.推测可能是伪加密用010打开后发现有两个504B0304和504B0102,两个504B0304后面红框显示没有加密。只有第二个504B0102中显示加密文件,将09改成00即可获得flag

题目总结:如果504B0304后面方框判断有无加密有9则是加密,而是504B0102后面的方框则是进行显示有没有加密

音符编码+连续base64编码+url编码题目

1.发现压缩包里有压缩包

2.打开压缩包发现有一个图片可以解压

3.打开图片发现是2020的数字,猜测可能是当前压缩包的密码。解压后获得了一个压缩包里的文件

4.打开doc发现是音符编码,https://www.qqxiuzi.cn/bianma/wenbenjiami.php?s=yinyue使用在线工具得

5.音符解码后本以为是base64编码发不是,想到rabbit编码特征末尾也可能有等于号,无秘钥解码发现不对,尝试输入秘钥2020得到压缩包密码

6.发现只解密出来一个文件,另一个flag文件并没有解出来,发现解出来的文件是base64编码,经过连续6次base64次解码后得到url编码再次解密获得了flag文件的压缩包密码。

发现后面几次进行base64解码时,有%不能进行转换,需要换一个工具。

题目总结:当发现符合这个编码但使用工具进行解码解不出来时,先观察是什么字符影响了。有些工具识别未知字符会不能解码,不能将未识别字符直接输出。

Web过滤注入题目

1.发现index.php泄露查看源代码,分析发现过滤了关键字符。需要在 username 框构造语句成功登录就能得到 flag

2.这里注入1'/**/or/**/1=1/**/group/**/by/**/password/**/with/**/rollup/**/#即可获得flag

语句分析:group by 后可以跟with rollup,可以在进行分组统计的基础上再次进行汇总统计。达到的结果就是通过加入 with rollup 使 sql 语句查询结果 password 有一行为是 null ,在不输入 password 情况下就能达到源码中的条件

复习:

RSA

加密公式:C = pow(c,e,n)

解密公式:m = pow(c,d,n)

N=p*q质数相乘

欧拉函数T=(p-1)*(q-1)

计算私钥D的公式:d = gmpy2.invert(e,t)/ (d * e) mod t = 1

公钥E的条件:质数,1<公钥<T

当e=1时并且m<n时:明文=密文

费马定理分解n:1.a= gmpy2.iroot(n,2)[0] 循环 2.b方= pow(a,2)-n,如果b不是平方数a+1。如果是平方则开根号得b=gmpy2.iroot(B2,2)[0],得出p=a+b。q=a-b

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_55631415/article/details/128012362

现代密码学导论-13-归约证明_南鸢北折的博客-爱代码爱编程

目录 3.3.2 Proofs by Reduction 最后来理一遍: 3.3.2 Proofs by Reduction 如果我们希望证明一个给定的构造(例如,加密方案)在计算上是安全的,那么——除非该方案在信息理论上是安全的——我们必须依赖于未经证明的假设。我们的策略是假设一些数学问题是困难的,或者一些低级的密码原语是安全的,然后证明只