Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology_konspekt.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.09 Mб
Скачать

Раздел четвертый

1. Математический формализм.

1) Алфавит – любой конечный упорядоченный набор символов произвольной

природы.

2) Слово в алфавите – любой конечный набор символов алфавита.

3) Длина слова – количество символов алфавита в слове.

4) Обозначения: – множество слов в алфавите А, – длина слова w.

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

или

.

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

Правило расшифрования опишем по аналогии:

или

.

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

Определение. Шифром (криптосистемой) называется совокупность

введенных множеств, для которых выполняются следующие требования:

1) для любых и справедливо равенство ;

2) .

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

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

Определение. Пусть где S(A) – симметрическая группа подстановок множества А. Для любого ключа , открытого текста и шифрованного текста правила зашифрования и расшифрования шифра простой замены в алфавите А определяются формулами

(*)

где – подстановка, обратная к k.

В более общей ситуации для шифра простой замены причем а K представляет собой множество всех биекций множества А на множество В. Правила зашифрования и расшифрования определяются для (и обратной к k биекции ) формулами (*).

Определим теперь шифр перестановки.

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

где – подстановка, обратная к k.

2. Алгоритмы и алгоритмические задачи.

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

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

  2. Детерминированность. Система величин, получаемых в некоторый (не начальный) момент времени, однозначно определяется системой величин, полученных в предыдущий момент времени.

  3. Элементарность шагов. Процедура вычисления величин в каждый отдельный момент времени должна быть простой.

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

  5. Массовость. Алгоритм должен быть в состоянии решать потенциально бесконечного множества задач.

Рассмотрим теперь три типа алгоритмических задач, где под функцией будем понимать отображение ; здесь А и В – произвольные алфавиты.

  1. Задача вычисления функции.

Задано: .

Вычислить: f(w).

  1. Задача распознавания (языка).

Пусть .

Задано: .

Распознать: ?

Ответ в задаче распознавания может быть закодирован битами: 1 –«да», 0 – «нет».

3) Задача поиска (элемента с заданными свойствами).

Пусть и .

Задано: .

Найти: такое, что , если такое u существует.

Здесь выражение означает склейку (конкатенацию) слов w, #, u.

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

Определение. Пусть t: N Nфункция натурального аргумента. Говорят, что алгоритм решает массовую задачу за время t, если на каждом входе w он делает не более чем шагов.

Определение. Если алгоритм решает массовую задачу за время t, где для некоторых констант и , то говорят, что он решает задачу за полиномиальное от длины входа время. Такой алгоритм называется полиномиальным, а задача – полиномиально разрешимой.

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

Определение. Если алгоритм на некоторой бесконечной последовательности индивидуальных задач делает более, чем шагов, где n – длина входа, а С>0 – некоторая константа, то такой алгоритм называется экспоненциальным. Говорят, алгоритм требует экспоненциального времени, а задачу называют экспоненциально разрешимой (по крайней мере, до того момента, пока не будет найден эффективный алгоритм ее решения).

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

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

В качестве иллюстраций можно рассмотреть следующие задачи.

Задача 1. Придумать инъективное отображение , которое вычисляется быстрым алгоритмом.

Задача 2. Пусть функция, которая натуральному числу х ставит в соответствие – список всех натуральных чисел, не превосходящих х. Тогда

а) для и случая, когда натуральные числа записываются в двоичной системе, доказать, что любой алгоритм, вычисляющий f, должен проделать на входе длины n не меньше, чем элементарных операций (запись одного символа выхода требует по крайней мере одной элементарной операции);

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

Задача 3. Доказать, что ни одно инъективное отображение не может быть вычислено за полиномиальное время.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]