Значение контрольной суммы ключа
В криптографии ( значение контрольной суммы ключа KCV) — это контрольная сумма криптографического ключа . [1] Он используется для проверки целостности ключа или сравнения ключей без знания их фактических значений. KCV вычисляется путем шифрования блока байтов, каждый со значением «00» или «01», с помощью криптографического ключа и сохранения первых 6 шестнадцатеричных символов зашифрованного результата. Он используется для управления ключами в различных устройствах шифрования, таких как SIM-карты или аппаратные модули безопасности (HSM) .
В технических спецификациях GlobalPlatform KCV определен для ключей DES/3DES и AES следующим образом: [2]
Для ключа DES значение проверки ключа вычисляется путем шифрования 8 байтов, каждый со значением «00», с использованием проверяемого ключа и сохранением 3 байтов высшего порядка зашифрованного результата. Для ключа AES значение проверки ключа вычисляется путем шифрования 16 байтов, каждый со значением «01», с использованием проверяемого ключа и сохранением 3 байтов высшего порядка зашифрованного результата.
То же определение использует GSMA . [3]
KCV для симметричного управления ключами в сфере розничных финансовых услуг
[ редактировать ]В индустрии платежных карт используется следующее определение, как указано в требовании 15-1 стандарта безопасности PIN-кода PCI . [4] Те же определения можно также найти в стандартах ASC X9 в соответствии с ANSI x9.24-1-2017 для розничных финансовых услуг, Управление симметричными ключами часть 1. [5]
Контрольные значения могут быть рассчитаны двумя методами. TDEA может использовать любой метод. AES должен использовать только метод CMAC . В первом методе контрольные значения вычисляются путем шифрования блока, состоящего из всех двоичных нулей, с использованием ключа или компонента в качестве ключа шифрования с использованием крайних левых n битов результата; где n не превышает 24 бит (6 шестнадцатеричных цифр/3 байта). Во втором методе KCV рассчитывается путем MAC-кодирования блока, состоящего из всех двоичных нулей, с использованием алгоритма CMAC , как указано в ISO 9797-1 (см. также NIST SP 800-38B ). Проверочным значением будут самые левые n бит результата, где n не превышает 40 бит (10 шестнадцатеричных цифр). Блочный шифр, используемый в функции CMAC , такой же, как и блочный шифр самого ключа. Ключ TDEA или компонент ключа TDEA будет иметь MAC-код с использованием блочного шифра TDEA , а 128-битный ключ или компонент AES будет MAC-кодироваться с использованием AES -128 блочного шифра .
Ссылки
[ редактировать ]- ^ «Криптография — обнаружение неправильного ключа с использованием AES/GCM в JAVA» .
- ^ GPC_SPE_034, «Спецификация карты GlobalPlatform 2.3.1» , GlobalPlatform , март 2018 г., раздел B5
- ^ «Архитектура удаленного обеспечения для встроенного UICC 3.1» , GSMA , май 2016 г., Приложение F
- ^ Безопасность PIN-кода PCI, требования и процедуры тестирования, версия 3.1 , PCI , март 2021 г., требование 15-1.
- ^ ANSI x9.24-1-2017 Управление симметричными ключами розничных финансовых услуг, часть 1 , ASC X9, 2017, Приложение A