Пример генератора ключей, зависящего от входных данных

Чтоб было понятней, рассмотрим простенький пример такого алгоритма.

Пусть xn - это очередной код в исходных данных, kn - текущий ключ, kn+1 - следующее значение ключа, yn - зашифрованый код xn. Q(a,b) - некая коммутативная функция, т.е. такая, что q(a,b)==q(b,a). (a,b,c) - некая целочисленная функция.гда итерацию по (де)кодированию можно описать так:

n := xn xor

kn;n+1 := F( kn, Q( xn, yn ), n );

Если для функции F() понятно, что её имплементация в общем-то ограничена лишь нашей фантазией и здравым смыслом, то про Q(), вероятно, вам хочется увидеть подробностей, а именно, каким таким условиям она должна соответствовать, чтобы быть коммутативной. Самый простой способ этого достичь - использовать аргументы только парами в коммутативных операциях, например xor, сложение, умножение. Примеры:

(a,b) = ((a xor

b) or

1) * (( a + b ) xor

1).

Как видите, придумать свою супер-пупер функцию Q() совсем не сложно. Другое дело, нужно ли её делать сложной? Думаю, что особого смысла в её переусложнении нет.

Прочтите также:

Организация интеллектуальной сети в г. Кокшетау на базе платформы оборудования Alcatel S12
Концепция интеллектуальной сети является сегодня одной из определяющих концепций развития современных сетей связи. Интерес, проявляемый к ИС (интеллектуальная сеть), не случаен и основан ...

Тонкопленочные резисторы
Зарождение и развитие микроэлектроники как нового научно-технического направления, обеспечивающего создание сложной радиоэлектронной аппаратуры (РЭА), непосредственно связаны с кризисной ...

Этапы проектирования электронных систем
Проектное решение - промежуточное описание проектируемого объекта, полученное на том или ином иерархическом уровне, как результат выполнения процедуры (соответствующего уровня). ...

Основные разделы

Copyright © 2008 - 2019 www.techmatch.ru