Рейтинг:0

Криптография (DSA) Получить значение k и закрытый ключ

флаг ng

Я выполняю задание по криптографии, и мне нужна подсказка (ПОЖАЛУЙСТА, НЕТ РЕШЕНИЯ).

Задача:

Я могу отправлять сообщения (цифровые номера) в контейнер Docker. Ответом являются значения p,q,g,z1,s,r и хэш-значение (m+z1). Итак... когда я ввожу число 1, я получаю значения DSA, используемые для подписи.

Неизвестно значение k, z2 и x (закрытый ключ).

Известно, что p,q,g,z1,z2 фиксированы для каждого сообщения. Так что они одинаковые каждый раз.

Известно, что значение k вычисляется:

k = g^(hashvalue + z2) по модулю q

Итак, в моем понимании: чтобы узнать значение k, мне нужно найти 2 сообщения, которые используют одно и то же k. Если мне это удалось, я могу вычислить ключ с помощью

k = (M1 - M2) / (s1 - s2)

Но как я могу узнать, что 2 сообщения используют одно и то же k с заданными значениями?

Что я на самом деле делаю:

Я написал программу Python, которая перебирает каждое сообщение, начиная с сообщения = 0. Затем вычисляет k по формуле и игнорирует z2 (что, я думаю, абсолютно неправильно...). Сохранение значений из вычисленного k в массиве. Затем поднимаем сообщение += 1 и делаем то же самое. После этого я сравниваю k из фактического сообщения с сохраненными значениями из сообщений ранее, если они совпадают. Но я сейчас на сообщении 2000000. Так что - я думаю, что делаю неправильные вещи.

Я совсем на неправильном пути?

Я могу получить больше значений с другими сообщениями, если это необходимо. Кто-нибудь может мне помочь?

fgrieu avatar
флаг ng
Непонятно, что такое вопрос z1 и z2. [Фактический DSA](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf#page=28) хэширует сообщение, а не конкатенацию сообщения и некоторый z1 (тем более результат дополнения). И результат не называется z2. Рекомендация: сначала выясните, что к чему, проверив полученные подписи.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.