Идентификация с нулевым разглашением не по n = p * q? Суть вопроса в том, что нужно производить идентификацию двух сторон А и Б по протоколу с нулевым разглашением. Думал использовать либо протокол Фиата- Шамира, либо Гиллу- Кискатра. Но там вырабатывается n = p * q, где p и q простые. Это не совсем удобно, нужно проводить идентификацию по любой последовательности цифр и букв. Если использовать обозначенные два алгоритма, то как лучше преобразовывать численно буквенную последовательность в численную, и потом как из нее получить простое число? использую Python, если кто то тыкнет носом в библиотеку, будет совсем хорошо.
Для реализации протокола с нулевым разглашением без использования факторизации числа на простые множители можно воспользоваться так называемой криптографией на эллиптических кривых.
В Python вы можете использовать библиотеку pycryptodome, которая содержит функции для работы с эллиптическими кривыми. Для преобразования буквенной последовательности в численную можно воспользоваться, например, функцией int.from_bytes() для преобразования строк в целые числа.
Процесс идентификации с использованием криптографии на эллиптических кривых может выглядеть следующим образом:
Сторона А выбирает точку на эллиптической кривой и вычисляет открытый ключ.Сторона Б генерирует случайное число и шифрует его открытым ключом А.Сторона А дешифрует сообщение и отправляет его зашифрованное сгенерированным случайным числом обратно стороне Б.Сторона Б проверяет подлинность сообщения с помощью открытого ключа А.
Используя криптографию на эллиптических кривых, вы можете обеспечить безопасную идентификацию двух сторон без необходимости факторизации числа на простые множители.
Для реализации протокола с нулевым разглашением без использования факторизации числа на простые множители можно воспользоваться так называемой криптографией на эллиптических кривых.
В Python вы можете использовать библиотеку pycryptodome, которая содержит функции для работы с эллиптическими кривыми. Для преобразования буквенной последовательности в численную можно воспользоваться, например, функцией int.from_bytes() для преобразования строк в целые числа.
Процесс идентификации с использованием криптографии на эллиптических кривых может выглядеть следующим образом:
Сторона А выбирает точку на эллиптической кривой и вычисляет открытый ключ.Сторона Б генерирует случайное число и шифрует его открытым ключом А.Сторона А дешифрует сообщение и отправляет его зашифрованное сгенерированным случайным числом обратно стороне Б.Сторона Б проверяет подлинность сообщения с помощью открытого ключа А.Используя криптографию на эллиптических кривых, вы можете обеспечить безопасную идентификацию двух сторон без необходимости факторизации числа на простые множители.