2023-11-28から1日間の記事一覧

zer0pts CTF 2021 | janken vs yoshiking

#zer0ptsCTF2021 import random import signal from flag import flag from Crypto.Util.number import getStrongPrime, inverse HANDNAMES = { 1: "Rock", 2: "Scissors", 3: "Paper" } def commit(m, key): (g, p), (x, _) = key r = random.randint(2, p-…

zer0pts CTF 2021 | 3-AES

#zer0ptsCTF2021 from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from binascii import hexlify, unhexlify from hashlib import md5 import os import signal from flag import flag keys = [md5(os.urandom(3)).digest() for …

srdnlen CTF 2022 | give me a bag

#srdnlen_CTF_2022 from random import randint from math import gcd from secret import FLAG BIN_LEN = 240 class MHK: def __init__(self): self.b = [] self.w = [] self.q = 0 self.r = 0 self.genKeys() def genKeys(self): k = 30 self.w.append(ran…

resultant

消去式のこと。なんかmagicallyに変数を減らすことができて便利。resultantの偉いところは合成数modでも使えるというところ(groebner basisがで動くのに対して)。別にグレブナー基底もで式を建ててから移せばいいんですけど n = randint(0, 2^100) Zn = Zm…

redpwn CTF 2021 | retrosign

#redpwnctf2021 TokyoWesterns CTF 6th 2020 | circularと全くおなじ問題設定。つまりOng-Schnorr-Shamir Digital Signature Schemeで、おなじsolverが使える #!/usr/local/bin/python from Crypto.Util.number import getPrime, bytes_to_long from Crypto.…

pbctf2020

めちゃくちゃ良かった

pbctf 2021 | Steroid Stream

#pbctf_2021 #rbtree #!/usr/bin/env python3 import random from flag import flag def keygen(ln): # Generate a linearly independent key arr = [ 1 << i for i in range(ln) ] for i in range(ln): for j in range(i): if random.getrandbits(1): arr[j…

p^n を見かけたら

p-adic number を考える。sageには Zp が用意されていて、例えば みたいな拡大体の上での演算を扱いたいときはGF(p^100)よりも、Zp(p, prec=100) とするのが良い。 https://doc.sagemath.org/html/en/reference/padics/index.html 例えば、 みたいな式が合っ…

nullcon HackIM 2022 | shuffle

#nullcon_HackIM_2022 #!/usr/bin/python3 import random from Crypto.Cipher import AES from hashlib import sha256 from secret import flag, generate_base class Permutation(object): def __init__(self, perm): self.perm = perm.copy() self.n = len…

m0lecon 2022 | SIDHalf

#m0lecon2022 #SIDH

m0leCon 2021 | Giant log

#m0lecon2021 #good_challenges_2021 https://keltecc.github.io/ctf/writeup/2021/05/15/m0lecon-ctf-2021-teaser-giant-log.html import random from secret import flag, fast_exp import signal p = 0x83f39daf527c6cf6360999dc47c4f0944ca1a67858a11bd9…

foobarCTF 2022 | babyrsa

#foobarCTF_2022 from Crypto.Util.number import * flag = b"GLUG{**********REDACTED***************}" p,q = getPrime(1024),getPrime(1024) N = p * p * q e = 0x10001 phi = p * (p-1) * (q-1) d = inverse(e, phi) m = bytes_to_long(flag) c = pow(m,…

corctf2021

https://cor.team/posts/corCTF-2021---Crypto-Challenge-Writeups author: qopruzjf, quintec, willwam845

b01lers CTF | DES-MMXX

meet-in-the-middle attackってこうやって出すのかなるほどな〜という問題。 import sys from hashlib import sha256 from Crypto.Cipher import DES SECRET = 0xa########e # remember to erase this later.. seed = b'secret_sauce_#9' def keygen(s): key…

WMCTF 2020 | babySUM

BKZ WMCTF 2020 | Sum こちらはmitsuくんが解いてくれた from json import load def chk(sol, A, s): return sum(x * a for x, a in zip(sol, A)) == s def solve(A, n, k, s, BS=22): N = ceil(sqrt(n)) lat = [] for i, a in enumerate(A): lat.append([(j…

Union CTF | human server

#UnionCTF man in the middleらしい

TokyoWesterns CTF 6th 2020 | XOR and shift cipher

https://furutsuki.hatenablog.com/entry/2020/09/21/092947 xorshift 行列累乗 様々な行列の作り方 #!/usr/bin/python3 s = [] p = 0 def init(): global s,p s = [i for i in range(0,64)] p = 0 return def randgen(): global s,p a = 3 b = 13 c = 37 s0…

Suspicious Prime

SECCON CTF 2022 Quals | insufficient

#SECCON_CTF_2022_Quals #xornet from random import randint from Crypto.Util.number import getPrime, bytes_to_long from secret import FLAG # f(x,y,z) = a1*x + a2*x^2 + a3*x^3 # + b1*y + b2*y^2 + b3*y^3 # + c*z + s mod p def calc_f(coeffs, x,…

RaR CTF 2021 | Shamir's Stingy Sharig

#rarctf2021 import random import sys from Crypto.Util.number import long_to_bytes def bxor(ba1,ba2): return bytes([_a ^ _b for _a, _b in zip(ba1, ba2)]) BITS = 128 SHARES = 30 poly = [random.getrandbits(BITS) for _ in range(SHARES)] flag =…

Midnightsun CTF 2021 Quals | ocat_024

#midnightsunctf2021quals u = getrandbits(512) p = next_prime(1337 * u + getrandbits(300)) q = next_prime(2021 * u + getrandbits(300)) n = p * q sage: n 376347864369130929314918003073529176189619811132906053032580291332225522349124770927556…

LWE

と 秘密の エラー があって、 判定LWE(Desicional LWE) とを受け取って、か かを判定する問題 探索LWE(Search LWE) とを受け取って、を復元する問題 を取る場合もあって、その場合はRing LWEと呼ばれる 判定RLWEをSISを解いて解決する 複数のインスタンスが…

Imaginary CTF 2021 | lines

#imaginaryctf2021 from Crypto.Util.number import bytes_to_long import random flag = bytes_to_long(open("flag.txt", "rb").read()) msg = bytes_to_long(b":roocursion:") p = 828208757675404802784998591016022506443991176995496942317967203886469…

HSCTF 8 | Queen of the Hill

#hsctf8 Zn = Zmod(26) key = [ [16,25,8], [14,19,5], [15,17,3], ] invkey = matrix(Zn, key)^-1 plaintext = b"rtca{vbuhp_kaiq_gfj_nx_rda_ujw}" plaintext = [x - ord('a') for x in plaintext if ord('a') <= x <= ord('z')] print(plaintext) flag = …

HITCON CTF 2022 | easy NTRU

#HITCON_CTF_2022 from Crypto.Util.number import bytes_to_long as b2l from Crypto.Util.number import long_to_bytes as l2b import random Zx.<x> = ZZ[] def convolution(f, g): return (f * g) % (x ^ n-1) def balancedmod(f, q): g = list(((f[i] + q/</x>…

HITCON 2020 | another secret note

https://gist.github.com/samueltangz/bfc540af95a10e21a29e0f672ca048b8 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- import os from pwn import * import requests import base64 from Crypto.PublicKey import RSA from Crypto.Cipher import AES im…

Gram Matrix

グラム行列 ある(正方とは限らない)行列に対してグラム行列 は正方行列 のグラム行列 が可逆 の各行が線形独立

GrabCon CTF 2021 | NotRSA

#grabcon2021 from math import sqrt import random from Crypto.Util.number import bytes_to_long N = 243398471445086096158902751815981037056185671606395615732185670597594848933757044595783312066844386797549036301933553034317912968950101762681…

Fword CTF 2020 | Shame on me

これは解かなくていい(本当?) That all i can get from my friend ! Help me out! I'm bad at math he told me IV IV IV , i knew it meant 4 but nothing i could do with ! (1,564321784322132454256546212165481243585) (2,56432178432213245425654621…

Feistel構造

次のような構造を持った暗号 Feistel構造の面白い特徴として、鍵を逆から適用すると復号になる(それはそう)