lfsr

2018 CISCN oldstreamgame | oldstreamgame

flag = "flag{xxxxxxxxxxxxxxxx}" assert flag.startswith("flag{") assert flag.endswith("}") assert len(flag)==14 def lfsr(R,mask): output = (R << 1) & 0xffffffff i=(R&mask)&0xffffffff lastbit=0 while i!=0: lastbit^=(i&1) i=i>>1 output^=lastb…

0CTF/TCTF Quals 2021 | zer0lfsr

#0CTF_Quals_2021 minusとplusとplusplusがある。Generator1, 3はz3で解けるがGenerator2はそうはいかず、難しい LFSR NLFSR KDF Fast Correlation Attack https://rkm0959.tistory.com/228 https://github.com/M0urn3r/My-Public-CTF-Challenges#zer0lfsr++…

0CTF 2019 Quals | zer0lfsr

from secret import init1,init2,init3,FLAG import hashlib assert(FLAG=="flag{"+hashlib.sha256(init1+init2+init3).hexdigest()+"}") class lfsr(): def __init__(self, init, mask, length): self.init = init self.mask = mask self.lengthmask = 2**(…

m0leCon 2021 | obscurity

#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…

InCTF 2020 | FaultyLFSR

#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 …

corCTF 2021 | mystery stream

#corctf2021 from random import randrange from secrets import flag, key from Crypto.Util.number import long_to_bytes def bsum(state, taps, l): ret = 0 for i in taps: ret ^= (state >> (l - i)) return ret & 1 class Gen: def __init__(self, key…

DiceCTF 2022 | rejected

#diceCTF2022 #!/usr/local/bin/python import secrets class LFSR: def __init__(self, key, taps): self._s = key self._t = taps def _sum(self, L): s = 0 for x in L: s ^= x return s def _clock(self): b = self._s[0] self._s = self._s[1:] + [self…

CakeCTF 2021 | improvisation

#cakectf2021 import random def LFSR(): r = random.randrange(1 << 64) while True: yield r & 1 b = (r & 1) ^\ ((r & 2) >> 1) ^\ ((r & 8) >> 3) ^\ ((r & 16) >> 4) r = (r >> 1) | (b << 63) if __name__ == '__main__': with open("flag.txt", "rb")…

PRNG256

LFSR class PRNG256(object): def __init__(self, seed): self.mask = (1 << 256) - 1 self.seed = seed & self.mask @staticmethod def from_value(value): value_rev = int('{:0256b}'.format(value)[::-1], 2) return PRNG256(value_rev) def _pick(self)…