Рейтинг:1

В чем разница между «функцией эллиптической кривой» и «хеш-функциями», такими как SHA256?

флаг hk

Я читаю о биткойнах, и меня немного смущают «функция эллиптической кривой» и «SHA256». Имеют ли они одинаковые свойства? Можно ли использовать оба для создания пар закрытого и открытого ключей?

флаг et
SHA256 — это хэш-функция — https://en.wikipedia.org/wiki/Hash_function, а ECC смотрите здесь — https://en.wikipedia.org/wiki/Elliptic-curve_cryptography
kelalaka avatar
флаг in
Ваше редактирование - совершенно новый вопрос, должен быть откат.Изменение хода вопроса после ответа не является приемлемым поведением в [so]. Что такое ввод SHA-256? Существует [проблема с коротким пространством ввода] (https://crypto.stackexchange.com/a/81652/18298) в хеш-функциях. Кроме того, [нет умножения на ECC] (https://crypto.stackexchange.com/q/88214/18298), только скалярное умножение.
kelalaka avatar
флаг in
Кроме того, если я правильно понял, вы не можете произвольно сопоставлять входные данные с точкой на кривой. ECC опирается на [проблему дискретного логарифма] (https://crypto.stackexchange.com/q/76230/18298), поэтому мы сначала выбираем равномерное случайное целое число, а затем сопоставляем его с точкой на кривой с помощью скалярного умножения.
Рейтинг:10
флаг in

В чем разница между «функцией эллиптической кривой» и «хеш-функциями», такими как SHA256?

Реальный контекст не дан, однако мы можем понять его как

  • Функция SHA-256:

    Да, это функция, в довольно точном смысле: a криптографическая хэш-функция (устойчивый к коллизиям хэш);

    $$\operatorname{SHA256}:\{0,1\}^* \to \{0,1\}^{256}$$

    • В одну сторону: должно быть практически невозможно инвертировать данный дайджест хэша (или полиномиально ограниченные противники не могут его вернуть).
    • Детерминированный: одни и те же входные данные должны обеспечивать одинаковые выходные данные.
    • Случайный: мы не должны знать хэш ввода до его хеширования. Мы можем прочитать это, так как хеш-функции являются кандидатами для случайных оракулов (RO), а SHA256 - нет, поскольку он имеет атаку расширения длины, SHA3 и Blake2 более близки к RO.
    • имеет Предварительное сопротивление изображения: рядом в одну сторону; задано хеш-значение $ч$ для противников с полиномиальным временем должно быть невозможно найти ввод $м$ такой, что $\operatorname{SHA256}(м) = ч$.
    • Второе сопротивление прообразу: дано сообщение $м$ и это хэш-значение $ч$, найти другое сообщение $м'$ такой, что $\operatorname{SHA256}(m) = h = \operatorname{SHA256}(m')$.
    • и Сопротивление столкновениям; найти различные входные сообщения $m_1 \neq m_2$ такой, что $\operatorname{SHA256}(m_1) = \operatorname{SHA256}(m_2)$.

    Биткойн использует двойной SHA256 (SHA256d) и SHA256d защищен от атак расширения длины.

  • Функция эллиптической кривой:

    Странное название, это L-функция эллиптических кривых что ли? Поскольку вопрос касается Биткойна, скорее это должен быть набор функций, которые эллиптические кривые предоставляют больше, чем следующие функции:

    • Добавление как групповая операция (сложение, отрицание, инверсия, коммутация и ассоциация).

    • Скалярное умножение: задана базовая точка $G$ и добавь это $t$ раз:

      $$[t]G : = \underbrace{G + G + \cdots + G}_{t-times} $$

    • Генерация открытого ключа: выбрать случайный $к$ и рассчитать $[k]G$.

    • ЭЦДСА генерация подписи.

    • ЭЦДСА проверка подписи.

Теперь ответы на другой ваш вопрос ясны.

Имеют ли они одинаковые свойства?

Нет! Даже одно является функцией, другое представляет собой набор функций.

Можно ли использовать оба для создания пар закрытого и открытого ключей?

Нет.

Однако можно использовать SHA256 для переваривания источника энтропии для выбора случайного $к$ для их закрытого ключа и найти их открытый ключ $К = [к]G$ с помощью скалярного умножения эллиптических кривых.

И биткойн-адрес рассчитывается как;

$$\text{Биткойн-адрес} = \operatorname{RIPEMD160(SHA256(}K))$$ как 20-байтовые адреса (РИПЭМД).


Специальное примечание: Некоторые книги/веб-сайты по блокчейну используют умножение EC для скалярного умножения EC, например, книга Антонолопуса «Освоение биткойнов», стр. 68. Это сбивает многих с толку, поскольку они начинают думать, что $P\cdot Q$ существуют. Нет! EC образует аддитивные абелевы группы, а с помощью скалярного умножения (обычный способ определения для аддитивных групп) они образуют Z-модуль, больше ничего.

Cort Ammon avatar
флаг gb
+1. Я бы сказал, что это похоже на сравнение яблок и орангутангов, но вы приложили дополнительные усилия, чтобы описать свойства яблок и свойства орангутангов таким образом, чтобы помочь ОП исследовать тему и, возможно, сформировать более точный вопрос в будущее. Отличная форма обмена стеками!
kelalaka avatar
флаг in
@CortAmmon OP не указал источник, однако я видел, что многие сайты и книги вызывают путаницу. См. недавно добавленное специальное примечание с примером.
Maarten Bodewes avatar
флаг in
Думаю, сейчас мы исключим подписи на основе хэшей. Если вы посчитаете их, вы также можете выполнить аутентификацию сообщений, получение ключа и генерацию случайных чисел «с помощью хеш-функции».
kelalaka avatar
флаг in
@MaartenBodewes Конечно, они существуют. Я хочу оставить ответ в контексте биткойнов. И хэш-функции используются повсеместно, некоторые из них мы перечислили [здесь] (https://crypto.stackexchange.com/q/64588/18298). Знаете ли вы, что используется в биткойнах?
kelalaka avatar
флаг in
Блокчейны @MaartenBodewes теперь являются широкой темой, и я мог бы пропустить ту, которая использует ...
kelalaka avatar
флаг in
@MaartenBodewes есть ли конкретная причина для удаления из HNQ? Видел сейчас, просматривая правки ОП.
Рейтинг:1
флаг cn

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

Но они не имеют такого же статуса в криптографии. Функция в «функции эллиптической кривой» - это способ описать эллиптическую кривую. Если функция $f$, точки кривой $(х, е(х))$.

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

Чтобы сгенерировать закрытый ключ, мы равномерно случайным образом выбираем целое число. $n$ из $256$ биты.

Чтобы сгенерировать открытый ключ, мы умножаем генератор $G$ (данный как общедоступный параметр кривой) $n$ (используя процедуру «квадрат-и-умножение»). Это дает нам точку кривой $P$. Иногда это $P$ считается хэшем закрытого ключа. Но это гораздо больше, чем просто хеш, это открытый ключ. Он проверяет гораздо больше свойств, чем обычные хеш-функции, такие как SHA-256.

Если вы хотите получить более подробную информацию, вы можете посмотреть: https://en.wikipedia.org/wiki/Elliptic_curve_digital_signature_algorithm

флаг hk
Если SHA256 является необратимым или устойчивым к прообразу. Почему биткойн просто не использует SHA256 для генерации открытого ключа из случайно сгенерированного закрытого ключа вместо умножения на эллиптической кривой. Я знаю, что ввод SHA256 может быть любым, а вывод может быть от 0 до 2 ^ 256. Может ли кто-нибудь объяснить мне умножение или функцию эллиптической кривой, что бы это ни было в смысле ввода и вывода, как SHA256. Потому что я не могу понять это из Википедии. Я пробовал это несколько раз.
Ievgeni avatar
флаг cn
Сопротивления прообразу недостаточно. Нужно подписать, сделать это гораздо сложнее, простой хеш-функции недостаточно. Эллиптическая кривая — это не базовая математика, вы можете попробовать прочитать это: cryptobook.nakov.com/asymmetric-key-ciphers/

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.