• Почему асимметричное шифрование слабее симметричного?

    @pestunov
    Это объясняется тем, что
    (1) Для современных симметричных алгоритмов неизвестно атак, которые работают быстрее полного перебора ключей. Например, если длина ключа (скажем у AES) 128 бит, то взломать шифр можно только за 2^128 операций. Быстрее нельзя.

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

    Стойкость многих асимметричных систем основана на сложности решения задачи дискретного логарифмирования. И решить ее можно быстрее, чем полным перебором, например, методом Шенкса, который имеет сложность sqrt(длины ключа). Следовательно, ключ длиной 128 бит обеспечивает сложность взлома не 2^128, а всего лишь 2^64. Следовательно, для достижения сложности взлома 2^128 длина ключа должна быть 256 бит.

    Вот и получается, что для достижения сложности взлома 2^128 симметричным схемам достаточно 128 бит, а асимметричным - 256. Но здесь оговорюсь еще раз, что существуют и более эффективные алгоритмы, чем метод Шэнкса, поэтому ключи асимметричных схем как правило еще длиннее.
    Ответ написан
    Комментировать
  • Как вставить новый элемент в DOM - JavaScript?

    @pestunov
    Попробуй использовать getElementsByTagName('ul')
    Он вернет массив всех элементов ul. Затем create и append.
    Ответ написан
    Комментировать
  • Как сделать popup с вводом номера?

    @pestunov
    Может быть так:
    function PopUp() {
        //Тут реализовать PopUp
        Addtocart()
    }

    <submit onclick="PopUp()">
    Ответ написан
    Комментировать
  • Как сделать pop up из обычного дива?

    @pestunov
    Такой вариант подходит?
    https://www.mobila.name/post/5172c6cbb4ab3/
    Ответ написан
    Комментировать
  • Как сделать, чтобы функция сработала лишь раз при прокрутке страницы?

    @pestunov
    Можно добавить глобальный флаг, а внутри функции проверить с помощью if был ли вызов функции. Если был, то ничего не делать. Есть не был, то перевернуть флаг и вызвать функцию.
    wasFunctionInvoked = false;
    $(document).on('scroll', function () {
    if (!wasFunctionInvoked) {
    wasFunctionInvoked = true;

    var position = window.pageYOffset ? window.pageYOffset : document.body.scrollTop;
    var block_position = $('div').offset().top;
    if ((position + 600) > block_position) {
    //Тут код
    }
    } else {
    // doNothing
    }
    });
    Ответ написан
    Комментировать