Есть задание:
Генератор псевдослучайных чисел я сделал, но понять не могу, как с его помощью шифровать можно. Можете подсказать, ибо уже несколько часов ломаю голову.
Не обязательно код, просто объяснение алгоритма будет отлично
Я не буду писать какой-то конкретный алгоритм, ибо потенциальных алгоритмов тьма и маленькая тележка.
Вашу задачу можно решать двумя разными путями: гаммирование и выведение ключей для существующего блочного шифра. В обоих случаях предполагается, что ваша М-последовательность генерируется из какого-то начального значения, которое будет служить ключом для шифра.
ГаммированиеГаммирование или XOR шифр, придуман ажно самим Шенноном. Реализация проста. Сначала по ключу генерируете псевдослучайную последовательность N
(noise) длиной L
байтов. Байты шифртекста C[i]
получаются из байтов открытого теста P[i]
сложением по модулю два с соответствующим байтом шума:
C[i] = P[i] XOR N[i mod L]
Для расшифровки получатель шифртекста, зная ключ, генерирует ту же самую последовательность N
и расшифровывает, ксоря байты шифртекста и шума:
P[i] = C[i] XOR N[i mod L]
Генерация раундовых ключей
Все современные блочные шифры организованы в раунды. Внутри одного шифра раунды устроены практически одинаково - перемешивание битов и подмешивание битов ключа. Для стойкости на для каждого раунда из исходного ключа генерируется раундовый ключ. К примеру, в AES раундовые ключи генерируются вот так, а в DES - вот так.
Для вашего задания вы могли бы взять открытую реализацию AES или DES и заменить в ней алгоритм генерации раундового ключа. Если длина раундового ключа R
байтов, то ключ K[i]
для i-того раунда будет состоять из байтов N[i*R], N[i*R+1], ..., N[i*R+(R-1)]
Вот, как-то так.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
привет у меня проблема когда я хочу спользовать метод label в классе то его нету но в файлеui я его добавлял я пытался очищать проект и пересобирать...
Пытаюсь реализовать алгоритм быстрой сортировки, но что-то идет не такВроде пишу прямо по книге (Кормен), но алгоритм работает некорректно...
В доках сказано, что file_size возвращает результат в байтахИмеются в виду октеты (8 бит) или количество char-ов?