Чтение онлайн

на главную - закладки

Жанры

Введение в технологию Блокчейн
Шрифт:

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

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

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

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

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

До

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

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

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

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

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

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

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

Идея заключается в следующем: мы хотим разделить наш приватный ключ на некоторое количество частей 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, это уже не работает, и нам нужна некоторая алгебра.

Посмотрите

на слайд.

Здесь мы должны сначала сгенерировать точку (0, S) по оси Y, а затем нарисовать линию со случайным наклоном через эту точку.

Затем мы создаем точки на этой линии, сколько захотим.

Получается, что это разделение секрета S на N – количество созданных нами точек и K = 2.

Почему это работает?

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

Это даст нам секрет S.

С другой стороны, если у нас есть только одна точка, она ничего не говорит о секрете S, потому что наклон линии случайный.

Каждая линия в этой точке равно вероятна, и все они пересекают ось Y в разных точках.

Есть только одна тонкость.

Мы берем большое простое число P.

Так, чтобы секрет S был между 0 и P-1, включительно.

Далее мы генерируем случайное значение R, также между 0 и P-1, и создаваемые нами точки

x = 1, y = (S + R) mod P – остаток от деления

x = 2, y = (S + 2R) mod P

x = 3, y = (S + 3R) mod P

и так далее.

Секрет соответствует точке x = 0, y = (S + 0 * R) mod P, которая равна x = 0, y = S.

Таким образом, это способ сделать деление секрета с K = 2 и любым значением N.

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

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

Как и было обещано, мы увеличили доступность и безопасность.

Но мы можем сделать лучше: мы можем делать деление секрета с любыми N и K, если K не больше N.

Чтобы посмотреть, как это сделать, вернемся к фигуре.

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

Это означает, что для восстановления линии нам нужно не менее двух точек.

Если бы мы хотели сделать K = 3, мы бы использовали параболу, которая представляет собой квадратичный многочлен или многочлен степени 2.

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

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

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

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

Поделиться:
Популярные книги

На границе империй. Том 3

INDIGO
3. Фортуна дама переменчивая
Фантастика:
космическая фантастика
5.63
рейтинг книги
На границе империй. Том 3

Держать удар

Иванов Дмитрий
11. Девяностые
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Держать удар

Эффект Фостера

Аллен Селина
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Эффект Фостера

Не грози Дубровскому! Том VIII

Панарин Антон
8. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том VIII

СД. Том 17

Клеванский Кирилл Сергеевич
17. Сердце дракона
Фантастика:
боевая фантастика
6.70
рейтинг книги
СД. Том 17

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3

Сумеречный Стрелок 3

Карелин Сергей Витальевич
3. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 3

Пипец Котенку!

Майерс Александр
1. РОС: Пипец Котенку!
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Пипец Котенку!

Неудержимый. Книга IV

Боярский Андрей
4. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга IV

Дурная жена неверного дракона

Ганова Алиса
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Дурная жена неверного дракона

Я не князь. Книга XIII

Дрейк Сириус
13. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я не князь. Книга XIII

Я – Орк. Том 6

Лисицин Евгений
6. Я — Орк
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я – Орк. Том 6

Отмороженный

Гарцевич Евгений Александрович
1. Отмороженный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Отмороженный

Безродный

Коган Мстислав Константинович
1. Игра не для слабых
Фантастика:
боевая фантастика
альтернативная история
6.67
рейтинг книги
Безродный