ГОСТ Р ИСО/МЭК 8825-1-2003
Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
ПРАВИЛА КОДИРОВАНИЯ АСН.1.
Часть 1
Спецификация базовых (ВЕR), канонических (CER)
и отличительных (DER) правил кодирования
Information technology. ASN.1 encoding rules. Part 1.
Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER)
and Distinguished Encoding Rules (DER)
ОКС 35.100.60
ОКСТУ 4002
Дата введения 2004-07-01
Предисловие
1 РАЗРАБОТАН Государственным научно-исследовательским и конструкторско-технологическим институтом "ТЕСТ" Министерства Российской Федерации по связи и информатизации
ВНЕСЕН Министерством Российской Федерации по связи и информатизации
2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 13 мая 2003 г. N 140-ст
3 Настоящий стандарт содержит полный аутентичный текст международного стандарта ИСО/МЭК 8825-1-98 "Информационная технология. Правила кодирования АСН.1. Часть 1. Спецификация базовых (BER), канонических (CER) и отличительных (DER) правил кодирования" с учетом Поправки N 1 (1999 г.) и Дополнения N 1 (2000 г.)
4 ВВЕДЕН ВПЕРВЫЕ
В настоящем стандарте определен набор базовых правил кодирования, который может использоваться для получения спецификации синтаксиса передачи для значений типов, определенных с использованием абстрактной синтаксической нотации версии 1 (АСН.1), которая установлена в ГОСТ Р ИСО/МЭК 8824-1, ГОСТ Р ИСО/МЭК 8824-2, ГОСТ Р ИСО/МЭК 8824-3 и ГОСТ Р ИСО/МЭК 8824-4. Базовые правила кодирования также применимы для декодирования указанного синтаксиса передачи с целью идентификации передаваемых значений данных. В настоящем стандарте также определен набор канонических и отличительных правил кодирования, которые ограничивают кодирование значений ровно одной из альтернатив, предоставляемых базовыми правилами кодирования.
Эти правила кодирования используются во время передачи (поставщиком услуг уровня представления, когда это требуется контекстом представления).
В настоящем стандарте использованы ссылки на следующие стандарты:
ГОСТ Р ИСО/МЭК 7498-1-97* Информационная технология. Взаимосвязь открытых систем. Базовая эталонная модель. Часть 1. Базовая модель (см. также Рекомендацию МСЭ-Т Х.200)
_______________
* Вероятно ошибка оригинала. Следует читать ГОСТ Р ИСО/МЭК 7498-1-99 Информационная технология. Взаимосвязь открытых систем. Базовая эталонная модель. Часть 1. Базовая модель. - Примечание "КОДЕКС".
ГОСТ Р ИСО/МЭК 8824-1-2001 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 1. Спецификация основной нотации (см. также Рекомендацию МСЭ-Т Х.680)
ГОСТ Р ИСО/МЭК 8824-2-2001 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 2. Спецификация информационного объекта (см. также Рекомендацию МСЭ-Т Х.681)
ГОСТ Р ИСО/МЭК 8824-3-2002 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 3. Спецификация ограничения (см. также Рекомендацию МСЭ-Т Х.682)
ГОСТ Р ИСО/МЭК 8824-4-2003 Информационная технология. Абстрактная синтаксическая нотация версии один (АСН.1). Часть 4. Параметризация спецификаций АСН. 1 (см. также Рекомендацию МСЭ-Т Х.683)
ИСО/МЭК 2022-94* Информационная технология. Структура кода символов и методы расширения
ИСО 6093-85* Обработка информации. Представление числовых значений в символьных строках для информационного обмена
ИСО/МЭК 6429-92* Информационная технология. Управляющие функции для кодированных наборов символов
ИСО/МЭК 10646-1-93* Информационная технология. Универсальный, многооктетный кодовый набор символов (UCS). Часть 1. Архитектура и основная многоязычная плоскость
________________
* Международные стандарты - во ВНИИКИ Госстандарта России.
В настоящем стандарте используются определения по ГОСТ Р ИСО/МЭК 7498-1, ГОСТ Р ИСО/МЭК 8824-1, а также следующие определения:
3.1 динамическое соответствие: Установление требования к реализации придерживаться при передаче поведения, подписанного настоящим стандартом.
3.2 статическое соответствие: Установление требования к реализации обеспечивать допустимое множество возможностей из определенных настоящим стандартом.
3.3 значение данных: Информация, заданная как значение типа; тип и значение определены с использованием АСН.1.
3.4 кодирование (значение данных): Полная последовательность октетов, используемая для представления значения данных.
3.5 октеты идентификатора: Часть кодирования значения данных, которая используется для идентификации типа значения.
Примечание - В некоторых Рекомендациях МСЭ-Т для этой последовательности октетов применяют термин "элемент данных", но в настоящем стандарте его не используют, так как в других стандартах он применяется в смысле "значение данных".
3.6 октеты длины: Часть кодирования значения данных, следующая за октетами идентификатора, которая используется для определения конца кодирования.
3.7 октеты содержимого: Часть кодирования значения данных, которая представляет конкретное значение.
3.8 октеты конца содержимого: Часть кодирования значения данных, появляющаяся в его конце, которая используется для определения конца кодирования.
Примечание - Не для всех кодирований требуются октеты конца содержимого.
3.9 простое кодирование: Кодирование значения данных, в котором октеты содержимого непосредственно представляют это значение.
3.10 составное кодирование: Кодирование значения данных, в котором октеты содержимого являются полным кодированием одного или нескольких значений данных.
3.11 получатель: реализация декодирования октетов, созданных отправителем, для идентификации значения закодированных данных.
3.12 отправитель: Реализация кодирования значения данных для передачи.
3.13 завершающий 0 бит: 0 в последней позиции значения "битовая строка" (bitstring).
Примечание - 0 в значении битовой строки, состоящем из единственного бита 0, является завершающим 0 битом. Его удаление порождает пустую битовую строку.
В настоящем стандарте использованы следующие сокращения:
АСН.1 - абстрактная синтаксическая нотация версии 1
здп - значение данных (уровня) представления
BER - базовые правила кодирования (Basic Encoding Rules) АСН.1
CER - канонические правила кодирования (Canonical Encoding Rules) АСН.1
DER - отличительные правила кодирования (Distinguished Encoding Rules) АСН.1
В настоящем стандарте использована нотация, определенная в ГОСТ Р ИСО/МЭК 8824-1.
6.1 В настоящем стандарте специфицировано значение каждого октета в кодировании с использованием терминов старший значащий бит и младший значащий бит.
Примечание - В спецификациях нижних уровней используются те же самые обозначения для определения порядка передачи битов в последовательной линии связи или для распределения битов в параллельных каналах.
6.2 В настоящем стандарте биты октета нумеруют от 8 до 1, где бит 8 - старший значащий бит, а бит 1 - младший значащий бит.
6.3 В настоящем стандарте могут сравниваться две строки октетов. Они равны, если имеют одну и ту же длину и совпадают в каждой позиции октета. Строка октетов больше строки только в том случае, если:
а) и имеют идентичные октеты в каждой позиции до конечного октета в включительно, но длиннее,
или
б) и имеют различные октеты в одной или нескольких позициях и в первой такой позиции октет в больше, чем в , если рассматривать октеты как двоичные числа без знака, бит которых имеет вес 2.
7.1 Динамическое соответствие устанавливается всеми разделами стандарта.
7.2 Статическое соответствие устанавливается теми стандартами, которые определяют применение одного или нескольких из этих правил кодирования.
7.3 Альтернативные кодирования допускаются базовыми правилами кодирования как факультативные возможности отправителя. Получатели, которые заявляют о соответствии базовым правилам кодирования, должны поддержать все альтернативы.
Примечание - Примеры таких альтернативных кодирований показаны в 8.1.3.2б и таблице 3.
7.4 Альтернативные кодирования запрещаются каноническими или отличительными правилами кодирования.
8.1 Общие правила кодирования
8.1.1 Структура кодирования
8.1.1.1 Кодирование значения данных должно состоять из четырех компонентов, которые должны появляться в следующем порядке:
а) октеты идентификатора (см. 8.1.2);
б) октеты длины (см. 8.1.3);
в) октеты содержимого (см. 8.1.4);
г) октеты конца содержимого (см. 8.1.5).
8.1.1.2 Октеты конца содержимого должны присутствовать только в том случае, если их наличие требуется значением октетов длины (см. 8.1.3).
8.1.1.3 На рисунке 1 показана структура кодирования (простого или составного). На рисунке 2 показан один из вариантов составного кодирования.
Рисунок 1 - Структура кодирования