Профессор компьютерных наук Амит Сахай из Калифорнийского университета в Лос-Анджелесе и его коллеги придумали передовой метод шифрования программного кода. По словам ученых, их система делает любую программу неуязвимой для обратного инжиниринга (когда хакеры воссоздают алгоритмы, пытаясь понять принцип ее работы).
Криптоалгоритм превращает программу в так называемую "полилинейную головоломку", прибавляя к разным ее частям случайные элементы. Они не вмешиваются в работу до тех пор, пока программа выполняется так, как задумали разработчики. При любых попытках использовать программу по-другому случайные элементы искажают код, что делает каждый кусок головоломки бессмысленным.
Понять принцип работы софта невозможно без решения чрезвычайно сложных математических задач, на которые у современных компьютеров ушли бы сотни лет, говорит Сахай. Алгоритм можно представить себе как черный ящик, который нельзя вскрыть и понять, что творится внутри него. "Вы можете изучать что угодно, вы можете перевернуть его вверх дном, рассмотреть с разных сторон, но вы так и не сможете понять, что он делает", — сказал ученый.
Алгоритму "запутывания" можно найти множество применений. Его можно задействовать, к примеру, для защиты патчей к другому программному обеспечению, чтобы хакеры не могли понять, в чем заключается уязвимость, для защиты ПО, контролирующего полет военных беспилотников, или чипов, считывающих зашифрованные DVD-диски.
Пока система далека от коммерческого применения: в надежности "полилинейной головоломки", использующей сложные математический алгоритмы, должно сначала удостовериться криптографическое сообщество. Впрочем, первые проверки на прочность она уже выдержала.
Источник: Wired