gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lsd0001] branch master updated: add technical detail revocation


From: gnunet
Subject: [lsd0001] branch master updated: add technical detail revocation
Date: Sun, 16 Feb 2020 17:20:33 +0100

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 1e6eb27  add technical detail revocation
1e6eb27 is described below

commit 1e6eb27cffc88f5ad7bc9e89a7c13b8f90ec881f
Author: Martin Schanzenbach <address@hidden>
AuthorDate: Sun Feb 16 17:16:34 2020 +0100

    add technical detail revocation
---
 draft-schanzen-gns.html |  70 ++++++++++++++----
 draft-schanzen-gns.txt  | 192 ++++++++++++++++++++++++------------------------
 draft-schanzen-gns.xml  |  44 +++++++++--
 3 files changed, 188 insertions(+), 118 deletions(-)

diff --git a/draft-schanzen-gns.html b/draft-schanzen-gns.html
index 308aeac..327748c 100644
--- a/draft-schanzen-gns.html
+++ b/draft-schanzen-gns.html
@@ -2060,8 +2060,10 @@ table {
          Cipher FeedBack (CFB) mode <span>[<a href="#RFC3826" 
class="xref">RFC3826</a>]</span>.<a href="#section-4.3-11" 
class="pilcrow">¶</a></p>
 <div class="artwork art-text alignLeft" id="section-4.3-12">
 <pre>
-         RDATA := AES(AES KEY, AES IV, TWOFISH(TWOFISH KEY, TWOFISH IV, BDATA))
-         BDATA := TWOFISH(TWOFISH KEY, TWOFISH IV, AES(AES KEY, AES IV, RDATA))
+         RDATA := AES(K[0:31], IV[0:15],
+                      TWOFISH(K[32:63], IV[16:31], BDATA))
+         BDATA := TWOFISH(K[32:63], IV[16:31],
+                          AES(K[0:31], IV[0:15], RDATA))
          </pre><a href="#section-4.3-12" class="pilcrow">¶</a>
 </div>
 </section>
@@ -2404,31 +2406,69 @@ table {
 </div>
 <p id="section-7-5">
          A single pass in the proof-of-work algorithm is defined as follows:<a 
href="#section-7-5" class="pilcrow">¶</a></p>
+<ol start="1" type="1" class="normal" id="section-7-6">
+        <li id="section-7-6.1">Derive initial key material K from the REV 
data.<a href="#section-7-6.1" class="pilcrow">¶</a>
+</li>
+<li id="section-7-6.2">Derive IV material from the key material K.<a 
href="#section-7-6.2" class="pilcrow">¶</a>
+</li>
+<li id="section-7-6.3">Encrypt the REV data using K and IV.<a 
href="#section-7-6.3" class="pilcrow">¶</a>
+</li>
+<li id="section-7-6.4">Derive the proof of work from the encrypted REV.<a 
href="#section-7-6.4" class="pilcrow">¶</a>
+</li>
+</ol>
 <figure id="figure-16">
-        <div class="artwork art-text alignLeft" id="section-7-6.1">
+        <div class="artwork art-text alignLeft" id="section-7-7.1">
 <pre>
-         DK := scrypt (P := REV)
-         IV := IVderive (salt="gnunet-revocation-proof-of-work", 
"gnunet-proof-of-work-iv", DK)
-         EREV := AES (DK, IV, REV) /* TODO this is more complex */
-         REVDATA := scrypt(P := enc)
+         K := scrypt (P := REV)
          </pre>
 </div>
 <figcaption><a href="#figure-16" class="selfRef">Figure 
16</a></figcaption></figure>
-<p id="section-7-7">
+<figure id="figure-17">
+        <div class="artwork art-text alignLeft" id="section-7-8.1">
+<pre>
+           PRK_aes := HKDF-Extract ("gnunet-proof-of-work-ivAES!",
+                                    K[0,31])
+           PRK_two := HKDF-Extract ("gnunet-proof-of-work-ivFISH",
+                                    K[32,63])
+           IV_aes := HKDF-Expand (PRK_aes,
+                                  "gnunet-revocation-proof-of-work",
+                                  128 / 8);
+           IV_two := HKDF-Expand (PRK_two,
+                                  "gnunet-revocation-proof-of-work,
+                                  128 / 8)
+         </pre>
+</div>
+<figcaption><a href="#figure-17" class="selfRef">Figure 
17</a></figcaption></figure>
+<figure id="figure-18">
+        <div class="artwork art-text alignLeft" id="section-7-9.1">
+<pre>
+           EREV := TWOFISH(K[0:31], IV_two,
+                           AES(K[32:63], IV_aes, REV))
+         </pre>
+</div>
+<figcaption><a href="#figure-18" class="selfRef">Figure 
18</a></figcaption></figure>
+<figure id="figure-19">
+        <div class="artwork art-text alignLeft" id="section-7-10.1">
+<pre>
+         REVDATA := scrypt(P := EREV)
+         </pre>
+</div>
+<figcaption><a href="#figure-19" class="selfRef">Figure 
19</a></figcaption></figure>
+<p id="section-7-11">
        where "scrypt" is the scrypt algorithm as defined in
-       <span>[<a href="#RFC7914" class="xref">RFC7914</a>]</span> with the 
following parameters set:<a href="#section-7-7" class="pilcrow">¶</a></p>
-<div class="artwork art-text alignLeft" id="section-7-8">
+       <span>[<a href="#RFC7914" class="xref">RFC7914</a>]</span> with the 
following parameters set:<a href="#section-7-11" class="pilcrow">¶</a></p>
+<div class="artwork art-text alignLeft" id="section-7-12">
 <pre>
          S := "gnunet-revocation-proof-of-work" /* Salt */
          N := 2
          r := 8 /* Block size */
          p := 2 /* Parallelization parameter */
          dkLen := 512 /* Intended output length */
-         </pre><a href="#section-7-8" class="pilcrow">¶</a>
+         </pre><a href="#section-7-12" class="pilcrow">¶</a>
 </div>
-<p id="section-7-9">
+<p id="section-7-13">
        The above function is called with different values for the "NONCE" in
-       "REVDAT" until the amount of leading zeroes is greater or equal 25.<a 
href="#section-7-9" class="pilcrow">¶</a></p>
+       "REV" until the amount of leading zeroes is greater or equal 25.<a 
href="#section-7-13" class="pilcrow">¶</a></p>
 </section>
 </div>
 <div id="governance">
@@ -2551,7 +2591,7 @@ The registry shall record for each entry:<a 
href="#section-10-1" class="pilcrow"
          Served", as described in <span>[<a href="#RFC8126" 
class="xref">RFC8126</a>]</span>.
          IANA is requested to populate this registry as follows:<a 
href="#section-10-3" class="pilcrow">¶</a></p>
 <div id="figure_rrtypenums">
-<figure id="figure-17">
+<figure id="figure-20">
         <div class="artwork art-text alignLeft" id="section-10-4.1">
 <pre>
            Number   | Type            | Contact | References
@@ -2565,7 +2605,7 @@ The registry shall record for each entry:<a 
href="#section-10-1" class="pilcrow"
            FIXME We have a lot more?
            </pre>
 </div>
-<figcaption><a href="#figure-17" class="selfRef">Figure 
17</a></figcaption></figure>
+<figcaption><a href="#figure-20" class="selfRef">Figure 
20</a></figcaption></figure>
 </div>
 </section>
 </div>
diff --git a/draft-schanzen-gns.txt b/draft-schanzen-gns.txt
index 437156a..a8a9c84 100644
--- a/draft-schanzen-gns.txt
+++ b/draft-schanzen-gns.txt
@@ -87,10 +87,10 @@ Table of Contents
    7.  Zone Revocation . . . . . . . . . . . . . . . . . . . . . . .  19
    8.  Determining the Root Zone and Zone Governance . . . . . . . .  21
    9.  Security Considerations . . . . . . . . . . . . . . . . . . .  22
-   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  22
+   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  23
    11. Test Vectors  . . . . . . . . . . . . . . . . . . . . . . . .  23
    12. Normative References  . . . . . . . . . . . . . . . . . . . .  25
-   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  26
+   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  27
 
 1.  Introduction
 
@@ -804,8 +804,10 @@ Internet-Draft             The GNU Name System             
November 2019
    chained symmetric cipher.  Both ciphers are used in Cipher FeedBack
    (CFB) mode [RFC3826].
 
-            RDATA := AES(AES KEY, AES IV, TWOFISH(TWOFISH KEY, TWOFISH IV, 
BDATA))
-            BDATA := TWOFISH(TWOFISH KEY, TWOFISH IV, AES(AES KEY, AES IV, 
RDATA))
+            RDATA := AES(K[0:31], IV[0:15],
+                         TWOFISH(K[32:63], IV[16:31], BDATA))
+            BDATA := TWOFISH(K[32:63], IV[16:31],
+                             AES(K[0:31], IV[0:15], RDATA))
 
 5.  Internationalization and Character Encoding
 
@@ -835,8 +837,6 @@ Internet-Draft             The GNU Name System             
November 2019
 
 
 
-
-
 Schanzenbach, et al.       Expires 13 May 2020                 [Page 15]
 
 Internet-Draft             The GNU Name System             November 2019
@@ -1090,37 +1090,58 @@ Internet-Draft             The GNU Name System          
   November 2019
 
    A single pass in the proof-of-work algorithm is defined as follows:
 
-            DK := scrypt (P := REV)
-            IV := IVderive (salt="gnunet-revocation-proof-of-work", 
"gnunet-proof-of-work-iv", DK)
-            EREV := AES (DK, IV, REV) /* TODO this is more complex */
-            REVDATA := scrypt(P := enc)
+   1.  Derive initial key material K from the REV data.
+
+   2.  Derive IV material from the key material K.
+
+   3.  Encrypt the REV data using K and IV.
+
+   4.  Derive the proof of work from the encrypted REV.
+
+            K := scrypt (P := REV)
 
                                  Figure 16
 
-   where "scrypt" is the scrypt algorithm as defined in [RFC7914] with
-   the following parameters set:
+              PRK_aes := HKDF-Extract ("gnunet-proof-of-work-ivAES!",
+                                       K[0,31])
+              PRK_two := HKDF-Extract ("gnunet-proof-of-work-ivFISH",
+                                       K[32,63])
+              IV_aes := HKDF-Expand (PRK_aes,
+                                     "gnunet-revocation-proof-of-work",
+                                     128 / 8);
+              IV_two := HKDF-Expand (PRK_two,
+                                     "gnunet-revocation-proof-of-work,
+                                     128 / 8)
 
-            S := "gnunet-revocation-proof-of-work" /* Salt */
-            N := 2
-            r := 8 /* Block size */
-            p := 2 /* Parallelization parameter */
-            dkLen := 512 /* Intended output length */
+                                 Figure 17
 
-   The above function is called with different values for the "NONCE" in
-   "REVDAT" until the amount of leading zeroes is greater or equal 25.
 
 
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 20]
+
+Internet-Draft             The GNU Name System             November 2019
 
 
+              EREV := TWOFISH(K[0:31], IV_two,
+                              AES(K[32:63], IV_aes, REV))
 
+                                 Figure 18
 
+            REVDATA := scrypt(P := EREV)
 
+                                 Figure 19
 
+   where "scrypt" is the scrypt algorithm as defined in [RFC7914] with
+   the following parameters set:
 
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 20]
-
-Internet-Draft             The GNU Name System             November 2019
+            S := "gnunet-revocation-proof-of-work" /* Salt */
+            N := 2
+            r := 8 /* Block size */
+            p := 2 /* Parallelization parameter */
+            dkLen := 512 /* Intended output length */
 
+   The above function is called with different values for the "NONCE" in
+   "REV" until the amount of leading zeroes is greater or equal 25.
 
 8.  Determining the Root Zone and Zone Governance
 
@@ -1148,6 +1169,15 @@ Internet-Draft             The GNU Name System           
  November 2019
 
    GNS clients SHOULD first try to interpret the top-level domain of a
    GNS name as a zone key.  For example. if the top-level domain is a
+
+
+
+
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 21]
+
+Internet-Draft             The GNU Name System             November 2019
+
+
    Base32-encoded public zone key "zk", the root zone of the resolution
    process is implicitly given by the name:
 
@@ -1170,14 +1200,6 @@ Internet-Draft             The GNU Name System           
  November 2019
             => Entry zone: zk1
             => Name to resolve from entry zone: www.example
 
-
-
-
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 21]
-
-Internet-Draft             The GNU Name System             November 2019
-
-
    Finally, additional "suffix to zone" mappings MAY be configured.
    Suffix to zone key mappings SHOULD be configurable through a local
    configuration file or database by the user or system administrator.
@@ -1201,6 +1223,17 @@ Internet-Draft             The GNU Name System           
  November 2019
 
    TODO
 
+
+
+
+
+
+
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 22]
+
+Internet-Draft             The GNU Name System             November 2019
+
+
 10.  IANA Considerations
 
    IANA is requested to create an "GNU Name System Record Type"
@@ -1221,19 +1254,6 @@ Internet-Draft             The GNU Name System           
  November 2019
    Served", as described in [RFC8126].  IANA is requested to populate
    this registry as follows:
 
-
-
-
-
-
-
-
-
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 22]
-
-Internet-Draft             The GNU Name System             November 2019
-
-
               Number   | Type            | Contact | References
               ---------+-----------------+---------+---------
               65536    | PKEY            | N/A     | [This.I-D]
@@ -1244,7 +1264,7 @@ Internet-Draft             The GNU Name System            
 November 2019
               65541    | BOX             | N/A     | [This.I-D]
               FIXME We have a lot more?
 
-                                 Figure 17
+                                 Figure 20
 
 11.  Test Vectors
 
@@ -1262,6 +1282,14 @@ Internet-Draft             The GNU Name System           
  November 2019
             zk (public zone key) :=
             dff911496d025d7e
             0885c03d19153e99
+
+
+
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 23]
+
+Internet-Draft             The GNU Name System             November 2019
+
+
             4f213f23ea719eca
             17fc32dc410e082e
 
@@ -1282,14 +1310,6 @@ Internet-Draft             The GNU Name System           
  November 2019
             0017c802f7d32e18
 
             q (query key) :=
-
-
-
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 23]
-
-Internet-Draft             The GNU Name System             November 2019
-
-
             6fce4deddc5ad681
             f4e29a3310767e3b
             8b38bc1b276ce2ba
@@ -1319,6 +1339,13 @@ Internet-Draft             The GNU Name System           
  November 2019
             071be189a9d236f9
             b4a3654bb8c281d4
 
+
+
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 24]
+
+Internet-Draft             The GNU Name System             November 2019
+
+
             RDATA :=
             0000000100059412 RR COUNT | EXPIRA-
             09ddea0f00000014  -TION    | DATA SIZE (20)
@@ -1338,14 +1365,6 @@ Internet-Draft             The GNU Name System           
  November 2019
             afc99ba9c5a3bb54
             07e731a34680ee33
             ae0de7bfeda7d2b7
-
-
-
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 24]
-
-Internet-Draft             The GNU Name System             November 2019
-
-
             8c6b854a008b1b54
             10df4f39f5ba9f46____________
             8cb514a56c0eaae0 zk_h
@@ -1374,6 +1393,15 @@ Internet-Draft             The GNU Name System           
  November 2019
               specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
               November 1987, <https://www.rfc-editor.org/info/rfc1035>.
 
+
+
+
+
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 25]
+
+Internet-Draft             The GNU Name System             November 2019
+
+
    [RFC2782]  Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for
               specifying the location of services (DNS SRV)", RFC 2782,
               DOI 10.17487/RFC2782, February 2000,
@@ -1394,14 +1422,6 @@ Internet-Draft             The GNU Name System           
  November 2019
               DOI 10.17487/RFC3826, June 2004,
               <https://www.rfc-editor.org/info/rfc3826>.
 
-
-
-
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 25]
-
-Internet-Draft             The GNU Name System             November 2019
-
-
    [RFC5869]  Krawczyk, H. and P. Eronen, "HMAC-based Extract-and-Expand
               Key Derivation Function (HKDF)", RFC 5869,
               DOI 10.17487/RFC5869, May 2010,
@@ -1430,6 +1450,14 @@ Internet-Draft             The GNU Name System           
  November 2019
               for Security", RFC 7748, DOI 10.17487/RFC7748, January
               2016, <https://www.rfc-editor.org/info/rfc7748>.
 
+
+
+
+Schanzenbach, et al.       Expires 13 May 2020                 [Page 26]
+
+Internet-Draft             The GNU Name System             November 2019
+
+
    [RFC8032]  Josefsson, S. and I. Liusvaara, "Edwards-Curve Digital
               Signature Algorithm (EdDSA)", RFC 8032,
               DOI 10.17487/RFC8032, January 2017,
@@ -1449,15 +1477,6 @@ Internet-Draft             The GNU Name System           
  November 2019
 
 Authors' Addresses
 
-
-
-
-
-Schanzenbach, et al.       Expires 13 May 2020                 [Page 26]
-
-Internet-Draft             The GNU Name System             November 2019
-
-
    Martin Schanzenbach
    GNUnet e.V.
    Boltzmannstrasse 3
@@ -1488,25 +1507,6 @@ Internet-Draft             The GNU Name System           
  November 2019
 
 
 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 Schanzenbach, et al.       Expires 13 May 2020                 [Page 27]
diff --git a/draft-schanzen-gns.xml b/draft-schanzen-gns.xml
index ef0badb..08fb60d 100644
--- a/draft-schanzen-gns.xml
+++ b/draft-schanzen-gns.xml
@@ -834,8 +834,10 @@
          Cipher FeedBack (CFB) mode <xref target="RFC3826" />.
        </t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
-         RDATA := AES(AES KEY, AES IV, TWOFISH(TWOFISH KEY, TWOFISH IV, BDATA))
-         BDATA := TWOFISH(TWOFISH KEY, TWOFISH IV, AES(AES KEY, AES IV, RDATA))
+         RDATA := AES(K[0:31], IV[0:15],
+                      TWOFISH(K[32:63], IV[16:31], BDATA))
+         BDATA := TWOFISH(K[32:63], IV[16:31],
+                          AES(K[0:31], IV[0:15], RDATA))
          ]]></artwork>
      </section>
    </section>
@@ -1152,12 +1154,40 @@
        <t>
          A single pass in the proof-of-work algorithm is defined as follows:
        </t>
+       <ol>
+         <li>Derive initial key material K from the REV data.</li>
+         <li>Derive IV material from the key material K.</li>
+         <li>Encrypt the REV data using K and IV.</li>
+         <li>Derive the proof of work from the encrypted REV.</li>
+       </ol>
        <figure>
        <artwork name="" type="" align="left" alt=""><![CDATA[
-         DK := scrypt (P := REV)
-         IV := IVderive (salt="gnunet-revocation-proof-of-work", 
"gnunet-proof-of-work-iv", DK)
-         EREV := AES (DK, IV, REV) /* TODO this is more complex */
-         REVDATA := scrypt(P := enc)
+         K := scrypt (P := REV)
+         ]]></artwork>
+       </figure>
+       <figure>
+         <artwork name="" type="" align="left" alt=""><![CDATA[
+           PRK_aes := HKDF-Extract ("gnunet-proof-of-work-ivAES!",
+                                    K[0,31])
+           PRK_two := HKDF-Extract ("gnunet-proof-of-work-ivFISH",
+                                    K[32,63])
+           IV_aes := HKDF-Expand (PRK_aes,
+                                  "gnunet-revocation-proof-of-work",
+                                  128 / 8);
+           IV_two := HKDF-Expand (PRK_two,
+                                  "gnunet-revocation-proof-of-work,
+                                  128 / 8)
+         ]]></artwork>
+       </figure>
+       <figure>
+         <artwork name="" type="" align="left" alt=""><![CDATA[
+           EREV := TWOFISH(K[0:31], IV_two,
+                           AES(K[32:63], IV_aes, REV))
+         ]]></artwork>
+       </figure>
+       <figure>
+       <artwork name="" type="" align="left" alt=""><![CDATA[
+         REVDATA := scrypt(P := EREV)
          ]]></artwork>
         </figure>
      <t>
@@ -1173,7 +1203,7 @@
          ]]></artwork>
      <t>
        The above function is called with different values for the "NONCE" in
-       "REVDAT" until the amount of leading zeroes is greater or equal 25.
+       "REV" until the amount of leading zeroes is greater or equal 25.
      </t>
      </section>
      <section anchor="governance" numbered="true" toc="default">

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]