Refracting Light 128 bit trial

The requested length is doubled to 128 bits, displayed as 32 hexadecimal characters. “Quad the fold” is interpreted as four coupled 128-bit lanes, totaling 512 internal bits, folded to a 128-bit result. This is a new experimental construction, preserved separately in refracting_light_128.py; the 64-bit program and its results remain intact.

Each lane has a position and velocity, each stored in 64 bits. Every signed outward-mapped input bit updates all four lanes. Neighboring lanes contribute to the updates. At the end, the four 128-bit lane values are rotated by different amounts and XORed together. The full algorithm, constants, byte ordering, and initial values are specified in the code. No standard hash finalizer is used.

A separately labelled short-output diagnostic keeps 16 bits by default. It counts and prints a few short matches alongside both complete hashes. It does not replace or shorten the returned 128-bit digest. --diagnostic-bits 0 disables this check; --diagnostic-bits 32 makes short collisions less frequent.

The initial 1,000-message check found zero full collisions and nine 16-bit diagnostic pairs. Hello World produced 49c50aefe095f84ac1bfb74e8b9bd3a1. Its median measured hash time was about 1.17 milliseconds in this Python run. Testing every bit of each lane independently verified that the final fold includes all 512 state bits; this does not establish that the fold is injective.

The first accepted nonce in the sample difficulty search was 1566 and happened to satisfy all three targets, 8, 10 and 12 zero bits. That is a particular search result, not a general equality of their difficulty.

The larger full digest makes accidental full matches even less likely. The short diagnostic is provided to make information loss visible. No security claim follows from these checks, and no decryption method has been added. Full output and diagnostic examples appear in separate JSON fields.

Example run from this directory:

python3 refracting_light_128.py --messages 100000 --message-bytes 4 --progress 10000 --diagnostic-bits 16 --difficulty

Results are written to refracting-light-128-results.json. These are finite sequential-input experiments, not a collision-resistance proof.