Software Developer Education - Applying Bloom Filters to Large, Real World Problems
Author(s)
R. Brad, Tilley
Advisor(s)
Editor(s)
Collections
Supplementary to:
Permanent Link
Abstract
In June 2017, The National Institute of Science and Technology
(NIST) Special Publication 800-63-3b [12] established
new guidelines with regard to how organizations should vet
user passwords. Rather than composition policies that require
a certain number of character sets, NIST now recommends
that organizations check passwords against a list of banned
passwords and reject those found on the list. As of July 2018,
the ’Have I Been Pwned’ list of known compromised passwords,
alone, numbers more than half a billion strings [8] and
this number is expected to grow larger as more online sites
are compromised. This creates space and time efficiency challenges
for software developers. A bloom filter [3], as described
by Burton H. Bloom in his 1970 paper entitled, "Space/Time
Trade-offs in Hash Coding with Allowable Errors", would be
an efficient data structure to solve this problem. However,
while software developers are very familiar with technologies
and data structures such as relational databases, arrays, lists,
trees and hash tables, they are not as familiar with less common,
more abstract data structures. This work is intended to
help software developers understand the complexity of lesser
known data structures, such as bloom filters, and determine
how and when to use them to solve large, real world problems.
Sponsor
Date
2018
Extent
Resource Type
Text
Resource Subtype
Technical Report