Математика и разработка быстрых TLS-хендшейков / Александр Крижановский (Tempesta Technologies)

preview_player
Показать описание
Приглашаем на конференцию HighLoad++ 2024, которая пройдет 2 и 3 декабря в Москве!
--------
HighLoad++ Весна 2021
Крупнейшая профессиональная конференция для разработчиков высоконагруженных систем
17 и 18 мая 2021. Москва, Крокус-Экспо

Тезисы и презентация:

Tempesta TLS — это реализация TLS, работающая в контексте ядра Linux. Т.к. основные алгоритмы симметричного шифрования уже есть в составе ядра, то мы фокусируемся на асимметричных алгоритмах, преимущественно эллиптических кривых.
...

Рекомендации по теме
Комментарии
Автор

Не флейма ради, а сведений для напишу, как это делается в Rust:

pub fn add_with_carry(a1: u64, a2: u64, b1: u64, b2: u64) -> (u64, u64) {
let (result1, overflow) = a1.overflowing_add(a2);
let result2 = as u64);
(result1, result2)
}

компилируется в

example::add_with_carry:
mov rax, rdi
add rax, rsi
adc rdx, rcx
ret

И в C/C++ можно использовать комплияторные интринсики, можно даже под ifdef (не знаю только, как с этим в ядре).

phyllobolus