From cc73546624d723535ac90fe2e293a7e08b2c1fc6 Mon Sep 17 00:00:00 2001 From: Elias Summermatter Date: Wed, 16 Jun 2021 01:46:31 +0200 Subject: Fixed some more stuff in the IBF --- draft-summermatter-set-union.xml | 208 +++++++++------------------------------ 1 file changed, 49 insertions(+), 159 deletions(-) diff --git a/draft-summermatter-set-union.xml b/draft-summermatter-set-union.xml index df08f7a..95f94a2 100644 --- a/draft-summermatter-set-union.xml +++ b/draft-summermatter-set-union.xml @@ -2537,155 +2537,25 @@ peers set +---------+ +---------+ +---------+ ===>: Always answer needed. ]]> + - A possible implementation of the check in pseudocode could look as follows: + In the message control flow its important to ensure that no duplicated message are received + (Except inquiries where collisions are possible) and only messages are received which are compliant + with the flow in . + To link messages the SHA-512 element hashes that are part of all messages except in the + message can be used. + To link an message to an + message + the SHA-512 hash from the offer has to be salted and converted to the IBF-Key (as described in + ) this then can + be matched against the received message. -
- -
+ + In the end of the set reconciliation operation after receiving and sending the + message it should be checked + that all demands have been satisfied and all elements have been received. + + This is based on , section 5.3 (Message Control Flow). @@ -2873,6 +2743,21 @@ END FUNCTION abort the protocol if its resource limits are likely to be exceeded, or if the size is implausible for the given operation. + + + + It needs to be checked that that the offset (message field "OFFSET") + for every received message + is strictly monotonic increasing and is a multiple of the MAX_BUCKETS_PER_MESSAGE + defined in the section otherwise the + connection MUST be aborted. + + + An other sanity check is to ensure that the "OFFSET" message field never + is a higher than the "IBF SIZE" field in the + message. + +
@@ -2882,19 +2767,24 @@ END FUNCTION should conclude the transmission of the IBF and a change to the Active Decoding phase should be ensured. + + + + To verify that all IBFs have been received a simple validation can be made + the number of buckets in the message + added to the value in the message OFFSET field should always be equal to the "IBF SIZE". + + + Further plausibility checks can be made. One is to ensure that after each active/passive + switch the IBF can never more than double in size. An other plausibility check is + is that an IBF probably never will be bigger than the byzantine upperbound multiplied by two. + The third plausibility check is to take successfully decoded IBF keys (received offers and demands) + into account and validating the size of the received IBF with the in + described function get_next_ibf_size(). If any of these three checks fail the operation + must be aborted. + +
- -- cgit v1.2.3