- •СамотестирующиЕся и самокорректирующиЕся программы
- •Вводные замечания
- •Общие принципы создания двухмодульных вычислительных процедур и методология самотестирования
- •Устойчивость, линейная и единичная состоятельность
- •Метод создания самокорректирующейся процедуры вычисления теоретико-числовой функции дискретного экспоненцирования
- •Обозначения и определения для функции дискретного возведения в степень вида gxmodulo m.
- •Построение самотестирующейся/самокорректирующейся программной пары для функции дискретного экспоненцирования
- •Метод создания самотестирующейся расчетной программы с эффективным тестирующим модулем
- •Алгоритм st
- •Исследования процесса верификации расчетных программ
- •Области применения самотестирующихся и самокорректирующихся программ и их сочетаний
- •Общие замечания
- •Вычислительная математика
- •Целочисленная арифметика и арифметика многократной точности
- •Теоретико-групповые и теоретико-числовые вычисления
- •Вычисления над полиномами
- •Вычисления над матрицами
- •Линейные рекуррентные соотношения
- •Аппроксимирующие функции
- •Криптография, интерактивные доказательства Вводные замечания
- •Распределение ключей, цифровая подпись, схемы аутентификации
- •Интерактивные системы доказательств
- •Задача «Изоморфизм графа»
- •Протокол ig
- •Чекер для задачи «Изоморфизм графа»
- •Чекер cgip(g,h,k)
- •Другие направления
- •Применение самотестирующихся и самокорректирующихся программ Вводные замечания
- •Применение вычислительных методов к задачам гидролокации
- •Метод наименьших квадратов и задача самотестирования
Области применения самотестирующихся и самокорректирующихся программ и их сочетаний
Общие замечания
Применение чекеров, самотестирующихся, самокорректирующихся программ и их сочетаний возможно в самых различных областях вычислительной математики, а, следовательно, в самых разнообразных областях человеческой деятельности, где широко применяются вычислительные методы. К ним относятся такие направления как цифровая обработка сигналов (а, следовательно, решение проблем в системах распознавания изображений, голоса, в радио- и гидроакустике), а также методы математического моделирования процессов изменения народонаселения, экономических процессов, процессов изменения погоды и т.п. Идеи самотестирования могут найти самое широкое применение в системах защиты информации, например, в системах открытого распределения ключей, в криптосистемах с открытым ключом, в схемах идентификации пользователей вычислительных систем и аутентификации данных, где базовые вычислительные алгоритмы обладают некоторыми алгоритмическими свойствами, например, свойством случайной самосводимости, описанным выше.
Вычислительная математика
www.kiev-security.org.ua BEST rus DOC FOR FULL SECURITY |
Активными исследованиями в области создания самотестирующихся и самокорректирующихся программ ученые и практики начали заниматься с начала 90-х годов. В этот период были разработаны программные чекеры для ряда теоретико-числовых и теоретико-групповых задач, для решения задач с матрицами, полиномами, линейными уравнениями и рекуррентными соотношениями. В дальнейшем, исходя из контекста работы, по необходимости, будут приводиться наиболее интересные и необходимые схемы, протоколы, теоремы и их доказательства. В некоторых случаях детали схем и доказательств будут опускаться, но необходимые ссылки на литературные источники приводятся в обязательном порядке.
Целочисленная арифметика и арифметика многократной точности
Пусть M(n) – время выполнения программыPна входе размеромn. В работе [BLR] были разработаны программные чекеры для функций, представленных в таблице 4.1. Там же приведены ресурсозатраты на выполнение самотестирующейся/ самокорректирующейся программной пары для указанных целочисленных (в том числе модулярных с операндами многократной точности) функций. Во второй колонке показано время выполнения самотестирующейся/ самокорректирующейся программной пары без учета времени вызова программы, реализующей функции, приведенные в первой колонке. В третьей колонке приведено общее время выполнения с учетом времени вызовов программыP. В это время не включается время выполнения программ реализации функций, зависящее от параметра безопасностиk, который обычно составляетO(log(1/k)).
Таблица 4.1.
Функция |
Без вызова программы |
Общее время выполнения |
A mult B |
n |
M(n) |
A div B |
n log n |
M(n)log n |
A modulo N |
n |
M(n) |
AB modulo N |
n |
M(n) |
Ab modulo N (с известной факторизацией модуля) |
n |
M(n) |
Ab modulo N (с неизвестной факторизацией модуля) |
n log4n |
M(n)log4n |
Теоретико-групповые и теоретико-числовые вычисления
В работе [BK] приведены чекеры для решения некоторых теоретико-групповых и теоретико-числовых проблем, некоторые из которых приведены ниже.
Проблема эквивалентного поиска.ПустьS– множество иG– группа, групповые действия в которой, осуществляются над элементами множества S. Дляa,bSэлементaGb, тогда и только тогда, когдаg(a)=bдля некоторогоgиз G. Проблема эквивалентного поиска заключается в нахожденииgтакого, чтоg(a)=b, еслиaGb дляaиb, принадлежащих множествуS. Если существует эффективный вероятностный алгоритм поискаgG, тогда существует [BK] эффективный программный чекер для данной проблемы. Примеров решения задач эффективного эквивалентного поиска достаточно много. К ним относятся проблема поиска изоморфизма графов (см. дальше), решение задачи квадратных вычетов, обобщенная проблема дискретных логарифмов, задачи подобные «Кубику Рубика», ряд задач из теории кодирования и др. [BK].
Проблема пересечения групп.ПустьGиH– группы перестановок, определенные некоторыми генераторами групп. Генераторы представляются как перестановки над [1,...,n]. Проблема пересечения групп заключается в нахождении генераторов дляGH. В работе показывается [BK], что можно построить программный чекер для данной проблемы.
Проблема расширенного нахождения НОД.Проблема расширенного нахождения наибольшего общего делителя (которая отличается от нахождения НОД посредством алгоритма Евклида) заключается в нахождении для двух положительных целыхaиbцелогоd=НОД(a,b) и целыхuиvтаких, чтоau+bv=d.
Чекер для решения расширенного нахождения НОД по входу двух положительных целых aиb, целогоdи целыхuиvвыдать «Сбой», еслиdне делитaилиdне делитbилиau+bvd. В противном случае выдать «Норма». Эффективность и корректность данного чекера легко доказывается.