Трещит генератор: На холодную треск из под капота со стороны генератора,что может быть?

Содержание

Как устранить шум генератора автомобиля

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

Почему возникает шум

Шум от изношенных подшипников не влияет на работу, но замену не стоит откладывать, потому что могут вывести генератор из строя в неподходящий момент. Убедиться, что шумит подшипник генератора можно так: «дать газу» — шум или свист должен увеличиться, т.к. генератор связан с двигателем и его отдача жестко привязана к оборотам. Чем выше обороты двигателя — тем сильнее шум.

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

Порядок работ по замене подшипников

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

  1. Снимаем генератор с автомобиля и приступаем к полной разборке.
  2. Откручиваем все подряд — снимаем пластиковую крышку, вынимаем регулятор напряжения с щеточным узлом.
  3. Чтобы добраться к подшипникам отделяем статор от крышки генератора, не повредив обмотку.

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

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

После полной разборки генератора увидим подшипники. Обычно их два, передний и задний. Далее выпрессовываем или снимаем изношенные — ставим новые. Сборку производим в обратном порядке.

Прежде, чем ставить генератор на место следует проверить ремень на износ. Для проверки нужно согнуть ремень пополам с внутренней стороны (желательно в нескольких местах) — проверить на наличие трещин и разрывов. Если слишком придирчивы и обнаружили микро-трещинки на ремне — ничего криминального, он еще походит.

Видео в помощь

Натяжение ремня

Водитель должен проверять состояние и натяжение ремня генератора раз в 3 года. Если он ослаб, то будет слышен характерный свист из под капота. Особенно зимой, когда нагрузка высокая. Ослабление ремня сказывается на зарядке аккумулятора.

Проверить можно самостоятельно. При сильном надавливании на ремень в его середине он не должен прогибаться более чем на 5 мм (новый – на 2 мм). В случае необходимости, ремень необходимо натянуть или поменять.

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

Неисправности

При повышенном шуме генератора (шум довольно звонкий, металлический), проверьте не ослаблены ли гайки шкива. Если не помогает, обратитесь к специалисту: причина может быть в износе подшипников или замыкании на «массу» обмотки статора.

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

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

Замена щеток

При установке проверяем состояние щеток и их износ. Если стали короткие, т.е. сильно износились — меняем регулятор напряжения в сборе со щеточным узлом. От состояния щеток зависит состояние зарядки аккумулятора авто. Щетки проверяют после 60 000 — 80 000 км пробега (раз в 3 — 4 года). Чтобы их проверить самостоятельно не нужно снимать генератор с машины.

  1. Отсоедините «-» от аккумулятора.
  2. Отвинтите и осторожно снимите регулятор напряжения на обратной стороне генератора. Если изношенные щетки выступают из щеткодержателя менее чем на 5 мм, их следует заменить.
  3. Перед установкой регулятора с новым щеткодержателем на место необходимо продуть и протереть гнездо щеткодержателя от угольной пыли.
  4. На изношенных щетках посмотрите на равномерность износа, не стерт ли вал ротора в месте соприкосновения с ними. Может щетки менять поздно, и следует покупать новый генератор автомобиля.
  5. Установив новые щетки, проверьте, свободно ли двигаются в держателе.

При ремонте генератора авто и замене щеток, контрольная лампа может ошибочно показывать «отсутствие зарядки батареи». Такое случается, пока не притрутся щетки. Обычна эта ошибка исчезает быстро за несколько минут работы.

Вокруг трещит и падает мир

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

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

Фонари на улице горели, красиво мерцал лед.

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

Дом тоже стоит среди деревьев, но все же под крышей было спокойнее.

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

Я вышел на крыльцо. Вокруг темнота, идет дождь или снег, и то ближе, то дальше – кхххх – трррах! Трещат и валятся деревья. Рядом со старым домом стоит маленькая березовая рощица, всего их штук 10-15, сажал еще мой дед в середине прошлого века. Из них за эту ночь остались целыми две. Остальные все поломаны. Я стоял в темноте, слушал треск и понимал, что ничего не могу сделать ни для деревьев, ни даже для себя. Кто из них уцелеет, уцелеет ли наш дом?

Весь вечер при свечах.

Впрочем, помимо падающих деревьев, появилась еще одна проблема. Котел. Горячую воду по трубам гоняет насос, который работает от электричества, которое отключилось. Если вода перестанет циркулировать, котел перегреется и может взорваться. На случай блэкаута у нас имеется устройство бесперебойного питания для насоса. Работает от автомобильного аккумулятора. Часа три-четыре. Прошло четыре часа, аккумулятор разрядился. Я пошел к машине и снял с нее второй. Он оказался меньше по объему, его хватило на три часа.

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

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

И еще я понимал, что ничего не могу с этим сделать.

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

Настало утро. Я выбежал из холодного уже дома. Генератор, конечно, не завелся. Все зимы я держал его в тепле, лелеял, чистил, менял масло, подливал бензин, практически укачивал на руках. И он всегда выручал. Но именно этой зимой я почему-то решил не забирать его домой. Уже давно никаких катаклизмов не случалось, и он стоял, забытый, под навесом, заваленный палыми листьями и уже немного снегом. Генераторы – народ чуткий. Он этого мне не простил.

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

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

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

И вот тогда стало хорошо, а потом и тепло.

Утром мне позвонила одна хорошая знакомая из Москвы. Выслушав мой взволнованный рассказ, она сказала задумчиво: «Ну надо же, а у нас из окна все выглядит очень красиво!»

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

Здесь, за городом, становится очевиднее наша слабость. Что может человек, когда вокруг трещит и падает мир. Только молиться Богу. Ну и держать генератор в тепле.

Фото автора

Взлом генераторов случайных чисел с помощью машинного обучения. Часть 1: xorshift128 | Блог исследований группы NCC

Назад

Описание

  • 1. Введение
  • 2. Как работает xorshift128 PRNG?
  • 3. Нейронные сети и вентили XOR
  • 4. Использование нейронных сетей для моделирования xorshift128 PRNG
    • 4.1 Дизайн модели нейронной сети
    • 4.2 Результаты моделирования
    • 4.3 Глубокое погружение в модель
  • 5. Создание версии xorshift128, устойчивой к машинному обучению
  • 6. Заключение

1. Введение

с помощью машинного обучения. Взламывая здесь, мы имеем в виду, что можем предсказать последовательность случайных чисел, используя ранее сгенерированные числа, не зная начального числа. Мы начали с взлома простого ГПСЧ, а именно XORShift, следуя указаниям статьи, опубликованной в [1]. Мы упростили структуру нейросетевой модели по сравнению с предложенной в этом посте. Кроме того, мы добились более высокой точности. Этот блог призван показать, как обучить модель машинного обучения, которая может достичь 100% точности при генерации случайных чисел, не зная начального числа. Мы также глубоко погружаемся в обученную модель, чтобы показать, как она работает, и извлечь из нее полезную информацию.

В упомянутом сообщении в блоге [1] автор воспроизвел последовательность xorshift128 PRNG с высокой точностью, не имея начального числа PRNG, используя модель глубокого обучения. После обучения модель может использовать любые четыре последовательных сгенерированных числа для воспроизведения одной и той же последовательности ГПСЧ с побитовой точностью более 95 %. Подробности реализации этого эксперимента и наиболее обученную модель можно найти в [2].

На первый взгляд это кажется немного нелогичным, поскольку вся идея алгоритмов машинного обучения состоит в том, чтобы учиться на шаблонах данных для выполнения конкретной задачи, начиная от контролируемого и неконтролируемого обучения до обучения с подкреплением. С другой стороны, основная идея генераторов псевдослучайных чисел состоит в том, чтобы генерировать случайные последовательности и, следовательно, эти последовательности не должны следовать какому-либо образцу. Таким образом, не было никакого смысла (в начале) обучать модель ML, которая учится на шаблонах данных, на PRNG, который не должен следовать никакому шаблону. Не только выучить, но и получить 95% побитовая точность, что означает, что модель будет генерировать точные выходные данные ГПСЧ и ошибается в среднем только на два бита. Итак, как это возможно? И почему машинное обучение может взломать PRNG? Можем ли мы даже улучшить побитовую точность 95%? Это то, что мы собираемся обсудить в оставшейся части этой статьи. Начнем с изучения алгоритма xorshift128.

** Примечание редактора: как это связано с безопасностью? Хотя в этом исследовании рассматривается некриптографический ГПСЧ, в целом нас интересует понимание того, как основанные на глубоком обучении подходы к поиску скрытых шаблонов в функциях, предположительно генерирующих случайный вывод, могут работать в качестве предварительного условия для попытки использовать глубокое обучение для найти ранее неизвестные шаблоны в криптографических (P)RNG, так как это может потенциально послужить интересным дополнительным методом для криптоанализа этих функций. Здесь мы показываем нашу работу в начале исследования этого пространства. **

2. Как работает xorshift128 PRNG?

Чтобы понять, может ли машинное обучение (ML) взломать xorshift128 PRNG, нам нужно понять, как это работает, и проверить, следует ли оно каким-либо шаблонам или нет. Давайте начнем с изучения реализации алгоритма xorshift128 PRNG, чтобы узнать, как он работает. Реализация кода этого алгоритма может быть найдена в Википедии и опубликована в [2]. Вот функция, которая использовалась в репозитории для генерации последовательности PRNG (которая используется для обучения модели ML): 9(т >> 8))
вернуться ш
return _random

Как видно из кода, реализация проста. Он имеет четыре внутренних числа: x, y, z, и w, , представляющих одновременно начальное число и состояние PRNG. Конечно, мы можем обновить эту реализацию генератора, чтобы обеспечить начальное значение другим вызовом функции вместо его жесткого кодирования. Каждый раз, когда мы вызываем генератор, он сдвигает внутренние переменные следующим образом: y → x , z → y и w → z . Новое значение w оценивается путем применения некоторых битовых манипуляций (сдвигов и XOR) к старым значениям x и w . Затем новые w возвращаются как новое случайное число, выдаваемое генератором случайных чисел. Назовем функцию output, или .

Используя этот код, мы можем вывести логическое выражение каждого бита вывода, что приводит нас к следующим представлениям выходных битов вывода, 9 — это побитовое XOR. Схема этого алгоритма показана ниже:

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

Итак, после понимания алгоритма мы можем увидеть простую связь между последними четырьмя сгенерированными числами и следующим. Следовательно, если мы знаем последние четыре сгенерированных числа из этого PRNG, мы можем использовать алгоритм для генерации всей последовательности; это может быть основной причиной того, что этот алгоритм не является криптографически безопасным. Хотя сгенерированные алгоритмом числа кажутся случайными без четких отношений между ними, злоумышленник, знающий алгоритм, может предсказать всю последовательность xorshift128, используя любые четыре последовательных сгенерированных числа. Поскольку цель этого поста — показать, как модель ML может изучать скрытые отношения в образце PRNG, мы предположим, что мы знаем только, что существует некоторая связь между вновь сгенерированным числом и его последними четырьмя, не зная реализации алгоритм.

Немного возвращаясь к основному вопросу: могут ли алгоритмы машинного обучения научиться генерировать последовательность xorshift128 PRNG, не зная ее реализации, используя только последние четыре входа?

Чтобы ответить на этот вопрос, давайте сначала представим искусственные нейронные сети (сокращенно ANN или NN) и то, как они могут моделировать вентили XOR.

3. Нейронные сети и вентили XOR

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

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

Одним из примеров, используемых для описания того, как НС обрабатывают нелинейные данные, является использование НС для моделирования вентиля XOR с двумя входами. Основная причина выбора функции исключающее ИЛИ с двумя входами заключается в том, что хотя она проста, ее выходы не являются линейно разделимыми [3]. Следовательно, использование NN с двумя слоями — лучший способ представить вентиль XOR с двумя входами. На следующем рисунке (из блога Abhranil [3]) показано, как мы можем использовать двухслойную нейронную сеть для имитации XOR с двумя входами. Числа на линиях — это веса, а числа внутри узлов — это пороги (отрицательное смещение) и предполагается использование ступенчатой ​​функции активации.

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

4. Использование нейронных сетей для моделирования xorshift128 PRNG

Исходя из того, что мы обсуждали в предыдущем разделе, и нашего понимания того, как работает алгоритм xorshift128 PRNG, теперь понятно, что ML может изучать шаблоны, которым следует алгоритм xorshift128 PRNG. Теперь мы также можем решить, как структурировать модель нейронной сети, чтобы воспроизвести алгоритм xorshift128 PRNG. В частности, мы будем использовать плотную нейронную сеть только с одним скрытым слоем, так как это все, что нам нужно для представления любого набора функций XOR, реализованных в алгоритме xorshift128. Вопреки модели, предложенной в [1], мы не видим смысла использовать сложную модель типа LSTM ( «Долгая кратковременная память», разновидность рекуррентной нейронной сети ), тем более, что все выходные биты напрямую связаны с наборами входных битов с функциями XOR, как мы показали ранее, и нет необходимости сохранять внутреннюю состояний, как это делается в LSTM.

4.1 Дизайн модели нейронной сети 

Предлагаемая нами модель будет иметь 128 входных данных на входном слое для представления последних четырех сгенерированных целых чисел, 32-разрядных каждое, и 32 выходных данных  в выходном слое для выражения следующего 32-битного случайного сгенерированного числа. Основной гиперпараметр, который нам нужно решить, — это количество нейронов/узлов в скрытом слое. Нам не нужны несколько узлов, которые не могут представлять все термины функции XOR, и в то же время мы не хотим использовать огромное количество узлов, которые не будут использоваться и усложнят модель и увеличат время обучения. время. В этом случае, исходя из количества входных и выходных данных и сложности функций исключающего ИЛИ, мы сделали обоснованное предположение и использовали 1024 скрытые узлы для скрытого слоя. Следовательно, структура нашей нейронной сети выглядит следующим образом (входной слой игнорируется):

 ________________________________________________________________
Слой (тип) Выходная форма Параметр #
================================================== ===============
плотный (Плотный) (Нет, 1024) 132096
_________________________________________________________________
плотности_1 (Плотные) (Нет, 32) 32800
================================================== ===============
Всего параметров: 164,896
Обучаемые параметры: 164 896
Необучаемые параметры: 0
_________________________________________________________________ 

Как видим, количество параметров (весов и смещений) скрытого слоя составляет 132 096 (128×1024 весов + 1024 смещений), а количество параметров выходного слоя — 32 800 (1024×32 веса + 32 смещения), что дает в общей сложности 164 896 параметров для обучения. По сравнению с моделью, использованной в [1]:

 ________________________________________________________________ 
Слой (тип) Выходная форма Параметр # ================================================== =============== лстм (LSTM) (нет, 1024) 4329472 _________________________________________________________________ плотный (Плотный) (Нет, 512) 524800 _________________________________________________________________ плотности_1 (Плотные) (Нет, 512) 262656 _________________________________________________________________ плотности_2 (Плотные) (Нет, 512) 262656 _________________________________________________________________ плотности_3 (Плотные) (Нет, 512) 262656 _________________________________________________________________ плотности_4 (Плотные) (Нет, 512) 262656 _________________________________________________________________ плотности_5 (Плотные) (Нет, 32) 16416 ================================================== =============== Всего параметров: 5,921 312 Обучаемые параметры: 5 921 312 Необучаемые параметры: 0 _________________________________________________________________

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

Еще одна проблема с этой моделью — используемая функция потерь. Наша цель — получить как можно больше правильных битов; следовательно, наиболее подходящей функцией потерь в этом случае является « binary_crossentropy, », а не « mse ». Не вдаваясь в математику обеих этих функций потерь, достаточно сказать, что нас не волнует, будет ли выходное значение равным 0,8, 0,9 или даже 100. Все, о чем мы заботимся, это то, что значение пересекает некоторый порог, чтобы его можно было считать единицей. или не считаться нулем. Еще одним неоптимальным выбором параметра в этой модели является функция активации выходного слоя. Поскольку выходной слой состоит из 32 нейронов, каждый из которых представляет бит, значение которого всегда должно быть 0 или 1, наиболее подходящей функцией активации для этих типов узлов обычно является сигмовидная функция . Напротив, эта модель использует линейную функцию активации для вывода любого значения от -inf до inf. Конечно, мы можем ограничить эти значения, чтобы преобразовать их в нули и единицы, но обучение этой модели будет более сложным и займет больше времени.

Для остальных гиперпараметров мы использовали те же, что и в модели в [1]. Кроме того, мы использовали ту же входную выборку, что и другая модель, которая состоит примерно из 2 миллионов случайных чисел, выбранных из приведенной выше функции PRNG для обучения, и 10 000 случайных чисел для тестирования. Образцы случайных чисел для обучения и тестирования формируются в четверку последовательных случайных чисел, которые используются в качестве входных данных для модели, а следующее случайное число используется в качестве выходных данных для модели. Стоит отметить, что мы не думаем, что нам нужен такой объем данных для достижения той производительности, которой мы достигли; мы просто пытались соответствовать статье, на которую делается ссылка. Позже мы можем поэкспериментировать, чтобы определить минимальный размер данных, достаточный для создания хорошо обученной модели. В следующей таблице приведены параметры/гиперпараметры модели для нашей модели по сравнению с моделью, предложенной в [1]:

8 ense Сеть

4 90 lu
Выходной слой: linear
Модель NN в [1] Наша модель
Тип модели LSTM и Плотная Сеть
#Уровни 7 2
#Нейроны 1024 LSTM
2592 Плотные
3 5 629 10 0034 10 8
#Обучаемые параметры 5 921 312
(4 329 472 только из слоя LSTM)
164 896
Функции активации 903 красный

Скрытый слой: relu
Выход [Слой: сигмоид
Функция потерь mse binary_crossentropy

Сравнение между нашей моделью и предложенной в посте моделью]

4.

2 Результаты моделирования

После нескольких часов обучения модели и оптимизации гиперпараметров модель NN достигла 100% побитовой точности обучения! Конечно, мы прогнали тестовый набор через модель и получили тот же результат со 100% побитовой точностью. Чтобы быть более уверенными в том, чего мы достигли, мы сгенерировали новую выборку из 100 000 случайных чисел с другим начальным числом, чем те, которые использовались для генерации предыдущих данных, и мы получили тот же результат со 100% побитовой точностью. Стоит отметить, что, хотя упомянутая статья достигла 95%+ побитовая точность, что выглядит многообещающим результатом. Однако когда мы оценили точность модели (в сравнении с побитовой точностью), то есть ее способность генерировать точно следующие случайные числа без перестановки битов, мы обнаружили, что точность модели упала примерно до 26% . По сравнению с нашей моделью у нас точность 100% . 95%+  побитно не ошибается только в 2 битах, как может показаться (95% 32-битных меньше 2), а скорее эти 5% ошибок разбросаны по 14 бит . Другими словами, хотя эталонная модель имеет побитовую точность 95%+ , только 18 бит будут правильными на 100%, и в среднем 2 бита из оставшихся 14 битов будут изменены моделью.

В следующей таблице приведены результаты сравнения двух моделей:

3 50

32143 400

Модель NN в [1] Наша модель
Побитовая точность 95034 8

100 %
Точность 26 % 100 %
Биты могут быть перевернуты (из 32) 0

Сравнение точности моделей

В машинном обучении получение 100% точности обычно не является хорошей новостью. Обычно это означает, что либо у нас нет хорошего представления всего набора данных, либо мы переобучаем модель для выборочных данных, либо проблема детерминирована и не требует машинного обучения. В нашем случае он близок к третьему варианту. Алгоритм xorshift128 PRNG является детерминированным; нам нужно знать, какие входные биты используются для генерации выходных битов, но функция для их соединения, XOR, уже известна. Таким образом, этот алгоритм легко взломать машинным обучением. Таким образом, для этой проблемы получение 100% точной модели означает, что модель ML изучила сопоставления соединений битов между входными и выходными битами. Таким образом, если мы получим четыре последовательных случайных числа, сгенерированных этим алгоритмом, модель сгенерирует точную последовательность случайных чисел, как это делает алгоритм, не зная начального числа.

4.3 Подробное описание модели

В этом разделе мы подробно рассмотрим модель, чтобы лучше понять, что она узнала из данных ГПСЧ и соответствует ли она нашим ожиданиям.

4.3.1 Модель соединений первого уровня

Как обсуждалось в разделе 2, xorshift128 PRNG использует последние четыре сгенерированных числа для генерации нового случайного числа. В частности, реализация xorshift128 PRNG использует только первое и последнее числа из четырех, называемых w и 9.0034 x , чтобы сгенерировать новое случайное число, или . Итак, мы хотим проверить веса, которые соединяют 128 входов, последние четыре сгенерированных числа объединены, из входного слоя в скрытый слой, 1024 скрытых узла нашей обученной модели, чтобы увидеть, насколько сильно они связаны и, следовательно, мы можем проверить, какие биты используются для генерации выходных данных. На следующем рисунке показано значение весов по осям Y, соединяющим каждый вход по осям X с 1024 скрытыми узлами в скрытом слое. Другими словами, каждая точка на графике представляет собой вес от любого из скрытых узлов до входа по осям x:

Как мы видим, очень мало скрытых узлов подключено к одному из входов, где вес больше ~2,5 или меньше ~-2,5. Остальные узлы с малыми весами от -2 до 2 можно считать несвязанными. Мы также можем заметить, что входы между битами 32 и 95 не связаны ни с какими скрытыми слоями. Это связано с тем, что мы заявили ранее, что реализация xorshift128 PRNG использует только x , биты от 0 до 31, и w , биты от 96 до 127, от входов, а два других входа, y, и z , представляющие биты с 32 по 95, не используются для генерации выходных данных, и это именно то, чему научилась модель. Это означает, что модель точно изучила этот шаблон из данных, предоставленных на этапе обучения.

4.3.2 Анализ выходных данных модели

Подобно тому, что мы делали в предыдущем разделе, на следующем рисунке показаны веса, соединяющие каждый выход по осям X с 1024 скрытыми узлами в скрытом слое:

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

Как мы видим, очень мало битов влияет на те скрытые узлы, которые мы обвели на рисунке. Это биты 0, 8, 96 и 115, которые, если мы 9Х 8 . Мы ожидаем, что пять скрытых узлов с одним выходным узлом будут напоминать функциональность XOR этих четырех входных битов. Следовательно, модель ML может изучить функцию XOR для любого набора произвольных входных битов, если будет предоставлено достаточно обучающих данных.

5. Создание устойчивой к машинному обучению версии xorshift128

Проанализировав, как работает xorshift128 PRNG и как NN может легко взломать его, мы можем предложить простое обновление алгоритма, которое значительно усложнит взлом с помощью ML. Идея состоит в том, чтобы ввести в начальное число еще одну переменную, которая будет решать:

  1. Какие переменные использовать из x , y , z и w для создания o .
  2. На сколько бит сдвинуть каждую из этих переменных.
  3. В каком направлении смещать эти переменные, влево или вправо.

Это может быть двоично закодировано менее чем 32 битами. Например, только переменные w и x генерируют выходные данные в показанном ранее примере кода, который может быть закодирован в двоичном виде как 1001. Переменная w сдвинута на 11 бит вправо, что может быть закодировано в двоичном виде как 01011 0 , где младший бит 0 представляет правое направление. Переменная x сдвигается на 19 бит вправо, что может быть двоично закодировано как 10011 1 , где младший бит 1 представляет левое направление. Это представление займет 4 бита + 4×6 бит = 28 бит. Конечно, нам нужно убедиться, что 4 бита, которые выбирают переменные, не имеют этих значений: 0000, 0001, 0010, 0100 и 1000, так как они выбрали бы одну или никакую переменную для XOR.

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

6. Заключение

В этом посте обсуждалось, как работает xorshift128 PRNG и как построить модель машинного обучения, которая может учиться на «случайно» сгенерированных числах PRNG, чтобы предсказывать их со 100% точностью. Это означает, что если модель ML получает доступ к любым четырем последовательным числам, сгенерированным из этого PRNG, она может сгенерировать точную последовательность, не получая доступа к начальному числу. Мы также изучили, как мы можем разработать модель NN, которая лучше всего представляла бы этот PRNG. Вот некоторые уроки, извлеченные из этой статьи:

  1. Хотя людям может показаться, что ГПСЧ xorshift128 не следует какой-либо закономерности, машинное обучение можно использовать для прогнозирования выходных данных алгоритма, поскольку ГПСЧ по-прежнему следует скрытой закономерности.
  2.  Применение глубокого обучения для прогнозирования выходных данных ГПСЧ требует понимания структуры конкретного базового алгоритма.
  3. Не обязательно, что большие и сложные модели машинного обучения будут иметь более высокую точность, чем простые.
  4. Простые модели нейронных сетей (NN) могут легко обучиться функции XOR.

Код Python для обучения и тестирования модели, описанной в этом посте, представлен в этом репозитории в виде блокнота Jupyter. Обратите внимание, что этот код основан на старой версии кода, опубликованной в сообщении в [1], с изменениями, описанными в этом сообщении. Это было сделано намеренно, чтобы одни и те же данные и другие параметры оставались неизменными для объективного сравнения.

Подтверждение

Я хотел бы поблагодарить моих коллег из NCC Group за их помощь и поддержку, а также за ценные отзывы, особенно в части криптографии/кибербезопасности. Вот несколько имен, которым я хотел бы выразить искреннюю благодарность: Олли Уайтхаус, Дженнифер Ферник, Крис Энли, Томас Порнин, Эрик Шорн и Мари-Сара Лашарит.

Ссылки

[1] Все говорят о небезопасной случайности, но никто ничего с этим не делает

[2] Репозиторий для реализации кода для [1]

[3] https://blog.abhranil.net/2015 /03/03/тренировка-нейронных-сетей-с-генетическими-алгоритмами/

Нравится:

Нравится Загрузка…

Самые популярные посты

    Позвоните нам, прежде чем мы вам понадобимся.

    Наши специалисты помогут Вам.

    Свяжитесь с нами

    10 самых популярных инструментов для взлома паролей [обновлено в 2020 г.]

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

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

    Примечание. См. нашу статью «Как взломать пароль» для ознакомления с некоторыми основными методами взлома.

    Что такое взлом пароля?

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

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

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

    • Атака по словарю: Большинство людей используют слабые и распространенные пароли. Взяв список слов и добавив несколько перестановок — например, замену $ на s — позволяет взломщику паролей очень быстро узнать множество паролей.
    • Атака подбором методом грубой силы: Существует ограниченное количество потенциальных паролей заданной длины. Хотя медленная атака грубой силой (перебор всех возможных комбинаций паролей) гарантирует, что злоумышленник в конечном итоге взломает пароль.
    • Гибридная атака: Гибридная атака смешивает эти два метода. Он начинается с проверки того, можно ли взломать пароль с помощью атаки по словарю, а затем переходит к атаке методом грубой силы, если она не удалась.

    Большинство инструментов для взлома или поиска паролей позволяют хакеру выполнять любой из этих типов атак. В этом посте описаны некоторые из наиболее часто используемых инструментов для взлома паролей.

    1. Hashcat

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

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

    Загрузите Hashcat здесь.

    2. John the Ripper

    John the Ripper — хорошо известная бесплатная программа для взлома паролей с открытым исходным кодом для Linux, Unix и Mac OS X. Также доступна версия для Windows.

    John the Ripper предлагает взлом паролей различных типов. Это выходит за рамки паролей ОС и включает в себя обычные веб-приложения (например, WordPress), сжатые архивы, файлы документов (файлы Microsoft Office, PDF-файлы и т. д.) и многое другое.

    Также доступна профессиональная версия инструмента, которая предлагает улучшенные функции и встроенные пакеты для целевых операционных систем. Вы также можете загрузить Openwall GNU/*/Linux, который поставляется вместе с John the Ripper.

    Загрузите John the Ripper здесь.

    3. Brutus

    Brutus — один из самых популярных онлайн-инструментов для удаленного взлома паролей. Он претендует на звание самого быстрого и гибкого инструмента для взлома паролей. Этот инструмент бесплатный и доступен только для систем Windows. Он был выпущен еще в октябре 2000 года.

    Brutus поддерживает ряд различных типов аутентификации, в том числе:

    • HTTP (базовая аутентификация)
    • HTTP (Форма HTML/CGI)
    • точка доступа 3
    • FTP
    • СМБ
    • Телнет
    • IMAP
    • ННТП
    • Сетевая шина
    • Пользовательские протоколы

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

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

    Загрузите программу поиска паролей Brutus онлайн здесь.

    4. Wfuzz

    Wfuzz — это инструмент для взлома паролей веб-приложений, похожий на Brutus, который пытается взломать пароли с помощью атаки методом угадывания грубой силы. Его также можно использовать для поиска скрытых ресурсов, таких как каталоги, сервлеты и сценарии. Wfuzz также может выявлять уязвимости внедрения в приложении, такие как внедрение SQL, внедрение XSS и внедрение LDAP.

    Ключевые особенности инструмента для взлома паролей Wfuzz:

    • Внедрение в несколько точек в несколько каталогов
    • Вывод в цветном HTML
    • Брут-форс сообщений, заголовков и данных аутентификации
    • Поддержка прокси и SOCK, поддержка нескольких прокси
    • Многопоточность
    • Подбор пароля HTTP через запросы GET или POST
    • Задержка между запросами
    • Фаззинг файлов cookie

    5. THC Hydra

    THC Hydra — это онлайн-инструмент для взлома паролей, который пытается определить учетные данные пользователя с помощью атаки подбора пароля методом грубой силы. Он доступен для Windows, Linux, Free BSD, Solaris и OS X.

    THC Hydra расширяем за счет возможности простой установки новых модулей. Он также поддерживает ряд сетевых протоколов, включая Asterisk, AFP, Cisco AAA, Cisco auth, Cisco enable, CVS, Firebird, FTP, HTTP-FORM-GET, HTTP-FORM-POST, HTTP-GET, HTTP-HEAD, HTTP. -PROXY, HTTPS-FORM-GET, HTTPS-FORM-POST, HTTPS-GET, HTTPS-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MYSQL, NCP, NNTP, Oracle Listener, Oracle SID , Oracle, PC-Anywhere, PCNFS, POP3, POSTGRES, RDP, Rexec, Rlogin, Rsh, SAP/R3, SIP, SMB, SMTP, SMTP Enum, SNMP, SOCKS5, SSH (v1 и v2), Subversion, Teamspeak (TS2 ), Telnet, VMware-Auth, VNC и XMPP.

    Загрузите THC Hydra здесь.

    Если вы разработчик, вы также можете внести свой вклад в разработку инструмента.

    6. Medusa

    Medusa — онлайн-инструмент для взлома паролей, похожий на THC Hydra. Он претендует на звание быстрого параллельного, модульного и грубого инструмента для входа в систему. Он поддерживает HTTP, FTP, CVS, AFP, IMAP, MS SQL, MYSQL, NCP, NNTP, POP3, PostgreSQL, pcAnywhere, rlogin, SMB, rsh, SMTP, SNMP, SSH, SVN, VNC, VmAuthd и Telnet.

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

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

    Подробнее об этом читайте здесь.

    Загрузите Медузу здесь.

    7. RainbowCrack

    Любой взлом паролей требует компромисса между временем и памятью. Если злоумышленник предварительно вычислил таблицу пар пароль/хэш и сохранил их как «радужную таблицу», то процесс взлома пароля упрощается до поиска в таблице. Именно из-за этой угрозы пароли теперь «солят»: добавление уникального случайного значения к каждому паролю перед его хэшированием означает, что требуется гораздо больше радужных таблиц.

    RainbowCrack — это инструмент для взлома паролей, предназначенный для работы с радужными таблицами. Можно создавать собственные радужные таблицы или использовать уже существующие, загруженные из Интернета. RainbowCrack предлагает бесплатные загрузки радужных таблиц для систем паролей LANMAN, NTLM, MD5 и SHA1.

    Загрузите радужные таблицы здесь.

    Также доступны несколько платных радужных столов, которые можно купить здесь.

    Этот инструмент доступен как для систем Windows, так и для Linux.

    Загрузите RainbowCrack здесь.

    8. OphCrack

    OphCrack — это бесплатный инструмент для взлома паролей на основе радужных таблиц для Windows. Это самый популярный инструмент для взлома паролей Windows, но его также можно использовать в системах Linux и Mac. Он взламывает хэши LM и NTLM. Для взлома Windows XP, Vista и Windows 7 также доступны бесплатные радужные таблицы.

    Живой компакт-диск OphCrack также доступен для упрощения взлома. Можно использовать Live CD OphCrack для взлома паролей на базе Windows. Этот инструмент доступен бесплатно.

    Загрузите OphCrack здесь.

    Загрузите бесплатные и премиальные радужные таблицы для OphCrack здесь.

    9. L0phtCrack

    L0phtCrack является альтернативой OphCrack. Он пытается взломать пароли Windows из хэшей. Для взлома паролей он использует рабочие станции Windows, сетевые серверы, первичные контроллеры домена и Active Directory. Он также использует атаки по словарю и грубой силе для генерации и подбора паролей. Он был приобретен Symantec и прекращен в 2006 году. Позже разработчики L0pht снова выкупили его и запустили L0phtCrack в 2009 году..

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

    Узнайте о L0phtCrack здесь.

    10. Aircrack-ng

    Aircrack-ng — это инструмент для взлома паролей Wi-Fi, который может взламывать пароли WEP или WPA/WPA2 PSK. Он анализирует беспроводные зашифрованные пакеты, а затем пытается взломать пароли с помощью атак по словарю, PTW, FMS и других алгоритмов взлома. Он доступен для систем Linux и Windows. Также доступен концертный компакт-диск Aircrack.

    Учебники по Aircrack-ng доступны здесь.

    Загрузите Aircrack-ng здесь.

    Как создать пароль, который трудно взломать

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

    • Чем длиннее пароль, тем труднее его взломать: Длина пароля является наиболее важным фактором. Сложность атаки методом перебора пароля возрастает экспоненциально с увеличением длины пароля. Случайный семизначный пароль можно взломать за считанные минуты, а десятизначный — сотни лет.
    • Всегда используйте комбинацию символов, цифр и специальных символов: Использование различных символов также усложняет подбор пароля методом грубой силы, поскольку это означает, что взломщикам необходимо пробовать более широкий набор вариантов для каждого символа пароля . Включайте цифры и специальные символы, а не только в конце пароля или в качестве замены букв (например, @ вместо a).
    • Разнообразие паролей: Атаки с заполнением учетных данных используют ботов для проверки того, используются ли пароли, украденные из одной сетевой учетной записи, также для других учетных записей. Утечка данных в крошечной компании может поставить под угрозу банковский счет, если используются те же учетные данные. Используйте длинный, случайный и уникальный пароль для всех онлайн-аккаунтов.

    Чего следует избегать при выборе пароля

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

    1. Использование словарного слова: Атаки по словарю предназначены для проверки каждого слова в словаре (и общих перестановок) за секунды.
    2. Использование личной информации: Имя домашнего животного, имя родственника, место рождения, любимый вид спорта и т. д. — все это словарные слова. Даже если бы это было не так, существуют инструменты для получения этой информации из социальных сетей и создания из нее списка слов для атаки.
    3. Использование шаблонов: Пароли, такие как 1111111, 12345678, qwerty и asdfgh, являются одними из наиболее часто используемых существующих паролей. Они также включены в список слов каждого взломщика паролей.
    4. Использование замены символов: Замена символов, например 4 вместо A и $ вместо S, хорошо известна. Атаки по словарю проверяют эти замены автоматически.
    5. Использование цифр и специальных символов только в конце: Большинство людей добавляют необходимые цифры и специальные символы в конце пароля.
Back to top