I refer to Canetti et all, "Reusable Fuzzy Extractors for Low-Entropy Distributions", available here.
Paraphrasing the relevant part from §3:-
The locking algorithm $lock(key,val)$ outputs the pair $nonce,H(nonce,key) \oplus (val||0^s)$, where H is a cryptographic hash function, nonce is a nonce, ||denotes concatenation, and s is a security parameter.
s creates a certainty of $1−2^{−s}$ that the unlocking was successful. Surely there must be some relationship omitted from the paper between s, |(nonce,key)| and |val| for the XOR operation to be useful. It has the smell of HMAC about it.
How can what appears to be padding with s zeros help prove that the locker was correctly opened? Is it some strange mathematical way to simply guarantee the bit length of (nonce + key)?
Note. My confusion is increased by the fact that the nonce output from the lock function does not seem to be an input for the unlock function.