Скачиваний:
7
Добавлен:
28.12.2024
Размер:
193.37 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ,

СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ

«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М.А. БОНЧ-БРУЕВИЧА»

(СПбГУТ)

Факультет: Защищенных систем связи

Кафедра: Кибербезопасности

Дисциплина: Блокчейн и обеспечение безопасности распределенных реестров

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №6

Направление/специальность подготовки

10.03.01 Информационная безопасность

(код и наименование направления/специальности)

Студент:

Травкина Е.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Федченко А.С., ИКБ-14

(Ф.И.О., № группы) (подпись)

Ящук А.А., ИКБ-14

(Ф.И.О., № группы) (подпись)

Преподаватель:

к.т.н, доцент, Кушнир Д.В.

(должность, Ф.И.О.) (подпись)

1. Пусть текущая сложность создания блоков составляла значение 25673 и было создано 2016 блоков за 1998 минут. В биткойне сложность должна пересчитываться после каждых 2016 блоков, какое будет новое значение сложности.

Для вычисления новой сложности используется следующий алгоритм:

  • криптовалютная сеть определяет период времени, который понадобился для добычи предыдущих 2016 блоков;

  • затем эта величина делится на стандартное время майнинга этого числа блоков (это фиксированный параметр, равный 20 160 минутам);

  • полученное значение умножается на самый последний уровень сложности сети.

Таким образом, для рассматриваемого случая новая сложность равна:

(1 998 / 20 160) * 25 673 = 2 544

2. Для seed-фразы (например, из 12-ти слов) кошелек сперва формирует случайное число, затем, на его основе, выбираются слова seed-фразы (см. лекция 5). Приведите два разных примера первых 25-30 бит случайного числа, которые приведут к формированию в seed-фразе одинаковых первых двух слов, но третье будет отличаться.

1010111010010101110100000000

1101001001111010010011111100

3. Задание на использование «key tweak».

эллиптическая кривая y2=x3+7 mod 97

Точка генерации G = (5,36)

Начальный секретный ключ k = 25 + 5 = 30

Тогда открытый ключ Q0 = k * G = 30 * (5, 36) = (61, 69) (см. рисунок 1).

Рисунок 1 - Вычисление закрытого ключа

Далее необходимо эмулировать работу закрытого кошелька при значении «key tweak» равном 5:

n1 = k + key tweak mod m = 30 + 5 mod 97 = 35

n2 = k + 2*key tweak mod m = 30 + 10 mod 97 = 40

После этого требуется эмулировать работу открытой части кошелька:

Q1 = Q0 + key tweak * G = (61, 69) + 5 * (5,36) = (61, 69) + (17, 19) = (73, 32) (см. рисунки 2-3).

Рисунок 2 - Умножение G на key tweak

Рисунок 3 - Сложение G*key tweak и Q0

Q2 = Q0 + 2 * key tweak * G = (61, 69) + 2 * 5 * (5,36) = (61, 69) + (95, 75) = (82, 30) (см. рисунки 4-5)

Рисунок 4 - Умножение G на 2 key tweak

Рисунок 5 - Сложение Q0 и 2 * key tweak * G

После этого необходимо выполнить проверку на соответствие вычисленных секретных ключей n1 n2 открытым ключам Q1 Q2:

Q1 = n1 * G = 35 * (5, 36) = (73, 32) (см. рисунок 6)

Рисунок 6 - Вычисление Q1 по n1

Q2 = n2 * G = 40 * (5, 36) = (82, 30) (см. рисунок 7)

Рисунок 7 - Вычисление Q2 через n2

Проверка пройдена успешно.

4. Какие решения (какие отпирающие скрипты) нужно представить, чтоб потратить средства, запертые следующими скриптами (подсказка, то что указывается в отпирающем скрипте, добавляется ПЕРЕД операторами и операндами запирающего скрипта) – это может быть любая комбинация операндов и операторов:

    1. 37 10 OP_MUL 370 OP_EQUAL

    2. 3 OP_DUP OP_ADD 6 OP_EQUAL

    3. 5 3 OP_MAX 5 OP_EQUAL

    4. 9 10 OP_MIN 9 OP_EQUAL

    5. OP_TRUE OP_FALSE OP_ADD

    6. OP_FALSE OP_FALSE OP_ADD OP_NOT

    7. 2 1 3 OP_WITHIN

    8. 8 3 OP_SUB 5 OP_EQUAL

    9. F 20 OP_SWAP OP_SUB 11 OP_EQUAL

Санкт-Петербург

2024

Соседние файлы в предмете Блокчейн и обеспечение безопасности распределенных реестров