
- •11. Сжатие информации. Арифметическое кодирование
- •13 Алгоритм Евклида
- •14. Введение в теорию чисел. Функции Эйлера
- •15. Введение в теорию чисел. Модульная арфиметика
- •16. Введение в теорию чисел. Методы построения простых чисел.
- •17. Построение последовательностей псевдослучайных числа. Линейный конгруэнтный метод
- •18. Методы генерирования псевдослучайных чисел. Недостатки классических генераторов псевдослучайных чисел
- •19. Современные алгоритмы генерации псевдослучайных чисел.
- •20. Проверка статистических гипотез. Общая схема.
- •21. Проверка статистических гипотез. Критерий Пирсона.
- •22. Статистическая оценка качества последовательностей псевдослучайных чисел. Тесты серий.
- •26. Одноалфавитные и многоалфавитные шифры замены.
- •28. Механизация шифрования.
- •29.Потоковые шифрующие системы.
- •30.Стандартные системы шифрования. Алгоритм des.
- •32.Криптография с открытым ключом.
- •33. Криптография с открытым ключом. Алгоритм rsa
- •34.Криптография с открытым ключом. Алгоритм Диффи-Хеллмана.
- •35.Шифрование на базе эллиптических кривых.
- •36.Криптографические системы на базе эллип-тических кривых. Ана-лог rsa
- •37.Криптографические системы на базе эллип-тических кривых. Ана-лог алгоритма Диффи-Хеллмана.
- •38. Элементы теории сложности. Машина Тьюринга.
- •39. Элементы теории сложности. Функции вычислимые по Тьюрингу.
- •40. Защита программного обеспечения от обратного проектирования.
- •41.Запутывающие преобразования программ.
- •42.Алгоритмы разделения секрета
38. Элементы теории сложности. Машина Тьюринга.
В 1936 году Алан Тьюринг предложил абстрактную вычислительную «машину тьюринга», которая позволила формализовать понятие алгоритма. Машина имитирует все процесс пошагового вычисления, в котором каждый шаг вычисления достаточно элементарен.
Конечный автомат – абстрактный автомат без выходного потока, число возможных состояний которого конечно. Результат работы автомата определяется по его конечному состоянию. Авт. Мб задан 5 пар-ми: M=(Q,∑, ∂, q0, F). Q конечное мн-во состояний. ∑ допустимый входной алфавит. ∂ отображение. q0 начальное состояние авт. Fмн-во заключительных состояний.
Работа конечного автомата: 1)авт. Начинает работу в сост. q0, считывая по 1 символы строки; 2) Этот символ переводит автомат в состояние из Q в соотв. с функцией; 3) если по завершению считывания автомат оказывается в одном из допускающих состояний, то слово принимается; 4) в противном случае слово отвергается.
Устр-во машины – 1)бесконечная в обе стороны лента разделенаня на ячейки; 2)Управляющее устр-во, способное находитсья в одном из множ-ва состояний, число которых конечно и точно задано.(Упр. Устр-во может перемещаться влево и вправо по ленте, читать и записывать символы нек. Конечного алфавита). УУ работает согласно правилам перехода. Каждое правило предписывает машине записать в эту клетку новый символ или перейти в новое состояние и переместиться на одну клетку влево или вправо. Нек. Состояния могут быть помечены как заключительные, и переход в любое из них означает конец работы, остановку алг.
Машина наз. детерминированной, если для каждой комбинации состояния и ленточного символа в таблице соответствует не более одного правила. Если сущ. пара «ленточный симв. - состояние», для кот.сущ. 2 и более команд, такая машина наз. недетерминированной.
Пример: Построить машину Тьюринга с алфавитом {Л,1} которая вычисляет функцию f(x)=x+1; Головка на самом левом символе ленты. Программа: q1 1->1 П q1; q1 Л->1 H q0
39. Элементы теории сложности. Функции вычислимые по Тьюрингу.
В 1936 г. Аланом Тьюрингом для уточнения понятия алгоритма был предложенабстрактный универсальный исполнитель. Его абстрактность заключается в том, что он представляет собой логическую вычислительную конструкцию, а не реальную вычислительную машину. Термин «универсальный исполнитель» говорит о том, что данный исполнитель может имитировать любой другой исполнитель. Машина Тьюринга состоит из бесконечной в обе стороны ленты, разделенной на ячейки, и автомата (головки), которая управляется программой. Программы для машин Тьюринга записываются в виде таблицы, где первые столбец и строка содержат буквы внешнего алфавита и возможные внутренние состояния автомата (внутренний алфавит). Содержимое таблицы представляет собой команды для машины Тьюринга. Буква, которую считывает головка в ячейке (над которой она находится в данный момент), и внутренне состояние головки определяют, какую команду нужно выполнить. Команда определяется пересечением символов внешнего и внутреннего алфавитов в таблице.
Функции вычислимые по тьюрингу: Рассматриваются функции f от одного или нескольких аргументов, заданные на мн-веN0 = {0,1,2,3,...,n ,...} всех неотрицательных целых числе или на некоторых его подмножествах и принимающие значения в множестве N. Область определения Df функции f – это подмножество множ-ваN0^n = N0 xN0 x … xN0
Значение ф-ииf(x1,..xn) на наборе (m1,..mn) определено, если f(m1,..mn)=m, в противном случае ф-ияf считается неопределенной на заданном наборе.
Подчисловыми ф-ями будем понимать ф-иизн-я которых и зн-я их аргументом являются неотрицательные целые числа.
Нуль-ф-ия: о(х)=х при каждом х из N0;
Ф-ия следования: s(x)= x+1 при каждом х из N0;
Ф-ия выбор аргумента Im(x1,..xn)=Xm при всех (x1,..xn) принадлежащих N0^n, m=1,n, n=1,2,3…
Операция суперпозиции (подстановка) заключается в подстановке одних рекурсивных функций вместо аргументов в другие рекурсивные функции. f(x1..xm), g1(x1..xm),g2(x1…xm),..gm(x1..xn) и пусть
h(x1..xm)=f(g1(x1..xm).. gm(x1..xn)). Тогда будем говорить, что функция h получена с помощью подстановки
Рассмотрим операцию примитивной рекурсии. Эта операция строит функцию от n+1 аргументов, если имеются две числовые функции. Операция примитивной рекурсии определяется следующим образом:
F(x1..xn,0)=g(x1..xn)
F(x1..xn,y+1)=h(x1...xn,y,f(x1..xn,y))
При вычислении числовых функций на машинах Тьюринга часто пользуются специальным кодированием чисел. Например, натуральное число m будем задавать набором из m +1 единиц, который будем обозна-чать через 1^(m+1).Итак, 0 будем задавать 1, 1 – 11, 2 – 111 и т. Д.
На МТ можно вычислить все, что можно вычислить на любой другой машине, осуществляющей вычисления с помощью последовательности элементарных действий – это св-во наз ПОЛНОТОЙ.
Пример: Построить машину Тьюринга с алфавитом {Л,1} которая вычисляет функцию f(x)=x+1; Головка на самом левом символе ленты. Программа: q1_1->1Пq1; q1_Л->1Hq0;
Тезис Чёрча — Тьюринга невозможно строго доказать или опровергнуть, поскольку он устанавливает «равенство» между строго формализованным понятием частично вычислимой функции и неформальным понятием «интуитивно вычислимой функции».
Физический тезис Чёрча — Тьюринга гласит: Любая функция, которая может быть вычислена физическим устройством, может быть вычислена машиной Тьюринга.