Оптимизация шифрования на Байкал-Т1 по ГОСТ28147-89 (Алексей Колотников, OSSDEVCONF-2018) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) (Batch edit: replace PCRE (\n\n)+(\n) with \2) |
||
(не показано 16 промежуточных версий этого же участника) | |||
;{{SpeakerInfo}}: {{Speaker|Алексей Колотников}} <blockquote> </blockquote> {{VideoSection}} {{vimeoembed|292613607|800|450}} <!-- {{youtubelink|}} -->|1-CNwdBYYVQ}} {{letscomment}} {{SlidesSection}} [[File:Оптимизация шифрования на Байкал-Т1 по ГОСТ28147-89 (Алексей Колотников, OSSDEVCONF-2018).pdf|left|page=-|300px]] {{----}} == Thesis == === '''CBC + Imito''' === * Пакет менее 128 байт шифруется на CPU * Пакеты больше 128 байт шифруются модулярным сопроцессором: ** поток '''224''' Мбит/с ** дуплекс '''181+108''' Мбит/с * Разнесение прерываний по ядрам даёт значительный прирост: ** поток '''281''' Мбит/с ** дуплекс '''216+188''' Мбит/с ** Смесь 7*66+4*518+1*1450 дуплекс '''92+92''' Мбит/с {{----}} [[File:{{#setmainimage:Оптимизация шифрования на Байкал-Т1 по ГОСТ28147-89 (Алексей Колотников, OSSDEVCONF-2018)!.jpg}}|center|640px]] {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> {{vklink|1176}} {{fblink|2180152565571086}} <references/> {{stats|disqus_comments=0|refresh_time=2018-10-19T21:2021-08:39-31T17:41:17.736015765469|vimeo_plays=1350|youtube_comments=0|youtube_plays=0236}} [[Категория:OSSDEVCONF-2018]] [[Категория:Криптография]] [[Категория:Байкал]] |
Текущая версия на 12:22, 4 сентября 2021
- Докладчик
- Алексей Колотников
Содержание
Видео
Посмотрели доклад? Понравился? Напишите комментарий! Не согласны? Тем более напишите.
Презентация
Thesis
Обзор
- Важно
- построение шифрующего маршрутизатора потребует использования всех алгоритмов для разных размеров шифруемого пакета.
Шифрование на CPU и регистрах общего назначения
- Шифруется 1 блок размером 64бит.
- Время шифрования 1 блока по 64 бит — 450 ns
- Наиболее гибкий подход, позволяет реализовать любой вариант зацепления(CTR, CBC и тд.), но достаточно медленный.
Скорость модели ~150 Mbit/s на ядро. (Байкал Т — 2 ядра.)
Шифрование с применением векторного сопроцессора MSA
- Шифруется 4 блока по 64 бит.
- Время шифрования 4 блоков по 64 бит — 720 ns
- Скорость модели ~350Mbit/s на ядро. (Байкал Т — 2 ядра.)
- Работает для данных без зацепления (ECB, CTR)
Прим. Есть некоторые сложности с использованием MSA в ядре линукс т. к. текущая реализация предполагает, что использование MSA возможно только для некоторых процессов пользовательского уровня
- Решения
- полностью отключать поддержку MSA+FPU и использовать MSA только для шифрования
- включить поддержку для всех процессов и всегда сохранять контекст MSA
Шифрование на модулярном сопроцессоре
Иллюстрация ниже показывает сильную зависимость скорости шифрования от размера пакета. т. к. в сетевом трафике много пакетов небольшого размера (64байт) ,то использование только модулярного сопроцессора не даёт хороших результатов.
Тестирование туннеля
- Iperf режим: TCP/IP
- IPsec ESP (MTU=1500)
Модельный пример для проверки концепта смешанного алгоритма шифрования с зависимостью от размера пакета.
Частота CPU 1.2GHz
ECB
- Пакет менее 128байт шифруется на CPU+MSA
- Пакеты больше 128байт шифруются модулярным сопроцессором:
- поток 231 Мбит/с
- дуплекс 159+152 Мбит/с
- Разнесение прерываний по ядрам даёт значительный прирост:
- поток 282 Мбит/с
- дуплекс 235+184 Мбит /с
- Смесь 7*66+4*518+1*1450 дуплекс 109+109 Мбит/с
CTR
- Пакет менее 128 байт шифруется на CPU+MSA
- Пакеты больше 128 байт шифруются модулярным сопроцессором (счётчик готовится на CPU модулярный сопроцессор шифрует в режиме ECB):
- поток 200 Мбит/с
- дуплекс 115+101 Мбит/с
- Разнесение прерываний по ядрам с отключённым модулярным сопроцессором:
- поток 177 Мбит/с
- дуплекс 166+126 Мбит/с
- Смесь 7*66+4*518+1*1450 дуплекс 87+87 Мбит/с
CBC + Imito
- Пакет менее 128 байт шифруется на CPU
- Пакеты больше 128 байт шифруются модулярным сопроцессором:
- поток 224 Мбит/с
- дуплекс 181+108 Мбит/с
- Разнесение прерываний по ядрам даёт значительный прирост:
- поток 281 Мбит/с
- дуплекс 216+188 Мбит/с
- Смесь 7*66+4*518+1*1450 дуплекс 92+92 Мбит/с
Примечания и ссылки
Plays:286 Comments:0