Cryptography-Digest Digest #12, Volume #13 Fri, 27 Oct 00 01:13:01 EDT
Contents:
MATTS BICOM (SCOTT19U.ZIP_GUY)
Re: How do I detect invalid passwords? (Benjamin Goldberg)
Re: Is OPT the only encryption system that can be proved secure? (Terry Ritter)
----------------------------------------------------------------------------
From: [EMAIL PROTECTED] (SCOTT19U.ZIP_GUY)
Subject: MATTS BICOM
Date: 27 Oct 2000 04:32:38 GMT
MAtt's bicom101 is the first high valued product
using compression and encryption to come down the
pike in a long time. Matt has paid great attension
to detail. The compression is fully bijective and
so is the encryption. I know of no other product
like this on the market. Any 8 bit binary file
can be thought as a compressed encrypted file
or as a plaintext file. Zero information is added
to the file. And one can easily test to check the
bijective nature of the program. No other compression
combined with encryption has this feature. Canada
should be proud of his work. If big brother wants
you to give them the key to the encrypted data make
one up any key will work and produce an output file
that when compressed and encrpted with this program
will produce the same data. Try that with any other
program. You can't. Also this bijective nature makes
it a valueable tool to use in other crytpo systems.
Some may want to add other features. Most features
can be added outside the program with out any
changes to the code. For example suspose you want
the ability to still have this bijective property
but yet want to be able to encrypt the same file
or modified file so that an attacker will not see
the same blocks at the begining you can rotate the
file some "random" number of bytes and combine the rotation
information to the file in a bijective way and then
use bicom.
If the attacker does the reverse process it is
completely bijective in that any key decompresses
to a file that can have the rotation taken out
automactically. So any key in theory leads to a
file which could have been encrypted try this
with any other product. See example below:
output of test file test.txt
0000 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 66 *This is a test f*
0010 69 6C 65 20 74 6F 20 73 68 6F 77 20 68 6F 77 20 *ile to show how *
0020 6F 6E 65 0D 0A 63 61 6E 20 65 6E 63 72 79 70 74 *one..can encrypt*
0030 20 74 68 65 20 73 61 6D 65 20 66 69 6C 65 20 77 * the same file w*
0040 69 74 68 20 62 69 63 6F 6D 0D 0A 61 6E 64 20 66 *ith bicom..and f*
0050 69 72 73 74 20 75 73 65 20 72 6F 74 61 74 65 6E *irst use rotaten*
0060 20 61 6E 64 20 64 73 63 20 73 6F 20 74 68 61 74 * and dsc so that*
0070 0D 0A 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 *..the process is*
0080 20 63 6F 6D 70 6C 65 74 65 6C 79 20 62 69 6A 65 * completely bije*
0090 63 74 69 76 65 2E 0D 0A 49 4E 20 74 68 61 74 20 *ctive...IN that *
00A0 61 6E 79 20 6B 65 79 20 63 61 6E 20 62 65 20 75 *any key can be u*
00B0 73 65 64 20 66 6F 72 20 72 65 76 65 72 73 65 0D *sed for reverse.*
00C0 0A 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 67 65 *.and you will ge*
00D0 74 20 61 20 76 61 6C 69 64 20 72 6F 74 61 74 65 *t a valid rotate*
00E0 64 20 66 69 6C 65 0D 0A 74 68 61 74 20 77 69 6C *d file..that wil*
00F0 6C 20 6E 6F 74 20 68 61 76 65 20 65 72 72 6F 72 *l not have error*
0100 73 2E 20 59 6F 75 20 63 61 6E 20 65 76 65 6E 20 *s. You can even *
0110 72 65 76 65 72 73 65 0D 0A 74 68 69 73 20 70 72 *reverse..this pr*
0120 6F 63 65 73 73 20 61 6E 64 20 79 6F 75 20 67 65 *ocess and you ge*
0130 74 20 74 68 65 20 66 69 6C 65 20 62 61 63 6B 2E *t the file back.*
0140 0D 0A . . . . . . . . . . . . . . *..*
number of bytes is 322
output of rotaten i arbitary made it 113 bytes. test.t1
0000 0A 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 20 *.the process is *
0010 63 6F 6D 70 6C 65 74 65 6C 79 20 62 69 6A 65 63 *completely bijec*
0020 74 69 76 65 2E 0D 0A 49 4E 20 74 68 61 74 20 61 *tive...IN that a*
0030 6E 79 20 6B 65 79 20 63 61 6E 20 62 65 20 75 73 *ny key can be us*
0040 65 64 20 66 6F 72 20 72 65 76 65 72 73 65 0D 0A *ed for reverse..*
0050 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 67 65 74 *and you will get*
0060 20 61 20 76 61 6C 69 64 20 72 6F 74 61 74 65 64 * a valid rotated*
0070 20 66 69 6C 65 0D 0A 74 68 61 74 20 77 69 6C 6C * file..that will*
0080 20 6E 6F 74 20 68 61 76 65 20 65 72 72 6F 72 73 * not have errors*
0090 2E 20 59 6F 75 20 63 61 6E 20 65 76 65 6E 20 72 *. You can even r*
00A0 65 76 65 72 73 65 0D 0A 74 68 69 73 20 70 72 6F *everse..this pro*
00B0 63 65 73 73 20 61 6E 64 20 79 6F 75 20 67 65 74 *cess and you get*
00C0 20 74 68 65 20 66 69 6C 65 20 62 61 63 6B 2E 0D * the file back..*
00D0 0A 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 *.This is a test *
00E0 66 69 6C 65 20 74 6F 20 73 68 6F 77 20 68 6F 77 *file to show how*
00F0 20 6F 6E 65 0D 0A 63 61 6E 20 65 6E 63 72 79 70 * one..can encryp*
0100 74 20 74 68 65 20 73 61 6D 65 20 66 69 6C 65 20 *t the same file *
0110 77 69 74 68 20 62 69 63 6F 6D 0D 0A 61 6E 64 20 *with bicom..and *
0120 66 69 72 73 74 20 75 73 65 20 72 6F 74 61 74 65 *first use rotate*
0130 6E 20 61 6E 64 20 64 73 63 20 73 6F 20 74 68 61 *n and dsc so tha*
0140 74 0D 71 00 00 00 . . . . . . . . . . *t.q...*
number of bytes is 326
output of DSC combining rotation amount for bijectiveity test.t2
0000 0A 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 20 *.the process is *
0010 63 6F 6D 70 6C 65 74 65 6C 79 20 62 69 6A 65 63 *completely bijec*
0020 74 69 76 65 2E 0D 0A 49 4E 20 74 68 61 74 20 61 *tive...IN that a*
0030 6E 79 20 6B 65 79 20 63 61 6E 20 62 65 20 75 73 *ny key can be us*
0040 65 64 20 66 6F 72 20 72 65 76 65 72 73 65 0D 0A *ed for reverse..*
0050 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 67 65 74 *and you will get*
0060 20 61 20 76 61 6C 69 64 20 72 6F 74 61 74 65 64 * a valid rotated*
0070 20 66 69 6C 65 0D 0A 74 68 61 74 20 77 69 6C 6C * file..that will*
0080 20 6E 6F 74 20 68 61 76 65 20 65 72 72 6F 72 73 * not have errors*
0090 2E 20 59 6F 75 20 63 61 6E 20 65 76 65 6E 20 72 *. You can even r*
00A0 65 76 65 72 73 65 0D 0A 74 68 69 73 20 70 72 6F *everse..this pro*
00B0 63 65 73 73 20 61 6E 64 20 79 6F 75 20 67 65 74 *cess and you get*
00C0 20 74 68 65 20 66 69 6C 65 20 62 61 63 6B 2E 0D * the file back..*
00D0 0A 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 *.This is a test *
00E0 66 69 6C 65 20 74 6F 20 73 68 6F 77 20 68 6F 77 *file to show how*
00F0 20 6F 6E 65 0D 0A 63 61 6E 20 65 6E 63 72 79 70 * one..can encryp*
0100 74 20 74 68 65 20 73 61 6D 65 20 66 69 6C 65 20 *t the same file *
0110 77 69 74 68 20 62 69 63 6F 6D 0D 0A 61 6E 64 20 *with bicom..and *
0120 66 69 72 73 74 20 75 73 65 20 72 6F 74 61 74 65 *first use rotate*
0130 6E 20 61 6E 64 20 64 73 63 20 73 6F 20 74 68 61 *n and dsc so tha*
0140 74 0D 71 . . . . . . . . . . . . . *t.q*
number of bytes is 323
using matts bicom to compress and encrypt password is sex test.t3
0000 CA EB 22 8B E9 D2 AD D0 19 9A 91 DB 58 C6 D8 8B *..".........X...*
0010 DE 3A 95 13 34 7E 33 85 A2 B3 73 C9 78 F0 58 12 *.:..4~3...s.x.X.*
0020 2C 18 93 85 59 50 2E 84 C4 BF 8C AD 96 97 F3 2A *,...YP.........**
0030 53 FF F2 1D C8 29 11 D8 D4 14 5A 94 49 14 40 A8 *S....)....Z.I.@.*
0040 89 3F 45 46 D4 B5 2B B0 BC A8 E7 82 78 D2 AB 31 *.?EF..+.....x..1*
0050 2A 2A 86 B6 95 37 8C 7F 2C CC 49 91 9E B0 7E 10 ***...7..,.I...~.*
0060 13 96 84 1F 27 86 18 F3 59 34 55 F4 AA 41 DB DC *....'...Y4U..A..*
0070 79 3B 8C CE 58 D1 85 D7 BA BF DE DA 10 14 D0 BF *y;..X...........*
0080 56 A5 BD F7 26 14 E1 AA F7 47 E1 2E 24 22 F5 4B *V...&....G..$".K*
0090 DB 03 BC CE B1 41 B2 EC BF C2 28 7C 78 B8 A3 0E *.....A....(|x...*
00A0 EF 7B AA 85 F6 B2 4C 07 5F AE BB 40 B3 BB F5 80 *.{....L._..@....*
00B0 5C 9D . . . . . . . . . . . . . . *\.*
number of bytes is 178
know using matts bicom to uncompress wrong password is love test.t4
0000 67 87 5A 34 9B C1 52 3B A2 09 F6 87 5A 34 09 E7 *g.Z4..R;....Z4..*
0010 C9 E3 5A 34 BE 52 CE 04 BA 68 F9 55 55 52 5A 34 *..Z4.R...h.UURZ4*
0020 D4 81 9A CE 04 BA 68 F9 55 55 52 F4 E3 5B 89 C9 *......h.UUR..[..*
0030 BA 68 F9 55 55 52 5A 34 D4 50 04 CE 9A 93 66 C1 *.h.UURZ4.P....f.*
0040 C1 C1 C1 52 3B 17 F5 08 34 09 E7 4C D4 81 9A D2 *...R;...4..L....*
0050 1B E6 17 34 09 F6 CE E3 87 BA 4C E3 5B 89 3E 8D *...4......L.[.>.*
0060 52 A4 52 52 5A 3A 6E FC E3 87 3A 6E 72 E3 5A FC *R.RRZ:n...:nr.Z.*
0070 04 68 BB 68 F9 81 50 04 EB 97 E1 68 F9 E3 5A 52 *.h.h..P....h..ZR*
0080 17 68 51 A2 BB 68 F9 2F E3 E3 2C C1 C1 66 80 80 *.hQ..h./..,..f..*
0090 80 80 04 EB 2F 04 EB 2F 68 CE 34 BE 8B CD 50 CD *..../../h.4...P.*
00A0 5A 34 F5 72 E3 5A FC 04 51 BE 52 CE 04 E3 87 5A *Z4.r.Z..Q.R....Z*
00B0 E3 5A 34 F5 F4 E3 87 3A 3A 3A 3A 6E 72 E3 5A FC *.Z4....::::nr.Z.*
00C0 96 CD 50 CD 5A 5B F4 E3 87 3A E3 5A 34 F5 F4 22 *..P.Z[...:.Z4.."*
00D0 68 3E E3 A4 C0 BB 04 52 08 40 AC CD 5A 5B 67 87 *h>[email protected][g.*
00E0 F4 E3 87 3A 6E 72 E3 5A FC 04 68 F9 80 3A 6E 68 *...:nr.Z..h..:nh*
00F0 F9 4C A3 17 6A 04 E2 0A 80 3A 3A 6E 68 A2 AB E3 *.L..j....::nh...*
0100 5A 34 F5 F4 55 3A D4 81 CD 50 D4 3A . . . . *Z4..U:...P.:*
number of bytes is 268
using undsc to get test.t5
0000 67 87 5A 34 9B C1 52 3B A2 09 F6 87 5A 34 09 E7 *g.Z4..R;....Z4..*
0010 C9 E3 5A 34 BE 52 CE 04 BA 68 F9 55 55 52 5A 34 *..Z4.R...h.UURZ4*
0020 D4 81 9A CE 04 BA 68 F9 55 55 52 F4 E3 5B 89 C9 *......h.UUR..[..*
0030 BA 68 F9 55 55 52 5A 34 D4 50 04 CE 9A 93 66 C1 *.h.UURZ4.P....f.*
0040 C1 C1 C1 52 3B 17 F5 08 34 09 E7 4C D4 81 9A D2 *...R;...4..L....*
0050 1B E6 17 34 09 F6 CE E3 87 BA 4C E3 5B 89 3E 8D *...4......L.[.>.*
0060 52 A4 52 52 5A 3A 6E FC E3 87 3A 6E 72 E3 5A FC *R.RRZ:n...:nr.Z.*
0070 04 68 BB 68 F9 81 50 04 EB 97 E1 68 F9 E3 5A 52 *.h.h..P....h..ZR*
0080 17 68 51 A2 BB 68 F9 2F E3 E3 2C C1 C1 66 80 80 *.hQ..h./..,..f..*
0090 80 80 04 EB 2F 04 EB 2F 68 CE 34 BE 8B CD 50 CD *..../../h.4...P.*
00A0 5A 34 F5 72 E3 5A FC 04 51 BE 52 CE 04 E3 87 5A *Z4.r.Z..Q.R....Z*
00B0 E3 5A 34 F5 F4 E3 87 3A 3A 3A 3A 6E 72 E3 5A FC *.Z4....::::nr.Z.*
00C0 96 CD 50 CD 5A 5B F4 E3 87 3A E3 5A 34 F5 F4 22 *..P.Z[...:.Z4.."*
00D0 68 3E E3 A4 C0 BB 04 52 08 40 AC CD 5A 5B 67 87 *h>[email protected][g.*
00E0 F4 E3 87 3A 6E 72 E3 5A FC 04 68 F9 80 3A 6E 68 *...:nr.Z..h..:nh*
00F0 F9 4C A3 17 6A 04 E2 0A 80 3A 3A 6E 68 A2 AB E3 *.L..j....::nh...*
0100 5A 34 F5 F4 55 3A D4 81 CD 50 D4 3A 00 00 00 . *Z4..U:...P.:...*
number of bytes is 271
unrotat rotation output is 58 to get test.t6
0000 3E E3 A4 C0 BB 04 52 08 40 AC CD 5A 5B 67 87 F4 *>[email protected][g..*
0010 E3 87 3A 6E 72 E3 5A FC 04 68 F9 80 3A 6E 68 F9 *..:nr.Z..h..:nh.*
0020 4C A3 17 6A 04 E2 0A 80 3A 3A 6E 68 A2 AB E3 5A *L..j....::nh...Z*
0030 34 F5 F4 55 3A D4 81 CD 50 D4 67 87 5A 34 9B C1 *4..U:...P.g.Z4..*
0040 52 3B A2 09 F6 87 5A 34 09 E7 C9 E3 5A 34 BE 52 *R;....Z4....Z4.R*
0050 CE 04 BA 68 F9 55 55 52 5A 34 D4 81 9A CE 04 BA *...h.UURZ4......*
0060 68 F9 55 55 52 F4 E3 5B 89 C9 BA 68 F9 55 55 52 *h.UUR..[...h.UUR*
0070 5A 34 D4 50 04 CE 9A 93 66 C1 C1 C1 C1 52 3B 17 *Z4.P....f....R;.*
0080 F5 08 34 09 E7 4C D4 81 9A D2 1B E6 17 34 09 F6 *..4..L.......4..*
0090 CE E3 87 BA 4C E3 5B 89 3E 8D 52 A4 52 52 5A 3A *....L.[.>.R.RRZ:*
00A0 6E FC E3 87 3A 6E 72 E3 5A FC 04 68 BB 68 F9 81 *n...:nr.Z..h.h..*
00B0 50 04 EB 97 E1 68 F9 E3 5A 52 17 68 51 A2 BB 68 *P....h..ZR.hQ..h*
00C0 F9 2F E3 E3 2C C1 C1 66 80 80 80 80 04 EB 2F 04 *./..,..f....../.*
00D0 EB 2F 68 CE 34 BE 8B CD 50 CD 5A 34 F5 72 E3 5A *./h.4...P.Z4.r.Z*
00E0 FC 04 51 BE 52 CE 04 E3 87 5A E3 5A 34 F5 F4 E3 *..Q.R....Z.Z4...*
00F0 87 3A 3A 3A 3A 6E 72 E3 5A FC 96 CD 50 CD 5A 5B *.::::nr.Z...P.Z[*
0100 F4 E3 87 3A E3 5A 34 F5 F4 22 68 . . . . . *...:.Z4.."h*
number of bytes is 267
rotaten with rotation 58 entered matches test.t5 but test.t7
0000 67 87 5A 34 9B C1 52 3B A2 09 F6 87 5A 34 09 E7 *g.Z4..R;....Z4..*
0010 C9 E3 5A 34 BE 52 CE 04 BA 68 F9 55 55 52 5A 34 *..Z4.R...h.UURZ4*
0020 D4 81 9A CE 04 BA 68 F9 55 55 52 F4 E3 5B 89 C9 *......h.UUR..[..*
0030 BA 68 F9 55 55 52 5A 34 D4 50 04 CE 9A 93 66 C1 *.h.UURZ4.P....f.*
0040 C1 C1 C1 52 3B 17 F5 08 34 09 E7 4C D4 81 9A D2 *...R;...4..L....*
0050 1B E6 17 34 09 F6 CE E3 87 BA 4C E3 5B 89 3E 8D *...4......L.[.>.*
0060 52 A4 52 52 5A 3A 6E FC E3 87 3A 6E 72 E3 5A FC *R.RRZ:n...:nr.Z.*
0070 04 68 BB 68 F9 81 50 04 EB 97 E1 68 F9 E3 5A 52 *.h.h..P....h..ZR*
0080 17 68 51 A2 BB 68 F9 2F E3 E3 2C C1 C1 66 80 80 *.hQ..h./..,..f..*
0090 80 80 04 EB 2F 04 EB 2F 68 CE 34 BE 8B CD 50 CD *..../../h.4...P.*
00A0 5A 34 F5 72 E3 5A FC 04 51 BE 52 CE 04 E3 87 5A *Z4.r.Z..Q.R....Z*
00B0 E3 5A 34 F5 F4 E3 87 3A 3A 3A 3A 6E 72 E3 5A FC *.Z4....::::nr.Z.*
00C0 96 CD 50 CD 5A 5B F4 E3 87 3A E3 5A 34 F5 F4 22 *..P.Z[...:.Z4.."*
00D0 68 3E E3 A4 C0 BB 04 52 08 40 AC CD 5A 5B 67 87 *h>[email protected][g.*
00E0 F4 E3 87 3A 6E 72 E3 5A FC 04 68 F9 80 3A 6E 68 *...:nr.Z..h..:nh*
00F0 F9 4C A3 17 6A 04 E2 0A 80 3A 3A 6E 68 A2 AB E3 *.L..j....::nh...*
0100 5A 34 F5 F4 55 3A D4 81 CD 50 D4 3A 00 00 00 . *Z4..U:...P.:...*
number of bytes is 271
use DSC matches test.t4 but is test.t8
0000 67 87 5A 34 9B C1 52 3B A2 09 F6 87 5A 34 09 E7 *g.Z4..R;....Z4..*
0010 C9 E3 5A 34 BE 52 CE 04 BA 68 F9 55 55 52 5A 34 *..Z4.R...h.UURZ4*
0020 D4 81 9A CE 04 BA 68 F9 55 55 52 F4 E3 5B 89 C9 *......h.UUR..[..*
0030 BA 68 F9 55 55 52 5A 34 D4 50 04 CE 9A 93 66 C1 *.h.UURZ4.P....f.*
0040 C1 C1 C1 52 3B 17 F5 08 34 09 E7 4C D4 81 9A D2 *...R;...4..L....*
0050 1B E6 17 34 09 F6 CE E3 87 BA 4C E3 5B 89 3E 8D *...4......L.[.>.*
0060 52 A4 52 52 5A 3A 6E FC E3 87 3A 6E 72 E3 5A FC *R.RRZ:n...:nr.Z.*
0070 04 68 BB 68 F9 81 50 04 EB 97 E1 68 F9 E3 5A 52 *.h.h..P....h..ZR*
0080 17 68 51 A2 BB 68 F9 2F E3 E3 2C C1 C1 66 80 80 *.hQ..h./..,..f..*
0090 80 80 04 EB 2F 04 EB 2F 68 CE 34 BE 8B CD 50 CD *..../../h.4...P.*
00A0 5A 34 F5 72 E3 5A FC 04 51 BE 52 CE 04 E3 87 5A *Z4.r.Z..Q.R....Z*
00B0 E3 5A 34 F5 F4 E3 87 3A 3A 3A 3A 6E 72 E3 5A FC *.Z4....::::nr.Z.*
00C0 96 CD 50 CD 5A 5B F4 E3 87 3A E3 5A 34 F5 F4 22 *..P.Z[...:.Z4.."*
00D0 68 3E E3 A4 C0 BB 04 52 08 40 AC CD 5A 5B 67 87 *h>[email protected][g.*
00E0 F4 E3 87 3A 6E 72 E3 5A FC 04 68 F9 80 3A 6E 68 *...:nr.Z..h..:nh*
00F0 F9 4C A3 17 6A 04 E2 0A 80 3A 3A 6E 68 A2 AB E3 *.L..j....::nh...*
0100 5A 34 F5 F4 55 3A D4 81 CD 50 D4 3A . . . . *Z4..U:...P.:*
number of bytes is 268
bicom uncopress password love matches test.t3 but is test.t9
0000 CA EB 22 8B E9 D2 AD D0 19 9A 91 DB 58 C6 D8 8B *..".........X...*
0010 DE 3A 95 13 34 7E 33 85 A2 B3 73 C9 78 F0 58 12 *.:..4~3...s.x.X.*
0020 2C 18 93 85 59 50 2E 84 C4 BF 8C AD 96 97 F3 2A *,...YP.........**
0030 53 FF F2 1D C8 29 11 D8 D4 14 5A 94 49 14 40 A8 *S....)....Z.I.@.*
0040 89 3F 45 46 D4 B5 2B B0 BC A8 E7 82 78 D2 AB 31 *.?EF..+.....x..1*
0050 2A 2A 86 B6 95 37 8C 7F 2C CC 49 91 9E B0 7E 10 ***...7..,.I...~.*
0060 13 96 84 1F 27 86 18 F3 59 34 55 F4 AA 41 DB DC *....'...Y4U..A..*
0070 79 3B 8C CE 58 D1 85 D7 BA BF DE DA 10 14 D0 BF *y;..X...........*
0080 56 A5 BD F7 26 14 E1 AA F7 47 E1 2E 24 22 F5 4B *V...&....G..$".K*
0090 DB 03 BC CE B1 41 B2 EC BF C2 28 7C 78 B8 A3 0E *.....A....(|x...*
00A0 EF 7B AA 85 F6 B2 4C 07 5F AE BB 40 B3 BB F5 80 *.{....L._..@....*
00B0 5C 9D . . . . . . . . . . . . . . *\.*
number of bytes is 178
bicom uncompress password sex matches test.t2 but is test.t10
0000 0A 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 20 *.the process is *
0010 63 6F 6D 70 6C 65 74 65 6C 79 20 62 69 6A 65 63 *completely bijec*
0020 74 69 76 65 2E 0D 0A 49 4E 20 74 68 61 74 20 61 *tive...IN that a*
0030 6E 79 20 6B 65 79 20 63 61 6E 20 62 65 20 75 73 *ny key can be us*
0040 65 64 20 66 6F 72 20 72 65 76 65 72 73 65 0D 0A *ed for reverse..*
0050 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 67 65 74 *and you will get*
0060 20 61 20 76 61 6C 69 64 20 72 6F 74 61 74 65 64 * a valid rotated*
0070 20 66 69 6C 65 0D 0A 74 68 61 74 20 77 69 6C 6C * file..that will*
0080 20 6E 6F 74 20 68 61 76 65 20 65 72 72 6F 72 73 * not have errors*
0090 2E 20 59 6F 75 20 63 61 6E 20 65 76 65 6E 20 72 *. You can even r*
00A0 65 76 65 72 73 65 0D 0A 74 68 69 73 20 70 72 6F *everse..this pro*
00B0 63 65 73 73 20 61 6E 64 20 79 6F 75 20 67 65 74 *cess and you get*
00C0 20 74 68 65 20 66 69 6C 65 20 62 61 63 6B 2E 0D * the file back..*
00D0 0A 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 *.This is a test *
00E0 66 69 6C 65 20 74 6F 20 73 68 6F 77 20 68 6F 77 *file to show how*
00F0 20 6F 6E 65 0D 0A 63 61 6E 20 65 6E 63 72 79 70 * one..can encryp*
0100 74 20 74 68 65 20 73 61 6D 65 20 66 69 6C 65 20 *t the same file *
0110 77 69 74 68 20 62 69 63 6F 6D 0D 0A 61 6E 64 20 *with bicom..and *
0120 66 69 72 73 74 20 75 73 65 20 72 6F 74 61 74 65 *first use rotate*
0130 6E 20 61 6E 64 20 64 73 63 20 73 6F 20 74 68 61 *n and dsc so tha*
0140 74 0D 71 . . . . . . . . . . . . . *t.q*
number of bytes is 323
undsc to get test.t1 to get test.t11
0000 0A 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 20 *.the process is *
0010 63 6F 6D 70 6C 65 74 65 6C 79 20 62 69 6A 65 63 *completely bijec*
0020 74 69 76 65 2E 0D 0A 49 4E 20 74 68 61 74 20 61 *tive...IN that a*
0030 6E 79 20 6B 65 79 20 63 61 6E 20 62 65 20 75 73 *ny key can be us*
0040 65 64 20 66 6F 72 20 72 65 76 65 72 73 65 0D 0A *ed for reverse..*
0050 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 67 65 74 *and you will get*
0060 20 61 20 76 61 6C 69 64 20 72 6F 74 61 74 65 64 * a valid rotated*
0070 20 66 69 6C 65 0D 0A 74 68 61 74 20 77 69 6C 6C * file..that will*
0080 20 6E 6F 74 20 68 61 76 65 20 65 72 72 6F 72 73 * not have errors*
0090 2E 20 59 6F 75 20 63 61 6E 20 65 76 65 6E 20 72 *. You can even r*
00A0 65 76 65 72 73 65 0D 0A 74 68 69 73 20 70 72 6F *everse..this pro*
00B0 63 65 73 73 20 61 6E 64 20 79 6F 75 20 67 65 74 *cess and you get*
00C0 20 74 68 65 20 66 69 6C 65 20 62 61 63 6B 2E 0D * the file back..*
00D0 0A 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 *.This is a test *
00E0 66 69 6C 65 20 74 6F 20 73 68 6F 77 20 68 6F 77 *file to show how*
00F0 20 6F 6E 65 0D 0A 63 61 6E 20 65 6E 63 72 79 70 * one..can encryp*
0100 74 20 74 68 65 20 73 61 6D 65 20 66 69 6C 65 20 *t the same file *
0110 77 69 74 68 20 62 69 63 6F 6D 0D 0A 61 6E 64 20 *with bicom..and *
0120 66 69 72 73 74 20 75 73 65 20 72 6F 74 61 74 65 *first use rotate*
0130 6E 20 61 6E 64 20 64 73 63 20 73 6F 20 74 68 61 *n and dsc so tha*
0140 74 0D 71 00 00 00 . . . . . . . . . . *t.q...*
number of bytes is 326
unrotat which spits out 113 which was entered and matches test.tx test.t12
0000 54 68 69 73 20 69 73 20 61 20 74 65 73 74 20 66 *This is a test f*
0010 69 6C 65 20 74 6F 20 73 68 6F 77 20 68 6F 77 20 *ile to show how *
0020 6F 6E 65 0D 0A 63 61 6E 20 65 6E 63 72 79 70 74 *one..can encrypt*
0030 20 74 68 65 20 73 61 6D 65 20 66 69 6C 65 20 77 * the same file w*
0040 69 74 68 20 62 69 63 6F 6D 0D 0A 61 6E 64 20 66 *ith bicom..and f*
0050 69 72 73 74 20 75 73 65 20 72 6F 74 61 74 65 6E *irst use rotaten*
0060 20 61 6E 64 20 64 73 63 20 73 6F 20 74 68 61 74 * and dsc so that*
0070 0D 0A 74 68 65 20 70 72 6F 63 65 73 73 20 69 73 *..the process is*
0080 20 63 6F 6D 70 6C 65 74 65 6C 79 20 62 69 6A 65 * completely bije*
0090 63 74 69 76 65 2E 0D 0A 49 4E 20 74 68 61 74 20 *ctive...IN that *
00A0 61 6E 79 20 6B 65 79 20 63 61 6E 20 62 65 20 75 *any key can be u*
00B0 73 65 64 20 66 6F 72 20 72 65 76 65 72 73 65 0D *sed for reverse.*
00C0 0A 61 6E 64 20 79 6F 75 20 77 69 6C 6C 20 67 65 *.and you will ge*
00D0 74 20 61 20 76 61 6C 69 64 20 72 6F 74 61 74 65 *t a valid rotate*
00E0 64 20 66 69 6C 65 0D 0A 74 68 61 74 20 77 69 6C *d file..that wil*
00F0 6C 20 6E 6F 74 20 68 61 76 65 20 65 72 72 6F 72 *l not have error*
0100 73 2E 20 59 6F 75 20 63 61 6E 20 65 76 65 6E 20 *s. You can even *
0110 72 65 76 65 72 73 65 0D 0A 74 68 69 73 20 70 72 *reverse..this pr*
0120 6F 63 65 73 73 20 61 6E 64 20 79 6F 75 20 67 65 *ocess and you ge*
0130 74 20 74 68 65 20 66 69 6C 65 20 62 61 63 6B 2E *t the file back.*
0140 0D 0A . . . . . . . . . . . . . . *..*
number of bytes is 322
The above was to just demonstrate how it can be
combined with other programs and still stay bijective.
David A. Scott
--
SCOTT19U.ZIP NOW AVAILABLE WORLD WIDE
http://www.jim.com/jamesd/Kong/scott19u.zip
Scott famous encryption website **now all allowed**
http://members.xoom.com/ecil/index.htm
Scott LATEST UPDATED source for scott*u.zip
http://radiusnet.net/crypto/ then look for
sub directory scott after pressing CRYPTO
Scott famous Compression Page
http://members.xoom.com/ecil/compress.htm
**NOTE EMAIL address is for SPAMERS***
I leave you with this final thought from President Bill Clinton:
------------------------------
From: Benjamin Goldberg <[EMAIL PROTECTED]>
Subject: Re: How do I detect invalid passwords?
Date: Fri, 27 Oct 2000 04:50:29 GMT
[EMAIL PROTECTED] wrote:
>
> >A. Is there a better (i.e. safer) way to do this?
> >
> > Yes if password is shorter than the key
> > why bother to hash it at all. I assume you
> > are saving neither the hash or the password.
> > Also why use something fishy like blowfish
> > use the approved AES cipher would impress
> > your boss and customers more.
>
> You are right, I am saving neither the hash or the password. The
> reason I am planning on hashing the password is because most users
> will NOT enter a 16 byte password (i.e. 128-bit). Let say that the
> average person uses an 8-byte password. I don't want to pad the other
> 8-bytes with 0s or something else that is fixed. This would reduce the
> number of possible password combinations to 64-bits. I assume the
> hashing will help fix this. Is this right?
Although hashing the password is a good idea, your reasons are wrong.
If the password can only be 8 bytes, then no matter how good the hash
is, there's only 8 bytes of entropy in your key. That is, hashing
doesn't prevent brute-forcing of the password/key. An attacker using
brute force (or more likely, a dictionary search) will go through the
2**64 possible passwords, hash each, and try it as the encryption key.
The reason that hashing the password is a good idea, is that if the
encryption key is gotten by some other method than brute force (eg,
known/probable plaintext in the encrypted file), you don't want him to
be able to go from the encryption key back to the original password.
The reason you don't want that, is because people tend to re-use
passwords.
The best way to foil dictionary attacks on passwords is to require
instead a passphrase, with some minimum length. A simple way of picking
a passphrase it to make up a pangram, or a poem, or whatever. I
wouldn't suggest having the system any particular requirements on the
passphrase, other than it be over a particular length. *This* is where
hashing is especially important... My made up passphrase might be
(should be) longer than the cipher key size, so hashing securely shrinks
it. Since users will, if possible, pick bad passwords, (like having
"aaaabbbbccccdddd" to get 128 bits), I would advise measureing the
order-0 entropy (H value) per byte of the string, and require
(H*numbytes >= 128) rather than (8*numbytes >= 128). Using this
measurement, "aaaabbbbccccdddd" will have 2 bits per byte, and will be
considered to contain 2*16=32 bits of entropy, and be considered too
short, whereas assuming 8bits/byte would make it seem as if it had
8*16=128 bits of entropy, which would be sufficiently long.
> > >B. How do I detect an incorrect password? I don't want to decrypt
> > >the
> >
> > If you really want to do this I would encrypt the password
> > the user entered the first time. When the user enters a password
> > to get his data decypt the file that has his encrypted password
> > if they match then his in. But I would make this a very slow
> > operation if he guesses wrong so that he can't sit there and
> > guess quickly. That is if you do it at all I think not doing
> > anything and giving him garbage may be best.
>
> Let's say I still use the hash, then should I:
> 1. Get the password from the user.
> 2. Hash the password.
> 3. Encrypt the password from step 1 (not the hash) along with the data
> using the hash from step 2 as the key for the symettric cipher.
> 4. When the user wants to access the data, he/she will give me a
> password.
> 5. Take the password from step 4 and hash it.
> 6. Use the hash to decrypt the password that I originally encrypted.
> If it is the same as the password that I got from the user in step 4,
> I will continue to encrypt the rest of the data. Otherwise, the
> password is invalid and quit.
This method seems unnecesarily complicated. I would suggest:
1. Get the password (call it P).
2. Hash the password (call it HP).
3. Hash HP (call this HHP).
3. Write HHP to the file.
4) Encrypt the data with HP, and write it to the file.
--
"Mulder, do you remember when I was missing -- that time that you
*still* insist I was being held aboard a UFO?"
"How could I forget?"
"Well, I'm beginning to wonder if maybe I wouldn't have been
better off staying abo-- I mean, wherever it was that I was
being held." [from an untitled spamfic by [EMAIL PROTECTED]]
------------------------------
From: [EMAIL PROTECTED] (Terry Ritter)
Subject: Re: Is OPT the only encryption system that can be proved secure?
Date: Fri, 27 Oct 2000 04:50:05 GMT
On Fri, 27 Oct 2000 00:10:20 GMT, in
<[EMAIL PROTECTED]>, in sci.crypt
[EMAIL PROTECTED] (John Savard) wrote:
>On Thu, 26 Oct 2000 23:18:38 GMT, Tim Tyler <[EMAIL PROTECTED]> wrote, in
>part:
>
>>This bothers you? What specifically is the problem with this conclusion.
>>The conclusion appears to me to be correct - I see no problem with an
>>inability to be completely confident of your security.
>
>I am bothered since it is presented as a counter to the proof that an
>OTP is secure - specifically.
>
>Because, even if messy real-world issues *do* impinge on the OTP - and
>I have no problem with that in itself - the proof that the OTP has
>information-theoretic security is still something valuable, and not to
>be dismissed. Because that proof _distinguishes_ the OTP from other
>cryptosystems; it shows that a level of security against *the
>particular threat of* cryptanalysis - which is the only threat about
>which we can say much mathematically - exists for the OTP but not for
>other ciphers.
And that is precisely the issue I dispute:
Only the *theoretical* OTP is different. The *realized* OTP has the
very same issues as many other realized ciphers. There is no special
case for the realized OTP, it is back with the pack.
>What bothers me isn't calling attention to the real world - it is the
>claim that the real world makes a significant result, one of the few
>pieces of knowledge we _do_ have, irrelevant.
That's my claim. It's also almost indisputable that this is one of
the most confusing issues to anyone who is not a crypto expert.
Claiming that we "have" something which is perfect, but which is not
possible to realize in a guaranteed perfect way, is just stupid: In
practice, we don't really "have" it at all. Too bad that bothers you.
---
Terry Ritter [EMAIL PROTECTED] http://www.io.com/~ritter/
Crypto Glossary http://www.io.com/~ritter/GLOSSARY.HTM
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list (and sci.crypt) via:
Internet: [EMAIL PROTECTED]
End of Cryptography-Digest Digest
******************************