Prev: Alleged experimental attack on a quantum key distribution system
Next: I chose the term "Effective" as nearing the antonym of "Antonym" to fit the string in NP-Crypt
From: Mok-Kong Shen on 19 May 2010 04:56 If I don't err, homophones were not even widely employed in the days of classical crypto. However, if nowadays one could manage to limit one's alphabet size to 26 as in the classical times (which is surely do-able at least in certain non-trivial secret communications in my humble view) and if further one forgoes the advantage of compression (which is normally not exploited for small volumes of texts), then there is the evident and simple possibility of doing a 26:256 homophonic expansion of the alphabet without resulting in any disadvantage with respect to the volume of communication. For each character is normally being coded with 8 bits anyway. The performance of such homophonic mappings may be seen from the following table (PT freq. is taken from HAC p.247. CT freq. refers to that of each of the homophones corresponding to a PT character): A B C D E F G H I PT freq. % 8.04 1.54 3.06 3.99 12.51 2.30 1.96 5.49 7.26 Homophones 20 4 8 10 32 6 5 14 18 CT freq. % 0.402 0.385 0.383 0.399 0.391 0.383 0.392 0.392 0.403 J K L M N O P Q R PT freq. % 0.16 0,67 4.14 2.53 7.09 7.60 2.00 0.11 6.12 Homophones 1 2 10 6 18 19 5 1 15 CT freq. % 0.160 0.335 0.414 0.422 0.394 0.400 0.400 0.110 0.408 S T U V W X Y Z PT freq. % 6.54 9.25 2.71 0.99 1.92 0.19 1.73 0.09 Homophones 17 23 7 3 5 1 5 1 CT freq. % 0.385 0.402 0.387 0.330 0.384 0.190 0.346 0.090 This seems indeed to be fairly satisfactory. However, the weakness of homophinic substitution as stated in HAC p.240 (last paragraph under "Homophonic substitution") principally remains, even though it is presently rendered more difficult to exploit due to the sufficiently flat frequency distribution. One simple and quite effective remedy that suggests itself seems to be to employ the same technique that underlies the classical polyalphabetic substitution. That is, one pseudo-randomly creates a number of different 26:256 mappings and uses a (message- unique) PRNG to select among them in encrypting the successive plaintext characters (i.e. one has a running key). The result is thus a polyalphabetic homophonic substitution. One could, if desired, of course additionally do some simple operations as superencipherment, including transposition, xoring with PRNG output, etc. For comments I should be very grateful. M. K. Shen -------------------------------------------------------------------- [OT] Please kindly don't post any stuffs that concern me personally. For that would be a sheer waste of bandwidth. Please use my e-mail address for personal communications. |