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

zer0pts CTF 2022 | Anti Fermat

#zer0ptsCTF2022 from Crypto.Util.number import isPrime, getStrongPrime from secret import flag def next_prime(n): n += 1 while not isPrime(n): n += 1 return n # Anti-Fermat Key Generation p = getStrongPrime(1024) q = next_prime(p ^ ((1<<10…

worse

quantum computing

参考資料 https://zenn.dev/yyu/articles/f5e94004d2ac65#fn1

pbctf2020 | LeaK

ECDSA pbctf2020 #!/usr/bin/env python3 from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad from ecdsa import SECP256k1 from ecdsa.ecdsa import Public_key, Private_key from flag import flag import hashlib import random …

nullcon HackIM 2020 | lfe

#!/usr/bin/env python3 from Crypto.Util.number import * from hashlib import sha256 import parse from secret import flag p = 0xffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b3…

justCTF 2020 | oracles

#justCTF_2020 #RSA #manger's_attack https://jsur.in/posts/2021-01-31-justctf-2020-crypto-writeups#oracles https://mystiz.hk/posts/2021-02-01-justctf-oracles/

isomorphism

同型あるいは同型写像のこと 全単射がなりたつ

gpg

pgp

PGP

bsidesnoidactf

TSGCTF 2021 | Lumberjack in Nature

#TSGCTF_2021 from mpmath import mp, power, ln import json mp.dps = 1000000000 def decode(enc): return int(power(2, enc * ln(2))) s, e = json.load(open('encoded.json')) flag = decode(s << e) print(flag.to_bytes((flag.bit_length() + 7) // 8,…

TSGCTF 2021 | Flag is Win

#TSGCTF_2021 #hakatashi require 'openssl' require 'digest' STDOUT.sync = true class OpenSSL::PKey::EC::Point def xy n = to_bn(:uncompressed).to_i mask = (1 << group.degree) - 1 return (n >> group.degree) & mask, n & mask end alias_method :…

TSGCTF 2021 | B??e64

#TSGCTF_2021 import random import string import base64 import os def gen_chal(): cs = string.ascii_lowercase + string.digits return ''.join(random.choices(cs, k=32)) def enc(s, encoding='ascii'): for _ in range(8): s = base64.b64encode(byt…

TAMUctf 19|Mike's Marvelous Mystery Curves

#TAMUCTF19 https://ctftime.org/task/7746 Mike, the System Administrator, thought it would be a good idea to implement his own Elliptic Curve Diffie Hellman key exchange using unnamed curves to use across the network. We managed to capture …

Sharky CTF 2020 | Noisy RSA

from Crypto.Util.number import bytes_to_long, getStrongPrime from fractions import gcd from secret import flag from Crypto.Random import get_random_bytes def encrypt(number): return pow(number,e,N) def noisy_encrypt(a,m): return encrypt(po…

SECCON 2020 | koharu

多項式体上でのGoldwasser-Micali cryptosystem 問題が良くなかった。P, Qの次数は不明にするべきだったな…… https://furutsuki.hatenablog.com/entry/2020/10/11/172946#koharu-144points--44-solves

S4CTF 2021 | merles

#s4ctf_2021 が与えられるのでが成り立つようなを求めよ、という問題。ちなみにこの式はSelmer's exampleと言われている のとき、のすべての要素は3乗根を持つのでを適当に決めたあと、のcube rootを求めれば良い from ptrlib import Socket # https://stack…

S4CTF 2021 | Genie

#s4ctf_2021 #!/usr/bin/env python3 import numpy as np import random from flag import FLAG p = 8443 def vsum(u, v): assert len(u) == len(v) l, w = len(u), [] for i in range(l): w += [(u[i] + v[i]) % p] return w def sprod(a, u): w = [] for i…

RaRCTF 2021 | a3s

#rarctf2021 #good_challenges_2021 ''' Base-3 AES Just use SAGE lmao ''' T_SIZE = 3 # Fixed trits in a tryte W_SIZE = 3 # Fixed trytes in a word (determines size of matrix) POLY = (2, 0, 1, 1) # Len = T_SIZE + 1 POLY2 = ((2, 0, 1), (1, 2, 0…

RTACTF | Neighbor RSA

#rtactf import os # Plaintext (FLAG) plaintext = os.getenv("FLAG", "FAKE{sample_flag}").encode() plai = plaintext[:len(plaintext)//2] ntext = plaintext[len(plaintext)//2:] m1 = int.from_bytes(plai + os.urandom(128), 'big') m2 = int.from_by…

PlaidCTF 2021 | Proxima Concursus

#PlaidCTF2021 proxima-concursus.494add1f1b93a8e166c11bc4b27bd3edf1335f73ebd100e5d44699198fd992db.tar.gz rust で実装されている && ソースコードが多いのできちんとやりたくない。ので、writeupとかを読みながらまとめてお茶を濁す ……と思ったが、誰も…

Okamoto-Uchiyama

加法準同型性 がある

OMH 2021 CTF | CSPRNG

#OMH2021CTF overview

LINE CTF 2022 | Forward or

#LINECTF2022 from present import Present from Crypto.Util.strxor import strxor import os, re class CTRMode(): def __init__(self, key, nonce=None): self.key = key # 20bytes self.cipher = DoubleRoundReducedPresent(key) if None==nonce: nonce …

InCTF 2020 | Mix & Mash

#inctf2020 #!/usr/bin/env python2 import random import sys from stuff import flag def ROL32(x, y): return (((x) << (y)) ^ ((x) >> (32 - (y)))) & 0xFFFFFFFF def LSB(x): return x & 0x00000000FFFFFFFF def TIMES2(x): if (x & 0x8000000000000000…

HSCTF 8 | Cyanocitta Cristata Cyanotephra But Fixed

#hsctf8 import random var("x y") flag = int(open('flag.txt','rb').read().hex(),16) xs = [random.randint(1,256) for i in range(9)] ys = [random.randint(1,256) for i in range(9)] assert not any([xs[i]==ys[i] for i in range(9)]) c = [random.r…

HITCON CTF 2022 | secret

#HITCON_CTF_2022 import random, os from Crypto.Util.number import getPrime, bytes_to_long p = getPrime(1024) q = getPrime(1024) n = p * q flag = open('flag','rb').read() pad_length = 256 - len(flag) m = bytes_to_long(os.urandom(pad_length)…

ECDH

楕円曲線ディフィー・ヘルマン鍵共有のこと。EllipticCurveを用いて第三者に知られないように鍵を共有する。 公開パラメータとして E: とそのベースポイントGを用意しておく それぞれがランダムな値a, b を決める aG, bGを公開鍵として交換する 3 abG を共有…

DEFCON 2020 quals | notbefoooled

ECDLP で、となる(=anomalous curveとなる)ようにを渡すと適当な原始根 を作ってくれるので、こちらからは を送る。すると向こうはSmart Attackでとなるを復元してくる。この攻撃が失敗するようなパラメータとを選べれば勝ち Uninteded solution python2…

CyberSecurityRumble | PADY McPADaFACE

#!/usr/bin/env python3 from random import SystemRandom from config import p,q,e,flag print("="*50) print(open(__file__).read()) print("~"*50) random = SystemRandom() flag = int.from_bytes(flag,"big") n = p*q assert(p

Coppersmith's Theorem

univariate coppersmith method multivariate coppersmith 多項式の上の小さい根または上の小さい根を多項式時間で求めるアルゴリズム。つまり または となるようなを求めるということ。Sagemathではsmall_roots というメソッドが生えている。 というパラメ…