Partager via


_mm_aesenclast_si128

[Cette documentation constitue un aperçu et peut faire l'objet de modifications avec les versions ultérieures. Blank topics are included as placeholders.]

Spécifique à Microsoft

Émet l'instruction avancée (AES) aesenclastencryption standard. Cette instruction effectue rond de finale du chiffrement AES.

__m128i _mm_aesenclast_si128 (
   __m128i v,
   __m128i rkey
);

Paramètres

Paramètre

Description

[in] v

les données que cette instruction chiffre.

[in] rkey

La clé ronde que cette instruction utilise pour chiffrer les données dans v.

Valeur de retour

le formulaire chiffré des données dans v.

Configuration requise

Intrinsèque

Architecture

_mm_aesenclast_si128

x86, x64

fichier d'en-tête <wmmintrin.h>

Notes

Cette instruction chiffre des données à l'aide d'un chiffrement inverse équivalent avec une clé de 128 bits. Le chiffrement AES requiert 10 itérations de chiffrement à l'aide d'une clé de chiffrement qui est 128 bits. Vous devez exécuter l'itération référence avec cette instruction. l'utilisation précédente _mm_aesenc_si128de neuf itérations.

Pour déchiffrer les données encodées, utilisez _mm_aesdeclast_si128.

Exemple

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

int main()
{
    __m128i a;
    __m128i res;
    __m128i key;

    a.m128i_u64[1] = 0x8899AABBCCDDEEFF;
    a.m128i_u64[0] = 0x0123456789ABCDEF;
    key.m128i_u64[1] = 0x0022446688AACCEE;
    key.m128i_u64[0] = 0x1133557799BBDDFF;

    res = _mm_aesenclast_si128( a, key );

    printf_s("Original data: 0x%016I64x%016I64x\n",
        a.m128i_u64[1], a.m128i_u64[0]);
    printf_s("Encoded data: 0x%016I64x%016I64x\n",
        res.m128i_u64[1], res.m128i_u64[0]);

    return 0;
}
          
        

Voir aussi

Référence

intrinsèques du compilateur

_mm_aesenc_si128

_mm_aesdeclast_si128

Intrinsèques AES