Pull to refresh

Comments 47

"конкретный способ создания такой функции" не раскрыт

Если кто-то покажет вам строки чисел 99999999999999999999 и 03729563829603547134, и скажет, что их выбрали случайно, то вы не сможете опровергнуть это заявление со всей определённостью: при выборе случайных чисел вероятность создания обеих строк одинакова.

Я долго смотрел на эту фразу, и что-то во мне зудело. Хотелось подвергнуть сомнению. Но кажется, я понял, в чем дело. Наш мозг, нацеленный на поиск закономерностей, на ходу выполняет конвертацию из «набор цифр» в более простой для понимания и хранения формат «20 девяток», что и искажает восприятие числа. Так и хочется сказать: «ну ведь вероятность выпадения 20 девяток подряд меньше!». И действительно, вероятность выпадения 20 девяток подряд меньше, только вот перед нами не 20 девяток, а условно случайный набор цифр, которые, так уж получилось, составляют 20 девяток.

И действительно, вероятность выпадения 20 девяток подряд меньше

С чего это меньше?
Человек интуитивно оценивает «энтропию» таких последовательностей, т.е. количество похожих, сформулированных потому же правилу отнесённую к общему количеству. И именно её называет «вероятностью».
Т.е. то что 20 девяток выпадет реже — кажется из-за того что такая последовательность уникальна, в то время как случайных наборов цифр в 20 штук — больше чем человек может себе представить. Если для конкретного человека код 03729563829603547134 — уникален (например, это номер его счёта в швейцарском банке), то «ощущаемая вероятность» выпадения такой последовательности так же резко падает в область нуля.

Скажем проще. Человек оценивает эти строки как "20 одинаковых циферок" и "белиберда какая-то". И тогда действительно, вероятность выпадения 20 одинаковых циферок куда меньше чем вероятность выпадения произвольной "какой-то белиберды" в которой не прослеживается никакой закономерности. (тут должен быть анекдот про Илью Муромца и лернейскую гидру)

Есть классическая задачка, практического смысла не имеющая, но хорошо иллюстрирующая когнитивные искажения:

Одну и ту же монету (можно уточнить, что гарантировано симметричную) подбросили 99 раз. Все разы выпал орёл. Какова вероятность того, что на сотый раз выпадет решка?

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

А у этой монеты решка точно есть? Или у нее два орла?

Скорее всего, на этом невысказанном предположении и меняется оцениваемая вероятность. Мозг докидывает "а может, нас обманывают и монета всё-таки несимметричная?" и исходя из этого пересчитывает вероятности.

Интересно было бы провести опрос "Монета n раз выпала решкой, какова вероятность решки при следующем броске?" и посмотреть разницу в ответах для разных n.

В одной из лекций про случайность лектор рассказывал случай из практики. В поезде "лоха" развели на карточную игру и "раздели". Он заявил в милицию. "Шулеров" задержали. Один из аргументов против них был в том, что несколько милиционеров проводили "следственный эксперимент" - специально целую ночь сидели, тасовали и раздавали карты, и такой расклад как случился там в поезде - ни разу у них не вышел. Следовательно (заключило следствие) - расклад в поезде (выигрышный для шулеров) был явно подтасован! :-)

Вот чуваки, которые просто в карты в поезде решили поиграть, охренели, наверное.

Возможно, для каких-либо обоснованных утверждений о вероятности важное значение имеет алгоритм получения таких строк, который в условии задачи не уточнён / не определён чётко и однозначно.

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

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

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

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

314159, 271828

И действительно, вероятность выпадения 20 девяток подряд меньше

Если эти строки являются результатом подбрасывания идеального десятигранного кубика, то вероятность их "выпадания" одинаковая. Потому что, при каждом подбрасывании вероятность выпадания каждой конкретной цифры 1/10 и о том, что там выпадало ранее, кубик не знает.

А зачем деястигранным кубиком ограничиваться, когда можно сразу кидать n-мерный m-гранный честный кубик и получать число заданного размера.

мне плохо давалась теория вероятности, но этот момент я хорошо усвоил. Вероятность выпадения любой цифры при очередном броске действительно 1/10, но вероятность выпадения 10 одинаковых цифр подряд в 10 последовательных испытаниях с-и-ильно меньше…

Вероятность выпадения любых конкретных 10 цифр сильно меньше и для любой последовательности она одна и та же. Не важно, одинаковые там цифры или нет. Вероятности выпадения 9999999999 и 1234567890 абсолютно одинаковы и равны 1/1000000000.

Вы совершенно правы, но вот тут и возникает тот тонкий момент, из-за которого я не очень люблю иметь дело с теорией вероятности — нужно понять, что именно утверждается в неполной фразе «вероятность выпадения 20 девяток подряд меньше». Если «вероятность выпадения 20 девяток подряд меньше чем 03729563829603547134», то это неправда, а если «вероятность выпадения 20 девяток подряд меньше чем вероятность выпадения последовательности из разных цифр», то это абсолютная правда, т.к. число исходов с разными цифрами намного больше.

А ведь наш мозг в этом примере какраз решает задачу Колмогоровой сложности, видимо не для большинства строк а выборочно. Кто знает, может задача ИИ тоже плотно связана с этой математической задачей...

Вероятность выпадения 20 девяток подряд точно такая же, как и числа из 20 девяток. Представим диск с числами от 0 до 999. Вероятность выпадения 999 выходит 1/1000. Представим три диска с цифрами от 0 до 9. Вероятность выпадения трёх 9 выходит 1/10 * 1/10 * 1/10 внезапно так же 1 из 1000.

А теперь представим мешочек с 30 шариками, по 3 шарика на цифру от 0 до 9. Вероятность выпадения трёх 9 будет 3/30 * 2/29 * 1/28, что примерно в 4 раза меньше чем 1/1000. Это результат для зависимых событий.

Вероятно мозг случайные события считает зависимыми от предыдущего результата, но мешочек то бесконечный оказывается.

Собственно, в физике "истинно независимых событий формирующих одинаковые элементы" просто не встречается особо.

Мозг соответственно и не настроен на это, не для того он в процессе эволюции отбирался..

Именно так.

И достаточно представить эти числа в иной системе исчисления как кажущаяся неслучайность пропадет.

И более того. Для любого случайного числа можно выбрать такой метод представления, что бы оно выглядело неслучайным. Например, выбрать это число основанием системы исчисления.

Спасибо за статью на Хабре по тематике Хабра

Стоит наверное заметить, что так как обращение односторонней функции это NP-задача (дан образ, нужно найти прообраз (сертификат)), то если односторонние функции существуют, то есть NP-задача, которая не решается за полиномиальное от длинны входа время, и значит P != NP (и одна из задач тысячелетия решена https://ru.wikipedia.org/wiki/Равенство_классов_P_и_NP )

Вот у меня похожий вопрос, который я не совсем понял.

Разве это не тоже самое, что задача о P = NP? Которая давно сведена к решению любой из NP-полных задач?

То есть задача упомянутая в статье это "просто" еще одна NP-полная задача? Судя по тому сколько было проделано работы кажется что нет и где-то кроется принципиальная разница, но, увы, я её не понимаю пока что.

Может быть такое, что P != NP, но при этом односторонних функций нет, что является довольно неприятной ситуацией: у нас нет криптографии, но при этом мы не умеем эффективно решать все NP-задачи.

Статья приводит аналог NP-полной задачи в мире односторонних функций. В случае P vs NP, вопрос о равенстве сводится к проверки принадлежности определенной NP-задачи к классу P (эти задачи называются NP-полными). Статья сводит вопрос о существовании односторонней функции к проверки односторонности определённой функции F (такие функции называются универсальными односторонними), то есть если её легко можно обращать, то в принципе все предполагаемые односторонние функции можно будет легко обращать. Ранее тоже были конструкции универсальных односторонних функций, но они были довольно искусственными. В статье даётся пример более естественной универсальной односторонней функции.

Если доказать, что обращение некой односторонней функции является NP-полной задачей, то это будет очень крутой результат, так как он покажет, что либо P=NP либо есть односторонние функции (и значит криптография). При этом на NP-полноту обращения достаточно проверять только некую универсальную одностороннюю функцию, так как если обращение некой универсальной односторонней функций не является NP-полной задачей, то и обращение любой другой односторонней функции не является NP-полной задачей. Поэтому нам интересно исследовать на NP-полноту универсальные односторонние функции, и чем естественнее определение такой функции, тем легче это исследование будет провести.

Еще универсальные односторонние функции самые "надежные" из односторонних функций, так если их взломать, то можно взломать и все остальные односторонние функции. Поэтому интересно найти универсальные односторонние функции которые можно эффективно вычислять и использовать на практике.

Спасибо! Да, оказывается у меня было заблуждение о том, что обращение односторонних функций обычно является NP-полной задачей.

Интересно узнать, что это на самом деле открытый вопрос.

Предположим, что P != NP и односторонних функций нет. Тогда умножение чисел тоже не односторонняя функция. Но факторизация ведь (это так?) NP-трудная задача (к ней сводятся все NP), значит все NP-задачи могут быть решены эффективно, значит P = NP - противоречие?

Где в моих рассуждениях ошибка?

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

А как влияет культурный код на колмогоровскую сложность? Вот, например, программа для записи 999999999999 очевидна для нас, привыкших к десятеричной системе счисления. В двоичной системе сложность записи повышается. Помимо системы счисления наверняка есть и другие вещи, позволяющие оптимизировать запись в зависимости от багажа знаний записывающего. Древние люди, например, число e не знали. Только pi.

Ну тут нужно учитывать «багаж», но не культурный, а размер компилятора/системы команд процессора (или эквивалент).
Ведь компьютер тоже не знает, что такое pi. У него может быть или алгоритм для расчёта знаков числа, или константа.

Согласен. Я почему-то подумал про константы. Но для оценки сложности они, пожалуй, не подходят. И если брать голый ассемблер, то он и не будет оперировать десятичными числами. Про девятки он не знает. Тогда зависимость будет минимальной.\

Я по привычке про оптимизацию алгоритмов на ЯВУ подумал)

Тогда можно попрощаться с криптографией

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

Обычно в симметричной криптографии секретом является ТОЛЬКО ключ, а алгоритм, как правило, открытый. Да, есть засекреченные алгоритмы, но целесообразность такого оставим на откуп профильных ведомств.

Я так понимаю, имеется в виду секретность получения вектора инициализации для ГПСЧ.

Хорошо, менее параноидальные пользователи криптографии используют известные алгоритмы. Но эти алгоритмы не предполагают разглашение результата прямого преобразования, как в асимметричной криптографии. То есть там нет места для взлома "возможно слабого" обратного преобразования.

Хотя в моём случае стоило добавить это уточнение ещё в первом сообщении. Но получение шифрующей последовательности по имеющемуся в наличии закодированному сообщению затруднительно по причине неоднозначности преобразования шифр -> открытый текст. Это аналог неизвестного множества алгоритмов для случая с асимметричной криптографией, ведь даже умея вскрывать все обратные преобразования, но не зная конкретный алгоритм, мы получаем ту самую неоднозначность.

А имеет ли смысл публиковать перевод статьи неспециалиста? Ведь Erica Klarreich не является специалистом в этой области. Те, кто не разбираются могут вообще не понять, понять неправильно или не до конца. Специалисты же читают совсем другие тексты. Тогда возникает вопрос: А на кого рассчитана эта публикация? Тем более, что текст не рецензировался, как я понимаю.

"Одну и ту же монету (можно уточнить, что гарантировано симметричную) подбросили 99 раз. Все разы выпал орёл. Какова вероятность того, что на сотый раз выпадет решка? "

Предыдущие результаты (их 99) однозначно указывают на более чем вероятный результат.

Монета ничего не знает про предыдущие броски. Вероятность 0.5

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

Ну там же оговорились, что бросают "гарантировано симметричную" монету. 100 бросков — слишком мало, чтобы делать какие-то выводы.

За 100 бросков явно напрашивается очевидный вывод. Как уже сказали выше — монета абсолютно симметричная и имеет с обеих сторон орла.
напрашивается очевидный вывод
Лучше сформулировать «по результатам 100 бросков вероятность отсутствия решки неотличимо близка к 100%, но никогда не 100% (как и вероятность того, что этот комментарий написал не кот)».

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

Такой подход наиболее практичен в свете быстро надвигающихся квантовых компьютеров.

И как с этим всем соотносится постквантовая криптография? Справедливы ли там все эти рассуждения, есть ли там такая функция-стражник, которая защищает односторонность и вообще постквантовую криптографию единолично? Отличается ли этот стражник от стражника доквантового?

Момент, который был для меня не очевиден, пока не задумался: невычислимость Колмогоровой сложности сводится к проблеме останова.

Можно вообразить программу, которая перебирает все возможные программы в порядке возрастания размера. Резмер первой компилирующейся и выдающей на выходе нужную строку - это Колмогорова сложность. Однако такая программа не реализуема из-за проблемы останова.

Если программа будет перебирать все возможные варианты, то разве она в какой-то момент не остановится гарантированно на варианте

print('наша_целевая_строка')

? Ведь этот ответ точно даст нам на выходе нашу строку.

Она могла бы остановиться на такой, если не нашла более короткой. Но из-за проблемы останова она может зависнуть на какой-нибудь программе на пол пути. И мы не будем знать она висит ли вот вот закончит и выдаст нужную строку.

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

Yuval Ishai - Юваль Ишаи, а не "Исхаи" (יובל ישי) - не понимаю, почему sh из оригинального ש (шин) транслитеровали как "сх"

Sign up to leave a comment.

Articles