Шифрующее кодирование
Вариант 2-го практического задания для групп 110, 111 (2007)
Краткие теоретические сведения
Постановка задачи
Требования к реализации
Генератор ключа шифра
Генератор ключа шифра должен запросить у пользователя желаемую длину
Lkey шифр-ключа (целое от 16 до 30 000), затем инициализировать алгоритм генератора псевдослучайной последовательности значением сотых долей секунд текущего времени.
После чего генератор должен вывести следующую ключевую последовательность байтов в шестнадцатеричном виде (по 2 цифры на байт).
Формат следования данных в последовательности может быть, например, таким:
b0 | b1 | b2 | b3 | b4 | b5 | b6 | ... | b6 + KL |
Lkey | Lpreamble | Ltail | Key |
где:
Шифратор
Шифратор должен ввести сгенерированную первым модулем ключевую последовательность, а затем ввести текст, оканчивающийся комбинацией CTRL+Z (символ с кодом
1Аh), и вывести шифр-последовательность в шестнадцатеричном виде, предваренную случайной преамбулой и оканчивающуюся случайным суффиксом.
Формат следования данных в шифр-последовательности может быть, например, таким:
b0 | ... | bLpreamble − 1 |
bLpreamble | ... | bLpreamble + Lcipher − 1 |
bLpreamble + Lcipher | ... | bLpreamble + Lcipher + Ltail − 1 |
Preamble | Cipher | Tail |
Длина преамбулы и суффикса порождается генератором шифр-ключа и содержится в ключевой последовательности.
Дешифратор
Дешифратор, аналогично шифратору, должен сначала ввести ключевую последовательность, затем шифр-последовательность и вывести расшифрованный текст.
Варианты сложности
В качестве возможного усложнения задания предлагается реализовать в шифраторе:
Ссылки по теме