Google представляет шифрование Adiantum для Android-устройств
Согласно сообщению в блоге онлайн-безопасности Google, исследователи из подразделения безопасности компании разработали решение, которое уже некоторое время мешает устройствам Android. Проблема конкретно связана с тем, как устройства Android более низкого уровня с процессорами не могут использовать шифрование AES. Шифрование AES (а именно AES-256) является стандартом для устройств Android, от мобильных телефонов до смарт-часов и телевизоров, и используется специально для защиты ваших данных в случае кражи устройства.
Чтобы обеспечить защиту зашифрованного хранилища для устройств Android более низкого уровня, которые не могут использовать AES, Google разработала стандарт шифрования под названием Adiantum. Сообщение в блоге от Google подробно описывает, как работает Adiantum, и, в конечном итоге, сообщение в блоге представляет собой краткое изложение более крупной статьи под названием Adiantum: шифрование с сохранением длины для процессоров начального уровня, которая будет представлена на конференции Fast Software Encryption в марте этого года. Google непреклонен в том, что шифрование, найденное в Adiantum, эффективно даже для самых простых машин Android, что, по их утверждению, подтверждается как в статье, так и в сообщении в блоге.
Подробное объяснение Adiantum можно найти в цитируемом ниже отрывке из сообщения блога Google Online Security:
Adiantum позволяет нам использовать потоковый шифр ChaCha в режиме сохранения длины, адаптируя идеи из предложений на основе AES для шифрования с сохранением длины, таких как HCTR и HCH. На ARM Cortex-A7 шифрование и дешифрование Adiantum в секторах по 4096 байт выполняется примерно за 10,6 цикла на байт, что примерно в 5 раз быстрее, чем AES-256-XTS.
В отличие от таких режимов, как XTS или CBC-ESSIV, Adiantum представляет собой настоящий широкоблочный режим: изменение любого бита в любом месте открытого текста приведет к неузнаваемому изменению всего зашифрованного текста, и наоборот. Он работает, сначала хешируя почти весь открытый текст, используя хэш с ключом, основанный на Poly1305, и другую очень быструю функцию хеширования с ключом, называемую NH. Мы также хешируем значение, называемое «твик», которое используется для обеспечения того, чтобы разные сектора шифровались по-разному. Затем этот хэш используется для генерации одноразового номера для шифрования ChaCha. После шифрования мы снова хэшируем, чтобы у нас была такая же сила в направлении дешифрования, как и в направлении шифрования. Это устроено в конфигурации, известной как сеть Фейстеля, так что мы можем расшифровать то, что мы зашифровали. Также требуется один вызов AES-256 для 16-байтового блока, но для 4096-байтовых входных данных эта часть не критична для производительности.
Исследование Google кажется солидным, но, как и в случае с чем-либо новым, потребуется время, чтобы по-настоящему оценить эффективность чего-то столь масштабного, как Adiantum, реализованного на всех устройствах Android более низкого уровня.