В том, что я читал в криптографических книгах, авторы относят «статаналоги» к отображениям двоичного пространства в двоичное меньшей размерности. На самом деле все гораздо более общее.
Входы, порождающие часть наблюдаемой последовательности в методе действительно считались (и должны считаться) только двоичными, а вот сама она необязательно должна быть двоичной. Сформулируем задачу статистического дешифрования в том виде, в котором она была известна автору давным-давно.
Пусть мы наблюдаем две последовательности xt и yt, t=1,…, N, где xt из GF(2n) – многомерное поле размерности n из 2-х элементов 0 и 1, а yt из поля действительных чисел R. Между этими последовательностями существует функциональная связь для любого целочисленного положительного t
yt=Fk(xt)+ξt,
где Fk(x) –функция отображения GF(2n) в R, зависящая от «ключа» k из некоторого множества К, которую для любого k мы знаем;
ξt– последовательность стационарных действительнозначных случайных величин со средним нуль и независящих от xt.
А вот какой k был в том случае, который наблюдаем, этого мы не знаем.
Также обычно предполагается, что дисперсия Σ ξt равна C0·N, где C0– некоторая константа.
Задача дешифрования – это определение при известных последовательностях xt и yt, неизвестного «ключа» k, изначально выбранного из множества K случайным и равновероятным образом.
При этом обычно xt для любого t также предполагался случайным и равновероятным вектором из GF(2n) и для любого k дисперсия ΣFk(xt) равна Ck·N и для всех k константа Ck меньше либо равна константы C.
Как определить k? Можно тотальным перебором. Берем ключ r и строим статистику S(r)=ΣFr(xt)·yt. Если r=k, то среднее этой статистики положительно и равно Σ(Fr(xt))2, т. е. является выборочной статистикой для оценки положительной величины N·E(Fr(x))2, где Eg(x) – это математическое ожидание при случайном и равновероятном векторе x действительнозначной функции g(x) отображающей GF(2n) в R.
Для k≠r получаем оценку величины N·E(Fr(x)·Fk(x)), которая может быть очень разной для разных k.
Но выше было написано: «неизвестного «ключа» k, выбранного из множества K случайным и равновероятным образом.»
Поэтому для среднего второго распределения получаем
N·E(Fr(x)·ΣkFk(x)·|K|-1), где |K| — число ключей.
Так как ΣkFk(x)·|K|-1 нам известна, то мы ее можем сделать любой. И потому обычно ее в уравнении для ytделают равной нулю.
Таким образом, мы получаем задачу различения двух простых гипотез о среднем статистики с разностью средних O(N) и дисперсиями O(N) для обеих гипотез. Каким должно быть N для хорошего различения таких гипотез в случае, когда статистика Fr(xt)·ytимеет нормальное распределение, для каждой из гипотез можно легко найти в любом учебнике по математической статистике.
Как и есть огромное число статей, в которых получены условия слабых зависимостей случайных величин xt и ξt достаточные для асимптотической нормальности суммы ΣFr(xt)·yt. Одна из них принадлежит и автору данной заметки:
Верхние оценки для семиинвариантов суммы мультииндексированных случайных величин
Но трудоемкость тотального перебора, увы, равна |K|. Как ее можно сократить? Вот тут мы и приходим к методу «статаналогов».
Предположим, что К является декартовым произведением двух множеств K1и K2. Как можно определить ключ (k1,k2), kiєKi, только тотальным перебором K1? Да по той же «логике», как и вышеизложенное. Мы должны найти функцию Gr(x), где rєK1, такую, что для ключей вида k=(r,k2) имеет место условие:
EGr(x)·Fk(x)≥δ>0,
и N достаточно большое, чтобы различить две простые гипотезы о среднем статистики с разностью средних не меньше δ·Nи дисперсиями O(N).
В государственном криптографическом анализе СССР еще считалось, что слабостью шифра является случай, когда такое возможно даже не для всех r из K1, а только для его подмножества с числом элементов z·|K1|, где 0<z<1.
И какая у нас получается трудоемкость определения ключа? Очень простая
|K1|+β·|K|,
где β – ошибка второго рода нашего критерия, а вероятность правильного определения ключа данным алгоритмом 1-α, где α – ошибка первого рода нашего критерия.
Кроме одного этапа можно сделать несколько, путем дробления K2на еще одно декартово произведение K2и K3 и построение статаналогов для новых k вида (r,k), r=(r1,r2), r1 из оставшихся «ключей» из K1 после первого этапа, а r2 из K2и сократить трудоемкость до
|K1|+β·|K1|·|K2|+ β· β1·|K|,
где β1 – ошибка второго рода нашего критерия для второго этапа алгоритма.
Потом делить можно K3и так далее.
А что самое интересное из написанного выше, без чего собственно весь вышеизложенный текст превращается в демагогию? Это вопрос: как строить функцию Gr(x)? И вот тут мы попадаем в разложение функции Fk(x) в ряд Фурье
Fk(x)=Σfk(a)(-1)<a,x>,
где a из GF(2n) и <a,x>= Σai·xi(сумма произведения координат по модулю 2).
И как построить «статаналог», зависящий только от r из K1?
А предположим, что для любого фиксированного r из K1и любого «ключа» k равного (r,k2) существует A(r) – подмножество GF(2n) такое, что для любых a из этого множества нам известна функция gr(a), принимающая значения -1, 0 и +1, для которой имеют место равенства
gr(a)=sign(fk(a)), если aєA(r) и нуль в противном случае.
Возьмем в качестве функции Gr(x) функцию Σgr(a)(-1)<a,x>. И что получим для EGr(x)·Fk(x), если k=(r,k2)? Да очень простое равенство
Σmod(fk(a))·I(aє A(r)), где mod(s) – модуль s, I — индикатор события.
Почему? Да потому что для любого a≠нулевому вектору E(-1)<a,x>=0, а для нулевого вектора это 1.
И наша задача дешифрования сведется только к анализу достаточности N наблюдений для «хороших» α и β нашего критерия на отличие последней суммы от нуля.
То, что написано выше, было известно задолго до прихода автора в 5 отдел Спецуправления. И потому все шифраторы строились так, что если последовательность векторов xtслучайна, равновероятна и независима, то на реальной длине N любого шифратора для одного ключа k α и β получались «плохими». Но в реальности для «черных ящиков» у последовательности xtотсутствовала независимость. Собственно при помощи алгоритмов, основанных на методе оценок семиинвариантов сумм слабозависимых случайных величин, автору статьи и удалось для одной такой зависимости xt, которая имела место, построить быстрые алгоритмы вычисления fk(a) для векторов a c числом единиц не больше 3-х при n больше 1000. Это для расчета всех fk(a) нет и ничего не будет быстрее «алгоритма Фурье» с трудоемкостью 2n/2. А, как показано выше, именно расчет fk(a) для подмножества GF(2n) и лежит в основе метода дешифрования «статаналог».
И, как ни парадоксально, во всех новых изобретениях публичных шифраторов и «производстве криптовалют» автор нигде не видел даже того, что написал выше про советскую криптографию: все шифраторы строились так, что если последовательность векторов xtслучайна, равновероятна и независима, то на длине Nлюбого шифратора для одного «ключа» k α и β получались «плохими».
Естественно предчувствую «возражение» против написанного: «Зачем Вы пишите про поле GF(2n), операции которого давно не используются в современных шифраторах».
Так двоичность векторов xtиз современных компьютеров никуда не делась, а функцией Fk(xt) можно точно описать любые операции в любом кольце и поле. И ряд Фурье существует для любой функции отображающей двоичные вектора размера n в поле действительных чисел. А величина (-1)<a,x>появляется просто из определения этого ряда.
И конечно самый интересный для сегодняшних дешифровальшиков вопрос: «Какую функцию Fk(xt) Вы видите в шифраторе МММ?». Увы, это та задача, которую Вы сами и должны решать, если хотите дешифровать тем методом, который в истории криптографии с 1945-го по 1990-й года был самым успешным для дешифрования, если не считать шпионаж с покупкой «ключей».
Ссылка на определение статистического аналога из учебника по криптографии
studme.org/205763/informatika/statisticheskie_analogi
smart-lab.ru/blog/1217949.php
Судя по курсу 0.55*USD+0.45*EUR с 11.09 он остался прежним: 16%.
что изменится?
«Кроме того, значительным достижением 8-го ГУ КГБ в сфере дешифровки в 1989 году было раскрытие криптосистемы аналоговой аппаратуры засекречивания телефонных переговоров АНБ США «STU-II», в результате чего КГБ смог прослушивать телефонные разговоры между Белым Домом и штаб-квартирой НАТО в Брюсселе».
А на ютубе есть видео середины 70-х с этим самым «STU-II», когда его ввели в эксплуатацию. Правда без демонстрации шифратора.
А для вскрытия DES примерно в те же годы был предложен принципиально другой алгоритм построения функции F. И если в первом случае было мое активное участие, то во втором — это заслуга совсем другого человека.
ves2010, Анализ треда от Дипсика:
Ваше ощущение, что «люди вообще не понимают, что пишут», абсолютно верно. Тред является наглядной иллюстрацией обсуждения сложной темы на уровне популярных мифов и упрощений.
ves2010 не понимает базовых принципов работы майнинга, неизменности блокчейна и того, что такое приватный ключ.
А.Г. пытается направить дискуссию в верное русло, но тоже использует не совсем корректную терминологию («пароль» вместо «приватный ключ»).
-=КОТ=- задает правильные уточняющие вопросы.
Итоговый вывод
Комментарий А.Г. не противоречит нашему первоначальному анализу, а, наоборот, усиливает его.
ves2010 по-прежнему демонстрирует непонимание основ работы блокчейна (майнинг, неизменность).
А.Г. же показывает, что его понимание простирается гораздо глубже поверхностных объяснений. Он оперирует корректными историческими фактами и указывает на тонкие, но критически важные детали применения криптографии.
Ваша первоначальная интуиция была верна: в треде есть сильная путаница. Но теперь мы видим, что это «многослойная» путаница:
Слой 1 (ves2010): Полное непонимание технологии блокчейн.
Слой 2 (А.Г.): Глубокое, экспертное понимание классической криптографии, которое он использует, чтобы поправить общую дискуссию о ключах.
Таким образом, тред является отличным примером, когда один участник (ves2010) заблуждается в основах, а другой (А.Г.) обладает значительной экспертизой, но ведет дискуссию на уровне, малопонятном для первой стороны.
Скоро это будет повсеместно, ИИ отличный инструмент для троллей.) Если что я не троль, я тестировщик.
Шит он и есть шит. Даже если весьма модный. Мы видим многократное повторение сказки про голого короля с применением технических средств в особо крупном размере.
Для этого понадобится горшок свежей земли, нужно прибавить туда фунт красной меди и полстакана холодной воды, затем прокипятить всё в районе получаса. Затем добавь к составу три унции оксида меди, прокипяти полчаса, полунции мышьяка и кору дуба и тщательно прокипяти в течении часа. Сунь гвоздь в раствор, если он изменился, то дело сделано. Благодаря этому составу можно получить полфута золота.
Но тот гений, кто найдет то, что написано в этом абзаце, с помощью того, что написано выше в заметке, легко сможет превращать пепел в золото, или воду в вино на своей домашней кухне со скоростью на порядки превосходящей обычную добычу золота или созревание вина.
«Для этого понадобится горшок свежей земли, нужно прибавить туда фунт красной меди и полстакана холодной воды, затем прокипятить всё в районе получаса. Затем добавь к составу три унции оксида меди, прокипяти полчаса, полунции мышьяка и кору дуба и тщательно прокипяти в течении часа. Сунь гвоздь в раствор, если он изменился, то дело сделано. Благодаря этому составу можно получить полфута золота.»
Не знал, что так золото можно получать на химзаводе. Это правда можно?
Либо я что-то не понял, либо все смешалось в доме Облонских...
Подбор статистически обратной функции к хэшу SHA-256 и взлом Open Key шифрования — это не муж и жена, а четыре брата две принципиально разные задачи. Причем первая значительно проще)))
С уважением
yt=Fk(xt)+ξt
А Вы говорите «проще».
Где x и y известны, а k мы ищем. А все остальное в тексте заметки — это пути решения такой задачи.
А если б первую задачу решили, то биткоина уже бы не было
По MD5 сам работу читал — могу прислать.
Open Key в целом и криптография на эллиптических кривых (биткойн) — это совсем другое (сложная алгебраическая геометрия над дискретными полями). Но и в ней возможен прорыв )))
С уважением