Алгоритм діффі-хеллмана: призначення
По всій відімості, мало хто сьогодні, вікорістовуючі Передача даних по незахіщеніх каналах зв`язку, уявляє Собі, що таке алгоритм Діффі-Хеллмана. В принципі, багата це розуміння и не нужно. Однако користувач комп`ютерних систем, так би мовити, більш цікавім, розібратіся в цьом НЕ Завада. Зокрема, обмін ключами по алгоритму Діффі-Хеллмана может стать в нагоді користувач, Які цікавляться харчування інформаційної безпеки та кріптографії.
Що таке методика Діффі-Хеллмана?
Если підходіті до питання про самому алгорітмі, поки, що не вдаючися у технічні та математичні Подробиці, можна візначіті его як методику шифрування и дешіфрування информации, что передається та прійнятої информации между двома и более Користувачами комп`ютерних або других систем, что передбачають обмін данімі з Використання незахіщеного каналу зв`язку.
Як уже зрозуміло, за відсутності захисту самого каналу перехопіті або модіфікуваті файли, что знаходяться в процесі передачі-прийому, може і зловміснік. Однако алгоритм розподілу ключів Діффі-Хеллмана для доступу до переданої и прийнятя данімі такий, что стороннє втручання практично Повністю віключається. При цьом спілкування по вікорістовуваному каналу зв`язку (без захисту оного) становится безпечного, если обідві Сторони Використовують один и тієї ж ключ.
Передісторія
Сам алгоритм Діффі-Хеллмана БУВ уявлень світу ще далекого 1976 году. Его творця стали Уітфрід Діффі и Мартін Хеллман, Які в своих дослідженнях безпечного и надійніх методів шифрування Даних спіралі на роботи Ральфа Меркля, Який розроб так званні систему Поширення публічніх ключів.
Альо если Меркль розроб Виключно теоретичну базу, Діффі и Хеллмана представили публіці практичне вирішенню даного питання.
найпростіше Пояснення
Власне, сам тест Заснований на кріптографічніх технологіях шифрування, Які и зараз дівують багатьох фахівців в Цій області. Антологія шіфрів Включає в себе й достатньо велику Історію. Суть Всього процесса зводу до того, что є два абонента, лістувався електронною поштою або обмінюються якімісь данімі с помощью комп`ютерних програм. Альо захист проводитися таким чином, что сам алгоритм Діффі-Хеллмана требует, щоб ключ розшифровки БУВ відомій двом сторонам (передавальної и пріймаючої). При цьом абсолютно неважливо, яка з них згенерує Початкове Випадкове число (цею момент пояснімо при розгляді формул обчислення ключів).
Методика шифрування Даних ранніх періодів
Щоб Було зрозуміліше, зауважімо, что найпрімітівнішім способом шифрування Даних є, например, написання слів НЕ зліва направо, як це Прийнято в більшості писемності, а праворуч наліво. Точно так же легко можна використовуват и заміну букв алфавіту в Повідомленні. Скажімо, в слові змінюється друга літера на дере, четверта - на третю и так далі. Сам же документ при погляді на него может являти собою повну нісенітніцю. Однако тієї, хто написавши вихідний текст, сообщает того, хто его винен Прочитати, в якому самє порядку слід розташуваті задані символи. Це и назівається ключем.
Відео: Алгоритм Діффі - Хеллмана
Зауважте, більшість досі нерозшіфрованіх текстів и клинопису древніх шумерів и єгіптян залішаються незрозумілімі крипто-аналітікамі Всього лишь через ті, что смороду не знають, як Встановити потрібну послідовність сімволів.
Так і в нашому випадка - алгоритм Діффі-Хеллмана увазі варіант, что ключ розшифровки відомій обмеженій кількості Користувачів. Правда, и тут Варто сделать застереження, оскількі втручання в передачу зашифрованістю Даних такого типу может буті порушене третімі особами, если смороду розгадають систему підстановкі або заміні сімволів.
Само собою зрозуміло, что сегодня існують й достатньо потужні криптосистеми на основе алгоритмів на кшталт AES, а й смороду не дають повної гарантії захисту від злому Даних третьою стороною.
Ну а тепер Зупинимо на самій системе шифрування, ее практичне! Застосування и ступенів захисту.
Алгоритм Діффі-Хеллмана: призначення
Сам алгоритм створювався таким чином, щоб Забезпечити НЕ только конфіденційність Даних при передачі однією стороною іншій, но и для того, щоб безпечно вітягті їх при отріманні. Грубо Кажучи, така система передачі винна Забезпечити повноцінній захист по всех можливий каналах спілкування.
Згадаю хоча б роки Другої Світової Війни, коли розвідки всех стран-союзніків безуспішно полювалі за шіфрувальної машиною під назв «Енігма», с помощью якої передавалися кодовані ПОВІДОМЛЕННЯ на азбуці Морзе. Аджея ее шифр НЕ МІГ розгадаті жоден, даже самий, як ми зараз говоримо, «просунути» фахівець з кріптографії. Тільки после ее Захоплення Було ОТРИМАНО ключ до дешіфрування Повідомлень, переданих німецькім флотом.
Алгоритм Діффі-Хеллмана: огляд
Отже, сам алгоритм має на увазі использование декількох базисних зрозуміти. Пріпустімо, у нас є простий випадок, коли на зв`язку Присутні два абонента (користувача). Позначімо їх як A и B.
Смороду Використовують два числа X и Y, Які НЕ є секретними в даного каналі зв`язку, для управління прийому-передачі. Вся суть питання зводу до того, щоб згенеруваті на їх Основі якесь нове значення, Пожалуйста буде ключем. Альо! Перший абонент вікорістовує велику просте число, а другий - обов`язково ціле (діліться без Залишки), но менше по порядку, чем перше.
Природно, Користувачі домовляються, что ЦІ числа зберігаються в Таємниці. Однако, оскількі канал зв`язку є незахіщенім, ЦІ два числа могут стати відомімі и іншім зацікавленім особам. Саме тому Користувачі в тих же повідомленнях обмінюються секретними ключами для розшифровки Повідомлень.
Основні формули обчислення ключа
Прийнято вважаті, что алгоритм Діффі-Хеллмана відносіться до системи так званого симетричного шифрування, на основе которого з`явилися протоколи асиметричний шифру. Однако, если розглядаті основні аспекти обчислення ключів пріймаючімі сторонами, придется згадаті хоча б алгебру.
Отже, пріпустімо, КОЖЕН з абонентів генерує віпадкові числа a и b. Заздалегідь їм відомі значення x и y, Які могут буті даже «вшіті» в шукане програмне забезпечення.
При пересіланні або прійомі такого ПОВІДОМЛЕННЯ абонент A обчіслює значення ключа, віходячі з формули A = xamod y, а другий вікорістовує комбінацію B = xbmod y, после чого слід Пересилання розшифрованих ключа Першому корістувачеві. Це перший етап.
Тепер пріпустімо, что третя зацікавлена сторона має в своєму розпорядженні обидвоє Обчислення значення A и B. Все одно вона НЕ может втрутітіся в процес передачі Даних, оскількі на іншому етапі нужно знаті, як обчіслюється Загальний ключ.
Відео: Протокол Діффі-Хеллмана для обміну ключами (частина 1)
Віходячі з Вищенаведеним формул, можна Зупинити на обчісленні Загальна ключа. Если подивитись на алгоритм Діффі-Хеллмана, приклад может віглядаті примерно так:
1) перший абонент обчіслює ключ на основе x за формулою Bamod y = xabmod y;
2) другий, віходячі з початкових числа y и Отримання з мережевого протоколу параметра B, візначає ключ на основе наявний параметра A: Abmod y = x bamod y.
Як бачим, кінцеві значення даже при перестановці ступенів збігаються. Таким чином, розшифровка Даних Обом сторонами зводу, як то кажуть, до єдиного знаменніка.
Уразлівість при втручанні в процес передачі Даних
Як можна Було б пріпустіті, втручання третьої сторони не віключається. Однак в даного випадка мова идет про спочатку задаються числах около 10100 або даже 10300.
Само собою зрозуміло, что жоден з сегодня Створення генераторів паролів або кодів доступу візначіті самє число не зможу (Хіба что Початкові и кінцеві, а не проміжні параметрів для втручання в систему передачі). На це буде нужно Стільки часу, что і життя на Землі закінчіться. Проти дірі в такій системе безопасности все-таки є.
Найчастіше смороду пов`язані зі знанням дискретного логаріфмування. Если Такі знання є, зламаті алгоритм Діффі-Хеллмана можна (но только для початкових и кінцевіх параметрів, як уже говорилося вищє). Інша справа, что такими знаннями володіють одиниці.
Використання алгоритму для платформи Java
Алгоритм Діффі-Хеллмана на Java вікорістовується Виключно при Звернення на кшталт «клієнт-сервер».
Іншімі словами, сервер знаходиться в Стадії Очікування Підключення клієнтськіх машин. Коли таке Підключення здійснюється, відбувається виконан алгоритму на предмет поиска або громадського, або секретного ключа, после чого користувач может отріматі безперешкодній доступ до всіх функцій и Даних самого сервера. Іноді це стосується даже мобільніх систем, правда, про це мало хто знає, тім более что виконавча частина працює в невидимому режімі у виде віконуваніх скриптів.
Використання алгоритму для платформи C (+ / ++)
Если подивитись на алгоритм Діффі-Хеллмана на «C» (+ / ++), то и тут не все так гладко. Справа в тому, что іноді вінікає проблема того, коли сама мова програмування здебільшого працює з Обчислення, пов`язаними з плаваючих комою. Саме тому при завданні цілочісельніх значень або при спробі округлення (даже при зведенні в степень) могут спостерігатіся неполадки при компіляції. Особливо це стосується неправильного использование Функції int.
Однако ж Варто звернути Рамус и на інші віконувані компоненти, Які, як правило, представляються собою завдання класів, то ж зведення в степень або супутні прієднуються бібліотеки GMP.
Сучасні алгоритми шифрування
Вважається, что алгоритм Діффі-Хеллмана досі перевершіті Ніхто НЕ может. Власне, самє ВІН послуживши основою для Виникнення таких відоміх систем захисту в області шифрування Даних, як AES128 и AES256.
Однако, як показує практика, не Дивлячись на доступність чисел, абстрактно НЕ спріймають ЛЮДИНОЮ, більшість систем нінішнього типу Використовують Виключно значення первого десятка (НЕ более), хоча сам алгоритм має на увазі числа в Мільйони разів більші.
Відео: [KA] Сучасне шифрування
вместо Післямови
В цілому, напевно, Вже зрозуміло, что собою представляет ця система и Які ее алгорітмічні СКЛАДОВІ. Залішається только Додати, что вона наділена такими Величезне можливий, что ее в повній мірі практично Ніхто НЕ вікорістовує.
З Іншого боку, и вразливостей в алгорітмі явно вістачає. Посудіть Самі: Аджея, написавши програму для обчислення дискретних логаріфмів, практично будь-який ее творець может отріматі доступ не только до початкових параметрів, что задаються Користувачами, но и до загально ключів, Які генеруються в системе шифрування и дешіфрування.
У найпростішому випадка й достатньо сделать інсталяцію того ж віконуваного Java-аплета, Який может буті застосовання даже у мобільному зв`язку. Природно, користувач про це НЕ дізнається, но его дані зможу використовуват в своих цілях будь-який бажаючих.