Обновить
39
0
sysprg@sysprg

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

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

Протокол MQV — старый добрый Диффи-Хеллман, но не совсем

Время на прочтение4 мин
Охват и читатели12K
Вот уже более 30 лет протокол распределения ключей Диффи-Хеллмана радует глаз простого криптомана своей простотой и надежностью. Для тех, кто эти последние 30 лет провел за занятиями более веселыми, нежели изучение криптографических протоколов, поясняю.
Протокол Диффи-Хеллмана был опубликован в 1976 году и послужил началом эры асимметричной криптографии. Суть его до гениального проста: Алиса и Боб хотят получить общий ключ для симметричной криптосистемы. Для этого они, договорившись, выбирают два больших числа g и p. Эти числа известны им обоим и держать их в секрете не имеет никакого смысла. Затем Алиса в тайне генерирует большое секретное число a, а Боб — большое число b. А далее за дело берется простая арифметика. Алиса посылает Бобу число
image.
Боб в свою очередь высылает Алисе
image.
Читать дальше →

ЛикБез по патентам (продолжение)

Время на прочтение6 мин
Охват и читатели9.7K
В первой части статьи мы поговорили о том, какие бывают патенты, кто такие тролли и как начинается патентная тяжба, с обещанием, что мы продолжим тему. Дальше я расскажу о том, как идет процесс спора, о чем мечтает тролль и каковы методы борьбы против патентного троллинга.
Читать дальше →

ЛикБез по патентам

Время на прочтение5 мин
Охват и читатели13K
Цель этой статьи — помочь тем, кто рассчитывает выйти на западные рынки с продуктом или технологией, быть готовыми к тому черному дню, когда вы получите по почте иск о нарушении патентных прав. Если вы рассчитываете на успех, то наивно рассчитывать, что вас обойдет чаша сия. Не обойдет. Правда, это вряд ли будет чаша. Скорее это будет большая неотесанная дубина. Дубина патентного тролля.
Правда, такая история ожидает совсем не в каждой стране. В большинстве стран законы ограждают общество от патентования идей. Осознав, что программное обеспечение не подчиняется законам физики, а значит — запатентовать можно практически все, большинство стран существенно ограничило возможность патентования чего-либо в области ПО. Существует, однако, одно маленькое, но важное исключение — Соединенные Штаты Америки. Про эту страну мы и будем в основном говорить.
Невозможно в одной статье описать все аспекты ситуации с патентами в США. К тому же, я не американский патентный юрист, и не знаю всех тонкостей, а если бы и знал, вряд о них имело бы смысл здесь писать. Поэтому постараемся сконцентрироваться на самом важном, а если всплывут вопросы, поговорим о них в комментах.
Если тема заинтересовала, приглашаю разбираться с ней под катом.
Читать дальше →

Использование Intel AVX: пишем программы завтрашнего дня

Время на прочтение19 мин
Охват и читатели80K

Введение


Новый набор SIMD инструкций для x86-процессоров Intel AVX был представлен публике ещё в марте 2008 года. И хотя реализации этих инструкций в железе ждать ещё полгода, спецификацию AVX уже можно считать устоявшейся, а поддержка набора инструкций AVX добавлена в новые версии компиляторов и ассемблеров. В данной статье рассмотрены практические вопросы оптимизации для Intel AVX подпрограмм на языках C/C++ и ассемблер.
Читать дальше →

RSA, а так ли все просто?

Время на прочтение5 мин
Охват и читатели37K

Прелюдия


Доброго времени суток, уважаемые читатели.
Скорее всего, большинству из вас известно, что из себя представляет асимметричный алгоритм шифрования RSA. В самом деле, этому вопросу по всему рунету и на этом ресурсе в частности посвящено столько статей, что сказать о нем что то новое практически невозможно.
Ну что там, ей богу, можно еще придумать и так все давным-давно понятно. Рецепт приготовления прост:
Два простых числа P и Q.
Перемножить до получения числа N.
Выбрать произвольное E.
Найти D=E-1(mod(P-1)(Q-1)).
Для шифрования сообщение M возводим в степень E по модулю N. Для дешифрования криптотекст C в степень D по все тому же модулю N. Все криптопримитив готов. Берем и пользуемся, так? На самом деле, не так. Дело все в том, что это и в самом деле не более чем криптопримитив и в реальном мире все самую чуточку сложнее.
Читать дальше →

Стратегия голубого океана

Время на прочтение3 мин
Охват и читатели95K
Недавно дочитал книгу «Стратегия голубого океана» У. Чан Кима и Рене Моборна. Отдельными моментами напоминает ТРИЗ (Теория Решения Изобретательских Задач) что конечно весьма порадовало. После прочтения сформировался ряд тезисов.

image

Читать дальше →

Задача о рюкзаке: а что же внутри?

Время на прочтение3 мин
Охват и читатели29K
Достопочтенный SergeyACTIVITI в своём посте поведал нам про такую полезную вещь, как задача о рюкзаке, решение которой с успехом реализовано в решателях COIN-OR или GLPK. А что же внутри?

Итак, пусть у нас есть рюкзак объёма W, и список из n вещей, у каждой из которых есть объём v[i] и стоимость c[i], и каждую из которых можно брать сколько угодно раз. При этом все объёмы и все стоимости будут положительными и целыми. Как же работает алгоритм?

Читать дальше →

Квадрарный поиск

Время на прочтение2 мин
Охват и читатели16K
Тернарный (или троичный) поиск — это алгоритм поиска минимума (или максимума) выпуклой функции на отрезке. Можно искать минимум (максимум) функции от вещественного аргумента, можно минимум (максимум) на массиве. Будем, для определённости, искать минимум функции f(x).

Он многим знаком, а для тех, кто не знает, расскажу вкратце.

Тернарный поиск заключается в следующем. Пусть есть рекурсивная функция search(L, R), которая по двум концам отрезка L, R определяет минимум на орезке [L, R]. Если R — L < eps, то мы уже вычислили точку, где достигается минимум, с точностью eps. Иначе, разделим отрезок [L,R] на три равных по длине отрезка [L, A], [A, B] и [B, R]. Сравним значение в точках А и В. Вспомнив, что функция f выпуклая, можно сделать вывод, что если f(A) > f(B), то минимум лежит на отрезке [A,R]. Иначе — на отрезке [L, B]. В соответсвии с этим, можно рекурсивно запуститься от одного из отрезков [L, B] или [A, R]. Каждый раз длина области поиска уменьшается в полтора раза, значит, минимум на отрезке длины X с точностью eps будет найден за время O(log(X/eps)).

А здесь я хочу рассказать о квадрарном (или четверичном) поиске.

Читать дальше →

Галерея эффектов кэшей процессоров

Время на прочтение10 мин
Охват и читатели28K
Ядро PenrynПочти все разработчики знают, что кэш процессора — это такая маленькая, но быстрая память, в которой хранятся данные из недавно посещённых областей памяти — определение краткое и довольно точное. Тем не менее, знание «скучных» подробностей относительно механизмов работы кэша необходимо для понимания факторов влияющих на производительность кода.

В этой статье мы рассмотрим ряд примеров иллюстрирующих различные особенности работы кэшей и их влияние на производительность. Примеры будут на C#, выбор языка и платформы не так сильно влияет на оценку производительности и конечные выводы. Естественно, в разумных пределах, если вы выберите язык, в котором чтение значения из массива равносильно обращению к хеш-таблице, никаких результатов пригодных к интерпретации вы не получите. Курсивом идут примечания переводчика.
Читать дальше

Схемотехника. Минимизация логических функций

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

Читать дальше →

Место под солнцем для нового стартапа

Время на прочтение6 мин
Охват и читатели39K
Недавно мы опубликовали историю появления на свет LinguaLeo.ru. Сервис запустился в бета-версии 1 марта. Меньше чем через месяц команда разработчиков возвращается в Москву. Но нам жаль просто так уезжать с острова Ко Чанг — уж очень много было вложено в создание комфортных условий для работы. Поэтому мы хотим поделиться своими впечатлениями, каково это — вести разработку на острове в Таиланде, и в подробностях рассказать, с чем придется столкнуться тем, кто отважится на авантюру и отправится в тропики, чтобы целиком посвятить себя реализации задуманной идеи. И объявляем акцию: мы передадим наше солнечное место хорошим ребятам с новым интересным стартапом!

091 -- DSC_9057
Читать дальше →

Параллельные заметки N5 — продолжаем знакомиться с конструкциями OpenMP

Время на прочтение4 мин
Охват и читатели57K
image
Предлагаю вашему вниманию очередную заметку посвященную знакомству с технологией параллельного программирования OpenMP. Рассмотрим директивы: atomic, reduction.

Читать дальше →

Unlimited Detail — интересно, но есть у меня вполне конкретные сомнения…

Время на прочтение9 мин
Охват и читатели8.9K
Несколько дней назад проскочило видео по Hacker News (и спасибо ayambit за напоминание о них на Хабре) про компанию Unlimited Detail, которая обещает сделать самые современные карточки NVidia и ATI бесполезными и рендерить сцены в миллиарды точек на обычном процессоре (CPU), без 3D ускорения(!) вообще. Превышая возможности современных видеокарт в сотни раз (тысячи, по заявлениям авторов, которые я ниже оспорю).

Если кто еще не видел:



Сначала на всякий случай о том чего это такое, а потом о том, что у меня, как у программера, сомнения вызывает, что на нетбуках без 3D карт, скоро будут в Crysis 3 играть…

(дальше очень много слов и технических деталей)
Читать дальше →

Apophysis: бесплатный редактор фрактального пламени для Windows

Время на прочтение1 мин
Охват и читатели1.1K
В LJ-блоге livejohan мне попалась на глаза вот какая рекомендация программы Apophysis:
Открытая бесплатная программа для генерации «фрактального пламени» (а также дыма, световых потоков, межгалактических туманностей и всего, что взбрёдет в голову).
Зная, что на Хабрахабре немало любителей поиграться с визуальными эффектами, я в свою очередь рекомендую вам эту программу.

Судя по иллюстрациям на сайте, программа зрелищная.

Первый сервис полноценной адвокатской помощи в Рунете

Время на прочтение2 мин
Охват и читатели4.6K
imageЗдравствуй, Хабр!
Можете нас поздравить! С этого дня открыт свободный доступ к нашему проекту, который называется «Мой адвокат». Изначально мы поставили перед собой задачу создать систему, которая позволила бы получать профессиональную адвокатскую помощь в сети. То есть, не просто консультироваться с адвокатом по общим вопросам (таких проектов много), а получать те же самые услуги, что и в серьезном офлайновом юридическом бюро.

Анбеливбл! Читать дальше!

Вечный вопрос измерения времени

Время на прочтение5 мин
Охват и читатели17K
Казалось, закончились долгие обсуждения в форумах, как измерить время работы алгоритма, какие функции использовать, какую точность ожидать. Жаль, но опять придется вернуться к этому вопросу. На повестке дня, как лучше измерить скорость работы параллельного алгоритма.
Читать дальше →

Параллельные заметки №1 – технология OpenMP

Время на прочтение4 мин
Охват и читатели31K
OpenMP В ближайшие несколько постов мы расскажем о практическом использовании многоядерных процессоров. Ведь все-таки что бы ни говорилось о многоядерности, в любом случае программы надо «обучать» эффективному использованию нескольких ядер. А в этом первом посте будет анонс и первая «вводная» заметка.
Читать дальше →

Эффективная сегментация изображений на графах

Время на прочтение10 мин
Охват и читатели42K

Сегментация изображений и выделение границ объектов (edge detection) играют важную роль в системах Computer Vision и применяются для задач распознавания сцен и выделения (определения) объектов. По большому счету, это такой же инструмент, как, например, сортировка, предназначенный для решения более высокоуровневых задач. И поэтому понимание устройства данного класса алгоритмов не будет лишним при построении подобных систем с учетом предъявляемых требований (в плане качество/производительность) и специфики поставленных задач.

В данной статье кратко описан алгоритм «Efficient Graph-Based Image Segmentation» авторов Pedro F. Felzenszwalb (MIT) и Daniel P. Huttenlocher (Cornell University), опубликованный в 2004 году. Да, алгоритм относительно старенький, но, несмотря на это, он до сих пор остается весьма популярным, демонстрируя неплохие результаты в плане производительности.

Под катом – большая смесь картинок и текста, не требовательная к текущему уровню знаний тематики. Любопытство приветствуется.

Мсье хочет знать толк в сегментации

О сетях хранения данных

Время на прочтение7 мин
Охват и читатели93K
Решил написать небольшую статейку о сетях хранения данных (СХД), тема эта достаточно интересная, но на Хабре почему-то не раскрыта. Постараюсь поделиться личным опытом по построению и поддержке SAN.

Что это?
Сеть хранения данных, или Storage Area Network — это система, состоящая из собственно устройств хранения данных — дисковых, или RAID — массивов, ленточных библиотек и прочего, среды передачи данных и подключенных к ней серверов. Обычно используется достаточно крупными компаниями, имеющими развитую IT инфраструктуру, для надежного хранения данных и скоростного доступа к ним.
Упрощенно, СХД — это система, позволяющая раздавать серверам надежные быстрые диски изменяемой емкости с разных устройств хранения данных.

Читаем дальше...

Бесплатные обеды закончились на практике

Время на прочтение3 мин
Охват и читатели14K
Есть достаточно известная статья Герба Саттера "The Free Lunch Is Over. A Fundamental Turn Toward Concurrency in Software". В ней говорится, что не стоит более надеяться на рост тактовой частоты микропроцессоров. Для повышения производительности программ теперь необходимо использовать несколько ядер в микропроцессоре. Хотя статья написана в 2005 году, до настоящего времени она для меня была скорее теоретической, чем практическим руководством к действию. Ранее я всегда получал ускорение, приобретая новый компьютер. Но вот настал тот момент, когда этого не произошло.
image
Рисунок 1 — Время работы unit-тестов на моей старой и новой машине.
Читать дальше →

Информация

В рейтинге
Не участвует
Дата рождения
Зарегистрирован
Активность