Exportar (0) Imprimir
Expandir todo
Expandir Minimizar

_mm_aeskeygenassist_si128

Visual Studio 2010

Microsoft Specific

Emits the Advanced Encryption Standard (AES) instruction aeskeygenassist. This instruction generates a round key for AES encryption.

__m128i _mm_aeskeygenassist_si128(
   __m128i ckey,
   const int rcon
); 

Parameter

Description

[in] ckey

128 bits of data that is used to generate the AES encryption key.

[in] rcon

A round constant used to generate the AES encryption key.

The AES encryption key.

Intrinsic

Architecture

_mm_aeskeygenassist_si128

x86, x64

Header file <wmmintrin.h>

AES encryption requires 10 iterations of encryption with a 128 bit round key. Each round of encryption requires a different key. This instruction helps generate the round keys. The round keys can be generated independently of the encryption phase.

The rcon parameter is not just the round of encryption. It is a constant that helps generate a round key.

#include <wmmintrin.h>
#include <stdio.h>

int main()
{
    __m128i a;
    a.m128i_u64[1] = 0x8899AABBCCDDEEFF;
    a.m128i_u64[0] = 0x0123456789ABCDEF;

    const int round = 5;

    __m128i key = _mm_aeskeygenassist_si128( a, round );

    printf_s("Key value: 0x%016I64x%016I64x\n",
                key.m128i_u64[1], key.m128i_u64[0]);


    return 0;
}
Key value: 0xeac4eea9c4eeacea857c266b7c266e85

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft