FuzzyExtractor¶
A Python implementation of fuzzy extractor
-
class
fuzzy_extractor.
FuzzyExtractor
(length, ham_err, rep_err=0.001, **locker_args)¶ The most basic non-interactive fuzzy extractor
-
__init__
(length, ham_err, rep_err=0.001, **locker_args)¶ Initializes a fuzzy extractor
Parameters: - length – The length in bytes of source values and keys.
- ham_err – Hamming error. The number of bits that can be flipped in the source value and still produce the same key with probability (1 - rep_err).
- rep_err – Reproduce error. The probability that a source value within ham_err will not produce the same key (default: 0.001).
- locker_args – Keyword arguments to pass to the underlying digital lockers. See parse_locker_args() for more details.
-
parse_locker_args
(hash_func='sha256', sec_len=2, nonce_len=16)¶ Parse arguments for digital lockers
Parameters: - hash_func – The hash function to use for the digital locker (default: sha256).
- sec_len – security parameter. This is used to determine if the locker is unlocked successfully with accuracy (1 - 2 ^ -sec_len).
- nonce_len – Length in bytes of nonce (salt) used in digital locker (default: 16).
-
generate
(value)¶ Takes a source value and produces a key and public helper
This method should be used once at enrollment.
Note that the “public helper” is actually a tuple. This whole tuple should be passed as the helpers argument to reproduce().
Parameters: value – the value to generate a key and public helper for. Return type: (key, helper)
-
reproduce
(value, helpers)¶ Takes a source value and a public helper and produces a key
Given a helper value that matches and a source value that is close to those produced by generate, the same key will be produced.
Parameters: - value – the value to reproduce a key for.
- helpers – the previously generated public helper.
Return type: key or None
-