УДК 004.056

Разработка облегченной модификации алгоритма шифрования AES

Акинжанов Ахмет Аскарович – магистрант Казахского национального исследовательского технического университета имени К.И. Сатпаева.

Научный руководитель Бегимбаева Енлик Ериковна – PhD, ассоциативный профессор Казахского национального исследовательского технического университета имени К.И. Сатпаева.

Аннотация: AES – один из самых мощных алгоритмов шифрования, который используется для обеспечения безопасности в Интернете [1]. Однако и у AES есть недостатки, огромные вычисления могут снизить скорость алгоритма [2]. В статье представлены работы по разработке модификации криптографичексого алгоритма AES, который обеспечивает более быструю скорость шифрования файлов, без потерь в криптостойкости алгоритма.

Ключевые слова: защита информации, шифрование, криптография, AES.

1. Разработка модификации алгоритма AES

Алгоритм шифрования можно представить в следующем виде:

Входные данные: Открытый текст/файл.

Выходные данные: Шифротекст/зашифрованный файл.

  1. Чтение открытого текста/файла
  2. Процесс заполнения данных
  3. Процесс перемешивания данных методом ZZ.
  4. Шифрование открытого текста/файла модификацией алгоритма AES.

Процесс дешифрования аналогичен шифрованию, но идет в обратном порядке. Алгоритм разработанной модификации AES изображен на рисунке 1.

 1 1

Рисунок 1. Алгоритм работы модификации AES.

Перед началом процесса шифрования необходимо выполнить два шага, которые называются предварительными шагами. Эти шаги включают в себя процесс заполнения и перемешивания данных методом ZZ, которые выполняются на стороне отправителя. Эти операции считаются этапами предварительной обработки, которые уменьшают статистические отношения между строковыми символами перед шифрованием [3].

Процесс заполнения – это первый процесс, применяемый к исходному тексту/файлу. Процесс заполнения направлен на то, чтобы длина строки была равна кратна 16, поскольку сообщение будет преобразовано в матрицу из 4 ∗ 4 байт. Этот процесс можно описать следующим алгоритмом:

Входные данные: Открытый текст (Т)

Выходные данные: Открытые текст кратный 16. (Тм)

  1. Высчитывается длина открытого текста (L).
  2. Если Lmod16!=0, то добавить текст (Р), который состоит из целых чисел от 16 – Lmod16 до 1.
  3. Тм = Т+Р

Сложность шага заполнения равна ((28)L)R, где 28 — длина каждого символа, L — длина открытого текста, а R — количество повторений процесса заполнения для каждого открытого текста.

Процесс перемешивания данных методом ZZ.

В качестве входных данных для этого шага используется дополненная строка, представленная в виде матрицы размером 4x4 байта, полученная из предыдущего этапа. Чтобы увеличить путаницу и распространение, применяется зигзагообразный рисунок, как показано на рисунке 2.

2

Рисунок 2. Процесс перемешивания данных методом ZZ в матрице 4х4.

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

Входные данные: Расширенный исходный текст в виде матрицы байтов 4х4.

Выходные данные: Расширенный исходный текст в виде матрицы байтов 4х4 перемешанных методом ZZ.

  Start; While (i − 2) > 0 do //Для первых двух столбцов

  I = 3, J = 0; a(i, j) = a(i − 1, j); a(i − 1, j) = a(i, j − 1); a(i, j − 1) = a(i − 1, j − 1); a(i − 1, j − 1) = a(i − 2, j); i−=2

  end while

  Count = 0; While (i + 2 ≤ 3) do //Для последних двух столбцов

  I = 0, j = 2; a(i, j) = a(i + 1, j); a(i + 1, j) = a(I, j + 1); a(I, j + 1) = a(i + 1, j + 1); a(i + 1, j + 1) = a(i + 2, j); i+=2

  end while; End

Результатом перемешивания методом ZZ, является перемешанная матрица размера 4x4 для всего открытого текста. Результат подходит для шифрования алгоритмом AES. Сложность операции перемешивания методом ZZ равна ((28)16)L, где 28 представляет длину каждого байта в матрице ZZ, 16 представляет общее количество ячеек в матрице для выполнения перемешивания ZZ, а L представляет количество времени повторения операции перемешивания ZZ.

Процесс ShiftRow заменен на ShiftColumn, чтобы злоумышленнику было труднее предсказать способ выполнения операций. ShiftColumn выполняется так же, как ShiftRow, но он выполняется для столбцов, а не для строк с некоторыми изменениями, как показано на рисунке 3.

3

Рисунок 3. Процесс ShiftColumn.

Каждая ячейка состоит из байтов, поэтому это матрица из 4х4 байтов. Первые три столбца сдвигаются в том же направлении, а последний столбец сдвигается в обратном направлении. Этот способ смещения обеспечивает большую путаницу и рассеяние. Сложность операции сдвига столбца составляет (25)4, где 25 представляет длину полного столбца (количество битов, которые нужно сдвинуть для каждого столбца), поскольку каждый сдвиг выполняется для всего столбца за раз, а 4 представляет собой количество смещаемых столбцов.

Алгоритм процесса ShiftColumn представлен в рисунке 4:

4

Рисунок 4. Алгоритм ShiftColumn.

2. Тестирование алгоритма

Экспериментальные результаты используются для подтверждения работоспособности модифицированного алгоритма. Эти критерии включают тест NIST, время шифрования и расшифровки файлов. В ходе экспериментов тестировались текстовые файлы разного размера в течение десяти испытаний, чтобы получить среднее время шифрования для стандартного AES и модифицированного AES. Стандартный и модифицированный алгоритмы AES были написаны на Java crypto и смоделированы на процессоре Intel(R) Core(TM) i5-7500 CPU с тактовой частотой 3.40GHz и 3.41 GHz с 16 ГБ ОЗУ и 64-разрядной операционной системой, процессором на базе x64, Windows 10 professional.

2.1. Набор тестов NIST

NIST является наиболее широко используемым тестом для криптоанализа алгоритмов шифрования [4]. Для сравнения алгоритмов используются три теста: приблизительная энтропия, прогонный тест и линейная сложность. Результаты представлены в таблице 1.

Таблица 1. Результаты тестов NIST.

Ключ шифрования

AES

Модифицированный AES

Приблиз. энтропия

Run test

линейная сложность

Approximate entropy

Run test

Linear complexity

kVM5HlaOSmViuDZS

0.275

0.708

0.412

0.621

0.883

0.738

nUg2Sbu5VhaNpqpU

0.591

0.269

0.891

0.95

0.869

0.896

Eio5dBioBOPJ2rY7

0.29

0.745

0.693

0.486

0.851

0.96

Ml56ROJZyEfDfPU1

0.574

0.619

0.098

0.501

0.471

0.603

DdcVWrPU3tmnrGPQ

0.641

0.619

0.098

0.858

0.982

0.862

5K3oL59ZqTsh9nBl

0.453

0.852

0.08

0.398

0.601

0.419

N38ks44Q25aOSgpD

0.013

0.684

0.99

0.316

0.932

0.863

NM2wknqgjPr5LQMh

0.51

0.902

0.654

0.89

0.963

0.921

Результаты показали, что новый метод дает больше случайностей, чем стандартный AES. Показано, что модифицированный AES в среднем увеличивается на 0,209125 по приблизительной энтропии, на 0,14425 по тесту на последовательность одинаковых битов и на 0,29325 по линейной сложности по сравнению со стандартным AES.

Анализ времени шифрования и дешифрования является важным критерием для измерения производительности алгоритма шифрования [5]. Для сравнения использовались различные размеры файлов. Результаты, приведенные в таблице 2 показывают, что новый алгоритм работает быстрее.

Таблица 2. Анализ времени шифрования и дешифрования.

Размер файла (kb)

AES

Модифицированный AES

Время шифрования (мс)

Время дешифрования (мс)

Время шифрования (мс)

Время дешифрования (мс)

10000

4726

5530

1260

2810

20000

5387

6328

2098

3260

30000

6100

7649

3798

4090

40000

7742

8624

4690

5140

50000

8211

9743

6030

6450

Заключение

В предложенной модификации AES для сокращения времени работы внесено несколько изменений. Во-первых, общее количество раундов сокращено до 6 раундов. Внутри каждого раунда есть только три операции: Shift Column, Mix Column, и Add Round Key (кроме последнего раунда, в котором всего два шага: Mix Column и Add Round Key). Mix Column и Add Round Key остаются такими же, как в стандартном AES. Уменьшение количества раундов и удаление операции SubBytes сокращает общее время, необходимое для шифрования, не влияя на степень безопасности алгоритма, потому, что вместо данной функции будет использоваться перемешивание методом ZZ. Этот процесс будет выполнен только один раз перед запуском операций AES, что означает это не будет стоить слишком много времени. Выполнение процесса шифрования в указанном порядке с использованием этих шагов обеспечивает быстрый и криптостойкий алгоритм шифрования, который подходит для безопасного преобразования информации через Интернет. Обеспечение должного уровня безопасности шифрования при быстром времени обработки является основной целью этой статьи.

Список литературы

  1. Seema Siledar, Suchita Tayde File Encryption, Decryption Using AES Algorithm in Android Phone // International Journal of Advanced Research in Computer Science and Software Engineering, Vol. 5, no 5, pp. 550-554, - 2015.
  2. Aya Khalid Naji, Saad Najim Alsaad Data (Video) Encryption in Mobile Devices // Kurdistan Journal for Applied Research, Vol. 2, no 3, - 2017 http://dx.doi.org/10.24017/science.2017.3.17.
  3. Ali Takieldeen, Hazem M El-Bakry, Ahmed H. El Tengy A New Mobile Application for Encrypting, SMS / Multimedia Messages on Android // International Journal of Scientific & Engineering Research, Vol. 4, No. 12, - 2013.
  4. William Stallings Cryptography and Network Security Principles and Practice // Fifth Edition, Pearson Education, Prentice Hall, 2011.
  5. Schneier B. Applied Cryptography // John Wiley& Sons Publication, New York, 1994.

Интересная статья? Поделись ей с другими: