Русский
Русский
English
Статистика
Реклама

Клеточные автоматы

Самая реалистичная интерпретация квантовой механики

16.06.2020 16:14:27 | Автор: admin


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


The Holographic Principle


Идея, что Вселенная развивается по правилам клеточного автомата не нова. В 1967 году Конрад Цузе в книге "Вычисление пространства" высказал предположение, что вся Вселенная является результатом детерминированного закона вычисления в автомате. Постепенно эту идею подхватывали и развивали представители разных направлений так или иначе связанных с вычислениями: Стивен Вольфрам, Дэвид Дойч, Ллойд Сет и др.



Также за развитие темы основательно взялся лауреат Нобелевской премии по физике Герард т Хоофт. Он известен тем, что сформулировал голографический принцип постулат теории струн, призванный разрешить информационный парадокс черной дыры. Большую часть идей своих предыдущих статей он обобщил в книге The Cellular Automaton Interpretation of Quantum Mechanics. Судя по количеству цитат и скачиваний, мысль очень даже пошла в народ. Как вариант, можно предложить самодельный перевод на русский: в облаке или на файлообменнике. Как оказалось, с наскоку такой труд не осилить, особенно техническую часть. Автор признает свой сложный английский, ну а главное, по ходу изложения используется терминология и техники из квантовой теории поля, так что там еще придется побуксовать некоторое время.


The Quantum Enigma


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


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


Собственно, Эйнштейн видел квантовую теорию неполной и отстаивал мысль, что на фундаментальном уровне физика должна быть детерминистичной. Действительно, введение объективной случайности похоже на заметание мусора под ковёр. Ну, хотя бы на этой идее можно хорошо поспекулировать: чтоб не нарушался принцип причинности, достаточно ввести воздействие внешнее по отношению к нашей Вселенной, что должно импонировать товарищам придерживающимся теистических взглядов. А вот детерминизм подобные рычаги ломает (что не расстраивает деистов и пантеистов). Дальше уже вопрос веры и вкуса, так что условимся, что нас пока интересует, как работает окружающий мир, и какие модели можно построить, чтобы наименьшими усилиями получить достоверные предсказания поведения этого самого мира. Это позволит обезопасить и наполнить комфортом нашу жизнедеятельность, а извечные вопросы выходят за рамки прагматизма, по той простой причине, что они не разрешимы в принципе.


The Phantom Agony


Многие консервативно настроенные ученые разделяли взгляды Эйнштейна, и одним из них был Дэвид Бом, чьи идеи повлияли на Джона Белла. Последний, несмотря на то, что вопросы об основах квантовой механики в то время были дурным тоном, провел детальный анализ ЭПР-парадокса, что и привело к знаменитым неравенствам. Историю Белла и Бома отложим на потом, а вот с неравенствами поработаем сейчас же.


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



Для измерения спина квантовой системы используем установку Штерна-Герлаха. В тривиальнейшем случае она ведет себя как сортировочная машина: на вход поступают частицы из печки, на выходе же два потока: условно, частицы "+" и "-".



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



Здесь детекторы будут срабатывать с вероятностями 50%, 0%, 0%, 50% соответственно.


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



Здесь уже соотношение срабатывания детекторов зависит от угла наклона второго прибора.



На рис. 1.9 ориентация второго прибора ортогональна первому. А третий первому сонаправлен. И на каждый прибор поступает с равной вероятностью одна восьмая всех частиц. Странно, ведь если судить с позиций реализма, то выходит, что каждая частица носит с собой по три бита информации, в которых записаны ее предпочтения для прохождения каждой установки. Либо же частицы это кубиты, взбалтывающиеся после каждого измерения. Пока эксперименты наталкивают на мысль, что объективных свойств нет как таковых, и результаты разыгрываются чистой случайностью при каждом элементарном взаимодействии.


Усложняем эксперимент. Источник теперь генерирует спутанные частицы, результаты измерения которых антикоррелируют. То есть, если первый детектор отловит "плюс", то второй покажет "минус".



А приборы можно ориентировать в одном из трех направлений каждый. Теперь наши кубиты меряются в ортогональном базисе, причем ориентация каждой установки задается случайно. На рисунке показана конфигурация {A,B}. После выпуска каждой пары мы получаем результат измерения. К примеру [A+,B] значит что в первой сортировочной машине сработал плюс-детектор, а во второй минус-детектор.


Так, для нашего эксперимента, любая частица должна быть готова к измерению в каждом из трех базисов, посему ей придется таскать с собой три бита скрытых переменных. Скажем, частица, у которой в паспорте указано (+ - +), пройдет через установку, ориентированную в A-направлении, как положительная, по В как отрицательная, и по С снова как положительная. А у ее антикоррелирующей роднульки соответственно по документам будет значиться (- + -). Итого, в источнике выдается восемь вариантов паспортов.


Прикинем какова вероятность, что выпадет [A+,B]. Такой расклад выйдет для частицы с (+ + -) или
с (+ + +), у которой соучастник будет иметь соответственно (- - +) или (- - -). К тому же, учитываем вероятность выставления на приборах нужной конфигурации P{A,B}. Тогда


P[A+, B-] = P{A,B} * ( P(+ + -) + P(+ + +) )


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


P[A+, B-] = 1/9 * ( P(+ + -) + P(+ + +) )
P[A+, C+] = 1/9 * ( P(+ + -) + P(+ - -) )
P[B+, C-] = 1/9 * ( P(+ + +) + P(- + +) )


Сложим вторую и третью формулы и заметим, что в ответе будет содержаться первая формула


P[B+, C-] + P[A+, C+] = P[A+, B-] + 1/9 * P(+ - -) + 1/9 * P(- + +)


Что наталкивает на неравенство:


$ P[B^+, C^-] + P[A^+, C^+] \geq P[A^+, B^-] $


А если перевести вероятности в штуки:


$ N[B^+, C^-] + N[A^+, C^+] \geq N[A^+, B^-] $


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


Design Your Universe


Критично настроенные читатели возразят: конечно, эта теория не является квантовой механикой, поэтому она не разделяет ни одной из ее проблем. Верно, но наша теория должна порождать квантовую механику, не создавая связанных с ней проблем.
Герард т Хоофт

Супердетерминизм заключается в предположении, что не существует никакой объективной случайности. Это довольно категоричная форма реализма, согласно которой, Вселенная существует независимо от разумных наблюдателей и подчиняется только своим фундаментальным законам, строго следуя принципу причинности. То есть всякое событие предопределено еще в первые мгновения существования Вселенной.


Это позволяет рассматривать естество как результат работы клеточного автомата. Герард т Хоофт, отталкиваясь от этого предположения, показывает в своей книге, как можно попытаться добраться до стыка квантовой механики и классической физики, начинай путь с одной либо с другой стороны.


По ходу дела Хоофт вводит такое понятие как онтологический базис. Это особый базис, с точки зрения которого, волновая функция может принимать только два значения: 1 и 0. Состояние фактически реализуется, когда волновая функция равна 1, и оно не описывает наш мир, когда волновая функция равна нулю. Именно такую "волновую функцию Вселенной" можно назвать онтологической. Любопытно, что онтологическая волновая функция выглядит как one-hot вектор, т.е. единица и куча нулей. И с точки зрения онтологического базиса, оператор эволюции для достаточно плотной сетки временных переменных представлен не более чем перестановкой состояний.



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


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


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


The Divine Conspiracy


Собственно, вот что: беспрерывно вертящиеся полупрозрачные зубчатые колеса. Это случалось со мной и раньше. Зубчатых колес обычно становилось все больше, они наполовину заполняли мое поле зрения, но длилось это недолго, вскоре они пропадали, а следом начиналась головная боль всегда было одно и то же.
Р. Акутагава

В описанном выше эксперименте по проверке неравенств Белла стоило обратить внимание на независимость выбора конфигураций установок. Чтобы считать настройки равновероятными нужно менять состояние каждого прибора независимо. Как вариант, Алёнушка и Братец-Иванушка разносят свои установки подальше и настройки базиса выбирают с помощью бросков монеты. Но такое ощущение, что измеряемые частицы устроили некий заговор и знают какие настройки будут выбраны.



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



Насколько человек хорошо справляется с ролью генератора случайных чисел (см. стр. 12)? И есть ли у него свобода воли в том смысле, что выбор не продиктован законами Вселенной? Согласно супердетерминизму нет. Для многих неприемлема мысль, что нечто может развиваться без их участия, а тем более всецело и полностью управлять их миром. Но прогресс в области молекулярной биологии и нейронаук все меньше оставляет сомнений в нашей зависимости от законов физики. Наверное, отрицание отсутствия свободы воли как таковой это самый главный предрассудок против реализма и супердетерминизма.


Consign to Oblivion


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


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


Квантово-механическая теория, описывающая релятивистские субатомные частицы, называется квантовой теорией поля, и она подчиняется таким фундаментальным условиям, как причинность, локальность и унитарность. Требование всех этих желательных свойств было ядром успехов квантовой теории поля, и это в конечном счете дало нам стандартную модель субатомных частиц. Если же пытаться воспроизвести результаты квантовой теории поля в терминах некоторой детерминированной базовой теории, то, по-видимому, придется отказаться по крайней мере от одного из этих требований, что снимет большую часть красоты общепринятой теории; гораздо проще этого не делать, и поэтому легче пожертвовать "классичностью". Либо ситуацию спасет проработанная теория квантовой гравитации многие авторы грезят, что она сдружит именно его интерпретацию с теорией поля.


Большинство моделей клеточных автоматов будут сильно отличаться от квантованных теорий поля для элементарных частиц. Однако основной вопрос, обсуждаемый в книге т' Хоофта заключается не в том, легко ли имитировать Стандартную модель в клеточном автомате, а в том, можно ли получить квантовую механику и нечто, похожее на квантовую теорию поля, по крайней мере, в принципе. Происхождение непрерывных симметрий стандартной модели остается за пределами рассмотренных примеров, но автор задавался целью обсудить вопрос, в какой степени клеточные автоматы могут использоваться для аппроксимации и понимания квантовой природы этого мира.


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



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


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


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


Requiem for the Indifferent


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


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


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


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



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


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


P.S.


Подобные идеи нашлись у одного русскоязычного автора


Воксельные автоматы можно строить с помощью crysral или Visions of Chaos


P.P.S.


Если кому интересно, как осуществлялся перевод книги. Использовалась софтинка mathpix. Она распознает нейросеткой изображения и собирает латех-код. Работа была доверена макросу, который листал книгу и оцифровывал по пол страницы, закидывая все в один документ. Так как гугл переводит все без разбора, а глупенький яндекс, так вообще транслитизирует даже аббревиатуры и греческие буквы, то все с помощью питон-скрипта запоминалось в словарь, оставляя в документе лишь нумерованные флаги. А уже потом, переведенный документ раскидывался по файлам, с последующим нудным допиливанием ссылок и ошибок перевода. Автор книги ввел свои названия, среди которых часто использовались beable операторы. Яндекс перевел их как "библейские" и, хотя автор такое точно не одобрит, очень трудно побороть соблазн, и не оставить их в релизной версии книги. То-то было бы раздолье для желтющих изданий и диванных ученых \_()_/

Подробнее..

Перевод Создание процедурной анимации смерти при помощи автоматов падающего песка

30.12.2020 12:20:04 | Автор: admin
В этом посте я покажу, как использовал автоматы падающего песка для генерации анимаций смерти монстров в моей игре Vagabond.



Автоматы падающего песка


Автомат падающего песка это клеточный автомат, симулирующий перемещение песчинок и создание куч песка под действием гравитации.

Правила просты:

  • Если ячейка под песчинкой пуста, то песчинка движется в пустую ячейку (см. (a)).
  • Если ячейка под песчинкой заполнена, но свободна ячейка внизу слева или внизу справа, то песчинка движется туда (см. (b)). Если свободны обе, то одна из них выбирается случайным образом.
  • В остальных случаях песчинка не движется.


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

С помощью этих простых правил можно получить вот такие анимации:


Генерирование анимаций смерти


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

Принцип заключается в том, чтобы считать непрозрачные пиксели изображения песчинками и заставить их падать, создавая кучу песка из трупа монстра. Единственное отличие от представленных выше правил заключается в том, что каждая песчинка теперь имеет цвет. Вот что мы получим:


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

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


Чтобы получить изображение из 3D-состояния клеточного автомата, я проецирую состояние в 2D, беря для каждой пары координат (i, j) первую непрозрачную ячейку, где переменная k выполняет итеративный обход слоёв. Вот результат для трёх слоёв:


Чтобы улучшить ситуацию со скоростью, я рандомизирую количество строк, на которое падает песчинка за один шаг в интервале от 1 до $n$. На практике я использую $n = 2$ или $n = 3$. Вот результат:


При этом во время расщепления монстра при падении создаются дырки.

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


В среднем песчинки падают с постоянной скоростью, однако гравитация должна их ускорять. При желании для симуляции ускорения можно пропускать больше кадров в конце анимации.

Полный скрипт выложен на GitHub.

Удобно то, что если вам не понравился результат, то можно запустить скрипт заново с другим seed, и получить новую анимацию. Вот несколько примеров анимации для летучей мыши:

Подробнее..

Хеш-функции на основе клеточных автоматов

21.12.2020 00:08:29 | Автор: admin

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

Клеточные автоматы

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

В случае элементарных клеточных автоматов сетки ячеек имеют одномерное измерение.

В клеточном автомате для каждой ячейки существует набор других ячеек, называемых окрестностью, которые определяют следующее состояние ячейки. Начальное состояние - это состояние, в котором определены значения ячейки и их окрестности в момент времени t. Теперь новое поколение ячеек создается, когда "t" увеличивается на 1.

Выше представлены две соседние итерации для Правила 30, который определяется следующим образом:

C^{t+1}_s=C^t_{s-1} \ XOR \ (C^t_s \ OR \ C^t_{s+1})

Что можно для простоты интерпретировать в следующем виде:

Преимущества использования клеточных автоматов

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

  • Обладают хорошим лавинным эффектом (малое изменение входных данных влечет полное изменение выходных).

  • Устойчивость к атакам временного анализа.

Вышеописанные преимущества сразу наталкивают на мысль использовать такие алгоритмы в интернете вещей.

Что же там под капотом?

Алгоритм получает на вход сообщение cпроизвольного размера и ключ k , размером: 128, 192 или 256 бит и возвращает хешированное значение ключа.

Базовое описание алгоритма

  1. Первоначальное сообщениеcбыть дополнено следующим образом:

    size(c) \text{ mod } 512 = 0\text{ and } size(c) >= 512

    дополнение можно производить простым заполнением недостающих разрядов нулями.

    Обозначим дополненное сообщение какC.

  2. Аналогично дополняется ключk.

    size(k) \text{ mod } 512 = 0\text{ and } size(k) >= 512

    Обозначим дополненный ключ как k

  3. Сообщение C разбивается на блоки по 512 бит.

  4. Каждый 512 битный блок, полученный на предыдущем шаге разбивается ещё раз на 8 подблоков по 64 бита.

  5. К каждому 512 блоку применяется правило 30.

  6. Выход пункта 5 вместе с 512 битным ключом поступают в функцию трансформации (ФТ).

  7. Этот результат подвергается операции XOR с результатом пункта 5 для следующего 512 битного блока.

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

  9. Шаги 6, 7 и 8 повторяются, пока не кончатся блоки сообщения по 512 бит, то есть пока всё сообщение не будет хешировано.

Теперь рассмотрим один из вариантов реализации самой функции трансформации, для приведенной ниже функции трансформации авторам удалось добиться полного лавинного эффекта.

Функция трансформации

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

Здесь мы будем оперировать с отдельными 64 битными блоками.

  1.  a=e

    Это означает, что байты из eнапрямую отображаются вa

  2.  b=J(g, h, K_1) или  b=J(g, h, K_5)

    Если раунд нечетный, то используется  a=J(g, h, K_1) иначе a=J(g, h, K_5)

     J(x,y,z) = ((\text{ROTL}^{47}(x)\text{ XOR }\,Rule\,30(\text{ROTL}^{37}(y'))\text{ AND }((\text{ ROTR}^{17}(z)))

  3.  c=G(e, f, K_2) или c=G(e, f, K_6)

    Если раунд нечетный, то используется  c=G(e, f, K_2) иначе  c=G(e, f, K_6)

     G(x,y,z) = (Rule134(Rule30(x'))\text{ OR } y)\text{ XOR } (Rule30(z')\text{ AND } x)

  4.  d = F(a,c)

     F(x,y) = Rule30(x)\text{ XOR } y'

  5.  e= J(a, d ,K_4) или  e=J(a, d ,K_8)

    Если раунд нечетный, то используется  e= J(a, d ,K_4) иначе  e=J(a, d ,K_8)

    Функция Jопределена в пункте 1.

  6.  f=H(b, d)

     H(x,y) = \text{ROTL}^{17}( x )\text{ XOR }\text{ ROTL}^{59}(y)

  7.  g=I(c, f)

     I(x,y) = \text{ROTL}^{41}(x')\text{ XOR }\text{Rule134}(\text{ Rule30}(\text{ ROTL}^{31}(y')))

  8.  h=H(a, K_3) или  h = H(a, K_7)

    Если раунд нечетный, то используется  h=H(a, K_3) иначе h=H(c, K_7)

    Функция Hопределена в пункте 4.

Где ROTL циклический сдвиг битов влево, ROTR циклический сдвиг битов вправо.

Внутри этой функции преобразования количество раундов распределяется динамически. Они рассчитываются по формуле:

 rounds = количество '1' в блоке сообщения(512 битовом) +количество '0' в ключе (512 битовом)  mod 512 .

Пару слов о безопасности

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

Ссылки и статьи по теме:

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru