SAGE Как найти e в этом уравнении, используя sagemath? - PullRequest
1 голос
/ 31 мая 2019

Вопрос просит нас решить для x в данном уравнении c '= x ^ e mod N, учитывая тот факт, что мы уже знаем c', e, mod N. Я посмотрел свой учебник, но они дали нам только способ получить е, но не для х.

Я попытался решить ее вручную и получил уравнение:

log c '= e log x mod N

но я не знаю, как вставить в Sage Math.

Это из учебника, чтобы найти е:

discrete_log (c ', Mod (x, N))

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

Ответ Сэмюэля гораздо более полон, чем этот, но если вы ищете действительно быстрое решение, вы можете использовать эту (наивную) функцию для небольших модулей:

sage: solve_mod(x^99==12, 347)
[(241,)]
0 голосов
/ 04 июня 2019

Вопрос действительно в том, как найти e-й корень c 'по модулю N.

Скажем, например, кто-то хочет решить 12 = x ^ 99 по модулю 347.

Это равносильно нахождению 99-го корня из 12 по модулю 347.

Просто установите кольцо целых чисел по модулю 347,

sage: A = Zmod(347)
sage: A
Ring of integers modulo 347

дать имя элементу в этом кольце,

sage: a = A(12)

и попросите Мудреца найти 99-й корень этого элемента:

sage: a.nth_root(99)
241

Убедитесь, что это отвечает на вопрос:

sage: A(241)^99
12

sage: pow(241, 99, 347)
12

sage: power_mod(241, 99, 347)
12
...