| CPC G06F 16/2255 (2019.01) [H03M 7/702 (2013.01)] | 20 Claims |

|
1. A device, comprising:
one or more processors; and
one or more non-transitory computer readable media storing instructions which, when executed by the one or more processors, cause the one or more processors to:
obtain an allowed set comprising a first plurality of identifiers corresponding to a plurality of objects;
obtain, according to the allowed set and a total set of identifiers, a disallowed set comprising a second plurality of identifiers;
generate an initial bit array comprising a first value at each position of a plurality of positions in the initial bit array;
obtain a first set of index values corresponding to a subset of positions of the plurality of positions using the first plurality of identifiers and a first hash function of a plurality of hash functions;
set each of the subset of positions in the initial bit array to a second value to obtain an updated initial bit array;
perform a first collision check using the first hash function, the disallowed set, and the updated initial bit array to obtain a first bit array and a new allowed set comprising a subset of the identifiers of the allowed set;
obtain a new set of index values using the new allowed set and a new hash function of the plurality of hash functions;
set, using the new set of index values, a new subset of positions of a new initial bit array to the second value;
perform a second collision check using the disallowed set, the new hash function, and the new initial bit array to obtain a second bit array;
generate, when the second collision check results in no collisions, a data structure comprising the first bit array; and
compress the data structure to obtain a compressed data structure.
|