Практическое применение асимметричной криптографии — ПИПМАЙ: Лучшее со всей сети
Акцентный цвет
Фон
Игровой блок на главной
Праздничное оформление
Для всех устройств

Практическое применение асимметричной криптографии

Аннотация. Это копипаста моего старого поста сами знаете откуда. Описывает метод обмена шифрованными сообщениями по открытому каналу, когда зашифровать сообщение может кто угодно, а расшифровать - только получатель.

Далее, немного теории. Если вам это читать утомительно, можете сразу переходить к практике.

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

Окау. Более надёжный и вполне рабочий вариант - запросить почту или какую-нибудь ещё контактную информацию. Но тогда ею сможет воспользоваться также любой пользователь (грубо говоря, я, например, прошу Васю Пупкина скинуть мне на почту информацию о том, как его найти в городе Мухосранске, мою почту видит злоумышленник, представляется Васей и присылает мне адрес бара Blue Oyster... Ну и т.д. по сценарию).

Другой вариант - зашифровать сообщение. 

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

А вот асимметричное шифрование - штука более интересная. Там сообщение зашифровывается с помощью одного ключа (который называется публичным), а расшифровывается уже другим (приватным). Основывается это всё на односторонних функциях и всякой сложной математике, здесь я не буду об этом рассказывать, т.к. информация об этом есть в свободных источниках, и лучше, чем там, я вам её рассказать не смогу. Зато наврать или забыть что-нибудь - всегда пожалуйста.

В общем, давным-давно, трое товарищей с фамилиями Rivest, Shamir и Adleman, придумали такой алгоритм шифрования и назвали его первыми буквами своих фамилий: RSA. Алгоритм оказался достаточно криптостойким и используется до сих пор. Но нам важно то, что сейчас имеются онлайн сервисы, позволяющие шифровать ваш текст этим алгоритмом прямо в браузере.

Теперь практика. Чтобы иметь возможность получить зашифрованное сообщение, нам нужна пара ключей: публичного и приватного. Лучше хранить их где-нибудь в надёжном месте. Соответственно, если хотим получить сообщение, просто пишем что-то типа: "Я хочу получить сообщение, вот мой публичный ключ: ...". 

Если же мы хотим отправить сообщение определённому пользователю, пишем ему что-то типа: "Эй, дружище, у меня есть для тебя важная информация, дай мне, пожалуйста, свой публичный ключ!"

Далее, отправитель шифрует сообщение полученным публичным ключом, передаёт его по открытому каналу (т.е. в комментарии). Получатель же расшифровывает его своим приватным ключом.

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

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

Зато следующий сервис уже работал более стабильно. Даже удалось с его помощью обменяться парой сообщений с добрым человеком. Поэтому на его примере и разберём, что и как делать. Хотя, по факту, тем, кто знаком с криптографией и умеет читать интерфейс, всё и так должно быть ясно.

Здесь у нас генератор ключей. Ведь нельзя же просто взять две рандомные строки и объявить их своими ключами? В выпадающем поле выбирается размер ключа. Чем он больше, тем более стойким будет шифр (каждый дополнительный бит увеличивает сложность полного перебора в 2 раза). Судя по википедии, даже для подбора 1024-битного ключа понадобится довольно много времени... Но, если я ошибаюсь, всегда можно взять ключ побольше.

Короче, выбираем размер ключа, нажимаем кнопку "Generate", и копируем содержание полей Public Key и Private Key куда-нибудь в надёжное место. Для примера, я сгенерировал пару ключей, которые буду использовать в посте. Приватный ключ получается более длинным, чем публичный.

Теперь шифрование.

В первое поле вводим ваш текст, а во второе - публичный ключ получателя (следим, чтобы с ключом не скопировалось ничего лишнего, типа символа переноса строки). Далее зачем-то нам предоставляется выбор того, какой ключ мы ввели (зачем это нужно, я не понимаю, т.к. при шифровании используется только публчный ключ) и тип шифра. Думаю, ничего страшного, если мы ничего не будем трогать, а просто нажмём кнопку и скопируем из третьего поля полученный текст. Ещё один нюанс - длина сообщения не должна превышать 117 байт. Но это не большая проблема, т.к. этого более чем достаточно, чтобы передать какую-нибудь коротенькую ссылку на текст, изображение или страничку в ВК.

Расшифровка.

Сначала вставляем зашифрованное сообщение, потом свой длинный приватный ключ. Тип ключа и шифра не трогаем. И нажимаем кнопочку. Получаем исходный текст. Вот и вся практика. 

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

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


Раскрыть
Собственно, если кто-то хочет мне здесь что-то сказать по открытому каналу, вот мой ключ:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6SOdEI+1ad+8gruRrXJsn7BrB4Yl/uZDXzPSEgb4lokNQCUj3cuAoVqw1d9wt9cdAsw3okUakeCqCxYupjGFS8k0l/fqxI+YxCVf/2SzaPJ4BA6/1NLubv8Sunk6bd9EQsObABwc5RhHQdmwB93NHwyp4hisFYby/Ym9MWEg0+QIDAQAB
+1
2 Нырнуть
2
AAAADAZJ9D5YXrerRtDTmvrNa6vrsSK4IxZb/4HHDg67vHTfQ73k63t2KR+z1JRjRQrf

Изображение
0
3 Нырнуть
3
Обычно, текст, зашифрованный там с этим ключом, заканчивается на =. Как этот (сам для себя зашифровал):
HNEXoq40nRnlAEnZtospVkGxfc6SqH87q9RIMh1OtegX0vCwfNfRkNJhkCHwMD1hkE6rhfVKx2VkFgNfCwZhHtHIwK1IXGsOlKjyd7xl9E8qUXg73rtmFqwX8x/L43Ahzshm7zk84bXzES49d0xvppCZPel2+nipoyVF+RgCrIc=
0
4 Нырнуть
4
Шифрование же может проводиться разным софтом? Главное чтобы ключ был записан без ошибок?
+1
5 Нырнуть
5
В теории, да. На практике же, у всех своя реализация. Так что, вероятно, будет удобнее использовать один и тот же сервис. Либо вообще свой городить.
+1
6 Нырнуть
7 Нырнуть
7
Ну, тот сервис, что я предложил, твоё сообщение не расшифровывает.
0
#Шифруем чтонибудь прикольное, например промокод 5% на питоний корм в специализированном магазине 
#пишем пост на пыкабэ что зашифровали прикольную фигню.
#в качестве подсказки даем ключевые фразы из этого поста, которые через гугл и приведут сюда.
#наблюдаем и приветствуем любителей корма-на-халяву
+3
Всё верно.
Но.
Модераторы Пикабу могут начать банить пользователей, выкладывающих свои публичные ключи. Просто потому что могут.
Надо как-то хитрее. Как? Я всю голову сломал, но ничего не придумал. Тем более, нас прямо сейчас читают модеры Пикабу.
+1
2 Нырнуть
2
Угу. С учётом того, с какой скоростью они меняют свои же правила…
+3
2
2 года назад
Комментарий удалён
3 Нырнуть
4 Нырнуть
4
2 года назад
Комментарий удалён

Новые комментарии

Синдром «винтика»: почему тихое решение отойти в сторону — это тоже поступок?

RuCyberPioneer
1 день назад

Цитата Нимёллера сильная, но вы путаете две абсолютно разные вещи: равнодушное соучастие и осознанное несотрудничество.
Пастор Нимёллер писал о людях, которые продолжали работать на систему, платить ей налоги, выполнять её приказы и молча отворачиваться, пока она уничтожала их соседей. Это как раз позиция трусливого «винтика», о котором я писал в посте. Эти люди не сделали «тихий выбор» — они выбрали быть частью машины, надеясь, что их не тронут.
А концепция Ганди, Толстого или того же Бориса Пастернака — это совершенно другое. Это активный отказ быть шестеренкой. Это когда ты говоришь: «Я не буду писать на соседа донос, я не буду подписывать этот подлый протокол, я не пойду ловить людей, я уволюсь с этой работы и пойду сажать картошку». Если бы в Германии 1930-х годов машинисты поездов, клерки в министерствах и обычные рабочие массово сделали такой «тихий выбор» и просто остались дома со своими семьями — нацисты физически не смогли бы построить свои лагеря. Им бы просто некем было выполнять приказы.
 Истинный выбор — это не поставить галочку на чужом бланке раз в несколько лет. Это каждый день выбирать оставаться Человеком на своем рабочем и бытовом месте.
На этом дискуссию со своей стороны закрываю. Каждый выбирает сам. Удачи на выборах!

Синдром «винтика»: почему тихое решение отойти в сторону — это тоже поступок?

BuhBuhov
1 день назад

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

© Нимёллер Мартин

Да, я не пойду с вилами на сельсовет. Но на выборы схожу обязательно.

+1
Синдром «винтика»: почему тихое решение отойти в сторону — это тоже поступок?

RuCyberPioneer
1 день назад

Большинство людей добровольно сдают свои принципы в краткосрочную аренду ради иллюзии безопасности. Кажется: ну, я сейчас молча подпишу эту сомнительную бумагу по указке сверху, промолчу на собрании, где откровенно травят человека, или поддакну агрессивной толпе — и меня пронесет, я в домике. Не пронесет. Как только человек соглашается стать послушным слепым винтиком, он перестает принадлежать себе и система перемалывает его личность первой.Истинная зрелость и здравый смысл начинаются там, где ты осознаешь: у тебя всегда есть выбор не приумножать бред. Не нужно лезть на баррикады — достаточно просто вернуть себе управление своей жизнью. Перестать кормить чужие маятники своими эмоциями, заняться делом, созидать на своем месте и не соучаствовать в том, что разрушает твою личность. Это позиция хозяина своей жизни. Тот, кто этого до сих пор не понял, так и проживет жизнь чужим расходным материалом

У вас только помирать!

BuhBuhov
3 дня назад

Ну не знаю, не знаю. Чтобы записаться к гастроэнтерологу, сначала пришлось записаться к терапевту. Благо к нему за день-два можно записаться. Терапевт выдал направление, я пошел на сестринский пост и меня записали через две недели. Не два месяца конечно, но и не пара часов. Если человеку хреново уже сейчас, а к врачу можно попасть только через две недели, это как-бы намекает на безысходность. Даже к платному гастроэнтерологу ближе чем на 2-3 дня не записаться. Но цены там сейчас такие, что не каждый может себе позволить… По факту, если что хреновое приключится, то только скорая может помочь, а так можно ложиться и помирать.

+1
Cетевой игрулькин, нейрослоп.

WseGa
4 дня назад

Иногда бывает, да. Надо будет подумать, может что то типа виньетки сделать как в вр — там помогает тем кто не справляется с вестибулярной.

+2
Cетевой игрулькин, нейрослоп.

WseGa
4 дня назад

Автоген иногда сбоит:-( 

+2
Cетевой игрулькин, нейрослоп.

BuhBuhov
4 дня назад

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

+2
Cетевой игрулькин, нейрослоп.

Zakradnopodkradnoy
4 дня назад

Можно позалипать, но нашёл небольшой баг — противник не может из помещения выйти, так как нет дверей :)

+1
6 роз

BuhBuhov
4 дня назад

Bahama! Bahama Mama!
На бутылку не дает родная мама!

+1
Нейрослоповая залипуха (Игра)

WseGa
4 дня назад

Надо в англ раскладке чтобы было

+1
Проклятый старый дом

Admin
7 дней назад

видел кино наше, где чёрныые риэлторы так и работли — пенсам давали норм вариант в обмен на их старый, но там была «закладка»  в стене с радиационной хтонью

+2
Проклятый старый дом

Surinamski
8 дней назад

В стенке был замурован источник гамма-излучения

+2
Проклятый старый дом

DoctorrHamster
8 дней назад

И чё там было? 

+2
Проклятый старый дом

Surinamski
9 дней назад

В одной квартире а Краматорске тоже умирали люди один за одним....

+2
Новый страшный супь

DoctorrHamster
12 дней назад

Короче, у желчного может быть тупо спазм. Отсюда и боли 

+2