Ну, много чего можно придумать. Но как уже сказали - ML ложится хорошо на умножение. Но можно и любые вычисления и алгоритмы реализовать, в принципе). А имея сложение И умножение можно построить любую функцию, только комбинируя эти две операции.Открою секрет - для того, чтобы написать любую программу - совсем не обязательно иметь несколько сотен инструкций, как у современных CPU. Гипотетически, достаточно одной удачно подобранной инструкции, позволяющей реализовать любую другую инструкцию через несколько операций - об этом можно почитать (OISC; One Instruction Set Computer). Просто сложнее программировать такое, т.к. для любых операций, для которых в других архитектурах уже есть примитивы в виде инструкций - тебе придётся самому собирать примитив, комбинируя хитрыми способами эту единственную инструкцию.
Тут идея такая же - только у тебя есть две операции: сложение и умножения. Хитро их комбинируя можно получить любую вычислимую функцию, т.е. получаются тьюринг-полные вычисления. Да, это сложнее, чем программирование с полным набором инструкций, но зато получается абсолютная приватность - данные не только передаются в зашифрованном виде, но и обрабатываются, никогда не расшифровываясь даже в памяти.
А зачем нужна зашифрованная сумма - тут тоже уже ответили :). Ты, по сути, на медицинских данных, которые закриптованы - можешь обучить нейронку, не видя ни разу открытых данных. С одной стороны - не нарушается медицинская тайна. Ты можешь потрогать только закриптованные данные. С другой стороны - алгоритмы машинного обучения, крутящиеся вокруг умножения матриц всё равно работают, и ты, в общем-то, можешь обучить нейронку (и при этом, сторона, которая обучала нейронку не сможет посмотреть ни оригинальные данные, ни погонять нейронку, что она наобучала). Т.е. можно спокойно обучать нейронки в облаке на конфиденциальной закриптованной инфе, и не раскрыть ни датасет, на котором они обучались, ни результат обучения, т.к. без ключа результат вычислений будет так же выглядеть, как мусор.