Каков идентификатор алгоритма при использовании AES в режиме CBC с заполнением ISO 10126 внутри PKCS # 7?
-
08-07-2019 - |
Вопрос
Я хочу использовать PKCS # 7 в качестве формата контейнера для некоторого зашифрованного, подписанного контента, и нам нужно использовать AES в режиме CBC с заполнением на основе ISO 10126. Я не могу найти конкретную ссылку на идентификатор алгоритма, чтобы использовать для этой комбинации. Я могу изобрести свой собственный, но тогда потеряю совместимость с другими инструментами.
Решение
Режим заполнения не требуется указывать. Это верно, потому что PKCS # 7 (как и многие другие криптографические контейнеры) использует кодировку ASN.1 / BER. Поскольку кодировка BER содержит точную длину сообщения внутри простого текста, фактическое значение отступа не имеет значения.
Другие советы
Оказывается, что режим заполнения не нужно указывать, имеет значение только криптоалгоритм.
Я полагаю, что если вы используете PKCS # 7 в качестве формата, заполнение будет, в общем, " PKCS7 " отступы (n октетов значения 'n', см. RFC 2315 , раздел 10.3.2) . р>
Идентификатор (и) алгоритма для AES / CBC приведены, например, в. RFC 3565 :
-- AES information object identifiers --
aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840)
organization(1) gov(101) csor(3)_ nistAlgorithms(4) 1 }
-- AES using CBC-chaining mode for key sizes of 128, 192, 256
id-aes128-CBC OBJECT IDENTIFIER ::= { aes 2 }
id-aes192-CBC OBJECT IDENTIFIER ::= { aes 22 }
id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 }
Так, например, OID для 128-битного AES в режиме CBC - 2.16.840.1.101.3.4.1.2
Технически это относится к CMS , который по сути является обновленной PKCS # 7. р>