Читаем Введение в технологию Блокчейн полностью

Очень сложно придумать кодовую фразу, которую легко запомнить, но которую сложно угадать.

Одним из надежных способов генерации кодовой фразы является автоматическая процедура выбора случайного 80-битного числа и конвертация этого числа в кодовую фразу так, что разные числа приводят к разным фразам.

На практике также разумно использовать преднамеренно медленную функцию для получения приватного ключа из кодовой фразы (что называется растяжкой ключей), чтобы гарантировать, что атакующему потребуется как можно больше времени для подбора фраз.

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

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

Если кодовая фраза кошелька станет недоступной – скажем, вы ее забыли, не записали и не можете угадать – тогда монеты потеряны навсегда.

Третий вариант холодного хранения – это то, что называется бумажным кошельком.

Мы можем распечатать ключ на бумаге, а затем положить эту бумагу в безопасное место.

Очевидно, что безопасность этого метода так же хороша или плоха, как и физическая безопасность используемой бумаги.

Обычно бумажные кошельки кодируют как публичный, так и приватный ключ двумя способами: как 2D штрих-код и как строку base58.

Так же, как и с мозговым кошельком, хранение небольшого количества информации достаточно, чтобы воссоздать кошелек.

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

Либо мы вводим ключ в устройство, либо устройство генерирует ключ; в любом случае, устройство сконструировано таким образом, что оно не может выдавать ключ, то есть для него отсутствует функция чтения.

Вместо этого устройство подписывает транзакции с помощью ключа и делает это, когда мы, скажем, нажимаем кнопку или даем ему какой-то пароль.

Одно из преимуществ заключается в том, что, если устройство потеряно или украдено, мы это узнаем, и ключ может быть украден, только если устройство будет украдено.

Это отличается от хранения вашего ключа на ноутбуке.

Таким образом, люди могут использовать комбинацию из четырех этих методов для хранения своих ключей.

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

Деление ключей

До сих пор мы рассматривали различные способы хранения и управления приватными ключами, которые управляют биткойнами, но мы всегда хранили ключ в одном месте – в сейфе, в программном обеспечении или на бумаге.

Это дает нам одну точку отказа.

Если что-то пойдет не так с этим местом хранения, тогда у нас возникнут проблемы.

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

Этот компромисс кажется фундаментальным.

Можем ли мы взять часть данных и сохранить их таким образом, чтобы доступность и безопасность увеличивались одновременно?

Очень хорошо, что ответ «да», и это еще один трюк, который использует криптографию, который называется делением секрета.



Идея заключается в следующем: мы хотим разделить наш приватный ключ на некоторое количество частей N.

Мы хотим сделать это таким образом, чтобы, если мы получим какое-либо количество K этих частей, мы сможем восстановить оригинальный секрет, но, если нам дадут меньше, чем K частей, тогда мы не сможем узнать что-либо об оригинальном секрете.

Учитывая это строгое требование, просто «разрезать» секрет на куски не сработает, потому что даже одна часть дает некоторую информацию о секрете.

Нам нужно что-то умнее.



Предположим, что N = 2 и K = 2.

Это означает, что мы генерируем 2 части на основе секрета, и нам нужны обе части, чтобы иметь возможность восстановить секрет.

Назовем наш секрет S, который является просто большим (скажем, 128-битным) числом.

Мы могли бы генерировать 128-битное случайное число R и сделать две части равными R и (S побитовое исключающее ИЛИ R).

По сути, мы «зашифровали» бы S одноразовым ключом R, и мы сохранили бы ключ (R) и зашифрованный текст (S ИЛИ R) в разных местах.

Ни ключ, ни зашифрованный текст сами по себе ничего не говорят о секрете.

Но, учитывая две части, мы просто собираем их вместе, чтобы восстановить секрет.

Этот трюк работает до тех пор, пока N и K будут одинаковыми – нам просто нужно будет генерировать N-1 разных случайных чисел R для первых N-1 частей, а последней частью будет секрет S – операция ИЛИ – со всеми остальными N- 1 частями.

Но если N больше K, это уже не работает, и нам нужна некоторая алгебра.



Посмотрите на слайд.

Перейти на страницу:

Похожие книги

Компьютерные террористы
Компьютерные террористы

Современные воры и мошенники используют в своей противозаконной деятельности не только такие вульгарные приемы, как кража, грабеж, но и более тонкие методы с использованием новейших достижений науки и техники. Тут и подслушивание телефонных разговоров, и установка «жучков», в их числе и уникальные лазерные приборы и тому подобные новинки.Одним из новых видов преступлений, порожденных научно-техническим прогрессом, являются компьютерные, или «электронные» преступления.В данной книге приводятся факты, свидетельствующих о том, что угроза информационному ресурсу возрастает с каждым днем, повергая в панику ответственных лиц в банках, на предприятиях и в компаниях во всем мире. «Мы живем на весьма опасной бомбе» — таков, если суммировать, лейтмотив многих публикаций зарубежной прессы, посвященных набирающему силу электронному СПИДу.

Татьяна Ивановна Ревяко

Энциклопедии / Прочая компьютерная литература / Книги по IT / Словари и Энциклопедии