Rejection sampling of a translated uniform distribution #
Draw y uniformly from a finite set B of an additive group, shift it by v, and keep the
result only if it lands in an acceptance set S; otherwise output none (an abort). When
every accepted value z ∈ S has its preimage z - v in B, the output law does not depend on
v at all: the sampler accepts with probability exactly |S| / |B|, and given acceptance its
value is uniform on S (PMF.shiftReject_apply_some, PMF.shiftReject_apply_none). This is the
exact, finite form of the rejection-sampling lemma behind Lyubashevsky's identification scheme
and signatures ([Lyu09], [Lyu12]).
The box instance (PMF.boxReject) is the variant used in Dilithium ([DKL+18]):
y is uniform in the integer box [-γ, γ]^ι and the shift v has sup norm at most β ≤ γ.
The accepted values are then uniform on [-(γ - β), γ - β]^ι, the acceptance probability is
exactly ((2 (γ - β) + 1) / (2 γ + 1)) ^ |ι|, and the abort probability is at most
2 |ι| β / (2 γ + 1). Unlike the discrete-Gaussian version, every statement is exact.
Main definitions #
Cslib.Probability.intBox: integer vectors with every coordinate in[-γ, γ].Cslib.Probability.PMF.shiftReject: rejection sampling of a translate of a uniform set.Cslib.Probability.PMF.boxReject: its instance for integer boxes.
Main results #
Cslib.Probability.PMF.shiftReject_apply_some,Cslib.Probability.PMF.shiftReject_apply_none: the exact law, whatever the shift.Cslib.Probability.PMF.shiftReject_eq: the law does not depend on the shift.Cslib.Probability.PMF.boxReject_apply_some,Cslib.Probability.PMF.boxReject_apply_none,Cslib.Probability.PMF.boxReject_eq: the same for boxes.Cslib.Probability.PMF.boxReject_apply_none_le: the abort probability is at most2 |ι| β / (2 γ + 1).
References #
Integer boxes #
The integer vectors whose coordinates all lie in [-γ, γ], that is, of sup norm at most
γ.
Instances For
Membership in a box is decided coordinate by coordinate.
Every box contains the zero vector.
Every box is nonempty, so it supports a uniform distribution.
The box [-γ, γ]^ι has (2 γ + 1) ^ |ι| points.
Boxes grow with their radius.
Rejection sampling of a translate #
Rejection sampling of a translate: draw y uniformly from B, and output some (y + v)
when y + v lies in the acceptance set S, and none (an abort) otherwise.
Instances For
Accepted values lie in the acceptance set.
Rejection sampling, accepted values. If every accepted value z ∈ S comes from some
z - v ∈ B, then each z ∈ S is output with probability 1 / |B|, whatever the shift.
Rejection sampling, aborts. Under the same hypothesis, the sampler aborts with
probability exactly 1 - |S| / |B|, whatever the shift.
Rejection sampling lemma (exact form). Given acceptance, the output is uniform on S:
the probability of some z is the acceptance probability |S| / |B| times the uniform
probability of z in S.
The output law of rejection sampling is the same for all admissible shifts.
Rejection sampling in integer boxes #
Rejection sampling in integer boxes: draw y uniformly from [-γ, γ]^ι, and keep y + v
only when it lies in [-(γ - β), γ - β]^ι.
Instances For
Box rejection sampling, accepted values. If ‖v‖∞ ≤ β ≤ γ, the sampler accepts with
probability ((2 (γ - β) + 1) / (2 γ + 1)) ^ |ι|, and given acceptance its value is uniform
on [-(γ - β), γ - β]^ι, whatever v.
Box rejection sampling, aborts. If ‖v‖∞ ≤ β ≤ γ, the sampler aborts with probability
exactly 1 - ((2 (γ - β) + 1) / (2 γ + 1)) ^ |ι|.
Abort bound. If ‖v‖∞ ≤ β ≤ γ, the sampler aborts with probability at most
2 |ι| β / (2 γ + 1), by Bernoulli's inequality.