Данная реализация использует случайный ключ длиной 256 байта. Сам алгоритм можно разделить на две части: инициализация S-блока и генерация псевдослучайного слова на каждый байт исходного файла. Генерируемая последовательность близка к равномерному распределению случайной величины. Функция main демонстрирует работу алгоритма шифрования с обратной дешифровкой, а также процесс генерации случайного ключв. Замеры времени в мс производятся отдельно для шифровки и расшифровки и выводятся в консоль.
Алгоритм тестировался на файле sample.pdf размером 2.2 МБ (вместо sample.pdf можно вписать путь к любому файлу).
В дальнейшем планируется усовершенствовать алгоритм генерации случайного ключа (например, через использование MD5 или другой хэш-функции), а также сделать многопоточную версию