Преобразование Фурье применяется для вычисления свертки (convolution). Дело в том, что операция свертки при применении преобразования фурье переходит в операцию покмпонентного умножения.
То есть получается вот что:
Если тупо вычислять свертку по формулам, то получится

операций.
Если сначала применить FFT (

), потом покомпонентно перемножить (

), а потом применить обратное FFT(

), то операций будет

.
В алгоритме Ш-Ш для целых чисел свертка отрицательно обернутая, она вычисляется похожим образом, просто векторы коэффициентов умножаются на некоторые весовые векторы. (у Фюрера это называется Half-FFT)