Ограниченные ресурсы центрального процессора не могут удовлетворить потребности смарт-карты в надежном шифровании и аутентификации за приемлемое время без ущерба для общей функциональности смарт-карты. Типичная для смарткарты транзакция должна занимать от 1до 3 с, а шифрование с использованием 1024-битового ключа RSA в процессоре, типичном для смарт-карты, может занять 10 секунд и более. В результате этого в некоторые микроконтроллеры смарт-карт включают сопроцессоры для ускорения вычислений, проводимых при шифровании и аутентификации. Сопроцессор представляет собой специально разработанный арифметический блок для вычислений криптографических алгоритмов. Сопроцессор интегрируется на кремниевой подложке вместе с другими функциональными блоками микроконтроллера.
1. Сопроцессор смарт-картСопроцессор может выполнять несколько базовых вычислений целочисленной арифметики, которые необходимы для алгоритмов криптографии с открытым ключом, включая быстрое умножение, возведение в степень и модульные операции больших целых чисел. Быстродействие сопроцессора оптимизируется исключительно для этих операций, поэтому в своей области применения он может превзойти даже очень быстрые ПК по меньшей мере в 6 раз. Использование сопроцессора значительно ускоряет криптографические операции с открытым ключом, однако при этом несколько увеличивается общий размер чипа, а также возрастает его себестоимость. К примеру, совместно с компанией "Лазер форм", которая предлагает автоматизированные установки для лазерной сварки инструментов / корпусов / теплообменников и т.д., нами был реализован проект RFID системы на базе смарт-карт для защиты данных автоматизированных установок от несанкционированного доступа. В зависимости от модели микроконтроллера блок шифрования DES и генератор случайных чисел могут либо входить в сопроцессор, либо выполняться в виде самостоятельных узлов микроконтроллера.
2. Блок шифрования DESВ ряд микроконтроллеров для смарт-карт включается дополнительный блок шифрования DES (Data Encryption Standard). Алгоритм шифрования DES применяется для защиты финансовых транзакций и телекоммуникационных приложений. Алгоритм DES изначально разрабатывался для аппаратной реализации, поэтому включение блока DES в микроконтроллер смарт-карты не является сложной задачей. При тактовой частоте 3,5 МГц выполнение DES занимает всего 154 мкс, а для вычисления тройного DES требуется 236 мкс. Повышение тактовой частоты приводит к соответствующему уменьшению времени вычисления.
3. Блок генерации крипто-ключейСлучайные числа необходимы для генерации крипто-ключей с целью аутентификации смарт-карты и терминала. По причинам безопасности они должны быть не псевдослучайными, а истинно случайными числами. Существуют микроконтроллеры, которые имеют интегрированы е генераторы случайных чисел для создания действительно случайных чисел. Качество работы подобных генераторов не должно зависеть от таких внешних физических факторов, как изменения температуры и напряжения питания.
Поскольку этого трудно добиться в чипе на одном кремнии, используется другой подход. Генератор случайных чисел использует разные логические состояния процессора, такие как содержимое регистров, и подает их на циклический регистр сдвига с обратными связями, который приводится в действие тактовыми импульсами, генерируемыми на основе ряда различных параметров. Если процессор считает содержимое этого регистра, он получает сравнительно качественное случайное число, которое невозможно детерминировано вычислить вне чипа. Качество получаемых случайных чисел можно улучшить, используя дополнительные процедуры и алгоритмы.