2023-12-08から1日間の記事一覧
https://ringtheory.herokuapp.com/
pbctf2020 RSA RSAで一部の値がわかっている時 #!/usr/bin/env python3 from Crypto.Util.number import getStrongPrime, inverse, bytes_to_long, GCD as gcd from Crypto.Random.random import randint from flag import flag p = getStrongPrime(512) q =…
#pbctf_2021 #UnblvR https://gist.github.com/jhs7jhs/a6e872e7e37e726b3d7bae6f7461e70b https://gist.github.com/myrdyr/c1b77f1cbd8e2acb117e74c7831ef876
#m0lecon2021 import random from functools import reduce import sys from math import log2 from secret import flag def xor(a, b): return bytes(x^y for x,y in zip(a,b)) class LFSR(object): def __init__(self, s, p): self.s = s self.p = p def c…
#foobarCTF_2022 #!/usr/bin/env python3 from Crypto.Util.number import * import math flag = b'***************REDACTED******************' def keygen(bits): while True: p,q = getPrime(bits),getPrime(bits) if (p % 4 == 3) and (q % 4 == 3 ) and…
polymorphismってなんだ……? 射のことば
#corctf2021 from random import shuffle, randrange, randint from os import urandom from Crypto.Util.number import getPrime, getStrongPrime, long_to_bytes from Crypto.Cipher import AES from Crypto.Util.Padding import pad from private import …
#wani_ctf_2023 from Crypto.PublicKey import RSA RSAkeys = RSA.generate(2048) p = RSAkeys.p q = RSAkeys.q n = RSAkeys.n e = RSAkeys.e m = b"FAKE{<REDACTED>}" c = pow(int.from_bytes(m, "big"), e, n) mask = int("55" * 128, 16) r = p & mask mask = mask <</redacted>…
#UMASS_CTF_2022 #!/usr/local/bin/python # # Polymero # # Imports from Crypto.Util.number import long_to_bytes, bytes_to_long, getPrime, inverse from base64 import urlsafe_b64encode, urlsafe_b64decode from hashlib import sha256 import json …
EllipticCurve option 1では との結果を得ることができる。ただし時折 が壊れた値になるらしい option 2では 任意の平文 に対してを計算してもらえる まずは楕円曲線上の点を集めて楕円曲線のパラメータを当てるところからやる。 に対して 同様に この2式に…
https://furutsuki.hatenablog.com/entry/2020/07/20/142730#crypto-coelacanth_vault CRT
def my_pow(a, n, m): result = 1 while n > 0: if n % 2 != 0: result = (result * a) % m a = (a + a) % m # oops! n = n // 2 return result from Crypto.Util.number import getPrime, bytes_to_long p = getPrime(512) q = getPrime(512) N = p * q phi…
#seccon2021 #kurenaif import base64 from Crypto.Cipher import AES from Crypto.Random import get_random_bytes from Crypto.Util.Padding import pad, unpad from Crypto.Util.strxor import strxor from flag import flag import signal key = get_ran…
#s4ctf_2021 #!/usr/bin/env sage from flag import flag def make_matrix(n): Zn = IntegerModRing(n) G = GL(2, Zn) while True: a, b, c, d = [randint(0, n - 1) for _ in range(4)] P = G([[a, b], [c, d]]) if P in G: return P def bpow(P, n): if n …
#rarctf2021 from random import getrandbits from Crypto.Util.number import getPrime, long_to_bytes, bytes_to_long def keygen(): # normal rsa key generation primes = [] e = 3 for _ in range(2): while True: p = getPrime(1024) if (p - 1) % 3: …
#rarctf2021 from Crypto.Util.number import * p = getPrime(256) q = getPrime(256) n = p * q e = 0x69420 flag = bytes_to_long(open("flag.txt", "rb").read()) print("n =",n) print("e =", e) print("ct =",(flag * e) % n) RSAじゃないし n = 549627…
#NevarLANCTF2019 https://ctftime.org/task/7547 Hackers keep secrets. 画像が渡される。とりあえずstegsolveとsteghideを試したけど何もない。exiftoolにもおかしいところは見当たらなかった 信じ難いことにneverlanctfがパスワードになっていて steghide…
#!/usr/bin/env sage import signal, hashlib, string, random, os os.chdir(os.path.dirname(os.path.abspath(__file__))) FLAG = open("./flag.txt", 'r').read() ROUNDS = 30 def PoW(): s = ''.join([random.choice(string.ascii_letters + string.digit…
https://bitbucket.org/zer0pts/mtpsolver/src/master/
Hash(m1)があるときに、 Hash(m1||m2) が計算できる。これにより、m1がm1であることを確かめるような署名のHash(m1)をすり抜けることができる。 原理 https://ptr-yudai.hatenablog.com/entry/2018/08/28/205129に詳しい。とりあえず図をコピーしてくる この…
#inctf2020 #LFSR from random import Random from flag import flag ,seeds from Crypto.Cipher import AES from hashlib import sha256 SECRET = 14810031 #assert seeds[3]%seeds[1] == 0 CLUE-1 def generate() : masks = [43, 578, 22079, 142962] for …
#googlectf2021 #!/usr/bin/python -u import random import string import time from base64 import b64encode, b64decode from cryptography.hazmat.backends import default_backend from cryptography.hazmat.primitives.ciphers.aead import AESGCM fro…
RSAなのはそうだけど、1文字ずつ暗号化している。 がランダムに選ばれているので困るように見えるが、1文字ずつの暗号化なので単一換字暗号と変わらない。数値を適当に文字にマッピングしてquipqiupなどに投げれば良い from random import randrange from Cr…
#cryptoctf2021 #!/usr/bin/env python3 from Crypto.Util.number import * from secret import a, b, p, P, Q from flag import flag def onmiff(a, b, p, G): x, y = G return (a*x*(y**2 - 1) - b*y*(x**2 - 1)) % p == 0 def addmiff(X, Y): x_1, y_1 = …
#CrewCTF_2022 #uninterested_challenge_list from Crypto.Util.number import getStrongPrime, inverse, bytes_to_long, GCD from random import randint from flag import flag p = getStrongPrime(512) q = getStrongPrime(512) n = p * q while True: d …
#CSACTF2019 https://ctftime.org/task/8470 import sys, time from Crypto.Hash import SHA256 from Crypto.Cipher.AES import AESCipher flag = "Flag goes here" def encrypt(m): key = SHA256.new(flag).digest() try: text = 'rowdy123' + m.decode('ba…
BHMEA_CTF_2023_Crypto.zip
1-out-of-n Oblivious Transferを構成するプロトコル。すなわち、n個のメッセージを送信し、受信者はそのうち1つだけを受信するが、送信者には、受信者がどれを受信したかわからない 準備 素数位数pを持つ巡回群 のgenerator である、何かしらのハッシュ、SH…
#BSidesSF2019CTF Oracular Rift Location - pythia-a0227fc1.challenges.bsidessf.net:1521 多分RSA の Bleichenbacherのやつ