INNER CODE UNIT · C++
gammaInvGF
ph4r05/Whitebox-crypto-AES · BGEAttack.cpp:755
GF2E gammaInvGF = GF2EFromLong(out->P[idxTwice].delta, 8);
GF2E gammaGF = NTL::inv(gammaInvGF);
out->gamma = (BYTE) getLong(gammaGF);
for(int d=0; d<4; d++){
if (out->P[d].valid==false) continue;
GF2E deltaCurGF = GF2EFromLong(out->P[d].delta, 8);
GF2E deltaCurInvGF = NTL::inv(deltaCurGF);
GF2E alfaGF = gammaInvGF * deltaCurInvGF;
out->P[d].alfa_0 = (BYTE) getLong(alfaGF);
}
}
return PiOK;
}
int BGEAttack::recoverQj(GenericAES & aes, int r, int col, int row, const mat_GF2 A0, BYTE alfa00, BYTE alfa_row_0, mat_GF2 & Aj, BYTE * qj){
assert(r>=0 && r<N_ROUNDS);
assert(col>=0 && col<=3);