Почему некоторые экспоненты в RSA имеют открытый текст в результате - PullRequest
0 голосов
/ 16 декабря 2018

Цель состоит в том, чтобы иметь шифрование, подобное:

c = m ^ e mod n

, где c = m

Я ошибся в своем заключении, оценив, чтоe = 1 или e = 4 ^ x, когда 4 ^ x

Для лучшего понимания:

c = encryptet Text

m = простой текст

n = последовательность двух простых чисел

1 Ответ

0 голосов
/ 16 декабря 2018

Нет никаких оснований для произвольного сообщения m иметь m^{4^x} = m mod n

Контрпример;

n = 47 * 43 = 2021

5 ^ {4 ^ 2} = 1803 мод 2021, см. WolframAlpha

import math
for m in range(1,2020):
    for e in (4**x for x in range(1, int(math.log(2021,4))) ):
        if (m**(e) % 2021) == m:
            print (m,e)

С этим кодом на Python вы можете увидеть примеры для конкретного модуля 2021.

Как выможно увидеть, что происходит много случаев

(423, 4)
(423, 16)
(423, 64)
(423, 256)

Теперь причина ясна, если вы помните определение RSA.

e должно иметь обратное значение в phi (n).Смотрите в прямом эфире на WolframAlpha

Так что этот выбор e не RSA.

Обратите внимание: поскольку phi (n) = (p-1) (q-1), любой четный e не может быть публичным модулем.

...