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);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…