Skip to content

ShowhyT/projectwork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

projectwork

Работаем по проекту ГОСТ P 34-11.2012

Роли в проекте:

  • skellekroon-svg - математик-программист, обеспечивает и проверяет корректность программирования математических объектов
  • Jaba - программист арифметики в конечных полях.
  • ShowhyT - программист всего алгоритма, включая процедуры ввода-вывода
  • Armigodf - программист оболочки под DOS и Windows, сборщик программных модулей
  • Pomidor/ShowhyT - тестировщик корректности работы программы и её оптимальности.

Строение проекта:

projectwork/
│
├── CMakeLists.txt              # Сборка
├── README.md                   # Описание проекта
│
├── include/
│   ├── streebog.h              # Публичный API хэш-функции
│   ├── streebog_tables.h       # Таблицы констант (S-box, tau, A, C)
│   └── streebog_internal.h     # Внутренние типы и макросы
│
├── src/
│   ├── streebog.c              # Основная логика: Init / Update / Final
│   ├── streebog_compress.c     # Функция сжатия g_N
│   ├── streebog_tables.c       # Определения таблиц (Lookup Tables)
│   ├── streebog_transform.c    # Преобразования: S, P, L, X, E (шифр)
│   └── streebog_utils.c        # Вспомогательные функции (XOR, ADDC и т.д.)
│
├── tests/
│   ├── test_main.c             # Точка входа тестов
│   ├── test_vectors_256.c      # Тест-векторы для Стрибог-256
│   ├── test_vectors_512.c      # Тест-векторы для Стрибог-512
│   └── test_vectors.h          # Данные тест-векторов из ГОСТ
│
├── tools/
│   ├── main.c                  # CLI-утилита: вычисление хэша файла/строки
│   └── bench.c                 # Бенчмарк производительности
│
└── docs/
    ├── GOST_R_3411-2012.pdf     # Текст стандарта
    └── gost-r-34.pdf            # Текст стандарта

Распределение модулей выполняемой программы для ролей

Математикstreebog_tables.c/h, streebog_transform.c, проверяет корректность всех констант и преобразований S, P, L, X, E.

Программист арифметики GFstreebog_transform.c (реализация), streebog_utils.c, streebog_internal.h. Пишет само умножение в поле Галуа для функции L.

Программист алгоритмаstreebog.h, streebog.c, streebog_compress.c, tools/main.c. Init/Update/Final, функция сжатия g_N, CLI-утилита.

СборщикCMakeLists.txt, .clang-format, .clang-tidy, .gitignore, README.md. Настраивает сборку под Windows/DOS, следит чтобы всё компилировалось.

Тестировщикtests/, tools/bench.c. Пишет тест-векторы из Приложения А стандарта, проверяет корректность и производительность.

streebog_transform.c Делают математик и программист GF вместе

streebog_compress.c — Программист алгоритма и математик согласовывают интерфейс g_N.

About

Работаем по проекту ГОСТ P 34-11.2012

Resources

Stars

Watchers

Forks

Contributors