Coder Social home page Coder Social logo

zero_knowledge_proof's Introduction

Zero-knowledge proof

Курсовая работа :

C++ CSS3 HTML5 Lines of code

Telegram

Навигация по репозиторию:

  • документация - documentation/..
  • реализация - realization/..
  • демонстрация - demonstration/..
  • логгирование (в формате jsonl) - Logging.jsonl

    рекомендуемое число секретов > 72

    Внесенная модификация:

  • Сравнение через xor - не дает никакой информации о времени сравнения ,что может позволить понять с какого символа/цифры ответ злоумышленника неправильный
  • Добавлена временная метка
  • Протокол
    output

  • Атака повторного воспроизведения
    attacker

  • Визуализация
    main page prover

  • UML-диаграмма
    prover

Процесс отладки раундов протокола

  • R=[k]*G
R = curve.get_G() * k;
  • Yi =∑[-xi]*G
for (int i = 0; i < m; ++i) {
        mpz_class mult = (-xi[i]) % curve.get_order();
        while (mult < 0) {
            mult += curve.get_order();
        }
        Y[i] = curve.get_G() * mult;
    }
  • ( a1, ..., am ) ∈ {0, 1}m
std::random_device dev;
    std::mt19937 rng(dev());
    std::uniform_int_distribution<std::mt19937::result_type> dist6(
            0, std::numeric_limits<int>::max());

    int random = dist6(rng);
    mpz_class bit_string = random % static_cast<int>(pow(2, Y.size())); //длины m
  • s=k+aixi
s = k + (sum(binary_string)) % q;
  • R=[s]G+ ∑[ai]Yi
Point sG = curve.get_G() * s;
    Point d = sum(binary, Y) + sG;
    bool flag = false;
    for (size_t i = 0; i < d.x.get_str(2).length(); ++i) 
    { 
        flag |= d.x.get_str(2)[i] ^ R.x.get_str(2)[i]; 
    }

    for (size_t j = 0; j < d.y.get_str(2).length(); ++j) 
    {
        flag |= d.y.get_str(2)[j] ^ R.y.get_str(2)[j]; 
    }
    return !flag;

zero_knowledge_proof's People

Contributors

purplebionicle avatar

Stargazers

Darya ↻ avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.