Тема: Питання по криптографії
Підкажіть.Чи є реалізації такого:
Є ключ А та ключ В
За допомогою ключа А можна закриптувати
За допомогою ключа А можна декрептувати
За допомогою ключа В можна тільки декрептувати, данні криптовані ключем А
?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Алгоритми та структури даних, технології → Криптографія → Питання по криптографії
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Підкажіть.Чи є реалізації такого:
Є ключ А та ключ В
За допомогою ключа А можна закриптувати
За допомогою ключа А можна декрептувати
За допомогою ключа В можна тільки декрептувати, данні криптовані ключем А
?
Будь-який асиметричний алгоритм шифрування? RSA? ElGamal?
Будь-який асиметричний алгоритм шифрування? RSA? ElGamal?
З мене математик як з лайна куля, я хотів дізнатися про існуючі реалізації реалізаціяї ліб на C# чи C++ Якщо такі є.
Подивiться в бiк еллiптичних кривих (curve25519). Реалiзацiй достатньо на будь якiй МП.
Такого нема, доведеться обирати між симетричним та асиметричним алгоритмами.
Симетричний: За допомогою ключа можна і шифрувати і розшифровувати.
Асиметричний: Ключ А для шифрування, ключ Б для розшифрування.
А є алгоритми, що дозволяють створювати декілька розшифровувальних ключів для одного шифрувального?
Тоді «ключ А» можна було б зробити як запис, що включає власне шифрувальний ключ та один розшифровувальний ключ, «ключ Б» — як інший розшифровувальний ключ.
Втім, чи існує об'єктивна необхідність у різних розшифровувальних ключах? Якщо нема, то можна зробити ще простіше: «ключ А» містить у собі шифрувальний ключ та ключ Б.
А є алгоритми, що дозволяють створювати декілька розшифровувальних ключів для одного шифрувального?
Нема. Один ключ, один народ, один фюрер.
Якщо є 2 та бiльше ключiв, то алгоритм не може бути криптоcтiйким.
Підкажіть.Чи є реалізації такого:
Так, це активно використовується для цифрових підписів. Ключ B в такому разі є публічним, а шифруються не всі дані, а лише геш - для підтвердження, що оригінал був проглянутий власником ключа A. Фактично при накладані цифрового підпису на геші застосовується функція асиметричного розшифрування закритим ключем, а на підписі - функція асиметричного шифрування відкритим.
А є алгоритми, що дозволяють створювати декілька розшифровувальних ключів для одного шифрувального?
Так, звісно. Можна навіть запропонувати процедурний підхід: робите кілька ключів надмірної складності (по 1 біту надмірності на log2(кількість отримувачів)) - це буде "шифрувальний ключ". Ключі для розшифрування роздаєте всім учасникам. Інформація шифрується кілька разів різними ключами; кожен власник ключа може розшифрувати лише "свій" блок, а надмірна складність гарантує складність шифру на рівні початкового шифру.
кожен власник ключа може розшифрувати лише "свій" блок
Це не вiдповiдає умовам задачi.
Неможливо створити шифр, щоб один i той же текст можна було розшифрувати рiзними ключами!!!
Підкажіть.Чи є реалізації такого:
Є ключ А та ключ В
За допомогою ключа А можна закриптувати
За допомогою ключа А можна декрептувати
За допомогою ключа В можна тільки декрептувати, данні криптовані ключем А
?
Просто ключ А має включати обидва.
cheappi386 написав:Підкажіть.Чи є реалізації такого:
Є ключ А та ключ В
За допомогою ключа А можна закриптувати
За допомогою ключа А можна декрептувати
За допомогою ключа В можна тільки декрептувати, данні криптовані ключем А
?
Просто ключ А має включати обидва.
А чи не вплине це на криптостійкість?
кожен власник ключа може розшифрувати лише "свій" блок
Це не вiдповiдає умовам задачi.
Неможливо створити шифр, щоб один i той же текст можна було розшифрувати рiзними ключами!!!
Відповідає. Просто процедура "розшифрування" буде включати обробку лише частини зашифрованих даних. В умові немає вимог мінімальності шифру.
До речі, можна зробити і мінімальний з двома ключами, але дещо складніше.
А чи не вплине це на криптостійкість?
Яким чином? Ніде в умові немає вимоги, щоб ключ B не можна було отримати з ключа A. Власне, відкритий ключ саме обчислюється з закритого ключа.
Chemist-i написав:А чи не вплине це на криптостійкість?
Яким чином? Ніде в умові немає вимоги, щоб ключ B не можна було отримати з ключа A. Власне, відкритий ключ саме обчислюється з закритого ключа.
Ну як мінімум тому, що зменшить діапазон "допустимих" ключив шифрування (передбачаю що дуже значно) що зменшить кількість варіантів перебору для брутфорса. Я не спеціаліст з криптографії, але знаю, будь які "велосипедні" модифікації алогоритмів (чи маніпуляції з ключами) як правило сильно зменшують стійкість. Звичайно, що для первинної задачи можливо висока стійкість і не треба.
Так алгоритм шифрування не змінюється. Змінюється протокол.
Насправді можна навіть не збільшувати ключ - бо для перевірки доведеться перевіряти кожен ключ кілька разів, і наскільки скоротиться кількість операцій підбирання, настільки збільшиться час перевірки кожного потенційного ключа.
Можу дати модифікацію, яка використовується на практиці:
- генеруємо великий унікальний симетричний ключ К (випадкові 1024 біти, наприклад);
- шифруємо дані цим ключем;
- шифруємо ключ К асиметричними користувацькими ключами Кi і дописуємо до зашифрованих даних у визначені місця (у заголовок пакету, скажімо).
Тепер тому, хто ламатиме, доведеться розшифровувати не файл із відомою структурою, а випадкові біти. Ну, або ж файл, але зі значно більшим ключем.
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися