INNER CODE UNIT · C++
deltaCurGF
ph4r05/Whitebox-crypto-AES · BGEAttack.cpp:760
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);
assert(row>=1 && row<=3);
// From the Proposition 1, if we know already linear part A0 of Q0, we can this way determine
// Aj linear part of Qj for other mappings
//