Скорость работы текущего поколения ключей Guardant Code на основе микроконтроллеров ARM7 заметно выделяет их на фоне других электронных ключей. Однако достижение заявленной производительности в 60 MIPS напрямую зависит от пользовательского кода, так как он контролируется микропрограммой внутри ключа. Микропрограмма в процессе работы перепроверяет используемые адреса RAM, что может снизить общую производительность.
Во втором поколении моделей Guardant Code используется микроконтроллер на основе Cortex M3. В нем реализована аппаратная защита памяти (MPU), поэтому пользовательский код загружается внутрь ключа и работает без каких-либо модификаций на родной скорости процессора. Вместе с повышенной производительностью нового чипа (120 MIPS) скорость исполнения пользовательского кода вырастает в разы.
Помимо этого, впервые в микроконтроллерах подобного класса реализованы аппаратные операции деления и умножения. На практике это более чем заметно — математические алгоритмы, исполнявшиеся ранее десятки миллисекунд, теперь возвращают результат менее чем за 1 миллисекунду. Конечно, существуют так называемые накладные расходы: время, необходимое на шифрование, подпись и передачу буфера данных в ключ и обратно, но оно также сократилось на 30% за счет более высокой скорости ключа.
Если раньше могла возникнуть необходимость отказа от использования того или иного алгоритма из-за недостаточной скорости, то сейчас решить эту проблему можно, перейдя на новые ключи.
Помимо ускорения работы загружаемого кода и снижения накладных расходов на его вызов — новые ключи сами по себе быстрее и эффективнее. Например, подпись на алгоритме ECC160 стала выполняться на 60% быстрее, а шифрование 96 байт на алгоритме AES128 — на 40%.
Кроме того, микроконтроллеры Cortex M3 лишены существовавших ранее проблем с выравниванием данных, они позволяют программисту не думать ни о чем, кроме его основной задачи — разработки системы защиты от копирования.
Несмотря на столь существенные аппаратные изменения Guardant Code, переход на новую версию ключей не вызовет никаких проблем. Устройства полностью поддерживаются текущими драйверами, API и утилитами, а для конечных пользователей они будут неотличимы от старых моделей. Разработчикам, уже использующим Guardant Code, не придется вносить какие-либо изменения в код или перезащищать свое ПО. Для перехода на новые ключи нужно лишь заменить makefile и перекомпилировать загружаемый код при помощи свежей версии gcc. После этого останется загрузить получившийся bin в существующую маску Guardant Code, и можно программировать ключи. Единственным отличием новой модели от предыдущей версии будет их значительно возросшая скорость.
Кроме того, с новым makefile код будет генерироваться одновременно и для старых, и для новых ключей, позволяя без каких-либо дополнительных усилий обновлять прошивку в любых из них (в том числе и удаленно). Причем для моделей второго поколения код компилируется эффективнее, занимая в среднем на 30% меньше памяти. Это значит, что в стандартный ключ вместо 16 тысяч строк кода можно поместить более 20 тысяч. Вместе с заметно выросшей производительностью это открывает дополнительные возможности применения ключей Guardant Code.
Новый SDK и инструкции по переходу на Guardant Code станут доступны с релизом комплекта разработчика Guardant 5.52, который состоится в конце июня. Новая версия ключей появится в продаже в начале июля по той же стоимости, что и предыдущая модель.