Процесс аутентификации AES-128 с картами Desfire EV1 выглядит следующим образом:
- Получение идентификаторов приложения: 90 6A 00 00 00
- Выбор приложения: 90 5A 00 00 03 10 00 00 00 (AID: 0x000010)
- Запуск аутентификации с помощью ключа: 90 AA 00 00 01 02 00 (ключ: 0x02)
- Ответы карты со случайным 16-байтовым массивом, давайте назовем это RANDOM_B
- Теперь карте нужно больше данных для продолжения аутентификации, поэтому мы сделаем это
- Расшифруйте RANDOM_B с KEY и пустой IV , давайте назовем это RANDOM_B_DEC
- Сдвиг влево на 1 байт RANDOM_B_DEC , давайте назовем это RANDOM_B_DEC_LS
- Создать случайный массив длиной 16 байтов, давайте назовем это RANDOM_A
- Объединение RANDOM_A и RANDOM_B_DEC_LS в единый 32-байтовый массив, позволяет назвать это ARRAY
- Шифрование этого ARRAY с использованием KEY и RANDOM_B как IV , давайте назовем это ARRAY_ENC
- Отправить ARRAY_ENC для продолжения процесса аутентификации: 90 AF 00 00 20 + ARRAY_ENC + 00
- Теперь ответы карты смещены на 16 байти зашифрованы RANDOM_A , и нам нужно расшифровать и сравнить это с нашим собственным RANDOM_A , который мы создали ранее
Вот мой вопрос: во время расшифровки получил RANDOM_A (последний шаг) какой массив IV я должен использовать?
После этого, как я могу прочитать данные из файла в выбранном и аутентифицированном приложении?Эти данные также получены в зашифрованном виде?Если да, что я буду использовать в качестве IV-массива для расшифровки?
Спасибо