aes256XtsDecrypt - 2024.1 English

Vitis Libraries

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

aes256XtsDecrypt is XTS decryption 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:

ciphertextStrm Input block stream text to be decrypted, each block is 128 bits.
endCiphertextStrm End flag of block stream ciphertext, 1 bit.
lenStrm Total length of plaintext in bit, 64 bits.
cipherkeyStrm Input two cipher key used in decryption, 256 bits.
IVStrm Initialization vector for the fisrt iteration of AES encrypition, 128 bits.
plaintextStrm Output decrypted block stream text, each block is 128 bits.
endPlaintextStrm End flag of block stream plaintext, 1 bit.
#include "aes.hpp"
template <>
class aesEnc <128>: public xf::security::aesTable

// fields

ap_uint <128> key_list[11]