Live data from Hacker News

Hiding messages in a deck playing cards

asherfalcon.com

11–20 of 42 posts

Re: Hiding messages in a deck playing cards

#11
post #4

Despite appearing to have perfectly ordinary structured static HTML content (aside from the fact that it spams things like instead of using some basic CSS properly), without JavaScript I only see a solid-colour background. Anyway, this doesn't offer a whole lot of storage: $ python -c 'print(sum(__import__("math").log2(x) for x in range(1, 53)) // 8)' 28.0

28 bytes out of ~225 bits, sure. (I compute 228 bits, but precision gets funny with quantities so large. Interestingly, an emulated TI-86 and a real TI-89 Titanium returned different answers; the latter wasn't even divisible by 8!)

For movie-plot '52 pick-up' that's not so bad, especially if used to encode something like a key for the "Solitaire" cryptosystem, mentioned nearby, wherein the same deck can in turn be reconfigured and manipulated to generate an arbitrary-length keystream for application to a longer message transmitted under separate cover.

Re: Hiding messages in a deck playing cards

#12
post #7
post #4

Despite appearing to have perfectly ordinary structured static HTML content (aside from the fact that it spams things like instead of using some basic CSS properly), without JavaScript I only see a solid-colour background. Anyway, this doesn't offer a whole lot of storage: $ python -c 'print(sum(__import__("math").log2(x) for x in range(1, 53)) // 8)' 28.0

https://deckcrypt.github.io/ 45 characters according to the blog post and this demo

45 code points in a custom 5-bit encoding representing 32 characters; 28 bytes (with 1 to 4 bits left over) of 8-bit ASCII.

Re: Hiding messages in a deck playing cards

#14
post #8
post #2

Hey all, I found a cool way to convert text into a specific order of a deck of playing cards. I detailed the instructions of how it works in the blog post but a brief overview would be that it uses Lehmer codes which allow you to uniquely identify each permutation of a set i.e. each of the many many ways a deck of cards can be shuffled/arranged

TIL about Lehmer codes... and "poker encoding" ;) (I just prefer poker to solitaire...) Someone else mentioned that the orientation of the cards (up or down) and possibly even the front-back facingness of the card (facing up, facing down) would add another 2 possible bits to the available encoding space. (Of course, at that point you'd have to also encode which side of the whole deck is the "top"...) My own thought w…

> Of course, at that point you'd have to also encode which side of the whole deck is the "top"...)

An asymmetrical joker could indicate which short edge is "right way up", while also indicating which card is the first or last of the deck.

Re: Hiding messages in a deck playing cards

#17
post #8
post #2

Hey all, I found a cool way to convert text into a specific order of a deck of playing cards. I detailed the instructions of how it works in the blog post but a brief overview would be that it uses Lehmer codes which allow you to uniquely identify each permutation of a set i.e. each of the many many ways a deck of cards can be shuffled/arranged

TIL about Lehmer codes... and "poker encoding" ;) (I just prefer poker to solitaire...) Someone else mentioned that the orientation of the cards (up or down) and possibly even the front-back facingness of the card (facing up, facing down) would add another 2 possible bits to the available encoding space. (Of course, at that point you'd have to also encode which side of the whole deck is the "top"...) My own thought w…

Yeah that would make an interesting addition. I was thinking about error correction so if you swapped two cards it would be okay but was struggling with how it would work, but I think it would be quite fun to add :)

Re: Hiding messages in a deck playing cards

#18

Good stuff. You could get much better bandwidth than this by tokenizing and using something like a Huffman or arithmetic code on token frequencies. As a simple example, if you set your tokens to be all English words - let's say there are between 500k and 1 million - that's about 9-10 bits per word. I am sure you could do much better than this as well

That sounds very interesting, I'll look into it thanks :)

Re: Hiding messages in a deck playing cards

#19
post #6

You should be able to get another 45 bits or so by also using the orientation of the cards (everything except non face card Diamonds).

You might squeeze a tag bit for the deck out of the 7◇, depending on the pack design.

>you might squeeze a tag bit for the deck out of the 7◇

awww, youuuuu!! hugz!

"The Seven of Diamonds meaning in a Tarot reading can show that you will be surrounded by love."

(i was looking it up to find what the different cards looked like and found that)

and yes "you and I might squeeze a bit" later

Post reply on HN