aes256XtsEncrypt - 2024.1 English

Vitis Libraries

Release Date
2024-08-06
Version
2024.1 English
#include "xf_security/xts.hpp"
static void aes256XtsEncrypt (
    hls::stream <ap_uint <128>>& plaintextStrm,
    hls::stream <bool>& endPlaintextStrm,
    hls::stream <ap_uint <64>>& lenStrm,
    hls::stream <ap_uint <256>>& cipherkeyStrm,
    hls::stream <ap_uint <128>>& IVStrm,
    hls::stream <ap_uint <128>>& ciphertextStrm,
    hls::stream <bool>& endCiphertextStrm
    )

aes256XtsEncrypt is XTS encryption mode with AES-256 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, 256 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.