Асимметричное шифрование

Общая схема

В настоящее время симметричные шифры — это:

  • блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
  • поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных размером вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что значительно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путём обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.

Общая схема

В настоящее время симметричные шифры — это:

  • блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
  • поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных размером вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что значительно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путём обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.

Симметричное шифрование

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

Этот метод довольно прост и поэтому не требует много времени. При передаче больших объемов данных предпочтительны симметричные ключи. Шифр Цезаря оказался хорошим примером симметричного шифрования. Современные подходы к симметричному шифрованию используют такие алгоритмы, как RC4, AES, DES, 3DES, QUAD, Blowfish и др.

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

Хеш-функции

Хешированием (от англ. hash) называется преобразование исходного информационного массива произвольной длины в битовую строку фиксированной длины.

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

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

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

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

Примеры хеш-алгоритмов

  • Adler-32
  • CRC
  • SHA-1
  • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
  • HAVAL
  • MD2
  • MD4
  • MD5
  • N-Hash

  • RIPEMD-256
  • RIPEMD-320
  • Skein
  • Snefru
  • Tiger (TTH)
  • Whirlpool
  • ГОСТ Р34.11-94 (ГОСТ 34.311-95)
  • IP Internet Checksum (RFC 1071)

Что собой представляют «устойчивые числа»?

Для защиты шифрования должны использоваться устойчивые числа p и q. Они необходимы для выявления свойств, затрудняющих получение множителей. Одним из таких являются главные делители: p – 1 и p + 1. Это позволяет создать защиту от определения множителей различными методами, которые можно применять только в отношении небольших делителей. Использование устойчивых чисел даже закреплено в правилах некоторых стандартов, например, ANSI X9.31.

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

Общая схема

В настоящее время симметричные шифры — это:

  • блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами. Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
  • поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных размером вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что значительно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)

Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путём обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.

Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.

Различия симметричного и асимметричного шифрования

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

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

Асимметричное шифрование позволяет устанавливать безопасное соединения без особых усилий пользователей. Симметричное шифрование, наоборот, требует от пользователя использования пароля для получения данных.

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

Генерировать пароли в симметричном алгоритме на много проще в отличие от ассиметричных алгоритмов.

Основные сведения

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

Классическими примерами таких алгоритмов являются симметричные криптографические алгоритмы, перечисленные ниже:

  • Простая перестановка
  • Одиночная перестановка по ключу
  • Двойная перестановка
  • Перестановка «Магический квадрат»

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

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

Перестановка «Магический квадрат»

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

Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000

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

В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу — 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

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

16. 3 и 2 р 13 д
5 з 10 е 11 г 8 ю
9 С 6 ж 7 а 12 о
4 е 15 я 14 н 1 П

После этого шифрованный текст записывается в строку (считывание производится слева направо, построчно):
.ирдзегюСжаоеянП

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

Что такое асимметричная криптография?

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

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

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

Основные сведения

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

Классическими примерами таких алгоритмов являются симметричные криптографические алгоритмы, перечисленные ниже:

  • Простая перестановка
  • Одиночная перестановка по ключу
  • Двойная перестановка
  • Перестановка «Магический квадрат»

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

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

Перестановка «Магический квадрат»

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

Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000

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

В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу — 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

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

16. 3 и 2 р 13 д
5 з 10 е 11 г 8 ю
9 С 6 ж 7 а 12 о
4 е 15 я 14 н 1 П

После этого шифрованный текст записывается в строку (считывание производится слева направо, построчно):
.ирдзегюСжаоеянП

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

Виды симметричных шифров

блочные шифры
  • AES (англ. Advanced Encryption Standard) — американский стандарт шифрования
  • ГОСТ 28147-89 — советский и российский стандарт шифрования, также является стандартом СНГ
  • DES (англ. Data Encryption Standard) — стандарт шифрования данных в США
  • 3DES (Triple-DES, тройной DES)
  • RC2 (Шифр Ривеста (Rivest Cipher или Ron’s Cipher))
  • RC5
  • Blowfish
  • Twofish
  • NUSH
  • IDEA (International Data Encryption Algorithm, международный алгоритм шифрования данных)
  • CAST (по инициалам разработчиков Carlisle Adams и Stafford Tavares)
  • CRAB
  • 3-WAY
  • Khufu и Khafre
  • Kuznechik
потоковые шифры
  • RC4 (алгоритм шифрования с ключом переменной длины)
  • SEAL (Software Efficient Algorithm, программно-эффективный алгоритм)
  • WAKE (World Auto Key Encryption algorithm, алгоритм шифрования на автоматическом ключе)

Виды асимметричного шифрования

В настоящее время действует более 10 систем шифрования асимметричным методом. Самая распространенная это RSA. Алгоритм, часто применяется для защиты программного обеспечения, с использованием схем цифровой подписи.

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

Elgamal распространенный в России способ проверки цифровой подписи. Разработанный алгоритм надёжно защищает ресурс от компрометации. В 1994 году был создан ГОСТ Р 34.10-94. На его основе был разработан собственный метод шифрования асимметричным способом в виде ГОСТ Р 34.10-2012.

Основные сведения

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

Классическими примерами таких алгоритмов являются симметричные криптографические алгоритмы, перечисленные ниже:

  • Простая перестановка
  • Одиночная перестановка по ключу
  • Двойная перестановка
  • Перестановка «Магический квадрат»

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

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

Перестановка «Магический квадрат»

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

Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000

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

В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу — 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

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

16. 3 и 2 р 13 д
5 з 10 е 11 г 8 ю
9 С 6 ж 7 а 12 о
4 е 15 я 14 н 1 П

После этого шифрованный текст записывается в строку (считывание производится слева направо, построчно):
.ирдзегюСжаоеянП

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

Главные условия построения шифрования

Шифрование асимметричным способом строится по следующему принципу:

  1. Переменная P, взятая из функции Y x (mod P),должна при зашифровке не вычисляться при попытках её взлома. Это означает, что простым или сложным перебором значений машинным методом скомпрометировать параметр невозможно.
  2. Из Р должно браться вычлененное значение. Основной показатель такого решения должен заключаться в доступности его расшифровки за полиномиальное линейное время соразмерно объёму задачи.
  3. Полученный вычлененный параметр ещё раз по установленному значению модифицируется. В итоге получает измененное значение Р, которое полностью отличается от исходного.
  4. Конечное значение имеет инструкцию по расшифровке. Начальное и вычлененное значение переменной Р остаётся скрытой.

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

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

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий