- 博客(31)
- 收藏
- 关注
原创 机器学习实战记录(1)
这些样本的第二个特征都是“否”。可以看到,函数成功地将数据集按第二个特征值为“否”进行划分,且去除了“是否有工作”这一特征,返回了包含其余特征的子集。表示我们正在根据第二个特征(“是否有工作”)进行划分,是一个空列表,用来保存符合条件的子集。),就将该样本的特征信息(去掉当前特征)加入到。这个代码就是按axis划分,然后每次把它去掉。假设我们希望根据第二个特征“是否有工作”(表示我们选择特征值为“否”的样本。,每次找到符合条件的样本(即特征。)进行划分,我们调用。
2024-11-23 22:25:45
547
原创 2020全国高校计算机能力挑战赛python组最长连续非降序字串
解题思路就是按序访问,遇到不合格的,从此开始切片,注意就是切片时候字符串长度也变了,所以循环时候要注意字符串长度是怎么变的。
2024-11-15 21:35:57
147
原创 计挑赛准备
现有六门功课 (语文、数学、物理、化学、政治、历史) 的成绩, 现在需要从中选拔优秀同学参加如下学科竞赛: 生物竞赛 (B) 选拔化学和数学总分最高的同学, 信息学竞赛 (I) 选拔物理和数学总分最高的同学,自动化流水线生产, 产品质量通过对每批N件产品中的连续M件进行抽查完成, 其中每个产品评测K个指标, 每个指标的检测结果为“优秀” (用1表示) 或“合格” (用0表示) ,例如一个产品有6个指标,求任意被抽查的连续M件产品 (如1~M、2 ~(M+1)、3~(M+2),(N-M+1)~N),
2024-11-10 21:35:48
582
原创 MoeCTF_hidden-poly
我们的x是已知的,关于如何求解此方程,其实有一种方法,就是构造格来解,简单分析一下这题就是要求key。LLL格级规约就可以解出f了。
2024-10-26 14:37:48
150
1
原创 [MoeCTF_EzPack]背包问题+Pohig-Hellman算法
先就题论题一下,这个是个背包问题,就是说在sum中,如果msg中的是1,那么它就是k的某位,反之,则是0.我们注意到k的生成过程,发现它每一项就是前几项的和。典型的背包问题,所以我们要想解flag,就是要解msg,要解msg,就是利用离散对数的方法求7的指数,然后根据背包贪心算法,找到哪些是msg的。然后离散对数这边,我们才用的是Pohig-Hellman算法,它的条件分别是。里面的一些数学问题,你们可以去搜索了解一下,这里不多说,因为我数学不是很好。所以exp很好写了(bushi)
2024-10-20 17:06:05
245
原创 (转载)[长安杯 2021]checkin威尔逊定理运用
注意到,加密过程中实现了m乘以(p-q-1)!,此时的 p-q可以判断一下是不是素数,显然不是的,但是我们知道p一定是素数。所以我们不妨让它继续乘下去,直到是(p-1)!然后结束,总的来说还是一个对威尔逊定理还有代码编写能力,另一个就是要想得到n是能分解的,别的方法我还没研究。然后使用yafu分解,得到p,q。于是,我们可以做差,然后分解n。有了p,q我们就可以求M。
2024-10-11 00:08:13
332
原创 basectf-没有n啊_pro
如果d<phi,那么k<e,我们可以通过暴破的方法求e,d的组合找到phi,phi的位数可以推测是256。排列组合方法就是把因数每个因数的组合都求出来,并计算乘积,然后代入比较是不是符合条件。然后我们分解phi,对它的因数排列组合,求得它的p和q,需要一定的代码能力。这题没有给出n,注意到d<phi,我们等式e*d=1+k*phi。
2024-10-10 15:25:39
245
原创 wiener?
主要是对legendre’s theorem的运用(连分数)然后就是sagemath中求连分数的使用技巧这行代码的作用是将变量 pkd(通常是一个有理数或连分数的收敛值)转换为其对应的整数比率(分数形式),并将分数的分子和分母分别赋值给变量 pp 和 pq。通过获取连分数的收敛值这句代码的作用是计算输入值 leak 的连分数表示。
2024-10-09 20:29:33
206
原创 Re小练习
这个异或过程一定要理解,我们只需要反着来,p是累加的,我们要从最大的那边异或回去,然后当a1==3时候,加密后的列表索引增加。先把它原来位置上弄好,在全部输出出来。打开,再vscode查找替换一下。
2024-09-16 14:04:19
171
原创 Re练习初学者
发现要求的v5就是data_start的索引,当遇到v4与data_start相同的字符,flag就是索引+1。凯撒加密,两种方法,一种暴破,一种根据偏移量,第一个偏移量为14.第二个偏移量为18。case1就是f1和f2拼接,case4就是f2和s拼接,然后根据case5来。发现就是一个sprintf函数,然后把19999和0替换一下得到答案。shift+F12看到很像flag的,点进去,然后ctrl+x。打开main()函数,发现没什么。点进去get_flag()用一个在线工具,然后得到。
2024-09-04 20:45:31
178
原创 BaseCTF-week2-Crypto
注意到,flag长度是45,45*8=360,flag位数就360,我们在rsa加密中,密文和明文位数会比较接近,于是密文应该也是三百多位,每个素数128位,素数的位数影响 RSA 模数的大小,而模数的大小直接限制了可以加密的明文的长度。所以应该是3个素数,384位差不多。又是一个copper的题目,我们现在已知的是p的高位和q的地位,p的高位我们才已知303位,q的才知道266位。显然直接来肯定是不行的,于是我们要结合一下,用q的低位来算p的低位。这题的n的来源很特别,是一个素数列表的乘积。
2024-08-30 14:14:53
520
原创 刷题记录-背包密码两题
先用一个生成长度为n的密钥的函数,先随机取第一个元素放到key中,同时用sum记录密钥中元素之和,这里的r会随机取0、1,使后面每次生成的元素可能是前面所有数之和,也可能会多一点,将生成的所有元素作为密钥中的元素再将生成的密钥加到key中,并用sum记录所有密钥元素之和,如此循环往复,可以生成一段超递增序列作为密钥。这里的a是一个超递增序列,每次我们比较一下c[i]和a[i],如果c>a,那么m[i]就等于1。2=2,所以2在背包中,2-2=0.3
2024-08-25 16:15:10
392
原创 Crypto近一周刷题日记
出题人使用了AES的ECB加密方式模拟CBC加密方式,只不过他在加密过程中又少了异或这一步,同时他是利用前一条密文来加密后面一条密文的,这个跟使用同一条key进行加密的ECB又有不同了,我们在破解的时候首先获取密文的前32个字节用作初始的key(原本的key已经找不到了),用这个key我们可以逆推回去解密出大部分的原文。CBC 最核心的一个环节,是将前一个密文分组作为一个变量带入了下一个明文加密中。这样即便明文相同,但经过密文异或操作后,就会出现不同的结果。其次,我们其实是知道一部分明文的,因为。
2024-08-24 23:27:03
334
原创 BaseCTF2024-week1-babyrsa
就是1到n中有与n互素的个数。注意看,这个n本身就是素数了,所以。好多人问n怎么分解,这就是没理解好rsa加密,
2024-08-21 18:58:04
262
原创 SRCTF2024-baby-多元Coppersmith
给定一个多项式要找到在mod N下,的f(x)=0,在不加限制的条件下,这是个很困难的问题,因为f(x)的系数可能会比较大所以coppersmith想出一个方法,就是在找到一个g(x),这个g(x)系数比较小,系数小到可以用牛顿迭代法来求x0,使得g(x)在模N等于0时,f(x)也等于0那么如何找这个g(x)呢我们可以通过乘以x的次幂和乘以f(x)次幂来求将一系列的h(x)通过线性组合得到g(x)
2024-08-07 16:46:24
856
原创 LitCTF-Polynomial_plus
总之就是两个多项式,一般我们碰到Polynomial题型,都是用sage来求根,这边好几题都是这样。今天看了一题,然后借鉴了一下一些师傅的题解。我们把k解决,然后欧拉函数就可以知道了。
2024-07-06 00:26:09
282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人