August 2019 - Peter makes the switch by creating the switck identity, naming it after the Matrix character Switch and setting the Switch still as the avatar. First post notes DEF CON is a good time to start a new identity.
January 2021 - Peter (as switck) makes the switch in the code by writing the broken #ifndef guard in libngu that fails to force the hardware TRNG.
March 2021 - Peter (as doc-hex) makes the switch by integrating libngu into Coldcard firmware and routing seed generation through ngu.random.bytes(), activating the defective path.
Result - The switch causes seeds to fall back to MicroPython Yasmarang PRNG with roughly 40 bits effective entropy on Mk2/Mk3 (higher but still reduced on later models). Those seeds are later brute-forced.


January 2021 - Peter (as switck) makes the switch in the code by writing the broken #ifndef guard in libngu that fails to force the hardware TRNG.
March 2021 - Peter (as doc-hex) makes the switch by integrating libngu into Coldcard firmware and routing seed generation through ngu.random.bytes(), activating the defective path.
Result - The switch causes seeds to fall back to MicroPython Yasmarang PRNG with roughly 40 bits effective entropy on Mk2/Mk3 (higher but still reduced on later models). Those seeds are later brute-forced.


103โค๏ธ7๐1๐1