Откройте актуальную версию документа прямо сейчас
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.
Приложение А
(обязательное)
Формат
сетевого представления данных
А.1 Правила отображения данных с помощью АСН.1
А.1.1 Все описываемые ниже типы предназначены для описания данных, расположенных в непрерывном блоке памяти, причем;
а) не должны использоваться разрывы и заполнители, а также вспомогательные элементы представления (тэги, идентификаторы классов, типов и т.д.);
б) внутри блока данных должно использоваться представление полей типов по значению;
в) выравнивание простых и составных типов должно проводиться по границам байтов, при этом дополняемые биты должны устанавливаться в "0";
г) должен использоваться прямой порядок следования байт (little-endian);
д) размер типа должен определяться по внешнему полю (условию) или по комбинации начальных полей данных типа.
А.1.2 Для представления данных в соответствии с ГОСТ Р ИСО/МЭК 8824-1 применяется модифицированная АСН.1 в части;
- дополнительные ограничения типов и условные зависимости между ними записываются внутри ограничений в виде строк с выражениями на языке Си;
- используется параметризация типов по ГОСТ Р ИСО/МЭК 8824-4;
- синтаксис оператора CHOICE расширен вариантом с применением условия выбора значения СНOICE(х).
А.1.3 Типы, объявленные в стандарте языка Си и в настоящем стандарте, вводятся в спецификацию АСН.1
с помощью ключевого слова EXTERN с указанием исходного типа и комментария, определяющего источник экспорта.
А.2 Внешние типы данных
uint8_t ::= EXTERN "uint8_t"
uint_t ::= EXTERN "int8_t"
uint16_t ::= EXTERN "uint16_t"
uint32_t ::= EXTERN "uint32_t"
nbSlotID ::= EXTERN "nbSlotID"
nbMeta ::= EXTERN "nblockFlags"
nbBlockFlags ::= EXTERN "nblockState"
nbBlockState ::= EXTERN "nbTestMode"
nbTestMode ::= EXTERN "nbTime"
nbTime ::= EXTERN "nbTimeType"
nbTimeType ::= EXTERN "nbTestMode"
nbBlockHeader ::= EXTERN "nbBlockHeader"
nbConstraint ::= EXTERN "nbConstraint"
nbPurpose ::= EXTERN "nbPurpose"
A.3 Схема преобразования
A.3.1 Представление схемы преобразования.
- - схема преобразования
C-Scheme ::= SEQUENCE {
slot-out-descr SlotPrm{i-out},
slots-in-descr SET OF SlotPrm{i-in} OPTIONAL,
transf-descr SET OF CHOICE {
SlotPrm{i-spec-in|i-spec-out},
SlotConv
}OPTIONAL
}
- - типы идентификатора слота
SlotID ::= CHOICE {
i-out nbSlotID{"nbSLOT_OUT"},
i-in nbSlotID{"nbSLOT_IN(1)".."nbSLOT_IN(16383)"},
i-spec-in nbSlotID{"nbSLOT_SPEC_IN(1)".."nbSLOT_SPEC_IN(16383)"},
i-spec-out nbSlotID{"nbSLOT_SPEC_OUT(1)".."nbSLOT_SPEC_OUT(16383)"},
i-conv nbSlotID{"nbSLOT_CONV(1,1)".."nbSLOT_CONV(127,127)"}
}
- - слот параметра
SlotPrm{SlotID:type} ::= SEQUENCE {
id SlotID{type}, - - идентификатор слота
meta nbMeta - - метаописание параметра
}
- - слот ЭП
SlotConv ::=SEQUENCE {
id SlotlD{i-conv}, - - идентификатор слота
meta nbMeta, - - метаописание выходного параметра ЭП
block-flags nbBlockFlags, - - флаги ЭП
block-state nbBlockState, - - состояние ЭП
ids-count uint8_t, - - число связанных слотов
ids SET SIZE(ids-count) OF SlotID{i-in |i-spec-in |i-spec-out}
OPTIONAL
- - связанные слоты
}
A.4 Матрица ВБП (nbMatrix)
А.4.1 Представление типов матрицы ВБП с помощью модифицированной АСН.1
MatrixType ::= CHOICE {
- - заполненная матрица
m-full Matrix{nrows{"0x00000001".."0x0000FFFF"},
ncols(ALL),
pmeta(O), pdata(O),
meta(ALL),data(ALL)},
- - матрица, содержащая шаблон данных
m-template Matrix{nrows("0x00000001".."0x0000FFFF"),
ncols(O),
pmeta(O), pdata(O),
meta(ALL), NULL},
- - пустая матрица
m-empty Matrix{nrows("0x00000000"),
ncols("0x00000000"),
pmeta(O), pdata{0),
NULL, NULL},
- - матрица, содержащая УУИД
m-guid Matrix{nrows("0x00010000".."0xFFFFFFFF"),
ncols(ANY),
(ALL EXCEPT 0), pdata(ALL),
NULL, NULL},
- - матрица, содержащая ОПИК для доступа к базе данных матрицы
m-pointer Matrix{nrows("0x00000000"),
ncols("0x00000000"),
pmeta(ALL EXCEPT 0), pdata(ALL),
NULL, NULL}
}
А.4.2 Представление матрицы ВБП с помощью модифицированной АСН.1
Matrix ::= SEQUENCE {
nrows uint32_t, - - число частей матрицы
ncols uint32_t, - - число примеров матрицы
pmeta uint32_t, - - дополнительное значение
pdata uint32_t, - - дополнительное значение
- - блок метаописаний meta
meta SET OF nbMeta SIZE(nrows) OPTIONAL,
- - набор данных для всех частей и всех
примеров матрицы
data SET SIZE(nrows) OF SET SIZE(ncols) OF Vbp{meta[irow]} OPTIONAL
- - где irow- номер текущего
измерения data (0...nrows - 1)
}
Vbp{nbMeta:meta} ::= SET SIZE("meta.size()") OF uint8_t
- - для определения размера используется функция meta.size(),
- - вычисляющая размер вектора ВБП на основе формата
- - элемента meta.format и числа элементов в векторе meta.count.
А.5 Нейросетевой биометрический контейнер
А.5.1 Представление НБК и блоков НБК с помощью модифицированной АСН.1
- - нейросетевой биометрический контейнер
Nbc::= SEQUENCE!
nbc Block{"nbBT_NBC"},
blocks SET OF ExtentiableBlock
}
- - расширяемый с помощью вспомогательных блоков блок НБК
ExtentiableBlock{nbBlockType:type} ::= SEQUENCE {
block Block{type EXPECT "nbBT_EXTENTION"},
ext SET OF BIock{"nbBT_EXTENTION"}
}
- - блок НБК
Block{nbBlockType:type} ::= SEQUENCE {
header nbBlockHeader, - - заголовок блока НБК
body Body{type} - - блок НБК
}
- - варианты тела блока НБК в зависимости от типа блока
Body{nbBlockType:type} ::= CHOICE(type) {
nbcc-def |
[1..63] |
BodyNbccDef, |
nbc |
["nbBT_NBC"] |
BodyNbc, |
nn-converter |
["nbBT_NEURAL_NET_CONVERTER"] |
BodyNbccDef, |
fuzzy-converter |
["nbBT_FUZZY_CONVERTER"] |
BodyNbccDef, |
crypto-converter |
["nbBT_CRYPTO_CONVERTER"] |
BodyNbccDef, |
hard-indicator |
["nbBT_HARD_INDICATOR"] |
BodyNbccDef, |
soft-indicator |
["nbBT_SOFT_INDICATOR"] |
BodyNbccDef, |
error-spectator |
["nbBT_ERROR_SPECTATOR"] |
BodyNbccDef, |
connector |
["nbBT_CONNECTOR"] |
BodyNbccDef, |
bio-auditor |
["nbBT_BIO_AUDITOR"] |
BodyNbccDef, |
fuzzy-addresser |
["nbBT_FUZZY_ADDRESSER"] |
BodyNbccDef, |
code-transformer |
["nbBT_CODE_TRANSFORMER"] |
BodyNbccDef, |
tester |
["nbBT_TEST_RESPONSE"] |
BodyNbccDef, |
security |
["nbBT_SECURITY"] |
BodySecurity, |
|
|
|
app-def |
[128..191] |
BodyAppDef, |
nbc-id |
["nbBT_MBC_ID"] |
BodyNbcld, |
user-id |
["nbBT_USER_ID"] |
BodyUserld, |
dates |
["nbBT_DATE"] |
BodyDates, |
bio-tech |
["nbBT_BIO_TECH"] |
BodyBioTech, |
cscheme |
["nbBT_CSCHEME"] |
BodyCScheme, |
test-response |
["nbBT_TEST_RESPONSE"] |
BodyTestResponse, |
ext |
["nbBT EXTENSION"] |
BodyExtension, |
...
}
- - тело заголовка НБК
BodyNbc ::= SEQUENCE {
size uint32_t, - - полный размер НБК без блока заголовка НБК
nbc-type nbUuid - УУИД типа НБК
}
- - тело блока ЭП НБК
BodyNbccDef ::= SET OF uint8_t OPTIONAL
- - тело информационного блока НБК
BodyAppDef ::= SET OF uint8_t OPTIONAL
- - тело блока безопасности
BodySecurity ::= SEQUENCE {
zone int16_t, -- число контролируемых блоков
- - положительное значение равно числу блоков после блока безопасности
- - отрицательное значение равно числу блоков перед блоком безопасности
- - значение "0x0000" определяет особый порядок подсчета (не блочный);
- - заголовок НБК считается отдельным блоком
owner uint16_t, - - автор формата {0 - разработчик НПБК)
format uint16_t, -- формат данных блока
data SET OF uint8_t - - контекстно-зависимые данные
- - (хэш, контрольная сумма, ЭЦП)
}
- - тело идентификатора контейнера
BodyNbcId :: = SET OF uint8_t OPTIONAL
- - тело идентификатора пользователя
BodyUserld :: = SET OF uint8_t OPTIONAL
- - тело блока дат
BodyDates ::= SET OF SEQUENCE {
time-type nbTimeType,
time nbTime
}
- - тело описания биометрической технологии, используемой для выполнения
- - преобразования биометрия-код
BodyBioTech ::= SET OF SEQUENCE {
- - тип биометрического образа
bim-type nbUuid DEFAULT {"nbUUID_NIL"},
- - идентификатор провайдера, обеспечившего ввод биометрических образов
provider-id nbUuid DEFAULT {"nbUUID_NIL"},
- - идентификатор процессора, выполнившего перевод биометрических
- - образов в матрицу биометрических параметров
processor-id nbUuid DEFAULT {"nbUUID_NIL"},
- - число параметров на выходе устройства обработки
биометрических образов,
- - для которых производится связывание
n uint16_t DEFAULT {0},
- - соответствующие частям идентификаторы входных параметров НПБК
- - (для пропускаемой части значение устанавливается в SlotIDi:i-out)
slot-ids SET SIZE(n) OF SlotID OPTIONAL
}
- - тело схемы преобразования
BodyCScheme ::= C-Scheme
- - тело блока откликов ИНС по результатам тестирования
BodyTestResponse :: = SEQUENCE {
test-mode nbTestMode, - - режим тестирования
time nbTime, - - дата и время тестирования
response-count uint16_t, - -число записей откликов
response-base SET SIZE(response-count) OF TestRec, - - отклики
input-count uint16_t DEFAULT{0}, -- число входных записей
input-base SET SIZE(input-count) TestRec, - - входные данные
cert nbData OPTIONAL - - данные тестирующего
}
TestRec ::= SEQUENCE {
con nbConstraint, - - тип ограничения (входных/выходных параметров)
ids-count uint16_t,
ids SET SIZE(ids-count) OF SlotID, - - номера слотов, для которых
- - устанавливаются или
снимаются ограничения
data Matrix - - данные ограничения
}
А.6 Блок данных (nbData)
А.6.1 Представление блока данных или строки в кодировке UTF-8 с помощью модифицированной АСН.1
Data :: = SEQUENCE {
size uint32_t, - - длина блока данных в байтах
data SET SIZE(size) OF uint8_t OPTIONAL - - блок данных или строка
}
Если вы являетесь пользователем интернет-версии системы ГАРАНТ, вы можете открыть этот документ прямо сейчас или запросить по Горячей линии в системе.