Что такое «ключи шифрования»
Государство, в лице начальника РосКомНадзора - Александра Александровича Жарова объявило войну до победного конца. Крушит всё подряд и уже заблокировало 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) и посмтреть сам, что именно и откуда спер уважаемый член вертикали власти :-)
Я очень старался всё объяснить попроще! Получилось ?
Источник:
117 комментариев
6 лет назад
Удалить комментарий?
Удалить Отмена6 лет назад
Вот если бы каждый себе сам их генерировал, разными програмулинами сторонними, тогда и спроса не было бы.
Удалить комментарий?
Удалить Отмена6 лет назад
Удалить комментарий?
Удалить Отмена6 лет назад
Она генерирует весь узел, который потом режется на сегменты. При этом копия всего узла остается за Телеграмм...
Это моё мнение, я бы так сделал.
Удалить комментарий?
Удалить Отмена6 лет назад
Удалить комментарий?
Удалить Отмена