Руководство разработчика - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1страница 2страница 3
Похожие работы
Название работы Кол-во страниц Размер
Руководство для разработчика программного обеспечения по выживанию... 8 2546.56kb.
Руководство пользователя (разработчика программы учебной дисциплины) 1 174.68kb.
К определению новой политэкономии. Тезисы подобно тому, как Г. 1 25.25kb.
Руководство по установке программы; Руководство пользователя 8 902.53kb.
Java разработчика 1 21.55kb.
Руководство по эксплуатации рядом с пылесосом! Dorsalino Инструкции... 1 79.87kb.
Приложение 4 Предложения по редакционным изменениям фгос впо (угсн... 1 135.23kb.
Руководство по онкогинекологии. Спб.: «Ооо издательство Фолиант» 1 91.48kb.
Руководство по установке и эксплуатации Вашей топки. В комплект настоящего... 1 114.31kb.
Руководство по быстрой установке rus руководство пользователя rus 1 10.96kb.
Руководство по эксплуатации 2008 вниманию потребителей 1 91.17kb.
Общие сведения о персональных аппаратных криптопровайдерах 1 38.98kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Руководство разработчика - страница №1/3




















    УТВЕРЖДАЮ




    Генеральный директор

    ООО «ЛИССИ-Крипто»




    В.Орлов





    «   »                200_ г.





    Средство Криптографической Защиты Информации

    «LirJCE»

    Версия 1.0

    Серийный номер 0000000000000000


    Подп. и дата




    Инд № дубл

    .

    Взам. инв №




    Подп. и дата




    Инд. № подл.

    .




    Руководство разработчика

    ЛКП 501540.001.58169198-08-01 34 01
    Листов 16


    Представляю на утверждение

    Технический директор ООО «ЛИССИ-Крипто»


    А.Тараканов

    «   »                2011 г.



    Содержание

    1. введение 5

    2. Общие сведения 6

    3. Поддерживаемые стандарты 7

    4. Архитектура криптопровайдера 8

    4.1.Идентификаторы объектов (OID) 9



    5. Инсталляция провайдера 11

    5.1.Установка библиотеки классов криптопровайдера 11

    5.2Конфигурация криптопровайдера 11

    5.3.Методы класса Provider 12

    5.4.Управление провайдерами 12

    6. Классы и интерфейсы спецификаций параметров алгоритмов 14

    6.1.Интерфейс java.security.spec.AlgorithmParameterSpec 15

    6.2.Класс Gost_28147ParameterSpec 15

    6.3.Класс Gost_DSParameterSpec 16

    6.4.Класс AlgorithmParameters 17

    6.4.1.Преобразование объекта AlgorithmParameters в подробную спецификацию 18

    7. Интерфейсы и классы ключей и ключевых спецификаций 18

    7.1.Интерфейс Key 18

    7.2.Классы ключевых спецификаций 19

    7.3.Класс KeyFactory 19



    7.3.1.Преобразование из спецификации ключа в объект Key 20

    7.3.2.Преобразование объекта Key в спецификацию ключа 20

    7.4.Класс KeyPair 20

    7.5.Класс KeyPairGenerator 21

    7.5.1.Инициализация KeyPairGenerator 21

    7.5.2.Параметры ключей криптоалгоритма ГОСТ Р 34.10-2001, выбираемые по умолчанию 22

    7.5.3.Формат файла lissi_prov.cf 22

    8. Управление ключами 25

    8.1.Класс KeyStore 25



    9. Классы криптографических функций 27

    9.1.Класс MessageDigest 27

    9.2.Класс Signature 28

    9.3.Класс SecureRandom 29

    9.4.Класс Cipher 30

    9.4.1.Управление параметрами 33

    9.5.Класс KeyGenerator 38

    9.6.Класс Mac 38

    10. Приложение А: Спецификация механизмов, реализованных в криптопровайдере LirJCE 40

    10.1.Message Digests - ХЭШ 40

    10.2.Signature Algorithms - ЭЦП 40

    10.3.Random Number Generation (SecureRandom) 40

    10.4.Key Pair Generators 40

    10.5.Algorithm Parameters 41

    10.6.Key Factory 42

    10.7.Keystore 42

    10.8.Cipher Algorithm – алгоритм шифрования 43

    10.9.MAC - Имитовставка 43

    10.10.Key Generator 43




    1.введение


    Данное руководство предназначено для разработчиков прикладного ПО с использованием СКЗИ «LirJCЕ» и содержит описание криптопровайдера LirJCE.

    2. Общие сведения


    Имя криптопровайдера

    LirJCE

    Имя библиотеки классов криптопровайдера

    lirjce.jar

    Мастер класс (masterClassName)

    ru.lissi.provider.LirJCE


    3.Поддерживаемые стандарты


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

    ГОСТ 28147-89

    Алгоритм криптографического преобразования (шифрование и имитовставка)

    ГОСТ Р 34.10-2001

    Процессы формирования и проверки электронной цифровой подписи (ЭЦП)

    ГОСТ Р 34.11-94

    Функция хэширования

    Криптопровайдер также поддерживает другие вспомогательные функции и алгоритмы, описанные ниже.



    4.Архитектура криптопровайдера


    Криптопровайдер построен в соответствии с требованиями Java Cryptography Architecture (JCA).

    Java Cryptography Architecture (JCA) обеспечивает:



    • независимость и совместимость реализации;

    • независимость и расширяемость алгоритмов.

    Независимость реализации и независимость алгоритмов в JCA взаимосвязаны и дополняют друг друга. Независимость алгоритмов достигается путем определения типов криптографических служб – «engines», и определения классов, которые обеспечивают функционал данных служб. Эти классы в JCA называются engine classes - механизмы. Примерами механизмов являются MessageDigest, Signature, KeyFactory, KeyPairGenerator.

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

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

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

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

    Следующие механизмы реализованы в криптопровайдере LirJCE:



    MessageDigest

    Signature

    KeyPairGenerator

    KeyFactory

    KeyStore

    AlgorithmParameters

    SecureRandom

    Cipher

    MAC

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

    Для использования криптопровайдера необходимо вызвать метод getInstance соответствующего механизма с указанием имени алгоритма и опционально можно указать имя провайдера. Если провайдер не указывается, то выбирается наиболее подходящий провайдер для данного имени алгоритма, если он есть. Например,

    Signature sign = Signature.getInstance("GOST_DS", "LirJCE");

    Если провайдер не установлен возбуждается исключение NoSuchProviderException. Приложения могут получить список установленных и зарегистрированных в системе провайдеров с помощью вызова метода getProviders класса Security.

      1. Идентификаторы объектов (OID)


    Идентификаторы объектов используются для определения криптоалгоритмов и их параметров. В некоторых случаях JCA выбирает реализацию криптоалгоритма на основе идентификатора алгоритма полученного, например, из сертификата. Так, для проверки подписи сертификата X.509 на основе идентификатора алгоритма подписи из установленных криптопровайдеров выбирается и инициализируется соответствующий алгоритм проверки подписи.

    Для того, чтобы JCA мог определить поддерживаемые провайдером алгоритмы, в нем должны быть определены отображения OID в соответствующие алгоритмы и наоборот.

    В LirJCE определены следующие OIDы и соответствующие им алгоритмы:

    Таблица. 1.





    Наименование алгоритма,

    функции


    Название механизма по JCA

    (JCA engine class)



    Допустимые идентификаторы алгоритмов для методов getInstance

    OID



    ЭЦП

    ГОСТ Р 34.10-2001



    Signature

    GOST_DS,

    GOST,


    GOST_2001,

    GOST_34_10_01.



    1.2.643.2.2.3



    Выработка ключей ЭЦП ГОСТ Р 34.10-2001

    KeyPairGenerator

    GOST_DS,

    GDS_2001,

    GOST.


    1.2.643.2.2.19



    Хэш

    ГОСТ Р 34.11-94



    MessageDigest

    HASH

    GOST


    GOST_HASH

    HASH_34_11_94



    1.2.643.2.2.9



    Фабрика ключей

    KeyFactory

    GOST_DS

    GOST


    1.2.643.2.2.19



    ГСЧ

    SecureRandom

    GOST

    GOST_RNG


    1.2.643.2.18.2.1



    Хранилище ключей

    KeyStore

    LKS

    PKCS12







    Шифрование

    ГОСТ 28147-89



    Cipher

    GOST

    GOST_28147

    CIPHER


    1.2.643.2.2.21



    Имитовставка

    ГОСТ 28147-89



    Mac

    GOST






    Выработка ключа шифрования

    ГОСТ 28147-89



    KeyGenerator

    GOST

    GOST_28147








    Параметры ГОСТ Р 34.10-2001

    AlgorithmParameters

    GOST_DS

    1.2.643.2.2.19



    Параметры ГОСТ 28147-89

    AlgorithmParameters

    GOST28147

    CIPHER





    следующая страница >>