<< NL_S_AESDecryption NL_S: Security NL_S_AESInitialization >>

NARVAL >> NL_S: Security > NL_S_AESEncryption

NL_S_AESEncryption

Perform the AES encryption.

Calling Sequence

[O] = NL_S_AESEncryption(S,I)

Arguments

S :

AES structure with s-boxes, expanded key, etc.

I :

Plain text.

O :

Cipher text.

Description

NL_S_AESEncryption performs the encryption of the plain text I into the cipher text O in respect with the AES algorithm (WIKIPEDIA).

Pseudo-Code

AES_Encrypt(State, K) {
    KeyExpansion(K, RoundKeys);
    /* Initial Addition */
    AddRoundKey(State, RoundKeys[O]);
    /* Nr-1 rounds */
    for (r=1; i<Nr; r++) {
        SubBytes(State);
        ShiftRows(State);
        MixColumns(State);
        AddRoundKey(State, RoundKeys[r]);
    }
    /* FinalRound */
    SubBytes(State);
    ShiftRows(State);
    AddRoundKey(State, RoundKeys[Nr]);
}

Examples

//128 bits
key128h={'2b','7e','15','16','28','ae','d2','a6','ab','f7','15','88','09','cf','4f','3c'};//16 bytes
key128=hex2dec(key128h);
[s128]=NL_S_AESInitialization(key128);//initialization of the structure
inh={'32','43','f6','a8','88','5a','30','8d','31','31','98','a2','e0','37','07','34'};//plain text
in=hex2dec(inh);//decimal
//encryption
[out]=NL_S_AESEncryption(s128,in);//application of NL_S_AESEncryption
outh=dec2hex(out);//decimal
[in;out]
[inh;outh]

Dependency

NL_S_AESShiftRows, NL_S_AESMixColumns

Report an issue
<< NL_S_AESDecryption NL_S: Security NL_S_AESInitialization >>