Ученые разработали «математический пазл» для кодирования ПО

2 декабрь, 2013 - 15:11Леонід Бараш

Проф. Амит Сахай (Amit Sahai) из Калифорнийского университета (UCLA) и команда исследователей разработали систему для шифрования ПО так, чтобы она позволяла использовать программу только по назначению, не допуская расшифровки кода. Это известно в информатике как «запутывание ПО» и было сделано впервые.

«Реальной проблемой и загадкой здесь был вопрос, можете ли вы на самом деле взять часть программного кода и зашифровать его, но чтобы он был готов к работе, исполняемый и полностью функциональный, - сказал проф. Сахай. - Это вопрос, в котором многие компании были заинтересованы длительное время».

Согласно проф. Сахай, ранее разработанные методы запутывания представляли только «лежачего полицейского», заставляя злоумышленника прилагать некоторые усилия, возможно, в течение нескольких дней, для выполнения обратного проектирования ПО. Новая система, по его словам, воздвигает «железную стену», делая невозможным для злоумышленника обратное проектирование ПО без решения математических задач, которые могут занять сотни лет работы современных компьютеров, что меняет правила игры в области криптографии.

По словам исследователей, их механизм математического запутывания может быть использован для защиты интеллектуальной собственности, предотвращая кражу новых алгоритмов и скрывая уязвимость программных заплаток при их распределении.

«Вы пишете программное обеспечение в удобном для чтения и сопровождения стиле, а затем вводите это ПО в нашу систему, - сказал проф. Сахай. – На выходе вы получаете математически преобразованную часть программного кода, которая будет эквивалентна по функциональности, но когда вы попытаетесь его прочесть, вы не получите ни малейшего представления, что он делает».

Ключом к этому механизму запутывания является новый тип «полилинейной головоломки». Благодаря этому механизму попытки выяснить, как работает программа, будут сорваны полученной бессмысленной мешаниной чисел.

«Настоящая инновация – это способ преобразования ПО в своего рода математическую головоломку, – сказал проф. Сахай. – То, что мы получаем в результате преобразования, это просто математика, просто цифры или последовательность чисел. Вы можете перепробовать все, вы можете читать их в обратном порядке, вы можете смотреть на них под разными углами, но вы не получите ни малейшего представления, что они делают.

Новая техника для запутывания ПО проложило путь к другому достижению, так называемому функциональному шифрованию. Функциональное шифрование вместо зашифрованного сообщения отправляет зашифрованную функцию. Это дает гораздо более безопасный способ защиты данных. Предыдущая работа по функциональному шифрованию была ограничена очень малым количеством функций; новая работа может справиться с любой вычислимой функцией.

Например, одно сообщение может быть отправлено в группе людей таким образом, что каждый из них будет получать различные данные в зависимости от характеристик конкретного приемника.

«С помощью функционального шифрования вы можете получить только конкретный ответ и ничего сверх этого», – сказал проф. Сахай.

Ученые разработали «математический пазл» для кодирования ПО

Концептуальна иллюстрация математической головоломки