Skip to content

Repository files navigation

Enigma Cipher Machine

Горбачева Маргарита Валерьевна | студентка группы БПИ-245 ФКН НИУ ВШЭ

Описание проекта

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

Цели проекта

  • Изучение принципов работы шифровальной машины «Энигма».
  • Разработка модели, имитирующей работу оригинальной машины.
  • Исследование криптографической устойчивости шифра «Энигма».

Технологии

  • Ядро программы backend написано на языке программирования C++.
  • frontend реализован на языке программирования Python с использованием фреймворка PyQT

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

Enigma-Cipher-Machine/
│
├── 📂 backend/                 #Ядро программы, написанное на C++
│   ├── .cpp и .hpp файлы
│     
├── 📂 frontend/                #Python-интерфейс (PyQt5)
│   ├── main.py                 
│   └── enigma_core.py          #Связь с C++ backend'ом
|
├── 📂 data/                    #Текстовые ресурсы backend
│   └── ... .txt файлы          
│
├── 📂 Документация/            #Документация (ТЗ, ТП, ПМИ и т.п.)
├── 📂 Энигма_инфо/             #Исторические настройки Энигмы
│
├── 📄 .gitignore               
├── 📄 EnigmaApp.bat            #cкрипт быстрого запуска
├── 📄 LICENSE                  
├── Makefile                    #cборка всего проекта(backend)
├── 📄 README.md                
└── requirements.txt            #для настройки python

Запуск приложения

Существует три способа запуска приложения:

  1. Чтобы запустить готовое приложение без настройки окужения, необходимо перейти в раздел Releases данного Github-репозитория (https://github.com/Misss-Lacoste/Enigma-Cipher-Machine/releases/tag/v1.0.0) и скачать архив с кодом под соотвктсвующую ОС: Windows или Linux. Необходимо распаковать архив и в открывшейся папке EnigmaApp открыть файл EnigmaApp.exe.

  2. Есть возможность склонировать данный репозиторий на свой ПК в случае, если установлен Python, Makefile.

    2.1. git clone https://github.com/Misss-Lacoste/Enigma-Cipher-Machine

    2.2.cd /d/HSE/Enigma-Cipher-Machine

    2.3. pip install -r requirements.txt

    2.4. cd backend

    2.5. mingw32-make run

    2.6. Далее в проводнике (в папке проекта) после успешной компиляции backend'а найти файл EnigmaApp.bat и открыть его.

  3. Можно скомпилировать только backend-часть, не активируя при этом frontend и работать с консольной версией приложения. Для этого аналогично запускаем программу, используя команду mingw32-make run и наблюдаем интерактивный вывод в терминале.

About

Repository for my 2nd-year study in HSE FCS SE term paper work - Enigma cipher machine

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages