Hey,
I'm using the Hash-Crypt engine provided by LPC55S69 and I noticed that the datasheet mentions that "The AES block will take 33+2 cycles for each block to encrypt when using 128-bit keys. Using 192-bit key adds six cycles and 256-bit key adds twelve more cycles.".
My question is that what does "2" in "33+2" mean. Does this clock cycles also involve loading plaintext/unloading cipher text time? Or the AES encryption engine is actually pipeline design so it only takes 35 cycles to encrypt two AES blocks and 33 cycles to encrypt one AES blocks?
Also something not really relevant, in section 7.30.1.1 of LPC55S0x (https://www.nxp.com/docs/en/data-sheet/LPC55S0x_LPC550x_DS.pdf) it mentions that LPC55S0x supports ICB AES mode. However, the user manual of LPC55S0x apparently disagrees with that. In section 44.11.1 (https://www.nxp.com/docs/en/user-guide/UM11424.pdf) there is no any kind of ICB related description except 44.13.13 Mask registers of ICB output which I believe is another mistake. I can see there is a lot of materials reused between LPC55Sxx but clearly there should be differences.
I would assume that LPC55S0x basically just removes ICB extension of hash-crypto engine of LPC55S69 and reuse the rest of the functionalities. But how come the user manual claims that "Security against Side Channel Analysis (power & Electro Magnetic traces) using masking techniques to protect against DPA (Differential Power Analysis), CPA (Correlation Power Analysis) and template attacks." Does this apply on any kind of AES mode? I initially thought this is due to ICB mode as ICB mode is designed as a countermeasure of side channel attack but then there is no ICB mode presented in LPC55S0x so it just makes me really confused.
I would really appreciate any kind of help! Thanks in advance!