Ресурсы: техническое описание TLS, LaTeX - в картинки (img), криптографическая библиотека Arduino, шифр "Кузнечик" на ассемблере AMD64/AVX и ARM64
Откуда планируется брать “вычислительные мощности” для квантовых вычислений? Представление об этом позволяет составить полезная интерпретация двухщелевого опыта: здесь отдельный фотон в элементарной итерации регистрируется в одной (случайной) точке экрана и не регистрируется во всех других точках; при этом накопленная картина для двух щелей не совпадает с наложением картин, которые даёт каждая из щелей в отдельности. То есть, можно предположить, что регистрация фотона моментально отключается для прочих точек экрана в результате работы некоторого механизма, обеспечивающего и вычисление изменений в картину для двухщелевой конфигурации. Вот на этом загадочном гипотетическом механизме и предлагается выполнять квантовые вычисления.
Комментировать »
Небольшая подборка избранных записок, опубликованных на dxdt.ru в феврале 2024 года:
Синтезирование изображений смартфонами и “реальность фотографий” – продвинутые смартфоны сейчас дорисовывают детали на фотографиях, которые делает встроенная камера; обоснование допустимости такого дорисовывания приводит к философским рассуждениям о том, “что такое фотография”, которая, к тому же, давно не “химическая”.
Совпадения тегов ключей DNSSEC и парадокс дней рождения – занимательная математика в DNSSEC, где, по некоторым историческим причинам, для ссылок на ключи используются 16-битные идентификаторы-теги (а не какие-нибудь более продвинутые “отпечатки”), это означает, что вероятность совпадения на практике не просто велика, а очень велика: так, в корневой зоне теги ключей DNSSEC совпадают у кучи зон.
Машинное обучение на электронах – юмористическая заметка о том, чему мог бы научиться ИИ, обучаемый на выдаче квантовых экспериментов.
Подстановки и определение понятия бита – есть строгое и простое определение того, что такое “один бит”, это определение можно нарисовать, а можно увидеть на готовой картинке, иллюстрирующей действие таблицы подстановок шифра.
Представления о квантах и радиостанции – как и от каких атак может защищать такой технический метод, как квантовая криптография; нельзя ли найти параллели с гипотетическим использованием радиостанций без понимания того, как эти радиостанции действуют и устроены?
DNSSEC и особенности развития технологий – краткая заметка о том, что хрупкость, которую DNSSEC вносит в DNS, делает перспективы DNSSEC туманными.
Полиморфизм закладок в стиле ROP – загадочный текст, в начале которого рассказано про старые полиморфные компьютерные вирусы, а далее описывается экзотический метод реализации нетривиальных и хорошо скрытых закладок в программном обеспечении, которые закладки могли бы быть построены с использованием ROP-гаджетов.
Комментировать »
Пишут, что использование десятичной точки “отмечено на 150 лет раньше, чем считалось ранее” (то есть, между 1441 и 1450 годами). Кое-где новость даже пересказывают так, что это “десятичные дроби были открыты на 150 лет раньше” – хотя, казалось бы, какое отношение десятичная точка в записи имеет к обыкновенным дробям (а там, всё же, даже не про дедекиндовы сечения речь) или, предположим, к использованию отношений натуральных чисел в Древнем Египте?
Занятно, что более древняя шумерская система записи чисел вообще использовала “плавающую точку”, почти что как в современных компьютерных представлениях, вплоть до того, что интерпретация ещё более размыта. Но, естественно, речь в исходном сообщении про вполне конкретный случай – именно про десятичную (основание 10), именно про точку (не про позиционные системы счисления), так что, в общем, логично.
Комментировать »
Отдельные занимательные эффекты, связанные с переключением морфологических веток, можно наблюдать в автоматических переводчиках с ИИ. Кстати, надо сказать, что автоматический переводчик “Яндекса“, приправленный LLM ИИ, при переводе специальных фраз с английского на русский действует несколько лучше переводчика от Google (не менее приправленного). Вот примеры, иллюстрирующие и переключение интерпретаций по контексту, и качество.
1.
Исходная фраза:
“As a sailor once said: having logs removed in timely manner keeps bank totally speckless.”
Google:
Как однажды сказал один моряк: если вовремя убрать бревна, берег будет совершенно чистым.
“Яндекс”:
Как однажды сказал один моряк: своевременное удаление бревен позволяет сохранить берег совершенно чистым.
2.
“As a bookkeeper once said: having logs removed in timely manner keeps bank totally speckless.”
Google:
Как однажды сказал бухгалтер: своевременное удаление бревен делает банк совершенно чистым.
(Здесь Google предпочёл “брёвна” в банке, а не несколько более уместные “журналы”, как “Яндекс”.)
“Яндекс”:
Как однажды сказал один бухгалтер: своевременное удаление журналов позволяет сохранить банк полностью незапятнанным.
3.
“Bookkeeper mumbled the old nautical adage: having logs removed in timely manner keeps bank totally speckless.”
Google:
Бухгалтер пробормотал старую морскую поговорку: своевременное удаление бревен делает берег совершенно чистым.
“Яндекс”:
Бухгалтер пробормотал старую морскую пословицу: “своевременное удаление бревен сохраняет банк совершенно чистым”.
(Использование nautical успешно превращает logs в “брёвна”, сохранив “банк” силами слова bookkeeper, в котором три “дуплета”, но зато переводчик “Яндекса” даже кавычки поставил.)
Комментировать »
Фольклорная интерпретация термина “квантовый компьютер” строится на предположении, что характеристика “квантовый” отражает последовательное уменьшение линейных размеров микроэлектронных элементов: “сначала процессоры строили по “микрометровой” технологии, потом – из сотен нанометров, потом – уменьшили до десятков нанометров, а следующий шаг уменьшения – это уже и есть “квантовые” компьютеры”. Занятно, что, с некоторыми оговорками, это описание вполне годится в качестве верхнеуровневого объяснения наблюдаемой на практике ситуации.
Так, во-первых, попытка создания универсальных квантовых компьютеров – это попытка пройти на уровень, находящийся ниже не только всех этих полупроводников, но и ниже отдельных электронов. Во-вторых, для того, чтобы на этот уровень пройти, требуется создание инструментов для манипулирования отдельными частицами, с минимальными затратами энергии на вычисления и с минимальным временем выполнения операций, так что, когда (и если) окажется, что квантовый компьютер сделать не получается, технические результаты можно будет попробовать использовать для создания “ультракомпактных” вычислительных элементов, возможно, с трёхмерной вычислительной архитектурой.
Комментировать »
У рассылки SMS с устройств пользователей, которую, как пишут, предлагает Telegram, есть ценный “идейный” аспект: распределённую сеть, составленную из абонентских устройств, можно использовать куда как интереснее, чем просто в роли инструмента бесплатных SMS-рассылок. Смартфон, с работающим приложением, может обнаруживать другие устройства: WiFi, Bluetooth разных видов, акустика (это особенный метод, не только совместимый с “умными” колонками, но и вообще – кроссплатформенный и эффективно работающий в обе стороны).
Поэтому, в обмен на “премиум-доступ”, можно построить активную сенсорную сеть, с привязкой к точному времени и координатам, которая будет видеть перемещение не только различных пользователей приложения-мессенджера, но и прочих носителей смартфонов, равно как и выявлять устройства типа ноутбуков, беспроводных наушников, браслетов, часов с “картами и GPS”, “умных” (не менее, чем колонки) телевизоров, специальных “маячков”, а также и других подобных – тут есть где развернуться.
Комментарии (5) »
Описание того, как в iMessage внедрили вариант постквантовой криптосистемы Kyber1024, Apple сопровождает иллюстрацией, на которой популярные мессенджеры ранжированы по степени “защиты” пользовательских сообщений криптографическими методами. Telegram находится на самом низком, нулевом уровне (Level 0 – защиты E2E нет), вместе со Skype и др. – см. скриншот ниже.

Комментарии (1) »
Изолированные, закрытые вычислительные среды принципиально не удаётся “поставить на системный мониторинг” привычными средствами. Обычный подход, когда на каждом сервере (виртуальной машине или физической) установлено несколько программ-агентов (ср., конечно, Zabbix и др.), которые через сетевой доступ управляются центральным “сервером-мониторинга” – это, как говорится, “радость пентестера”: и действительно, агенты позволяют выполнять код на целевых системах и делать это по командам с центрального узла. Принято думать, что “исполнение кода” не свойственно агентам, а имеющийся инструментарий по запуску локальных команд, если про него вспомнили при настройке, можно отключить. Это, однако, сильно упрощённое понимание.
Программа-агент – это именно программа, исполняемая на удалённой системе, и если в эту программу могут поступать по некоторому, заведомо доверенному, каналу данные от центрального сервера, это означает, что данный канал может быть использован для компрометации программы-агента и исполнения произвольного кода через ту или иную уязвимость. То есть, даже в том случае, когда штатное “выполнение команд” отключено. Понятно, что схема с уязвимостью агентов существенно сложнее, чем захват сервера управления (мониторинга), при этом использование уязвимости агента, скорее всего, требует наличия доступа к серверу управления: так что нужно и то, и другое. Но зато в качестве большого бонуса приходит доступ сразу к большому количеству систем, через единую точку, которая, ещё раз, является доверенной.
Отчасти проблема решается настройкой агентов в пассивный режим: агент мониторинга больше не обращается на центральный сервер за командами и инструкциями, но присылает отчёты о состоянии локальной вычислительной среды в одностороннем порядке, с заданной периодичностью. Это вполне себе типовая настройка, но используют её не так часто.
Естественно, можно настроить различные фильтры, которые будут в сторону защищаемой системы (и в обратную сторону) пропускать только пакеты с конкретной структурой, можно даже переписывать эти пакеты на стороне фильтра. Уязвимым окажется фильтр, но он может быть выполнен очень простым, на простой аппаратуре – некоторые даже используют что-нибудь типа Arduino. Собственные решения для мониторинга на этом направлении вообще лучше: можно и режим сделать полностью односторонним, пассивным, и “развязки” разной степени “гальваничности” устроить.
Основной смысл типичного системного мониторинга в том, чтобы предотвратить проблему, заранее обнаружив угрожающее состояние. В теории. Это не всегда так на практике, поскольку есть ещё резервирование инфраструктуры и другие важные направления. Наличие развитого мониторинга с кучей отслеживаемых параметров может создавать ложное чувство предсказуемости и контроля над ситуацией. При этом отказы всё равно происходят внезапно, но иногда – в результате излишнего доверия мониторингу. Что-то отключают, что-то включают – жонглирование параметрами распространено едва ли не больше, чем исправление возникающих проблем. Наблюдаемое “мерцание” сигналов может приучить не обращать излишнего внимания на изменения (чтобы не слишком-то доверять мониторингу, см. предыдущее предложение). Особенно, когда отказы всё равно происходят внезапно. Отсюда и крайние меры: невозможность дополнительного мониторинга изолированной системы вынуждает использовать в качестве события “мониторинга” сам отказ. Иногда, такой подход – это неустранимая архитектурная особенность, проявляющаяся неявно.
Комментировать »
Кстати, недавняя история с OpenAI, когда (явно в рамках PR-акции) ходили слухи, что в компании запустили “прорывной сверхчеловеческий” ИИ, “умеющий решать задачи”, и поэтому нужно переставлять директоров, как-то затихла: биржевыми котировками немного поманипулировали, запросили новое огромное финансирование, но не более.
Комментировать »
Немного технологических параллелей. Предположим, что на сервер баз данных, через сеть, отправляются запросы добавления записей. При этом каждый запрос требует завершения транзакции – то есть, обратно клиенту должен прийти пакет, подтверждающий выполнение, после этого клиент может отправить следующий запрос. В условных терминах привычного SQL – это будут команды INSERT. Известно, что в такой схеме производительность, по числу добавлений в секунду, определяется сетевой задержкой. То есть, если пакет находится в пути 10 ms, то сервер должен дожидаться следующего INSERT 20 ms (потому что в обе стороны), а это гарантирует верхний предел в 50 записей в секунду, даже если сервер выполняет одну запись за 1 микросекунду (на несколько десятичных порядков быстрее).
Проблема, конечно, решается поточной записью “списками”, когда новые запросы поступают без ожидания завершения транзакции или какого-либо подтверждения по предыдущим запросам (например, COPY). Сетевая задержка тут уже успевает помешать только один раз, в начале соединения, а дальше – очередной запрос поступает на сервер тут же, следом за предыдущим, что позволяет работать с большей производительностью.
Естественно, эта особенность действует не только для баз данных: ограничивающее влияние сетевых задержек на транзакционные схемы с подтверждением есть в TCP (где с этим явлением борются: см. TCP Fast Open), в TLS (здесь тоже борются: см. TLS Early Data/0-RTT и др.), и в других протоколах. Схема обобщается и на многие решения, которые не имеют отношения к интернет-протоколам.
Рассмотрим такой сценарий: РЛС, предназначенная для определения координат и скорости “быстрых объектов” на “существенном расстоянии”. Тривиальная импульсная РЛС, полагающаяся на отражения отдельных зондирующих импульсов в строгом порядке, оказывается в такой же ситуации, как и сервер баз данных выше (при том, конечно, что РЛС появились раньше таких серверов). Излучили короткий импульс – приняли отражённый сигнал, обработали, отправили очередной импульс – если время до цели 1 ms (300 км, примерно), то получается разрешающая способность наблюдения в 500 Гц, максимум. А если цель дальше, то будет меньше. Хуже всего, что отражённый сигнал вообще может не прийти обратно к точке излучения на нужном уровне. Но если импульсы отправлять чаще, не ждать отражения, или даже использовать непрерывный зондирующий сигнал, то ситуация, в теории, резко улучшается, как и в случае с сервером баз данных: можно обрабатывать отражённый сигнал с разрешением хоть в гигагерц. На практике, впрочем, возникнут проблемы, потому что РЛС – это не сервер баз данных. Принимать сигнал одновременно с излучением – весьма трудно, если не использовать разнесённые в пространстве антенны (бистатическая радиолокация). А увеличение частоты следования зондирующих импульсов требует использования более сложных алгоритмов кодирования и обработки, которые позволяют различать отражённые сигналы, соответствующие различным зондирующим импульсам. Это, впрочем, обычная задача для современных РЛС.
Комментировать »
Новый