← All Duels

deepseek-reasoner_vs_gpt-5-mini-2025-08-07_20260124_070823.jsonl — 10 puzzles

deepseek-reasoner
-1
vs
gpt-5-mini-2025-08-07
-2
#1 Solved
def mystery(x):
    if type(x) is not str:
        return False
    h = 0
    for c in x:
        h = ((h << 5) - h + ord(c)) & 0xFFFFFFFF
    return h == 3318272062
"puzzle"
"puzzle"
Proposer: deepseek-reasoner Solver: gpt-5-mini-2025-08-07
0 vs 0
#2 Solved
def mystery(x):
    # Accept only strings
    if type(x) is not str:
        return False

    import hashlib

    s = x.encode('utf-8')

    # Check multiple independent cryptographic digests
    if hashlib.md5(s).hexdigest() != "9e107d9d372bb6826bd81d3542a419d6":
        return False
    if hashlib.sha1(s).hexdigest() != "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12":
        return False
    if hashlib.sha256(s).hexdigest() != "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592":
        return False

    # Additional non-hash constraints to increase difficulty:
    # - sum of codepoints modulo 97 equals a specific value
    # - must be a pangram (contain all 26 letters at least once, case-insensitive)
    if sum(ord(c) for c in x) % 97 != 80:
        return False
    if len({c.lower() for c in x if c.isalpha()}) != 26:
        return False

    return True
"The quick brown fox jumps over the lazy dog"
"The quick brown fox jumps over the lazy dog"
Proposer: gpt-5-mini-2025-08-07 Solver: deepseek-reasoner
0 vs 0
#3 Solved
def mystery(x):
    if type(x) is not str:
        return False
    # length must be 16
    if len(x) != 16:
        return False
    # must be alphanumeric
    if not x.isalnum():
        return False
    # must contain at least one digit, one uppercase, one lowercase
    if not any(c.isdigit() for c in x):
        return False
    if not any(c.isupper() for c in x):
        return False
    if not any(c.islower() for c in x):
        return False
    
    try:
        b = x.encode('ascii')
    except UnicodeEncodeError:
        return False
    
    arr = list(b)
    # Step A: XOR with constant sequence
    for i in range(16):
        arr[i] ^= (i * 13 + 7) & 0xFF
    # Step B: Add constant sequence
    for i in range(16):
        arr[i] = (arr[i] + (i * 5 + 11)) % 256
    # Step C: Multiply by odd constant depending on position
    for i in range(16):
        if i % 3 == 0:
            arr[i] = (arr[i] * 3) % 256
        elif i % 3 == 1:
            arr[i] = (arr[i] * 5) % 256
        else:
            arr[i] = (arr[i] * 7) % 256
    # Step D: Swap pairs
    for i in range(0, 16, 2):
        arr[i], arr[i+1] = arr[i+1], arr[i]
    # Step E: XOR with left neighbor
    for i in range(1, 16):
        arr[i] ^= arr[i-1]
    # Step F: Permute
    perm = [7, 2, 15, 4, 11, 6, 13, 0, 9, 14, 3, 8, 5, 10, 1, 12]
    new_arr = [0] * 16
    for i in range(16):
        new_arr[perm[i]] = arr[i]
    arr = new_arr
    
    target = b'\x8e\xcc\x8e~\x10\x91\xd1qmq\xc0\x82,\x85o\xa1'
    return bytes(arr) == target
"MySecretPassw0rd"
"MySecretPassw0rd"
Proposer: deepseek-reasoner Solver: gpt-5-mini-2025-08-07
0 vs 0
#4 Sample Solution Wrong
def mystery(x):
    # Accept only plain str (no bytes, no numbers)
    if type(x) is not str:
        return False

    try:
        b = x.encode('ascii')
    except UnicodeEncodeError:
        # only pure ASCII allowed
        return False

    # Quick structural filters to reduce accidental matches
    if len(b) != 8:
        return False
    if any(c.isupper() for c in x):
        return False
    if any(not (32 <= ord(c) <= 126) for c in x):
        return False

    # Non-cryptographic check (adds a lightweight constraint)
    if sum(b) % 13 != 12:
        return False
    if len(set(x)) != 7:
        return False

    # Two independent cryptographic digests (must both match)
    import hashlib
    if hashlib.md5(b).hexdigest() != "5f4dcc3b5aa765d61d8327deb882cf99":
        return False
    if hashlib.sha1(b).hexdigest() != "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8":
        return False

    # A tiny extra bit-twiddle obfuscation to discourage simple eyeballing:
    # compute a 32-bit rolling value
    h = 0x9e3779b9
    for v in b:
        h = ((h << 7) | (h >> (32 - 7))) & 0xFFFFFFFF
        h = (h ^ v) + 0x7ed55d16
    # require a specific 32-bit result
    if h != 0x000001bb:
        return False

    return True
"password"
Proposer: gpt-5-mini-2025-08-07 Solver: deepseek-reasoner
0 vs -1
#5 Solved
def mystery(x):
    if type(x) is not str:
        return False
    if len(x) != 8:
        return False
    # must be printable ASCII
    if not all(32 <= ord(c) <= 126 for c in x):
        return False
    # must contain at least one uppercase, lowercase, digit, and special character
    if not any(c.isupper() for c in x):
        return False
    if not any(c.islower() for c in x):
        return False
    if not any(c.isdigit() for c in x):
        return False
    if not any(not c.isalnum() for c in x):
        return False
    # checksum
    if sum(ord(c) for c in x) % 97 != 50:
        return False

    b = x.encode('ascii')
    arr = list(b)

    # step 1: XOR with linear function of index
    for i in range(8):
        arr[i] ^= (i * 3 + 5) & 0xFF

    # step 2: non-linear mangling
    for i in range(8):
        arr[i] = (arr[i] + (arr[i] >> 3) - (arr[i] << 2)) & 0xFF

    # step 3: multiply by odd constants
    mult = [1, 3, 5, 7, 9, 11, 13, 15]
    for i in range(8):
        arr[i] = (arr[i] * mult[i]) % 256

    # step 4: permute
    perm = [3, 0, 5, 2, 7, 4, 1, 6]
    new_arr = [0] * 8
    for i in range(8):
        new_arr[perm[i]] = arr[i]
    arr = new_arr

    # step 5: diffuse with neighbor
    for i in range(1, 8):
        arr[i] ^= arr[i - 1]

    # step 6: final flip
    for i in range(8):
        arr[i] ^= 0xFF

    target = b'\x21\x60\x73\xeb\xad\x0e\xda\x4e'
    return bytes(arr) == target
"x7!pL2@z"
"x7!pL2@z"
Proposer: deepseek-reasoner Solver: gpt-5-mini-2025-08-07
0 vs -1
#6 Solver Failed
def mystery(x):
    # Accept only plain Python str (no bytes, no numbers)
    if type(x) is not str:
        return False

    # Only pure ASCII allowed
    try:
        b = x.encode('ascii')
    except UnicodeEncodeError:
        return False

    # Structural filters
    if len(b) != 12:
        return False
    if sum(b) % 97 != 23:
        return False
    if not any(c.isupper() for c in x):
        return False

    # A deliberately obfuscated but entirely invertible byte transform:
    arr = list(b)

    # Step 1: add a per-index constant
    add = [5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43]
    for i in range(12):
        arr[i] = (arr[i] + add[i]) & 0xFF

    # Step 2: a permutation (position i takes value from original index perm[i])
    perm = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
    new = [0] * 12
    for i in range(12):
        new[i] = arr[perm[i]]
    arr = new

    # Step 3: final XOR with a per-index key
    key2 = [0xAA, 0x55, 0xFF, 0x00, 0x0F, 0xF0, 0x11, 0x22, 0x33, 0x44, 0x77, 0x88]
    for i in range(12):
        arr[i] ^= key2[i]

    target = b'\xe6\x0fu\x8cqziFH4\x00\xdc'
    return bytes(arr) == target
"OpenSeseame1!"
"OpenSesame1!"
Proposer: gpt-5-mini-2025-08-07 Solver: deepseek-reasoner
0 vs 0
#7 Solved
def mystery(x):
    if type(x) is not str:
        return False
    if len(x) != 12:
        return False
    for c in x:
        if ord(c) < 32 or ord(c) > 126:
            return False
    if not any(c.isdigit() for c in x):
        return False
    if not any(c.isupper() for c in x):
        return False
    if not any(c.islower() for c in x):
        return False
    if not any(not c.isalnum() for c in x):
        return False
    if sum(1 for c in x if c.isupper()) != sum(1 for c in x if c.islower()):
        return False
    if sum(1 for c in x if not c.isalnum()) != 3:
        return False
    if sum(ord(c) for c in x) % 100 != 14:
        return False

    b = list(x.encode('ascii'))

    for i in range(12):
        b[i] ^= (i * 17 + 23) & 0xFF

    for i in range(12):
        b[i] = (b[i] + i * 13) & 0xFF

    mult = [1, 3, 5, 7, 1, 3, 5, 7, 1, 3, 5, 7]
    for i in range(12):
        b[i] = (b[i] * mult[i]) & 0xFF

    P = [5, 2, 9, 1, 8, 11, 0, 4, 7, 10, 3, 6]
    b = [b[P[i]] for i in range(12)]

    for i in range(1, 12):
        b[i] ^= b[i-1]

    Q = [3, 7, 0, 10, 2, 9, 5, 1, 11, 4, 8, 6]
    b = [b[Q[i]] for i in range(12)]

    for i in range(12):
        b[i] ^= 0xAA

    for i in range(12):
        b[i] = (b[i] + 0x37) & 0xFF

    target = b'\xa3\xee\x25\x6b\x40\x01\xe7\x91\x03\x67\xdf\xfd'
    return bytes(b) == target
"aB3!fG7@kL9#"
"aB3!fG7@kL9#"
Proposer: deepseek-reasoner Solver: gpt-5-mini-2025-08-07
0 vs 0
#8 Sample Solution Wrong
def mystery(x):
    # Accept only Python str
    if type(x) is not str:
        return False

    # Only ASCII printable characters allowed
    try:
        b = x.encode('ascii')
    except UnicodeEncodeError:
        return False

    if len(b) != 14:
        return False
    if not all(33 <= c <= 126 for c in b):
        return False

    # Structural constraints to make accidental matches unlikely
    if sum(b) % 101 != 49:
        return False
    if not any(c.isdigit() for c in x):
        return False
    if not any(c.islower() for c in x):
        return False
    if not any(c.isupper() for c in x):
        return False
    if not any(not c.isalnum() for c in x):
        return False

    arr = list(b)

    # Step 1: XOR with per-index key
    key1 = [(i * 31 + 73) & 0xFF for i in range(14)]
    for i in range(14):
        arr[i] ^= key1[i]

    # Step 2: add a per-index constant
    for i in range(14):
        arr[i] = (arr[i] + (i * 17 + 13)) & 0xFF

    # Step 3: rotate each byte left by (i % 8)
    def rotl(v, k):
        k &= 7
        if k == 0:
            return v & 0xFF
        return ((v << k) | (v >> (8 - k))) & 0xFF

    for i in range(14):
        arr[i] = rotl(arr[i], i % 8)

    # Step 4: multiply by odd per-index constants (mod 256)
    mult = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27]
    for i in range(14):
        arr[i] = (arr[i] * mult[i]) & 0xFF

    # Step 5: apply a fixed permutation
    perm = [13, 0, 11, 4, 9, 2, 7, 10, 1, 6, 5, 12, 3, 8]
    new = [0] * 14
    for i in range(14):
        new[i] = arr[perm[i]]
    arr = new

    # Step 6: cumulative additive diffusion
    for i in range(1, 14):
        arr[i] = (arr[i] + arr[i - 1]) & 0xFF

    # Step 7: final XOR with a per-index key and compare to target
    key2 = [0x5A, 0xC3, 0x7E, 0x1F, 0x88, 0x33, 0x77, 0x99, 0xAA, 0x55, 0x0F, 0xF0, 0x3C, 0xC3]
    final = bytes((arr[i] ^ key2[i]) & 0xFF for i in range(14))

    target = b'\xce\x7d\x0ex\x1a\xe5\xce\xd9:\xd8\x8d\x18<\x13'
    return final == target
"TrickyPuzzle1!"
Proposer: gpt-5-mini-2025-08-07 Solver: deepseek-reasoner
0 vs -1
#9 Sample Solution Wrong
def mystery(x):
    # Type check
    if type(x) is not str:
        return False

    # Length must be 12
    if len(x) != 12:
        return False

    # All characters must be printable ASCII (32-126)
    if not all(32 <= ord(c) <= 126 for c in x):
        return False

    # Must contain at least one of each character class
    if not any(c.isupper() for c in x):
        return False
    if not any(c.islower() for c in x):
        return False
    if not any(c.isdigit() for c in x):
        return False
    if not any(not c.isalnum() for c in x):
        return False

    # Sum of code points modulo 97 must be 87
    if sum(ord(c) for c in x) % 97 != 87:
        return False

    # Exactly two non-alphanumeric characters
    if sum(1 for c in x if not c.isalnum()) != 2:
        return False

    # Odd number of lowercase letters
    if sum(1 for c in x if c.islower()) % 2 != 1:
        return False

    # Encode to bytes and convert to list of integers
    b = x.encode('ascii')
    arr = list(b)

    # Step 1: XOR with per‑index key
    for i in range(12):
        arr[i] ^= (i * 31 + 7) & 0xFF

    # Step 2: Add per‑index constant
    for i in range(12):
        arr[i] = (arr[i] + (i * 19 + 11)) & 0xFF

    # Step 3: Multiply by odd constants
    mult = [3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25]
    for i in range(12):
        arr[i] = (arr[i] * mult[i]) & 0xFF

    # Step 4: Fixed permutation
    perm = [5, 2, 9, 1, 8, 11, 0, 4, 7, 10, 3, 6]
    arr = [arr[perm[i]] for i in range(12)]

    # Step 5: XOR with right neighbor (circular) using a temporary copy
    tmp = arr[:]
    for i in range(12):
        arr[i] = tmp[i] ^ tmp[(i + 1) % 12]

    # Step 6: Rotate each byte left by (i%7 + 1) bits
    for i in range(12):
        r = (i % 7) + 1
        arr[i] = ((arr[i] << r) | (arr[i] >> (8 - r))) & 0xFF

    # Step 7: Add another per‑index constant
    for i in range(12):
        arr[i] = (arr[i] + (i * 13 + 17)) & 0xFF

    # Step 8: S‑box: multiply by 29 then XOR with 0x7B
    for i in range(12):
        arr[i] = (arr[i] * 29) & 0xFF
        arr[i] ^= 0x7B

    # Step 9: Second permutation
    perm2 = [3, 7, 0, 10, 2, 9, 5, 1, 11, 4, 8, 6]
    arr = [arr[perm2[i]] for i in range(12)]

    # Step 10: XOR with a fixed key
    key_final = [0xAA, 0x55, 0xFF, 0x00, 0x11, 0x22, 0x33, 0x44,
                 0x99, 0x88, 0x77, 0x66]
    for i in range(12):
        arr[i] ^= key_final[i]

    # Step 11: Add 0x37 to each byte
    for i in range(12):
        arr[i] = (arr[i] + 0x37) & 0xFF

    # Compare with the target
    target = b'\xB7\xFC\x70\x25\x4A\x12\xC7\xD3\x5E\x16\xFB\x17'
    return bytes(arr) == target
Test@12#3ABC
Proposer: deepseek-reasoner Solver: gpt-5-mini-2025-08-07
-1 vs -1
#10 Sample Solution Wrong
def mystery(x):
    # Accept only Python str
    if type(x) is not str:
        return False

    # Only pure ASCII allowed
    try:
        b = x.encode('ascii')
    except UnicodeEncodeError:
        return False

    # Structural filters
    if len(b) != 5:
        return False
    if not x.islower():
        return False
    if not all(97 <= c <= 122 for c in b):  # a-z only
        return False
    if sum(b) % 97 != 47:
        return False

    # Multiple independent cryptographic digests must match known values.
    import hashlib
    if hashlib.md5(b).hexdigest() != "5d41402abc4b2a76b9719d911017c592":
        return False
    if hashlib.sha1(b).hexdigest() != "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d":
        return False
    if hashlib.sha256(b).hexdigest() != "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824":
        return False

    # A tiny extra check: a simple rolling xor to add low-level mixing
    h = 0x12345678
    for v in b:
        h = ((h << 5) | (h >> (32 - 5))) & 0xFFFFFFFF
        h ^= v
    if h != 0x9b9e3f7a:
        return False

    return True
"hello"
Proposer: gpt-5-mini-2025-08-07 Solver: deepseek-reasoner
-1 vs -2