gnunet-svn
[Top][All Lists]
Advanced

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

[lsd0003] branch master updated: Fixed some more stuff


From: gnunet
Subject: [lsd0003] branch master updated: Fixed some more stuff
Date: Thu, 21 Jan 2021 16:29:58 +0100

This is an automated email from the git hooks/post-receive script.

elias-summermatter pushed a commit to branch master
in repository lsd0003.

The following commit(s) were added to refs/heads/master by this push:
     new 05b35b4  Fixed some more stuff
05b35b4 is described below

commit 05b35b44d9de5b5c535d3e46652734c048674d48
Author: Elias Summermatter <elias.summermatter@seccom.ch>
AuthorDate: Thu Jan 21 16:28:54 2021 +0100

    Fixed some more stuff
---
 draft-summermatter-set-union.xml | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml
index 869596c..1eb7a0d 100644
--- a/draft-summermatter-set-union.xml
+++ b/draft-summermatter-set-union.xml
@@ -1166,14 +1166,24 @@ hashSum |    0x0101   |    0x0101   |    0x5050   |     
0000    |
                                 Its important that the elements can be 
redistributed over the buckets in case the IBF does not
                                 decode, that's why the ID is salted with a 
random salt given in the SALT field of this message.
                                 Salting is done by calculation the a random 
salt modulo 64 (using only the lowest 6-bits of the salt)
-                                and do a bitwise right rotation of output of 
KDF by the 6-bit salts numeric representation.
+                                and do a bitwise right rotation of output of 
KDF by the 6-bit salts numeric representation. To
+                                get the IDSUM field all IDs who hit a bucket 
are added up with a binary XOR operation.
                             </t>
                             <t>
                                 The HASH is calculated by calculating the 
CRC32 checksum of the 64-bit ID value
-                                which returns a 32-bit value. This is 
calculated modulo the count of buckets to
-                                ensure that it is a valid bucket index. Create 
a new 64-bit value by shifting the 32-bit
-                                value left and setting the lower 32-bit....
+                                which returns a 32-bit value. To get the 
HASHSUM field all IDs are added
+                                up with a binary XOR operation.
 
+                            </t>
+                            <t>
+                                To decide in which buckets the ID and HASH 
have to be added up there is the following
+                                algorithm used: The first index is simply the 
HASH modulo the IBF size. The second
+                                index is calculated by creating a new 64-bit 
value by shifting the 32-bit
+                                value left and setting the lower 32-bit to the 
number of indexes already processed. From the
+                                resulting 64-bit value a CRC32 checksum is 
created the second index is now the modulo of the
+                                CRC32 output this is repeated until the 
predefined amount indexes is generated.
+                                In the case a index is hit twice, which would 
mean this bucket could not get pure again,
+                                the second hit is just skipped and the next 
iteration is used as.
 
                                 <!-- @Christian: I dont have a clue how this 
is done... The code is very hard to read can you explain the
                                  salt_key function in 
gnunet-service-set_union.c file

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

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