Рейтинг:0

Реализация компонентов sbox с помощью таблиц поиска

флаг jp

Можно ли реализовать компоненты таблиц SBOX с помощью lookup_tables. Например, для 4-битного SBOX можно получить компонент 3 с помощью SAGE следующим образом.

sage: из sage.crypto.sbox импортировать SBox
мудрец: S = SBox([7,6,0,4,2,5,1,3])
мудрец: f3 = S.component_function(3)
мудрец: f3.алгебраическая_нормальная_форма()
х0*х1 + х0*х2 + х0 + х2

Но мне нужно использовать этот компонент несколько раз (лайм $2^{20}$), а логическая функция в SAGE с подстановкой такая медленная. Чем я думаю, что лучше использовать таблицы поиска.

poncho avatar
флаг my
Похоже, это вопрос больше о Sage, чем о криптографии.
Рейтинг:1
флаг ru

Ты прав. Булевы выражения для компонентов, возвращаемых Sage, предназначены не для эффективной оценки, а скорее для помощи в алгебраическом анализе шифра (например, как часть выражения битов функции раунда или расписания клавиш в виде полиномиального выражения и вычисления его степени).

Если вы действительно хотите собрать данные о функции компонента для большого количества входных данных, опять же, вы правы, предварительное вычисление справочной таблицы намного эффективнее.

Рейтинг:0
флаг in

f3 в вашем коде есть логическая функция, которая в основном представляет собой список значений True/False.

список(f3)                                                                                                                                                                                                                                
[Ложь, правда, ложь, ложь, правда, правда, правда, ложь]

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

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