[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Зачем же XOR на таблицу?
Любой вариант шифра "1 байт <-> 1 байт" полностью описывается таблицей подстановки:
char cipher[256];
Соответственно, зашифрованный байт - это:
output_byte = cipher[input_byte].
Как получить расшифровывающую таблицу из шифрующей - нетрудно догадаться.
Всего таких шифров может быть 256!, то есть столько же, сколько и перестановок в алфавите из 256 символов.
Чтобы получить хорошую шифрующую таблицу, надо сгенерить случайную перестановку. Для этого можно взять исходную таблицу:
char cipher[256] = { 0, 1, 2, 3, ... };
и сделать в ней много случайных парных перестановок.
А XOR на таблицу - это всего лишь узкий подкласс возможных шифров, ничем не лучший, чем подстановка с помощью таблицы. Хотя может быть я просто что-то не понял...
E-mail: info@telesys.ru