@Mem5
The construction (PBKDF2 calculation) of the plainmasterkey (PMK) is for both hash modes (2500 and 16800) the same and take long period of CPU/GPU time. This first part is a really slow part.
BTW:
We need to calculate PBKDF2 once and can use it for PMKID and MIC (EAPOL) calculation:
https://github.com/hashcat/hashcat/issues/1816
In the second part, PMKID calculation (16800) is much faster:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
than calculating a MIC from EAPOL (2500):
calculate PKE, calculate PTK, calculate MIC (encrypt message and compare MIC) for WPA1:
HMAC(EVP_sha1(), pmk, 32, pkedata, 100, ptk + p * 20, NULL);
HMAC(EVP_md5(), &ptk, 16, eapol, eapol_len, mic, NULL);
or
calculate PKE, calculate PTK, calculate MIC (encrypt message and compare MIC) for WPA2:
HMAC(EVP_sha1(), pmk, 32, pkedata, 100, ptk + p * 20, NULL);
HMAC(EVP_sha1(), &ptk, 16, eapol, eapol_len, mic, NULL);
or
calculate PKE, calculate PTK, calculate MIC (encrypt message and compare MIC) for WPA2 key version 3:
HMAC(EVP_sha256(), pmk, 32, pkedata_prf, 2 + 98 + 2, ptk, NULL);
omac1_aes_128(&ptk, eapol, eapol_len, mic);
That is a simple and quick answer, but you can read more here:
https://www.ins1gn1a.com/understanding-w...-cracking/
The construction (PBKDF2 calculation) of the plainmasterkey (PMK) is for both hash modes (2500 and 16800) the same and take long period of CPU/GPU time. This first part is a really slow part.
BTW:
We need to calculate PBKDF2 once and can use it for PMKID and MIC (EAPOL) calculation:
https://github.com/hashcat/hashcat/issues/1816
In the second part, PMKID calculation (16800) is much faster:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
than calculating a MIC from EAPOL (2500):
calculate PKE, calculate PTK, calculate MIC (encrypt message and compare MIC) for WPA1:
HMAC(EVP_sha1(), pmk, 32, pkedata, 100, ptk + p * 20, NULL);
HMAC(EVP_md5(), &ptk, 16, eapol, eapol_len, mic, NULL);
or
calculate PKE, calculate PTK, calculate MIC (encrypt message and compare MIC) for WPA2:
HMAC(EVP_sha1(), pmk, 32, pkedata, 100, ptk + p * 20, NULL);
HMAC(EVP_sha1(), &ptk, 16, eapol, eapol_len, mic, NULL);
or
calculate PKE, calculate PTK, calculate MIC (encrypt message and compare MIC) for WPA2 key version 3:
HMAC(EVP_sha256(), pmk, 32, pkedata_prf, 2 + 98 + 2, ptk, NULL);
omac1_aes_128(&ptk, eapol, eapol_len, mic);
That is a simple and quick answer, but you can read more here:
https://www.ins1gn1a.com/understanding-w...-cracking/