[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [lsd0001] branch master updated: more crypto
From: |
gnunet |
Subject: |
[GNUnet-SVN] [lsd0001] branch master updated: more crypto |
Date: |
Mon, 09 Sep 2019 22:27:03 +0200 |
This is an automated email from the git hooks/post-receive script.
martin-schanzenbach pushed a commit to branch master
in repository lsd0001.
The following commit(s) were added to refs/heads/master by this push:
new 8487495 more crypto
8487495 is described below
commit 84874958e6f66485f4912ad4274daf5d7ce85a6e
Author: Schanzenbach, Martin <address@hidden>
AuthorDate: Mon Sep 9 22:25:12 2019 +0200
more crypto
---
draft-schanzen-gns.xml | 44 ++++++++++++++++++++++++++++++++++----------
1 file changed, 34 insertions(+), 10 deletions(-)
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index 0f7edb7..07ed475 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -108,30 +108,35 @@
<t>
Given a GNS record block a symmetric encryption scheme is used to
en-/decrypt "BDATA". The keys are derived from the record label "l"
- and the public key "P". Both "l" and "P" are implicity known by the
- GNS resolver. The key material "K" is derived as follows:
+ and a public key "dG", where "d" is an ECDSA private key and "G"
+ is a EC generator. "d" and "dG" are derived from the public/private
+ key pair "x,P" of a GNS zone.
+ Both "l" and "P" are implicity known by the GNS resolver.
+ The key material "K" and initialization vector "IV"
+ are derived as follows:
</t>
<artwork name="" type="" align="left" alt=""><![CDATA[
h := SHA512 (l,P)
d := h*x mod n
- K := HKDF (P,l)
+ K := HKDF (dG,l,"gns-aes-ctx-key")
+ IV := HKDF (dG,l,"gns-aes-ctx-iv")
]]></artwork>
<t>
"HKDF" is a hash-based key derivation function as defined in
<xref target="RFC5869" />. For the XTR, we use HMAC-SHA512 and
- HMAC-SHA256 in PRF as proposed in (paper). Using this HKDF, we
- derive two symmetric 256-bit keys "Ka,Kt" from "K":
+ HMAC-SHA256 in PRF as proposed in (paper). We divide "K" into a
+ 256-bit AES key "Kaes" and a 256-bit TWOFISH key "Ktwo".
</t>
<figure anchor="figure_hddf_keys">
<artwork name="" type="" align="left" alt=""><![CDATA[
0 8 16 24 32 40 48 56
+-----+-----+-----+-----+-----+-----+-----+-----+
- | AES KEY |
+ | AES KEY (Kaes) |
| |
| |
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
- | TWOFISH KEY |
+ | TWOFISH KEY (Ktwo) |
| |
| |
| |
@@ -139,12 +144,31 @@
]]></artwork>
<!-- <postamble>which is a very simple example.</postamble>-->
</figure>
+ <t>
+ Similarly, we divide "IV" into a 128-bit initialization vector IVaes
+ and a 128-bit initialization vector IVtwo:
+ </t>
+ <figure anchor="figure_hddf_keys">
+ <artwork name="" type="" align="left" alt=""><![CDATA[
+ 0 8 16 24 32 40 48 56
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | AES IV (IVaes) |
+ | |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ | TWOFISH IV (IVtwo) |
+ | |
+ +-----+-----+-----+-----+-----+-----+-----+-----+
+ ]]></artwork>
+ <!-- <postamble>which is a very simple example.</postamble>-->
+ </figure>
<t>
- The two symmetric keys are used for a AES+TWOFISH combined cipher:
+ The symmetric keys and IVs are used for a AES+TWOFISH combined
+ cipher. Both ciphers are used in CFB (ref) mode.
</t>
<artwork name="" type="" align="left" alt=""><![CDATA[
- RDATA := TWOFISH256(Kt, AES256(Ka, BDATA))
+ RDATA := AES256(Kaes, IVaes, TWOFISH256(Ktwo, IVtwo, BDATA))
+ BDATA := TWOFISH256(Ktwo, IVtwo, AES256(Kaes, IVaes, RDATA))
]]></artwork>
</section>
@@ -163,7 +187,7 @@
| |
| |
+-----+-----+-----+-----+-----+-----+-----+-----+
- | RDATA SIZE | TYPE |
+ | DATA SIZE | TYPE |
+-----+-----+-----+-----+-----+-----+-----+-----+
| FLAGS | DATA |
+-----+-----+-----+-----+ |
--
To stop receiving notification emails like this one, please contact
address@hidden.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [lsd0001] branch master updated: more crypto,
gnunet <=