Research Article

Crystals-Dilithium on ARMv8

Algorithm 4

Butterfly method on ARM processor.
(1)Input:in1 (x8), in2 (x9)             ⊳ 4 (in1:2, int2:2) coefficient on ARM
(2)Output: out1, out2             ⊳ 4 (out1:2, out2:2) coefficient on ARM
(3)// Butterfly 1
(4)             ⊳  = in2 ( : 1 coefficient ) zetas
(5)             ⊳
(6)             ⊳
(7)             ⊳
(8)             ⊳ Addition: in1
(9)             ⊳ Subtraction: in1
(10)// Masking
(11)             ⊳ (in1: 1 coefficient ) = 
(12)             ⊳ (in2: 1 coefficient ) = 
(13)// Butterfly 2
(14)             ⊳  = in2 ( : 1 coefficient ) zetas
(15)             ⊳
(16)             ⊳
(17)             ⊳
(18)             ⊳ Addition: in1
(19)             ⊳ Subtraction: in1
(20)// Concatenation
(21)             ⊳
(22)             ⊳