- •Редакционная коллегия:
- •Е. В. Кононенко, д. А. Тонн о выборе ёмкости пускового и рабочего конденсатора
- •Литература
- •Е. В. Кононенко, с. Ю. Кобзистый исследование переходных процессов
- •Воронежский государственный технический университет
- •Ю. М. Фролов, а. А. Медведев
- •В объектно-ориентированной среде моделирования
- •Воронежский государственный технический университет
- •Воронежский государственный технический университет
- •Обобщенная электрическая машина –
- •А. А. Кисурин, о. М. Абарина
- •Литература
- •Липецкий государственный технический университет
- •С. А. Горемыкин, д. Н. Просёлков, ю. В. Писаревский
- •Т. А. Бурковская, о. В. Забара
- •Воронежский государственный технический университет
- •Литература
- •Воронежский государственный технический университет
- •Д.В. Долинский, н.В. Ситников
- •Воронежский государственный технический университет
- •Литература
- •Липецкий государственный педагогический университет
- •Адаптация учебников и учебных пособий
- •Литература
- •Воронежский государственный технический университет
- •Воронежский государственный технический университет
- •Воронежский государственный технический университет
- •Литература
- •Воронежский государственный технический университет
- •А. А. Жданов, в. Л. Бурковский
- •Воронежский институт мвд России
- •В. В. Зыков
- •Литература
- •Липецкий государственный технический университет
- •Воронежский государственный технический университет
- •Выбор типа привода кузнечно-прессовых машин
- •Воронежский государственный технический университет
- •С. А. Винокуров, о. А. Булыгина оценка и способы компенсации запаздывания в электромеханических системах с бесконтактным двигателем постоянного тока
- •Е. В. Попова, г. А. Пархоменко мотор–генератор для малолитражного автомобиля
- •В.Д. Волков, а.Н. Ивлев
- •Воронежский государственный архитектурно - строительный университет
- •Воронежский государственный технический университет
- •С расщепленной фазой
- •Воронежский государственный технический университет
- •В.П.Шелякин
- •В. И. Волчихин, а. В. Козадёров реактивный двигатель постоянного тока
- •Воронежский государственный технический университет
- •В. Н. Назаров, а. Н. Низовой, е. В. Шапошников
- •А. Н. Низовой, н. А. Низовой
- •Литература
- •Воронежский государственный технический университет
- •Литература
- •Воронежский государственный технический университет
- •Воронежский государственный технический университет
- •В. Е. Букатова , д. В. Петренко
- •В.И.Волчихин, а.А.Шевцов, р.А.Акиньшин экспериментальное определение параметров магнита
- •Воронежский государственный технический университет
- •А. С. Миронов, о. А. Дмитриев
- •А. Н. Мазалов, г. А. Пархоменко Электродвигатель для усилителя руля
- •Литература
- •Воронежский государственный технический университет
- •Воронежский государственный технический университет
- •Литература
- •Воронежский государственный технический университет
- •Литература
- •Воронежский государственный технический университет
- •Ю. М. Фролов, в. В. Баринов система источник тока - двигатель постоянного тока
- •Воронежский государственный технический университет
- •В. Е. Букатова, а. К. Линник формирования управляющей функции для бесконтактного двигателя постоянного тока
- •А. М. Литвиненко, а. Б. Сазанов
- •Кисурин а.А., Абарина о.М. Моделирование на эвм процесса изменения питательной воды в парогенераторе пятого блока нваэс 18
- •Горемыкин с.А., Просёлков д.Н., Писаревский ю.В. К вопросу учета вихревых токов в массивных частях машин постоянного тока систем автоматики 21
- •Жданов а.А., Бурковский в.Л. Продукционная модель управле- ния объектами с гибкой структурой 48
- •Зыков в.В. Алгоритмы для вычисления чисел большого размера и информационные системы управления 52
- •Чуриков и.А. Частотно-импульсный модулятор сварочного тока
Воронежский институт мвд России
УДК 681.322
В. В. Зыков
АЛГОРИТМЫ ДЛЯ ВЫЧИСЛЕНИЯ ЧИСЕЛ БОЛЬШОГО РАЗМЕРА
И ИНФОРМАЦИОННЫЕ СИСТЕМЫ УПРАВЛЕНИЯ
Высокие запросы к скорости реакции на то или иное событие в мире, ставят сегодня перед руководителями крупных предприятий, главами регионов, просто бизнесменами задачи по повышению эффективности их работы. Одним из способов решения является работа через Интернет.
Интернет дает огромный выигрыш в скорости работы, позволяет получать самую полную и свежую информацию, проводить платежи, обмениваться документацией и даже заключать договора. На фоне всех этих плюсов, существует один существенный минус – это отсутствие гарантий достоверности того или иного документа, операции и т.п. В обычных документах, таким гарантом являются подпись и печать. Для решения подобной проблемы вводится понятие электронной цифровой подписи (далее - ЭЦП).
В январе 2001 года Государственная Дума приняла решение создать комитет, отвечающий за подготовку законопроекта об ЭЦП. Таким образом, в скором времени будет сформирована законодательная база, нам осталось позаботиться о математической.
Еще в 1995 году был выработан российский стандарт ЭЦП – ГОСТ Р. 34.10-94. Его отличие от зарубежных аналогов заключается в более высокой скорости работы и повышенной криптостойкости, достигаемой за счет увеличения длины ключа до 256 бит. К сожалению, с повышением надежности идет увеличение времени работы. Это происходит из-за того, что алгоритм проверки/установки ЭЦП работает с «большими» числами (>200 бит), для работы с которыми, стандартных средств обработки не предусмотрено. Таким образом, для повышения быстродействия следует создать аппарат для работы с такими числами.
Сначала определимся с форматом ключей: ключи должны быть представлены в шестнадцатеричном виде. Это обуславливается тем, что шестнадцатеричные числа легче всего приводить к двоичному виду. В процессе загрузки ключей в память, программа разбивает их на блоки размером в двойное слово (32-бит). С данными в таком виде легче всего работать программе не только по соображениям скорости обработки (т.к. механизм доступа к элементам массива давно отработан), но и исходя из соображений экономии памяти.
Теперь выделим основные операции над числами. Это сложение, вычитание, умножение, взятие степени, вычисление модуля. Очевидно, что наиболее часто используемой является взятие модуля, из чего следует, что она должна быть наиболее быстрой. На схеме 1 представлен алгоритм вычисления выражения вида: A mod B.
Следует отметить, что на вход алгоритма подаются числа в двоичном виде, т.е. уже преобразованные. Под инвертированием следует понимать операцию замены 1 на 0, и наоборот, 0 на 1. Дальнейшее прибавление к инвертированному числу 1 дает нам дополнительный код двоичного числа, что позволяет работать только с операцией сложения, не используя вычитания.
Схема 1:
Ввести A, B;
Записать в D инвертированное B;
D = D + 1, C = A;
Если C < B, тогда идти на 6, иначе идти на 7;
C = C + D и идти на 5;
Вывод C.
Сложение и умножение в этой статье рассматриваться не будут из-за их простоты. Вычитание выполняется аналогично описанному выше методу – через дополнительный код. Нам осталось рассмотреть наиболее сложный случай – возведение в степень.
Совершенно очевидно, что рассматривать возведение в степень, как череду перемножений и одно приведение по модулю, будет не рационально.
Р ассмотрим тогда формулу (1)
где B.bit(i) – это i-ый бит двоичного числа B, и следует также отметить, что операцию взятия модуля необходимо проводить после каждого произведения.
По формуле (1) легко строится алгоритм, который, несмотря на громоздкость, будет обеспечивать существенный выигрыш в скорости вычислений.
Описанные выше алгоритмы легко реализуются не только на языках высокого уровня, но и на языке ассемблера, что само по себе очень важно, так как это позволяет достичь где-то 10% увеличения скорости.