Насчет алгоритмов умножения быстрее, чем школьный метод умножения одного числа на цифры другого и последующего суммирования строк (и как частный случай, двоичного варианта этого же метода), прочитать можно там же; я был в шоке, когда узнал.
Да есть они, есть, и Карацуба, и Шенхаге-Штрассен. Только они для длинных чисел. Карацуба для чисел длинее 320-640 бит лучше обычного, Шёнхаге-Штрассен лучше Карацубы для десяти тысяч десятичных знаков. А тут что-то для достаточно малых предполагается.