Short answer
If the two moduli come from the same prime and one field is a subfield of the other (GF(p^m) ⊆ GF(p^k) with m | k), then conversion is trivial and non‑interactive: just re‑interpret the shares in the larger field.
In all other cases (different primes, no subfield relation, or rings Zp vs Zq), there is no purely local, linear, black‑box way to convert an LSSS sharing over Zp (or GF(p^m)) into an LSSS sharing over Zq that preserves the secret for all inputs. You need interaction and some correlated randomness. A standard, perfectly secure way uses one public opening of a masked value and a single secure comparison bit to correct wraparound.
A general perfectly secure conversion protocol
Goal: given an LSSS sharing of x ∈ {0,…,p−1} modulo p, produce an LSSS sharing of the same integer x modulo q (if q < p this is necessarily x mod q).
Assumptions:
Protocol:
Mask-and-open modulo p.
Since r is uniform in Zp and independent of x, c is uniform in Zp and reveals nothing about x (perfect privacy).
Move to modulus q.
At this point y ≡ x − k p (mod q), where k ∈ {0,1} is the carry/overflow bit indicating whether x+r ≥ p.
Correct the wraparound.
Output: y is now an LSSS sharing of x over Zq.
Correctness:
Security (perfect):
Notes and special cases
If q | p (e.g., p = p0^m and q = p0^n with the same prime p0 and n ≤ m), then p ≡ 0 (mod q), so the correction term k·p vanishes modulo q. In that case, Step 3 (comparison) is unnecessary: y := c − r (mod q) already equals x (mod q). This gives a one‑open, no‑comparison, perfectly secure conversion.
If the fields share a subfield: When GF(p^m) ⊆ GF(p^k) (same base prime and m | k), you can non‑interactively “convert” by just reinterpreting the shares in the larger field. Any LSSS defined over GF(p^m) remains an LSSS over GF(p^k), and the secret is preserved exactly. The reverse direction (from larger to smaller field) only works if the shared values are guaranteed to lie in the subfield.
If you accept statistical (not perfect) security: You can eliminate the comparison by choosing r from a larger range so that wraparound is negligible, and proceed with y := c − r (mod q). This is the standard “mask large enough to avoid carry with high probability” trick; it yields a negligible failure probability but not perfect security.
Impossibility of “purely local” conversion in general: Without some interaction (e.g., opening a masked value and/or computing a carry bit) or a field embedding, there is no general way to transform shares over Zp into shares over Zq for arbitrary p, q while preserving the secret for all inputs. Intuitively, when p and q are unrelated, the wraparound information (the carry k) is essential to map residues mod p to residues mod q; extracting it requires interaction.
References (pointers to related techniques)
Summary
Was this answer helpful?
version: gpt-5-2025-08-07
Status: UQ Validated
Validated: 7 months ago
Status: Needs Human Verification
Loading model reviews...
Loading reviews...