PBKDF2-HMAC-SHA1

Для генерации допустимого попарного главного ключа для сети WPA2, маршрутизатор использует PBKDF2-HMAC-SHA1 алгоритм. Я понимаю, что функция sha1 выполняется 4096 раз для получения PMK, однако у меня есть два вопроса о процессе.

Извините псевдо код.

1) Как вход к первой инстанции отформатированной функции SHA1? SHA1 ("network_name" + "network_name_length" + "network_password")

Это отформатировано в том порядке, действительно ли это - шестнадцатеричное значение сетевого имени, длины и пароля или прямого ASCII?

Затем от того, что я собираю, полученный обзор на 160 битов питается прямо в другой раунд хеширования без любого дополнительного соления. Как это: SHA1 ("обзор на 160 битов от последнего раунда хеширования") Повышение и повторение.

2) После того как это происходит 4096 раз, 256 битов вывода используются в качестве попарного главного ключа. То, что я не понимаю, то, что, если SHA1 производит вывод на 160 битов, как алгоритм прибывает в 256 битов, требуемых для ключа?

Спасибо за справку.

9
задан Jason 17 March 2010 в 20:35
поделиться

1 ответ

да, верно, алгоритм генерации двоичного ключа для сети WPA:

ключ = PBKDF2 (кодовая фраза, ssid, 4096, 256)

PBKDF2 описан в http://www.ietf.org/rfc/rfc2898.txt

Он использует алгоритм HMAC для создания дайджеста входных данных. HMAC может использовать любую хэш-функцию, здесь спецификация требует SHA1, как вы упомянули. Хеширование выполняется в промежуточном состоянии в рамках алгоритма HMAC:

H(K XOR opad, H(K XOR ipad, text))

(H = выбранная хеш-функция, K - кодовая фраза, текст будет ssid)

Этот процесс HMAC повторяется PBKDF2 4096 раз.

Алгоритм HMAC: http://www.ietf.org/rfc/rfc2104

Вот пример источника получения ключа:

https://www.codeblog.org/viewsrc/ openssl-engine-0.9.6a / crypto / evp / p5_crpt2.c

int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen,
   80:                            unsigned char *salt, int saltlen, int iter,
   81:                            int keylen, unsigned char *out)

salt - это SSID, pass - это пароль.

8
ответ дан 4 December 2019 в 22:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: