Рейтинг:0

В чем разница между перестановкой и транспозицией?

флаг cn

Я пытаюсь понять разницу между перестановкой и транспозицией. Я видел аналогичный вопрос на форуме, но я хотел бы попросить вас дать правильные определения и примеры каждого из них. Я пытаюсь понять алгоритм DES, и я хотел бы понять, будет ли деление пополам исходного блока и возможная замена половин перестановкой или транспозицией. Заранее спасибо.

kelalaka avatar
флаг in
Во-первых, аналогичный вопрос, который не решает вашу проблему, лучше связать с причинами. Во-вторых, [так] это не форум, это сайт вопросов и ответов. Наконец, ваш заголовок достаточно широк, чтобы можно было подумать, что речь идет о классических шифрах, как вы отметили! транспозиция - это перестановка. В DES это называется сетью (перестановкой), и вся цель состоит в том, чтобы создать псевдослучайную перестановку (PRP).
Рейтинг:2
флаг ng

Этот ответ фокусируется на кусочек перестановки, используемые в контексте ДЕС для битовых перестановок IP, IP-1, и E. Он нумерует биты, начиная с $1$, как в ДЭС.


А битовая перестановка это функция $г$ на съемочной площадке $\{0,1\}^n$ из $n$-битовые бистроки. Он полностью определяется вектором $n$ различные целые числа $p_i$ с $1\le p_i\le n$, и свойство, что для любой битовой строки $х$ и любое целое число $я$ с $1\le i\le n$, битовое число $я$ изображения битовой строки $х$ по функции $г$ это битовое число $p_i$ из $х$.

Другими словами, каждый входной бит соответствует уникально назначенному выходному биту, а выходной бит $я$ входной бит $p_i$.

Каждая битовая перестановка биекция на съемочной площадке $\{0,1\}^n$. Эквивалентно: каждая битовая перестановка является перестановкой набора $n$-битовые бистроки. Есть $н!$ такие битовые перестановки, по сравнению с гораздо большими $(2^n)!$ такие перестановки. Подмножество битовых перестановок закрыто по функциональной композиции: применение любых двух фиксированных битовых перестановок дает битовую перестановку.

Примечание: некоторые авторы используют битовая транспозиция или даже перестановка чтобы обозначить битовую перестановку, как определено выше, и отличить ее от перестановки. Это не то, что я буду делать дальше, но это может быть то, что имеет в виду ОП.


А битовая транспозиция является конкретной битовой перестановкой $n$-bit битовые строки, полностью определяемые двумя целыми числами $\ell$ и $с$ с $n=\ell\cdot c$. Это $n$ целые числа $p_i$ находятся $p_i=1+((i-1)\bmod c)\cdot c+\lfloor (i-1)/c\rfloor$, за $1\le i\le n$.

Другими словами, когда мы записываем входные биты как $\ell=n/c$ линии и $с$ столбцы, а выходные биты как $с$ линии и $\ell$ столбцы, выходной столбец $j$ поступает из строки ввода $j$.

Например, с $\ell=3$ и $с=2$, битовая транспозиция имеет $p_1=1$, $p_2=3$, $p_3=5$, $p_4=2$, $p_5=4$, $p_6=6$, который лучше всего представить как

     1   3   5
     2   4   6

Иногда битовая перестановка с $p_i=\ell\cdot c-((i-1)\bmod c)\cdot c-\lfloor (i-1)/c\rfloor$ также считается альтернативной битовой транспозицией. С $\ell=3$ и $с=2$, альтернативная битовая транспозиция имеет $p_i$

     6   4   2
     5   3   1

Когда $n$ это квадрат и $\элл,с$ не определены, они считаются $\кв.п$, и такие транспозиции квадратных битов инволюции.


Будет ли деление исходного блока пополам и возможная замена половин перестановкой или транспозицией?

В ДЕС, преобразование (состоящее из IP с последующим делением пополам) из 64-битного ввода в LR представляет собой битовую перестановку (таким образом, перестановку множества $\{0,1\}^n$, но это гораздо менее конкретно). Это $p_i$ приведены в таблице IP:

    58  50  42  34  26  18  10   2
    60  52  44  36  28  20  12   4
    62  54  46  38  30  22  14   6
    64  56  48  40  32  24  16   8
    57  49  41  33  25  17   9   1
    59  51  43  35  27  19  11   3
    61  53  45  37  29  21  13   5
    63  55  47  39  31  23  15   7

Очень регулярная замена линий делает его

    64  56  48  40  32  24  16   8
    63  55  47  39  31  23  15   7
    62  54  46  38  30  22  14   6
    61  53  45  37  29  21  13   5
    60  52  44  36  28  20  12   4
    59  51  43  35  27  19  11   3
    58  50  42  34  26  18  10   2
    57  49  41  33  25  17   9   1

что является альтернативной транспозицией квадратного бита для $n=64$. Таким образом, IP является почти битовой транспозицией.

При работе с LR перестановка половинок представляет собой битовую перестановку, которая $p_i$ даны:

    33  34  35  36  37  38  39  40
    41  42  43  44  45  46  47  48
    49  50  51  52  53  54  55  56
    57  58  59  60  61  62  63  64
     1   2   3   4   5   6   7   8
     9  10  11  12  13  14  15  16
    17  18  19  20  21  22  23  24
    25  26  27  28  29  30  31  32

Это не битовая транспозиция, а очень регулярная битовая перестановка (как и битовые транспозиции) и инволюция (которыми являются квадратные битовые транспозиции).

SSA avatar
флаг ng
SSA
перестановка — это биективная функция из множества S в S, т. е. ${\phi:S \mapsto S}$, она выполняет более одной транспозиции. Следовательно, транспозиция меняет положение двух элементов. напр. транспонирование (12) фактически означает отправку 1 в 2 и 2 в 1.
fgrieu avatar
флаг ng
@SSA: определение, которое вы даете, - это перестановка. Применительно к множеству $\{0,1\}^n$ это дает $(2^n)!$ возможных перестановок. Это не то определение, которое используется в DES, когда дело доходит до IP и E, которые являются _bit_ перестановками. Я уточнил, что ответ фокусируется на более позднем виде.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.