ГОСТ Р ИСО/МЭК 8825-2-2003
Группа П85
ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Информационная технология
ПРАВИЛА КОДИРОВАНИЯ АСН.1
Часть 2
Спецификация правил уплотненного кодирования (PER)
Information technology. ASN.1 encoding rules.
Part 2. Specification of Packed Encoding Rules (PER)
ОКС 35.100.60
ОКСТУ 4002
Дата введения 2004-07-01
Предисловие
1 РАЗРАБОТАН Федеральным государственным унитарным предприятием Государственный научно-исследовательский и конструкторско-технологический институт "ТЕСТ" Министерства Российской Федерации по связи и информатизации
ВНЕСЕН Министерством Российской Федерации по связи и информатизации
2 ПРИНЯТ И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 13 мая 2003 г. N 141-ст
3 Настоящий стандарт содержит полный аутентичный текст ИСО/МЭК 8825-2-98 "Информационная технология. Правила кодирования АСН.1. Часть 2. Спецификация правил уплотненного кодирования (PER)" с Изменением N 1 (1999 г.) и Дополнением N 1 (2000 г.)
4 ВВЕДЕН ВПЕРВЫЕ
В настоящем стандарте определен набор правил уплотненного кодирования, который может быть использован для получения синтаксиса передачи значений типов, определенных в ГОСТ Р ИСО/МЭК 8824-1. Правила уплотненного кодирования также применимы для декодирования указанного синтаксиса передачи с целью идентификации переданных значений данных.
Правила кодирования, определенные в настоящем стандарте:
- используются во время передачи;
- предназначены для использования в случаях, когда при выборе правил кодирования большое значение имеет минимизация размера представления значений;
- допускают расширение абстрактного синтаксиса путем добавления дополнительных значений, сохраняя кодирование существующих значений, для всех видов расширения, описанных в ГОСТ Р ИСО/МЭК 8824-1.
В настоящем стандарте использованы ссылки на следующие стандарты:
ИСО/МЭК 10646-1-93* Информационная технология. Универсальный, многооктетный кодовый набор символов (UCS). Часть 1. Архитектура и основная многоязычная плоскость
_______________
* Международные стандарты - во ВНИИКИ Госстандарта России.
ИСО/МЭК 646-91* Информационная технология. 7-битнокодированный набор символов ИСО для обмена информацией
_______________
* Международные стандарты - во ВНИИКИ Госстандарта России.
В настоящем стандарте используют следующие термины с соответствующими определениями.
В настоящем стандарте используют следующие термины, определенные в ГОСТ 34.971:
а) множество определенных контекстов;
б) идентификатор контекста уровня представления.
В настоящем стандарте используют все определения из ГОСТ Р ИСО/МЭК 8824-1.
В настоящем стандарте используют все определения из ГОСТ Р ИСО/МЭК 8824-2.
В настоящем стандарте используют следующие термины, определенные в ГОСТ Р ИСО/МЭК 8824-3:
а) ограничение связи компонентов;
б) табличное ограничение.
В настоящем стандарте используют следующий термин, определенный в ГОСТ Р ИСО/МЭК 8824-4, - переменное ограничение.
В настоящем стандарте используют следующие термины, определенные в ГОСТ Р ИСО/МЭК 8825-1:
а) динамическое соответствие;
б) статическое соответствие;
в) значение данных;
г) кодирование (значений данных);
д) отправитель;
е) получатель.
В настоящем стандарте используют следующие определения:
3.7.1 двоично-дополнительное до 2 целое кодирование: Кодирование целого числа в выровненном по октету поле битов заданной длины или в количестве октетов, минимально необходимом для размещения этого числа, закодированного как целое двоичное дополнение до 2, обеспечивающее представление целых чисел, которые равны, больше или меньше нуля, как определено в 10.4.
Примечания
1 Значение целого двоичного дополнения числа до 2 получается путем нумерации битов в октетах содержимого, начиная с бита 1 последнего октета как бита 0 и заканчивая битом 8 первого октета. Каждому биту присваивается числовое значение , где - номер бита в описанной выше нумерации. Значение целого двоичного дополнения числа до 2 получается суммированием присвоенных числовых значений тех битов, которые равны единице, исключая бит 8 первого октета, и последующего уменьшения этой суммы на числовое значение, присвоенное биту 8 первого октета, если тот бит равен единице.
2 Целое число в данном контексте является синонимом математического термина "целое число". Его следует отличать от целочисленного типа integer АСН.1.
3.7.2 значение абстрактного синтаксиса: Значение из абстрактного синтаксиса (определенного как множество значений единственного типа АСН.1), которое должно быть закодировано PER или которое должно быть получено декодированием PER.
Примечание - Единственный тип АСН.1, связанный с абстрактным синтаксисом, формально идентифицируется объектом класса ABS-TRACT-SYNTAX.
3.7.3 битовое поле: Результат некоторой части метода кодирования, состоящий из упорядоченного набора битов, число которых не обязательно кратно восьми и которые в полном кодировании значения абстрактного синтаксиса не обязательно начинаются на границе октета.
3.7.4 каноническое кодирование: Полное кодирование значения абстрактного синтаксиса, полученное применением правил кодирования, которые не имеют зависящих от реализации опции; такие правила приводят к определению однозначного отображения между недвусмысленными и уникальными битовыми строками в синтаксисе передачи и значениями в абстрактном синтаксисе.
3.7.5 составной тип: Тип "множество", "последовательность", "множество-из", "последовательность-из", "встроенное-здп", выборочный, внешний или неограниченный тип символьных строк.
3.7.6 составное значение: Значение составного типа.
3.7.7 ограниченное целое число: Целое число, которое ограничено видимым для PER требованием, находится в диапазоне от до , где меньше или равно , и значения и являются допустимыми.
Примечание - Ограниченные целые числа встречаются в кодировании, идентифицирующем: выбранную альтернативу из выборочного типа, длину строк символов, октетов и битов, которая ограничена некоторой максимальной длиной видимым для PER образом, счетчик числа компонентов в типе "последовательность-из" или "множество-из", максимальное число которых ограничено видимым для PER образом, значение целочисленного типа, которое ограничено видимым для PER образом, и значение, которое обозначает перечисление в перечислимом типе.
3.7.8 эффективное ограничение размера (для ограничения типов строк): Единственное конечное ограничение размера, которое может быть применено к встроенному типу строки, результатом которого является допущение всех строк и только тех длин, которые могут иметь строки ограничиваемого типа.
Примечание - Например, следующая нотация имеет эффективное ограничение размера:
А :: = IA5String (SIZE(1..4)|SIZE(10..15)),
так как она может быть переписана с единственным ограничением размера, который относится ко всем значениям:
А :: = IA5String (SIZE(1..4|10..15)),
тогда как следующая нотация не имеет эффективного ограничения размера, так как строка может быть произвольной длины, если она не содержит никаких символов, кроме 'а', 'b' и 'с':
В :: = IA5String (SIZE(1..4)|FROM ("abc"))
3.7.9 эффективное ограничение допустимого алфавита "PermittedAlphabet" (для ограниченных типов символьных строк): Единственное ограничение PermittedAlphabet, которое может быть применено к встроенному типу символьной строки известной кратности, результатом которого является допущение всех строк, содержащих только те символы, которые могут присутствовать в любой позиции любого значения ограниченного типа символьных строк.
Примечание - Ограничением эффективного допустимого алфавита (PermittedAlphabet) является либо весь алфавит неограниченного типа символьных строк, либо спецификация PermittedAlphabet, которая может оказаться супермножеством всех ограничений PermittedAlphabet, наложенных на тип. Например, в
Ах :: = IA5String (FROM ("AB")|FROM ("CD"))
Вх :: = IA5String (SIZE (1..4)|FROM ("abc"))
"Ax" имеет эффективное ограничение PermittedAlphabet, которое состоит из всего алфавита IA5String, так как нет ограничения PermittedAlphabet, применимого ко всем значениям "Ах". То же самое справедливо и для "Вх". С другой стороны, следующий пример имеет эффективное ограничение PermittedAlphabet "ABCDE", так как существует ограничение PermittedAlphabet, применимое ко всем значениям:
А:: = IA5String (FROM ("AB")|FROM ("CD")|FROM ("ABCDE"))