Вывести закрытый ключ PGP, используя закодированный декодированный образец
Если у меня есть и закодированное сообщение, и его оригинал, можно ли вывести закрытый ключ?
5 ответов
Нет, это точка асимметричных ключей (открытых и закрытых), так как вы можете легко закодировать сообщение с открытым ключом (для этого оно предназначено), у вас есть дешифрованное и зашифрованное сообщение. Но расшифровка зашифрованного сообщения возможна только с помощью закрытого ключа. Закрытый ключ не может быть восстановлен.
Так как это не было упомянуто: это известно как атака с открытым текстом, и она была бы очень плохой уязвимостью для шифра. Фактически, в криптографии с открытым ключом эта атака эквивалентна атаке с использованием открытого текста, поскольку любой может зашифровать любое сообщение!
Фактически были некоторые известные / выбранные незашифрованные атаки против RSA (шифр с открытым ключом, наиболее часто используемый PGP для шифрования симметричного ключа), но они обычно включают атаки по побочным каналам против плохих реализаций или требуют безумного числа шифротекстов, или работают только против определенных, редких ключей.
Тем не менее, в целом, ответ на ваш вопрос "нет" - это то, что делает шифр безопасным.
Нет, это было бы очень плохо. В шифровании PGP используется последовательная комбинация хеширования, сжатия данных, криптографии с симметричным ключом и, наконец, криптографии с открытым ключом. Хеширование использует односторонние функции. Односторонняя функция - это функция, которую легко вычислить, но трудно перевернуть. Криптография с открытым ключом использует асимметричные алгоритмы.
Алгоритмы, используемые для криптографии с открытым ключом, основаны на математических отношениях (наиболее заметными из которых являются задачи целочисленной факторизации и дискретного логарифма), которые, по-видимому, не имеют эффективного решения. Хотя предполагаемому получателю в вычислительном отношении легко сгенерировать открытый и закрытый ключи, расшифровать сообщение с использованием закрытого ключа и легко отправителю зашифровать сообщение с помощью открытого ключа, это чрезвычайно сложно (или фактически невозможно) для Кто угодно может получить личный ключ, основываясь только на его знании открытого ключа.
Простого наличия исходного сообщения недостаточно, чтобы вывести закрытый ключ.
На это есть два ответа.
Это теоретически возможно? Да. Вы можете сгенерировать поддельный ключ, попробовать шифрование, посмотреть, соответствует ли он. Если нет, попробуйте другой поддельный ключ, зашифруйте, посмотрите, совпадает ли вывод. Это обычно называют атакой грубой силы
На практике это не может быть сделано. Чтобы попробовать это, требуется ненулевое количество времени и вычислительной мощности. Для шифрования PGP обычно используется ключ приличного размера, может быть 512, 1024, 2048 или даже больше битов. Пространство клавиш (количество клавиш, которое вы можете иметь) настолько велико, что вам понадобится целая вечность, чтобы найти эту комбинацию.
Полагаю, вы спрашивали, можете ли вы действительно это сделать, а не теорию. И поэтому ответ - нет. Миру не хватает вычислительной мощности для этого. Если вы спросите на http://security.stackexchange.com/, кто-то, кто лучше знаком с алгоритмами и математикой, скажет, сколько времени это займет (возможно, пока солнце не метастазирует и не закипит нашу планету). Мой короткий ответ "не в вашей жизни"
Маловероятно, что это может помочь, но это не должно завести вас слишком далеко. Форма безопасности, вероятно, является лучшим местом для этого, но:
У вас должно быть несколько шагов к шифрованию, как минимум, даже приличный должен иметь начальное число, хеш и соль.
Например, у вас может быть желание сделать все пароли длиной 64 бита, а затем запустить их через хеш. Если бы это был только хеш, то было бы очень легко взломать.
Это очень простая версия... но это не так просто.