Hello,
I see AES XTS support added in MBEDTLS release. Wanted to know more details about AES XTS Implementation.
- Can you point out to standard/RFC which is used to implement AES XTS
- AES XTS implementation uses GF multiplication. Can you please point out to the standard/RFC which is used to implement this.
/*
-
GF(2^128) multiplication function
-
This function multiplies a field element by x in the polynomial field
-
representation. It uses 64-bit word operations to gain speed but compensates
-
for machine endianess and hence works correctly on both big and little
-
endian machines.
*/
static void mbedtls_gf128mul_x_ble( unsigned char r[16],
const unsigned char x[16] )
{
uint64_t a, b, ra, rb;GET_UINT64_LE( a, x, 0 );
GET_UINT64_LE( b, x, 8 );ra = ( a << 1 ) ^ 0x0087 >> ( 8 - ( ( b >> 63 ) << 3 ) );
rb = ( a >> 63 ) | ( b << 1 );PUT_UINT64_LE( ra, r, 0 );
PUT_UINT64_LE( rb, r, 8 );
}