From b1d4dbb3d66ca0fa590fab0484b28c0534b5fc75 Mon Sep 17 00:00:00 2001
From: zzz
Date: Mon, 30 Aug 2010 18:38:11 +0000
Subject: [PATCH] elgamal edits
---
www.i2p2/pages/how_cryptography.html | 32 ++++++++++++----
www.i2p2/pages/how_elgamalaes.html | 47 +++++++++++++++++++++---
www.i2p2/pages/how_garlicrouting.html | 5 ++-
www.i2p2/pages/how_tunnelrouting.html | 2 +-
www.i2p2/pages/i2np_spec.html | 10 ++++-
www.i2p2/pages/tunnel-alt-creation.html | 7 +++-
www.i2p2/static/images/garliccloves.png | Bin 0 -> 70058 bytes
7 files changed, 84 insertions(+), 19 deletions(-)
create mode 100644 www.i2p2/static/images/garliccloves.png
diff --git a/www.i2p2/pages/how_cryptography.html b/www.i2p2/pages/how_cryptography.html
index 7af928f0..09a29da9 100644
--- a/www.i2p2/pages/how_cryptography.html
+++ b/www.i2p2/pages/how_cryptography.html
@@ -18,11 +18,15 @@ technique used in ElGamal/AES+SessionTag (but we're
ElGamal is used for asymmetric encryption.
-ElGamal is used in two places in I2P:
+ElGamal is used in several places in I2P:
@@ -84,9 +88,10 @@ The encrypted ElGamal contains:
Each encrypted part is prepended with zeros to a size of exactly 257 bytes.
Total length: 514 bytes.
-In typical usage, higher layers pad the cleartext to 222 bytes,
-resulting in 257-byte encrypted parts,
-and there is no zero padding at this layer.
+In typical usage, higher layers pad the cleartext data to 222 bytes,
+resulting in an unencrypted block of 255 bytes.
+This is encoded as two 256-byte encrypted parts,
+and there is a single byte of zero padding before each part at this layer.
See
the ElGamal code.
@@ -146,8 +151,19 @@ It may be quite difficult to make any change backward-compatible.
-AES is used for symmetric encryption.
-
+AES is used for symmetric encryption, in several cases:
+
+
We use 256 bit AES in CBC mode.
The padding used is specified in IETF RFC-2313 (PKCS#5 1.5, section 8.1 (for block type 02)).
In this case, padding exists of pseudorandomly generated octets to match 16 byte blocks.
diff --git a/www.i2p2/pages/how_elgamalaes.html b/www.i2p2/pages/how_elgamalaes.html
index 3fdaff70..b6ff47df 100644
--- a/www.i2p2/pages/how_elgamalaes.html
+++ b/www.i2p2/pages/how_elgamalaes.html
@@ -64,11 +64,11 @@ Each message received has one of two
the two possible conditions:
-- It is part of an existing session and is AES encrypted
+- It is part of an existing session and contains a Session Tag and an AES encrypted block
- It is for a new session and contains both ElGamal and AES encrypted blocks
When a router receives a message, it will first assume it is from
-an existing session and attempt to decrypt it using AES.
+an existing session and attempt to look up the Session Tag and decrypt the following data using AES.
If that fails, it will assume it is for a new session and attempt to
decrypt it using ElGamal.
@@ -104,8 +104,8 @@ The encrypted message contains:
ElGamal Block
-The ElGamal Block is always 514 bytes long.
-The AES Block is variable length but is always a multiple of 16 bytes.
+The encrypted ElGamal Block is always 514 bytes long.
+The encrypted AES Block length is variable but is always a multiple of 16 bytes.
The unencrypted ElGamal data is 222 bytes long, containing:
@@ -136,7 +136,9 @@ The unencrypted ElGamal data is 222 bytes long, containing:
| |
+----+----+----+----+----+----+
-The 32-byte Session Key is the identifier for the session.
+The 32-byte
+Session Key
+is the identifier for the session.
The 32-byte Pre-IV will be used to generate the IV for the AES block that follows;
the IV is the first 16 bytes of the SHA-256 Hash of the Pre-IV.
@@ -203,7 +205,10 @@ New Session Key: A 32-byte Sess
Payload: the data
-Padding: Random data to a multiple of 16 bytes for the total length
+Padding: Random data to a multiple of 16 bytes for the total length.
+ May contain more than the minimum required padding.
+
+Minimum length: 48 bytes
@@ -211,6 +216,16 @@ Padding: Random data to a multiple of 16 bytes for the total length
The data is then AES Encrypted,
using the session key and IV (calculated from the pre-IV) from the ElGamal section.
+Notes
+
+-
+ Actual max payload length, and max block length, is less than 64 KB; see theI2NP Overview.
+
-
+New Session Key is currently unused and is never present.
+
+
+
+
Existing Session Message Specification
The session tags delivered successfully are remembered for a
@@ -266,9 +281,14 @@ impact on overal performance.
-
Delivery of too many tags at one time may impose substantial overhead for brief streaming connections
or datagrams, and increase the chance of message loss.
+We currently deliver 40 tags at a time (1280 bytes).
+32 (1024 bytes) may be better for tunnel fragmentation.
-
A few tags could be delivered in each of several messages, or lots of tags all at once.
-
+It is also important to study and tune
+the low-tag thresholds at which more tags are sent.
+
-
The number of tags delivered could depend on message size, keeping in mind
the eventual padding to 1KB at the tunnel message layer.
-
@@ -283,8 +303,23 @@ there are tradeoffs for each strategy.
For very brief messages, almost the full 222 bytes of the pre-IV and padding fields in the ElGamal block
could be used for the entire message, instead of establishing a session.
-
+Evaluate padding strategy; currently we pad to a minimum of 128 bytes.
+Would be better to add a few tags to small messages than pad.
+
-
+Perhaps things could be more efficient if the Session Tag system was bidirectional,
+so tags delivered in the 'forward' path could be used in the 'reverse' path,
+thus avoiding ElGamal in the initial response.
+The router currently plays some tricks like this when sending
+tunnel test messages to itself.
+
-
Change from Session Tags to
a synchronized PRNG.
+
-
+Several of these ideas may require a new I2NP message type, or
+set a flag in the
+Delivery Instructions,
+or set a magic number in the first few bytes of the Session Key field
+and accept a small risk of the random Session Key matching the magic number.
diff --git a/www.i2p2/pages/how_garlicrouting.html b/www.i2p2/pages/how_garlicrouting.html
index 2984b2b6..6fba2314 100644
--- a/www.i2p2/pages/how_garlicrouting.html
+++ b/www.i2p2/pages/how_garlicrouting.html
@@ -75,7 +75,7 @@ perhaps it is not, by itself, enough to justify a change in terminology.
Another difference
-from the method described by Freedman with I2P's bundling
+from the method described by Freedman
is that the path is unidirectional - there is no "turning point" as seen in onion routing
or mixmaster reply blocks, which greatly simplifies the algorithm and allows for more flexible
and reliable delivery.
@@ -147,6 +147,9 @@ Delivery Instructions may specify a Destination, Router, or Tunnel.
Generally, a Garlic Message will contain only one clove.
However, the router will periodically bundle two additional
cloves in the Garlic Message:
+
+
+
-
A
diff --git a/www.i2p2/pages/how_tunnelrouting.html b/www.i2p2/pages/how_tunnelrouting.html
index fd720203..46dedeaf 100644
--- a/www.i2p2/pages/how_tunnelrouting.html
+++ b/www.i2p2/pages/how_tunnelrouting.html
@@ -183,7 +183,7 @@ Most applications use 2 or 3 hops as their default.
-
Tunnel testing
+Tunnel testing
All tunnels are periodically tested by their creator by sending a
DeliveryStatusMessage out an outbound tunnel and bound for another inbound tunnel
(testing both tunnels at once). If either fails a number of consecutive tests, it is marked as no longer
diff --git a/www.i2p2/pages/i2np_spec.html b/www.i2p2/pages/i2np_spec.html
index 05ec6695..273849fa 100644
--- a/www.i2p2/pages/i2np_spec.html
+++ b/www.i2p2/pages/i2np_spec.html
@@ -200,7 +200,7 @@ encrypted:
toPeer :: First 16 bytes of the SHA-256 Hash of the peer's router identity
length -> 16 bytes
-encrypted_data :: ElGamal-2048 encrypted data
+encrypted_data :: ElGamal-2048 encrypted data (see notes)
length -> 512
total length: 528
@@ -209,8 +209,14 @@ total length: 528
Notes
-
+
diff --git a/www.i2p2/pages/tunnel-alt-creation.html b/www.i2p2/pages/tunnel-alt-creation.html
index 2e955f4b..b029d0ae 100644
--- a/www.i2p2/pages/tunnel-alt-creation.html
+++ b/www.i2p2/pages/tunnel-alt-creation.html
@@ -60,7 +60,7 @@ Also specified in the
byte 184: flags
bytes 185-188: request time (in hours since the epoch)
bytes 189-192: next message ID
- bytes 193-222: uninterpreted / random padding
+ bytes 193-221: uninterpreted / random padding
The next tunnel ID and next router identity hash fields are used to
specify the next hop in the tunnel, though for an outbound tunnel
@@ -87,6 +87,11 @@ public encryption key and formatted into a 528 byte record:
bytes 0-15: First 16 bytes of the SHA-256 of the current hop's router identity
bytes 16-527: ElGamal-2048 encrypted request record
+In the 512-byte encrypted record,
+the ElGamal data contains bytes 1-256 and 258-513 of the
+514-byte ElGamal encrypted block.
+The two padding bytes from the block (the zero bytes at locations 0 and 257) are removed.
+
Since the cleartext uses the full field, there is no need for
additional padding beyond SHA256(cleartext) + cleartext
.
diff --git a/www.i2p2/static/images/garliccloves.png b/www.i2p2/static/images/garliccloves.png
new file mode 100644
index 0000000000000000000000000000000000000000..2a00a9d1eebd6d427f3e3f0222bd77f30056cd54
GIT binary patch
literal 70058
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 sqRh=DPfRw!S69gcU6_3uha
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%0DFR=08qI}kv*5u$Zz4;k8kE*>ATMbteow<
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 |