Перевод Кольцевые подписи и анонимизация

Тема в разделе "Статьи", создана пользователем Mr. Pickles, 17 авг 2018.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    252
    Симпатии:
    71
    1.jpeg

    Чтобы увидеть, как работают методы, о которых говорится в этой статье, перейдите по ссылке.
    А теперь немного информации, полученной нами в результате утечки из Белого дома. Дональд Трамп вызывает к себе руководителей службы кибербезопасности и говорит им: «Я знаю, что один из вас слил информацию, но не могу сказать, кто именно». И как так могло случиться, что Дональд обвиняет одного из руководителей в утечке, но не знает, кого именно? А этого можно было добиться, используя кольцевую подпись, которая обеспечивает анонимность, а также исключает возможность подделки и сговора.

    2.png

    Кольцевая подпись является цифровой подписью, которая создаётся членом группы, в которой у каждого есть свои ключи. Следовательно, вычислить именно того члена группы, который является создателем подписи, невозможно. Этот метод впервые был предложен в 2001 году Роном Ривестом (Ron Rivest), Ади Шамиром (Adi Shamir) и Яэлью Тауман (Yael Tauman). Именно в их работе и была предложена дилемма утечки информации в Белом доме.

    Создание кольца

    В кольцевой подписи нами определяется группа лиц, у каждого из которых есть собственная пара публичных/приватных ключей (P1, S1), (P2, S2), …, (Pn, Sn). Если мы хотим, чтобы лицо i подписало сообщение (message), то им понадобится использовать собственный секретный ключ (si), исключая публичные ключи других членов группы (m, si, P1, …, Pn). Следовательно, действительность группы можно проверить, если знать публичный ключ группы, но невозможно определить действительную подпись, если внутри группы не будут известны приватные ключи.

    Теперь допустим, что Трент, Боб, Ив и Элис входят в группу, и у каждого из них есть собственные публичные и секретные ключи. Допустим, Боб хочет подписать сообщение от лица группы. Сначала он генерирует случайное значение v, а затем генерирует случайные значения (xi) для всех остальных участников, но берёт собственный секретный ключ (si) и использует его, чтобы определить другой секретный ключ, который является обратным функции шифрования. Он берёт сообщение и хеширует его, создавая таким образом ключ (k). Этот ключ будет использоваться для симметричного шифрования каждого элемента кольца (Ek), после чего к каждому элементу кольца будет применена функция исключения ИЛИ предыдущего элемента (рисунок 1).

    3.png

    Каждое случайное значение для других участников будет зашифровано публичным ключом заданного участника. После этого Бобу необходимо вычислить значение ys, что позволит ему создать кольцо (полученное кольцо должно быть равным v). Затем Боб переворачивает это значение, чтобы получить эквивалентный приватный ключ (xs). Теперь Боб может выдать всю подпись, а также случайные значения x, равно как и вычисленный секретный ключ. Чтобы проверить подпись, получающая сторона просто вычисляет кольцо и проверяет, чтобы результат соответствовал отправленной подписи.

    Базовый метод сводится к следующему:
    1. Начало шифрования при помощи k=Hash(message).
    2. Генерирование случайного значения (u).
    3. Шифрование u с целью получения v=Ek(u).
    4. Для каждого члена кольца (кроме отправителя):

    • 4.1 вычислить e=si^{Pi} (mod Ni), где si является случайным числом, сгенерированным для секретного ключа стороны i, а Pi является публичным ключом стороны;
    • 4.2 вычислить v=v⊕e.
    5. Для подписавшей стороны (z) вычислить sz=(v⊕u)^d (mod Nz), где d является секретным ключом подписывающей стороны.
    В результате получаем подпись (v=Ek(u)), которая замыкает кольцо.

    Мною был создан наглядный пример работы оригинального метода, который вы можете просмотреть здесь, а вот и краткая презентация метода [слайды]:


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

    4.png

    Значит, верификация кольца будет происходить следующим образом:

    5.png
    6.png

    Кольцевые подписи Monero

    Основной проблемой в случае с сетью Bitcoin является то, что сумма транзакции, а также отправитель и получатель средств не являются анонимными, и кто-то, кому будет известен чей-либо адрес, сможет отследить их транзакции. И это действительно так, потому что блокчейн должен убедиться в том, что у отправителя достаточно средств, чтобы провести платёж получателю. Поэтому многие криптовалюты ищут способ анонимизации проводимых транзакций. Ethereum, например, для того чтобы скрыть участников транзакций, использует протокол zk-Snarks.

    Один из способов сокрытия участников, предложенный Ривестом и др. (Rivest et al), использует RSA-шифрование. К сожалению, он не слишком эффективен для применения с современными системами. Поэтому Грег Максвелл (Greg Maxwell) предложил использовать методы, основанные на использовании эллиптических кривых, для создания кольцевой подписи, кольцевой подписи Борромео [см. соответствующий документ].

    Криптовалюта Monero стала использовать этот метод с целью анонимизации транзакций, но позже перешла к другому способу: подпись многоуровневой связанной спонтанной анонимной группы (MLSAG). Применение этого метода позволяет скрыть сумму транзакции, а также личность отправителя и получателя [документ]. Сейчас метод известен как протокол конфиденциальных кольцевых транзакций RingCT (Ring Confidential Transactions). Он был представлен в январе 2017 и с сентября 2017 стал обязательным к применению при проведении всех транзакций.

    Выводы

    Основной проблемой в случае с сетью Bitcoin является то, что сумма транзакции, а также отправитель и получатель средств не являются анонимными, и кто-то, кому будет известен чей-либо адрес, сможет отследить их транзакции. И это действительно так, потому что блокчейн должен убедиться в том, что у отправителя достаточно средств, чтобы провести платёж получателю. Поэтому многие криптовалюты ищут способ анонимизации проводимых транзакций.

    Источник: Ring Signatures And Anonymisation

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
    #1 Mr. Pickles, 17 авг 2018
    Последнее редактирование: 17 авг 2018
  • О нас

    Наш сайт является одним из уникальных мест, где русскоязычное сообщество Monero может свободно общаться на темы, связанные с этой криптовалютой. Мы стараемся публиковать полезные мануалы и статьи (как собственные, так и переводы с английского) о криптовалюте Monero. Если вы хорошо владеете английским (или можете писать собственные статьи/мануалы) и хотите помочь в переводах и общем развитии Monero для русскоязычной аудитории - свяжитесь с одним из администраторов.