Відповіді:
Ні, це сенс асиметричних ключів (державних і приватних), оскільки ви можете легко кодувати повідомлення з відкритим ключем (саме для цього і є) у вас є роз- і зашифроване повідомлення. Але розшифрувати зашифроване повідомлення можливо лише за допомогою приватного ключа. Неможливо відновити приватний ключ.
Оскільки про це не згадувалося: це відома як атака з відкритим текстом , і це може бути дуже поганою вразливістю для шифру. Насправді, у криптовалюті з відкритим ключем ця атака еквівалентна атаці обраного простого тексту , оскільки кожен може зашифрувати будь-яке повідомлення!
Там є насправді були деякі відомі / обрані-відкритим текстом атаки на RSA (відкритого ключа шифру найбільш часто використовувані PGP для шифрування з симетричним ключем) , але вони зазвичай включають атаки побічного каналу проти поганих реалізацій , або потрібно божевільна кількість шифротекстів або працюють лише проти певних, рідкісних клавіш .
Однак загалом відповідь на ваше запитання - «ні» - саме це робить шифр надійним.
Ні, це було б дуже погано. Шифрування PGP використовує послідовну комбінацію хешування, стиснення даних, криптографію симетричного ключа та нарешті криптографію з відкритим ключем. Хешинг використовує односторонні функції . Одностороння функція - це функція, яку легко обчислити, але важко інвертувати. Криптографія з відкритим ключем використовує асиметричні алгоритми.
Алгоритми, використовувані для криптографії відкритого ключа, засновані на математичних взаємозв'язках (найбільш помітними є цілочисельна факторизація та дискретні проблеми логарифму), які, імовірно, не мають ефективного рішення. Хоча призначений одержувач обчислювально легко генерувати відкритий та приватний ключі, розшифрувати повідомлення за допомогою приватного ключа та легко відправник зашифрувати повідомлення за допомогою відкритого ключа, це надзвичайно важко (або фактично неможливо) для хтось може отримати приватний ключ, виходячи лише з їхніх знань про відкритий ключ.
Тільки наявності оригінального повідомлення недостатньо для висновку про приватний ключ.
На це є дві відповіді.
Чи теоретично це можливо? Так. Ви можете створити підроблений ключ, спробуйте шифрування, побачите, чи він збігався. Якщо ні, спробуйте інший підроблений ключ, зашифруйте, подивіться, чи збігається вихід. Це зазвичай називають грубою атакою
На практиці цього зробити не можна. Для того, щоб спробувати це, потрібна ненульова кількість часу та обчислювальна потужність. Шифрування PGP зазвичай використовує ключ пристойного розміру, можливо 512, 1024, 2048 або навіть більше біт. Простір клавіш (кількість клавіш, можливо, ви могли б мати) настільки велика, що вам знадобиться назавжди знайти цю комбінацію.
Я здогадуюсь, ви запитували, чи можете ви дійсно це зробити, а не теорію. І тому відповідь - ні. У цьому світі недостатньо обчислювальної потужності. Якщо ви запитали на security.stackexchange.com, хтось, хто краще знайомий з алгоритмами та математикою, може сказати, скільки часу це може зайняти (можливо, поки сонце не метастазує і не закипить нашу планету). Моя коротка відповідь - "не в межах вашого життя"
Мабуть, це може допомогти, але це не повинно забирати вас занадто далеко. Форма безпеки, мабуть, краще місце для цього, але:
У вас повинно бути кілька кроків до шифрування, принаймні навіть пристойний повинен мати насіння, хеш і сіль.
Наприклад, у вас може бути сіль, щоб зробити всі паролі 64 бітами довгими, а потім виконати їх через хеш. Якби це був лише хеш, то зламати його було б дуже просто.
Це дуже проста його версія ... але це не так просто.