CISCN CCB crypto

news/2024/12/22 20:17:18/文章来源:https://www.cnblogs.com/miffya/p/18622466

CISCN & CCB crypto

rasnd

第一部分

h1 = x1*p + y1 *q - 0x114

h2 = x2*p +y2 * q - 0x514

消去p后爆破h1、h2即可

from Crypto.Util.number import *
from gmpy2 import *
from tqdm import *
c = 
n = 
a = 
b = 
e = 0x10001for x1 in range(2**8,2**11):for x2 in range(2**8,2**11):k = (b+0x514)*x1 - (a+0x114)*x2if(gcd(k,n) >1 & gcd(k,n)<n-1):print(gcd(k,n))q = gcd(k,n)p = n//q
print(p)
print(p*q ==n)phi = (p-1)*(q-1)
print(phi)
d = invert(e,phi)
m= pow(c,d,n)
print(long_to_bytes(m))

第二部分

h = pow(514p - 114q, n - p - q, n)

由pow(a,phi,n) = 1(a、n互素)得h = pow(514p-114q , -1 , n)

求出514p-114q后联立n = p * q 即可求解

def extended_gcd(a, b):"""扩展欧几里得算法,返回 gcd(a, b) 和 x, y 使得 ax + by = gcd(a, b)"""if a == 0:return b, 0, 1gcd, x1, y1 = extended_gcd(b % a, a)x = y1 - (b // a) * x1y = x1return gcd, x, ydef mod_inverse(h, n):"""计算 h 在模 n 下的乘法逆元"""gcd, a, _ = extended_gcd(h, n)if gcd != 1:raise ValueError(f"{h} 和 {n} 不是互质的,无法计算逆元。")else:return a % n  # 确保结果为正数# 已知的 h 和 n
h =   # 替换为实际的 h 值
n =   # 替换为实际的 n 值try:a = mod_inverse(h, n)print(f"满足 a * {h} ≡ 1 (mod {n}) 的 a 值为: {a}")
except ValueError as e:print(e)
#输出即第二个代码中的h
# 导入 SageMath 的符号和求解功能
from sage.all import *# 已知的 n 和 h 值
n =   # 替换为实际的 n 值
h =   # 替换为实际的 h 值# 定义符号 p 和 q
p, q = var('p q')# 构建方程
eq1 = h == 514 * p - 114 * q
eq2 = n == p * q# 使用 solve 函数求解方程组
solution = solve([eq1, eq2], p, q)# 输出解
solution
#求得p、q
from Crypto.Util.number import *
from gmpy2 import *c = 
n = 
p = 
q = 
e = 0x10001
phi = (p-1)*(q-1)
print(phi)
d = invert(e,phi)
m= pow(c,d,n)
print(long_to_bytes(m))

fffffhash

分析代码,得知是fnv哈希,去网上学习相关知识,套用板子即可求解

sage代码如下:

TARGET = 201431453607244229943761366749810895688
h0 = 0x6c62272e07bb014262b821756295c58d
p = 0x0000000001000000000000000000013b
MOD = 2^128n = 16
M = Matrix.column([p^(n - i - 1) for i in range(n)] + [-(TARGET - h0*p^n), MOD])
M = M.augment(identity_matrix(n+1).stack(vector([0] * (n+1))))
Q = Matrix.diagonal([2^256] + [2^4] * n + [2^8])
M *= Q
M = M.BKZ()
M /= Q
for r in M:if r[0] == 0 and abs(r[-1]) == 1:r *= r[-1]#print(r)good = r[1:-1]print(good)breakinp = []
y = int(h0*p)
t = (h0*p^n + good[0] * p^(n-1)) % MOD
for i in range(n):for x in range(256):y_ = (int(y) ^^ int(x)) * p^(n-i-1) % MODif y_ == t:print('good', i, x)inp.append(x)if i < n-1:t = (t + good[i+1] * p^(n-i-2)) % MODy = ((int(y) ^^ int(x)) * p) % MODbreakelse:print('bad', i)
print(bytes(inp).hex())
#020101081b04390001051a020a3d0f0f

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024-2025-1 20241421 《计算机基础与程序设计》第十三周学习总结

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计 这个作业要求在哪里 2024-2025-1计算机基础与程序设计第十三周作业 这个作业的目标 复习知识,巩固所学 作业正文 https://www.cnblogs.com/118qa/p/18622459 教材学习内容总结概念 结构体是一种用户自定义的数据类型,…

Shell脚本编程题(八道)

Linux操作系统期末编程题——Shell脚本编程题(八道) 第一题 1.编程实现从键盘获取一个整数,按下列情况输出对应结果: (1)当该数值为 6 或 7 时,输出“休息日(Rest Day)”。 (2)当该数值为 1 至 5 时,输出“工作日(Working Day)”。 (3)其他情况输出“输入错误(E…

构建全方位大健康零售帮助中心:提升服务与体验

在当今社会,随着人们健康意识的不断提升,大健康零售市场迎来了前所未有的发展机遇。然而,面对琳琅满目的健康产品、复杂的健康理念以及日益增长的消费者需求,如何提供一个高效、便捷、全面的帮助中心,成为了大健康零售企业亟待解决的问题。在此背景下,引入Helplook工具,…

高新技术企业知识管理新篇章:高效内部知识库建设

高新技术行业作为经济发展的重要引擎,其创新能力和发展速度直接关乎国家的整体竞争力。然而,在快速发展的背后,高新技术企业面临着知识管理不善、信息共享不畅等挑战。为了应对这些挑战,高效搭建内部知识库显得尤为重要。本文将以Helplook工具为例,探讨如何高效构建高新技…

C# winform自定义图片空间 缩放、拖拽、绘画

首先简单介绍一下图片自定义的功能 1、滑动鼠标滚轮缩放图片; 2、按住鼠标左键拖拽图片; 3、可选绘画矩形、圆、直线、画笔; 4、可选连续绘画、单次绘画; 5、每次绘画通过事件返回起点坐标、终点坐标; 6、右击可重置图片大小(适应窗口)、原始尺寸(100%)、另存当前图片、清…

实验

任务41 #include <stdio.h>2 #define N 103 4 typedef struct {5 char isbn[20]; 6 char name[80]; 7 char author[80]; 8 double sales_price; 9 int sales_count; 10 } Book; 11 12 void output(Book x[], i…

T网站景点评论爬虫分享

由于学校作业需要对景点评论做一个汇总和分析,这里以T程网站为例,进行爬虫分析,爬取景点评论。开干! 景点评论页面 首先找到我们要爬取的评论页面:F12打开开发者工具,点击Network,Fetch/XHR:这里遇到个问题,页面被添加了无限断点,Fetch/XHR中没有任何数据,推荐用以下…

【每日一题】20241222

记住,只有软弱的人才从他人身上寻求回报。我们的回报是我们自己。【每日一题】某流水线上生产的一批零件,其规格指标 \(X\) 可以看作一个随机变量,且 \(X\sim N(98,\sigma^2)\), 对于 \(x\geq100\) 的零件即为不合格,不合格零件出现的概率为 \(0.05\).现从这批零件中随机抽…

【每日一题】2024

记住,只有软弱的人才从他人身上寻求回报。我们的回报是我们自己。【每日一题】某流水线上生产的一批零件,其规格指标 \(X\) 可以看作一个随机变量,且 \(X\sim N(98,\sigma^2)\), 对于 \(x\geq100\) 的零件即为不合格,不合格零件出现的概率为 \(0.05\).现从这批零件中随机抽…

Git-第一次提交

第一次提交 配置用户名和邮箱 git config --global user.name <username> git config --global user.email <email>目录结构first-steps就是一个示例项目 创建版本库 版本库是用来存储项目本身及其历史的 进入到first-steps目录中 cd first-steps git init提交 git…

一种隐藏VBA代码模块和恢复可见的方法

为了保护自己写的VBA程序代码不被他人抄袭,你可能想到给程序添加查看密码。然而这种密码是很容易被破解的,其中的一种破解方法详见我之前写的一篇文章:如何把Excel的VBA程序封装成DLL并分发给他人使用。其实还有很多种破解方法,包括下面即将介绍的这种隐藏代码模块的方法也…

渗透测试-前后端加密分析之AES加密下的SQL注入

本文是高级前端加解密与验签实战的第9篇文章,也是最后一篇文章。本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本文讲述的是绕过前后端加密进行SQL注入。本文是高级前端加解密与验签实战的第9篇文章,也是最后一篇文章。本系列文章实验靶场为Yakit里自带的Vulinbox靶场,本…