Глава 13. Основная библиотека (ctBaseLib)

Функции базовой библиотеки защиты информации (ctBaseLib) являют собой наиболее гибкие и низкоуровневые средства для разработки приложений защиты информации.

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

Функции ctBaseLib

Алгоритмы защиты информации используют параметры A, P и Q, называемые триплетами APQ. CtBaseLib поддерживает хранение этих триплетов, что является гарантией надежной защиты информации.

Библиотека предоставляет полный набор функций для разработки приложений:

  1. Функции для работы с параметрами провайдера включают в себя:

    • функцию,возвращающую значения следующих параметров провайдера ctBaseLib:

    • информация о версии библиотеки

    • информация об указанном алгоритме

    • информация обо всех поддерживаемых алгоритмах

    • триплет APQ, ассоциированный с определенным индексом APQ и алгоритмом

    • индекс триплета APQ и значения для указанного алгоритма (используя этот параметр, Вы можете установить специальный триплет APQ для данного приложения)

    • максимальное количество хэшируемых триплетов APQ

    • параметр для освобождения хэшированных триплетов APQ, которые не используются никакими задачами и контекстами

    • отладочная информация об открытых контекстах

    • отладочная информация о хэшированных триплетах APQ

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

  2. Функции контекста защиты информации (контейнеров секретных ключей):

    Они дают возможность:

    • добавить ссылки в описатель контекста защиты информации

    • создать копию контекста

    • возвратить или настроить параметры контекста

    • управлять операциями с секретным ключом внутри контейнера секретного ключа

  3. Функции для управления задачами защиты информации и открытыми ключами, которые дают возможность:

    • создать копию задачи защиты информации

    • возвратить или настроить параметры задачи защиты информации - импортировать (экспортировать) открытый ключ в задачу защиты информации — кодировать (декодировать) буфер с текстом

    • вычислить хэш данных и подписать его значение — проверить значение подписи хэша

    Следующие объекты библиотеки определены как константы ctBaseLib, что дает возможность быстро и просто работать с библиотекой:

    • типы алгоритмов : подписи\проверки подписи, кодирования\декодирования, хэширования, неопределенный тип.

    • идентификаторы алгоритмов : для следующих алгоритмов предусмотрены свои идентификаторы:

    Алгоритмы кодирования: Блочные коды Safer, DES, Triple DES, FEAL, ГОСТ РФ 28147, Wicker98, Nush; поточные коды Vesta-2M, RC4.

    Алгоритмы подписи: ГОСТ РФ, DSA, LANS, RSA, Gost.

    Алгоритмы хэширования: ГОСТ РФ, SHA, SHA-1, MD5, GAS48.

    В некоторых ситуациях могут быть полезны следующие идентификаторы:

    1. Использовать алгоритм подписи, принятый по умолчанию (хранящийся в контейнере ключа).

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

    • режимы кодирования : ECB, CBC, CFB, OFB, а также C, G, GB (в алгоритме ГОСТ 28147).

    • стандартные индексы APQ — стандартные триплеты APQ для открытых ключей длиной 512, 1024, 2048, 4096 бит (A, P и Q — параметры, используемые алгоритмами защиты информации).

    • принятые по умолчанию идентификаторы секретных ключей.

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

    • параметры задач защиты информации (напр., такие как идентификатор секретного ключа, который нужно использовать в данной задаче)

    • коды возврата.

    В документации к библиотеке приведены следующие примеры работы с ctBaseLib: перечисление алгоритмов

    • получение открытого ключа

    • кодирование и декодирование данных

    • подписание и верификация данных

    • и многие другие примеры.