Author: Olaoluwa Osuntokun 2015-12-15 05:16:04
Published on: 2015-12-15T05:16:04+00:00
The current header overhead is sha256 (32 bytes) + pubkey (33 bytes), or 1300 bytes. The serialized size of the message is 3.8K bytes and each node decrypts and removes the tail entry, then prepends padding. With Poly1035, the forged messages are rejected with a probability of 1-(n/(2^102)) for a 16n-byte message. If we're standardizing on ChaCha20, with a 32-byte key, the size would be 1377 bytes. The Sphinx construction uses either AES-CTR or ChaCha20 as the required stream-cipher. The current implementation uses AES-CTR as a stream cipher, and a truncated SHA-256-HMAC for the MAC (s=20), and will be ported to ChaCha-Poly3015 once high-priority items from the TODO list have been ticked off, assuming we're comfortable with 16-byte node IDs. Sphinx should be sufficient for now, and a new thread can be opened to discuss protobufs and ChaCha20 vs AES. A variation on the current proposed p2p crypto handshake has been developed, which builds off of the current method, and it will be posted to the ML sometime tomorrow+1 to ensure that it's sound.
Updated on: 2023-05-18T16:40:26.888006+00:00