From: Herbert Paulis on 1 Mar 2010 09:20 "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 1 Mar 2010 09:22 "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 1 Mar 2010 11:50 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 1 Mar 2010 13:16 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 1 Mar 2010 23:41 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.
First
|
Prev
|
Pages: 1 2 Prev: "Data Validation" - Website Upload. Next: English Version of Julien Havet |