You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The function polyvecl_uniform_gamma1 is used in the MLDSA sign internal API to perform the ExpandMask functionality. But looks like the XOF input source is different than the FIPS 204 standard.
In FIPS204, ExpandMask(rho, mu) computes the vector y in the iteration over L:
𝑐 ← 1 + bitlen (𝛾1 − 1)
for 𝑟 from 0 to ℓ − 1 do
𝜌′ ← 𝜌||IntegerToBytes(𝜇 + 𝑟, 2)
𝑣 ← H(𝜌′, 32𝑐) // seed depends on 𝜇 + 𝑟
𝐲[𝑟] ← BitUnpack(𝑣, 𝛾1 − 1, 𝛾1)
end for
return y
The XOF is performed on the rho || (mu + r).
But in the code polyvecl_uniform_gamma1, the XOF is performed on the rho || (L * mu + r):
Hi,
The function
polyvecl_uniform_gamma1
is used in the MLDSA sign internal API to perform the ExpandMask functionality. But looks like the XOF input source is different than the FIPS 204 standard.In FIPS204,
ExpandMask(rho, mu)
computes the vector y in the iteration over L:The XOF is performed on the rho || (mu + r).
But in the code
polyvecl_uniform_gamma1
, the XOF is performed on the rho || (L * mu + r):Could you help check? Thanks.
The text was updated successfully, but these errors were encountered: