WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

S-блок (англ. s-box от substitution-box), «блок подстановок» — функция в коде программы или аппаратная система, принимающая на входе n бит, преобразующая их по определённому алгоритму и возвращающая на выходе m бит. n и m не обязательно равны[1].

S-блоки используются в блочных шифрах.

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

S-блок называется идеальным (англ. perfect s‑box)[2], если значения выходных бит вычисляются бент-функцией на основе значений входных бит и любая линейная комбинация выходных бит является бент-функцией от входных бит.

Программная реализация

Программная реализация s‑блока работает следующим образом:

  • читается значение на входе (аргумент функции);
  • выполняется поиск прочитанного значения по таблице;
  • по определённому правилу выбирается ячейка таблицы; из ячейки читается выходное значение; выходное значение возвращается из функции.

Используемая таблица называется «таблицей замен» или «таблицей подстановок». Таблица может:

  • быть неизменной (фиксированной) (англ. static);
  • генерироваться на основе ключа (англ. dynamic).

Например, для шифра (алгоритма) DES используется фиксированная таблица, а для шифров Blowfish и Twofish таблица создаётся на основе ключа.

Таблицы замен s‑блоков шифра DES

Пример[3]. Рассмотрим работу с таблицей пятого s‑блока ( ) шифра DES. Пятый s‑блок принимает на входе бит ( ), а на выходе возвращает бита ( ). Пронумеруем входные биты слева направо от 1 до 6. Таблица подстановок имеет следующий вид:

S5Значения 2‑го, 3‑го, 4‑го и 5‑го бит на входе
0000000100100011010001010110011110001001101010111100110111101111
Значения 1‑го и 6‑го бит на входе 00 0010110001000001011110101011011010000101001111111101000011101001
01 1110101100101100010001111101000101010000111110100011100110000110
10 0100001000011011101011010111100011111001110001010110001100001110
11 1011100011000111000111100010110101101111000010011010010001010011

Пусть на вход подаются биты "011011". Найдём биты на выходе.

  • 1‑й и 6‑й биты на входе равны «01».
  • 2‑й, 3‑й, 4‑й и 5‑й биты на входе равны «1101».
  • На пересечении строки «01» и столбца «1101» находим ячейку «1001» — значения бит на выходе.

Аппаратная реализация

Принципиальная схема трёхразрядного ( ) s-блока

Аппаратная реализация s‑блока (см. рис.) состоит из следующих устройств:

Дешифратор — устройство, преобразующее nразрядный двоичный сигнал в одноразрядный сигнал по основанию .

Например, для s-блока, изображённого на рисунке, дешифратор выполняет преобразование трёхразрядного сигнала ( ) в восьмиразрядный ( ).

Система коммутаторов — внутренние соединения, выполняющие перестановку бит. Если m=n, количество соединений равно . Каждый входной бит отображается в выходной бит, расположенный в том же или ином разряде. Если число входов n и выходов m не равно, от каждого выхода дешифратора может идти ноль, одно, два или более соединений. Это же справедливо и для входов шифратора.

Для s-блока, изображённого на рисунке, , число соединений равно .

Шифратор — устройство, переводящее сигнал из одноразрядного -ричного в n‑разрядный двоичный.

Для s‑блока, изображённого на рисунке, можно составить следующую таблицу замен (таблицу подстановок).

 01234567
Значение на входе дешифратора 0002=0100012=1100102=2100112=3101002=4101012=5101102=6101112=710
Номер выхода дешифратора (по рисунку), на котором установлено значение 1 (на других выходах установлено значение 0) 01234567
Номер входа шифратора (по рисунку), на котором установлено значение 1 (на других входах установлено значение 0) 30146725
Значение на выходе шифратора 0112=3100002=0100012=1101002=4101102=6101112=7100102=2101012=510

Пример. Пусть на входы шифратора, изображённого на рисунке, подаётся число 1102 (см. рисунок). Так как десятичное представление двоичного числа 1102 равно 610, на 6‑м выходе шифратора будет значение 1, а на других выходах — значение 0 (см. рисунок). С помощью системы коммутаторов значение 1 будет передано на 2‑й вход дешифратора (перестановка бит). Так как двоичное представление десятичного числа 210 равно 0102, на выходах дешифратора будет число 0102 (см. рисунок).

Применение

S-блоки используются в блочных шифрах при выполнении симметричного шифрования для сокрытия статистической связи между открытым текстом и шифротекстом.

Анализ n-разрядного s-блока при большом n крайне сложен, однако реализовать такой блок на практике очень сложно, так как число возможных соединений велико ( ). На практике «блок подстановок» используется как элемент более сложных систем.

S-блоки используются в следующих шифрах:

  • AES (англ. advanced encryption standard) — шифр, являющийся стандартным на территории США;
  • ГОСТ 28147-89 — отечественный стандарт шифрования данных;
  • DES (англ. data encryption standard) — шифр, являвшийся стандартным на территории США до принятия AES;
  • Blowfish;
  • Twofish.

Безопасность

При проектировании s‑блока особое внимание следует уделять составлению «таблицы подстановок». Многие годы исследователи искали закладки (уязвимости, известные только создателям) в таблицах подстановок восьми s‑блоков шифра DES. Авторы DES рассказали[4] о том, чем руководствовались при составлении таблиц подстановок. Результаты дифференциального криптоанализа шифра DES показали, что числа в таблицах подстановок были тщательно подобраны так, чтобы увеличить стойкость DES к определённым видам атак. Бихам и Шамир обнаружили, что даже небольшие изменения в таблицах могут значительно ослабить DES[5].

Примечания

  1. Chandrasekaran, J. et al. A chaos based approach for improving non linearity in the s-box design of symmetric key cryptosystems // Advances in networks and communications: first international conference on computer science and information technology, CCSIT 2011, Bangalore, Индия, 2-4 января 2011 года. Proceedings, part 2. — Springer, 2011. — С. 516. ISBN 978-3-642-17877-1.
  2. RFC 4086. Section 5.3 "Using s‑boxes for mixing"
  3. Buchmann Johannes A. 5. DES // Introduction to cryptography. — Corr. 2. print.. — New York, NY [u.a.]: Springer, 2001. — С. 119-120. ISBN 0-387-95034-6.
  4. Coppersmith, Don (1994). “The Data Encryption Standard (DES) and its strength against attacks” (PDF). IBM Journal of Research and Development. 38 (3): 243—250. DOI:10.1147/rd.383.0243. Проверено 2007-02-20.
  5. Gargiulo's "S-Box modifications and their effect in DES-like encryption systems". С. 9.

Литература

См. также

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии