Я получаю сообщение об ошибке "CKR_WRAPPED_KEY_INVALID" при распаковке. Как развернуть ключ AES как ключ DES2? - PullRequest
0 голосов
/ 13 января 2020

Сначала я обернул ключ AES, используя другой ключ AES по алгоритму AES / CB C. Затем я попытался развернуть этот ключ AES как ключ DES2, используя алгоритм AES / CB C, передав тип ключа как DES2. Но при распаковке я получил ошибку CKR_WRAPPED_KEY_INVALID.

Шаги для воспроизведения:

  1. Создание 2 ключей AES. давайте называем первый ключ как «ключ для переноса», а второй ключ как «ключ для переноса»;
  2. Оборачиваем первый ключ, используя второй ключ и алгоритм AES / CB C, через любой API или что-то еще;
  3. Затем вы получите завернутый ключ в качестве вывода;
  4. Теперь разверните завернутый ключ (т.е. вывод), используя второй ключ (ключ переноса) и алгоритм AES / CB C;
  5. При развертывании необходимо указать тип ключа в качестве ввода;
  6. Дайте тип ключа как DES2;
  7. Вы получите CKR_WRAPPED_KEY_INVALID ошибку.

Пожалуйста, помогите мне решить эту проблему.

Примечание: если я выполняю те же шаги, используя алгоритм TDES / ECB, я не получаю никакой ошибки. работает нормально.

1 Ответ

0 голосов
/ 13 января 2020

Вероятно, виновником является паритет DES. Либо установите четность вручную, либо используйте первые 16 байтов ключа 3DES, созданного с использованием KeyGenerator в качестве ввода для ключа AES.

Четность DES определяется младшим значащим битом каждого байта. Каждый байт должен иметь нечетное количество битов, установленных (до 1) после применения четности.

...