Как стать автором
Обновить
56.07

Криптография *

Шифрование и криптоанализ

Сначала показывать
Порог рейтинга
Уровень сложности

Постквантовая защита WhatsApp, новый Matrix 2.0 и PoW-задачи для входа на сайт

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


На Хабре уже упоминали, что протокол Signal получил постквантовую защиту, хотя в краткой новости не вдавались в детали. Но это действительно важное событие с учётом того, что количество пользователей этого протокола превышает 1 млрд человек за счёт WhatsApp.

Signal применяется для криптографической защиты сессий в одноимённом мессенджере, в Google RCS, WhatsApp и др. Опенсорсный протокол можно использовать в любом ПО.

Итак, что изменилось в криптографической подсистеме?
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Ральф Меркл: криптограф, крионик и теоретик молекулярной инженерии

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


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

Но мало кто знает автора этой идеи и одного из родоначальников современной криптографии — американца швейцарского происхождения Ральфа Меркла. А ведь это очень неординарная личность с разносторонними интересами, как и его жена.
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии1

Как найти приватный ключ в бинарном коде от Bitcoin Lightning Wallet уязвимость в Quasar Framework

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

В этой статье мы заострим внимание на приложение для смартфонов iOS и Android популярный Биткоин Кошелек с поддержкой быстрых платежей через (Lightning network) BLW: Bitcoin Lightning Wallet. К большому сожалению многие автономные ноды мобильных приложении с открытым исходным кодом от LNbits Node Manager и Core Lightning подвергает ВЫСОКЕМУ РИСКУ потери всех денежных средств в различных криптовалютных монетах.

Разработчик David Shares из японской компании Bitcoin Portal опубликовал множество документов.

Разберем теоретическую основу: LNbits – это бесплатная система учетных записей для многих мобильных приложений, которые работают с различными криптовалютными кошельками. Изначально широкую популярность LNbits Node Manager получила с развитием Bitcoin Lightning Wallet (BLW) т.к. развитие некастодиальных и автономных нодов для Bitcoin SPV, предназначенный для Android и iPhone с функциональностью Node.js. Благодаря автономным нодам вы имеете полный контроль над своим средством и вам необходимо самостоятельно управлять своими платежными средствами (в отличие от других мобильных приложении с криптовалютными кошельками).

Читать далее
Всего голосов 8: ↑1 и ↓7-6
Комментарии2

Изучаем Q#. Не будь зашоренным…

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров1.5K

Алгориитм Шора — квантовый алгоритм факторизации (разложения числа на простые множители), позволяющий разложить число M за время O((logM)^3) используя O(log M) логических кубитов.

Алгоритм Шора был разработан Питером Шором в 1994 году. Семь лет спустя, в 2001 году, его работоспособность была продемонстрирована группой специалистов IBM. Число 15 было разложено на множители 3 и 5 при помощи квантового компьютера с 7 кубитами.

Алгоритм Шора состоит из 2-х частей - квантовых и классических вычислений.

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

Классические вычисления решают задачу как по найденному периоду степенной функции найти разложение на сомножители.

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

А какие есть ещё варианты определить период функции используя квантовые вычисления?

Когда-то ранее я писал статьи про способы сравнения (поиска фрагмента) изображений, поиска частоты сердечных сокращений с использованием операции вычисления скалярного произведения, которую я делал с помощью свёртки на основе БФП.

Фурье-вычисления для сравнения изображений

Определение частоты сердечных сокращений методом корреляции с использованием быстрых Фурье преобразований

а так же начал повторять эту технологию при квантовых вычислениях

Изучаем Q#. Алгоритм Гровера. Не будите спящего Цезаря

Так почему бы не повторить успешный успех и, заодно, обобщить теорию вопроса?

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии26

Истории

Повышаем качество обслуживания трафика в российских криптошлюзах: нюансы внедрения QoS

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

Вспомните обычный рабочий созвон или видеоконференцию – с задержкой связи, эхом или торможением видео. Как правило, это происходит из-за плавающей пропускной способности каналов связи. И если для одних видов трафика (электронная почта или обмен короткими текстовыми сообщениями), подобные задержки некритичны, то для других (голосовые сообщения, видеотрансляции) они становятся серьезной проблемой. При этом безопасность все равно нужно обеспечивать, да так, чтобы средства наложенной защиты, в том числе для ГОСТ-шифрования, не вызывали дополнительных лагов в работе прикладных сервисов. Для этого криптомаршрутизаторы (они же криптошлюзы) должны поддерживать качество обслуживания (Quality of Service – QoS) различных видов трафика, которые конкурируют между собой за ресурсы различных каналов. В этой статье мы разберем, как обеспечивается QoS в зарубежном оборудовании, и изучим нюансы внедрения этих механизмов в российские криптошлюзы.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии10

Изучаем Q#. Обучаем перцептрон

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров3.7K

Базовым элементом построения нейросетей, как мы знаем, является модель нейрона, а, соответственно, простейшей моделью нейрона, является перцептрон.

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

Обобщенная схема нейрона представляет собой функцию f(SUM Wi*xi - W0)

Здесь:

x1,...,xn – компоненты вектора признаков x=(x1,x2,...,xn);

SUM – сумматор;

W1,W2,...,Wn – синоптические веса;

f – функция активации; f(v)= { 0 при v < 0 и 1 при v>0 }

W0 – порог.

Таким образом, нейрон представляет собой линейный классификатор с дискриминантной функцией g(X)=f(SUM Wi*Xi - W0).
И задача построения линейного классификатора для заданного множества прецедентов (Xk,Yk) сводится к задаче обучения нейрона, т.е. подбора соответствующих весов W1,W2,...,Wn и порога W0.

Классический подход обучения перцептрона хорошо известен

• Инициализируем W0,W1,W2,...Wn (обычно случайными значениями)

• Для обучающей выборки (Xk,Yk) пока для всех значений не будет выполняться f(SUM Wi*Xki - W0)==Yi повторяем последовательно для всех элементов

W = W + r(Yk - f(SUM Wi*Xki - W0)) * Xk*, где 0 < r < 1 - коэффициент обучения

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

Что же нам может предложить модель квантовых вычислений для решения задачи обучения перцептрона - то есть для нахождения синоптических весов по заданной обучающей выборке?

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

Для понимания данного туториала вам потребуются базовые знания по

• нейросетям

• квантовым вычислениям (кубиты и трансформации)

• программированию на Q-sharp

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии23

Milk Sad уязвимость в библиотеке Libbitcoin Explorer 3.x. Крупная кража на $ 900 000 у пользователей Биткоин Кошельков

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

Исследователи компании «Slowmist» проводят регулярное исследование сферы безопасности блокчейна Биткоин. Они обнародовали уязвимость в библиотеке Libbitcoin Explorer 3.x, которая позволила злоумышленникам украсть более $ 900 000 у пользователей Биткоин Кошельков (BTC).

По данным аналитиков, эта уязвимость может также затронуть пользователей Ethereum, Ripple, Dogecoin, Solana, Litecoin, Bitcoin Cash и Zcash, которые используют Libbitcoin для создания учетных записей.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии14

Реверс мобильных приложений на cocos2dx

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.4K

Хочу поделиться своим опытом в реверс инженеринге приложения на lua cocos2d-x. Файлы приложения зашифрованы xxtea, а ключи шифрования находятся в .so файле внутри приложения.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

.NET 7 против российской криптографии. Часть 2. Штампы времени

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.1K

Практически неотъемлемой частью формирования электронной подписи стало формирование штампов времени (TS) на подпись. С их помощью обеспечивается доверенное подтверждение времени подписания документа. Со штампами времени в .NET 7 та же беда, что и с CMS-сообщениями - отсутствие нативной поддержки российских алгоритмов хэширования и электронной подписи на уровне фреймворка. Но, благо, старый добрый WinAPI и здесь поможет обойти проблему.

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии8

PKI на ENS. Часть 2. Proof-of-Concept

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1K

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

Использование обратного резолвинга(хеш на домен) в смарт-контракте ENS для привязки пары ключей для подписи с доменом(или именем).

Читать далее
Всего голосов 4: ↑0 и ↓4-4
Комментарии2

На что способен КриптоПро JCP? Туториал по валидации отсоединенной электронной подписи

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.6K

Привет, Хабр!

Меня зовут Вадим, я Java-разработчик SimbirSoft. В этой статье я расскажу, как на одном из проектов мы реализовали возможность валидации электронной подписи с помощью КриптоПро JCP. Этот фреймворк оказался хорошей альтернативой КриптоПро SVS после того, как последний попал под санкции Microsoft. Впоследствии на других подобных проектах я убедился в том, что решение рабочее и наиболее подходящее под бизнес-цели заказчиков. Прежде всего это банки, нанимающие организации и другие юрлица, где ведется электронный документооборот.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

Что общего у приватности и феодализма

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3K

Вы читаете соглашения о конфиденциальности? Мало кто тратит время. Они все похожи друг на друга, скучны, и, скорее всего, не врут. Компании, особенно большие, стараются по-честному исполнять свои обязанности в отношении данных пользователей, хотя бы во избежание больших штрафов. И все же с защитой персональных данных в мире что-то не так. Что если концепция приватности сама по себе — и есть проблема.

Децентрализованные проекты обычно не говорят «приватность», а говорят, что данные «принадлежат пользователю» (data ownership). А в чем разница? Мы придумали забавную аналогию, и хотим поделиться.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии61

Криптография с открытым ключом: ключи RSA

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров11K

Уверен, что вы хотя бы раз создавали пару ключей RSA, напримет, потому, что вам нужно было подключиться к GitHub, и вы хотели избежать необходимости вводить свой пароль каждый раз. Вы добросовестно следовали инструкциям по созданию SSH-ключей, и через пару минут всё было готово.

Но знаете ли вы, что именно вы делали? Углублялись ли вы в детали процесса?

Знаете ли вы, что содержится в файле ~/.ssh/id_rsa? Почему ssh создает два файла с разным форматом? Замечали ли вы, что один файл начинается со слов ssh-rsa, а другой — с -----BEGIN RSA PRIVATE KEY----- ? Вы замечали, что иногда в заголовке второго файла отсутствует часть RSA и просто написано BEGIN PRIVATE KEY?

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

Читать далее
Всего голосов 24: ↑21 и ↓3+18
Комментарии1

Ближайшие события

Изучаем Q#. Статистическое сравнение двух последовательностей чисел

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.2K

Добро пожаловать в новый мир новых технологий вычислений!

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

Так и в математике - когда мы смотрим на последовательностей чисел, мы пытаемся понять - похожи ли они или нет, и насколько они похожи.

Одним из таких критериев "похожести" является совпадение частотных характеристик этих последовательностей.

Рассмотрим вопрос, как реализовать такую проверку с использованием квантовых вычислений и напишем программку-тест на Q-sharp для проверки этих рассуждений.

Для понимания данного туториала вам потребуются базовые знания по

теории вероятности

алгебре

булевым функциям

свёртке, корреляции, скалярному произведению

квантовым вычислениям (кубиты и трансформации)

программированию на Q-sharp

Добро пожаловать, дорогу осилит идущий ...
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Уитфилд Диффи — ученый и шифропанк

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.5K

Этого человека, немного похожего на худощавого Санту, знают, наверное, все без исключения специалисты по криптографии. Уитфилд Диффи — не только автор концепции криптографии с открытым ключом, но также один из первых и самых известных в мире шифропанков. Диффи — один из немногих лауреатов премии Тьюринга, присуждаемой за выдающиеся достижения в сфере IT, а также научный сотрудник Фонда Маркони и института Исаака Ньютона. Вот история человека, внесшего огромный вклад в информационную безопасность и сохранение конфиденциальности личной информации миллионов пользователей интернета по всему миру.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии8

Изучаем Q#. Алгоритм Гровера. Не будите спящего Цезаря

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров4.6K

Криптохомячкам посвящается ...


Алгоритм Гровера представляет собой обобщённый, независящей от конкретной задачи поиск, функция которого представляет "чёрный ящик" f: {0,1}^n to {0,1}^n, для которой известно, что EXISTS!w:f(w)=a, где a — заданное значение.


Считаем, что для f и заданного a можно построить оракул Uf: { |w> to |1>, |x> to |0> if |x> != |w> }


Алгоритм Гровера достаточно прост


  1. Задаём в регистре (массиве кубитов) начальное значение H|0>
  2. Повторяем несколько раз (исходя из оценки) пару трансформаций над регистром
    • Отражение от решения Uw: { |w> to -|w>, |x> to |x> if |x> != |w> } или Uw = I-2|w><w|
    • Отражение от s=H|0> Us = 2|s><s|-I
  3. Забираем нужное решение из регистра (с большой долей вероятности, что оно правильное)

Не будите спящего Цезаря!


Применим этот алгоритм для решения задачи нахождения ключа шифра Цезаря ...

Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии4

Стеганография в файлах формата .m4a

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.9K

Стеганография - это искусство и наука передавать сокрытые данные внутри других, не сокрытых данных.

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

Часто, когда говорят о стеганографии, не выходят за рамки LSB в картинках (хотя и в картинках можно сделать нечто более оригинальное ). 

В данном посте мы хотим рассказать о ссылочной стеганографии (принцип ссылочной стеганографии можно почитать тут) в формате .m4a(.mp4).

Общий принцип

Для начала на “пальцах” распишем, как это в целом работает. Любой файл можно зашифровать и представить в base64 текстовом виде. Далее его можно отправить на сервис одноразовых сообщений (например https://onetimesercet.com/ )

Отправив сообщение мы получаем ссылку вида https://onetimesecret.com/secret/jqr1s0o5bvlts8cyice71fvwv0o0ltx 

Затем мы отправляем саму ссылку на сервис сокращения ссылок, и получаем сокращённую ссылку; например для goo.su: https://goo.su/SAsb.

Как видим у нас всего 4 байта, если мы заранее знаем какой сервис используем (в реальной стеганографии разумнее использовать свой сервис), если мы заранее имеем ключ расшифрования (обмен ключей – отдельная задача), то нам достаточно переслать всего 4 байта для передачи искомого файла. 

Это и есть принцип ссылочной стеганографии – мы передаем ссылку на сообщение, а не само сообщение.

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

Читать далее
Всего голосов 15: ↑10 и ↓5+5
Комментарии17

Возможные векторы кибератак на новые французские цифровые удостоверения личности

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров9.6K
Больше года назад меня пригласили в закрытую программу баг-баунти с необычной мишенью для исследования: France Identité — новым французским цифровым ID. Сама по себе программа меня разочаровала, я бы сказал, что, вероятно, она не стоила моих усилий; впрочем, мне выплатили награду за несколько отчётов. С другой стороны, тема была для меня очень интересной, а техническая часть в конечном итоге сгладила негативные аспекты.

Для изучения предпродакшен-версии использовалась методика «чёрного ящика». Я получил «образец» французской ID-карты (carte d'identité), которая, естественно, не была связана с реальным гражданином. Однако я не получил PIN, поэтому не мог полностью изучить всю функциональность, реализованную в системе France Identité.

Ниже я расскажу о том, что обнаружил.

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

Firewall из RedOS

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров8.3K

Что же из себя представляет NGFW (Next Generation Firewall)? Чем заменить Firewall (вариант OpenSource)?

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии7

Разбираем TLS по байтам. Где собаки зарыты?

Уровень сложностиСредний
Время на прочтение34 мин
Количество просмотров12K


Подключение к сайту бывает защищённым, а бывает нет — это надо знать всем детям. Только не все дети знают, что это значит и как работает. Кажется я это уже писал? Ах да, это же вторая часть статьи с разбором TLS.

В первой мы увидели, что такое «защищённое соединение», сколько и каких ключей для него нужно, кто кого шифрует и подписывает, и что такое «сертификат». Сейчас разберёмся, как всё это дело реализуется в протоколе TLS: как выглядит рукопожатие, как сделать ключ шифрования своими руками, в каком виде данные передаются по сети.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии1