aes128XtsEncrypt - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English
#include "xf_security/xts.hpp"
static void aes128XtsEncrypt (
    hls::stream <ap_uint <128>>& plaintextStrm,
    hls::stream <bool>& endPlaintextStrm,
    hls::stream <ap_uint <64>>& lenStrm,
    hls::stream <ap_uint <128>>& cipherkeyStrm,
    hls::stream <ap_uint <128>>& IVStrm,
    hls::stream <ap_uint <128>>& ciphertextStrm,
    hls::stream <bool>& endCiphertextStrm
    )

aes128XtsEncrypt is XTS encryption mode with AES-128 single block cipher.

The algorithm reference is : “IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices” The implementation is optimized for better performance in FPGA.

Parameters:

plaintextStrm Input block stream text to be encrypted, each block is 128 bits.
endPlaintextStrm End flag of block stream plaintext, 1 bit.
lenStrm Total length of plaintext in bit, 64 bits.
cipherkeyStrm Input two cipher key used in encryption, 128 bits.
IVStrm Initialization vector for the fisrt iteration of AES encrypition, 128 bits.
ciphertextStrm Output encrypted block stream text, 128 bits.
endCiphertextStrm End flag of stream ciphertext, 1 bit.