Рейтинг:2

Как генерируется закрытый ключ BLS? Какие бывают названия частей?

флаг ru

реликвия, библиотеку, используемую в большинстве реализаций BLS, довольно сложно создать кросс-платформенной.

Из-за этого я искал другие чистый Реализации BLS, которые не полагаются на C — и я нашел одну в Go, а другую в Rust.

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

Я вижу сочетание слов «Аффинный», «Скалярный», «FR», «FRRepr», «G1», «G2», «Открытый ключ», «Секрет» и «Семя», среди прочих, которые не обязательно совпадают с тем, что я читал в статьях о BLS, WikiPedia или других библиотеках кода.

Я предполагаю, что некоторые из этих терминов взаимозаменяемы, а некоторые имеют разное значение.

Например, оказывается, что "G1Element" является синонимом "Открытого ключа".

Но каковы технические синонимы слов «закрытый ключ» или «секретный»?

В частности, я пытаюсь понять, как я могу использовать что-то вроде этого:

На данный момент все, что я хочу сделать, это иметь возможность кросс-компилировать некоторый код для 6 наиболее распространенных платформ arch+os, который будет генерировать пару закрытый + открытый ключ.

Тем не менее, я хотел бы узнать все, что вы можете предложить в отношении того, как связать терминологию непрофессионала («Закрытый ключ», «Открытый ключ», «Подпись») с терминологией математики и программирования («G1» , и т.д).

Рейтинг:2
флаг tr

Путаница возникает из-за того, что одно имя ссылается на две разные, но связанные вещи. А именно,

  1. BLS, как и подписи BLS: означает цифровые подписи, которые используют криптография на основе пар предоставить короткую подпись с дополнительными свойствами, такими как агрегируемость, Подробнее здесь. Впервые их представили Боне, Линн и Шахам, отсюда и название BLS

  2. БЛС, как в БЛС12_381: представляет собой так называемую «дружественную к сопряжению» эллиптическую кривую, которая позволяет эффективно и безопасно применять криптографию на основе сопряжения, включая подписи BLS. Они взяты из работ Баррето, Линн и Скотта, поэтому BLS.

Итак, кажется, вы ищете реализацию 1), в то время как библиотеки, на которые вы смотрели, предоставляют только реализацию 2), то есть: базовую кривую.

Взгляните на сигнатуры BLS в чистой реализации Python, чтобы увидеть, как соотносятся эти две концепции. https://github.com/Chia-Network/bls-signatures/blob/main/python-impl/schemes.py

Но в целом и как описано здесь, генерация ключа работает на высоком уровне следующим образом: выбираем случайное значение $х, 0 < х < N$, куда $N$ это порядок кривой и установить открытый ключ на $xG$, куда $G$ является генератором кривой.

Точные детали зависят от стандарта.

Ответить или комментировать

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