Как составить секретный алфавит — Сайт, где вы сможете решить свои вопросы

Элементарные шифры на понятном языке

Время на прочтение
4 мин

Количество просмотров 236K

Привет, Хабр!

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

Прежде всего, разберемся в терминологии.

Шифрование – это такое преобразование исходного сообщения, которое не позволит всяким нехорошим людям прочитать данные, если они это сообщение перехватят. Делается это преобразование по специальным математическим и логическим алгоритмам, некоторые из которых мы рассмотрим ниже.

Исходное сообщение – это, собственно, то, что мы хотим зашифровать. Классический пример — текст.

Шифрованное сообщение – это сообщение, прошедшее процесс шифрования.

Шифр — это сам алгоритм, по которому мы преобразовываем сообщение.

Ключ — это компонент, на основе которого можно произвести шифрование или дешифрование.

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

Теперь, когда мы говорим на более-менее одном языке, разберем простые шифры.

  • Шифр Атбаша

Самый-самый простой шифр. Его суть – переворот алфавита с ног на голову.

Например, есть у нас алфавит, который полностью соответствует обычной латинице.

a b c d e f g h i j k l m n o p q r s t u v w x y z

Для реализации шифра Атбаша просто инвертируем его. «А» станет «Z», «B» превратится в «Y» и наоборот. На выходе получим такую картину:

И теперь пишем нужное сообшение на исходном алфавите и алфавите шифра

Исходное сообщение: I love habr
Зашифрованное: r olev szyi

  • Шифр Цезаря

Тут добавляется еще один параметр — примитивный ключ в виде числа от 1 до 25 (для латиницы). На практике, ключ будет от 4 до 10.

Опять же, для наглядности, возьмем латиницу

a b c d e f g h i j k l m n o p q r s t u v w x y z

И теперь сместим вправо или влево каждую букву на ключевое число значений.

Например, ключ у нас будет 4 и смещение вправо.

Исходный алфавит: a b c d e f g h i j k l m n o p q r s t u v w x y z
Зашифрованный: w x y z a b c d e f g h i j k l m n o p q r s t u v

Пробуем написать сообщение:

hello world

Шифруем его и получаем следующий несвязный текст:

dahhk sknhz
  • Шифр Вернама (XOR-шифр)

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

Исходный алфавит — все та же латиница.

Сообщение разбиваем на отдельные символы и каждый символ представляем в бинарном виде.
Классики криптографии предлагают пятизначный код бодо для каждой буквы. Мы же попробуем изменить этот шифр для кодирования в 8 бит/символ на примере ASCII-таблицы. Каждую букву представим в виде бинарного кода.

Теперь вспомним курс электроники и элемент «Исключающее ИЛИ», также известный как XOR.

XOR принимает сигналы (0 или 1 каждый), проводит над ними логическую операцию и выдает один сигнал, исходя из входных значений.

Если все сигналы равны между собой (0-0 или 1-1 или 0-0-0 и т.д.), то на выходе получаем 0.
Если сигналы не равны (0-1 или 1-0 или 1-0-0 и т.д.), то на выходе получаем 1.

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

Например:

сообщение: LONDON
ключ: SYSTEM

Переведем их в бинарный код и выполним XOR:

01001100 01001111 01001110 01000100 01001111 01001110
01010011 01011001 01010011 01010100 01000101 01001101
_______________________________________________________
00011111 00010110 00011101 00010000 00001010 00000011

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

31 22 29 16 10 3. 

С виду — совершенно несвязный набор чисел, но мы-то знаем.

  • Шифр кодового слова

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

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

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

Придумаем кодовое слово. Например, «Лукоморье». Выдернем из него все повторяющиеся символы. На выходе получаем слово «Лукомрье».

Теперь вписываем данное слово в начале алфавита, а остальные символы оставляем без изменений.

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

Как найти работу в жэу — Сайт, где вы сможете решить свои вопросы

К сожалению по вашему запросу вакансий не найдено

Но не стоит унывать, мы подготовили для Вас меры для решения вопроса Вашего трудоустройства:

Подпишись на рассылку — сразу сообщим, как только подходящая вакансия появится на сайте!

Размести резюме на нескольких сайтах одновременно — так лучше. Можем сделать это за тебя — у нас есть специальный сервис! Подробнее ...

Как найти свою клиентскую базу — Сайт, где вы сможете решить свои вопросы

Одна из основных проблем для каждого владельца бизнеса – как найти клиентов. Поскольку именно от них зависит успешность предпринимателя. Если клиентов не будет – даже самый успешный старт-ап (по мнению его основателя) не достигнет результата и потерпит крах. Поэтому крайне важно не только создавать качественный продукт/услугу, но и понимать, где найти клиентов. В этой статье я расскажу, как и какими методами искать клиентов. Рекомендации и советы будут полезны не только начинающим предпринимателям, но и тем, кто владеет бизнесом уже много лет. Привет, друзья! С вами Юрий Бошников! Хотите узнать, как увеличить клиентскую базу? Читайте мою новую статью. Подробнее ...

Как исправить ошибку 1073 в поинт бланк виндовс 7 — Сайт, где вы сможете решить свои вопросы

Войти или зарегистрироваться

  • Форум

    Форум

    • Поиск сообщений
    • Последние сообщения

    Пользователи

    • Выдающиеся пользователи
    • Сейчас на форуме
    • Недавняя активность
    • Модераторы
    • Новые сообщения профиля

    Меню

    • Проекты

    • Искать только в заголовках
    Сообщения пользователя:

    Имена участников (разделяйте запятой).

    Новее чем:
    • Искать только в этой теме
    • Искать только в этом разделе
      • Отображать результаты в виде тем

      Быстрый поиск

      • Последние сообщения

      Больше… Подробнее ...

Как составить счет на топливо — Сайт, где вы сможете решить свои вопросы

Иллюстрация: Светлана Семина/«Клерк»

Нормы расхода на ГСМ

Компания, которая имеет в собственности, аренде или безвозмездном пользовании автотранспортное средство, должна вести учет поступления и расхода горюче-смазочных материалов (далее — ГСМ). Подробнее ...

Видеоурок как найти площадь прямоугольного параллелепипеда — Сайт, где вы сможете решить свои вопросы

Содержание:

  • § 1  Понятие прямоугольного параллелепипеда
  • § 2  Площадь прямоугольного параллелепипеда

§ 1  Понятие прямоугольного параллелепипеда

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

Итак, что же такое прямоугольный параллелепипед? Это такая объемная фигура, которая состоит из 6 прямоугольников, каждый из которых называют гранью прямоугольного параллелепипеда. Подробнее ...

Как быстро найти все фото на компьютере — Сайт, где вы сможете решить свои вопросы

Вы когда-нибудь переносили фотографии на свой компьютер, а затем забывали, где вы их сохранили? Я предполагаю, что да. Такое происходит со всеми. Вот простой способ найти все фотографии на компьютере под управлением операционной системы Windows 10. Подробнее ...

Как найти время руд — Сайт, где вы сможете решить свои вопросы

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

Как найти вектор в ортогональном базисе — Сайт, где вы сможете решить свои вопросы

Как найти координаты вектора в базисе

Решение:
Записываем матрицу перехода А:

и находим ее определитель
<>0
Видим, что ранг матрицы С равен трем. Из теоремы о базисном миноре векторы f1 , f2 , f3 линейно независимы, а поэтому могут быть приняты в качестве базиса пространства R 3 .
Находим обратную матрицу А -1 .
Транспонированная матрица: Подробнее ...

Архангелы как найти своего архангела — Сайт, где вы сможете решить свои вопросы

У нас есть два типа Ангелов: Ангелы-Хранители и Архангелы.

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