flâneur — a map of the web's best reading

James Stanley - Hiding messages in chess games

incoherency.co.uk · 1,369 words · saved by 1 readers

I designed a steganography system that encodes data as a chess game. A convenient way to communicate chess games is PGN, but any means of communicating the moves of the game would work, as the information is encoded conceptually in the moves themselves, rather than taking advantage of any redundancy in the PGN format. You can play with it here: Chess Steganography. The code is on github. There is also a perl implementation of the same concept, but the encoding is incompatible because it was easier that way. As an example, the text "Hello, world!" becomes: You can look at this game on lichess, and copying and pasting the full PGN from lichess into the "Unsteg" box (despite lichess's annotations!) will allow you to retrieve the message. First we encode the input data bytes as a bignum so that it's easier to work with. I prepended an imaginary "0x01" byte to the input so that leading "0x00" bytes are not lost ("0x00 0x03" and "0x00 0x00 0x03" both become just "3" as a bignum; with a "0x01

I designed a steganography system that encodes data as a chess game. A convenient way to communicate chess games is PGN , but any means of communicating the moves of the game would work, as the information is encoded conceptually in the moves themselves, rather than taking advantage of any redundancy in the PGN format. You can play with it here: Chess Steganography . The code is on github . There is also a perl implementation of the same concept, but the encoding is incompatible because it was easier that way. As an example, the text "Hello, world!" becomes: 1. e3 b6 2. b3 Bb7 3. Nf3 Bxf3 4. B

Explore this link on the map →

related reading