УДК 003.26, 004.056.55

Комплексный подход к ускорению криптографических вычислений

Comprehensive approach for cryptographic computation acceleration

П. А. Северин,
Ю. В. Гольчевский

P.A. Severin,
Yu.V. Golchevskiy

Сыктывкарский Государственный Университет, г. Сыктывкар

Syktyvkar State University,
Syktyvkar

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

The paper provides a short overview of existing methods of the program code optimization. The method of a complex acceleration of cryptographic computation and the economic efficiency is offered.

Ключевые слова: оптимизация, криптография, программирование, ускорение вычислений, ассемблер, архитектура процессора.

Keywords: optimization, cryptography, programming, acceleration of computation, assembler, architecture of the processor.

Введение

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

Теоретический анализ

Существующие методы ускорения вычислений можно условно сгруппировать в следующие уровни (приведены в порядке абстрагирования от аппаратной составляющей средства вычислительной техники) [1]:

Низкоуровневая оптимизация уровня микроархитектуры – распараллеливание вычислений, использование низкоуровневой оптимизации с учетом спецификации конкретного процессора;

2) Низкоуровневая оптимизация уровня архитектуры – оптимальный выбор (замена, объединение, разделение) инструкций процессора с учетом особенностей конкретной архитектуры (IA-32, IA-64 и др.), распределение регистров, понижение силы операций, раскрутка циклов и др.;

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

4) Высокоуровневая оптимизация с использованием специальных математических методов – например, умножение Карацубы для задач, связанных с длинночисленной арифметикой, и др.

Имеющиеся подходы

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

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

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

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

Предлагаемый подход

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


Рисунок 1. Схема комплексного подхода

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

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

Конечно, оптимизация для каждой марки процессора несколько затруднительна, но число наиболее распространенных процессоров, покрывающих значительную долю рынка пользовательских ПК, не столь велико и можно начать именно с них. Кроме того, возможны «компромиссные» варианты –– если установщик программного обеспечения (ПО) не находит «криптодрайвер» текущего процессора, загружается «профиль» архитектуры –– менее быстрый, но более универсальный.

Библиотека вместе с уровнем эмуляции встраивается в установочный дистрибутив ПО.

Экономическая сторона проекта

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

Конкретным потребителем являются организации, имеющие свои позиции на данном рынке и желающие их расширить.

Ожидаемым следствием применения предлагаемого подхода и внедрения библиотеки в линейку продуктов конкретного производителя является появление объективного преимущества – существенного (в несколько раз) ускорения скорости криптографических вычислений. Это может привести к конкурентным преимуществам и увеличению продаж улучшенных средств криптографической защиты информации (СКЗИ).

Специалисты по исследованию рассматриваемого рынка отмечают тот факт, что большинство производителей отечественных СКЗИ не склонны уделять серьезное внимание вкусовым предпочтениям потенциальных пользователей [2], что только подчеркивает важность получаемого конкурентного преимущества.

Реализация проекта планируется в два этапа – апробация схемы в рамках сотрудничества с конкретным производителем криптографического ПО и разработка библиотеки.

Выводы

В статье предложен комплексный подход к ускорению криптографических вычислений и его экономическое обоснование.

Библиографический список

  1. Касьянов В. Н. Оптимизирующие преобразования программ. – М.: Наука, 1988. – 336 с.
  2. Методы маркетингового продвижения систем криптографической защиты информации [Электронный ресурс]: Url: http://www.iso27000.ru/chitalnyi-zai/kriptografiya/metody-marketingovogo-prodvizheniya-sistem-kriptograficheskoi-zaschity-informacii (дата обращения: 27.04.2012)

 

Статья поступила в редакцию: 30.04.2012

VN:F [1.9.17_1161]
Rating: 9.0/10 (1 vote cast)
VN:F [1.9.17_1161]
Rating: 0 (from 0 votes)
VN:F [1.9.17_1161]
Стиль изложения
Информативность
Сложность вопроса
Научная новизна
Коммерциализуемость
Rating: 0.0/5 (0 votes cast)
Комплексный подход к ускорению криптографических вычислений, 9.0 out of 10 based on 1 rating