Re: Любопытно
От: Аноним  
Дата: 01.04.08 10:23
Оценка:
Здравствуйте, DIMASID, Вы писали:

DIM>..., все шаги вроде ясны но не ясен самый главный 10 шаг, там сказано

DIM>"10. Select arbitrary a,b ∈ Fp, not both 0, such that r ·b2 ≡ a3 (mod p)."
DIM>Не как не возьму в толк как же на основе вычисленного r получить a и b?

Да уж... Не знаю, какой простой способ тут подразумевался авторами.

Можно, конечно, действовать совершенно прямолинейно. Выбираем случайно a до тех пор, пока ar не окажется квадратичным вычетом по модулю p (что проверяется вычислением символа Лежандра). Затем вычисляем b, умножив a в кубе на число, обратное r (которое получается с помощью расширенного алгоритма Евклида, как описано ранее в этой книге, или просто возведением в степень p-2, хотя это и чуть медленнее; все эти операции, естественно, по модулю p) и вычислив квадратный корень по модулю p из результата (что делается алгоритмом Шенкса-Тонелли). Случай всяких там нулей рассмотреть отдельно.

В случае, если число p-1 не делится на 3, всё становится проще, поскольку в этом случае легко вычисляются кубические корни по модулю p, и это позволяет действовать наоборот — т.е. выбирать случайно b и вычислять a.

Что касается "какого-нибудь ещё способа" — вряд ли, если требование выбора из ВСЕХ изоморфизм-классов по модулю p существенно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.