From: Herbert Paulis on

"Mok-Kong Shen" <mok-kong.shen(a)t-online.de> schrieb im Newsbeitrag
news:hm5llt$dt$02$1(a)news.t-online.com...
> In classical crypto there are the so-called fractional substitution
> ciphers. A typical example is the German ADFGX, where a 5*5 matrix
> containing a randomly ordered 25 letter alphabet (normally manually
> obtained with a key and transposition) is read out with a column vector
> at the left and a row vector above the matrix, which both consist of
> ADFGX, whence the name of the cipher. Each plaintext letter is thus
> 'fractionalized' into a pair of letters in the reduced 5 letter
> alphabet and the stream of this transcription is then processed by a
> simple final transposition. (See
> http://members.aon.at/cipherclerk/Doc/ADFGVX.html for other fractional
> substitution schemes, e.g. bifid
> and trifid.)
>
> I wonder why does one transcribe the plaintext letters into an alphabet
> of 'reduced' size. If one employs 3 matrices, each a (differently)
> randomly ordered 25 letter alphabet, positioned in the form of a
> mirrored L, then each plaintext letter can be transcribed into pairs
> of letters in 25 different ways, i.e. one has homophony. Wouldn't
> that be much better?
>
> It seems evident that one could also advantageously combine this
> generalization with Playfair, namely one first uses the middle matrix
> to do Playfair of a pair of plaintext letters and fractionalize each
> of the resulting letters as depicted above, which could then be subject
> to a (preferably not too simple) final transposition process as usual.
>
> M. K. Shen

The idea behind using the letters ADFGVX was that these letters have very
distinctive codes in the Morse alphabet, thus making transmission over a
very noisy line safer. You can check out the details in Kahn's "Code
Breakers."

regards
Herbert


From: Herbert Paulis on

"Mok-Kong Shen" <mok-kong.shen(a)t-online.de> schrieb im Newsbeitrag
news:hm62pq$qdh$02$1(a)news.t-online.com...
> [Addendum] Another point I also wonder is that one seems to have
> highly favoured the use of 5*5 matrices. If, while still confining
> oneself to the 26 letter alphabet for the plaintext, one uses 6*6
> matrices, incoporating the numerals 0-9, quite some qualitative boost
> could result, I would think.
>
> M. K. Shen

That's why the Germans moved from ADFGX to ADFGVX, although, as history
proved, to no avail.

regards
Herbert


From: Maaartin on
On Mar 1, 10:39 am, Mok-Kong Shen <mok-kong.s...(a)t-online.de> wrote:
> Maaartin wrote:
> > I don't even understand how you use your 3 matrices. And how do you
> > get 25 different ways?
>
> A kind of schema like this:
>
>          b c
>          d a
>
>    c b   a c
>    d a   b d
>
> Here a could be transcribed to cb, cd, bb, or bd.

Thx for the explanation. I've got a similar idea: Use playfair as it
is, but interleave the plaintext with some garbage first. The
ciphertext will be obviously twice as long as the plaintext and the
efect coud be about the same. But in the thread "My BLT" it was shown
that introducing redundancy is no good idea.

What about this idea:

char aux = initialization_vector;
for (int i=0; i<plaintext.length; ++i) (ciphertext[i], aux) =
plaifair(p[i], aux);

Here plaifair is used as a function taking two arguments and returning
two values. The main difference to to the standard use of playfair is
the chaining variable aux. Instead of using it as a block cipher (with
block size 2) it works like a stream cipher. You need to do twice as
much work as usually, but the analysis is harder, especially you can't
use digraph's frequencies in the obvious way.

> In the present case, I would think that doing Playfair twice
> (with different matrices and a displacement of 1 in the 2nd round or
> even a transposition inbetween) instead of one Playfair and homophony
> may be a better alternative.

So do I (but I have no support for the claim).
From: Mok-Kong Shen on
Maaartin wrote:

> What about this idea:
>
> char aux = initialization_vector;
> for (int i=0; i<plaintext.length; ++i) (ciphertext[i], aux) =
> plaifair(p[i], aux);
>
> Here plaifair is used as a function taking two arguments and returning
> two values. The main difference to to the standard use of playfair is
> the chaining variable aux. Instead of using it as a block cipher (with
> block size 2) it works like a stream cipher. You need to do twice as
> much work as usually, but the analysis is harder, especially you can't
> use digraph's frequencies in the obvious way.

It's fine in my humble view. (The price you mentioned is clear, for
there is no free lunch in life :-))

M. K. Shen
From: ttw6687 on
Speaking of Playfair, I've seen a triple-Playfair suggested. It uses a
triple key and works as follows. First, do a normal Playfair with the
first key. Then insert a character (usually X is suggested) at the
beginning and the end of the cypher text. Second, do a normal Playfair
with the second key on the first cyphertext. Then (as expected) insert
a character a the beginning and end of the output. Third, do a normal
Playfair with the third key on the second cyphertext. The idea is to
break up pairs by inserting the extra characters.

I would suggest performing some sort of transposition before starting.

Anyway, for pencil and paper work, VIC may be better.