Уже почти две недели идёт война между РосКомНадзором (на самом деле - ФСБ) и П. Дуровым за некие "ключи шифрования". ФСБ-шникам очень хочется эти самые ключи иметь, а П. Дуров говорит, что ИХ ТАМ НЕТ. Ну, вы помните автора этого бессмертного выражения:-) Кто же прав?

Государство, в лице начальника РосКомНадзора - Александра Александровича Жарова объявило войну до победного конца. Крушит всё подряд и уже заблокировало 19 миллионов IP адресов. Пострадавшие от этой ковровой бомбардировки пользователи собираются подавать в суд и уже написали заявления в МВД. Им не нравиться терять деньги из-за хулиганского поведения чиновников. (https://meduza.io/news/2018/04/27/protiv-roskomnadzora-podali-isk-iz-za-massovyh-blokirovok-biznesmen-trebuet-kompensatsii-v-pyat-millionov-rubley)



Самое интересное заключается в том, что 90% населения России и 100% депутатов ГД РФ не знают - что такое ключи шифрования. Депутаты голосовали за закон, абсолютно не понимая, за что они голосуют:

https://www.yapfiles.ru/show/1904605/e521e993a818cbe6358ac58308b44b00.mp4.html



Ну что тут можно сказать ?!



Вот я и решил попробовать объяснить популярно, что из себя представляют эти самые "ключи шифрования". Сразу скажу, что алгоритмы криптозащиты - довольно сложный и объёмистый раздел математики. Кто хочет разобраться самостоятельно, могу порекомендовать эти книжки:

1) А. Саломаа "Кpиптогpафия с откpытым ключом" Москва ”Миp” 1995

2) ГОСТ 28147-89

3) Баричев С. "Криптография без секретов"

Ну и много других книг есть на эту тему. Любопытно, что ГОСТ до сих пор грифован как ДСП. А начальные его версии имели гриф "Совершенно секретно". Это несмотря на то, что автор алгоритма опубликовал его в открытой печати ещё в 1995 году в издательстве MIT Press. Более того, он даже опублииковал исходный код программы, реализующей этот алгоритм. Но, как всегда, "заставь дурака Богу молиться..".



Возвращаясь к нашим баранам, то есть - ключам. Что это такое и чем симметричные ключи отличаются от несимметричных ?



Сразу предупреждаю - дальнейшее изложение будеть ОЧЕНЬ упрощённым.



Что такое - шифрование? Интуитивно, мы понимаем, что вот есть текст, потом мы его ЗАшифровали и появилась абракадабра.

Причём (это очень важно!) в процессе шифрования мы использовали некий ключ шифрования. Неважно, что это в реальном мире.

Эту самую абракадабру засунули в канал связи. Опять же, совершенно неважно, что это в реальном мире.



Потом мы взяли ключ на другом конце, с его помощью РАСшифровали абракадабру и получили исходный текст сообщения. Здесь важно то, что мы на приёмном конце использовали ключ для дешифрования.



Так вот, если ключ для РАСшифровки - это тот же ключ, что для ЗАшифровки, только "воткнутый" другим концом, то этот метод шифрования называется "симметричным".



Я попытаюсь проиллюстрировать это "на пальцах". Предположим, я хочу передать по каналу связи всего один символ. Ну, для простоты, пусть этот символ отображается на 7-и сегментном индикаторе. Я думаю, все знакомы с этой штукой:

1 Семисегментный индикатор.

Очень часто они используются в электронных часах и другой технике. С их помощью можно даже буквы пытаться отображать:



2 Символы на семисегментном индикаторе

Дальше у меня пойдут разные элктрические схемы. Так как никаких KiCad-ов и прочих чудес буржуинской конструкторской мысли у меня нет, то рисовал я эти схемки шариковой ручкой на кухонном столе в старой тетрадке. Прошу меня извинить за качество картинок!



Если я хочу передать всего один символ куда-то далеко, без всякого шифрования, то можно воспользоваться такой схемой:

4 Передача кода символа без шифрования.

На передающей стороне, там где переключатели a,..,g, можно выбрать те сегменты, которые которые я желаю зажечь. По проводам потечёт ток, сегменты загорятся и мой получатель увидит именно тот символ, который я набрал. Информация передана. Плохо то, что если кто-то где-то подключится к моим проводам (каналу связи), то он тоже увидит именно тот символ, который я передаю. Шифрования нет.



Попробуем зашифровать передаваемый символ. Для этого возьмёт отрезок кабеля, по которому мы передаём информацию и ПЕРЕПУТАЕМ отдельные проводники в нём, как попало. Получится вот что:

5 Зашифрованная передача

Сейчас, если я буду набирать на выключателях какой-то символ, то та индикаторе я увижу какю-то билиберду. Мы ЗАшифровали информацию! Кусок кабеля с перепутаными проводами я назову КЛЮЧОМ шифрования К. Перепутанные концы ключа я обозначил теми же буквами, но со штрихами, что бы было понятно, что это НЕ исходне сигналы. Если кто-то подключится к моему каналу связи, то он ничего не поймёт! Здорово! Есть, правда, "маленькая" закавыка - получатель моего сообщения тоже ничего не поймёт.



Надо РАСшифровать сообщение. Как это сделать - достаточно понятно: надо взять этот же самый ключ и "воткнуть" его в обратном направлении. Вот так:

6 Передача с шифрованием и расшифровка принятого сообщения.

Что я сделал? На "дальнем" конце канала связи я, вместо индикатора, присоединил ключ шифрования К, но включил его в обратном направлении. Задача решена: сообщение по каналу передавалось в зашифрованном виде, а на приёмной стороне - успешно расшифровано. И при передаче и при при приёме используется ОДИН ключ, только включаемый в противоположных наравлениях. Это очень важно - ключ ОДИН!



Такая схема шифрования называется "шифрование с симметричным ключом". Эта схема в самых разных вариантах использовалась человечеством на протяжении тысяч лет. В первой половине ХХ века она достигла своей вершины. Выше подыматься было некуда по двум принципиально неустранимым причинам:



1. Перед установлением связи надо было передать ключ шифования приёмнику каким-то способом, выходящим за стандартный протокол. Привезти в тайном кармане, передать голубиной почтой, через объявление в газете и т.д. Это было очень рисковано. А если противник перехватит ключ? Он получит возможность читать ВСЕ последующие сообщения.



2. Понятно, что в целях безопастности, надо как можно чаще менять ключи шифрования. Однако, если противник уже перехватил старый ключ, то передача нового ключа по вскрытому каналу не приведёт ни к чему хорошему.



Эти недостатки шифрования с симметричным ключом неустранимы в приципе. Здесь уместно вспомнить, что стало с немецким флотом, после того, как англичане успели вскрыть ключ "Энигмы" до того, как немцы сменили его в очередной раз. ВСЕ последующие сообщения немецкого флота легко читались английской разведкой. "Волчья стая" адмира Канариса очень быстро превратилась в стаю побитых щенков.



Остро встала необходимость разработки принципиально новых криптографических алгоритмов, лишённых этих двух недостатков. Раздел математики под названием "криптография" становился секретным оружием. И в СССР и США исследования в этой области засекретили и даже были приняты специальные законы об ответственности за передачу...



Два "Голиафа" (американский и советский) пытались побороть друг друга и тут появился Давид, который отправил в нокаут и того и другого. Давида звали Филипп Циммерман. Он программист (даже не математик) и по образованию и по профессии. Долгое вроемя работал на правительство США в разных исследованиях по криптографии. Создавал программные инструменты для криптозащиты и взлома. И чем больше он знакомился с методами работы спецслужб, тем меньше это всё ему нравилось.



В конце концов он пришёл к борьбе за права человека вообще и тайне переписки в частности. Он и разработал алгоритм и программу шифрования, которая нынче называется во всём мире "Pretty Good Privacy" (Очень хорошая защита приватности). И эта программа произвела революцию в технологии криптозащиты.



В 1991 году Циммерман написал программу Pretty Good Privacy (PGP) — первую широкодоступную программу, которая использовала шифрование с открытым ключом (программист опубликовал её в Интернете для свободного доступа). Вскоре она стала доступна за границей — по утверждению Циммермана, он не принимал никакого участия в её распространении за пределы США.



Несмотря на недостаток финансирования, отсутствие какого-либо оплачиваемого персонала, рекламной компании и т. д., PGP стало наиболее широко используемым в мире программным обеспечением для шифрования электронной почты.



Как и любое другое правительство, правительство США и в те времена пыталось запустить свои шаловливые ручки в личные дела граждан. И ему (правительству) очень не понравилось, что в руках у граждан оказался инструмент, с которым не могло справится даже АНБ. Три года против Циммермана велось судебное расследование. Его обвиняли в том, что он передал алгоритм в другие страны. Хотя, на самом деле, он ничего не ПЕРЕДАВАЛ. Он просто сделал программу под GPL лицензией и любой человек в мире мог эту программу использовать, мог посмотреть её код и поразбираться с её алгоритмом - проверить, что в программе нет никаких "закладок".



В правительстве США уровень идиотизма хотя и высок, но всё-таки пониже, чем в РФ, поэтому "передать ключи шифорвания" они от Циммермана не требовали, поимали, что это - полный бред.



Ну так в чём же идея PGP? Попытаюсь, опять-таки, на самом примитивном уровне. Предупреждаю, что в реальности, за моими картинками стоит достаточно зубодробительная математика. Итак, давайте будем долго-долго запутывать наш кабель, что бы его хватило на ДВА ключа:

7 Несимметричные ключи.

Обращаю Ваше вниманиена то, что слева и справа стоят буквы a,..,g БЕЗ штрихов. Т.е. каждый проводок в нашей схеме, откуда вышел, туда и пришёл. А теперь берём ножницы и из нашего перепутанного кабеля делаем ДВА ключа: К1 и К2.



Зачем нам две половинки одного ключа?! Дело в том, что совместно они выполняют передачу без шифрования, а между ними выполняется передача зашифрованного сообщения. Вот как это происходит:



Назовём один из этих ключей (любой) публичным и вывесим его в любом публичном месте: на афишной тумбе, на Вашей страничке в иНете или на специализированном сайте публичных (открытых) ключей входящих в PKI. Что такое PKI я сейчас объяснять не буду, просто скажу, что если Вы желаете написать зашифрованное письмо Васе Пупкину, то зайдите на один из сайтов (любой) входящих в PKI и поищите там Васю Пупкина. Если Василий выложил свой публичный ключ - Вы его найдёте.



Соответственно, вторую (оставшуюся) половинку ключа Вы храните у себя под семью запорами и никуда не выносите. Эта половинка ключа называется приватной, или секретной. Теперь понятно, почему этот метод называется шифрованием с НЕсимметричным ключом?



Итак, мы желаем написать письмо Васе Пупкину так, что бы даже АНБ его не могло вскрыть. По шагам:

1. Скачиваем себе ПУБЛИЧНЫЙ ключ Васи Пупкина (пусть это К1).

2. Имея этот ключ и программу PGP (GnuPG) шифруем письмо до границы между ключами К1 и К2.

3. Отпраляем обычной почтой. Прочитать его, не имея К2 невозможно.

4. Василий, получив наше письмо, использует ту же самую программу и свой ПРИВАТНЫЙ ключ К2. Письмо расшифровано!
5, Если он захочет нам ответить, то он ищет наш ПУБЛИЧНЫЙ ключ, пишет письмо, шифрует и ...



Вот, собственно, и всё! На сегодняшний день прямых законодательных запретов на использование PGP в России нет. Законодательно ограничивается использование криптографии только в государственных и муниципальных учреждениях. ФСБ предписывает всем государственным структурам использовать только сертифицированные средства криптографии. Список можно посмотреть здесь: http://infosystems.ru/assets/files/library/spravochnik_IB/sved_po_sertif.pdf




Стойкость к взлому



В 2010 году группе учёных из Швейцарии, Японии, Франции, Нидерландов, Германии и США удалось декодировать данные, зашифрованные по алгоритму RSA при помощи ключа длиной 768 бит. Нахождение простых сомножителей осуществлялось общим методом решета числового поля . На первый шаг (выбор пары полиномов степени 6 и 1) было потрачено около полугода вычислений на 80 процессорах, что составило около 3 % времени, потраченного на главный этап алгоритма (просеивание), который выполнялся на сотнях компьютеров в течение почти двух лет. Если интерполировать это время на работу одного процессора AMD Opteron 2,2 ГГц с 2 ГБ оперативной памяти, то получилось бы порядка 1500 лет.



Исследователи уверены, что с использованием их метода факторизации взломать 1024-битный RSA-ключ будет возможно в течение следующего десятилетия.

По словам исследователей, после их работы в качестве надёжной системы шифрования можно рассматривать только RSA-ключи длиной 1024 бита и более. Причём от шифрования ключом длиной в 1024 бит стоит отказаться в ближайшие три-четыре года.



В переводе на человеческий: ещё несколько лет можно пользоваться ключами 1024 бита и НИКТО вас не вскроет. Потом рекомендуется перейти на ключи длиной 2048 бит. Хотя расчёт ключа занимает довольно много времени, но выполняется он один раз. А скорость самого процесса шифрования от длины ключа зависит не сильно.




Так можно отдать ключи шифрования?



Хотя я не разбирался с исходным кодом мессенджера telegram, но на 100% уверен, что в нём используется вариант шифрования с несимметричным ключом. Открытые ключи пользоваелей лежат где-то в свободном доступе (и что бы их получить не надо устраивать истерику на весь мир), а приватные ключи лежат на компах пользователей и П. Дуров, даже если бы захотел, просто физически не смог бы их передать в ФСБ. Для меня это очевидно.



Когда адвокаты П. Дурова в суде пытались это объяснить, судья вынес решение, в котором сказано, что "ответчик не представил убедительных доказательств, того, что у него не хранятся ключи". Тут есть два крючка:

Первый заключается в том, что ОТВЕТЧИК не обязан предоставлять доказательство того, что он НЕ совершал преступление. Во всём мире. во всех юридических системах, принят принйип "Бремя доказательства лежит на стороне обвинения". Ты обвинил - ты и доказывай. Однако в басманном правосудии действует другой принцип: "Ты виноват уж тем, что хочется мне кушать!". (И.А. Крылов)



Второй - логическая ошибка. Невозможно ДОКАЗАТЬ (тем более - убедительно), что чего-то нет. Попробуйте верующему человеку доказать, что Бога нет :-) Ну, или гораздо проще: попробуйте в суде убедительно доказать, что у Вас нет голубой рубашки в зелёный горошек. :-) Какая именно контора выдаст Вам соответствующую справку с печатью? :-)

Но всё это ничего не значит в российской действительности. Начальник РосКомНадзор-а - Александр Александрович Жаров, он по образованию - человек самой гуманной профессии: врач! И аж 9 лет работал по специальности. Специальность - самая подходящая для начальника фирмы по копьютерным технологиям! Поэтому, он днём бегает - IP-шники банит (уже 19 миллионов забанил), а ночью, усталый спит и видит сладкие сны. Вот такие:

8 Сон Александра Александровича

Увы и ах... В реальной жизни всё несколько хуже. :-( А почему он так не любит интернет вообще и "телеграм" в частности? Тема эта давня. А.А. Жаров когда-то защитил дисер на звание кандидата медицинских наук. Тему оцените: «Медико-гигиенические основы формирования здорового образа жизни в Российской Федерации». Это вам не гудрон жевать! В свою «диссертацию» Жаров тупо переписал два государственных доклада, подготовленных Департаментом госсанэпиднадзора Минздрава России и Федеральным центром госсанэпиднадзора Минздрава России в 1998 и в 2002 г., без ссылок на источник, разумеется. В списке авторов докладов Жарова конечно нет и быть не могло. (https://nikitich.livejournal.com/1435192.html)

А интернет (диверсия ЦРУ против России), в лице "Диссернета" мгновенно это обнаружил. Александ Александрович сильно обиделся! А потом подумал-подумал , да и заблокировал сайт "Диссернета". Но, результат оказался такой же, как в его борьбе с Телеграммом - нулевой. Сейчас любой может зайти по ссылке (http://wiki.dissernet.org/wsave/ZharovAA2003.html) и посмтреть сам, что именно и откуда спер уважаемый член вертикали власти :-)



Я очень старался всё объяснить попроще! Получилось ?