Шифрование почтовой переписки. Практическое пособие. Как передавать зашифрованные сообщения по почте и в чате

Вы когда-нибудь задумывались, как получить код, но только для определенных людей? Это называется шифрованием. Шифрование воспринимает что-то вроде текста и помешает / смешивает его, чтобы никто не мог его прочитать, кроме людей, которые могут его расшифровать. Расшифровка принимает этот испорченный текст и делает его нормальным / читаемым снова. В этой статье вы узнаете, как использовать цифровые медиа-способы для шифрования сообщений.

О ЧЁМ СТАТЬЯ?

Способ 1. Использование программного обеспечения для шифрования

1. Выйдите в онлайн

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

2. Выберите пароль

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

3. Введите текст в поле.

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

  • Измените размер шрифта в тексте.
  • Отредактируйте семейство шрифтов в тексте.
  • Измените формат шрифта в тексте.
  • Изменение цвета текста.
  • Изменение цвета фона.
  • Добавьте ссылки на текст.

4. Выберите, что вы хотите с ним сделать

  • Шифрование позволяет шифровать текст в нечитаемую версию.
  • Расшифровка расшифровывает текст в оригинальной версии.
  • Очистить обновляет страницу для начала.

5. Соберите свой зашифрованный текст

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

6. Расшифруйте его

Вы также захотите проверить его расшифровку, прежде чем отправлять его своим друзьям для расшифровки; для этого просто выполните одно и то же — введите пароль, который вы выбрали при его шифровании. Затем вставьте зашифрованный текст в том же поле, которое вы положили, когда хотите его зашифровать, и на этот раз вместо того, чтобы выбирать шифрование, выберите вариант расшифровки.

Способ 2. Использование программы Writing

1. Откройте программу записи на своем компьютере

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


2. Введите текст, который вы хотите зашифровать

3. Добавьте случайные числа между буквами для их шифрования

Это должно выглядеть как на картинке, сопровождающей этот шаг.

Удалите все пробелы.

Необходимость в шифровании переписки возникла еще в древнем мире, и появились шифры простой замены. Зашифрованные послания определяли судьбу множества битв и влияли на ход истории. Со временем люди изобретали все более совершенные способы шифрования.

Код и шифр - это, к слову, разные понятия. Первое означает замену каждого слова в сообщении кодовым словом. Второе же заключается в шифровании по определенному алгоритму каждого символа информации.

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

Стеганография

Стеганография старше кодирования и шифрования. Это искусство появилось очень давно. Оно буквально означает «скрытое письмо» или «тайнопись». Хоть стеганография не совсем соответствует определениям кода или шифра, но она предназначена для сокрытия информации от чужих глаз.

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

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

ROT1 и шифр Цезаря

Название этого шифра ROTate 1 letter forward, и он известен многим школьникам. Он представляет собой шифр простой замены. Его суть заключается в том, что каждая буква шифруется путем смещения по алфавиту на 1 букву вперед. А -> Б, Б -> В, ..., Я -> А. Например, зашифруем фразу «наша Настя громко плачет» и получим «общб Обтуа дспнлп рмбшеу».

Шифр ROT1 может быть обобщен на произвольное число смещений, тогда он называется ROTN, где N - это число, на которое следует смещать шифрование букв. В таком виде шифр известен с глубокой древности и носит название «шифр Цезаря».

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

Транспозиционные или перестановочные шифры

Данные виды шифра простой перестановки более серьезны и активно применялись не так давно. В Гражданскую войну в США и в Первую мировую его использовали для передачи сообщений. Его алгоритм заключается в перестановке букв местами - записать сообщение в обратном порядке или попарно переставить буквы. Например, зашифруем фразу «азбука Морзе - тоже шифр» -> «акубза езроМ - ежот рфиш».

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

Азбука Морзе

Азбука является средством обмена информации и ее основная задача - сделать сообщения более простыми и понятными для передачи. Хотя это противоречит тому, для чего предназначено шифрование. Тем не менее она работает подобно простейшим шифрам. В системе Морзе каждая буква, цифра и знак препинания имеют свой код, составленный из группы тире и точек. При передаче сообщения с помощью телеграфа тире и точки означают длинные и короткие сигналы.

Телеграф и азбука был тем, кто первый запатентовал «свое» изобретение в 1840 году, хотя до него и в России, и в Англии были изобретены подобные аппараты. Но кого это теперь интересует... Телеграф и азбука Морзе оказали очень большое влияние на мир, позволив почти мгновенно передавать сообщения на континентальные расстояния.

Моноалфавитная замена

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

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

Известно, что Мария I, королева Шотландии с 1561 по 1567 г., использовала очень сложный шифр моноалфавитной замены с несколькими комбинациями. И все же ее враги смогли расшифровать послания, и информации хватило, чтобы приговорить королеву к смерти.

Шифр Гронсфельда, или полиалфавитная замена

Простые шифры криптографией признаны бесполезными. Поэтому множество из них было доработано. Шифр Гронсфельда — это модификация шифра Цезаря. Данный способ является значительно более стойким к взлому и заключается в том, что каждый символ кодируемой информации шифруется при помощи одного из разных алфавитов, которые циклически повторяются. Можно сказать, что это многомерное применение простейшего шифра замены. Фактически шифр Гронсфельда очень похож на рассмотренный ниже.

Алгоритм шифрования ADFGX

Это самый известный шифр Первой мировой войны, используемый немцами. Свое имя шифр получил потому, что приводил все шифрограммы к чередованию этих букв. Выбор самих же букв был определен их удобством при передаче по телеграфным линиям. Каждая буква в шифре представляется двумя. Рассмотрим более интересную версию квадрата ADFGX, которая включает цифры и называется ADFGVX.

A D F G V X
A J Q A 5 H D
D 2 E R V 9 Z
F 8 Y I N K V
G U P B F 6 O
V 4 G X S 3 T
X W L Q 7 C 0

Алгоритм составления квадрата ADFGX следующий:

  1. Берем случайные n букв для обозначения столбцов и строк.
  2. Строим матрицу N x N.
  3. Вписываем в матрицу алфавит, цифры, знаки, случайным образом разбросанные по ячейкам.

Составим аналогичный квадрат для русского языка. Например, создадим квадрат АБВГД:

А Б В Г Д
А Е/Е Н Ь/Ъ А И/Й
Б Ч В/Ф Г/К З Д
В Ш/Щ Б Л Х Я
Г Р М О Ю П
Д Ж Т Ц Ы У

Данная матрица выглядит странно, так как ряд ячеек содержит по две буквы. Это допустимо, смысл послания при этом не теряется. Его легко можно восстановить. Зашифруем фразу «Компактный шифр» при помощи данной таблицы:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Фраза К О М П А К Т Н Ы Й Ш И Ф Р
Шифр бв гв гб гд аг бв дб аб дг ад ва ад бб га

Таким образом, итоговое зашифрованное послание выглядит так: «бвгвгбгдагбвдбабдгвдваадббга». Разумеется, немцы проводили подобную строку еще через несколько шифров. И в итоге получалось очень устойчивое к взлому шифрованное послание.

Шифр Виженера

Данный шифр на порядок более устойчив к взлому, чем моноалфавитные, хотя представляет собой шифр простой замены текста. Однако благодаря устойчивому алгоритму долгое время считался невозможным для взлома. Первые его упоминания относятся к 16-му веку. Виженер (французский дипломат) ошибочно считается его изобретателем. Чтобы лучше разобраться, о чем идет речь, рассмотрим таблицу Виженера (квадрат Виженера, tabula recta) для русского языка.

Приступим к шифрованию фразы «Касперович смеется». Но, чтобы шифрование удалось, нужно ключевое слово — пусть им будет «пароль». Теперь начнем шифрование. Для этого запишем ключ столько раз, чтобы количество букв из него соответствовало количеству букв в шифруемой фразе, путем повтора ключа или обрезания:

Теперь по как по координатной плоскости, ищем ячейку, которая является пересечением пар букв, и получаем: К + П = Ъ, А + А = Б, С + Р = В и т. д.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Шифр: Ъ Б В Ю С Н Ю Г Щ Ж Э Й Х Ж Г А Л

Получаем, что "касперович смеется" = "ъбвюснюгщж эйхжгал".

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

Следует также упомянуть, что помимо абсолютно случайного ключа может быть использована совершенно разная таблица Виженера. В данном случае квадрат Виженера состоит из построчно записанного русского алфавита со смещением на единицу. Что отсылает нас к шифру ROT1. И точно так же, как и в шифре Цезаря, смещение может быть любым. Более того, порядок букв не должен быть алфавитным. В данном случае сама таблица может быть ключом, не зная которую невозможно будет прочесть сообщение, даже зная ключ.

Коды

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

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

В 20-м веке многие государства для передачи секретных данных использовали коды, меняя кодовую книгу по прошествии определенного периода. И они же активно охотились за книгами соседей и противников.

"Энигма"

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

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

Взломать "Энигму" активно пытались в течение всей военной кампании Гитлера. В Англии в 1936 г. для этого построили один из первых вычислительных аппаратов (машина Тьюринга), ставший прообразом компьютеров в будущем. Его задачей было моделирование работы нескольких десятков "Энигм" одновременно и прогон через них перехваченных сообщений нацистов. Но даже машине Тьюринга лишь иногда удавалось взламывать сообщение.

Шифрование методом публичного ключа

Самый популярный из алгоритмов шифрования, который используется повсеместно в технике и компьютерных системах. Его суть заключается, как правило, в наличии двух ключей, один из которых передается публично, а второй является секретным (приватным). Открытый ключ используется для шифровки сообщения, а секретный — для дешифровки.

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

Рассмотрим простой пример. Пусть публичным ключом будет 905. Его делителями являются числа 1, 5, 181 и 905. Тогда секретным ключом будет, например, число 5*181. Вы скажете слишком просто? А что если в роли публичного числа будет число с 60 знаками? Математически сложно вычислить делители большого числа.

В качестве более живого примера представьте, что вы снимаете деньги в банкомате. При считывании карточки личные данные зашифровываются определенным открытым ключом, а на стороне банка происходит расшифровка информации секретным ключом. И этот открытый ключ можно менять для каждой операции. А способов быстро найти делители ключа при его перехвате — нет.

Стойкость шрифта

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

На сегодняшний день не существует единых стандартов, по которым можно было бы оценить стойкость шифра. Это трудоемкий и долгий процесс. Однако есть ряд комиссий, которые изготовили стандарты в этой области. Например, минимальные требования к алгоритму шифрования Advanced Encryption Standart или AES, разработанные в NIST США.

Для справки: самым стойким шифром к взлому признан шифр Вернама. При этом его плюсом является то, что по своему алгоритму он является простейшим шифром.

Хотелось бы вам иметь возможность шифровать ваши переписки в социальной сети Вконтакте? Для чего? У каждого из нас могут быть свои причины:

  • вы не хотите, чтобы ваша вторая половинка знала о том, что вы пишете своим друзьям, когда договариваетесь с последними о встрече, или сюрприз;
  • или вы не против, чтобы переписка оставалась непонятной для всех людей, которые имеют доступ к вашему компьютеру (родственники, коллеги, гости и т.д.);
  • вы хотите пофлиртовать с кем-то, но не хотите, чтобы кто-то ревнивый об этом узнал (чем черт не шутит?);
  • возможно, в вашей голове уже созрел другой план использования зашифрованных переписок.

    Что же, если вы являетесь счастливым обладателем устройства под управлением Android 4.0+, то вам сможет помочь приложение "Вк Шифр".

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

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

    Далее загружается список диалогов. Выбираем нужный, видим историю сообщений и начинаем общаться. Через вкладку "Друзья" на левой панели навигации можно сделать аналогичные вещи. Все весьма просто и интуитивно понятно.

    Переходим к главной функции приложения, а именно - к шифрованию сообщений. Почувствовать себя шпионом также оказалось нетрудно: всплывающий экран объяснил, что необходимо кликнуть по пустому квадрату внизу экрана, после чего в нем должна появиться галочка. И это все! В этом режиме все сообщения будут отправляться зашифрованными. В вашем приложении ВК это будет выглядеть приблизительно так: "3q4eqd!NB?+8LsaZLs". Одинаковые слова в разных диалогах шифруются по-разному, что оставило приятное впечатление о технической части проекта.

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

    Теперь несколько слов о вложениях. К сообщению можно прикрепить ваши аудио, видео (или использовать поиск) или фото из любой галереи вашего телефона. Именно здесь я заметил одну из самых интересных функций приложения - шифрование вложений. В браузере или ВК-приложении это будет выглядеть, как 3-4 строки непонятного текста, но прикрепленной картинки, аудио или видео вы не увидите! Таким образом, к списку причин в начале статьи присоединится шифрование фотографий, которые будут видны только вам и собеседнику, уверен, именно эта функция будет чаще всего использоваться.

    Ну а сейчас несколько слов о минусах (по крайней мере, о тех, которые я заметил). Видно, что приложение разрабатывала не профессиональная команда, что проявляется:

    (объективно)

  • в довольно резких переходах и загрузках (на телефонах 2012-), которые можно было бы устранить "мягкими" анимациями;
  • скорость работы приложения ниже, чем у ВК. То ли это из-за экономии ресурсов телефона и интернет-трафика, то ли из-за ограничений ВК - не знаю; больше всего это заметно в оповещениях, когда разница (между официальным приложением и "Вк Шифр") составляет от 3 до 5 секунд;
  • в отсутствии функции восстановления пароля (ах да, для особо скрытных людей в приложении есть функция установки пароля, абсолютно не связанного с аккаунтом ВК, который запрашивается при входе в приложение);

    (субъективно, чего лично мне не хватает)

  • в отсутствии поиска по диалогам, истории переписок;
  • в нехватке некоторых других функций ВК, которые сделали бы приложение альтернативой классического ВК;
  • в наличии рекламы (не баннерной, а полноэкранной), но где ее сейчас нет?
  • в отсутствии возможности создания своего ключа шифрования.

    В завершение скажу, что по обновлениям приложения заметил, что команда старается и добавляет новые функции, так что есть надежда, что со временем они и до моих минусов доберутся (не считая предпоследнего, конечно). Думаю, проект смело можно назвать интересным, т.к. аналогов для Android я так и не нашел.

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

    В связи с этим я бы поставил твердые 8 баллов из 10 возможных, 4 звезды из 5, 12,8 бит из их 16-битного ключа (см. описание на Google Play, и да, я знаю, что бит - "неделимая частица" для программистов), как хотите.

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

    Спасибо за терпение, благодаря которому вы дочитали мой обзор! Всего вам доброго!

  • Решите, что за секретное послание вы собираетесь отправить. Оно должно быть значительно меньше, чем само письмо. Длинное секретное сообщение в коротком письме вызовет подозрения из-за своей внешней недостоверности. Это крайне деликатный вопрос баланса. Чем длиннее ваш основной текст по сравнению с секретным сообщением, тем легче будет писать и сложнее вычислить, как друзьям, так и врагам.

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

    • Акростих, возможно, самый известный пример. В акростихе секретное послание читается в каждой первой букве каждой строки (или предложения и т.д.). Акростих очень легко составить, но также легко и вычислить.
    • Используйте числа, чтобы зашифровать письмо. Существует несколько способов, включая: A=1 Я=33, ASCII, Атомные числа, или любые другие известные числовые списки. Преимущество этого метода в том, что вы можете использовать числа в чистом виде, не вызывая сомнения, например, чтобы указать дату или время. В противном случае, существует много других способов преобразования слов в числа, используя более хитрые добавления. Это должно быть хорошо известно как отправителю, так и адресату - профессор искусствоведения должен знать, что От реализма до постимпрессионизма относится к его учебному курсу 441, но большинство людей этого не могут знать, или историк, специализирующийся на Греции, узнает даты, связанные с падением Афин.
    • Берите каждую энную букву. Естественно, что наиболее сложные предложения могут быть использованы вместо арифметической последовательности. Одна проблема этого метода в том, что слишком недолговечен. Даже единственная буква, добавленная или убранная из письма, может изменить смысл всего сообщения. С некоторыми другими методами сообщение можно восстановить, даже если большая часть письма утеряна, исправлена или трудна для чтения.
    • Используйте слова с необычными параметрами. Учитывая стандартное расположение клавиш на клавиатуре, можно написать слова, используя какой-то один ряд, например, рабы , метис , дорога и книгу . Если выписать все буквы, выпадающие из общего ряда, то получится слово БЕГИ. Все слова, которые не подходят под этот параметр, отсеиваются.
    • Используйте неестественную частоту повторения букв. В повседневном языке не так уж и много слов, в которых может повториться каждая буква алфавита, но их можно с легкостью использовать, чтобы добавить лишнюю букву.
    • Вставляйте ошибки. Если в письме обычно грамотным отправителем будут допущены ошибки в правописании, значит они были сделаны намеренно. Ошибки в правописании можно легко вставить в текст, так что можете вставлять какое угодно секретное послание в ваше письмо.
  • Чтобы получить более сложный метод, используйте несколько техник сразу. Существует риск, что тщательно скрытое секретное послание может быть не расшифровано адресатом. Или если его даже обнаружат, оно может быть настолько натянутым, что это можно посчитать чистым совпадением, а не намеренным знаком. В качестве примера, взгляните на критику в адрес исследования кодов в Библии. Хотя запутанное сообщение и может быть обнаружено, не может быть полной уверенности в том, что оно было вставлено в письмо намеренно. Какие бы ни были методы, когда они используются в достаточно длинном тексте, их довольно сложно вычислить. Секретное послание через выделение каждой первой буквы каждого слова может оказаться слишком слабым сигналом, но может стать более явным при выполнении некоторых дополнительных шагов. Использование акростиха, чтобы сказать Только буквы, пропускать пробелы и пунктуацию , поможет с легкостью вычислить его и громко заявить Здесь есть послание. Продолжай искать! Беря в расчет слишком часто встречающиеся числа в основном тексте, все они простые, получатель письма может понять, на какое предложение указывает отправитель. Слово простой может часто использоваться в нечисловом контексте в основном тексте и/или указывать на другой метод.

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

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

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

    Шифрование данных - непременный хакерский ритуал, в котором каждый применяет свой набор утилит. Если для десктопных ОС выбор предлагается большой, то в мобильных операционках пока доступны единичные приложения. Мы обратили внимание на новое творение разработчика SJ Software - PGPTools. Первая версия этой программы вышла в апреле. За полгода список поддерживаемых платформ существенно расширился. Теперь он включает Windows 10, Windows Phone, iOS (8.0 и выше), OS X (начиная с 10.9) и Android (4.0 и новее). Для тестирования была выбрана последняя версия PGPTools v.1.10 под ОС Android. Стоит программа почти восемьдесят рублей, так что мы скинулись всей редакцией и приступили к ее изучению.

    WARNING

    Вся информация получена в ходе собственных исследований и предоставлена исключительно в ознакомительных целях. Анализ содержит субъективную оценку и не претендует на полноценный аудит приложения.

    Встречают по интерфейсу

    Еще до установки программы становится очевидно, что ее авторы придерживаются минималистических взглядов. В инсталляционном пакете PGPTools занимает полтора мегабайта, а после установки - всего пять с половиной. Радует и то, что список запрашиваемых разрешений состоит ровно из одного пункта - записи на карту памяти. Никакой отправки СМС, доступа в интернет и к личным сведениям ей не требуется.


    Интерфейс утилиты тоже крайне прост и легок в освоении. С одной стороны, это позволяет быстро в ней разобраться, а с другой - вызывает легкую тоску по привычным менюшкам с длинными списками настроек. В текущей версии PGPTools можно только задать пароль и выбрать длину ключа. Зато программа позволяет создать несколько пар ключей и управлять ими из отдельной вкладки. Здесь можно выбрать текущий ключ и желаемые действия с ним. Поддерживается экспорт (через буфер обмена или функцию «передать»), а также возможен импорт ранее созданных PGP-ключей.

    Использование PGPTools

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


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

    Упрощенно говоря, публичным ключом письмо шифруют перед отправкой, а секретным дешифруют после получения. Это как бы цифровая реализация замка с защелкой: захлопнуть дверь с ним может любой, а вот открыть - только владелец ключа. Мы сделали на пробу две пары ключей: минимально (1024 бита) и максимально (4096 бит) возможной длины.

    INFO

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

    Основная панель в PGPTools носит такое же название. Она переключается между двумя режимами: шифрованием и дешифрованием. Ее вид зависит от того, какой ключ был ранее выбран на панели key list - публичный или секретный.

    Зашифровать любой текст с помощью PGPTools можно в пару кликов. Для этого достаточно вставить его в поле с подсказкой Enter source из любого источника и нажать кнопку Encrypt. Шифрование будет выполнено с использованием выбранного ранее публичного ключа.


    Расшифровать его чуть сложнее. Нужно выбрать секретный ключ (парный использованному для шифрования публичному) и ввести пароль, заданный при их совместной генерации. Блок зашифрованного текста также вставляется в поле источника, а результат дешифровки отображается ниже после нажатия кнопки Decrypt.


    Основное назначение PGPTools как программы с асимметричной схемой шифрования состоит в защите переписки (в частности, почты) с возможностью передать ключ собеседнику по ненадежному каналу. Если бы один и тот же ключ использовался для шифрования/дешифрования сообщений, то его перехват скомпрометировал бы всю переписку. Перехват открытых ключей практически бесполезен. Обменявшись ими, можно сразу начать обмен зашифрованными сообщениями. После создания их не открыть даже отправителю. Это может сделать только получатель - своим секретным ключом и после ввода парольной фразы.

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

    Пара (тысяч) слов об алгоритме

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

    Выбор алгоритмов сейчас доступен очень широкий. Именно он в большой степени влияет на качество конкретной реализации PGP. Обычно используют AES и RSA, а из хеш-функций выбирают ту, что, по современным представлениям, наименее подвержена коллизиям (RIPEMD-160, SHA-256). В PGPTools для шифрования данных используется алгоритм IDEA, для управления ключами и цифровой подписи - RSA. Хеширование происходит с помощью функции MD5.

    Сам многостадийный процесс (де)шифрования данных у любой программы реализован в одном из наборов общедоступных криптографических библиотек. Все создаваемые PGPTools ключи содержат в названии версии BCPG, что косвенно указывает на использование Bouncy Castle OpenPGP API. При проверке этого предположения в файле com.safetyjabber.pgptools.apk было обнаружено прямое указание на библиотеки Bouncy Castle.

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

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


    С четырехкилобитными ключами ситуация выглядит иначе. Отличающихся фрагментов в паре слишком мало (они выделены красным), а совпадающих - чересчур много.


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


    Утешительный вывод

    Выявленные в ходе тестирования недостатки носят общий характер. Они типичны для многих программ, поскольку касаются кода не самого приложения, а используемых в нем популярных библиотек. Криптографическое сообщество рекомендует разработчикам избегать Bouncy Castle OpenPGP. Мы надеемся, что в следующих версиях авторы PGPTools возьмут за основу более продвинутые реализации.

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

    Спецпроект с компанией SJ