Даже если кто-то поломает SIM карту (или токен), он НЕ ПОЛУЧИТ доступ ко всем деньгам системы.
Оффлайн - это самое слабое звено в вашем рассуждении. Если взломать сим-карту и вытащить оттуда приватник - spk (sim private key), то можно его загрузить в собственное программное устройство, которое не удаляет информацию от переданных банкнотах и таким образом бесконечно тратить деньги.
Т.е. поступать так: 1. Украсть сим карту (чтобы совершать зловредные действия не от своего имени) 2. Достать приватник и перенести на собственное устройство 3. Подойти к банкомату и выпустить банкноту на 1 млн 4. Записать состояние кошелька в бэкап 5. Найти жертву и купить на 1 млн в оффлайне (на кошельке 0 денег) 6. Восстановить из бэкапа (у нас на кошельке опять 1 млн) 7. Повторить шаг 5
Безопасность обеспечивается доверенной средой внутри каждого из кошельков. Без доверенной среды решить задачу offline передачи денег невозможно.
Именно поэтому весь ваш протокол небезопасен. Чтобы доказать безопасность - докажите что возможно создание не взламываемых чипов сим-карт (доверенной среды в вашей терминологии).
Кстати, это ваш протокол или это центральные банки так фантазируют?
Было бы хорошо, если администрация Хабра введет режим публикации статей для начинающих писателей-перфекционистов, который защищен от минусования кармы/рейтинга. Можно ограничить профиль таких статей - например только технические, чтобы не было спама/рекламы. А еще можно придумать специальный инкубатор/акселератор авторов. В общем как по мне, то проблема давно назрела...
Все же побуду занудой и скажу, что по смыслу статья должна называться Разделение сложности кода. Ответственность это про людей. Думаю текущий перевод получился из-за двойного перевода - с китайского (или японского/корейского?) на английский, а потом на русский...
Аналогично, обфускация кода упрощает понимание программы, поскольку излагает «сюжеты» именно на той глубине проникновения в код, что нам нужно
А на самом деле:
Обфуска́ция или запутывание кода — приведение исходного текста или исполняемого кода программы к виду, сохраняющему её функциональность, но затрудняющему анализ, понимание алгоритмов работы
У вас ошибка в строчке Безопасность - нужно все значение проинвертировать. У вас получается что Биткоин самая небезопасная криптовалюта, что глупо выглядит.
Не все, есть блокчейны, где код интерфейсной части хранится тоже на блокчейне (HTML,JS, CSS), а отображение в кошельках (десктопе, мобильном, веб). Но таких блокчейнов мало и они не известны.Например вот такая есть игра: https://terawallet.org/dapp/156#idMap1
Я тоже не понял о чем речь и что именно я обошел. Насколько я помню там была поддержка языка 1С на 100% (даже больше так как добавил расширение для массивов и присваивание функций переменным)
Я писал транслятор-компилятор в своем проекте «2С» (аналог 1С с открытым кодом). По моему мнению синтаксис языка 1С нормальный. Обычный похожий на паскаль синтаксис. Причем у меня есть с чем сравнивать — пару лет назад писал транслятор-компилятор для js. Там все было на порядок сложнее — в js очень много «необычностей». Не знаю почему вам не угодили программисты, которые создавали язык 1С…
1С это полноценный язык. Да, он не очень гибок и в нем есть свои минусы. Например медленный интерпретатор. Доходит до того, что сложные вычисления пишутся в SQL запросах, например решение линейных уравнений при расчете себестоимости. Но я думаю что интерпретатор можно ускорить, когда я делал аналог языка 1С его скорость была в 20-40 раз быстрее.
Вообще программист — это способ мышления. Ты или умеешь создавать алгоритмы или ты не программист. И кстати говоря я знаю много программистов, которые работают программистами 1С, а в качестве хобби имеют проекты на С/C++, Node.JS и т.д.
Правильно ли, что сами по себе SP-сети не имеет бэкдор, имеет бэкдор конкретная реализация S-блока (подстановочная таблица). BEA-1 как раз такая реализация.
Вопросы:
1) Интересно а как влияет увеличение размера размера разрядности S блока (а точнее подстановочной таблицы), например с 8 бит как в примере Rijndael до скажем 16 бит (или больше — пока хватит памяти). Снизится ли вероятность выпадения такого неудачного набора, который все еще подвержен дифференциальному криптоанализу?
2) Что если дополнительно к пункту 1 заполнять таблицу доказуемо случайными числами как это делается при выборе коэффициентов в хэш функции SHA256 (квадратные или кубические корни из подряд идущих простых чисел).
Но что поделать, если существующие ключи не обладают достаточной длиной для их безопасного использования в выбранных нами алгоритмах?
А можно поподробнее узнать почему вы решили что в итоге увеличивается криптостойкость?
Вот например чтобы усложнить атаку Брутфорсом (атаку полным перебором) увеличивают стоимость расчета одного ключа. Например вот таким кодом можно в 100 тысяч раз увеличить сложность перебора (т.е. фактически увеличивается длина ключа примерно на 16 бит):
Пример кода:
function GetPrivateKeyFromStr(Str)
{
var StrHex=sha3_str(Str);
for(var i=0;i<100000;i++)
StrHex=sha3_str(StrHex);
return StrHex;
}
Таким образом злоумышленнику каждый вариант ключа требуется сначала 100 тысяч раз пропустить через хэш, а только потом приступить к самой проверке о правильности приватного ключа
Они выступают альтернативой particia-деревьям в Ethereum’е, но с узлами на 32 (leaf/sibling nodes) и 76 байт (internal nodes), а PoW-вес здесь не превышает килобайта даже при наличии десятков миллионов «листьев».
Это игра в одни ворота, практически всегда найдется игрок с большим весом по возможностям и оборудованию который отожмет твой домен, тебе достаточно раскрутить его чтобы цель оправдала средства :)
Во всех статьях про атомарные свопы, которые я читал, умалчивают вот такой вопрос:
А что будет если первая сторона (Алиса) забрала деньги, раскрыв свой секрет, а у второй стороны (у Боба) исчез физический доступ к отправке транзакций, например на сутки, т.е. пропала связь, сломался гаджет, локальная катастрофа и т.п. и он не смог вовремя среагировать. Его деньги пропадут?
По идее да, потому что:
Алиса приходит за своими деньгами и забирает деньги с контракта Боба, раскрыв при этом свой секрет
В свою очередь, Алиса к вечеру возвращает биткоин…
Барицентрические координаты инвариантны к аффинным преобразованиям
Интересно, есть ли система координат инвариантная к проективное преобразованиям?
Не думали еще об этом? Или в задаче задаче распознавания лиц этого не требуется?
Для информации - там в конце статьи собирают деньги на войну на Украине...
Оффлайн - это самое слабое звено в вашем рассуждении. Если взломать сим-карту и вытащить оттуда приватник - spk (sim private key), то можно его загрузить в собственное программное устройство, которое не удаляет информацию от переданных банкнотах и таким образом бесконечно тратить деньги.
Т.е. поступать так:
1. Украсть сим карту (чтобы совершать зловредные действия не от своего имени)
2. Достать приватник и перенести на собственное устройство
3. Подойти к банкомату и выпустить банкноту на 1 млн
4. Записать состояние кошелька в бэкап
5. Найти жертву и купить на 1 млн в оффлайне (на кошельке 0 денег)
6. Восстановить из бэкапа (у нас на кошельке опять 1 млн)
7. Повторить шаг 5
Именно поэтому весь ваш протокол небезопасен. Чтобы доказать безопасность - докажите что возможно создание не взламываемых чипов сим-карт (доверенной среды в вашей терминологии).
Кстати, это ваш протокол или это центральные банки так фантазируют?
Да, именно это - еще одна причина, почему не хочется сюда писать статьи из-за боязни не угодить аудитории
Было бы хорошо, если администрация Хабра введет режим публикации статей для начинающих писателей-перфекционистов, который защищен от минусования кармы/рейтинга. Можно ограничить профиль таких статей - например только технические, чтобы не было спама/рекламы. А еще можно придумать специальный инкубатор/акселератор авторов. В общем как по мне, то проблема давно назрела...
Все же побуду занудой и скажу, что по смыслу статья должна называться Разделение сложности кода. Ответственность это про людей. Думаю текущий перевод получился из-за двойного перевода - с китайского (или японского/корейского?) на английский, а потом на русский...
Я так понимаю здесь какой-то неведомый мне юмор:
А на самом деле:
У вас ошибка в строчке Безопасность - нужно все значение проинвертировать. У вас получается что Биткоин самая небезопасная криптовалюта, что глупо выглядит.
Не все, есть блокчейны, где код интерфейсной части хранится тоже на блокчейне (HTML,JS, CSS), а отображение в кошельках (десктопе, мобильном, веб). Но таких блокчейнов мало и они не известны.Например вот такая есть игра: https://terawallet.org/dapp/156#idMap1
чтобы настроить токен ERC20 — протокол, позволяющий создавать другие токены поверх блокчейна, — нужно будет заплатить минимум $10 000.
Цена завышена раз в 10, говорю это как блокчейн разработчик, работающий в этой сфере с 2017 года и создавший не один десяток смарт-контрактов.
1С это полноценный язык. Да, он не очень гибок и в нем есть свои минусы. Например медленный интерпретатор. Доходит до того, что сложные вычисления пишутся в SQL запросах, например решение линейных уравнений при расчете себестоимости. Но я думаю что интерпретатор можно ускорить, когда я делал аналог языка 1С его скорость была в 20-40 раз быстрее.
Вообще программист — это способ мышления. Ты или умеешь создавать алгоритмы или ты не программист. И кстати говоря я знаю много программистов, которые работают программистами 1С, а в качестве хобби имеют проекты на С/C++, Node.JS и т.д.
Вопросы:
1) Интересно а как влияет увеличение размера размера разрядности S блока (а точнее подстановочной таблицы), например с 8 бит как в примере Rijndael до скажем 16 бит (или больше — пока хватит памяти). Снизится ли вероятность выпадения такого неудачного набора, который все еще подвержен дифференциальному криптоанализу?
2) Что если дополнительно к пункту 1 заполнять таблицу доказуемо случайными числами как это делается при выборе коэффициентов в хэш функции SHA256 (квадратные или кубические корни из подряд идущих простых чисел).
А можно поподробнее узнать почему вы решили что в итоге увеличивается криптостойкость?
Вот например чтобы усложнить атаку Брутфорсом (атаку полным перебором) увеличивают стоимость расчета одного ключа. Например вот таким кодом можно в 100 тысяч раз увеличить сложность перебора (т.е. фактически увеличивается длина ключа примерно на 16 бит):
Пример кода:
Таким образом злоумышленнику каждый вариант ключа требуется сначала 100 тысяч раз пропустить через хэш, а только потом приступить к самой проверке о правильности приватного ключа
А что такое PoW-вес? Поясните термин, плиз…
Это игра в одни ворота, практически всегда найдется игрок с большим весом по возможностям и оборудованию который отожмет твой домен, тебе достаточно раскрутить его чтобы цель оправдала средства :)
А что будет если первая сторона (Алиса) забрала деньги, раскрыв свой секрет, а у второй стороны (у Боба) исчез физический доступ к отправке транзакций, например на сутки, т.е. пропала связь, сломался гаджет, локальная катастрофа и т.п. и он не смог вовремя среагировать. Его деньги пропадут?
По идее да, потому что:
Я прав?
Это немного не то, нам хочется инвариант к проективным преобразованиям.
Интересно, есть ли система координат инвариантная к проективное преобразованиям?
Не думали еще об этом? Или в задаче задаче распознавания лиц этого не требуется?