Elliptic Curve и ее цифровая подпись
Криптография на эллиптических кривых (ECC) используется для шифрования и дешифрования информации, которая передается через Интернет. Это метод на основе ключей, который использует пару открытых и закрытых ключей для шифрования и дешифрования. ECC относится к криптографии с открытым ключом, где один ключ (закрытый ключ) используется для шифрования информации, а другой ключ (открытый ключ) используется для расшифровки информации. ECC не только обеспечивает целостность данных, но также обеспечивает неотказуемость с помощью цифровой подписи на эллиптических кривых (ECDSA). ECDSA — это криптографически безопасная схема цифровой подписи, которая использует Secure Hash (SHA) для вычисления хэша информации и дальнейшего выполнения цифровой подписи. В основном в этой статье речь пойдет о ECDSA и о том, как он используется в технологии блокчейн для криптовалют.
ECDSA выполняет ту же функцию, что и любая другая цифровая подпись, но делает это более грамотно. Потому что ECDSA использует ключи меньшего размера для достижения того же уровня безопасности, что и любой другой метод цифровой подписи. Подписи и ключи ECDSA короче, чем RSA (Rivest Shamir Adleman) и более сложны для криптоанализа. 256-битная ECDSA может обеспечить тот же уровень безопасности, что и 3072-битная подпись RSA. ECDSA используется для создания сертификатов ECDSA, которые представляют собой электронные документы, используемые для проверки личности владельца сертификата. Сертификаты содержат информацию о ключе, который использовался для создания сертификата, а также информацию о владельце сертификата и подписи издателя сертификата, который является проверенным доверенным лицом. Этот доверенный эмитент обычно является центром сертификации, который также обладает подписанным сертификатом, который можно отследить до исходного центра сертификации, выпустившего сертификат, по цепочке доверия. В 1999 году ECDSA был принят в качестве стандарта ANSI, а в следующем 2000 году он также был принят NIST и IEEE.
ECDSA не обеспечивает шифрование и не препятствует постороннему доступу к вашим данным или их просмотру, но гарантирует, что ваши данные не будут изменены.
Работа ECDSA
Как и ECC, ECDSA является формой криптографии с открытым ключом и использует циклические группы эллиптических кривых над конечными полями и сложность дискретной логарифмической задачи на эллиптических кривых. Понимая ECDSA, вы постоянно будете сталкиваться с графиками, кривыми и точками. В простом принципе у вас есть математическое уравнение для рисования кривой на графике, а затем вы выбираете случайную точку на этой кривой в качестве исходной точки. После этого вы сгенерируете случайное число и выполните сложное математическое уравнение, используя случайные числа и исходную точку, и вы получите вторую точку на кривой, которая будет вашим закрытым ключом.
ECDSA в основном работает с хэшем сообщения, а не с самим сообщением. Выбор хеш-функции зависит от нас, и рекомендуется выбирать хеш-функцию с криптографической защитой. Хэш сообщения должен быть усечен в соответствии с параметрами, выбранными ECDSA, чтобы битовая длина хеша была такой же, как биты n (порядок подгруппы). ECDSA основан на следующем уравнении:
y² = (x³ + Ax + b) по модулю P
Закрытый ключ ( Pr ) будет случайным числом в зависимости от размера цифровой подписи, которую вы хотите в битах. Обычно используется 160-битный ECDSA. Этот закрытый ключ будет умножен на опорную точку или исходную точку G , которую вы выбрали (упомянутую выше), чтобы мы
Pu = Pr * G , где G — точка отсчета в параметрах кривой.
Цифровая подпись эллиптической кривой представлена двумя значениями , R и S. Чтобы сгенерировать эти два значения, которые вам нужны, сначала вам нужно случайное значение K и вычислить P = K * G , используя умножение точек. Это значение точки P на кривой будет иметь координаты (X, Y) . Значение точки P на координате X будет вашим R .
Чтобы вычислить S , вам нужно вычислить безопасный хэш вашего сообщения, и результат будет передан как Z. Используя приведенное ниже уравнение, вы можете рассчитать S :
S = K ^ -1 (z + Pr * R) по модулю P
Где K — случайное число, Z — хэш сообщения знака, Pr — закрытый ключ, а R — координата x.
Для проверки подписи вам потребуется открытый ключ и параметры кривой со следующим уравнением:
Чтобы подпись была действительной, координата X точки P должна быть равна R.
Давайте углубимся в приведенное выше уравнение и посмотрим, как это уравнение может привести нас к проверке.
У нас есть P = S^-1 *z*G + S^-1 * R * Pu ……………… Уравнение 1
Подставляя значения в уравнение 1 , получаем
P = S^-1 *z*G + S^-1 * R * Pr * G
Координаты X P должны совпадать с R , и мы знаем, что R является координатой K * G , поэтому мы имеем
К * G = S ^ -1 (z + Pr * R) * G
Итак, когда мы инвертируем K и S в приведенном выше уравнении, мы получим то же уравнение, которое использовалось для подписи сообщения.
S = k ^ -1 (z + Pr * R) по модулю P
Это уравнение использовалось для создания подписи.
Чтобы узнать больше о ECDSA, вы можете посмотреть это видео .
ECDSA в технологии блокчейн
Как мы знаем, технология блокчейн является основой криптовалют. Подписи являются жизненно важной частью децентрализации и блокчейна. Это не ограничивается транзакциями, но необходимо в децентрализованных биржах, взаимодействующих и контрактах с несколькими подписями. Цифровые валюты, такие как Биткойн и Эфириум, используют алгоритм ECDSA, чтобы гарантировать, что только законный владелец может тратить средства. И Биткойн, и Эфириум используют стандартную эллиптическую кривую SECP256K1 с SHA256. В таблице 1 ниже перечислены кривые, используемые другими цифровыми валютами в технологии блокчейн. Дополнительную информацию о кривых, используемых другими цифровыми валютами, можно найти здесь .
Хотя некоторые исследования, проведенные криптографическими исследователями, показали, что ECDSA работает медленнее, чем RSA, на более низком уровне безопасности, что означает, что при меньшей длине ключа RSA превосходит ECDSA с точки зрения проверки и подписи подписи. Напротив, ECDSA превосходит RSA при большей длине ключа, а использование большей длины ключа для усиления безопасности потребует времени в будущем. Есть также несколько модифицированных ECDSA для повышения их быстродействия, но в данный момент это не является предметом обсуждения.
Однако в настоящее время ECDSA используется различными всемирно признанными компаниями и технологиями. Биткойн, веб-сайты, сертификаты, Apple (iMessage), TextSecure и CrytoCat занимают первое место в списке компаний и технологий, использующих ECDSA. Сложность ECDSA и его производительность при более высоких длинах ключей сделали его выбором профессионалов в области безопасности.