I saw a function called 'SWAPMOVE' below.
SWAPMOVE(A,B,M,n):
T = (B ^ (A >> n)) & M
B = B ^ T
A = A ^ (T << n)
And I don't know what does this function actually do.
It seems to calculate the linear layer of some block ciphers, but I can't understand the entire steps using this function.
So, what does this function actually do?
This is the research paper I saw: Alexandre Adomnicai, Zakaria Najm, and Thomas Peyrin. Fixslicing: A New GIFT Representation: Fast Constant-Time Implementations of GIFT and GIFT-COFB on ARM Cortex-M. IACR Transactions on Cryptographic Hardware and Embedded Systems, 2020(3):402–427, Jun. 2020.
Look up 15~16p of this paper.