Кpиптогpафия от папиpуса до компьютеpа




Шифры перестановки - часть 2


N(i+1)=(K-Ni+M) MOD L

при выполнении следующих 4 условий:

    

1) К и М берутся из интервала [1, L-1],
     2) М взаимно просто с L,
     3) К-1 делится на любой простой делитель L,
     4) К-1 делится на 4, если L делится на 4.

Для хорошего запутывания в этом случае приходится делать перестановку несколько раз, меняя случайным образом К и М. Часть криптографов рекомендует для перестановки использовать такие же последовательности, как и у генераторов ключей, описанных ниже, хотя с этими генераторами существует проблема в том, что они переставляют 2**n-1 элементов, а на ЭВМ приходится иметь дело с группами длиной 2**n.

Интересна схема перестановки, напоминающая тасовку колоды карт. Так, если S=A+B+C представляет собой исходный блок текста, переставляемый побайтно, то результатом такой перестановки будет S'=C+B+A, где разбиение на фрагменты А, В и С делается случайным образом. После нескольких тасовок исходный текст оказывается основательно перепутанным. Эта тасовка в состоянии после многократного повторения осуществить любую перестановку. Однако число тасовок при этом должно быть очень велико, и для быстрого получения качественной перестановки лучше употреблять перестановку пар:

    

FOR i = 0 ТО N
     SWAP arr(i), arr(N*RND)
     NEXT

Перестановка тасовкой зачастую очень удобна, так как одиночный ее шаг практически не оставляет ни одного символа на своем месте. Прием перестановки тасовкой демонстрирует следующая программа:

    

' программа шифрования перестановкой
     DEFINT I-N: DEFSTR S
     RANDOMIZE 1379: CLS

'задание текста и перестановки
     s = "Вверху синева и внизу откос"
     l = LEN(s$): PRINT s
     s$ = ""
     FOR i=1 TO 2*l: s$=s$+CHR$(l*RND):NEXT

    




Содержание  Назад  Вперед