lsd0003

LSD0003: Set Union
Log | Files | Refs | README

commit 8117a472e3122e371b595ef68d6c89170a36070a
parent 4b67341d57bf93d247faf9ff173e19cf0a867962
Author: Elias Summermatter <elias.summermatter@seccom.ch>
Date:   Mon, 21 Dec 2020 16:24:55 +0100

Added some more description in set diff

Diffstat:
Mdraft-summermatter-set-union.xml | 26++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml @@ -160,7 +160,7 @@ </figure> </section> - <section anchor="ibv_operations" numbered="true" toc="default"> + <section anchor="ibf_operations" numbered="true" toc="default"> <name>Operations</name> <section anchor="ibv_operations_insert" numbered="true" toc="default"> <name>Insert Element</name> @@ -208,7 +208,7 @@ ]]></artwork> </figure> </section> - <section anchor="ibv_operations_remove" numbered="true" toc="default"> + <section anchor="ibf_operations_remove" numbered="true" toc="default"> <name>Remove Element</name> <t> To remove an element from the IBF the element is hashed with the same hash functions that it was @@ -242,7 +242,7 @@ ]]></artwork> </figure> </section> - <section anchor="ibv_operations_decode" numbered="true" toc="default"> + <section anchor="ibf_operations_decode" numbered="true" toc="default"> <name>Decode IBF</name> <t> To decode a IBF there are pure buckets needed, pure buckets are buckets where which contain only @@ -300,13 +300,23 @@ </figure> </section> <section anchor="ibv_operations_setdiff" numbered="true" toc="default"> - <name>Set difference</name> + <name>Set Difference</name> <t> - To calculate the difference between two sets. The two IBFs can be compared by XORing both IBFs and - subtracting counts on all buckets which results in a new IBF. This new IBF can then be decoded as described in the decoding section. + One of the most interesting capability of IBF's is the possibility to easily calculate the difference + between two IBF's. + To calculate the difference between two IBF's its only necessary to XOR the value of both IBF's bucket by bucket and + subtracting the counts which results in a new IBF with the same amount of buckets. + This new IBF can be decoded as described in section <xref target="ibf_operations_decode" format="counter" />. The new IBF can have two types of pure buckets with counter set to 1 or -1. If the counter is set to 1 - the element is missing in the second set and if the counter is set to -1 the element is missing in - the first set. + the element is missing in the secondary set and if the counter is set to -1 the element is missing in + the primary set. + </t> + <t> + Through this addition/subtraction its possible that a bucket seams pure but in reality isn't pure, + a falsely pure bucket. This case its easy to detect by checking if an element exist in either set, if + the element does not exist its a falsely pure bucket in this case continue test the + next pure bucket until one is found that is truly pure. If no truly pure buckets are found the IBF + fails to decode. </t> <t> To demonstrate the set difference operation we compare IBF-A with IBF-B and generate as described