Pull to refresh
226
0

User

Send message

Почему я не покупал Bitcoin?

Reading time 11 min
Views 50K
В 2010 году я узнал о таком феномене как криптовалюты, и, как и любая прочая интересная технология это в определенной степени захватило мой разум. Но так уж получается, что не от любой технологии мозг испытывает восторг, а в этом случае особенно, и мне есть что рассказать.

В этой заметке я не собираюсь очередной раз рассматривать технологические особенности, сравнивать криптовалюты и фиат, давить на сознание конкретными цифрами возможной выгоды, о нет. Всего лишь расскажу о том, какие когнитивные искажения все время мешали мне купить криптовалюту. Быть может, если вы найдете их у себя, то некоторые вопросы удастся прояснить (в любом направлении). А если не найдете — то, скорее всего вы знаете что делать и без этих размышлений. Очередная реклама? Ну да. В маркетинговой форме? Ну нет.
Читать дальше →
Total votes 33: ↑22 and ↓11 +11
Comments 101

Построение системы оптического распознавания структурной информации на примере Imago OCR

Reading time 19 min
Views 36K
В настоящей заметке я расскажу о том, как можно построить систему оптического распознавания структурной информации, опираясь на алгоритмы, применяющиеся в обработке изображений и их реализации в рамках библиотеки OpenCV. За описанием системы стоит активно развивающийся open source проект Imago OCR, который может быть непосредственно полезен в распознавании химических структур, однако в заметке я не буду говорить о химии, а затрону более общие вопросы, решение которых поможет в распознавании структурированной информации различного рода, например таблицы или графики.
Читать дальше →
Total votes 70: ↑67 and ↓3 +64
Comments 5

Многозначное шифрование с использованием хеш-функций

Reading time 5 min
Views 12K
В последнее время приходится все больше задумываться о сохранности анонимности и безопасности относительно прав на информационную собственность. В этой заметке я предложу довольно интересное решение относительно шифрования, позволяющего сохранить несколько различных объектов в одном контейнере с разными мастер-ключами, и гарантирующее отсутствие «следов» других сущностей при получении какой-либо одной. Более того, в силу конструктивных особенностей алгоритма — даже наличие расшифрованной сущности можно всегда списать на «случайность» (то есть, нет никаких средств проверить, были ли изначально зашифрованы эти данные или нет). Кроме того, алгоритм имеет чрезвычайную стойкость к атакам «подбора ключа». Правда у метода есть и существенный недостаток — катастрофически низкая скорость работы, но в ряде особенных случаев он все равно может быть полезен.
Читать дальше →
Total votes 63: ↑55 and ↓8 +47
Comments 35

Генератор/валидатор паролей по результатам взлома LinkedIn

Reading time 5 min
Views 9.9K
После анализа подобранных паролей к LinkedIn появилась идея создать генератор паролей, совмещенный с валидатором, не допускающим легко подбирающиеся пароли. Простейшего анализа на длину, наличие специальных символов здесь не достаточно — некоторые пароли можно легко собрать из очень вероятных «кусочков» и на их перебор уходит существенно меньшее время, нежели теоретически заявленное. И гарантий, что программа-генератор не выдаст вам подобный пароль нет — случайность, она на то и случайность. Мое творение не претендует на полное решение вопроса, скорее это повод для размышлений, но оно вполне работоспособно (исходники и небольшой разбор тоже присутствуют).
Читать дальше →
Total votes 66: ↑59 and ↓7 +52
Comments 60

Анализ возможностей массового аудита на основе утечки хешей из LinkedIn

Reading time 6 min
Views 4.5K
Неделю назад утекла база хешей с LinkedIn, для других это событие может быть примечательным само по себе, но для меня, в первую очередь, это означает возможность провести анализ современных возможностей взлома паролей. И я не собираюсь рассказывать о том сколько раз слово «password» было встречено среди паролей и о том, сколько времени занимает перебор шестисимвольных комбинаций. Скорее буду пугать пользователей тем, насколько сложные пароли можно «взломать» за несколько часов. А программистам расскажу как это возможно эффективно реализовать, и в качестве небольшого подарка приложу программу, которую я написал для массового аудита. Присутствует и некоторый ликбез по использованию радужных таблиц с простыми выводами.

И так, за час удалось «восстановить» около 2.5 миллионов паролей на средней рабочей конфигурации, без специальных словарей и радужных таблиц. Среди найденных паролей присутствуют 16-символьные алфавитно-цифровые комбинации, и далеко не в единственном экземпляре.
Читать дальше →
Total votes 120: ↑116 and ↓4 +112
Comments 123

AI Challenge: Ants AI Challenge: оживляем «муравьев»

Reading time 11 min
Views 4.2K
В этой заметке я расскажу как написать довольно неплохого бота для Google AI Challenge. Примечательно, что сложные технологии связанные с ИИ не понадобятся, а базовая реализация умещается в тысячу строчек кода на языке C++. Сами методы в совокупности могут быть рассмотрены как некоторый Generic алгоритм, и на базе них можно построить бота, учитывающего некоторые стратегические особенности, который возможно будет играть еще лучше. В любом случае — хороший «быстрый старт» для тех, у кого пока ничего не получилось.
Читать дальше →
Total votes 54: ↑51 and ↓3 +48
Comments 36

Массовый аудит паролей «одной кнопкой»

Reading time 2 min
Views 3.8K
Продолжая мучить хеши, добытые с antichat (да кому они нужны?) не удержался от создания достаточно быстрого средства, автоматически применяющего рассмотренные в статье методы. Теперь уже в ход пошли видеокарты, и на подбор 60% паролей достаточно было перекура. При скорости перебора over 100 mpwd/s, применении гибридной техники и частотного анализа это не кажется удивительным результатом, что в общем-то наконец должно заставить пересмотреть отношение к способам хранения паролей тех, кто все еще не озаботился этим. Ниже небольшое рассуждение о примененном подходе и, конечно, сама программа.
Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Comments 27

Ликбез по псевдослучайным генераторам

Reading time 4 min
Views 5.5K
На размышления о необходимости генерации псевдослучайных паролей меня натолкнула достаточно безрадостная статистика взлома паролей, созданных при помощи МОЗГ v1.0; однако взять какой-то первый попавшийся программный генератор паролей и с помощью него поменять все пароли — выглядит безрассудством. Я не проводил детальный анализ готовых программ-генераторов, однако расскажу некоторые достаточно простые, но познавательные факты, связанные с математикой генерации псевдослучайных чисел хорошего качества, которые позволят выбрать нужную программу самостоятельно.
Читать дальше →
Total votes 50: ↑43 and ↓7 +36
Comments 34

Практические рекомендации по выбору паролей по результатам взлома antichat.ru

Reading time 4 min
Views 24K
Как вы уже слышали Брайан Кребс недавно проводил аудит паролей, полученных после взлома antichat.ru (сама база была получена где-то год назад и уже не актуальна!). Честно говоря, не очень понимаю чем занимались его видеокарты 18 дней, победив только 44% паролей. Мне на довольно скромном железе удалось подобрать 77% паролей за 8 часов. Исходя из таких несколько пугающих цифр, особенно для сайта тематически связанного с информационной безопасностью, у меня есть несколько рекомендаций о том какие пароли никогда не следует использовать, дабы они не были подобраны за пару минут.
Читать дальше →
Total votes 148: ↑134 and ↓14 +120
Comments 185

Сверхбыстрая разметка изображений

Reading time 9 min
Views 6.9K
В статье расскажу как можно очень быстро перечислить связные объекты на бинарном растре, значительно быстрее, чем я рассказывал в предыдущей статье. Казалось бы, куда такие скорости; теперь мы будем «расправляться» с картинками 4096 на 4096 за десятки миллисекунд. И хоть задача интересна и сама по себе, но в основе ее решения лежит довольно простой и оригинальный метод с достаточно широкой применимостью, основным тезисом которого является «сделаем как проще и посмотрим, что из этого выйдет». В данном случае в качестве основного вычислителя будет использоваться CUDA, но без особой специфики, потому что мы хотим сделать «очень просто».
Читать дальше →
Total votes 82: ↑75 and ↓7 +68
Comments 21

Быстрое вычисление точной 3D карты расстояний с использованием технологии CUDA

Reading time 9 min
Views 3K
Карта расстояний (Distance Map) — это объект, позволяющий быстро получить расстояние от заданной точки до определенной поверхности. Обычно представляет собой матрицу значений расстояний для узлов с фиксированным шагом. Часто используется в играх для определения «попадания» в игрока или предмет, и для оптимизационных задач по совмещению объектов: расположить объекты максимально близко друг к другу, но так, чтобы они не пересекались. В первом случае качество карты расстояний (то есть точность значений в узлах) не играет большой роли. Во втором — от нее могут зависеть жизни (в ряде приложений, связанных с нейрохирургией). В этой статье я расскажу как можно достаточно точно обсчитать карту расстояний за разумное время.
Читать дальше →
Total votes 51: ↑50 and ↓1 +49
Comments 21

Быстрая маркировка изображений с использованием внешних контуров

Reading time 9 min
Views 8.7K
В статье расскажу как достаточно быстро перечислить связные объекты на бинарном растре. Этот алгоритм мы использовали для распознавания изображений и текстов; он отличается от подобных высокой скоростью обработки (на картинках до 3200x2400, с некоторыми оговорками, он отрабатывает за миллисекунды) и доступностью в понимании (при наличии некоторых знаний C++). Отмечу, что исходная картинка будет трактоваться алгоритмом как «только для чтения» (зачем портить то, с чем могут работать другие методы), и в связи с этим, алгоритму потребуется небольшое количество дополнительной памяти. Кроме того, внешние контуры являются полезным объектом для анализа и векторизации изображений.
Читать дальше →
Total votes 35: ↑34 and ↓1 +33
Comments 9

CUDA: аспекты производительности при решении типичных задач

Reading time 7 min
Views 27K
Перед тем как начать переносить реализацию вычислительного алгоритма на видеокарту стоит задуматься — получим ли мы желаемый прирост производительности или только потеряем время. И несмотря на обещания производителей о сотнях GFLOPS, у современного поколения карт есть свои проблемы, о которых лучше знать заранее. Я не буду глубоко уходить в теорию и рассмотрю несколько существенных практических моментов и сформулирую некоторые полезные выводы.
Читать дальше →
Total votes 86: ↑84 and ↓2 +82
Comments 67

Вычисление редакционного расстояния

Reading time 5 min
Views 62K

Редакционное расстояние, или расстояние Левенштейна — метрика, позволяющая определить «схожесть» двух строк — минимальное количество операций вставки одного символа, удаления одного символа и замены одного символа на другой, необходимых для превращения одной строки в другую. В статье излагается метод вычисления редакционного расстояния при использовании небольшого объема памяти, без существенной потери скорости. Данный подход может быть применен для больших строк (порядка 105 символов, т.е. фактически для текстов) при получении не только оценки «схожести», но и последовательности изменений для перевода одной строки в другую.
Читать дальше →
Total votes 81: ↑78 and ↓3 +75
Comments 19

Эмулятор РАМ-машины

Reading time 3 min
Views 11K

РАМ-машина — абстрактная вычислительная машина, обладающая полнотой по Тьюрингу, и принадлежащая классу регистровых машин. Она эквивалентна универсальной машине Тьюринга, при этом более наглядна и удобна в доказательстве корректности алгоритмов. В этом топике я расскажу, как она устроена и приложу ссылки на работающую имплементацию эмулятора РАМ-машины с некоторыми интересными примерами.
Читать дальше →
Total votes 43: ↑41 and ↓2 +39
Comments 17

XSD: частичная валидация

Reading time 8 min
Views 32K
XSD — это язык описания структуры XML документа. Его также называют XML Schema. При использовании XML Schema XML-парсер может проверить не только правильность синтаксиса XML документа, но также его структуру, модель содержания и типы данных. Многие так или иначе сталкивались с процедурой полной валидации, обеспечивающей соответствие документа заданной схеме или сообщающей о возможных ошибках. В данной статье речь пойдет о частичной валидации, кроме вышеописанного, позволяющей конструировать валидные документы «на лету». Мы разберемся, какие возможности может предоставить такой подход и способы его реализации.
Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Comments 9

WM 5.0+ Hardware Slide To Keyboard Lock/Unlock

Reading time 1 min
Views 897
Представляю программку пусть и редкой применимости, но несомненной полезности: блокировка/разблокировка клавиатуры по движению аппаратного слайдера. Соответственно и работать будет только там, где он есть, и нету сенсорного экрана (иначе я бы посоветовал S2U2). И такие девайсы еще остались, например Toshiba G500, а может еще какие другие.
Читать дальше →
Total votes 4: ↑4 and ↓0 +4
Comments 4

Открыты исходники Universal Distributed Cracker

Reading time 1 min
Views 3.1K
Время прошло, теперь я точно знаю, что не собираюсь поддерживать проект, однако, быть может, он кому-то ещё пригодится. Речь идет о некогда относительно широко известной программе для подбора паролей по хеш-значению — UDC. Реализация хеш-функций до сих пор имеет конкурирующие по скорости показатели, а алгоритмы могут иметь академическую ценность (как демострация методов из статьи о Time-memory trade off, например).

Соответственно исходники, бинарники и окружение и вычлененный Hybrid Rainbow.
Total votes 18: ↑16 and ↓2 +14
Comments 0

Лаборатория Непрерывного Математического Образования

Reading time 6 min
Views 9.2K

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

В процессе учебы мы приобретаем какие-то конкретные знания, они могут нам пригодиться в таком виде, как мы их получили, но вот скорее всего не пригодятся. Можно принять это как аксиому, можно доказывать опытным путем, так или иначе — школа не готовит специалистов, и не должна. Школа расширяет кругозор, формирует конструктивное мышление, дает навыки обработки и усвоения информации.
Читать дальше →
Total votes 51: ↑43 and ↓8 +35
Comments 66

(фото)отчет о Балтийском конкурсе

Reading time 5 min
Views 2.7K
Хорошо студентам, для них чего только не придумали, и Imagine Cup и Hack Day и Chaos Constructions, и это только первое, что в голову пришло. А что же делать талантливым (или считающим себя таковыми) школьникам?

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

Под катом Вы увидите 6 мегабайт фотографий счастливых ребят и их поделий, приправленных моими отстраненными размышлениями на тему образования и обзором работ в секциях «Техника» и «Computer Science».
Читать дальше →
Total votes 56: ↑47 and ↓9 +38
Comments 29
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity