Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Электронные ключи работают с аппаратными алгоритмами по следующей общей схеме: от защищенного приложения к ключу поступает блок данных (вопрос к ключу), и он при помощи симметричного аппаратного алгоритма преобразует (кодирует или декодирует) эту последовательность. Таким образом, получается ответ ключа, посылаемый защищенной программе.
Чаще всего разработчик системы защиты для какого-либо приложения ограничивается весьма небольшим количеством возможных вопросов-ответов, которые используются на протяжении недолгого периода времени. Это сильно облегчает задачу построения табличных эмуляторов, поскольку для отслеживания всех запросов и ответов требуется то самое недолгое время. Это одна из самых распространенных ошибок при разработке систем защиты.
Для эффективной борьбы с созданием табличных эмуляторов число различных запросов и ответов должно быть как можно большим, а время, за которое они будут все использованы, должно измеряться месяцами.
Алгоритм AES, с длиной ключа 128 бит симметрично кодирует и декодирует информацию в самом электронном ключе. Это позволяет значительно расширить возможности электронных ключей Guardant и повысить защищенность программного обеспечения за счет того, что данные для кодирования могут динамически изменяться.

...

Алгоритм AES (Advanced Encryption Standard) – это блочный симметричный алгоритм шифрования, принятый в качестве стандарта шифрования США. Длина секретного ключа AES составляет 16 байт (128 бит). Минимальная длина блока данных, преобразуемых алгоритмом за один цикл , – 16 байт. У алгоритма имеются режимы, позволяющие шифровать блоки данных, кратные по длине 16 байтам, и блоки произвольной длины. Симметричность алгоритма означает использование одного и того же секретного ключа шифрования, как для прямого преобразования, так и для обратного.
Подробное описание алгоритма AES можно найти на сайте NIST: http://csrc.nist.gov/archive/aes/index.html

...

Режим сцепления блоков по шифртексту. В режиме CBC, как и в ECB, каждый блок открытого текста преобразуется в блок шифртекста той же длины. Преобразование в режиме CBC для всех блоков осуществляется с одним и тем же ключом. Режим CBC чаще используется и лучше подходит для преобразования блоков данных, превышающих по длине минимальную длину блока.
Однако в отличие от ECB, преобразование двух одинаковых блоков открытого текста, находящихся в разных позициях исходного блока данных, не даст идентичного результата. Это осуществляется благодаря тому, что на каждом следующем шаге шифруется не сам блок, а его сумма по модулю 2 с предыдущим блоком шифртекста. Для получения первого зашифрованного блока используется сумма по модулю 2 первого зашифрованного блока и некоторого вектора инициализации IV. Значение IV должно быть сохранено для корректного обратного преобразования, но желательно, если оно будет защищено (например, зашифровано в режиме ECB).
Преобразование получается позиционно-зависимым, поскольку результат шифрования зависит не только от самого блока открытого текста, но и от предшествующего ему.
Обратное преобразование также производится поблочноблочно.
Суммарная длина исходного набора данных должна быть кратна минимальной длине блока. В противном случае, к последнему блоку нужно добавить байты-заполнители, так же, как и в режиме ECB.
Режим CBC можно использовать для вычисления надежных контрольных сумм, аутентификации и проверки подлинности данных. В качестве такой контрольной суммы используется последний блок шифротексташифртекста. Этот блок зависит от всех предыдущих блоков, а также от вектора инициализации, и вычисляется на основе секретного ключа алгоритма. Он не дает информации об исходных данных, но идентифицирует их практически однозначно. Подделать этот блок так же трудно, как подобрать ключ алгоритма.

...