ПРОТОКОЛ SIGNAL
Актуальность
Преимущества протокола
Фундамент работы алгоритма
Функция KDF(Key Derivation Function)
Алгоритм работы протокола
Надежность протокола
СПАСИБО ЗА ВНИМАНИЕ!)
472.78K

ПРОТОКОЛ SIGNAL

1. ПРОТОКОЛ SIGNAL

Выполил студент гр. КИ22-02/1б
Пантилеев Артём Владимирович

2. Актуальность

• Защищает переписку более 2 миллиардов пользователей по всему миру.
• Лежит в основе популярных мессенджеров: WhatsApp, Signal, Facebook
Messenger (режим секретных бесед), Skype (Private Conversations).
• Признан "золотым стандартом" сквозного шифрования.
• Прошел множество независимых криптографических аудитов.

3. Преимущества протокола

• Каждое отдельное сообщение шифруется уникальным ключом.
• Система обладает свойством самовосстановления после возможной компрометации.
• Отсутствие единой точки отказа - нет центрального сервера ключей, который можно
атаковать.
• Полная открытость исходного кода и алгоритмов для независимой проверки.
• Многократные успешные независимые криптографические аудиты.

4. Фундамент работы алгоритма

• Используемая кривая: Curve25519
Уравнение: y² = x³ + 486662x² + x mod 2²⁵⁵ - 19
Базовая точка G(x, y): фиксированная точка на кривой
Приватный ключ: a = случайное число(256_бит)
Публичный ключ: A = a × G
• Метод Double Ratchet
Double Ratchet — это механизм, который периодически обновляет ключи с помощью новых
• обменов Диффи-Хеллмана. Срабатывает при получении нового ключи.
Шаг 1: Боб генерирует новые ключи
Шаг 1: Алиса получает новый ключ Боба из сообщения
B_priv_new, B_pub_new
Шаг 2: Алиса вычисляет тот же секрет
Шаг 2: Боб вычисляет секрет
secret_alice = ECDH(A_priv_old, B_pub_new) # Алиса_стары
й × Боб_новый
secret_bob = ECDH(B_priv_new, A_pub_old) # Боб_новый × Алиса_старый
Шаг 3: Боб создает новые ключи
new_RK, new_CK = KDF(old_RK, secret_bob)
secret_alice == secret_bob
Шаг 3: Алиса создает те же новые ключи
new_RK, new_CK = KDF(old_RK, secret_alice)

5. Функция KDF(Key Derivation Function)

Фаза 1:
PRK = HMAC-SHA256(K, M)
! HMAC(K, m) = H((K ⊕ opad) || H((K ⊕ ipad) || m)),
K — ключ, m — сообщение, H — хеш-функция (в Signal используется SHA-256), ⊕ — операция XOR, || —
конкатенация
opad, ipad — константы
Фаза 2:
OKM = HKDF-Expand(PRK, info, L)
! Для i от 1 до N:
T(i) = HMAC(PRK, T(i-1) || info || i) T = T || T(i), info – контекстная информация о назначении ключа, i –номер
итерации
OKM = первые L байт из T

6. Алгоритм работы протокола

• Подготовка. Создание ключей
IK = ik_priv, ik_pub
# 0 < ik_priv < n, n = 2²⁵² + 27742317777372353535851937790883648493 (max
элементов в группе), ik_pub = ik_priv × G
SPK = spk_priv, spk_pub
OPK = opk_priv, opk_pub
• Первое рукопожатие (X3DH)
secret = KDF(
ECDH(IK_A_priv, SPK_B_pub) ||
CDH(EK_priv, IK_B_pub) ||
ECDH(EK_priv, SPK_B_pub) ||
ECDH(EK_priv, OPK_B_pub)), EK_priv - одноразовый ключ Алисы
• Обмен сообщениями (Double Ratchet)
Почему технически алгоритм криптостойкий?
1. Легко посчитать: A = a × G (зная a найти A)
2. Невозможно обратить: зная A найти a (задача дискретного логарифма)
3. Легко посчитать: KDF(input), но невозможно обратить: зная output найти input

7. Надежность протокола

Forward Secrecy: Взлом одного ключа ≠ чтение всех сообщений
Post-Compromise Security: Безопасность после возможного взлома
Открытость: Алгоритмы проверены независимыми экспертами
Эффективность: Работает на мобильных устройствах

8. СПАСИБО ЗА ВНИМАНИЕ!)

English     Русский Правила