Как стать автором
Обновить
-6
Alexey Schröder @schroederread⁠-⁠only

Пользователь

Отправить сообщение

Электронная подпись для чайников: с чем ее есть и как не подавиться. Часть 2

Время на прочтение5 мин
Количество просмотров97K
Часть 1

Продолжая раскрывать тайное знание о цифровой подписи простым языком, разберем, что же нам надо для удобной и эффективной работы с ними, а также главное различие между лагерями S/MIME + X.509 и PGP.

Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии27

Электронная цифровая подпись для чайников: с чем ее есть и как не подавиться. Часть 3

Время на прочтение6 мин
Количество просмотров167K
Часть 1
Часть 2

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

Читать дальше →
Всего голосов 50: ↑47 и ↓3+44
Комментарии14

Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1

Время на прочтение4 мин
Количество просмотров138K
Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.

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

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

Читать дальше →
Всего голосов 105: ↑85 и ↓20+65
Комментарии108

Backbone.js для «чайников»

Время на прочтение13 мин
Количество просмотров288K
Backbone.js для чайников
Как то поздним вечерком мне пришла мысль изучить Backbone.js и привязать его к уже написанному на jQuery сервису. Сервис уже серьёзно расширился и меня достало это нагромождение обработчиков кликов, запросов и логики. Поэтому, я как усердный школьник полез в официальную документацию. Но либо я тупой, либо мой английский меня подкачал, либо то и другое вместе, но я не черта не понял. Я прочитал уже второй раз, внимательно, и для особо одарённых мест использовал google translate. Прочитал также и пример ToDo List. Всё показалось понятно, ровно до той поры пока я не стал писать. После чего я взял всё что нашел по этой библиотеке, как на английском так и переводы. Прочтя кипу документации я решил, что сейчас вроде всё понял. Я напрягся, но… Не вышел каменный цветок у мастера Данилы, т.е. вышло, но это явно был не цветок, и камень как то неправильно пах. Тогда, как прилежный ученик, я решил написать «Hello, KittyWorld» с нуля. Попутно комментируя и сохраняя шаги в hg, у меня получилось введение в backbone.js framework для таких как я, особо одарённых.
Данные 7 шагов с комментариями.
Всего голосов 113: ↑110 и ↓3+107
Комментарии51

Описание работы алгоритма Shift-OR для поиска подстроки в строке

Время на прочтение3 мин
Количество просмотров8.1K
1. Вместо вступления.

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

Собственно, главное отличие алгоритма от, например, «наивного сравнения», заключается в том, что в его основе лежит логические операции, а именно логическое умножение (оно же AND, оно же конъюнкция).
Читать дальше →
Всего голосов 46: ↑44 и ↓2+42
Комментарии16

Обзор алгоритмов кластеризации данных

Время на прочтение10 мин
Количество просмотров443K
Приветствую!

В своей дипломной работе я проводил обзор и сравнительный анализ алгоритмов кластеризации данных. Подумал, что уже собранный и проработанный материал может оказаться кому-то интересен и полезен.
О том, что такое кластеризация, рассказал sashaeve в статье «Кластеризация: алгоритмы k-means и c-means». Я частично повторю слова Александра, частично дополню. Также в конце этой статьи интересующиеся могут почитать материалы по ссылкам в списке литературы.

Так же я постарался привести сухой «дипломный» стиль изложения к более публицистическому.
Читать дальше →
Всего голосов 82: ↑78 и ↓4+74
Комментарии41

Классификация данных методом опорных векторов

Время на прочтение4 мин
Количество просмотров150K
Добрый день!

В данной статье я хочу рассказать о проблеме классификации данных методом опорных векторов (Support Vector Machine, SVM). Такая классификация имеет довольно широкое применение: от распознавания образов или создания спам-фильтров до вычисления распределения горячих аллюминиевых частиц в ракетных выхлопах.

Сначала несколько слов об исходной задаче. Задача классификации состоит в определении к какому классу из, как минимум, двух изначально известных относится данный объект. Обычно таким объектом является вектор в n-мерном вещественном пространстве . Координаты вектора описывают отдельные аттрибуты объекта. Например, цвет c, заданный в модели RGB, является вектором в трехмерном пространстве: c=(red, green, blue).

Читать дальше →
Всего голосов 82: ↑78 и ↓4+74
Комментарии27

Классификация документов методом опорных векторов

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

Классификация


Классификация, согласно википедии, это одна из задач информационного поиска, заключающаяся в отнесении документа к одной из нескольких категорий на основании содержания документа.
Этим мы и будем заниматься.
Читать дальше →
Всего голосов 38: ↑38 и ↓0+38
Комментарии20

Учим bash-скрипты, пишем Quadronix

Время на прочтение4 мин
Количество просмотров11K
На хабре уже много статей об играх на bash, это Шахматы, Xonix, Sokoban, Морской бой и даже Шутер с псевдо-3D графикой. Но во всех этих играх управление происходит с помощью клавиатуры. Мы же пойдём дальше и напишем игру на bash, управление в которой будет осуществляться с помощью мыши. А заодно разберём как сделать игру устойчивой к изменению размера терминала. Итак, напишем игру Quadronix.



Читать дальше →
Всего голосов 90: ↑85 и ↓5+80
Комментарии8

Список ресурсов для изучения Ассемблера

Время на прочтение4 мин
Количество просмотров439K
Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

… но оказалось, что найти материал по интересующей теме не так просто, как хотелось бы. Посему решено было создать на хабре пополняющийся пост-индекс статей/книг/мануалов/etc. об этом, несомненно, великом языке.
Под катом находится, собственно, список с краткими комментариями, разбитый по категориям.

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Читать дальше →
Всего голосов 135: ↑130 и ↓5+125
Комментарии46

История взлома одной браузерной игры. Возврат контроля

Время на прочтение11 мин
Количество просмотров37K
Доброго времени суток. Я занимаюсь аудитом защищённости веб-приложений. По простому — тестами на проникновение в отношении веб-сайтов. Иногда в моей практике встречаются интересные и познавательные случаи, которые я бы хотел описывать в виде таких вот статей, но редко (для меня это первый случай) бывают ситуации когда клиент разрешает публикацию подобного материала с подробным описанием всех имевшихся проблем и предпринятых действий. Естественно, тут вы не встретите никаких конкретных имён, названия фирмы-заказчика и т. д. Упоминания таких данных мне, наверное, никто никогда не разрешит. Надеюсь что для вас, уважаемые читатели, данная статья окажется интересной и полезной.
Читать дальше →
Всего голосов 233: ↑209 и ↓24+185
Комментарии115

Логирование в Java / quick start

Время на прочтение7 мин
Количество просмотров248K
В ходе моей работы в компании DataArt я, в числе прочего, занимаюсь менторской деятельностью. В частности это включает в себя проверку учебных заданий сделанных практикантами. В последнее время в заданиях наметилась тенденция «странного» использования логеров. Мы с коллегами решили включить в текст задания ссылку на статью с описанием java logging best practices, но оказалось, что такой статьи в которой бы просто и без лишних деталей на практике объяснялось бы как надо писать в лог на Java, вот так вот с ходу не находится.

Данная статья не содержит каких-то откровений, в ней не рассматриваются тонкости какого либо из многочисленных java logging frameworks. Здесь рассказываю как записать в лог так, чтобы это не вызвало удивления у Ваших коллег, основная цель написания включить ее в список обязательного чтения для практикантов. Если все еще интересно, читайте дальше
Читать дальше →
Всего голосов 42: ↑36 и ↓6+30
Комментарии26

Выполнение кода по расписанию в Spring Framework

Время на прочтение2 мин
Количество просмотров28K
Тут приспичило мне периодически запускать некоторый код в небольшом проектике написанном на Spring Framework. Я уж было приготовился по старой памяти (еще со спринга 2.x) к долгому прикручиванию quartz-а и написании кучи конфигов на xml, как оказалось все значительно проще
Читать дальше →
Всего голосов 23: ↑21 и ↓2+19
Комментарии16

Делаем релизы с помощью Maven в Java

Время на прочтение8 мин
Количество просмотров53K

О чем эта статья?


Эта статья о том:
  1. Что такое релиз?
  2. Как нумеруются релизы?
  3. Зачем при релизе нужен бранч?
  4. Почему релиз это больше, чем просто jar (war, ear, zip, etc)?
  5. Что такое maven-release-plugin?
  6. Делаем бранч c помощью release:branch.
  7. Подготовка к релизу с помощью release:prepare.
  8. Выпускаем релиз с помощью release:perform.

Для чтения и понимания этой статьи я рекомендую освежить свои знания по Maven. Многие термины могут быть непонятны без понимания этой технологии.
Читать дальше →
Всего голосов 58: ↑57 и ↓1+56
Комментарии24

От велосипеда к Maven

Время на прочтение13 мин
Количество просмотров73K
Так уж сложилось, что до недавнего времени все проекты, написанные мною на Java я собирал, кхм, за меня собирал NetBeans. И меня такой расклад вещей вполне устраивал: после сборки всего проекта всё аккуратно складывалось в директорию dist со всеми подвязанными библиотеками, оставалось накидать туда пользовательской документации, необходимых native-библиотек (например от Firebird) и в путь, т.е. всё в архив. Когда то я делал это вручную, потом велосипедом, а потом уже Maven'ом. Под катом находится история о том, как же я пришел в стан maven и что из этого получилось.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии56

Миссия невыполнима

Время на прочтение8 мин
Количество просмотров9K
image
Пожалуй наиболее известной надписью в Центральном Разведывательном Управлении США, штаб-квартира которого располагается, как мы все знаем, в Ленгли — штат Вирджиния, являются библейские слова выщербленные в мраморе главного холла: «And ye shall know the truth, and the truth shall make you free» (И да узришь ты истину, и истина сделает тебя свободным, Иоанн 8:32) Однако в последние годы, другой текст стал предметом всеобщего ажиотажа и интереса; текст, являющийся квинтэссенцией всего происходящего в стенах ЦРУ — это 865 символов кажущихся абсолютной бессмыслицей, выдавленной в медном листе толщиной 1,3 см.

Инсталляция Kryptos, созданная человеком по имени Джеймс Санборн (James Sanborn), обосновалась при дворе ЦРУ в уже далеком 1988, когда за основным зданием началась постройка нового и более современного офиса. Агентству нужна была уличная скульптура между двумя постройками, поэтому выбор пал на образец искусства «для всех», который на самом деле никто и никогда не сможет «увидеть». Санборн не просто так назвал свое творение греческим словом «скрытый», ведь эта работа — ярчайшая иллюстрация скрытности, тайности, интимности и иллюзорности человеческой жизни, текст которой является одним из самых идеальных кодов на сегодняшний день.
Читать дальше →
Всего голосов 210: ↑203 и ↓7+196
Комментарии128

Генерируем цепочку сертификатов с эллиптическими кривыми при помощи OpenSSL

Время на прочтение8 мин
Количество просмотров25K
график функции y^2 = x^3-x+1Думаю многие слышали о криптографии эллиптических кривых, о том
что работает она во много раз быстрее RSA и при несоизмеримо меньшей длине ключа обеспечивает несоизмеримо большую стойкость ко взлому. Если не слышали, то можно глянуть на wiki или почитать в книгах А.А. Болотова.
К сожалению, данный вид шифрования слабо распространен. Я постараюсь объяснить как им пользоваться и поможет мне в этом OpenSSL.

Чтобы не быть голословным приведу сравнение необходимых длин ключей для обеспечения сравнимой стойкости ко взлому для различных алгоритмов. Нам интересна правая часть.
Сравнение алгоритмов
Видно, что популярным сегодня ключам RSA длиной 1024-2048 бит соответствует всего навсего 160-224битный ключ ECC (Elliptic Curve Cryptography)

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

openssl genrsa 15360

Желающих прикоснуться к «next gen» криптографии, придуманной аж в 1985 году, прошу под кат.
Читать дальше →
Всего голосов 77: ↑75 и ↓2+73
Комментарии27

Элементарная криптография

Время на прочтение2 мин
Количество просмотров147K
Под катом:
  • Шифр Цезаря
  • Шифр пар
  • Шифр четырех квадратов
  • Матричный шифр
  • Шифр ADFGX
  • Шифр Виженера
Читать дальше →
Всего голосов 165: ↑151 и ↓14+137
Комментарии40

Lamport hash chain – страховка от кражи базы паролей клиентов

Время на прочтение7 мин
Количество просмотров4.1K
Весьма интересный пост, опубликованный недавно на Хабре, и особенно комментарии к нему подтолкнули меня к описанию, пожалуй, единственной симметричной схемы, действительно обеспечивающей страховку от кражи базы паролей с сервера – схемы Лэмпорта («Lamport hash chain»). Алгоритм на самом деле чрезвычайно прост и предложен автором (L.Lamport) еще в 1981 году. Более того, схема в большинстве учебников уже упоминается как «устаревшая», т.к. целью ее разработки была в первую очередь защита от перехвата пароля на этапе передачи, а появившиеся позднее схемы семейства «challenge-handshake» (CHAP, CRAM) решают эту задачу гораздо более эффективно. А вот о втором интересном свойстве схемы Лэмпорта уже потихоньку забыли – она не требует конфиденциальности аутентификационных данных пользователей, хранимых на серверной стороне (свойство, обычно присущее только асимметричным схемам с сертификатам клиентов). Посмотрим, как можно достичь этого свойства с помощью одной только криптостойкой хеш-функции.
Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии19

Алгоритм поведения привидений в игре Pac-Man

Время на прочтение13 мин
Количество просмотров67K
Попробовал сделать перевод вчерашнего топика-ссылки на хабре. Заранее извиняюсь, если формулировки покажутся вам кривыми, я с удовольствием приму конструктивную критику. Поехали…

Мне кажется правильным начать этот блог с темы, которая вдохновила меня в первую очередь. Не так давно я наткнулся на статью Jamey Pittman «Pac-Man Dossier», в которой приводилось очень детальное описание механики игры Pac-Man. Она показалась мне очень интересной, поэтому этот сайт — попытка собрать такую же детальную информацию об остальных играх. Но в дань уважения я все же начну с Pac-Man, а в частности, с описания алгоритма поведения привидений. Это очень интересная тема и, надеюсь, мое объяснение будет немного более понятным и доступным, чем у Джейми, потому что я сосредоточусь лишь на поведении.

Об игре:
«В то время все доступные игры были очень жестокими — игры о войне и космических захватчиках. Не было ни одной игры для всех сразу, а особенно, которые понравились бы девушкам. Я хотел придумать «комическую» игру, которой могли бы наслаждаться даже девушки»
— Toru Iwatani, создатель Pac-Man


Читать дальше →
Всего голосов 211: ↑206 и ↓5+201
Комментарии25

Информация

В рейтинге
Не участвует
Откуда
Bacharach, Rheinland-Pfalz, Германия
Дата рождения
Зарегистрирован
Активность