摘要: 题目: from secret import flag assert flag[:6] == 'TPCTF{' and flag[-1] == '}' flag = flag[6:-1] assert len(set(flag)) == len(flag) xs = [] for i, c in e 阅读全文
posted @ 2025-03-12 22:36 sevensnight 阅读(62) 评论(0) 推荐(0)
摘要: 题目1: from Crypto.Util.number import * flag = ******* p = getPrime(1024) q = getPrime(1024) n = p * q hb = len(flag)//2 hb1 = bytes_to_long(flag[:hb]) 阅读全文
posted @ 2025-03-12 22:26 sevensnight 阅读(132) 评论(0) 推荐(0)
摘要: 题目: from secret import flag from Crypto.Util.number import * from Crypto.Cipher import AES from hashlib import sha256 from random import * p = getPrim 阅读全文
posted @ 2025-03-12 22:13 sevensnight 阅读(32) 评论(0) 推荐(0)
摘要: 题目1: import hashlib from Crypto.Util.number import * from gmpy2 import * FLAG = b'******************' assert FLAG.startswith(b'NSSCTF{') and FLAG.ends 阅读全文
posted @ 2025-03-12 10:49 sevensnight 阅读(58) 评论(0) 推荐(0)
摘要: 题目: 解题思路: 解答: 阅读全文
posted @ 2025-03-12 10:48 sevensnight 阅读(12) 评论(0) 推荐(0)
摘要: 对私钥x的攻击本质上是解决一个**DLP**问题 让G为一个阿贝尔群(交换群),我们把G中的二元操作写成乘法* 1.给定G,g和h=g<sup>a</sup>,计算a是困难的 2.这里a就叫做h的以g为底的离散对数 题目: 利用如下的参数,恢复DSA的秘密钥x p = 800000000000000 阅读全文
posted @ 2025-03-12 10:48 sevensnight 阅读(11) 评论(0) 推荐(0)
摘要: 题目: from Crypto.Util.number import getPrime, inverse, bytes_to_long, long_to_bytes import random import math FLAG = b'crypto{?????????????????????}' d 阅读全文
posted @ 2025-03-12 10:48 sevensnight 阅读(36) 评论(0) 推荐(0)
摘要: 题目: from random import shuffle from Crypto.Util.number import getPrime from random import choice, randint # flag来源 flag = b"VNCTF{xxxxxxx}" assert len 阅读全文
posted @ 2025-03-12 00:08 sevensnight 阅读(72) 评论(0) 推荐(0)
摘要: 题目: from Crypto.Util.number import * import random from Crypto.Cipher import AES import hashlib from Crypto.Util.Padding import pad from secrets impor 阅读全文
posted @ 2025-03-12 00:08 sevensnight 阅读(33) 评论(0) 推荐(0)
摘要: 题目: 解题思路: 解答: 阅读全文
posted @ 2025-03-12 00:07 sevensnight 阅读(11) 评论(0) 推荐(0)
摘要: 背包问题通解: 当密度d满足以下条件时,LLL算法能有效地解决这类背包问题 ![](https://cdn.nlark.com/yuque/0/2025/png/49294098/1739349426771-401f2fa7-aefe-422b-b642-5d8f664c415d.png) 其中: 阅读全文
posted @ 2025-03-12 00:07 sevensnight 阅读(63) 评论(0) 推荐(0)
摘要: from Crypto.Util.number import * from secret import flag def encrypt(m): m = str(bin(m))[2:][::-1] enc = 0 for i in range(len(m)): enc += init[i] * in 阅读全文
posted @ 2025-03-12 00:07 sevensnight 阅读(78) 评论(0) 推荐(0)
摘要: 知识拓展: 背包加密 - CTF Wiki 背包问题:假定一个背包可以承重W,现在有n个物品,其重量分别为a1,a2,a3,…,an,问装哪些物品可以恰好使得背包装满(其中每个物品只能被装一次) 背包密码的原理由背包问题引申而来,令a为明文二进制序列,x为公钥,这样便构成了一个不错的密码体系,超递增 阅读全文
posted @ 2025-03-12 00:06 sevensnight 阅读(171) 评论(0) 推荐(0)
摘要: 题目: from Crypto.Util.number import * from secret import flag def add_THcurve(P, Q): if P == (0, 0): return Q if Q == (0, 0): return P x1, y1 = P x2, y 阅读全文
posted @ 2025-03-12 00:05 sevensnight 阅读(41) 评论(0) 推荐(0)
摘要: 题目: from Crypto.Util.number import * from Crypto.Cipher import AES from Crypto.Util.Padding import pad from random import randint import hashlib from 阅读全文
posted @ 2025-03-12 00:05 sevensnight 阅读(119) 评论(0) 推荐(0)
摘要: 题目: #sagemath from Crypto.Util.number import * def add(P, Q): (x1, y1) = P (x2, y2) = Q x3 = (x1*y2 + y1*x2) * inverse(1 + d*x1*x2*y1*y2, p) % p y3 = 阅读全文
posted @ 2025-03-12 00:05 sevensnight 阅读(47) 评论(0) 推荐(0)
摘要: 题目1: from Crypto.Util.number import * from secret import flag assert flag[:5]=='cnss{' and flag[-1] == '}' flag_k = bytes_to_long(flag[5:-1].encode()) 阅读全文
posted @ 2025-03-12 00:05 sevensnight 阅读(68) 评论(0) 推荐(0)
摘要: 题目: from Crypto.Util.number import getPrime from libnum import s2n from secret import flag p = getPrime(256) a = getPrime(256) b = getPrime(256) E = E 阅读全文
posted @ 2025-03-12 00:04 sevensnight 阅读(80) 评论(0) 推荐(0)
摘要: 题目: from Crypto.Util.number import * flag = b'Spirit{*****************}' plaintext = bytes_to_long(flag) length = plaintext.bit_length() a = getPrime( 阅读全文
posted @ 2025-03-12 00:04 sevensnight 阅读(22) 评论(0) 推荐(1)
摘要: 题目: from Crypto.Util.number import * from secret import FLAG p = getPrime(128) step = len(FLAG) // 3 xs = [bytes_to_long(FLAG[:step]), bytes_to_long(F 阅读全文
posted @ 2025-03-12 00:03 sevensnight 阅读(31) 评论(0) 推荐(0)