The encrypted-link reduction algorithms #
The reduction embeds the challenge public key immediately after a freshly generated predecessor key. It saves only keys it generated itself, the challenge public key, and the selected bit index. Its guessing stage replaces the unknown target secret by a zero word of the predecessor secret's length and runs the actual boundary-link splicing sampler.
The target key's outgoing link is already zeroed. Fixed supported secret-key length will justify the substitution in the separate game proof; neither that hypothesis nor a security conclusion is built into these algorithms. Random link selection runs from the end of the chain towards its beginning. Dyadic padding coordinates reject, and decoding is total on every saved word.
Main definitions #
Cslib.Crypto.Homomorphic.Scheme.LinkState: the explicitly encoded simulation context.Cslib.Crypto.Homomorphic.Scheme.chooseLinkAt: generate the known keys and challenge messages.Cslib.Crypto.Homomorphic.Scheme.guessLink: splice the challenge into the public artifact.Cslib.Crypto.Homomorphic.Scheme.linkAdversaryAt: the reduction at supplied index families.Cslib.Crypto.Homomorphic.Scheme.linkAdversary: select link and bit indices uniformly.
Main results #
Cslib.Crypto.Homomorphic.Scheme.guessLink_active: the exact response to an encoded context.Cslib.Crypto.Homomorphic.Scheme.guessLink_reject: a rejected coordinate always returns false.
References #
Active flag, earlier keys, predecessor, challenge public key, later keys, and unary bit index. Every saved secret belongs to a key generated by the reduction itself.
Instances For
Total saved-state parsing, reusing the standard component decoders.
Instances For
A fixed inactive saved state.
Instances For
Sample every known key before choosing the predecessor's selected bit against zero. Out-of-range bit indices return the fixed reject state.
Instances For
Decode the saved state and run the actual public-artifact test. The replacement secret is used only to supply the already-zeroed outgoing link's length.
Instances For
An encoded active context executes the concrete splicing sampler and exposes only public keys and encrypted links to the test.
Select a reverse link index and a bit index with exact dyadic samplers. Padding link
indices reject immediately; padding bit indices are rejected by chooseLinkAt.