INNER CODE UNIT · C++
Aj
ph4r05/Whitebox-crypto-AES · BGEAttack.cpp:798
Aj = L.Linv * A0 * alfaMatrix;
// Part 2 - constant part extraction
// If we put known Aj linear part to proposition 3 we don't have to bother with A~_j and gamma.
// Then delta_i^{-1} = afa_j,i
mat_GF2 AjInv;
GF2 determinant;
NTL::inv(determinant, AjInv, Aj);
if (determinant == GF2::zero()){
if (doCout) cout << "Cannot compute inverse - should never happen!!" << endl;
return -2;
}
prop3struct_t * prop3 = new prop3struct_t;
int prop3result = proposition3(prop3, aes, r, col, row, AjInv);
if (prop3result != 0xf) {
delete prop3;
if (doCout) cout << "some problem with proposition 3 in recover Qj occurred. result="<<prop3result<<endl;