README.md

Эксперимент по сравнению скорости алгоритмов шифрования

Это программа для научного эксперимента, описанного в проекте «КриптоБарьер: умный помощник для выбора алгоритма шифрования больших данных».

Что делает программа

  • Создаёт тестовые файлы разных размеров (1 КБ, 100 КБ, 1 МБ, 10 МБ)
  • Шифрует их четырьмя способами:
    • AES-256 (симметричное шифрование, режим CBC)
    • RSA-2048 (асимметричное шифрование, только для ключей)
    • Гибридная схема (AES для данных + RSA для ключа сессии)
    • ChaCha20 (современный потоковый шифр)
  • Замеряет время выполнения, нагрузку на процессор (CPU) и использование оперативной памяти (RAM)
  • Проводит 10 повторений для каждого теста и усредняет результаты
  • Выводит подробные таблицы с результатами
  • Строит графики сравнения скорости и загрузки CPU
  • Рассчитывает ускорение ChaCha20 относительно AES-256

Как запустить

  1. Убедитесь, что у вас установлен Python 3.9 или новее
  2. Установите необходимые библиотеки из файла requirements.txt: pip install -r requirements.txt
  3. Запустите программу: python encryption_experiment.py

Результаты эксперимента

При запуске программа создаёт следующие файлы:

  • time_results.csv — время шифрования
  • cpu_results.csv — загрузка CPU
  • mem_results.csv — использование памяти
  • crypto_speed_comparison.png — график сравнения скорости
  • cpu_comparison.png — график сравнения загрузки CPU

Ниже приведены результаты, полученные в ходе выполнения эксперимента (усреднённые по 10 замерам).

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

Размер AES-256 RSA-2048 Гибрид ChaCha20 Ускорение
1 КБ 0.000067 0.000106 0.000163 0.000064 +5.2%
100 КБ 0.000315 0.000108 0.000392 0.000176 +44.1%
1 МБ 0.002785 0.000093 0.002580 0.001485 +46.7%
10 МБ 0.029284 0.000097 0.027647 0.016742 +42.8%

Загрузка CPU (секунды процессорного времени)

Размер AES-256 RSA-2048 Гибрид ChaCha20 Ускорение CPU
1 КБ 0.000 0.000 0.000 0.000
100 КБ 0.001 0.000 0.001 0.000 +100%
1 МБ 0.002 0.000 0.003 0.001 +50%
10 МБ 0.030 0.001 0.028 0.017 +43.3%

Использование оперативной памяти (МБ)

Размер AES-256 RSA-2048 Гибрид ChaCha20
1 КБ 0.000 0.000 0.000 0.000
100 КБ 0.000 0.000 0.000 0.000
1 МБ 1.000 0.000 0.988 0.887
10 МБ 12.000 0.000 12.000 11.100

Графики

Сравнение скорости

Сравнение загрузки CPU

Примечание: значения могут незначительно меняться при каждом запуске из-за генерации случайных данных и системной нагрузки.

Выводы

  • ChaCha20 стабильно быстрее AES-256 на всех объёмах данных, начиная с 100 КБ (ускорение от 42% до 47%).
  • Гибридная схема (AES+RSA) показывает производительность, близкую к чистому AES.
  • RSA-2048 эффективен только для шифрования ключей (время практически не зависит от размера файла).
  • На больших объёмах (10 МБ) ChaCha20 экономит около 1 МБ оперативной памяти по сравнению с AES.
  • По нагрузке на CPU ChaCha20 также даёт выигрыш до 43% на 10 МБ и до 100% на малых объёмах (где AES потребляет заметное процессорное время, а ChaCha20 — нет).

Структура проекта

crypto-experiment/ encryption_experiment.py # Основная программа requirements.txt # Список библиотек README.md # Документация time_results.csv # Результаты времени cpu_results.csv # Результаты CPU mem_results.csv # Результаты памяти crypto_speed_comparison.png # График скорости cpu_comparison.png # График загрузки CPU

Используемые технологии

  • Python 3.9+
  • Библиотека cryptography для реализации алгоритмов шифрования
  • psutil для замера CPU и памяти
  • matplotlib и numpy для визуализации результатов

Автор

Шелковникова Анастасия, 9 класс
МБОУ Лицей №3, г. Барабинск
Научный руководитель: Тишина Оксана Владимировна

Описание
Программа для эксперимента по сравнению скорости шифрования AES, RSA и гибридной схемы
Конвейеры
0 успешных
0 с ошибкой
Разработчики