поиск по сайту
ШИФРОВАНИЕ ДАННЫХ В УСТРОЙСТВАХ С БЛОЧНОЙ ВНУТРЕННЕЙ СТРУКТУРОЙ

В. В.Коробов,

Россия, ОКБ САПР

ШИФРОВАНИЕ ДАННЫХ В УСТРОЙСТВАХ С БЛОЧНОЙ ВНУТРЕННЕЙ СТРУКТУРОЙ

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

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

Подходы к защите информации посредством шифрования данных в устройствах хранения условно можно разделить на следующие группы:

  1. шифрование данных перед записью на носитель (реализуется с помощью криптоконтейнеров, специализированных модулей ядра операционной системы и т. д.);
  2. шифрование данных средствами файловой системы (EFS, FileVault);
  3. аппаратное шифрование данных в устройстве (собственные разработки производителей устройств).

В этих подходах используются различные режимы шифрования и генерации вектора инициализации (синхропосылки).

Наиболее распространенными являются следующие режимы генерации вектора инициализации:

  • ESSIV (Encrypted Salt-Sector Initialization Vector) - режим генерации вектора инициализации, который предполагает использование в качестве синхропосылки значение, полученное в результате шифровании номера сектора на ключе, который является значением хэш-функции от ключа шифрования сектора [1];
  • Plumb-IV - режим генерации синхропосылки, предусматривающий хеширование номера сектора, ключа шифрования и данных сектора со второго блока; полученное значение используется в качестве вектора инициализации [1].

Использование перечисленных режимов позволяет противодействовать атакам с водяными знаками [1].

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

Наиболее распространенными являются следующие режимы шифрования данных в устройстве:

  • CBC (Cipher Block Chaining) [2];
  • CMC (CBC-mask-CBC) [3];
  • EME (ECB-Mix-ECB) [4].
  • LRW (Liskov, Rivest, Wagner) [5];
  • XEX (XOR-Encryption-XOR) [6];
  • XTS (XEX-based Tweakable CodeBook mode with Ciphertext Stealing) [7].

CBC (сцепление блоков шифротекста) - режим шифрования, в котором каждый блок открытого текста складывается по модулю 2 с предыдущим результатом шифрования (при шифровании первого блока - с синхропосылкой). Это самый простой режим шифрования, используемый в реализациях прозрачного шифрования для устройств с блочной структурой. Следует отметить, что данный режим подвержен многочисленным атакам, в том числе: определение начала изменения данных при модификации шифротекста; подмена открытого текста при перемещении блоков; изменение шифротекста с последующим изменением открытого текста.

Усложнением режима CBC является режим CMC, который предполагает выполнение следующей последовательности операций:

  1. шифрование в режиме CBC всего сектора;
  2. сложение по модулю 2 соседних блоков;
  3. повторное шифрование в режиме CBC с конца сектора к началу.

Данный режим требует значительно большего количества криптографических преобразований и значительно медленнее.

Развитием режима CMC является режим EME. Этот режим подразумевает возможность распараллеливания операций, что обеспечивает его более высокую производительность.

В отличие от режимов CMC и EME, которые оперируют блоками данных в объеме сектора, режим LRW подразумевает обработку отдельного блока, что обеспечивает более высокую производительность при операциях чтения/записи. Режим LRW предполагает использование двух криптографических секретных ключей, один из которых используется непосредственно для шифрования блока, а второй - для выполнения так называемой процедуры «whitening» («забеливание»), которая состоит в выполнении операций сложения по модулю 2 открытого текста и ключа, шифрования результата и, далее, сложения по модулю 2 зашифрованного текста и ключа. Ключ, используемый в процедуре «забеливания», зависит от логического номера блока,

XEX подразумевает использование собственного режима генерации вектора инициализации. В отличие от режима LRW при выполнении процедуры «забеливания» производится сложение открытого и зашифрованных текстов по модулю 2 с вектором инциализации. Поскольку режим генерации вектора инициализации достаточно сложен, производительность этого режима ниже, чем производительность LRW.

В международном стандарте IEEE P1619 описан режим XTS, который, по своей сути, является обобщением подходов, положенных в основу XEX и LRW. Данный режим подразумевает использование двух ключей, первый из которых используется для генерации своего рода вектора инициализации (так называемого «tweak»), а второй - для шифрования данных. Основные шаги этого режима следующие:

  1. генерация «tweak» посредством шифрования номера сектора на первом ключе;
  2. сложение «tweak» по модулю 2 с открытым текстом;
  3. шифрование результата выполнения п. 2 на втором ключе;
  4. сложение«tweak» по модулю 2 с результатом выполнения п. 3;
  5. умножение «tweak» на порождающий многочлен конечного поля.

Проведенное исследование позволяет сделать вывод о том, что использование для шифрования данных устройств с блочной внутренней структурой режима XTS является наиболее предпочтительным, поскольку он:

  • описывается международным стандартом;
  • имеет высокую производительность за счет возможности выполнения предварительных вычислений и распараллеливания;
  • позволяет обрабатывать произвольный блок сектора за счет возможности вычисления соответствующего значения «tweak».

Следует отметить, что хотя в IEEE P1619 рекомендуется использовать режим XTS с американским стандартом шифрования AES, архитектура XTS предполагает взаимную независимость процедур генерации «tweak», шифрования и «забеливания» и потому позволяет использовать его совместно с любым другим блочным шифром. Таким образом, в случае необходимости сертификации устройства, реализующего прозрачное шифрование, в соответствии с требованиями российского законодательства является возможным совместное использование XTS и ГОСТ 28147-89.

Кроме того, для прозрачного шифрования данных устройств с блочной внутренней структурой можно использовать алгоритм Key Meshing [8], изложенный в rfc 4357, с криптографическим преобразованиями из ГОСТ 28147-89. Использование этого алгоритма подразумевает смену ключа и вектора инициализации каждый раз после обработки одного килобайта данных по заданному алгоритму. При использовании Key Meshing с режимом простой замены ГОСТ 28147-89 (в Key Meshing генерируемый вектор инициализации зависит от предыдущего) можно добиться тех же преимуществ (распараллеливание, предвычисление и обращение к произвольному месту в блоке), что и при использовании режима XTS.

СПИСОК ЛИТЕРАТУРЫ:

1.Fruhwirth С. New Methods in Hard Disk Encryption. 2005.

2.NIST Special Publication 800-38A - Recommendation for Block Chipher Modes of Operation.

3.Halevi S., Rogaway Ph. A Tweakable Enciphering Mode. 2003.

4.Halevi S., Rogaway Ph. A Parallelizable Enciphering Mode. 2003.

5.Liskov M., Rivest R. L., Wagner D. Tweakable Block Ciphers. 2004.

6.Rogaway Ph. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. 2004.

7.IEEE P1619 Standard Architecture for Encrypted Shared Storage Media.

8.RFC 4357 Additional Cryptographic Algorithms for Use with GOST 28147-89, GOST R 34.10-94, GOST R 34.10-2001, and GOST R 34.11-94 Algorithms.


Метки статьи:
криптография другое
ФорумФорум
Форум ОКБ САПР
Вопросы специалистовВопросы специалистов
Вопросы, которые нам присылают, и наши ответы на них