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

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

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

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

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

Окау. Более надёжный и вполне рабочий вариант - запросить почту или какую-нибудь ещё контактную информацию. Но тогда ею сможет воспользоваться также любой пользователь (грубо говоря, я, например, прошу Васю Пупкина скинуть мне на почту информацию о том, как его найти в городе Мухосранске, мою почту видит злоумышленник, представляется Васей и присылает мне адрес бара 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
3 года назад
Комментарий удалён
3 Нырнуть
4 Нырнуть
4
3 года назад
Комментарий удалён

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

Просто привет. Ну привет, и всё тут!

Admin
15 часов назад

ты все верно понял по отсылке))

Просто привет. Ну привет, и всё тут!

Admin
16 часов назад

Георгий, это ж интернет, отношение на «ты» тут — база. ВОт введут когда вход по паспортам, с вероятностью выхватить по е — баллу, тогда все будут в сети вежливые

+1
Просто привет. Ну привет, и всё тут!

BuhBuhov
17 часов назад

Для того, чтобы относиться к человеку с уважением, нужно чтобы этот человек заслужил это уважение. А иначе, судишь по человеку по тому, что он пишет в интернете. Если человек постит херню, то уважения он не заслуживает. И к нему можно обращаться на «ты». Раз уж надо напомнить, то напоминаю — мы в интернете. И тут нет необходимости пить с человеком на брудершафт, чтобы называть его на ты.Изображение

Просто привет. Ну привет, и всё тут!

Георгий Куприянов
1 день назад

Запостил как раз для того, чтобы токсики прибежали со своим критиканством :)
Напомните, пожалуйста, кто вы и давно ли мы на «ты» перешли.
Я не «Жора», а Георгий.

-1
Просто привет. Ну привет, и всё тут!

Admin
2 дня назад

не не не, главжаб тут не причемИзображение

+1
Покажи питомца

CBeTJIR4ok
2 дня назад

Взяли потому что отцепить от руки не смогли, так домой и принесли :))) красавчик Изображение

Просто привет. Ну привет, и всё тут!

BuhBuhov
2 дня назад

Экак ты господем сам себя обозвал...Изображение

Просто привет. Ну привет, и всё тут!

Admin
2 дня назад

квакай всего — господь разберётся

+2
Просто привет. Ну привет, и всё тут!

BuhBuhov
2 дня назад

Жора, ты зачем эту вырвиглазную херню в шесть утра воскресенья запостил? Люди спят еще! А ты им по глазам...

-1
Ну почти

BuhBuhov
2 дня назад

Последний раз, когда я ходил к гастроэнтерологу по записи, я был записан на 11-30. Я пришел ко времени. Но в коридоре сидели люди записанные на 10-45, 11-00, 11-15. А еще были те, кто записан на 12 и 12-30. Я не знаю, почему они пришли так рано, но они там были. И медсестра просто вызывает по фамилиям в порядке записи. А на время насрать. Врач работает с каждым значительно дольше чем положено по распорядку, поэтому очередь есть. Будучи записанным на полдвенадцатого, я вышел из ее кабинета в полвторого.

Просто привет. Ну привет, и всё тут!

Что бы такого наквакать?
Изображение

-1
Ну почти

DoctorrHamster
3 дня назад

К нашему хер попадешь. Человек работает на четверть ставки

+1
Ну почти

Admin
3 дня назад

ежели по записи — откуда ей появиться? он вроде вцелом не принимает без записи, и там очередей обычно нет — 2-3 чел в коридоре обычно

Ну почти

BuhBuhov
3 дня назад

К гастроэнтерологу нет очереди? Что-то из области фантастики.Изображение