Various papers in the literature (such as https://eprint.iacr.org/2022/322.pdf, https://eprint.iacr.org/2013/850.pdf) use the sign, exponent, and significand values to additively secret share the original floating point secrets and later perform arithmetic operations on the shares of sign, exponent, and significand values to obtain the final output shares. However, they didn't provide details on how this secret sharing is actually performed. As I have newly started working on floating point MPC, I have some questions in this regard. It will be really helpful if any clarity can be given on this.
As per, IEEE-754 representation, the sign, exponent and significant bits are of sizes 1, 8 and 23 respectively. So, do I need to take three different ring sizes while secret sharing these values? Because if I take prime p = 2^23 or such higher values, then its possible that the exponent of some share may be more than 256 which is logically not possible.
Now if I took three different prime of 2^1, 2^8 and 2^23 for each of the parts. Then a different problem occurs. I provided the following example to illustrate the scenario.
Suppose I want to additively secret share a value of 10.123 into three parts using ring operations. 10.123 has sign, exponent, and significand values as 0, 130, and 2226127 respectively. One possible set of secret shared values can be {0, 131, 3202129}, {0, 129, 4807935}, {0, 126, 2604671} respectively. However, repacking and reconstruction using these values provide a completely different floating point value as repacking of {0, 131, 3202129}, {0, 129, 4807935}, {0, 126, 2604671} makes the floats 22.1076, 6.2926, 0.65525 respectively. This sums up to 29.05545 which is very much higher that 10.123.
How the secret sharing can be performed securely so this doesn't happen as the MPC computations using these shares provide wrong outputs during computation? The final output is coming based on the input 29.05545, not 10.123.
Thank you for the help in advanced.