[cryptography] New Hand Cipher - The Drunken Bishop

andrew cooke andrew at acooke.org
Thu Dec 26 16:18:47 EST 2013

On Thu, Dec 26, 2013 at 02:04:29PM -0700, Aaron Toponce wrote:
> On Thu, Dec 26, 2013 at 05:57:11PM -0300, andrew cooke wrote:
> > here's my suggestion on a possibly harder version.
> > 
> > first, remove the complicated edge rules.  instead, imagine that the
> > board repeats.  so something leaving nort from h4 will arrive at a7.
> > this might help remove biases from the corners (where you can be stuck
> > for one move). the drawback is that this almost removes the "drunken"
> > switching from black to white, but see below.
> > 
> > second, add a rook that moves in a similar way, but the directions are
> > horizontal and vertical.  this starts at b3, say (see below).
> > 
> > third, the moves are made alternately (bishop, rook, bishop, rook,
> > bishop, rook), and if at any time one piece threatens the other, they
> > change position.
> > 
> > and maybe the plaintext is only added to one piece?
> > 
> > and maybe the row number of the rook is a bit rotation applied to the
> > output?
> This is good. I'll take this advice, and see what comes as a result. I have
> thought of a topological spheroid, where moving off the edges brings the
> bishop to the other edge, similar to a pacman game. Or going out of corner
> 'h8' would bring you into corner 'a1', etc.

yes, that's what i meant.  i typed a7 instead of a4 for some reason...
> I also thought of two bishops, on their own color, but I couldn't think of
> a clever way to avoid stream cycles repeating.

using a rook gives you two different graphs (if you think of how the squares
are "connected", ignoring plaintext).  so would two bishops, but they are each
of half the size (and i don't see either how you make two bishops interact).
> I need to introduce non-linearity into the system, which seems to be
> allusive with this type of cipher. I'm afraid adding additional pieces
> won't be enough, and that the requirement of a mathematical operation, such
> as "new square = (current square)^2 * mod(64). But reversing it is going to
> be tricky, and I'm not confident I'll get non-linearity into the algorithm.

you don't have to reverse it (unless i am confused)!  that's the beauty of a
stream cipher.  encryption and decryption are the same, except you remove the
random stream instead of adding it.

good luck,

More information about the cryptography mailing list