ISSN: 2319-7242 DOI: 10.18535/ijecs/v10i10.4630

ECDSA: Набор правил виртуальной подписи для более совершенного Интернета

Доктор Канкам Сива Рама Прасад, магистр технических наук (компьютерные науки), доктор философии, Институт технологий и наук Пейс, Онголе, Андхра-Прадеш.

Аннотация

Цифровая Валюта - это электронный вид денег. В наши дни всё превращается в процесс цифровизации. Она обладает всеми свойствами, как и наличные деньги, а также позволяет мгновенные операции, которые могут быть надежно выполнены по всему миру при подключении к поддерживаемым устройствам и сетям. В этой статье мы представили хэш-алгоритм SHA3-512 и алгоритм ECDSA для генерации цифровой подписи. Криптография на эллиптических кривых (ECC) является одной из наиболее перспективных технологий в этой области. TLS с поддержкой ECC работает быстрее и более масштабируемо на наших серверах и обеспечивает одинаковую или лучшую безопасность, чем криптография, используемая по умолчанию в Интернете. Один из алгоритмов на эллиптических кривых, алгоритм цифровой подписи на эллиптических кривых (ECDSA), может быть использован для повышения производительности в Интернете. CloudFlare теперь поддерживает пользовательские сертификаты ECDSA для наших клиентов, и это верно для всех, кто использует Интернет.

Ключевые слова: криптовалюты, хеширование, SHA3-512, ECDSA.

Введение

Цифровая Валюта - это электронный вид денег. В наши дни всё превращается в процесс цифровизации. Она обладает всеми свойствами, как и наличные деньги, а также позволяет мгновенные операции, которые могут быть надежно выполнены по всему миру при подключении к поддерживаемым устройствам и сетям. Существуют различные типы цифровых валют, такие как Криптовалюты, виртуальные валюты, цифровые валюты банковских учреждений и e-Cash и т.д. Один факт заключается в том, что все криптовалюты являются цифровыми валютами, но не все цифровые валюты являются крипто. Цифровые деньги позволяют осуществлять глобальный обмен правами собственности, а также краткосрочный маркетинг и могут быть использованы для покупки товаров и услуг. Таким образом, цифровые валюты обладают различными преимуществами, такими как более низкая стоимость, платежи между участвующими сторонами без необходимости посредников, электронные транзакции на основе цифровых денег обладают преимуществами, такими как защита от мошенничества, более простые международные платежи и т.д. В основном существуют два типа цифровой валюты: Виртуальная Валюта и Криптовалюта. Виртуальная Валюта - это цифровая валюта, которая используется внутри определенной запланированной сети. Криптовалюта - это цифровая валюта, которая имеет реальную стоимость, как Биткоин. Этот тип современной цифровой денежной системы основан на математических вычислениях, при этом токены передаются электронным способом через онлайн-распределенные сетевые системы. Криптовалюта не связана с экономикой какой-либо страны.

Криптовалюта

Криптовалюта упрощает проведение международных операций. Криптовалюта - это виртуальная иностранная валюта, защищенная с помощью криптографии и основанная на технологии блокчейн. Блокчейн - это цифровой реестр, который организует данные в модули или группы, которые называются блоками, где каждый блок содержит набор данных и имеет свой собственный точный объем хранения, и когда он заполняется, он присоединяется к предыдущему блоку, создавая цепочку данных, называемую «блокчейн». Все новые данные, добавленные после вновь вставленного блоки, компилируются в новый блок и добавляются к цепочке. Технологии блокчейн, используемые большинством криптовалют, распределены по множеству серверов, что делает децентрализацию криптовалют отличительным фактором, который отделяет криптовалюту от других классов активов. Криптовалюта обладает прозрачностью, потому что благодаря этой технологии блокчейн никто не ограничен в возможности просмотра данных транзакций в любое время. Биткоин доступен по всему миру круглосуточно, что делает его гораздо более доступным. Большую часть времени инвесторы могут получить доступ к криптовалютам с мобильных телефонов без проблем. База данных блокчейна состоит из серии сложно решаемых криптографических головоломок. Переводы криптовалют более надежны, чем обычные электронные транзакции. Криптовалюты защищены от инфляции в большинстве случаев. Существует так много недостатков у криптовалют. Такие как незаконная деятельность, волатильность, потеря данных, взломы и т.д. Следующие являются крупнейшими криптовалютами: Биткоин (BTC) Сатоши Накамото, псевдоним, созданный в 2009 году, является крупнейшей криптовалютой с рыночной капитализацией более 1 триллиона долларов, по данным CoinMarketCap. В настоящее время в обращении по всему миру находится более 18,5 миллионов биткоинов. Ежедневно добывается приблизительно 900 новых биткоинов. Эфириум (ETH) был создан в 2015 году с основной целью создания децентрализованных приложений. Название токена, используемого в Эфириуме, - Ether. Согласно данным, предоставленным CoinMarketCap, его рыночная капитализация составляет более 300 миллионов долларов. Биткоин Кэш (BCH) был представлен в 2017 году для улучшения возможностей биткоина. Сегодня это одна из самых известных криптовалют. Он имеет размер блока 8 МБ по сравнению с размером блока 1 МБ у Биткоина и, следовательно, является более быстрой альтернативой Биткоину. Его рыночная капитализация составляет около 16 миллионов долларов. Лайткоин (LTC) - Чарли Ли создал Лайткоин в 2011 году. Он был представлен для обеспечения более быстрых транзакций, снижения комиссий и большего количества майнеров. Некоторые другие известные криптовалюты: Binance Coin, Tether (USDT), Dogecoin (DOGE), Uniswap (UNI). С ростом интереса к криптовалютам за последние несколько лет наблюдался быстрый рост числа новых криптовалют, выходящих на криптопространство, и, по мнению многих криптоисследователей, этот рост, как ожидается, продолжится. Криптовалютные биржи - это те, которые облегчают торговлю криптовалютами и формируют подмножество обменов виртуальной иностранной валюты. Они действуют как интерфейс между транзакциями между криптовалютами и другими цифровыми валютами. Криптовалютные биржи бывают централизованными или децентрализованными. Централизованные криптовалютные биржи действуют как посредники между покупателями и продавцами. Концепция аналогична концепции фондовых бирж. Поскольку они управляются и принадлежат компании, они более надежны, и почти все крипто-сделки происходят на централизованных биржах. Например: Coinbase, GDAX, Kraken и Gemini. Децентрализованные криптовалютные биржи не имеют посредников и позволяют осуществлять двусторонние транзакции. Они более стабильны, чем централизованные криптовалютные биржи, которые уязвимы для взломов, но более рискованны из-за отсутствия какого-либо посредника. Например: AirSwap, io, Barterdex и Blocknet.

Электронная монета представляет собой последовательность цифровых подписей. Эти цифровые подписи передают практический контроль и в большинстве случаев право собственности на деньги, хранящиеся в любом данном скрипте, и могут быть использованы в качестве записи о контроле за хранением для отслеживания передачи контроля назад по истории реестра. Реестр Биткоина - это запись всех действительных транзакций, которые когда-либо передавались в сеть. Реестр формируется в виде направленного ациклического графа (DAG), где каждая транзакция является узлом. Граф начинается с Coinbase транзакции первого когда-либо найденного блока и через цепочки цифровых подписей отображает полную историю законных действий по обмену, позволяя проследить все биткоины назад к их созданию. На Рис.1 ниже показано, как Биткоин передается от одного к другому путем применения хэш-функции с алгоритмом генерации подписи. В этой статье мы использовали алгоритм sha3:512 для получения хэш-значения.

Передача Биткоина от одного к другому

Рисунок 1: Передача Биткоина от одного к другому

Алгоритмы Генерации Хэш-Значения

Имея четкое представление о важности хэширования в блокчейне, важно знать о алгоритмах хэширования. Стандартная функция хэширования или SHA является наиболее распространенной хэш-функцией, рекомендуемой Национальным институтом стандартов и технологий (NIST). Великолепные преемники SHA, включая SHA-1, SHA-2 и SHA-3, получили широкое признание за свои возможности. Давайте рассмотрим их подробнее. SHA-1 принимает входные данные почти любой длины, а затем генерирует 160-битное дайджест-сообщение, обрабатывая сообщения блоками размером 512 бит. Если длина сообщения не кратна 512 битам, то алгоритм SHA должен дополнить сообщение данными, чтобы достичь следующего ближайшего кратного 512 битам. SHA-2 в настоящее время является одним из любимых алгоритмов в криптографическом сообществе, несмотря на определенные недостатки, как в алгоритме SHA-1. После его создания в 2001 году SHA-2 претерпел значительные изменения с течением времени с появлением 4 вариантов. 4 различных варианта включают SHA-256, SHA-224, SHA-512 и SHA-384, причем SHA-256 является широко принятым криптографическим алгоритмом. SHA256 может создавать 256-битный дайджест сообщения, используя размер блока 512 бит, в то время как SHA-224 использует усеченную версию SHA-256 для создания 224-битного дайджеста сообщения, используя размер блока 512 бит. SHA-512 может создавать 512-битный дайджест сообщения, используя размер блока 1024 бита, а SHA-384 использует усеченную версию SHA-512. SHA-384 может генерировать 384-битный дайджест сообщения, используя размер блока 1024 бита. Алгоритмы SHA-3 - это новейшие дополнения в стандартных алгоритмах хэширования, показывающие важность хэширования в блокчейне. SHA-3 появился в 2015 году и следует тем же принципам, что и алгоритм MD5. Он имеет возможность выступать в качестве замены для SHA-2, а также предлагает аналогичные варианты и длины хэшей. Единственное отличие SHA-3 заключается в том, что он предлагает возможности лучшей безопасности. Цифровая подпись - это не просто сообщение, подписанное с использованием данной пары ключей, а связь с идентичностью. Законодательство Европейского Союза о цифровых подписях гласит, что подписи соответствуют «данным в электронной форме, которые прикреплены или логически связаны с другими электронными данными и которые служат методом аутентификации». Скрипт Биткоин позволяет пользователям блокировать/разблокировать свои биткоины различными способами. На приведенной выше диаграмме мы указали строку "This is Siva Rama Prasad", используя 64-битную хэш-функцию "sha3-512", т.е. "Secure Hash Algorithm 3 of 512 bit", которая производит следующее хэш-значение:

13FAA42E86B4183960762250951FE5274EE769

9E33A61BF04489FE216A3706C54724C64F783

FB49715F096799C3BFA3FE2B0F176F0DDA27

2872F4B53CF6EC837

Путем передачи результирующего хэш-значения в Алгоритм Цифровой Подписи на Эллиптических Кривых мы получим подпись в виде следующего вывода; этот процесс повторяется для каждого нового перевода.

Алгоритм Цифровой Подписи на Эллиптических Кривых (ECDSA)

Криптовалюта облегчает проведение международных операций. Криптовалюта - это виртуальная валюта, защищенная с помощью криптографии и основанная на технологии блокчейн. Блокчейн - это цифровой реестр, который организует данные в модули или предприятия, которые называются блоками, где каждый блок содержит группу данных и имеет свой собственный точный объем хранения, и когда он заполнен, он присоединяется к предыдущему блоку, создавая цепочку данных, называемую «блокчейн». Все новые данные, добавленные после вновь вставленного блока, компилируются в новый блок и добавляются к цепочке. Технологии блокчейн, используемые большинством криптовалют, распределены по множеству серверов, что делает криптовалюту децентрализованной. Этот алгоритм является аналогом алгоритма DSA на эллиптических кривых. Он был впервые предложен в 1992 году Скоттом Ванстоном. В настоящее время Аккредитованный комитет по стандартам X9 Inc. (X9) объявил о публикации новой стандартной версии X9.142, Алгоритм Цифровой Подписи на Эллиптических Кривых (ECDSA). Этот стандарт определяет механизм для облегчения безопасной аутентификации и неотрекаемости данных в финансовых и других онлайн-транзакциях с использованием ECDSA. X9.142 определяет алгоритм цифровой подписи, ECDSA. Подписи на эллиптических кривых, включая ECDSA, являются самыми быстрыми и самыми маленькими доступными стабильными цифровыми подписями, они теперь широко используются, часто заменяя устаревшие подписи RSA. Некоторые из самых известных веб-сайтов в настоящее время защищены с помощью ECDSA. Веб-сервер генерирует подпись ECDSA в безопасном рукопожатии для каждого посетителя сайта. Веб-браузеры проверяют подпись ECDSA, отображая эту проверку пользователю с помощью надежного значка замка рядом с веб-адресом. Блокчейн-финансовая транзакция также может использовать подпись ECDSA для полного привязывания транзакции в реестре. Стандарт X9.142 ECDSA предоставляет методы и стандарты для генерации закрытых и открытых ключей, которые требуются для ECDSA, и процедурные элементы управления, необходимые для безопасного использования алгоритма с этими ключами. Стандарт также предоставляет методы и стандарты для генерации параметров области эллиптической кривой, которые требуются для ECDSA, и процедурные элементы управления для безопасного использования алгоритма с этими параметрами области. Он заменяет X9.62-2005, предыдущую спецификацию ECDSA. Как показано на рисунке-2, в этой статье исследуется генерация цифровой подписи с использованием ECDSA и проверка подписи на стороне получателя.

Процесс генерации и проверки цифровой подписи

Рисунок 2: Процесс генерации и проверки цифровой подписи

У Алисы есть закрытый ключ (d~A~) и открытый ключ (Q~A~=d~A~G). Затем она подписывает сообщение (M) следующим образом:

1. Создать хэш сообщения e = HASH (m).

2. Пусть h будет Ln самыми левыми битами e, Ln имеет битовую длину порядка группы N.

3. Создать случайное число k от 1 до N−1.

4. Вычислить точку на кривой как (x1, y1) = k × G.

5. Вычислить r=x1(mod N). Если r=0, вернуться к Шагу 3.

6. Вычислить s=k^−1^ (h + r d ~A~) (mod N). Если s=0, вернуться к Шагу 3.

7. Подпись представляет собой пару (r, s).

Боб будет проверять с помощью следующего алгоритма:

1. Создать хэш сообщения e = HASH(m).

2. Пусть h будет Ln самыми левыми битами e.

3. Вычислить c=s−1(mod N).

4. Вычислить u1=h * c (mod N) and u2=r * c * (mod N)

5. Вычислить точку кривой (x1, y1) = u1×G+u2×QA. Если (x1, y1) = O, то подпись недействительна.

6. Подпись действительна, если r≡x1 (mod n), в противном случае недействительна.

Реализация алгоритма ECDSA на Python

from ecdsa import SigningKey,NIST192p,NIST224p,NIST256p,NIST384p,NIST521p,SECP256k1

import base64

import sys

import binascii

msg="Hi welcome"

type = 1

cur=NIST192p

if (len(sys.argv)>1):

msg=str(sys.argv[1])

if (len(sys.argv)>2):

type=int(sys.argv[2])

sk = SigningKey.generate(curve=cur)

vk = sk.get_verifying_key()

print("Секретный ключ:\t",binascii.hexlify(sk.to_string()))

print("Открытый ключ:\t",binascii.hexlify(vk.to_string()))

signature = sk.sign(msg.encode())

print("Сообщение:\t",msg)

print("Тип:\t\t",cur.name)

print("=========================")

print("Подпись:\t",base64.b64encode(signature))

print("Подпись:\t",binascii.hexlify(signature).decode())

print("=========================")

print("Подписи совпадают:\t",vk.verify(signature, msg.encode()))

Результаты

Секретный ключ: b'5a15138b8918f694019b979a9ed8b9d777a6a4fea7a2938f'

Открытый ключ: b'cedfa558314934f136e3449a466cb3fc70e1382654e508930454d627b00044dd1bd2f6506371e150fc55775190d8f552'

Сообщение: Hello

Тип: NIST192p

Подпись: b'qWX3N/yYARV46zBn/jR3UfznrI4EFW3/JmAAHP7RR0ubH7MdI8RkRtg2E3nTpxFGH'

Подпись: a965f737fc98011578eb3067fe347751fce7ac8e04156dff2660073fb451d2e6c7ecc748f11911b60d84de74e9c45187

Подписи совпадают: True

Заключение

Криптография на эллиптических кривых - это мощная технология, которая может обеспечить более быструю и стабильную криптографию throughout the Интернете. Пришло время для широкого внедрения ECDSA, позволяя клиентам использовать сертификаты ECDSA на своих сайтах с поддержкой CloudFlare, развернутых в Интернете. Мы делаем первые шаги к этим намерениям.

Ссылки

1. International Journal of Economics & Finance Research & Applications Vol. 2, Issue 2 - 2018 © Eureka Journals 2018. All Rights Reserved. ISSN: 2581-4249 Using "Crypto Currency And Associated Advantages And Disadvantages" Rashmi Priya Sharma* , Arabinda Sharma

2. "An Analysis of Cryptocurrency, Bitcoin, and the Future" Peter D. DeVries Professor of MIS University of Houston -- Downtown One Main Street, FAMIS Department, B428, Houston, TX 77002 United States of America- International Journal of Business Management and Commerce Vol. 1 No. 2; September 2016.

3. S. M. Farooq, S. M. Suhail Hussain and T. S. Ustun, "Elliptic Curve Digital Signature Algorithm (ECDSA) Certificate Based Authentication Scheme for Advanced Metering Infrastructure," 2019 Innovations in Power and Advanced Computing Technologies (i-PACT), 2019, pp. 1-6, doi: 10.1109/i-PACT44901.2019.8959967.

4. International Journal of Computer Applications (0975 -- 8887) Volume 2 -- No.2, May 2010 21 Implementation of Elliptic Curve Digital Signature Algorithm Aqeel Khalique Kuldip Singh Sandeep Sood Department of Electronics & Computer Engineering, Indian Institute of Technology Roorkee Roorkee, India

5. "Efficient and Secure ECDSA Algorithm and its Applications: A Survey" Mishall AlZubaidie1,2, Zhongwei Zhang2 and Ji Zhang2 1Thi-Qar University, Nasiriya 64001, Iraq 2 Faculty of Health, Engineering and Sciences, University of Southern Queensland, Toowoomba, QLD 4350, Australia