Re: crypto stuff

Lance James <[email protected]> Wed, 1 Oct 2003 17:45:49 -0700
Newsgroups gmane.comp.security.invisiblenet.iip.devel
Organization InvisibleNet
Message-ID <[email protected]>
Hi jrandom,

Wednesday, October 1, 2003, 5:37:43 PM, you wrote:

j> ok, we've got two(+) things on the crypto deck here:
j> 1) ElG+AES session management
j> 2) streaming AES for TCP
j> +) PRNG

j> 1) ElG+AES session management

j> As I said in the meeting, ElG+AES works fine when blocks/messages aren't
j> lost or severely out of order, but if:
j> 1.1) the first block is lost, we're screwed as the recipient doesn't
j> get the session key
j> 1.2) another block with session tags is lost, K following blocks are
j> lost as the session tags they use will not be recognized
j> Point 1.1 requires us to keep using ElG until we know for sure that its
j> been received, and point 1.2 requires us to tap dance to either know
j> for sure that all tags sent are usable (by resending the tags in further
j> blocks until we get one of them acked) or go probabalistic and hope that
j> out of the K blocks sent with tags, at least one makes it through

j> This affects both the end to end encryption (in the SDK) and the garlic
j> encryption (in the router), as they both use ElG+AES.  Rather than be
j> hasty and implement what I think will be sufficient, I'm being cautious
j> and saying all blocks will include the ElG until the Right Way is figured
j> out and implemented.  A performance hit, yes, but its better than losing
j> entire sessions intermittently.

j> 2) Streaming AES for TCP

j> We agreed on using bytes 32-47 from the DH exchange for the IV during
j> the meeting, but one question I have is whether we should go with CBC
j> (requiring padding since not all reads/writes are 16 bytes), or should
j> we go CFB  (allowing us to read/write any byte we're given)?  Pros/cons
j> anyone?

j> If not, I'm going to go ahead and do CBC+PKCS#5 (using the last byte
j> = # padding bytes, with all of the padding bytes equal to that #, e.g.
j> 0x42 0x43 0x44 0x45 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a
j> 0x0a 0x0a)

j> +) PRNG

j> We're still using the default java.security.SecureRandom (wrapped via
j> net.invisiblenet.i2p.util.RandomSource), and it'd be nice to get rid
j> of that sometime... its startup overhead is a bitch (hoses the JVM for
j> ~5 seconds on my p4 1.7).  I've looked at freenet's Yarrow, and we could
j> use it, though it seems to include some assumptions and dependencies
j> that aren't in place for us.  Any PRNG experts have any suggestions?
j>  This is low priority, as we're functional as is, but it'd be nice to
j> get rid of that 5 second bootup lag.

j> Thats it for now.
j> -jr



j> Concerned about your privacy? Follow this link to get
j> FREE encrypted email: https://www.hushmail.com/?l=2

j> Free, ultra-private instant messaging with Hush Messenger
j> https://www.hushmail.com/services.php?subloc=messenger&l=434

j> Promote security and make money with the Hushmail Affiliate Program:
j> https://www.hushmail.com/about.php?subloc=affiliate&l=427
j> _______________________________________________
j> iip-dev mailing list
j> [email protected]
j> http://lists.invisiblenet.net/mailman/listinfo/iip-dev

Quickly on the yarrow, I believe it is to be the most reliable and
secure PRNG out there to date, although, looking at Seth Hardy's
erandom, it looks attractive but isn't a proven standard at this time,
but is Provably secure. I believe when Seth gets on tonight, it would
also be advised to discuss this with him, he has an in depth recent
knowledge of PRNG, and I believe he would agree that Yarrow is
definitely sufficient.

I need to look over the other stuff when I have a bit of bandwidth,
I'll get back to you shortly.

-- 
Best regards,
 Lance                            mailto:[email protected]
InvisibleNet
www.invisiblenet.net

_______________________________________________
iip-dev mailing list
[email protected]
http://lists.invisiblenet.net/mailman/listinfo/iip-dev