Как стать автором
Обновить
20
0
Евгений Капун @eatmore

Пользователь

Отправить сообщение

В ИТМО когда-то писали много визуализаторов для разных алгоритмов. Сейчас это всё осталось только в Wayback Machine, так что запустить их теперь вряд ли получится.

К счастью, западная общественность пока ещё не полностью состоит из SJW.

Если собирать с оптимизацией (--optimize --optimize-runs=10000), то на проверку корректной подписи тратится в среднем около 515000 газа. На проверку некорректной подписи может тратиться меньше, если подпись отбраковывается на одном из ранних этапов.


Переход на Yul вряд ли приведёт к значительному улучшению производительности, так как в плане арифметических операций его возможности не отличаются от Solidity, а большая часть ресурсов тратится именно на арифметические операции. Чтобы этот код существенно ускорить, нужно переписывать его на Huff или что-то похожее.

Перевод так себе. «ДБ», «письмо, упрощающее сброс пароля» — ну кто так пишет? Вместо «простого текста» есть устоявшийся термин — «открытый текст».

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

К товарным знакам и патентам применяются другие правила.

Не одно и то же. По крайней мере в США, отдельные слова, названия, короткие фразы не защищены авторским правом. Здесь написано более подробно.

Именно поэтому они защищают конкретные проекты, а не всё что угодно под свободной лицензией. С их сайта:


If the member project's leaders want, Conservancy can also hold other assets and titles on behalf of the projects, such as copyrights, trademarks, domain names, online hosting accounts, and title and ownership of physical hardware. Also at discretion of the project's leaders, Conservancy can assist in defending the rights represented in these assets. For example, Conservancy is available to assist member projects in enforcing the terms of the projects' FLOSS license.

То есть проекты передают SFC права на свой код, а SFC их защищает. И не только права, но и всё остальное имущество (по желанию лидеров проекта). И это неплохо, потому что у таких проектов обычно нет своего юрлица, которое могло бы формально быть владельцем имущества, поэтому альтернатива — имущество в собственности отдельных участников проекта, но это рискованно, потому что участник может умереть, уйти и т. д.

ChaCha20 — это потоковый шифр, который легче внедрить в программное обеспечение. Он шифрует один бит за раз. Блочные протоколы, такие как AES, шифруют блок по 128 бит за раз.

Bullshit. ChaCha20 генерирует блоки размером 512 бит, которые затем xor-ятся с шифруемыми данными.

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

В той книге тоже есть похожая схема.

Почему-то некоторые люди считают, что если ключ генерируется оффлайн и наружу передаётся только запрос на сертификат, то утечка ключа невозможна. На самом деле, если код, генерирующий ключи, может содержать закладки, то ключ можно передать в самом запросе, причём так, что это будет невозможно обнаружить, если не производить полный анализ этого кода (в частности, такую закладку невозможно обнаружить, исследуя сам запрос). Если интересно, как это делается, рекомендую прочитать книгу Malicious Cryptography: Exposing Cryptovirology (к сожалению, я не нашёл русского перевода).


Впрочем, это далеко не единственная проблема ПО СБИС. Например, их плагин при установке добавляет в систему доверенный корневой сертификат, одинаковый для всех пользователей (см. инструкцию, там на скриншоте sha1-отпечаток сертификата, и он одинаковый для всех пользователей, то есть и сам сертификат один на всех). Поскольку этот сертификат используется для связи с работающим локально плагином, приватный ключ, скорее всего, тоже присутствует на компьютере пользователя. То есть, это плагин делает по сути то же самое, что и нашумевшее в своё время ПО Superfish: позволяет кому угодно прослушивать весь зашифрованный трафик.

Там написано, что он сомневается в том, что педофилия вредит детям. Если бы люди никогда не сомневались в общепризнанных фактах, мы бы до сих пор жили в каменном веке.
Что-то магическое — это шифр RC4.

Под спойлером — пример массива, который копируется неправильно. Но я предлагаю перед тем, как заглядывать туда, попробовать найти проблему самостоятельно.


Код
let input = new Uint8Array(8).fill(255);
let output = new Uint8Array(8);
copy(input, output);
console.log(input, output);

Объяснение

При декодировании данных как Float64, получается значение NaN. Это единственное значение, у которого есть несколько различный представлений (хотя значения +0 и -0 выглядят как равные для операторов == и ===, они являются различными). Согласно стандарту, в JavaScript все значения NaN неразличимы:


The Number type has exactly 18437736874454810627 (that is, 264−253+3) values, representing the double-precision 64-bit format IEEE 754-2008 values as specified in the IEEE Standard for Binary Floating-Point Arithmetic, except that the 9007199254740990 (that is, 253−2) distinct “Not-a-Number” values of the IEEE Standard are represented in ECMAScript as a single special NaN value. (Note that the NaN value is produced by the program expression NaN.) In some implementations, external code might be able to detect a difference between various Not-a-Number values, but such behaviour is implementation-dependent; to ECMAScript code, all NaN values are indistinguishable from each other.

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

Функция copy (та, которая использует Float64Array) иногда копирует данные неправильно. Даже если длина массива делится на 8. Это хороший пример того, как "умная" оптимизация может приводить к появлению трудно обнаруживаемых ошибок.

Нигде я не видел предложений подобных «услуг» по Европе, США и другим развитым странам мира. Максимум — пробив по общим базам (вроде Интерпола), к которым имеется доступ из России.

Ну да, конечно.

Пользователи, которым мешает автопереключение, всегда могут его выключить. Мне кажется, что то, что в других приложениях (карты Яндекс, Google и т. д.) автопереключение работает независимо от режима навигации, свидетельствует о том, что пользователи с вами не согласны. Почему нельзя было сделать автопереключение только в режиме навигации как отдельную опцию? Пускай это будет только для тех, кому это надо.
На iPhone 4s в MAPS.ME и сама карта отрисовывается достаточно медленно, иногда приходится несколько секунд ждать, пока всё отрисуется (обычно это при увеличении масштаба, когда увеличивается уровень детализации). Те же Яндекс.Карты, как мне кажется, работают быстрее (в оффлайн-режиме).
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность