Хэш-функции являются кандидатами на роль случайных оракулов. SHA-3 и BLAKE2 близки к тому, чтобы быть одним, но не SHA-512, поскольку он имеет атаку расширения длины, которую мы не ожидаем от RO.
Различные хеш-функции уже производят разные выходные данные, даже SHA-512 и его усеченная версия SHA-512/256, поскольку их начальные значения различны.
На самом деле вам не нужны две хеш-функции, чтобы достичь того, чего вы хотите.Вы можете использовать одну хэш-функцию для разделения доменов с начальными префиксами. Используйте BLAKE2 или SHAKE256.
Хэширование в эллиптические кривые, проект ietf дает хорошее определение разделения доменов;
Часто анализируются криптографические протоколы, использующие случайные оракулы.
в предположении, что случайные оракулы отвечают только на сгенерированные запросы
по этому протоколу. На практике это предположение не выполняется, если два
протоколы запрашивают один и тот же случайный оракул. Конкретно рассмотреть
протоколы $P1$ и $P2$ который запрашивает случайный оракул $R$: если $P1$ и $P2$
оба запроса $R$ по тому же значению $х$, анализ безопасности одного или
оба протокола могут быть признаны недействительными.
Общий подход к решению этой проблемы называется доменным
разделение, которое позволяет одному случайному оракулу имитировать несколько,
независимые оракулы. Это достигается за счет обеспечения того, чтобы каждый смоделированный
Oracle видит запросы, которые отличаются от тех, которые видят все остальные
имитации оракулов. Например, для имитации двух оракулов $1$ и $2$
дан один оракул $R$, можно определить
$$R1(x):= R(\text{"R1"} \mathbin\| x)$$ $$R2(х) :=
R(\text{"R2"} \mathbin\| х)$$
В этом примере $\текст{"R1"}$ и $\текст{"R2"}$ называются доменными
теги разделения; они гарантируют, что запросы к $1$ и $2$ не можем
приводят к идентичным запросам $R$. Таким образом, безопасно лечить $1$ и
$2$ как независимые оракулы
- Можно ли связать получившиеся два открытых ключа с тем, чтобы они оба принадлежали Алисе?
Нет, если хэш-функция безопасна, как SHA3. БЛЕЙК2/3, ВЗЯТЬ. Использовать;
- $d_A = \operatorname{BLAKE2}(\texttt{Ключ A}\mathbin\|s)$
- $d_{A'} = \operatorname{BLAKE2}(\texttt{ключ A простое}\mathbin\|s)$
- Можно ли каким-то образом использовать полученные два открытых ключа для извлечения полученных секретных ключей?
Curve25519 — это безопасная кривая для классического дискретного журнала (DLog). Он имеет около 126-битную защиту от классический DLog.
Обратите внимание, что с Криптографический квантовый компьютер (CQC) построенный для алгоритма финансирования периода Шора, дискретный логарифм эллиптической кривой не будет безопасным. Однако хеш-функции размером более 384 вывода будут защищены от Гроверс или же Брассард и др.метод.
Таким образом, секрет защищен от классического и CQC, однако закрытые ключи не защищены от CQC.
Обратите внимание, что вы также получаете выгоду от Двойная диверсификация связать два открытых ключа для достижения некоторой анонимности, а позже вы сможете доказать, что они принадлежат вам, не раскрывая свой секрет.