CRACK Solution

PARITY MIX

CRACK parity + XOR cipher

In-game screenshot of PARITY MIX
In-game view
FamilyCRACK Graph0.583 DifficultyMedium Ring04 IDz2_parity_mix

Prerequisites

PAIR SWAP

Unlocks

THRESHOLD COUNTEROR GATE

Accepted input BREACH
Techniqueparity + XOR cipher Rulenonzero SampleBREACH

Walkthrough

Six bytes get XOR mixed with one key, then the gate checks the scrambled stream against a stored pattern and demands an odd parity. Mix the right word and both locks fall.

Each byte is XOR'd with 0x37 and matched against a target, plus the parity of the mixed LSBs must be odd. XOR the targets back with 0x37 to read the word.

Hints

  • HINT 1: Length is fixed at 6. Every byte is XOR'd with the same key 0x37 before any check.
  • HINT 2: After mixing, each position must hit an exact target byte, and the parity of the low bits must come out odd.
  • HINT 3: The mixed targets are 75 65 72 76 74 7F. XOR each with 0x37 and you get BREACH.

Reject Samples

  • BREACI
  • breach
  • BREAC
  • BREACHED
  • ACCESS
Verifier Listing
; z2_parity_mix: "Parity Mix". Fixed 6 bytes. Each byte is XOR'd with the mix
; key 0x37, then two constraints must hold on the mixed stream:
;   (a) every mixed byte equals its stored target (exact per-position match), and
;   (b) the XOR-parity of the mixed LSBs is 1 (odd count of odd bytes).
; Combines parity (w15) + XOR (t03). r0 = 1 on accept; rule: nonzero.
;
; mixed targets = 75 65 72 76 74 7F  (= "BREACH" ^ 0x37, byte by byte)
; parity of those LSBs (1 1 0 0 0 1) = 1.

        len   r1
        cmp   r1, 6
        jnz   bad           ; fixed length 6

        mov   r3, 0         ; r3 = parity accumulator
        mov   r7, 0         ; position index

loop:   cmp   r7, 6
        jge   pchk          ; all 6 matched -> verify parity
        ldb   r0, [r7]
        xor   r0, 0x37      ; mix key into the byte

        ; fold parity of this mixed byte's LSB
        mov   r2, r0
        and   r2, 1
        xor   r3, r2

        ; select the per-position target
        cmp   r7, 0
        jz    t0
        cmp   r7, 1
        jz    t1
        cmp   r7, 2
        jz    t2
        cmp   r7, 3
        jz    t3
        cmp   r7, 4
        jz    t4
        mov   r4, 0x7F      ; position 5
        jmp   chk
t0:     mov   r4, 0x75
        jmp   chk
t1:     mov   r4, 0x65
        jmp   chk
t2:     mov   r4, 0x72
        jmp   chk
t3:     mov   r4, 0x76
        jmp   chk
t4:     mov   r4, 0x74
chk:    cmp   r0, r4
        jnz   bad
        inc   r7
        jmp   loop

pchk:   cmp   r3, 1         ; parity must be odd
        jnz   bad

        mov   r0, 1
        ret
bad:    mov   r0, 0
        ret