要するに
で
、
のMSB t-bitが共通のとき、素因数分解が可能
()
として、
とすると、Bが張る格子Lの最小ベクトルを求めることでいい感じになる。
という線形結合で表され、
となる。
当然、は不明なので線型結合で
を求めることは出来ないが、基底を構成すれば LLLによって
またはそれにほど近いベクトルが得られるので、
などから
が求まる。
TODO: v0が最小ベクトルとなることの証明
複数のNへの拡張
基底を次のようにとると、が格子Lの最小ベクトルになる
[ [K, 0, 0, 0, N2, N3, N4, 0, 0, 0], [0, K, 0, 0, -N1, 0, 0, N3, N4, 0], [0, 0, K, 0, 0, -N1, 0, -N2, 0, N4], [0, 0, 0, K, 0, 0, -N1, 0, -N2, -N3]]
これがややこしければ、として
[ [K, N2, N3, N4], [0, -N1, 0, 0], [0, 0, -N1, 0], [0, 0, 0, -N1]]
という基底を作ってLLLをすると、最小ベクトル が得られる。ただし
で、
このページの出展は主にhttps://hal.archives-ouvertes.fr/hal-01288914/documentで、最後の小さい基底行列だけhttps://eprint.iacr.org/2014/548.pdf