Симметричные методы шифрования заключаются в том, что обе стороны-участники обмена данными имеют абсолютно одинаковые ключи для шифрования и расшифровки данных. Сохранение ключа в секретности является важной задачей для установления и поддержки защищённого канала связи.
Далее представлены наиболее известные алгоритмы симметричного шифрования.
Шифр замены (Цезаря)
Шифр Цезаря — это вид шифра подстановки, в котором каждый символ в открытом тексте заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите.
Например, в шифре со сдвигом вправо на 2, А была бы заменена на В, Б станет Г, и так далее.
Шифр назван в честь римского императора Гая Юлия Цезаря, использовавшего его для секретной переписки со своими генералами.
Пример.
а |
б |
в |
г |
д |
е |
ё |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
Исходный текст : егор
Ключ: 3 влево
Следовательно, шифр: валн.
Способ Полибия
К каждому языку отдельно составляется таблица шифрования с одинаковым (не обязательно) количеством пронумерованных строк и столбцов, параметры которой зависят от его мощности (количества букв в алфавите). Берутся два целых числа, произведение которых ближе всего к количеству букв в языке — получаем нужное число строк и столбцов. Затем вписываем в таблицу все буквы алфавита подряд — по одной на каждую клетку. При нехватке клеток можно вписать в одну две буквы (редко употребляющиеся или схожие по употреблению).
1 |
2 |
3 |
4 |
5 |
|
1 |
А |
Б |
В |
Г |
Д |
2 |
Е/Э |
Ж |
З |
И/Й |
К |
3 |
Л |
М |
Н |
О |
П |
4 |
Р/С |
Т |
У |
Ф/Х |
Ц |
5 |
Ч |
Ш/Щ |
Ы |
Ю |
Я |
Идею формирования таблицы шифрования проиллюстрируем для русского языка. Число букв в русском алфавите отличается от числа букв в греческом алфавите, поэтому размер таблицы выбран другой (квадрат 5/5=25, путём объединений символов в одну клетку).
Пример с ключом 1 вниз:
Буква текста |
Е |
Г |
О |
Р |
Буква шифротекста |
Л |
И |
Ф |
Ч |
Из слова ЕГОР получили ЛИФЧ.
Модификация способа Полибия
Буквы могут вписываться в таблицу в произвольном порядке — заполнение таблицы в этом случае и является ключом. Для латинского алфавита в первую клетку можно вписать одну из 25 букв, во вторую — одну из 24, в третью — одну из 23 и т. д. Получаем максимальное количество ключей для шифра на таблице латинского алфавита:
N = 25*24*23*...*2*1 = 25!
Соответственно для дешифрования сообщения потребуется не только знание алфавита, но и ключа, с помощью которого составлялась таблица шифрования. Но произвольный порядок букв тяжело запомнить, поэтому пользователю шифра необходимо постоянно иметь при себе ключ — квадрат. Появляется опасность тайного ознакомления с ключом посторонних лиц. В качестве компромиссного решения был предложен ключ — ОРГАН. Пароль выписывается без повторов букв в квадрат; в оставшиеся клетки в алфавитном порядке выписываются буквы алфавита, отсутствующие в пароле.
1 |
2 |
3 |
4 |
5 |
|
1 |
О |
Р |
Г |
А |
Н |
2 |
Б |
В |
Д |
Е/Э |
Ж |
3 |
З |
И/Й |
К |
Л |
М |
4 |
П |
С/Т |
У |
Ф |
Ц |
5 |
Ч |
Ш/Щ |
Ы |
Ю |
Я |
Пример с ключом 1 вниз:
Буква текста |
Е |
Г |
О |
Р |
Буква шифротекста |
Л |
Д |
Б |
В |
Из слова ЕГОР получили ЛДБВ.
На рисунке ниже представлена программа реализующая данный алгоритм симметричного шифрования. В данной программе реализовано задание ключа и исходного текста, возможность скрыть текст и ключ, а также задать направление сдвига.
Рисунок 1 - Модификация метода Полибия
Шифр замены Гронсфельда
Этот шифр сложной замены, называемый шифром Гронсфельда, представляет собой модификацию шифра Цезаря числовым ключом. Для этого под буквами исходного сообщения записывают цифры числового ключа. Если ключ короче сообщения, то его запись циклически повторяют. Шифртекст получают примерно, как в шифре Цезаря, но отсчитывают по алфавиту не третью букву (как это делается в шифре Цезаря), а выбирают ту букву, которая смещена по алфавиту на соответствующую цифру ключа. Например, применяя в качестве ключа группу из пяти цифр, а именно 12321, получаем для исходного сообщения “ЕГОР ЕСТ АБРИКОС” следующий шифртекст:
а |
б |
в |
г |
д |
е |
ё |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
_ |
. |
, |
Ключ: 12234 (считать с 0).
Е |
Г |
О |
Р |
_ |
Е |
С |
Т |
_ |
А |
Б |
Р |
И |
К |
О |
С |
|||||||||
1 |
2 |
3 |
2 |
1 |
1 |
2 |
3 |
2 |
1 |
1 |
2 |
3 |
2 |
1 |
1 |
|||||||||
шифр: |
||||||||||||||||||||||||
Ё |
Е |
С |
Т |
. |
Ё |
У |
Х |
, |
Б |
В |
Т |
Л |
М |
П |
Т |
Как можно заметить, что если ключ шифра Гронсфельда состоит из одной цифры или если в ключе все цифры будут одинаковы, то получается цифр Цезаря.
Ниже представлен скриншот программы реализующий данный метод.
Рисунок 2 - Шифр замены Гронсфельда
Метод Виженера
Алгоритм:
1) сообщение пишется в строчку;
2) придумываем короткий ключ;
3) подписываем его под строчкой;
4) символ сообщения в первой строчке
Символ ключа в первом столбце
Пересечение и есть шифр.
Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста. Следующие символы зашифрованного текста расшифровываются подобным образом.
Если буквы A—Z соответствуют числам 0—25, то шифрование Виженера можно записать в виде формулы:
Расшифровка:
Выбирается ключевое слово и исходный текст. Ключевое слово записывается циклически, пока не заполнит всю длину исходного текста. Далее по таблице буквы ключа и исходного текста пересекаются в таблице и образуют зашифрованный текст.
Рисунок 5 – Таблица Виженера
Есть ключевое слово, которое записывается циклически, пока не заполнит всю длину исходного сообщения. Далеена пересечении букв ключевого слова и сообщения получаем символы шифрованного текста.
Пример
Рисунок 3 - Шифрование методом Виженера
Ассиметричное шифрование
Метод асимметричного шифрования (или метод открытого ключа) предполагает использовать в паре два разных ключа – открытый и секретный. Открытый ключ (public key) свободно распространяется в сети, в то время как секретный ключ (private key) всегда держится в секрете. В асимметричном шифровании ключи работают в паре – если данные шифруются открытым ключом, то расшифровать их можно только соответствующим секретным ключом и наоборот – если данные шифруются секретным ключом, то расшифровать их можно только соответствующим открытым ключом. Использовать открытый ключ из одной пары и секретный с другой – невозможно. Каждая пара асимметричных ключей связана математическими зависимостями.
Шифрование методом RSA
RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) — криптографический алгоритм с открытым ключом, основывающийся на вычислительной сложности задачи факторизации больших целых чисел.
Алгоритм:
1)набираем 2 простых числа p и q;
2)вычисляется число n=p*q;
3)вычисляется R=(p-1)*(q-1);
4)выбирается большое случайное число d такое, чтобы оно было взаимно простым с числом R;
5)найдем такое число e для которого выполняется (d*e)modR=1;
6)открытый ключ – это (e,n), закрытый ключ это – (d,n);
7)шифрование выполняется так: каждый символ исходного письма переводим в число, получаем шифротекст по формуле , расшифровка по .
Пример.
Исходный текст: КОЛБАСА.
Открытый ключ: (e=53; n=1927)
Закрытый ключ: (d=1597; n=1927)
Зашифрованный текст :
c =[ 455, 684, 896, 1513, 662, 1016, 662]
Расшифрованный текст: КОЛБАСА
Рисунок 4 - RSA-шифрование
Электронная цифровая подпись
Электронная цифровая подпись (ЭЦП) — реквизит электронного документа, полученный в результате криптографического преобразования информации с использованием закрытого ключа подписи и позволяющий проверить отсутствие искажения информации в электронном документе с момента формирования подписи (целостность), принадлежность подписи владельцу сертификата ключа подписи (авторство), а в случае успешной проверки подтвердить факт подписания электронного документа (неотказуемость).
Электронная подпись предназначена для определения лица, подписавшего электронный документ, и является аналогом собственноручной подписи в случаях, предусмотренных законом.
Электронная подпись применяется при совершении гражданско-правовых сделок, оказании государственных и муниципальных услуг, исполнении государственных и муниципальных функций, при совершении иных юридически значимых действий.
Хэш-функции
Хеширование (англ. hashing) — преобразование по определённому алгоритму входного массива данных произвольной длины в выходную битовую строку фиксированной длины. Такие преобразования также называются хеш-функциями или функциями свёртки, а их результаты называют хешем, хеш-кодом, хеш-суммой или сводкой сообщения
Поскольку подписываемые документы — переменного (и как правило достаточно большого) объёма, в схемах ЭП зачастую подпись ставится не на сам документ, а на его хэш. Для вычисления хэша используются криптографические хэш-функции, что гарантирует выявление изменений документа при проверке подписи. Хэш-функции не являются частью алгоритма ЭП, поэтому в схеме может быть использована любая надёжная хэш-функция.
Использование хэш-функций даёт следующие преимущества:
Вычислительная сложность. Обычно хэш цифрового документа делается во много раз меньшего объёма, чем объём исходного документа, и алгоритмы вычисления хэша являются более быстрыми, чем алгоритмы ЭП. Поэтому формировать хэш документа и подписывать его получается намного быстрее, чем подписывать сам документ.
Совместимость. Большинство алгоритмов оперирует со строками бит данных, но некоторые используют другие представления. Хэш-функцию можно использовать для преобразования произвольного входного текста в подходящий формат.
Целостность. Без использования хэш-функции большой электронный документ в некоторых схемах нужно разделять на достаточно малые блоки для применения ЭП. При верификации невозможно определить, все ли блоки получены и в правильном ли они порядке.
Использование хэш-функции не обязательно при электронной подписи, а сама функция не является частью алгоритма ЭП, поэтому хэш-функция может использоваться любая или не использоваться вообще.
MD5-hash
MD5 (англ. Message Digest 5) — 128-битный алгоритм хеширования, разработанный профессором Рональдом Л. Ривестом из Массачусетского технологического института (Massachusetts Institute of Technology, MIT) в 1991 году. Предназначен для создания «отпечатков» или дайджестов сообщения произвольной длины и последующей проверки их подлинности. Широко применялся для проверки целостности информации и хранения паролей в закрытом виде.
Пример.
Хэшируемая строка: Курс доллара заметно вырос
Хэш: 8f1fdc41732bc3685c773aacf63a1d35
Рисунок 5 - md5-hash
Список литературы:
https://ru.m.wikipedia.org/wiki/Шифр_Цезаря
https://dic.academic.ru/dic.nsf/ruwiki/1518509
https://nightquests.ru/knowledgebases/shifr-gronsfelda/
https://dic.academic.ru/dic.nsf/ruwiki/702589
http://www.michurin.net/computer-science/rsa.html
https://habr.com/ru/sandbox/26876/