Один из алгоритмов end-to-end (e2e) шифрования

Один из алгоритмов end-to-end (e2e) шифрования


Авторские дополнения будут выделены знаком &.

Предположим, есть два человека, Петя и Вася, которые хотят в ВК обсудить отмывание доходов, полученных преступным путем и финансирование терроризма. Но еще есть товарищ Майор, который в это же время сидит у себя в кабинете, и в реальном времени читает их переписку. А значит, общение надо зашифровать! К счастью Пети и Васи, они оба знакомы с протоколом Диффи-Хеллмана. И вот, Петя решает сделать пароль, который будет знать только он и Вася, и делает примерно следующее:

1) Придумывает случайное любое число (73861), и отправляет его Васе. И еще одно число (8) для обозначения битности шифрования. 8 бит - это 256 вариантов для перебора. Любой компьютер взломает меньше чем за секунду, но нам же только посмотреть и понять! Поэтому норм.

Майор видит, что передан ключ 73861 для создания 8-битного секретного ключа. Он радуется, потому что следит за перепиской, а значит сможет узнать что за ключ у них получится.

Вася получает числа.

2) Вася и Петя придумывают еще по одному случайному числу, но не сообщают его никому. Им нужно сложить свои придуманные числа с уже известным обоим 73861.

Петя прибавляет 25500, Вася - 12984.

3) Теперь им нужна какая-нибудь невозвратная математическая операция. Сложение/вычитание не подходит, поэтому они используют операцию "модуль". Это что-то в роде вычисления остатка при делении. Например 16mod10 это 6. И 26mod10 это 6. И 6mod10 тоже 6. А 16mod12 это 4. Ну вы поняли. Суть в том, что зная результат после операции mod10, невозможно сказать какое число было изначально, 6, 16 или 26.

Ну так вот, и Петя, и Вася, делают с предыдущим результатом операцию mod256 (8-битное шифрование, помните?)

&Тем временем т-щ майор делает эту операцию с имеющимся у него числом 73861.

4) Настало время обменяться результатами.

Оба собеседника передают свои результаты (33 у Пети, 61 у Васи) друг другу. Товарищ Майор всё это, конечно же, видит, но он уже не такой радостный, потому что не может вычислить их секретные ключи, зная только 73861, 61, 33, и стойкость шифрования.

&На самом деле товарищ майор все такой же радостный, ведь он понимает, что сейчас ему (равно как и Васе, и Пете) не составит труда узнать модули ключей собеседников.

5) Петя и Вася получили результаты друг друга, и теперь они должны прибавить к ним свои секретные числа, которые никому не передавали.

&Ну числа они не передавали, а вот модули чисел (а именно они играют здесь роль) они успешно раскричали на всю ивановскую.

6) На предыдущем этапе у Пети получилось 25561, а у Васи 13017. С этими результатами им надо снова сделать операцию mod256, чтобы получилось...

7) ...чтобы получился пароль!


Это число одинаковое и у Пети, и у Васи, но не у товарища Майора. Он не может вычислить их секретный пароль, потому что не знает что нужно прибавлять к числам 61 и 33. Вычислить общий ключ обоих собеседников можно только перебрав все возможные варианты. В случае с компьютером это произойдет быстрее, чем вы отожмете кнопку запуска перебора, но если ключ достаточно длинный (128 бит), то какой-нибудь суперкомпьютер потратит года 2, пока не взломает шифр. А если 256 бит и более, то взлом в наши дни невозможен вообще.

&Ну, я думаю, вы поняли, что товарищ майор даже и думать не желает о переборе вариантов, ведь он получил ключ собеседников чуть ли не раньше, чем они сами (здесь играет роль лишь время затраченное на вычисления).

Report Page