Схема шифрования с открытым ключом
Пусть — пространство ключей, а и — ключи шифрования и расшифрования соответственно. — функция шифрования для произвольного ключа , такая что: Здесь , где — пространство шифротекстов, а , где — пространство сообщений. — функция расшифрования, с помощью которой можно найти исходное сообщение , зная шифротекст : { : } — набор шифрования, а { : } — соответствующий набор для расшифрования. Каждая пара имеет свойство: зная , невозможно решить уравнение , то есть для данного произвольного шифротекста , невозможно найти сообщение . Это значит, что по данному невозможно определить соответствующий ключ расшифрования . является односторонней функцией, а — лазейкой.[3] Ниже показана схема передачи информации лицом А лицу В. Они могут быть как физическими лицами, так и организациями и так далее. Но для более лёгкого восприятия принято участников передачи отождествлять с людьми, чаще всего именуемыми Алиса и Боб. Участника, который стремится перехватить и расшифровать сообщения Алисы и Боба, чаще всего называют Евой. 1. Боб выбирает пару и шлёт ключ шифрования (открытый ключ) Алисе по открытому каналу, а ключ расшифрования (закрытый ключ) защищён и секретен (он не должен передаваться по открытому каналу). 2. Чтобы послать сообщение Бобу, Алиса применяет функцию шифрования, определённую открытым ключом : , — полученный шифротекст. 3. Боб расшифровывает шифротекст , применяя обратное преобразование , однозначно определённое значением . Применение Алгоритмы криптосистемы с открытым ключом можно использовать[7] · как самостоятельное средство для защиты передаваемой и хранимой информации, · как средство распределения ключей (обычно с помощью алгоритмов криптосистем с открытым ключом распределяют ключи, малые по объёму, а саму передачу больших информационных потоков осуществляют с помощью других алгоритмов), · как средство аутентификации пользователей. Преимущества Преимущества асимметричных шифров перед симметричными: · Не нужно предварительно передавать секретный ключ по надёжному каналу. · Только одной стороне известен ключ шифрования, который нужно держать в секрете (в симметричной криптографии такой ключ известен обеим сторонам и должен держаться в секрете обеими). · Пару можно не менять значительное время (при симметричном шифровании необходимо обновлять ключ после каждого факта передачи). · В больших сетях число ключей в асимметричной криптосистеме значительно меньше, чем в симметричной. Недостатки Недостатки алгоритма несимметричного шифрования в сравнении с симметричным: · В алгоритм сложнее внести изменения. · Хотя сообщения надежно шифруются, но получатель и отправитель самим фактом пересылки шифрованного сообщения «засвечиваются».[8][уточнить] · Более длинные ключи. Требования к криптографическим алгоритмам 2. Использование ключа для шифрования и дешифрования. 2. Длина ключа исключает возможность его подбора за приемлемый интервал времени с использованием современной вычислительной техники. 3. Знание алгоpитма шифpования не влияет на надежность защиты. 4. Сложность алгоритма генерации подключей шифрования вычисления. 5. Высокая чувствительность результата шифрования к изменения начальных данных. 6. Высокая чувствительность результата шифрования к изменениям ключа. 7. длина шифpованного текста = длине исходного текста.
№ 6 Поточные и блочные шифры. Принципы блочного шифрования. Шифр Файстеля. Пото́чный шифр — это симметричный шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста. Поточный шифр реализует другой подход к симметричному шифрованию, нежели блочные шифры. Простейшая реализация поточного шифра изображена на рисунке. Генератор гаммывыдаёт ключевой поток (гамму): . Обозначим поток битов открытого текста . Тогда поток битов шифротекста получается с помощью применения операции XOR: , где . Расшифрование производится операцией XOR между той же самой гаммой и зашифрованным текстом: . Очевидно, что если последовательность битов гаммы не имеет периода и выбирается случайно, то взломать шифр невозможно. Но у данного режима шифрования есть и отрицательные особенности. Так ключи, сравнимые по длине с передаваемыми сообщениями, трудно использовать на практике. Поэтому обычно применяют ключ меньшей длины (например, 128 бит). С помощью него генерируется псевдослучайная гаммирующая последовательность ( она должна удовлетворять постулатам Голомба). Естественно, псевдослучайность гаммы может быть использована при атаке на поточный шифр. Блочный шифр — разновидность симметричного шифра [1] , оперирующего группами бит фиксированной длины — блоками, характерный размер которых меняется в пределах 64 — 256 бит. Если исходный текст (или его остаток) меньше размера блока, перед шифрованием его дополняют. Фактически, блочный шифр представляет собой подстановку на алфавите блоков, которая, как следствие, может быть моно- или полиалфавитной. [2] Блочный шифр является важной компонентой многих криптографических протоколов и широко используется для защиты данных, передаваемых по сети. Блочный шифр состоит из двух парных алгоритмов: шифрования и расшифрования. Оба алгоритма можно представить в виде функций. Функция шифрования E (англ. encryption — шифрование) на вход получает блок данных M (англ. message — сообщение) размером n бит и ключ K (англ. key — ключ) размером k бит и на выходе отдает блок шифротекста C (англ. cipher — шифр) размером n бит: Для любого ключа K, EK является биективной функцией (перестановкой) на множестве n-битных блоков. Функция расшифрования D (англ. decryption — расшифрование) на вход получает шифр C, ключ K и на выходе отдает M: являясь, при этом, обратной к функции шифрования: и Заметим, что ключ, необходимый для шифрования и дешифрования, один и тот же — следствие симметричности блочного шифра. Структура блочного алгоритма симметричного шифрования Таким образом, в алгоритмах симметричного шифрования часто используются операции сложения по модулю 2, сложения по модулю 216 или 232, циклического сдвига, замены и перестановки. Эти операции циклически повторяются в алгоритме N раз, образуя так называемые раунды или шаги. Исходными данными для каждого раунда являются выход предыдущего раунда и ключ, который получен по определенному алгоритму из общего ключа шифрования K. Ключ раунда называется подключомКi. Блочные алгоритмы шифрования применяются к двоичным данным. В общем случае процедура блочного шифрования преобразовывает n-битный блок открытого текста в k-битный блок зашифрованного текста. Число блоков длины n равно 2n. Для того чтобы преобразование было обратимым, каждый из таких блоков должен преобразовываться в свой уникальный блок зашифрованного текста. Длина блока всегда выбирается равной степени двойки, например, 64, 128, 256 бит. Сеть Фе́йстеля (конструкция Фейстеля) — один из методов построения блочных шифров. Сеть представляет собой определённую многократно повторяющуюся (итерированную) структуру, называющуюся ячейкой Фейстеля. При переходе от одной ячейки к другой меняется ключ, причём выбор ключа зависит от конкретного алгоритма. Операции шифрования и расшифрования на каждом этапе очень просты, и при определённой доработке совпадают, требуя только обратного порядка используемых ключей. Шифрование при помощи данной конструкции легко реализуется как на программном уровне, так и на аппаратном, что обеспечивает широкие возможности применения. Большинство современных блочных шифров используют сеть Фейстеля в качестве основы. Альтернативой сети Фейстеля являетсяподстановочно-перестановочная сеть.
Шифрование Рассмотрим случай, когда мы хотим зашифровать некоторую информацию, представленную в двоичном виде в компьютерной памяти (например, файл) или электронике, как последовательность нулей и единиц. · Вся информация разбивается на блоки фиксированной длины. В случае, если длина входного блока меньше, чем размер, который шифруется заданным алгоритмом, то блок удлиняется каким-либо способом. Как правило длина блока является степенью двойки, например: 64 бита, 128 бит. Далее будем рассматривать операции происходящие только с одним блоком, так как с другими в процессе шифрования выполняются те же самые операции. · Выбранный блок делится на два равных подблока — «левый» ( ) и «правый» ( ). · «Левый подблок» видоизменяется функцией в зависимости от раундового ключа , после чего он складывается по модулю 2 с «правым подблоком» . · Результат сложения присваивается новому левому подблоку , который будет половиной входных данных для следующего раунда, а «левый подблок» присваивается без изменений новому правому подблоку (см. схему), который будет другой половиной. · После чего операция повторяется N-1 раз, при этом при переходе от одного этапа к другому меняются раундовые ключи ( на и т. д.) по какому-либо математическому правилу, где N — количество раундов в заданном алгоритме. [править]Расшифрование Расшифровка информации происходит так же, как и шифрование, с тем лишь исключением, что ключи идут в обратном порядке, то есть не от первого к N-ному, а от N-го к первому. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|