David's Compression page

One uses compression for data files such as text files to increase the average entropy per bit of file. If the files are of a random nonstructed nature and have a high amount of entopy compression will not help. Also if the files being encrypted have a common front end then even the compressed files if compressed only in forward direction give very little security so if common front ends occur in file then the reverse pass is needed. I am concerned that most compression routines are not good for encryption. Since to be useful for ENCRYPTION, they should contain special features:

1. There should be no header information in the compressed file.
2. There should be no structure that would enable someone trying to solve the encryption to be able to tell that the file was not a valid compressed file. This for me means any file of more than one byte in length when uncompressed and then recompressed would go back to the same exact file. The first method I have looked at is:

adaptive huffman compression.

Here are the basic adaptive huffman compression files.
The above program I found on internet and the only mods to them was the file opens to get them to read and write files on the PC. There are some features that I do not like in this Package.
1. It contains control information.
2. If one takes a random file and uncompresses it to get a new file. Take that new file and recompresses back. You useually do not get back the starting file. This means that if someone trying decrypt a file they can eliminate many files since they could not be the result of a file compression.
3. It uses a special token for symbols that have not occurred (NYT) yet then uses the 8 bits of the unused symbol when it first occurs. This is done to make program run fast but wastes space. And if all symbols used you end up with 257 leaves on the tree.

files updated on September 22,1999
Here are the adaptive huffman compression files for cryptographic uses.
This is slower than the basic routines but it fixes the 3 problems that make the first routines not suitable for cryptographic purposes.There are two sets of changes. One is the change of the tree so that it always has 256 leaves and rest of changes are to insure that any file can be the result of a compression. Any file can be decompressed and when recompressed it will match the sarting file. The package also contains a program to reverse bytes end for end. If one wants to get the most out of the compression method I would first compress file. Then reverse it and then compress file and reverse it again. This is a poor freemans way to get close to " all or nothing encryption" via US legal compression. It would almost force an attacker to make a complete pass through the sofware before a decompression could be done. If some one has a file of 1 to 100k bytes that when decompressed by this method that when compressed does not come back to starting file please let me know

files updated on September 22,1999
Here are the alternate adaptive huffman compression files for cryptographic uses.
This is similar to the previous set of viles but uses a less agressive adaptive tree building then the previous. This compression seems to work better for files that already compressed and would be what I would use for a reverse pass of compression described below and is used as an example of how one can play games with the tree handling routines.

Below are set of files in HEX
first is plain file
second compressed do to H1COM.EXE
third is compress due to H2COM.EXE
forth when present is from a series of H2COM.EXE then REVERSE.EXE then H3COM.EXE followed by REVERSE. This would be as if two adaptive compression passes where done to the file one pass in forward direction using method in H2COM.exe and second in reverse direction of file by the method in H3COM.exe this resulting file is what one could then encrypt with a standard AES method and should be almost a like an "all or nothing method" of encryption for those who can't get something like SCOT19U.zip

ENTER for discussion of "one to one" huffman file ending and more

file hex dumps follow:

FILE SET 1:
0000 31 . . . . . . . . . . . . . . . *1* number of bytes is 1 0000 31 00 00 00 01 . . . . . . . . . . . *1....* number of bytes is 5 0000 CE . . . . . . . . . . . . . . . *.* number of bytes is 1 FILE SET 2:
0000 31 31 . . . . . . . . . . . . . . *11* number of bytes is 2 0000 31 80 00 00 00 02 . . . . . . . . . . *1.....* number of bytes is 6 0000 CE 80 . . . . . . . . . . . . . . *..* number of bytes is 2 FILE SET 3:
0000 31 31 31 31 31 31 31 31 . . . . . . . . *11111111* number of bytes is 8 0000 31 FE 00 00 00 08 . . . . . . . . . . *1.....* number of bytes is 6 0000 CE FE . . . . . . . . . . . . . . *..* number of bytes is 2 FILE SET 4:
0000 31 31 31 31 31 31 31 31 31 . . . . . . . *111111111* number of bytes is 9 0000 31 FF 00 00 00 09 . . . . . . . . . . *1.....* number of bytes is 6 0000 CE FF . . . . . . . . . . . . . . *..* number of bytes is 2 FILE SET 5:
0000 31 31 31 31 31 31 31 31 31 31 . . . . . . *1111111111* number of bytes is 10 0000 31 FF 80 00 00 00 0A . . . . . . . . . *1......* number of bytes is 7 0000 CE FF 80 . . . . . . . . . . . . . *...* number of bytes is 3 0000 31 FD 7F . . . . . . . . . . . . . *1..* number of bytes is 3 FILE SET 6:
0000 74 68 65 20 71 75 69 63 6B 20 62 72 6F 77 6E 20 *the quick brown * 0010 66 6F 78 20 6A 75 6D 70 65 64 20 6F 76 65 72 20 *fox jumped over * 0020 74 68 65 20 6C 61 7A 79 20 64 6F 67 73 2E 0D 0A *the lazy dogs...* 0030 6E 6F 0D 0A 74 68 65 20 71 75 69 63 6B 20 62 72 *no..the quick br* 0040 6F 77 6E 20 66 6F 78 20 6A 75 6D 70 65 64 20 6F *own fox jumped o* 0050 76 65 72 20 74 68 65 20 6C 61 7A 79 20 64 6F 67 *ver the lazy dog* 0060 73 2E 0D 0A . . . . . . . . . . . . *s...* number of bytes is 100 0000 74 34 0C B0 80 38 E3 AC 34 A3 18 35 8E 31 51 CA *t4...8..4..5.1Q.* 0010 0D EC 77 43 76 23 32 81 E3 70 D5 16 36 C8 E1 28 *..wCv#2..p..6..(* 0020 19 37 B0 EC F2 FA 80 EA 36 64 61 D0 F5 71 E7 2E *.7......6da..q..* 0030 F8 33 D0 73 98 5D 20 36 20 52 AE 18 27 61 B6 BC *.3.s.] 6 R..'a..* 0040 D0 E5 AC E7 C4 FC F7 C1 D4 76 48 69 FB DE AB 6A *.........vHi...j* 0050 D2 EC 31 41 83 63 FF FF AD 53 40 00 00 00 64 . *..1A.c...S@...d* number of bytes is 95 0000 8B 33 04 B3 B0 11 54 B2 A7 39 82 9E 43 06 30 84 *.3....T..9..C.0.* 0010 7A D7 C5 83 CD 16 01 E2 83 86 61 4B AA 91 06 A2 *z.........aK....* 0020 60 28 4B 8C 91 C8 15 41 26 A0 E0 35 89 AA A1 3E *`(K....A&..5....* 0030 C4 6B 59 9C FA F6 8A AB F2 EA 39 7D 38 D2 81 61 *.kY.......9}8..a* 0040 22 E4 4B 82 89 40 6D 3C B0 22 FA A8 A5 86 C8 AF *".K..@m.."......* 0050 04 2D 62 02 0A D5 96 . . . . . . . . . *.-b....* number of bytes is 87 0000 00 ED F2 89 FA E7 7D B4 3A 52 10 A6 6B 2D 26 5F *......}.:R..k-&_* 0010 EE C2 E0 F9 6B 90 47 FF EF E0 7B 63 2D 61 23 95 *....k.G...{c-a#.* 0020 F8 FD 5B 63 BD D1 9F D6 73 FB 2E FE 28 CE 55 79 *..[c....s...(.Uy* 0030 A5 DD A1 CC 7E EC 99 50 47 D5 50 41 5F B0 7E 8B *....~..PG.PA_.~.* 0040 9F 27 79 03 76 9F 5D 7E C9 E1 A7 EC 05 57 5A 79 *.'y.v.]~.....WZy* 0050 37 50 D2 D2 9D 2A F5 2A 69 . . . . . . . *7P...*.*i* number of bytes is 89 FILE SET 7:
0000 74 68 65 20 71 75 69 63 6B 20 62 72 6F 77 6E 20 *the quick brown * 0010 66 6F 78 20 6A 75 6D 70 65 64 20 6F 76 65 72 20 *fox jumped over * 0020 74 68 65 20 6C 61 7A 79 20 64 6F 67 73 2E 0D 0A *the lazy dogs...* 0030 4E 6F 0D 0A 74 68 65 20 71 75 69 63 6B 20 62 72 *No..the quick br* 0040 6F 77 6E 20 66 6F 78 20 6A 75 6D 70 65 64 20 6F *own fox jumped o* 0050 76 65 72 20 74 68 65 20 6C 61 7A 79 20 64 6F 67 *ver the lazy dog* 0060 73 2E 0D 0A . . . . . . . . . . . . *s...* number of bytes is 100 0000 74 34 0C B0 80 38 E3 AC 34 A3 18 35 8E 31 51 CA *t4...8..4..5.1Q.* 0010 0D EC 77 43 76 23 32 81 E3 70 D5 16 36 C8 E1 28 *..wCv#2..p..6..(* 0020 19 37 B0 EC F2 FA 80 EA 36 64 61 D0 F5 71 E7 2E *.7......6da..q..* 0030 F8 33 D0 73 98 5D 20 36 20 54 04 EB 85 F3 B0 DB *.3.s.] 6 T......* 0040 5E 68 72 D6 73 E2 87 59 EF EA 3B 24 15 3D F6 55 *^hr.s..Y..;$.=.U* 0050 75 69 96 18 9F 8A C7 E0 83 FA 9A 00 00 00 64 . *ui............d* number of bytes is 95 0000 8B 33 04 B3 B0 11 54 B2 A7 39 82 9E 43 06 30 84 *.3....T..9..C.0.* 0010 7A D7 C5 83 CD 16 01 E2 83 86 61 4B AA 91 06 A2 *z.........aK....* 0020 60 28 4B 8C 91 C8 15 41 26 A0 E0 35 89 AA A1 3E *`(K....A&..5....* 0030 C4 6B 59 9C FA F6 88 03 55 F8 75 1C C0 98 61 40 *.kY.....U.u...a@* 0040 B0 91 71 F2 E0 B8 51 1B 4F 2B 48 C0 A8 28 41 B8 *..q...Q.O+H..(A.* 0050 56 5D 56 B1 02 02 18 CC . . . . . . . . *V]V.....* number of bytes is 88 0000 80 1E EC 19 3C 63 FD 32 3C E9 DD FC A1 5B 39 C1 *.....c.2.....[9.* 0010 61 BB C3 D3 8D 01 CE F4 BF 03 7F 6C 58 72 B6 84 *a..........lXr..* 0020 39 3F B7 AA 34 2B EF E6 FC C8 B5 E9 11 39 D9 2A *9?..4+.......9.** 0030 AF B1 1D C0 E0 C7 0A 12 EE F2 91 1F 28 76 6F CF *............(vo.* 0040 3C F3 3F B9 39 36 7C A4 5D 01 60 91 DF FE 5C 5D *..?.96|.].`...\]* 0050 FB 1E D9 45 53 9D F4 E7 E7 33 . . . . . . *...ES....3* number of bytes is 90 FILE SET 8:
0000 FF 02 1F FF . . . . . . . . . . . . *....* number of bytes is 4 0000 FF 01 03 E0 00 00 00 04 . . . . . . . . *........* number of bytes is 8 0000 00 00 01 E0 . . . . . . . . . . . . *....* number of bytes is 4 /* did not uncompress correctly in earlier version */ 0000 F4 1F 00 1F . . . . . . . . . . . . *....* number of bytes is 4 The Last File Set is for each 8 bit character occuring just once No real compression should take place and the extra file is the first compressed with H3COM.EXE 0000 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F *................* 0010 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F *................* 0020 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F * !"#$%&'()*+,-./* 0030 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F *0123456789:;.=.?* 0040 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F *@ABCDEFGHIJKLMNO* 0050 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F *PQRSTUVWXYZ[\]^_* 0060 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F *`abcdefghijklmno* 0070 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F *pqrstuvwxyz{|}~.* 0080 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F *................* 0090 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F *................* 00A0 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF *................* 00B0 B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF *................* 00C0 C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF *................* 00D0 D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF *................* 00E0 E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF *................* 00F0 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FD FE FF *................* number of bytes is 256 0000 00 00 80 50 0C 02 60 2C 03 20 38 04 70 27 01 54 *...P..`,. 8.p'.T* 0010 0B 80 63 03 50 1C 40 F0 08 78 23 C0 96 82 78 0A *..c.P.@..x#...x.* 0020 58 2B 40 B4 82 F0 0C 38 32 C0 D2 83 68 0E 18 3A *X+@....82...h..:* 0030 40 F0 83 E0 10 7C 21 F0 45 D0 8F 81 26 C2 5D 04 *@....|!.E...&.].* 0040 D9 09 F0 14 5C 29 B0 55 50 AE 81 64 C2 D9 05 D1 *....\).UP..d....* 0050 0B E0 18 3C 31 70 64 D0 CD 81 A2 C3 55 06 C9 0D *....1pd.....U...* 0060 D0 1C 1C 39 30 74 50 EC 81 E0 C3 D1 07 C1 0F C0 *...90tP.........* 0070 20 7E 20 FC 21 7A 21 F8 22 76 22 F4 23 72 23 F0 * ~ .!z!."v".#r#.* 0080 24 6E 24 EC 25 6A 25 E8 26 66 26 E4 27 62 27 E0 *$n$.%j%.&f&.'b'.* 0090 28 5E 28 DC 29 5A 29 D8 2A 56 2A D4 2B 52 2B D0 *(^(.)Z).*V*.+R+.* 00A0 2C 4E 2C CC 2D 4A 2D C8 2E 46 2E C4 2F 42 2F C0 *,N,.-J-..F../B/.* 00B0 30 3E 30 BC 31 3A 31 B8 32 36 32 B4 33 32 33 B0 *0.0.1:1.262.323.* 00C0 34 2E 34 AC 35 2A 35 A8 36 26 36 A4 37 22 37 A0 *4.4.5*5.6&6.7"7.* 00D0 38 1E 38 9C 39 1A 39 98 3A 16 3A 94 3B 12 3B 90 *8.8.9.9.:.:.;.;.* 00E0 3C 0E 3C 8C 3D 0A 3D 88 3E 06 3E 84 3F 02 3F 80 *....=.=.....?.?.* 00F0 40 7F 20 7F 10 5F 48 3F 84 27 B2 17 D1 0D E4 87 *@. .._H?.'......* 0100 F0 44 77 22 7B 11 5D 48 BE 84 67 32 37 91 1D C4 *.Dw"{.]H..g27...* 0110 8F E0 48 6F 24 77 12 5B 49 3D 84 A6 B2 57 51 2D *..Ho$w.[I=...WQ-* 0120 A4 97 D0 4C 67 26 73 13 59 49 BC 84 E6 32 77 11 *...Lg&s.YI...2w.* 0130 3D 84 9F C0 50 5F 28 6F 14 57 4A 3B 85 25 B2 96 *=...P_(o.WJ;.%..* 0140 D1 4D 64 A7 B0 54 57 2A 6B 15 55 4A BA 85 65 32 *.Md..TW*k.UJ..e2* 0150 B6 91 5D 44 AF A0 58 4F 2C 67 16 53 4B 39 85 A4 *..]D..XO,g.SK9..* 0160 B2 D6 51 6D 24 B7 90 5C 47 2E 63 17 51 4B B8 85 *..Qm$..\G.c.QK..* 0170 E4 32 F6 11 7D 04 BF 80 60 3F 30 5F 18 4F 4C 37 *.2..}...`?0_.OL7* 0180 86 23 B3 15 D1 8C E4 C7 70 64 37 32 5B 19 4D 4C *.#......pd72[.ML* 0190 B6 86 63 33 35 91 9C C4 CF 60 68 2F 34 57 1A 4B *..c35....`h/4W.K* 01A0 4D 35 86 A2 B3 55 51 AC A4 D7 50 6C 27 36 53 1B *M5...UQ...Pl'6S.* 01B0 49 4D B4 86 E2 33 75 11 BC 84 DF 40 70 1F 38 4F *IM...3u....@p.8O* 01C0 1C 47 4E 33 87 21 B3 94 D1 CC 64 E7 30 74 17 3A *.GN3.!....d.0t.:* 01D0 4B 1D 45 4E B2 87 61 33 B4 91 DC 44 EF 20 78 0F *K.EN..a3...D. x.* 01E0 3C 47 1E 43 4F 31 87 A0 B3 D4 51 EC 24 F7 10 7C *.G.CO1....Q.$..|* 01F0 07 3E 43 1F 41 4F B0 87 E0 33 F4 11 FC 04 FF 00 *..C.AO...3......* 0200 00 01 00 . . . . . . . . . . . . . *...* number of bytes is 515 more than double no wonder I don't use this and it would have been 515 no matter how the 256 ordered 0000 FF 7E 00 37 E1 FD 00 40 1C 00 00 25 E1 3C B7 68 *.~.7...@...%...h* 0010 01 AE 99 D7 BE 00 24 41 84 DE 6E 88 F2 AD 8C 11 *......$A..n.....* 0020 77 88 08 C8 52 9D 6C 09 80 9D 64 E6 3F 68 03 E8 *w...R.l...d.?h..* 0030 41 82 0E 8C 38 40 89 58 0C FA 70 E2 02 A9 64 50 *A...8@.X..p...dP* 0040 95 6E 8C 65 68 11 CF AF 0E 40 3B 16 C9 2E CD D2 *.n.eh....@;.....* 0050 8E B5 0A 58 0B 71 86 03 39 58 D3 AE C2 9C 04 F4 *...X.q..9X......* 0060 61 E7 5F 85 00 0C 82 B0 12 E8 6D 82 07 45 6C 18 *a._.......m..El.* 0070 3A 3B 61 0E A4 90 0A 1A 96 A8 60 94 D4 43 83 A7 *:;a.......`..C..* 0080 B6 20 01 44 C1 27 94 C7 0A 3A AA 34 58 1A B9 6B *. .D.'...:.4X..k* 0090 05 4C 94 B4 58 D9 8B 85 0E 92 BC 50 F9 2C 07 10 *.L..X......P.,..* 00A0 9C C4 51 19 0C 88 12 98 CC 41 3A 0D 06 14 A0 D4 *..Q......A:.....* 00B0 41 58 CD 86 16 8C DC 31 79 8E 02 18 98 E4 21 9A *AX.....1y.....!.* 00C0 8E 84 1A 90 EC 81 B9 8F 0A 1C A8 F4 C1 DA 8F 82 *................* 00D0 1E 88 FC C1 FB 88 03 00 27 C0 80 C1 BE 08 06 14 *........'.......* 00E0 20 30 28 77 82 01 44 BC 14 22 2C 00 60 A8 D0 41 * 0(w..D..",.`..A* 00F0 CD 47 80 10 25 22 28 49 C9 31 02 80 25 4E 0B 31 *.G..%"(I.1..%N.1* 0100 2E 40 60 24 CA 83 4E 4D AB 38 98 EA B3 C8 8F B5 *.@`$..NM.8......* 0110 40 91 0A 94 4C 11 B5 48 91 28 0A 64 09 D2 A8 14 *@...L..H.(.d....* 0120 52 85 51 85 62 2B 0D AD 2C B8 DA F2 4C 08 B1 40 *R.Q.b+..,...L..@* 0130 C9 6B 36 8D 08 B5 00 6C 95 B9 47 03 9C 8F 74 49 *.k6....l..G...tI* 0140 D9 17 86 1E A5 7C 51 F8 D8 0D 20 9E 84 1E 18 A8 *.....|Q... .....* 0150 82 62 90 8C DC 76 A4 0D 92 06 53 12 C1 CC 25 35 *.b...v....S...%5* 0160 D9 CE CF 5A 82 B4 44 52 76 9B 35 10 AA 0E B0 CA *...Z..DRv.5.....* 0170 EA 58 5E C8 2B 49 5B 36 E3 17 50 BC 5D F4 70 1D *.X^.+I[6..P.].p.* 0180 85 6C 47 E3 3F 20 D9 4C CC 8E 73 74 1B A4 DD 45 *.lG.? .L..st...E* 0190 6B 23 60 DB 44 DC 8D E0 70 0F 10 F2 57 31 F4 6E *k#`.D...p...W1.n* 01A0 A4 EC 2E E1 F0 3E 43 D0 7B 0F 8B E8 FC FF 00 . *......C.{......* number of bytes is 431 I think this will vary based on order but I'm sure it will be less than 512 so always less than method above 0000 70 88 34 8E 55 2A 5A 38 26 DB 5D 61 F3 4F 8A 2F *p.4.U*Z8&.]a.O./* 0010 1A 9B 8E DE 5B 5F D5 61 69 BD 69 59 48 30 A2 7E *....[_.ai.iYH0.~* 0020 BC D7 22 1A 96 4E 92 3F C4 C4 F5 9E 79 BB 56 2E *.."..N.?....y.V.* 0030 A8 F9 AD BA 5D 5B 84 D5 ED EC 66 8D EA CB 34 46 *....][....f...4F* 0040 07 7D 09 4D 8C 1A 15 04 6B 44 74 08 AA 3C 9D 0E *.}.M....kDt.....* 0050 32 48 2F E6 1A 64 A2 D7 12 B6 C5 4D 0C BB C0 9D *2H/..d.....M....* 0060 60 08 12 F7 07 F6 99 43 49 84 01 97 69 12 05 E3 *`......CI...i...* 0070 FB 17 CE 0C 40 BC 0E FB 13 DF 06 98 D1 34 EB EC *....@........4..* 0080 DD 6B C3 08 9B EE 20 74 ED 13 8F 3E 27 75 D6 5F *.k.... t....'u._* 0090 E6 66 3C 29 D2 10 23 CC F7 05 9B 43 3D 09 9F 2C *.f.)..#....C=..,* 00A0 D0 1E 35 20 0F 72 CE 14 3F 7A 97 4E 42 0B B8 C7 *..5 .r..?z.NB...* 00B0 E6 C7 0D 13 BA DB 10 F6 D4 E5 C5 77 F2 19 20 A7 *...........w.. .* 00C0 17 EC 8F 79 B1 41 71 B1 C8 31 4B E8 D1 94 9A DD *...y.Aq..1K.....* 00D0 D6 E5 AA E9 61 7D B1 C7 3D 73 04 5E 2B AD 64 38 *....a}..=s.^+.d8* 00E0 B7 D2 9B A4 F2 D6 F9 E2 78 C0 74 FB 2C 47 4A 63 *........x.t.,GJc* 00F0 72 ED 19 6B 1D 57 DC 8C D5 64 0A 8A 8B 15 59 98 *r..k.W...d....Y.* 0100 0B 67 8A 04 7B 4C FD F7 21 D8 E1 5F 17 E6 F9 E5 *.g..{L..!.._....* 0110 EA 25 FB D1 97 D7 62 D6 CA F8 50 0A 9E A3 CC E6 *.%....b...P.....* 0120 23 D0 9D 60 25 A4 41 C8 0C D7 D0 FD 8C C8 60 A0 *#..`%.A.......`.* 0130 AB FF 43 E1 80 C7 CF 00 19 0D 96 51 F3 3E 5C B9 *..C........Q..\.* 0140 1F 59 B0 56 C1 FD EC F3 5E 4D 5B D4 56 D3 B7 BF *.Y.V....^M[.V...* 0150 AF 6C 58 C3 A1 5B 39 2E 15 DA 75 8C 89 68 37 43 *.lX..[9...u..h7C* 0160 2E 5C 91 A9 33 07 3E 83 CB 0E 5E 07 7D 9F FE B5 *.\..3.....^.}...* 0170 22 32 31 F2 F3 6B 23 80 6B A4 73 88 B3 50 D6 1C *"21..k#.k.s..P..* 0180 6D E3 56 8E DA 6C 93 EE 33 71 F4 0B 6F 29 45 B0 *m.V..l..3q..o)E.* 0190 83 97 1E 99 24 FB 88 DC C7 23 36 BD 01 15 FF 42 *....$....#6....B* 01A0 E4 D6 44 75 8F 87 60 DE 17 42 FA 74 17 03 FD FF *..Du..`..B.t....* number of bytes is 432 this will vary I hope smaller than first based on order but I have not run enough tests to tell but I like the reverse compression pass 0000 FF 00 FF F5 F9 ED F1 E9 ED E1 E5 DD E1 D5 D9 D1 *................* 0010 D5 C9 CD C5 C9 BD C1 B9 BD B1 B5 AD B1 A5 A9 A1 *................* 0020 A5 99 9D 95 99 8D 91 89 8D 81 85 7D 81 75 79 71 *...........}.uyq* 0030 75 69 6D 65 69 5D 61 59 5D 51 55 4D 51 45 49 41 *uimei]aY]QUMQEIA* 0040 45 39 3D 35 39 2D 31 29 2D 21 25 1D 21 15 19 11 *E9=59-1)-!%.!...* 0050 15 09 0D 05 09 FC 80 7F 7F 3F 1F AF A7 E3 E1 F6 *.........?......* 0060 F9 7C 3D 9E EF 47 B3 C9 EA F3 79 3C 1E 2E E7 83 *.|=..G....y.....* 0070 B1 DE ED 76 3A 9D 6E 87 53 99 D2 E7 73 39 1C AE *...v:.n.S...s9..* 0080 27 23 81 C6 E1 70 37 9B ED C6 F3 69 BA DB 6D 36 *'#...p7....i..m6* 0090 1B 2D 66 C3 51 AE D5 6A 34 9A 6D 06 93 39 A2 CF *.-f.Q..j4.m..9..* 00A0 67 33 19 AC A6 63 21 96 C9 64 31 98 EC 46 33 09 *g3...c!..d1..F3.* 00B0 8A C3 61 30 18 2B E6 02 F1 7E BD 5E 2E 97 6B 85 *..a0.+...~.^..k.* 00C0 D2 D9 72 B7 5B 2D 16 AB 25 A2 C1 66 B1 58 2B 95 *..r.[-..%..f.X+.* 00D0 EA C5 72 A9 5A AB 55 2A 15 2A 65 42 91 4E 25 52 *..r.Z.U*.*eB.N%R* 00E0 28 94 6A 05 12 79 42 9F 4F 27 13 A9 A4 E2 61 36 *(.j..yB.O'....a6* 00F0 99 4C 25 92 E9 44 B2 49 2A 93 49 24 52 00 E4 8A *.L%..D.I*.I$R...* 0100 31 1E 8D 46 22 91 68 84 52 19 12 87 43 21 10 A8 *1..F".h.R...C!..* 0110 24 22 01 06 01 00 . . . . . . . . . . *$"....* number of bytes is 278
This should always be smaller than the first two methods regardless of order. Since the non-aggressive change in the tree will not make the unused symbols leaves very far down in the tree.
But this method does not compress low entropy files very well. I use it normally just for reverse pass since the entropy density should have gone up from the normal frist pass adaptive huffman compression for ascii text files.