• Посилання скопійовано
Документ підготовлено в системі iplex

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

Міністерство юстиції України , Адміністрація Державної служби спеціального звязку та захисту інформації України | Наказ, Вимоги від 20.08.2012 № 1236/5/453 | Документ не діє
Документ підготовлено в системі iplex
МІНІСТЕРСТВО ЮСТИЦІЇ УКРАЇНИ
АДМІНІСТРАЦІЯ ДЕРЖАВНОЇ СЛУЖБИ СПЕЦІАЛЬНОГО ЗВ’ЯЗКУ ТА ЗАХИСТУ
ІНФОРМАЦІЇ УКРАЇНИ
НАКАЗ
20.08.2012 № 1236/5/453
Зареєстровано в Міністерстві
юстиції України
20 серпня 2012 р.
за № 1398/21710
Про затвердження вимог до форматів, структури та протоколів, що реалізуються у надійних засобах електронного цифрового підпису
( Із змінами, внесеними згідно з Наказом Міністерства юстиції № 1716/5/667 від 22.11.2012 )
На виконання пункту 3 Плану заходів щодо реалізації Концепції розвитку електронного урядування в Україні , затвердженого розпорядженням Кабінету Міністрів України від 26 вересня 2011 року № 1014-р, відповідно до Закону України "Про електронний цифровий підпис" , підпунктів 65 і 66 пункту 4 Положення про Міністерство юстиції України , затвердженого Указом Президента України від 06 квітня 2011 року № 395, підпунктів 7 і 11 пункту 4 Положення про Адміністрацію Державної служби спеціального зв’язку та захисту інформації України , затвердженого Указом Президента України від 30 червня 2011 року № 717, та з метою створення умов технологічної сумісності програмно-технічних комплексів акредитованих центрів сертифікації ключів та надійних засобів електронного цифрового підпису
НАКАЗУЄМО:
1. Затвердити такі, що додаються, вимоги до форматів, структури та протоколів, що реалізуються у надійних засобах електронного цифрового підпису (далі - Вимоги):
1.1. Вимоги до формату посиленого сертифіката відкритого ключа.
2. Установити, що:
2.1. Акредитовані центри сертифікації ключів, замовники, розробники, виробники та організації, які експлуатують надійні засоби електронного цифрового підпису в системах електронного документообігу, що створюються на виконання Плану заходів щодо реалізації Концепції розвитку електронного урядування в Україні , затвердженого розпорядженням Кабінету Міністрів України від 26 вересня 2011 року № 1014-р, забезпечують застосування положень Вимог у програмно-технічних комплексах акредитованих центрів сертифікації ключів та надійних засобах електронного цифрового підпису з 31 грудня 2012 року.
2.2. Акредитовані центри сертифікації ключів, замовники, розробники, виробники та організації, які експлуатують надійні засоби електронного цифрового підпису, крім визначених у підпункті 2.1 пункту 2 цього наказу, забезпечують застосування у програмно-технічних комплексах акредитованих центрів сертифікації ключів та надійних засобах електронного цифрового підпису положень Вимог з 01 червня 2013 року.
2.3. Акредитовані центри сертифікації ключів, які здійснили заходи, визначені у підпунктах 2.1, 2.2 пункту 2 цього наказу, надають послуги електронного цифрового підпису з моменту проходження повторної акредитації відповідно до пункту 13 Порядку акредитації центру сертифікації ключів , затвердженого постановою Кабінету Міністрів України від 13 липня 2004 року № 903.
3. Адміністрації Державної служби спеціального зв’язку та захисту інформації України вжити заходів для впровадження Вимог у програмно-технічних комплексах акредитованих центрів сертифікації ключів та надійних засобах електронного цифрового підпису в строки, визначені у підпунктах 2.1, 2.2 пункту 2 цього наказу.
4. Департаменту нотаріату, банкрутства та функціонування центрального засвідчувального органу Міністерства юстиції України (Чижмарь К.І.) розмістити цей наказ на офіційному веб-сайті Міністерства юстиції України.
5. Цей наказ набирає чинності з дня його офіційного опублікування.
6. Контроль за виконанням цього наказу покласти на заступника Міністра юстиції України Ворону М.Д. та першого заступника Голови Державної служби спеціального зв’язку та захисту інформації України Цуркана О.Г.
Міністр юстиції УкраїниО.В. Лавринович
Голова Державної служби
спеціального зв’язку
та захисту інформації України

Г.А. Резніков
ПОГОДЖЕНО:
В.о. Голови Державної служби України
з питань регуляторної політики
та розвитку підприємництва
Перший заступник Міністра освіти і науки,
молоді та спорту України
Голова Національної комісії,
що здійснює державне регулювання
у сфері зв’язку та інформатизації

О.Ю. Потімков
Є.М. Суліма
П.П. Яцук
ЗАТВЕРДЖЕНО
Наказ Міністерства
юстиції України,
Адміністрації Державної служби
спеціального зв’язку
та захисту інформації України
20.08.2012 № 1236/5/453
Зареєстровано в Міністерстві
юстиції України
20 серпня 2012 р.
за № 1398/21710
ВИМОГИ
до формату посиленого сертифіката відкритого ключа
І. Загальні положення
1.1. Ці Вимоги визначають формат посиленого сертифіката відкритого ключа (далі - сертифікат).
1.2. Формати даних представлено у нотації ASN.1, визначеній у міжнародному стандарті ISO/IEC 8824 "Information technology - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1)" / ДСТУ ISO/ІЕС 8824-3:2008 "Інформаційні технології. Нотація абстрактного синтаксису 1 (ASN.1)" - частина 3. Специфікація обмежень (ISO/IEC 8824-3:2002, IDT), затвердженому наказом Державного комітету України з питань технічного регулювання та споживчої політики від 26 грудня 2008 року № 508 (із змінами).
1.3. Усі структури даних кодують за правилами DER згідно з міжнародним стандартом ISO/IEC 8825-1:2002 "Information technology - ASN.1 encoding Rules - Part 1: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)" & AMD1:2004 "Support for EX-TENDED-XER".
1.4. Ці Вимоги засновані на національному стандарті України ДСТУ ISO/IEC 9594-8:2006 "Інформаційні технології. Взаємозв'язок відкритих систем. Каталог. Частина 8. Основні положення щодо сертифікації відкритих ключів та атрибутів", затвердженому наказом Державного комітету України з питань технічного регулювання та споживчої політики від 27 грудня 2006 року № 374 (із змінами) (далі - ДСТУ ISO/IEC 9594-8:2006), з урахуванням визначених у статті 6 Закону України "Про електронний цифровий підпис" вимог до змісту сертифіката ключа.
1.5. Ці Вимоги не дублюють стандарт ДСТУ ISO/IEC 9594-8:2006, а описують положення цього стандарту та формати полів. У разі виникнення розбіжностей між положеннями зазначеного стандарту та положеннями цих Вимог застосовуються положення цих Вимог.
1.6. Положення цих Вимог є обов’язковими для програмно-технічних комплексів акредитованих центрів сертифікації ключів та надійних засобів електронного цифрового підпису. Правильність реалізації формату посиленого сертифіката відкритого ключа у надійних засобах електронного цифрового підпису підтверджується сертифікатом відповідності або позитивним експертним висновком за результатами державної експертизи у сфері криптографічного захисту інформації.
ІІ. Подання сертифіката
Сертифікат ключа подається в такому вигляді:
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
Поле "TBSCertificate" - це частина сертифіката, на яку за допомогою особистого ключа центрального засвідчувального органу, засвідчувального центру, акредитованого центру сертифікації ключів (далі - Центр) накладається електронний цифровий підпис (далі - ЕЦП) за криптографічним алгоритмом (далі - криптоалгоритм), об’єктний ідентифікатор якого міститься у полі "signatureAlgorithm". Значення ЕЦП містить поле "signatureValue".
TBSCertificate ::= SEQUENCE {
version [0] Version,
serialNumber CertificateSerialNumber,
signature AlgoritmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
extensions [3] EXPLICIT Extensions }
Для усіх строкових даних та полів сертифіката, що мають універсальний тип "DirectoryString", використовується кодування UTF-8. Для набору символів ASCII може використовуватися кодування PrintableString. Символ ";" використовується як роздільник даних у полі сертифіката.
ІІІ. Основні поля сертифіката
3.1. Основні поля сертифіката наведено в таблиці 1.
Таблиця 1
Назва поля англійською мовоюНазва поля українською мовою
versionномер версії сертифіката
serialNumberунікальний реєстраційний номер сертифіката
issuerнайменування та реквізити Центру
signatureалгоритм ЕЦП
validityстрок чинності сертифіката
subjectвласник сертифіката
subjectPublicKeyInfoінформація про відкритий ключ підписувача
signatureAlgorithmнайменування криптоалгоритму, що використовується Центром
signatureValueзначення ЕЦП
3.2. Поле "Номер версії сертифіката" ("version") повинно містити значення "2" (1 байт), яке означає, що формат сертифіката відповідає версії 3 згідно з національним стандартом ДСТУ ISO/IEC 9594-8:2006.
Version ::= INTEGER {v3 (2)}
3.3. Значення поля "Унікальний реєстраційний номер сертифіката" ("serialNumber") повинно бути додатним цілим числом, розмір якого не перевищує 20 байт (0'serialNumber'2-160).
Унікальність реєстраційного номера сертифіката повинна дотримуватися у рамках всіх сертифікатів, сформованих Центром.
CertificateSerialNumber::= INTEGER
3.4. Поле "Найменування та реквізити Центру" ("issuer") повинно містити найменування та реквізити Центру.
Name ::= CHOICE {
rdnSequence RDNSequence }
RDNSequence::= SEQUENCE OF RelativeDistinguishedName
RelativeDistinguishedName::= SET OF AttributeTypeAndValue
AttributeTypeAndValue::= SEQUENCE {
type AttributeType,
value AttributeValue }
AttributeType::= OBJECT IDENTIFIER
AttributeValue::= ANY DEFINED BY AttributeType
DirectoryString::=CHOICE {
printableString PrintableString,
utf8String UTF8String,
bmpString BMPString }
id-at OBJECT IDENTIFIER ::= {joint-iso-ccitt (2) ds (5) 4}
3.5. У полі "Найменування та реквізити Центру" ("issuer") повинні міститися реквізити Центру, що наведені у таблиці 2.
Таблиця 2
Назва реквізиту англійською мовоюНазва реквізиту українською мовоюЗначення реквізитуОбов’язковість-1 реквізиту
countryNameназва країникраїна, в якій зареєстрована організація - юридична особа або фізична особа, яка є суб’єктом підприємницької діяльності id-at-countryName AttributeType ::= {id-at 6} X520countryName ::= PrintableString (SIZE (2)) код згідно з міжнародним стандартом ISO 3166 (для України - UA)+
organizationNameнайменування організаціїповне (або офіційне скорочене) найменування організації - юридичної особи або прізвище та ініціали фізичної особи, яка є суб'єктом підприємницької діяльності, за установчими документами або відомостями про державну реєстрацію id-at-organizationName AttributeType ::= {id-at 10} X520organizationName ::= DirectoryString (SIZE (64))+
serialNumberсерійний номерунікальний реєстраційний номер Центру id-at-serialNumber AttributeType ::= {id-at 5} serialNumber::= PrintableString (SIZE (64)) Значення цього реквізиту задається згідно з підпунктом 3.5.2 цього пункту+
stateOrProvinceNameназва області-2область, у якій зареєстрована організація - юридична особа або фізична особа, яка є суб’єктом підприємницької діяльності id-at- stateOrProvinceName AttributeType ::= {id-at 8} X520stateOrProvinceName ::= DirectoryString (SIZE (64))+/-
localityNameназва містамісто, в якому зареєстрована організація - юридична особа або фізична особа, яка є суб’єктом підприємницької діяльності id-at- localityName AttributeType ::= {id-at 7} X520localityName ::= DirectoryString (SIZE (64))+
commonNameнайменування Центрунайменування Центру id-at-commonName AttributeType ::= {id-at 3} X520commonName ::= DirectoryString (SIZE (64))+
organizationalUnit Nameназва підрозділу організаціїназва підрозділу організації, що є Центром та забезпечує надання послуг електронного цифрового підпису id-at-organizationalUnitName AttributeType ::= {id-at 11} X520 organizationalUnitName ::= DirectoryString (SIZE (64))+
__________
- 1 Обов’язковість визначається таким чином:
+ - реквізит обов’язковий;
- - реквізит повинен бути відсутній;
+/- - реквізит може бути присутнім або відсутнім.
- 2 Якщо місцем реєстрації юридичної особи або фізичної особи, яка є суб’єктом підприємницької діяльності, є місто Київ або Севастополь, реквізит "stateOrProvinceName" повинен бути відсутнім.
( Таблиця 2 пункту 3.5 розділу III із змінами, внесеними згідно з Наказом Міністерства юстиції № 1716/5/667 від 22.11.2012 )
3.5.1. Поля "Найменування та реквізити Центру" ("issuer") та "Унікальний реєстраційний номер сертифіката" ("serialNumber") у структурі "TBSCertificate" разом ідентифікують унікальний сертифікат.
3.5.2. Реквізит "Унікальний реєстраційний номер сертифіката" ("serialNumber") у таблиці 2 містить унікальний реєстраційний номер Центру.
Формування унікального реєстраційного номера здійснюється згідно з нижченаведеними правилами.
Реквізит містить цифри "0"-"9", великі латинські літери "А"-"Z" та символ "-";
UA-[Код Установи] {-[Додаток]}, де:
Код Установи - 8, 9 або 10 цифр, що містять код за ЄДРПОУ організації - юридичної особи або реєстраційний номер облікової картки платника податку - фізичної особи, яка є суб'єктом підприємницької діяльності за установчими документами або відомостями про державну реєстрацію;
Додаток - необов’язкова послідовність від 1 до 4 цифр, що містить додаткову частину ідентифікатора. У разі використання Додатка він відокремлюється від реквізиту [Код Установи] символом "-".
Вищезазначений реквізит шляхом його додавання до розпізнавального імені Центру забезпечує унікальність його розпізнавального імені в межах України. Унікальність цього розпізнавального імені забезпечується центральним засвідчувальним органом.
3.6. Поле "Алгоритм ЕЦП" ("signature") повинно містити тільки об’єктний ідентифікатор криптоалгоритму, що використовується Центром для накладання електронного цифрового підпису на сертифікат ключа.
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL }
Значення поля "Алгоритм ЕЦП" ("signature") повинно співпадати із значенням, що міститься у полі "Найменування криптоалгоритму, що використовується Центром" ("signatureAlgorithm").
Поле "parameters" повинно бути відсутнє.
3.7. Поле "Строк чинності сертифіката" ("validity") повинно містити значення дати і часу початку та закінчення строку чинності сертифіката.
Validity ::= SEQUENCE {
notBefore Time,
notAfter Time}
Time ::= CHOICE {
utcTime UTCTime,
generalTime GeneralizedTime}
Поле "Time" зі значенням до 31 грудня 2049 року (включно) кодується у форматі "UTCTime"; починаючи з 01 січня 2050 року - у форматі "GeneralizedTime".
3.8. Поле "Підписувач" ("subject") повинно містити реквізити підписувача, що наведені у таблиці 3.
Таблиця 3
Назва реквізиту англійською мовоюНазва реквізиту українською мовоюЗначення реквізитуОбов’язковість-1 реквізиту для фізичних осібОбов’язковість-1 реквізиту для юридичних осіб
countryNameназва країникраїна, в якій зареєстрована організація - юридична особа або фізична особа, що є підписувачем id-at-countryName AttributeType ::= {id-at 6} X520countryName ::= PrintableString (SIZE (2)) код згідно з ISO 3166 (для України - UA)++
commonNameреквізити підписувачаповне (або офіційне скорочене) найменування організації - юридичної особи-підписувача або прізвище та ініціали фізичної особи-підписувача, що відповідають формату "commonName", визначеному у пункті 3.5 цього розділу++
Surnameпрізвищепрізвище підписувача за паспортними даними id-at-surName AttributeType ::= {id-at 4} X520surname ::= DirectoryString (SIZE (64))+-
givenNameім’я та по батьковіім’я та по батькові підписувача за паспортними даними id-at-givenName AttributeType ::= {id-at 42} X520givenName ::= DirectoryString (SIZE (64))+-
serialNumberсерійний номерунікальний реєстраційний номер підписувача, що надається Центром під час реєстрації підписувача id-at-serialNumber AttributeType ::= {id-at 5} serialNumber ::= PrintableString (SIZE (64))++
organizationNameнайменування організаціїнайменування організації - юридичної особи, що є підписувачем, або прізвище та ініціали фізичної особи, яка є суб’єктом підприємницької діяльності, або організації, яка пов’язана з фізичною особою-підписувачем. Відповідає формату "organizationName", визначеному у пункті 3.5 цього розділу+/-+
organizationalUnit Nameназва підрозділу організаціїназва підрозділу організації, який пов’язаний з фізичною особою-підписувачем. Відповідає формату "organizationalUnitName", визначеному у пункті 3.5 цього розділу+/-+/-
stateOrProvinceNameназва області-2область, у якій зареєстрована організація - юридична особа, що є підписувачем, або організація, яка пов’язана з фізичною особою-підписувачем, або область, у якій зареєстрована фізична особа-підписувач. Відповідає формату "stateOrProvinceName", визначеному у пункті 3.5 цього розділу+/-+/-
localityNameназва містамісто, в якому зареєстрована організація - юридична особа, що є підписувачем, або організація, яка пов’язана з фізичною особою-підписувачем, або місто, в якому зареєстрована фізична особа-підписувач. Відповідає формату "localityName", визначеному у пункті 3.5 цього розділу++
Titleпосадапосада фізичної особи-підписувача в організації id-at-title AttributeType ::= {id-at 12} X520title ::= DirectoryString (SIZE (64))+/--
__________
- 1 Обов’язковість визначається таким чином:
+ - реквізит обов’язковий;
- - реквізит повинен бути відсутній;
+/- - реквізит може бути присутнім або відсутнім.
- 2 Якщо місцем реєстрації юридичної особи або фізичної особи, яка є суб’єктом підприємницької діяльності, є місто Київ або Севастополь, реквізит "stateOrProvinceName" повинен бути відсутнім.
3.8.1. Реквізити юридичної особи-підписувача визначаються в таких атрибутах поля "Підписувач" ("subject"):
organizationName,
countryName,
stateOrProvinceName,
localityName,
commonName.
3.8.2. Реквізити фізичної особи-підписувача (прізвище, ім’я та по батькові за паспортними даними) визначаються в таких атрибутах поля "Підписувач" ("subject"):
commonName,
givenName,
surname.
Обов’язково повинні бути визначені дані в атрибутах "countryName" та "serialNumber" (унікальний реєстраційний номер підписувача).
3.8.3. Реквізити фізичної особи-підписувача, що представляє юридичну особу (або фізичну особу - суб’єкта підприємницької діяльності), визначаються в таких атрибутах поля "Підписувач" ("subject"):
commonName,
givenName,
surname,
organizationName,
organizationalUnitName,
localityName,
stateOrProvinceName,
Title.
Обов’язково повинні бути визначені дані в атрибутах "countryName" та "serialNumber" (унікальний реєстраційний номер підписувача).
3.8.4. Інші реквізити підписувача можуть бути зазначені у розширеннях (extensions) "Додаткові дані підписувача" ("subjectAltName") або "Персональні дані підписувача" ("subjectDirectoryAttributes") залежно від типу реквізиту.
3.9. Додаткові дані про підписувача можуть бути зазначені в інших полях згідно з форматом, визначеним у національному стандарті ДСТУ ISO/IEC 9594-8:2006.
3.10. Поле "Інформація про відкритий ключ підписувача" ("subjectPublicKeyInfo") повинно містити ідентифікатор криптоалгоритму, що використовується підписувачем, а також відкритий ключ, який відповідає особистому ключу підписувача у DER-кодуванні.
SubjectPublicKeyInfo ::= SEQUENCE {
Algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING }
Ідентифікатор криптоалгоритму (поле "AlgorithmIdentifier") містить об’єктний ідентифікатор (поле "algorithm") та відповідні параметри криптоалгоритму.
AlgorithmIdentifier ::= SEQUENCE {
algorithm OBJECT IDENTIFIER,
parameters ANY DEFINED BY algorithm OPTIONAL}
Об’єктний ідентифікатор (поле "algorithm") повинен вказувати на один з криптоалгоритмів:
ДСТУ 4145-2002 "Інформаційна технологія. Криптографічний захист інформації. Електронний цифровий підпис, що ґрунтується на еліптичних кривих", затвердженого наказом Державного комітету України з питань технічного регулювання та споживчої політики від 28 грудня 2002 року № 31 (далі - ДСТУ 4145-2002);
ГОСТ 34.310-95 "Информационная технология. Криптографическая защита информации. Процедуры выработки и проверки электронной цифровой подписи на базе асимметричного криптографического алгоритма", затвердженого наказом Державного комітету України з питань технічного регулювання та споживчої політики від 21 жовтня 1997 року № 640 (далі - ГОСТ 34.310-95).
Структура параметрів криптоалгоритму (поле "parameters") та структура відкритого ключа (поле "subjectPublicKey") визначаються об’єктним ідентифікатором криптоалгоритму.
3.11. Параметри криптоалгоритмів
3.11.1. Параметри криптоалгоритму ДСТУ 4145-2002
DSTU4145Params::= SEQUENCE {
CHOICE {
ecbinary ECBinary, параметри еліптичної кривої загального виду
namedCurve OBJECT IDENTIFIER }, об’єктний ідентифікатор стандартної еліптичної
кривої, що рекомендована ДСТУ 4145-2002
dke OCTET STRING OPTIONAL } довгостроковий ключовий елемент (ДКЕ)
ECBinary ::= SEQUENCE {
version [0] EXPLICIT INTEGER DEFAULT 0,
f BinaryField, основне поле
a INTEGER (0..1), коефіцієнт A еліптичної кривої
b OCTET STRING, коефіцієнт B еліптичної кривої
n INTEGER, порядок базової точки (додатне)
bp OCTET STRING, базова точка еліптичної кривої
BinaryField ::= SEQUENCE {
m INTEGER, ступінь розширення основного поля
CHOICE {
Trinomial, примітивний тричлен
Pentanomial } OPTIONAL } примітивний п’ятичлен
Trinomial ::= INTEGER
Pentanomial::= SEQUENCE {
k INTEGER,
j INTEGER,
l INTEGER }
Значення довгострокового ключового елемента (далі - ДКЕ) повинні відповідати правилам постачання ДКЕ, які визначаються Інструкцією про порядок постачання і використання ключів до засобів криптографічного захисту інформації , затвердженою наказом Адміністрації Державної служби спеціального зв’язку та захисту інформації України від 12 червня 2007 року № 114, зареєстрованою в Міністерстві юстиції України 25 червня 2007 року за № 729/13996 (із змінами) (далі - Інструкція № 114). У разі відсутності ДКЕ як необов’язкового параметра криптоалгоритму повинен використовуватися ДКЕ № 1 із додатка 1 до Інструкції № 114.
3.11.1.1. Допускається кодування полів (розташування внутрішньої послідовності байтів) параметрів еліптичної кривої, що мають тип OCTET STRING, зокрема коефіцієнта В еліптичної кривої, базової точки еліптичної кривої bp, а також відкритого ключа "subjectPublicKey" за двома форматами:
Little-Endian - прямий порядок представлення байтів;
Big-Endian - зворотний порядок представлення байтів (відповідно до правил кодування, визначених в ДСТУ 4145-2002).
3.11.1.2. Об’єктні ідентифікатори для ДСТУ 4145-2002.
Для формату Little-Endian (при визначенні параметрів еліптичної кривої у сертифікаті):
поліноміальний базис 1.2.804.2.1.1.1.1.3.1.1
оптимальний нормальний базис 1.2.804.2.1.1.1.1.3.1.2.
Для формату Big-Endian:
поліноміальний базис 1.2.804.2.1.1.1.1.3.1.1.1.1
оптимальний нормальний базис 1.2.804.2.1.1.1.1.3.1.2.1.1.
3.11.1.3. Базова точка ДСТУ 4145-2002.
Для зображення базової точки використовується формат:
bp OCTET STRING
Базова точка ДСТУ 4145-2002 - це послідовність байтів, яка являє собою елемент основного поля (згідно з пунктом 5.3 ДСТУ 4145-2002), який є стиснутим зображенням (згідно з пунктом 6.9 ДСТУ 4145-2002) точки на еліптичній кривій (залежить від базису, що використовується). Розмір зображення в байтах дорівнює m/8, заокругленому до найближчого цілого у більшу сторону.
3.11.1.4. Коефіцієнт В еліптичної кривої.
Для зображення коефіцієнта B еліптичної кривої згідно з ДСТУ 4145-2002 використовується формат:
b OCTET STRING
Коефіцієнт B еліптичної кривої ДСТУ 4145-2002 - це послідовність байтів, яка являє собою елемент основного поля (згідно з пунктом 5.3 ДСТУ 4145-2002). Розмір зображення в байтах дорівнює m/8, заокругленому до найближчого цілого у більшу сторону.
3.11.1.5. Відкритий ключ ДСТУ 4145-2002.
Для зображення відкритого ключа згідно з ДСТУ 4145-2002 використовується формат (інкапсульовано у поле "subjectPublicKey"):
PublicKey:: = OCTET STRING
Відкритий ключ ДСТУ 4145-2002 - це послідовність байтів, яка являє собою елемент основного поля (згідно з пунктом 5.3 ДСТУ 4145-2002), який є стиснутим зображенням (згідно з пунктом 6.9 ДСТУ 4145-2002) точки на еліптичній кривій, що відображає відкритий ключ ЕЦП. Розмір зображення в байтах дорівнює значенню m/8, заокругленому до найближчого цілого у більшу сторону.
3.11.1.6. ЕЦП за ДСТУ 4145-2002.
ЕЦП за ДСТУ 4145-2002 - це рядок октетів OCTET STRING (інкапсульовано у поле "signatureValue"), що містить цифровий підпис, зображений згідно з пунктами 5.7 та 5.10 ДСТУ 4145-2002:
DSTU4145Signature::= OCTET STRING
Для зберігання зображення ЕЦП використовується мінімально можлива довжина зображення для відповідного ступеня m.
3.11.2. Параметри криптоалгоритму ГОСТ 34.310-95.
Gost34310Params::=SEQUENCE {SEQUENCE {
p INTEGER, характеристика основного поля
q INTEGER, порядок циклічної підгрупи
a INTEGER }, твірний елемент циклічної підгрупи
dke OCTET STRING OPTIONAL } ДКЕ.
3.11.2.1. Об’єктний ідентифікатор для ГОСТ 34.310-95.
Об’єктний ідентифікатор для ГОСТ 34.310-95: 1.2.804.2.1.1.1.1.3.2.
3.11.2.2. Відкритий ключ ГОСТ 34.310-95.
Для зображення відкритого ключа згідно з ГОСТ 34.310-95 використовується формат (інкапсульовано у поле "subjectPublicKey"):
PublicKey:: = INTEGER
3.11.2.3. ЕЦП за ГОСТ 34.310-95.
ЕЦП згідно з ГОСТ 34.310-95 має вигляд (інкапсульовано у поле "signatureValue"):
Gost34310Signature ::= SEQUENCE {
r INTEGER,
s INTEGER},
де r та s обчислюються згідно з ГОСТ 34.310-95.
3.12. ДКЕ - таблиці заповнення вузлів заміни блоків підстановки для алгоритму ДСТУ ГОСТ 28147:2009 "Системы обработки информации. Защита криптографическая. Алгоритмы криптографического преобразования", затвердженого наказом Державного комітету України з питань технічного регулювання та споживчої політики від 22 грудня 2008 року № 495 , який використовується під час генерування псевдовипадкових послідовностей (ДСТУ 4145-2002, Додаток А) та обчислення геш-функції ГОСТ 34.311-95 "Информационная технология. Криптографическая защита информации. Функция хэширования", затвердженого наказом Державного комітету України з питань технічного регулювання та споживчої політики від 21 жовтня 1997 року № 640 (далі - ГОСТ 34.311-95).
Кодування ДКЕ виконується як:
dke OCTET STRING
ДКЕ може кодуватися в розгорнутому або упакованому форматі залежно від алгоритму:
для ДСТУ 4145-2002 - упакований формат;
для ГОСТ 34.310-95 - розгорнутий формат.
У разі відсутності ДКЕ в параметрах криптоалгоритму використовується ДКЕ № 1, що наведено у додатку 1 до Інструкції № 114 .
Упакований формат ДКЕ (масив 64 байт).
Формат розташування елементів ДКЕ - масив фіксованої довжини розміром 64 байт.
ДКЕ - це матриця, що має стовпці К1…К8 (р-1…р-8) по 16 елементів (0…15) у кожному. Порядок розташування елементів:
К1.0, К1.1 … К1.15, К2.0, К2.1 … К2.15, …… К8.0, К8.1 … К8.15
Для блоку підстановки ДКЕ № 1, що наведений у додатку 1 до Інструкції № 114 , має вигляд:
K8K7K6K5K4K3K2K1
0132F3F8A
128888609
23B9ED5CD
3E5799846
466576E9E
5D4F2BB6B
6BE00FA74
78ABD04B5
8F2CC2C2F
9AC165031
AC1D1C313
B57E5A7FC
C79AB4257
D9F34E9E0
E0D6311A8
F404A7DD2
ДКЕ в упакованому форматі (масив 64 байт) має вигляд:
a9 d6 eb 45 f1 3c 70 82
80 c4 96 7b 23 1f 5e 1d
f6 58 eb a4 c0 37 29 1d
38 d9 6b f0 25 ca 4e 17
f8 e9 72 0d c6 15 b4 3a
28 97 5f 0b c1 de a3 64
38 b5 64 ea 2c 17 9f d0
12 3e d6 b8 fa c5 79 04
3.12.2. Розгорнутий формат ДКЕ (масив 128 байт).
Формат розташування елементів ДКЕ - масив фіксованої довжини в 128 байт. ДКЕ - це матриця стовпців К1…К8 (р1…р8) по 16 елементів (0…15) у кожному. При зберіганні кожний елемент ДКЕ подано 1 байтом, які розташовані в такому порядку (від молодших байтів до старших):
К1.0, К1.1 … К1.15, К2.0, К2.1 … К2.15, …… К8.0, К8.1 … К8.15
Приклад кодування ДКЕ №1, що наведено в додатку 1 до Інструкції № 114 , в розгорнутому форматі (масив 128 байт) для блоку підстановки:
0a 09 0d 06 0e 0b 04 05 0f 01 03 0c 07 00 08 02
08 00 0c 04 09 06 07 0b 02 03 01 0f 05 0e 0a 0d
0f 06 05 08 0e 0b 0a 04 0c 00 03 07 02 09 01 0d
03 08 0d 09 06 0b 0f 00 02 00 0c 0a 04 0e 01 07
0f 08 0e 09 07 02 00 0d 0c 06 01 05 0b 04 03 0a
02 08 09 07 05 0f 00 0b 0c 01 0d 0e 0a 03 06 04
03 08 0b 05 06 04 0e 0a 02 0c 01 07 09 0f 0d 00
01 02 03 0e 06 0d 0b 08 0f 0a 0c 05 07 09 00 04
3.13. Стартовий вектор для обчислення значення геш-функції ГОСТ 34.311-95.
Для обчислення значення геш-функції використовується алгоритм згідно із стандартом ГОСТ 34.311-95. При обчисленні електронного цифрового підпису значення стартового вектора H функції гешування за ГОСТ 34.311-95 встановлюється рівним 256-ти нульовим бітам.
3.14. Порядок кодування окремих параметрів криптографічних алгоритмів.
При кодуванні реквізитів криптографічних алгоритмів ДСТУ 4145-2002 та ГОСТ 34.310-95 застосовуються такі правила:
3.14.1. Значення типу "INTEGER".
Всі значення типу "INTEGER" для алгоритмів ДСТУ 4145-2002 та ГОСТ 34.310-95 кодуються як цілі числа >=0.
Наприклад, значення для типу "INTEGER" кодуються такою послідовністю байтів:
а) позитивне число 18А3h кодується в DER як послідовність байтів 02 02 18 А3;
б) позитивне число FA10h кодується як послідовність байтів 02 03 00 FA 10 (додається 00 як додатковий старший байт, оскільки старший біт старшого байта FAh дорівнює 1);
в) число 0 кодується в DER як послідовність байтів 02 01 00.
3.14.2. Кодування двійкових рядків в складі ASN.1-типу OCTET STRING у форматі Little-Endian.
Математичне кодування двійкових рядків (бітових послідовностей) виконується за схемою - молодший байт (що містить менші за номерами біти) за молодшою адресою (ближче до початку потоку).
Біти в байті нумеруються від 0 до 7 за вагою розряду: біт i має вагу 2-i.
Наприклад: біт 0 має вагу 1 (01h), біт 1 має вагу 2 (02h), біт 7 має вагу 128 (80h).
Біт n двійкового рядка кодується як біт i байта j, де i та j обчислюються за формулами:
i = n mod 8,
j = n div 8,
де:
x mod y - операція обчислення залишку від ділення x на
y, x div y - операція ділення x на y із заокругленням до
найближчого цілого в меншу сторону.
Якщо кількість бітів у двійковому рядку не кратна 8, біти останнього байта, які не використовуються, мають містити нульове значення.
Наприклад:
бітовий рядок 11100011 кодується як байт E3h;
бітовий рядок 1111000110111 кодується як послідовність байт 37h 1Eh.
ІV. Розширення сертифіката (extensions)
4.1. Формат розширень сертифіката має такий вигляд:
Extensions ::= SEQUENCE SIZE (1…MAX) of Extension
Extension ::= SEQUENCE {
extnID OBJECT IDENTIFIER,
critical BOOLEAN DEFAULT FALSE,
extnvalue OCTET STRING}
Базовий об’єктний ідентифікатор розширень сертифіката має такий вигляд:
id-ce OBJECT IDENTIFIER::= {joint-iso-ccitt (2) ds (5) 29}
Сертифікат може містити будь-які додаткові розширення, які не визначені в цьому документі, за умови, що вони визначені як некритичні. Об’єктні ідентифікатори таких розширень повинні бути зареєстровані у встановленому порядку.
4.2. Розширення сертифіката наведені у таблиці 4.
Таблиця 4
Назва поля англійською мовоюНазва поля українською мовоюОбов’язковість-1
Стандартні розширення сертифіката
authorityKeyIdentifierідентифікатор відкритого ключа Центру+
subjectKeyIdentifierідентифікатор відкритого ключа підписувача+
keyUsageпризначення відкритого ключа, що міститься в сертифікаті+
extKeyUsageуточнене призначення відкритого ключа, що міститься в сертифікаті+/-
certificatePoliciesполітика сертифікації+
subjectAltNameдодаткові дані підписувача+/-
issuerAlternativeNameдодаткові дані Центру+/-
basicConstraintsосновні обмеження+/-
subjectDirectoryAttributesперсональні дані підписувача+/-
crlDistributionPointsточки доступу до списків відкликаних сертифікатів+
Freshest CRLточки доступу до часткового списку відкликаних сертифікатів+/-
Нестандартні розширення сертифіката
qcStatementsознаки посиленого сертифіката+/-
-1 + - розширення обов’язкове;
+/- - розширення може бути присутнім або відсутнім.
4.3. Розширення "Ідентифікатор відкритого ключа Центру" ("authorityKeyIdentifier") використовується для ідентифікації відкритого ключа, що відповідає особистому ключу, яким підписано сертифікат або список відкликаних сертифікатів.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-authorityKeyIdentifier OBJECT IDENTIFIER ::= (id-ce 35)
authorityKeyIdentifier ::= SEQUENCE {
keyIdentifier [0] keyIdentifier
authorityCertIssuer [1] GeneralNames OPTIONAL,
authorityCertSerialNumber [2] CertSerialNumber OPTIONAL}
KeyIdentifier::= OCTET STRING
Атрибут "KeyIdentifier" повинен обов’язково бути присутнім.
Поле "authorityKeyIdentifier" не повинно визначатися як критичне.
4.4. Розширення "Ідентифікатор відкритого ключа підписувача" ("subjectKeyIdentifier") використовується для ідентифікації відкритого ключа, що відповідає особистому ключу, за допомогою якого підписувач здійснює накладання електронного цифрового підпису.
Об’єктний ідентифікатор даного розширення має такий вигляд:
id-ce-subjectIdentifier OBJECT IDENTIFIER :: = (id-ce 14)
SubjectKeyIdentifier ::= KeyIdentifier
Поле "Ідентифікатор відкритого ключа підписувача" ("subjectKeyIdentifier") не повинно визначатися як критичне.
4.5. Обчислення "keyIdentifier" для алгоритмів ДСТУ 4145-2002 та ГОСТ 34.310-95.