id: Гость   вход   регистрация
текущее время 21:24 28/03/2024
создать
просмотр
редакции
ссылки

Развёртывание квантовых сетей (QKD) в домашних условиях


Photon_counter_big-small.jpg (87 Кб)


Преамбула:


В связи с ожидаемой кончиной безопасности асимметричной криптографии, наверняка многие задумывались о переходе на безусловно безопасную квантовую (QKD) и о разворачивании собственной квантовой локальной сети в домашних условиях. К счастью, софт для реализации такой сети уже 2 года как свободен, открыт и выпускается AIT SQT Software (Австрийский Институт Технологий) под лицензиями GPLv2 и LGPL. Метод работы системы схематически описан здесь и на этом постере, а тут доступны слайды и другие материалы по теоретическим и экспериментальным наработкам группы.

Хронология:


Каждый релиз QKD-софта имеет собственное имя. Последний стабильный релиз — R7 (Де Бройль). Планк готовится к выпуску, и по ссылке можно следить за его подготовкой и исправлением ошибок. Полный список релизов:
РелизИмяДатаКоммит
R1Newton04.05.2006r64
R2Faraday05.10.2006r187
R3Tesla05.02.2007r322
R4Einstein30.05.2007r608
R5Bohr06.08.2007r817
R6Heisenberg24.10.2008r1403
R7De Broglie09.03.2010r1747
R8Planck??

Словарь терминов:


Для понимания документации, привожу краткий словарь технических терминов:
  • QRNG — квантовый генератор случайных чисел.1
  • DieQuick — программа для проверки рандомности (видимо, DieHard Quantum = DieQuick).
  • qd — QKD device.
  • qbb — сокращение для Quantum BackBone.
  • libqkd — библиотека QKD.
  • q3p — общепринятое сокращение для Quantum Point-to-Point Protocol (аналог ppp), который уже стандартизован IETF. Для работы с q3p используются:
    • q3p-cmd — тулза для динамического конфигурирования q3p.
    • q3p-link отвечает за безопасную коммуникацию между хостами.
    • Q3P MQR — Message Queue Reader, используется для чтения ключей из очереди сообщений и отправки их агенту управления ключами NEC keyagent.
    • Демон q3pd (видимо, по аналогии с pppd).
    • q3p0, q3p1, q3p2 и т.д — виртуальные сетевые интерфейсы наподобие tun/tap.
    • q3p-ospf — квантовый OSPF (если нужен квантовый рутинг и имеется более, чем 2 хоста).
  • ECP-QKD, IPSec QKD — разрабатываемые стандарты для других квантовых протоколов.

Поддерживаемые системы:


Для Де Бройля доступны как rpm-, так и deb-пакеты (32- и 64-битные версии), которые имеются в архиве по ссылке здесь, но разработчики рекомендуют устанавливать де Бройль на Debian «Squeeze» (см. файл README в архиве):
The recommended system for running R7 De Broglie is Debian Release "Squeeze".
These packages with the minimum version listened should be installed.
Debian — родная система разработки, в качестве доказательства прикладываю собственноручно сделанный скриншот QKD-монитора и видео2 (youtube|file) рабочей QKD-системы.

Если вдруг у вас нет под рукой настоящей QKD-системы, можно воспользоваться и виртуальной машиной симулятором QKD-сети. По ссылке доступен исходный код, инструкция по установке, rpm и deb-пакеты для 32- и 64-битных версий Linux. В fileэтом архиве также имеются скриншоты симулятора.

Для разработчиков:


Для желающих участвовать в проекте есть возможность создать свою среду разработки и использовать версионник — GitSvn. Разрешение зависимостей при компиляции описано здесь. Имеются биндинги на питоне. Не забывайте, что комментарии в конфигурационных файлах предваряются двумя минусами, как это принято в Haskell и Lua.

Инсталляция:


Установку Де Бройля лучше начинать с чтения этой вики и основной страницы релиза. Конфигурирование описано здесь. Чтобы включить поддержку QKD-девайса qd, раскомментируйте в исходниках ядра строчку Инициализация qd задаётся командой
qd NODE-ADDRESS OWN_UUID PEER_UUID
Сеть на виртуальных интерфейсах конфигурируется стандартным образом:
# ifconfig q3p0
q3p0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.0.0.1  P-t-P:10.0.0.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:31 (31.0 B)  TX bytes:32 (32.0 B)
По умолчанию используются порты 2000, 2001 и 2100.

Поддержка пользователей:


Если при работе с системой у кого-то возникли вопросы, есть форум поддержки, где их можно задать. Имеющиеся багрепорты можно просматривать (или отсылать свои) в багтрекеры: общий, по qkd-стеку, по qkd-софту, по qkd-сети. А в этом багтрекере даже можно выбирать релиз QKD-софта и тип квантовых утилит в критериях поиска. И видно, что люди действительно пользуются системой: например, по этой ссылке счастливый обладатель QKD-систем от швейцарской idQuantique интересуется, как заставить с ними работать qkd-stack и qkd-network, а вот тут кто-то жалуется на то, что в его Ubuntu проблемы с зависимостями.

Квантовая локальная сеть:


Использование квантовой сети из нескольких хостов — не редкое явление (quantum OSPF упоминался выше). Один из самых известных примеров — бывший 4 года назад своего рода Quantum Install Fest, сеть SECOQC (wiki) на которой был запущен Гайзенберг R6. SECOQC оперировала с шестью (по данным самого прокта — с восемью) хостами, соединёнными между собой в единую сеть разными способами (QKD по оптоволокну, по воздуху, на основе как дискретных, так и непрерывных переменных и т.д.). AIT был инициатором и координатором SECOQC, а софтверная компания AIT QKD Network Software как раз и выросла как его результат. Налогоплательщикам европейских стран разработка такой локалки обошлась в 14,7 миллионов евро, в её создании приняала участие 41 организация из 12 стран, 25 университетов (в том числе и наш), 5 исследовательских центров и 11 бизнес-структур. Основной мотивацией для финансирования этого проекта на уровне общеевропейских программ была защита от шпионажа со стороны американского «Эшелона». Тем не менее, всё это — уже прошлое науки, которая теперь движемся к следующему логическому этапу — квантовому интернету.

Квантовый интернет:


Наверняка многие из читателей уже слышали про космические программы QKD. Первый их этап — осуществление надёжного QKD по воздуху на значительные расстояния (лазерный луч по воздуху). Здесь за приоритет бьются китайцы и группа Антона Цайлингера, состоящая из около 30-40 человек. Для удачных экспериментов нужно максимальное удаление от возмущающих среду источников, поэтому были выбраны канарские острова Ла-Пальма и Тенерифе (расстояние между ними около 140 км), а оборудование было размещено в зданиях местных обсерваторий. На островах уже успело побывать много исследователей в рамках сотрудничества: Цайлингер любезно приглашал конференционную общественность поучаствовать в работе, в красках расписывая местную канарскую природу. Основные вредители «воздушного» QKD — облака (порой приходится много дней ждать удачной погоды) и квантовые хакеры, разузнавшие, какие там стоят марки фотонных детекторов и уже продемонстрировавшие их уязвимость. Впрочем, Цайлингер резонно подметил, что если хакеры станут строить леса вокруг обсерватории, чтобы посветить лазером в детекторы, они их заметят и надают им по шапке.

Второй этап космических программ — собственно размещение QKD-хоста на спутнике, который сможет, в свою очередь, соединять разные точки на земле через QKD по воздуху. Такое решение смотрится, видимо, более перспективным, чем попытки окутать всю Землю оптоволокном. QKD в космосе, ожидается, будет вот-вот продемонстрировано (концептуальных нерешённых проблем здесь нет), что позволит соединить квантовую локалку на одном конце света с квантовой локалкой на другом конце (квантовый VPN?). Собственно, на этом этапе условный SECOQC станет де-факто «международным», что позволяет по праву назвать такую сеть «квантовым интернетом». Единственный недостающий штрих — квантовые повторители (quantum repeaters), но их создание уже ожидается в близком будущем. Наконец, далее всё будет стандартно: удешевление технологии, её широкое распространение, рост пропускной способности, востребованность специалистов на рынке и кадровый голод (в квантовые админы никто не хочет пойти?).

QKD — это дёшево:


Если у вас нет 100k€ для покупки коммерческой QKD-системы, или если вы прочитали слева внизу на постере, что
The software is licensed as open source under the GNU GPL V2 and GNU LGPL V2.1. A registration fee of € 2.000, covers the costs of the software platform and grant full access

и вам не хочется платить 2k€ за софт, то это не беда:

  • Во-первых, часть софта можно скачать и без регистрации.

  • Во-вторых, незачем платить 100k€, когда можно включить мозги и собрать QKD-систему дома в гараже самому:

    garage-small.jpg (45 Кб)

    Стоимость необходимых деталей будет зависеть от желаемой ширины канала (фотонные детекторы в зависимости от характеристик разнятся от относительно дешёвых:

    Photon_counter_small-small.jpg (23 Кб)

    до крайне дорогих). Здесь вряд ли кто-то подводил точные расчёты, но молодёжь из компании-поставщика QKD в непрерывных переменных SeQureNet (обсуждалось здесь) оценивает стоимость деталей в 10k€. Прогнозы Вадима Макарова менее оптимистичны — минимум 15k€.

  • В-третьих, даже если у вас нет и 10 тысяч, это тоже не беда: можно просто пойти и устроиться квантовым админом. К примеру, голландская фирма-производитель Single Quantum активно fileищет себе струдников. Я, конечно, как теоретик, не стал бы претендовать на такую вакансию (и, вообще, в этой квантовой сетевой OSI моя работа соответствует самому нижнему уровню — физическому), но другие желающие вполне могут попробовать. И таких фирм на самом деле много, так что дерзайте!

  • В-четвёртых, наконец, для самых ленивых есть открытый свободный симулятор (см. описание выше) — просто скачивайте и запускайте!


Ответ скептикам QKD


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

  • QKD-системы баснословно дорогие! Кто в здравом уме согласится это покупать?

    Стоимость коммерческих систем QKD (а их всегда покупают вместе с поддержкой), 100k€, не является запредельно высокой. Основной потребитель QKD — коммерческие банки. Государство обязывает их делать резервные копии для всех транзакций, причём эти копии должны делаться в другие отделения банка, которые расположены не ближе, чем несколько десятков километров. Из-за этого возникает необходимость передавать большие потоки зашифрованных данных (а, значит, и часто делать рекейинг). Стоимость классических коммерческих систем, решающих такую задачу, настолько высока, что добавка лишних 100k€ на дополнительную примочку в виде QKD-системы существенной роли не играет. Технически это организовано так, что итоговый ключ шифрования вырабатывается из обоих источников (классического и квантового), причём если какой-то один из них будет полностью скомпрометирован, итоговый ключ всё равно останется безопасным. Таким образом, квантовая криптография «страхует» классическую, а классическая — квантовую.

  • Насколько QKD популярно в мире?

    Самый крупный поставщик оборудования — idQuantique. Cледует сказать, что он имеет довольно хорошую научную и коммерческую репутацию. В частности, когда была обнаружена серьёзная уязвимость в их реализации QKD (тем же Макаровым), они написали официальный анонс на сайте и бесплатно заменили оборудование у всех своих клиентов, хотя согласно юридическому договору с клиентами могли этого и не делать. Точное количество заказчиков QKD — коммерческая тайна idQuantique, поэтому это никто не знает, но их число оцениватеся в несколько десятков.

  • Все знают, что экспериментальные реализации QKD были взломаны. Тогда зачем мне разворачивать свою квантовую сеть?

    Чтобы избежать кривотолков, про это стоит рассказать интернет-общественности подробней. Демонстрационный взлом с полным восстановлением ключа планировалось провети на коммерчески продаваемой системе, но по техническим обстоятельствам3 впервые это удалось сделать для исследовательской реализации QKD, а для коммерческой пришлось ограничиться убедительной демонстрацией существования той же уязвимости (т.е. установку, чтобы это показать экспериментально, собирать под них не стали). idQuantique была приватно извещена об уязвимости в их системах, причём ей была предоставлена вся информация с полным раскрытием деталей. Николя Жизан, глава idQuantique, на это отреагировал как «это очень хорошо, что квантовая криптография достигла той степени зрелости (как технология), когда её уже стали взламывать».

    На тот момент был выбор: публично опубликовать уязвимость только для idQuantique'овских систем или посмотреть на какие-то ещё (но где их достать? они недёшево стоят), но idQuantique с радостью согласился достать за свой счёт чужие системы и предоставить их для взлома («да-да, взломайте тогда и их тоже!»), что и было сделано. Когда работа была закончена, у хакеров встал вопрос о том, в какой форме писать благодарность в научной статье (это общепринятая практика) за предоставленное оборудование, но, как оказалось, оборудование было взято у европейских армейских, которые изо всех сил решили отнекиваться в духе «нет, нет, нас благодарить не надо!» [не хотели светиться как потребители QKD :)]. Впрочем, за экспертизой армейским тоже пришлось обращаться к тем же хакерам (технология новая, интересная, купили прибор, а что с ним делать и как его анализировать — не знают, своих-то специалистов нет).

    В общем, я хочу сказать, что популярное мнение «idQuantique продавала, продавала, а потом внезапно узнала из прессы, что её приборы взломаны» — интернетовская байка. Действительно, взлом имел место, причём совершенно неожиданно для самой idQuantique: хотя теоретически и было известно про массу возможных несовершенств, которые, как предполагалось, потенциально где-то как-то могут быть использованы хакерами для частичного восстановления информации о ключе, никто не задумывался, что атака настолько опасна, что позволит прозрачным образом (недетектируемо для операторов QKD-оборудования) полностью восстановить ключ в эксперименте. Тем не менее, атака такого рода была по сути единственной, в дальнейшем эту опасность стали серьёзно учитывать; использовать те типы квантовых состояний и те протоколы, которые защищены от атаки; да и самих квантовых хакеров стало больше: одни создают, другие взламывают, причём обе стороны между собой активно взаимодействуют, что и есть нормальная среда разработки.

  • Система очень дорогая, в результате экспериментов по взлому она приходит в негодность, это ж сколько копий оборудования нужно, чтобы его удачно взломать или проанализировать? А если копий для экспериментов мало, системы дорогие, то насколько хорошо они исследованы?

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

  • Действительно ли строго доказано, что QKD безопасно?

    Мнение QKD-теоретика:

    QKD, само по себе, — вывод совместного безопасного ключа из имеющихся между общающимися сторонами квантовых состояний. Даже если ограничиться рассмотрением QKD в дискретных переменных (а оно есть ещё и в непрерывных), то всё равно речь пойдёт об обширном семействе протоколов. Безопасность одного протокола не следует из безопасности другого. Для некоторых протоколов эту безопасность можно условно считать доказанной, для других — нет.

    Когда мы говорим «безопасность доказана», мы, опять же, подразумеваем что-то кокретное. Исторически для некоторых протоколов была сначала доказана безопасность против так называемых индивидуальных атак, потом — против коллективных. Ещё позже было показано, что самые сильные и общие атаки — когерентные, но про них удалось доказать, они не сильнее коллективных. Тем не менее, даже если теоретический протокол безопасен против коллективных атак, но экспериментальная его реализация допускает то, что не допускает теоретический протокол, приходится рассматривать объём информации, который может через эту «дырку» утечь к атакующему.

    К примеру, в «атаке с разделением числа фотонов» атакующему может стать доступным n идентичных копий одного и того же состояния. Может ли он выяснить, что посылается через канал, если там возможны только 4 типа сигнальных состояний? Это — задача на различение (discrimination) квантовых состояний и на проверку статистических гипотез. Оказывается, есть два типа различения состояний при проверке этой гипотезы: «однозначное» (unambiguous) и «неоднозначное» (ambiguous). Каждое различение соответствует какому-то оптимальному измерению. При однозначном различении состояний есть два типа результатов, каждый из которых реализуется с какой-то вероятностью: «ответ получен и известен с вероятностью 100% как верный» и «никакой ответ получить не удалось» (использованные квантовые состояния/частицы после этого в обоих случаях будут необратимо уничтожены). При неоднозначном же различении какой-то ответ получается всегда, но его достверность строго меньше 100% (с вероятностью p угадываем значение бита и с вероятностью 1-p ошибаемся). Таким образом, при unambiguous-стратегии мы можем с какой-то вероятностью узнать ответ (и при этом будем знать точно, что этот ответ правильный), но с какой-то вероятностью попросту не получим никакой информации. При ambiguous же стратегии мы всегда получим какой-то ответ, но он будет совпадать с правильным только в определённом проценте случаев. Интересно, что при малых n атакующему выгоднее использовать один тип стратегии, а при больших n — другой, но при этом(!) есть такое (и относительно небольшое) n, при котором атакующий сможет узнать зачение бита всегда и с вероятностью 100% (не путайте задачу различения ансамбля из n идентичных состояний, про который известно, что каждое состояние — одно из m возможных, и задачу восстановления абсолютно неизвестного квантового состояния; последнее может быть узнано со 100% вероятностью только за бесконечное число измерений). Всё это было проанализировано для атаки с разделением числа фотонов для некоторых протоколов, и строго выведена оценка на безопасность.

    Наконец, даже если всё проанализировано, есть вероятность, что у системы нет робастности, и надо доказывать, что протокол устойчив при работе с не совсем идеальными состояниями; доказывать, насколько меняется степень безопасности при небольших отклонениях от идеальной (теоретически проанализированной) ситуации. Действительно, есть протоколы, для которых всё (или практически всё) это было произведено. Это — десятки объёмных работ, выполненные разными людьми в разных местах и разное время. А сам вопрос «безопасен ли протокол?» слишком обширен, чтобы степень безопасности подразумевала лёгкий универсальный ответ «да» или «нет». Иногда могут оставаться непроанализированными какие-то экзотические случаи, атаки или робастность, но большая часть анализируемых в теории атак слишком далека от возможностей экспериментального осуществления на текущий момент времени.

    Чем ещё хорош протокол QKD — так это своей «модульностью»: квантовая задача в QKD мала — только оценить процент безопасной взаимной информации, имеющейся между сообщающимися сторонами при заданном уровне шума в канале (уровень шума постоянно определяется экспериментально). Если этот процент известен, задача по выводу совместного секретного ключа становится полностью классической и решается такими протоколами стандартной теории информации, как совместное исправление ошибок (reconciliation) и усиление безопасности (privacy amplification).

    Мнение QKD-экспериментатора:

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

  • Не получится ли, что технология QKD «не апскейлится»? Например, не удастся сильно превзойти уже существующие скорости или дальность расстояния.

    Нет. Развитие идёт полным ходом по всем фронтам, и ни по одному из них мы не упёрлись в стенку, т.е. никаких «концептуальных затыков» пока не видно. Для широкой общественности это незаметно, но реально за последние лет 10 удалось сделать очень многое; в том числе сейчас удаётся экспериментально реализовать такие вещи, которые лет 5-10 назад считались чуть ли ни фантастикой. Конечно, пока что нет квантовых повторителей, необходимых для того, чтобы доверять маршрутизацию недоверенным хостам, но над их созданием активно работают, некоторые их составные части уже продемонстрированы экспериментально, никаких «концептуальных затыков» в них тоже нет, потому серьёзно ожидается, что они будут созданы.


1Например, можно взять idQuantique'овский QRNG: 4MBit/s, размеры 61mm ⊗ 31mm ⊗ 114mm, мне его предлагали взять за 2000 рублей:

QRNG_2-small.jpg (23 Кб) QRNG_1-small.jpg (14 Кб)

Система оснащена стандартным USB-входом, под винду и Linux доступны ещё и драйвера от поставщика. Также можно купить PCI-плату с QRNG на борту, которая будет выдавать 16Mbit/s.


2Всё-таки в AIT SQT Software классные ребята работают, весёлые. Сколько ни смотрю это видео, меня постоянно на смех пробирает. Для непонимающих английский на слух, диалог:
— Ha-ha-ha-ha ... We don't use the keys, we generate (them) here, so ... Ha-ha-ha-ha
— But it is useless spying because I am theoretician, that's why...
— Ha, OK, I see ... Ha-ha-ha-ha ... So you are not going to use the keys?
— Yes
— But people don't believe I'm doing something practical(ly) useful, so I can show people that sometimes it gets implemented...
— Ha-ha-ha-ha.
P.S.: Есть и другое короткое видео о том же (youtube|file), но уже не такое забористое.


3Один студент попался более расторопным, чем другой :)


 
На страницу: 1, 2, 3, 4, 5 След.
Комментарии [скрыть комментарии/форму]
— unknown (31/05/2013 22:15)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Вычисоительно стойкие "подбрасывание монеты по телефону" тривиальны, "мысленный покер" чуть сложнее. Насчёт информационной стойкости не знаю.
— spinore (06/08/2013 21:16, исправлен 06/08/2013 21:19)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786

Использование QRNG в домашних условиях


Зачем это нужно:


Наверное, не стоит перечислять все те случаи, когда наличие в домашнем хозяйстве хардварного квантового ГСЧ если не необходимо, то, по крайней мере, желательно. К примеру, это так при активном использовании виртуальных сред (анонимные системы, хостинги, дата-центры и пр.), где надо откуда-то брать энтропию для пополнения системного /dev/random. В новости про HAVEGE уже упоминалось несколько средств, позволяющих наполнять /dev/random при условии доступа к внешнему ГСЧ — это демон csprngd и Entropy Broker. Я не знаю, как организована доставка энтропии в софте от idQuantique, но у нас для этих целей используется доморощенный демон с говорящим названием QDaemon, написанный для нужд ранее уже упоминавшегося коммерческого стартапа SQR.

Оглавление:



Матчасть

Научная часть


Прежде, чем перейти к части технической, я немного расскажу о части научной. Обычно QRNG (тот же idQuantique) делают на основе светоделителя: на него пускают ослабленный лазерный луч, после чего смотрят, детектор на каком выходе из светоделителя зарегистрировал фотон. Если он вышел с одной стороны, то записываем единицу, если с другой стороны, то ноль. Квантовооптическое предсказание даёт строго 50% для каждого из вариантов, но на практике нужно учитывать неидеальность всех приборов, проводить постобработку сырых массивов случайных данных, иметь встроенные методы постоянного контроля за случайностью производимых чисел и т.д. Как я понял (могу ошибаться), этот метод имеет свои сущностные ограничения на скорость генерации чисел.


У нас разрабатывался другой метод, который этих ограничений не имеет, он основан на другом принципе — измерении числа фотонов в когерентом состоянии, излучённом лазером. Если измерять число фотонов в таком состоянии, оно окажется распределённым по Пуассону. Если получается количество фотонов меньше среднего, мы записываем ноль, если больше — единицу. Этот метод был реализован на экспериментальном стенде, проверен на тестах НИСТ и описан в работе, fileнедавно вышедшей в PRA, где за экспериментальную часть отвечал Lamoureux. Проектная скорость ГСЧ в таком методе — до 4-ёх гигабит. Правда, авторы нашли сомнительной идею, что кому-то где-то надо массово заполнять диски случайными данными до такой степени, что производство решений под эту задачу является коммерчески выгодным.


Авторами4 предполагалось, что такой улучшенный QRNG будет идти начинкой в готовом решении для датацентров, раздающим энтропию по локальной сети для других виртуальных и выделенных машин. В серверную стойку можно было бы установить один или несколько отдельных QRNG-серверов, которые бы раздавали энтропию остальным машинам — QRNG-клиентам.5 Поскольку денег на создание промышленного готового образца, работающего на новом принципе, сразу не нашлось, было решено создать образец с программной инфраструктурой и готовым QRNG-сервером на основе idQuantique'овской начинки, проектная скорость которого — 600 kbit/сек = 75 килобайт в секунду на каждого клиента.6 Конечно, это немного, но скорость стандартного системного /dev/random по сравнению с этими цифрами вообще тождественно нулевая. Интересно, что на официальном сайте нет никакого технического описания системы (предоставление какой-либо информации — только по индивидуальному запросу). Кроме того, они ещё огородили это дело тремя британскими патентами. Как бы там ни было, мне всё же было интересно поковыряться в этом ящике и софте, о чём ниже и пойдёт речь.


Техническая часть


Собственно, вот так выглядел этот образец на моём столе:

SQR-front.jpg (31 Кб)

А вот его задняя сторона:

SQR-back.jpg (21 Кб)

В общем, это стандартный серверный ящик, шумящий как пылесос, на который нацепили наклейку и положили внутрь idQuantique'овскую карточку с собственноручно сделанным софтом для обработки её вывода. Один из rj45-разъёмов используется для раздачи энтропии клиентам, другой — для соединения по ssh, чтобы администрировать сервер. Внутри стоит обычный Debian:

# uname -a
Linux sqrqrng3 X.X.XX-X-amd64 #1 SMP XXX XXX X XX:XX:XX UTC XXXX x86_64 GNU/Linux
и OpenVPN-сервер.


Лицензия на весь софт проприетарная, но заказчики при покупке готового решения получают его вместе с исходниками. Из рекламного datasheet-файла следует наличие поддержки следующих клиентских систем:

  • Open Solaris
  • Read Hat Enterprise Linux
  • Suse Linux Enterprise
  • KVM
  • Linux 2.6
  • Серверная винда 2003, 2008, семёрка, виста и XP.

Для контроля целостности данных заявлено использование HMAC (FIPS 198-1), а для privacy amplification (постобработки сырых данных?) — SHA-2 (FIPS 180-3). Протокол для раздачи энтропии — UDP, причём утверждается о поддержке IPv6. Datasheet «продаёт» свои 4 гигабита как возможность работать одновременно с 4000 клиентов, где каждому будет гарантироваться скорость 1 мегабит. Не обошлось и без платы за воздух:

Pay as you grow, license upgrade: 500Mbps — 4Gbps7

Также был заявлен гуй на джаве и web-интерфейс для администрирования. Web-интерфейс к серверу вроде бы даже работал, но мы обычно пользовались командной строкой. Клиентскую часть с гуем я не видел даже в глаза,8 поэтому ниже будет только командная строка, только хардкор.


Инсталляция

Попытка установки из бинарного пакета


Единственный пакет для QRNG-клиента, который был готов — rpm. Ни на Debian, ни в Ubuntu его не установить, поэтому действем инопланетянами:



Т.е. конфиги лежат в /etc, а сам пакет устанавливается в /path/to, есть стандартный init.d-скрипт для запуска. Теперь у нас есть пакет:

$ dpkg -I sqrnode_0.3-2_i386.deb
 new debian package, version 2.0.
 size 1927468 bytes: control archive= 1027 bytes.
      44 bytes,     2 lines      conffiles
     344 bytes,    11 lines      control
    1201 bytes,    19 lines      md5sums
 Package: sqrnode
 Version: 0.3-2
 Architecture: i386
 Maintainer: USER <USER@HOST>
 Installed-Size: 2992
 Section: alien
 Priority: extra
 Description: The complete package to operate the SQR node and related web services
  The complete package to operate the SQR node and related web services
  .
  (Converted from a rpm package by alien version 8.79.)
И вот его содержимое:



Сам пакет не толстый:
-rw-r--r--   1 root root 1.9M XXXX-XX-XX XX:XX sqrnode_0.3-2_i386.deb
Устанавливаем:
# dpkg -i sqrnode_0.3-2_i386.deb
Selecting previously deselected package sqrnode.
(Reading database ... XXX files and directories currently installed.)
Unpacking sqrnode (from sqrnode_0.3-2_i386.deb) ...
Setting up sqrnode (0.3-2) ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
В документации заявлено, что поддерживается Linux Debian 6.0 amd 64 bits (kernel X.X.X-X) и Oracle Enterprise Linux 5 update 6 x86_64 (kernel X.X.X.X). Итак, у нас создалась директория /path/to/sqr с кучей каталогов и подкаталогов. Копируем в нужное место RSA-ключ:
# cp -iv PubKey_Q01.pem /path/to/sqr/node/RSAKeys
`PubKey_Q01.pem' -> `/path/to/sqr/node/RSAKeys/PubKey_Q01.pem'
Делаем копию старого конфига себе:
# cp list.xml /home/USER/sqr/list.xml.original
и редактируем list.xml так, чтобы он содержал:
# cat list.xml
<?xml version="1.0"?>
<Lan size="1">
<parameter type="qrng">
<name>Q01</name>
 <value>QRNG_IP</value>
</parameter>
</Lan>
Идём в нужную директорию:
# cd /path/to/sqr/node/Bin
и инсталлируем SQR-агент:
# ./SQR_Agent install
No prior version of /dev/qrandom found.
Creating node /dev/qrandom.
insmod: error inserting '/path/to/sqr/node/Bin/qrandom.ko': -1 Invalid module format
Эх, видимо, скомпилено под 64 бита. Возьмём версии для 32-ух битов, перекомпиленные на другой машине:
# cd /path/to/sqr/node/Bin
# cp QDeamon /home/USER/sqr/QDeamon.original
# cp qrandom.ko /home/USER/sqr/qrandom.ko.original
# cp /path/to/USER/sqr/QDeamon QDeamon
# cp /path/to/USER/sqr/qrandom.ko qrandom.ko
Всё равно не запускается. Ставим libssl:
# apt-get install libssl-dev
Не помогает.


Установка из исходников


Что ж, придётся компилить из сорсов:



Странно. Досоздаём Bin (ошибка в Makefile'е?):

$ cd /home/USER/path/to/QRAND/node/QDeamon 
$ mkdir ../../Bin
$ make
gcc -lssl -lcrypto -static-libgcc obj/utils.o obj/config.o obj/log.o obj/sha2_256.o obj/hmac_256.o
obj/crypto.o obj/protocol.o obj/pools.o obj/QDeamon.o -o ../../Bin/QDeamon -lmxml -lpthread
/usr/bin/ld: cannot find -lmxml
collect2: ld returned 1 exit status
make: *** [QDeamon] Error 1
Хорошо, устанавливаем libmxml:
# apt-get install libmxml-dev
$ make
gcc -lssl -lcrypto -static-libgcc obj/utils.o obj/config.o obj/log.o obj/sha2_256.o obj/hmac_256.o
obj/crypto.o obj/protocol.o obj/pools.o obj/QDeamon.o -o ../../Bin/QDeamon -lmxml -lpthread
Вроде скомпилилось. Сохраняем копии:
# cd /path/to/sqr/node/Bin 
# cp /path/to/sqr/node/Bin/QDeamon /home/USER/sqr/QDeamon.backup
# cp /path/to/sqr/node/Bin/qrandom.ko /home/USER/sqr/qrandom.ko.backup
Уничтожаем старые копии идентичных файлов:
# cd /path/to/sqr/node/Bin
# md5sum  /home/USER/sqr/QDeamon.backup  /home/USER/sqr/QDeamon
fc0727fd3028e6570a6af542be801ca5  /home/USER/sqr/QDeamon.backup
fc0727fd3028e6570a6af542be801ca5  /home/USER/sqr/QDeamon
# md5sum  /home/USER/sqr/qrandom.ko.backup  /home/USER/sqr/qrandom.ko
1411fce7bc4dcb083eb45e297907fc01  /home/USER/sqr/qrandom.ko.backup
1411fce7bc4dcb083eb45e297907fc01  /home/USER/sqr/qrandom.ko
# rm /home/USER/sqr/qrandom.ko
# rm /home/USER/sqr/QDeamon
Заменяем файлы вновь скомпиленными:
# cd /path/to/sqr/node/Bin
# cp /home/USER/path/to/QRAND/qrandom.ko qrandom.ko
# cp /home/USER/path/to/QRAND/Bin/QDeamon QDeamon
Устанавливаем:
# cd /path/to/sqr/node/Bin 
# ./SQR_Agent install
No prior version of /dev/qrandom found.
Node /dev/qrandom already exists
qrandom successfully installed.
Вау! Теперь у меня в системе есть qrandom а у unknown'а нет:
# ls -la /dev/qrandom
crw-r--r-- 1 root root 54, 0 XXXX-XX-XX XX:XX /dev/qrandom
# ls -la /dev/random
crw-rw-rw- 1 root root 1, 8 XXXX-XX-XX XX:XX /dev/random
Теперь самое время включить QRNG-клиент:
# cd /path/to/sqr/node/Bin 
# ./SQR_Agent start
# ./SQR_Agent status
SQR Agent is running
Супер!

— spinore (06/08/2013 21:20)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786

Тестирование работы

Скорость /dev/random


Проверяем скорость /dev/random:



О, скорость отличная! Это не то, что без QRNG было, когда вывода cat /dev/random вообще не дождёшься, а тут прям моментально. Теперь проверяем скорость, пытаясь заполнить диск случайными данными. Запускаем и через какое-то время прерываем:
# nice -n 20 dd if=/dev/random | mbuffer | dd of=/dev/sdb
in @ 32.6 kB/s, out @ 32.6 kB/s, 38.1 MB total, buffer   0% full0+314355 records in
78047+0 records out
39960064 bytes (40 MB) copied, 548.457 s, 72.9 kB/s
78040+0 records in
78040+0 records out
39956480 bytes (40 MB) copied, 548.541 s, 72.8 kB/s
in @  0.0 kB/s, out @  0.0 kB/s, 38.1 MB total, buffer   0% full
summary: 38.1 MByte in  9 min 08.9 sec - average of 71.1 kB/s
# nice -n 20 dd if=/dev/random | mbuffer | dd of=/dev/sdb
in @  225 kB/s, out @  225 kB/s, 5380 kB total, buffer   0% full0+43344 records in
10761+0 records out
5509632 bytes (5.5 MB) copied, 76.9416 s, 71.6 kB/s
10760+0 records in
10760+0 records out
5509120 bytes (5.5 MB) copied, 76.9627 s, 71.6 kB/s
in @  0.0 kB/s, out @  0.0 kB/s, 5380 kB total, buffer   0% full
summary: 5380 kByte in  1 min 17.4 sec - average of 69.5 kB/s
mbuffer: warning: error during output to <stdout>: canceled
(вроде бы для random лучше без задания bs). А что у нас с /dev/urandom? Тестим:



Например, на заполнение 500-гигабайтного диска уйдёт 500*1024/5.5/3600 ≈ 26часов ≈ 1 сутки. Впрочем, на скорость /dev/urandom наличие QRNG не влияет (но, может, влияет на качество?):
# cd /path/to/sqr/node/Bin 
# ./SQR_Agent stop
# ./SQR_Agent status
SQR Agent not running
# nice -n 20 dd if=/dev/urandom bs=1M | mbuffer | dd of=/dev/sdb bs=1M
in @ 42.7 MB/s, out @ 42.7 MB/s, 4366 MB total, buffer   0% full4366+1 records in
4366+0 records out
4578082816 bytes (4.6 GB) copied, 797.595 s, 5.7 MB/s
in @  0.0 kB/s, out @  0.0 kB/s, 4366 MB total, buffer   0% full
summary: 4366 MByte in 13 min 18.0 sec - average of 5602 kB/s
mbuffer: warning: error during output to <stdout>: canceled
513+60887 records in
513+60887 records out
4578082816 bytes (4.6 GB) copied, 800.441 s, 5.7 MB/s
# nice -n 20 dd if=/dev/urandom bs=1M | mbuffer | dd of=/dev/sdb bs=1M
in @ 5293 kB/s, out @ 5293 kB/s,  646 MB total, buffer   0% full647+0 records in
646+0 records out
677380096 bytes (677 MB) copied, 112.242 s, 6.0 MB/s
in @  0.0 kB/s, out @  0.0 kB/s,  646 MB total, buffer   0% full
summary:  646 MByte in  1 min 52.7 sec - average of 5869 kB/s
mbuffer: warning: error during output to <stdout>: canceled
14+9402 records in
14+9402 records out
677380096 bytes (677 MB) copied, 115.235 s, 5.9 MB/s
А если забивать тот же 500GB-диск истино случайными битами, понадобится

500*1024*1024*1024*8/600000/3600/24/7/4 ≈ 3 месяца

Многовато. Кстати, ни в коем случае не надо читать из /dev/qrandom, поскольку он играет лишь вспомогательную роль. Если оттуда считать энтропию, /dev/random более не будет пополяться до тех пор, пока не будет перезапущен агент.

Сетевая анонимность


Судя по tcpdump'у, так выглядит трафик при скачивании энтропии с /dev/random:
18:34:04.119085 IP MY_IP.54396 > QRNG_IP.4000: UDP, length 13
18:34:04.128163 IP QRNG_IP.4000 > MY_IP.54396: UDP, length 3596
18:34:04.128290 IP QRNG_IP > MY_IP: udp
18:34:04.128310 IP QRNG_IP > MY_IP: udp
18:34:04.167680 IP MY_IP.46499 > QRNG_IP.4000: UDP, length 13
18:34:04.176816 IP QRNG_IP.4000 > MY_IP.46499: UDP, length 3596
18:34:04.176933 IP QRNG_IP > MY_IP: udp
18:34:04.176958 IP QRNG_IP > MY_IP: udp
18:34:04.216317 IP MY_IP.59221 > QRNG_IP.4000: UDP, length 13
18:34:04.225420 IP QRNG_IP.4000 > MY_IP.59221: UDP, length 3596
18:34:04.225542 IP QRNG_IP > MY_IP: udp
18:34:04.225568 IP QRNG_IP > MY_IP: udp
Если же используется /dev/urandom, то запросы к QRNG-серверу посылаются только каждые 5 секунд:
19:19:39.712104 IP MY_IP.34576 > QRNG_IP.4000: UDP, length 13
19:19:39.721125 IP QRNG_IP.4000 > MY_IP.34576: UDP, length 3336
19:19:39.721246 IP QRNG_IP > MY_IP: udp
19:19:39.721276 IP QRNG_IP > MY_IP: udp
19:19:44.732452 IP MY_IP.42897 > QRNG_IP.4000: UDP, length 13
19:19:44.741684 IP QRNG_IP.4000 > MY_IP.42897: UDP, length 3512
19:19:44.741793 IP QRNG_IP > MY_IP: udp
19:19:44.741820 IP QRNG_IP > MY_IP: udp
19:19:49.301990 IP MY_IP.56087 > QRNG_IP.4000: UDP, length 13
19:19:49.311140 IP QRNG_IP.4000 > MY_IP.56087: UDP, length 3440
19:19:49.311261 IP QRNG_IP > MY_IP: udp
19:19:49.311299 IP QRNG_IP > MY_IP: udp
Если QRNG-клиент работает в локальной сети, он может соединяться с сервером напрямую или пользуясь маршрутизацией через специально обученные BSD-роутеры, если же QRNG-клиент находится где-то в Интернете, он использует OpenVPN для соединения с QRNG-сервером. В последнем случае весь QRNG-трафик заворачивается в VPN-туннель. Pros & cons для privacy при использовании QRNG, думаю, очевидны.

Сейчас в сети работает где-то 3 местных QRNG-клиента, но это же только начало... :-) В штатной документации на QRNG даже описано, как поднять публичный web-сервер для раздачи случайных чисел. Впрочем, в любом случае клиенты каких-либо хардварных RNG могут получать случайные числа от нескольких сетевых RNG-серверов (чтобы улучшить доверие к получаемой гамме), принадлежащих разным операторам, функционирующим на разных физических принципах и т.д. И, возможно, это — не такое далёкое будущее, оно как раз хорошо соответствует современным взглядам на приватность, недавно озвученным Роджером: проект WiNoN как своего рода кластеризация сети на физические и локальные (реальные или виртуальные) подсети, в которых клиенты доверяют своему серверу (или даже группе серверов).


4За софтварную часть (rpm-пакет и пр.) по большей части отвечал Julien Niset. Более примитивную работу делали наёмные рабы за еду программисты.
5Каждый QRNG-клиент может получать энтропию сразу с нескольких QRNG-серверов одновременно, это поддерживается искоробочно.
6Если клиентов мало, то, казалось бы, можно было б каждому сделать скорость намного больше, но у них такая возможность не поддерживается из-за того, что есть какое-то узкое место, не позволяющее увеличить скорость на одного клиента (то ли системная программная фича, то ли хардварные особенности, так до конца и не понял).
7На все мои претензии по проприетарной части был стандартный ответ «Мы тоже хотим есть, и нам надо кормить своих детей» (а они у всех разработчиков действительно были, да).
8Возможно, её или пока вообще нет или не было для того конкретного образца, который я тестировал.
— unknown (07/08/2013 10:38)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Если он вышел с одной стороны, то записываем единицу, если с другой стороны, то ноль. Квантовооптическое предсказание даёт строго 50% для каждого из вариантов, но на практике нужно учитывать неидеальность всех приборов, проводить постобработку сырых массивов случайных данных, иметь встроенные методы постоянного контроля за случайностью производимых чисел и т.д.

В том методе вроде возможен ошибочный двойной счёт фотонов и прочие незначительные дефекты датчиков, приводящие к смещениям.

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


А от какой-нибудь раскалибровки, от перегрева датчиков или ещё чего пик там с положенного места сместиться не может? Тогда хотя бы экстрактор фон Неймана мог бы пригодиться.

скорость стандартного системного /dev/random по сравнению с этими цифрами вообще тождественно нулевая.

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

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

Не успели распиарить, как уже огородили. Ждут успеха.

На все мои претензии по проприетарной части был стандартный ответ «Мы тоже хотим есть, и нам надо кормить своих детей» (а они у всех разработчиков действительно были, да).

Вот от кого всё зло! Начиная от оправдания проприетарщины и заканчивая оправданием цензуры интернета и прослушивания коммуникаций для борьбы со всяким ЦП.

Как бы там ни было, мне всё же было интересно поковыряться в этом ящике и софте, о чём ниже и пойдёт речь.

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


Постобработка сырых данных называется обычно entropy distillation. Что обозначается термином privacy amplification в данном протоколе — непонятно.


А ещё там у вас client.jar, node.jar, core.jar, util.jar. Так оно ещё и на джаве!


Не очень то и хотелось ;-)


А на HAVEGE можно выжать мегабит из /dev/random.


Любой TRNG влияет в лучшую сторону из-за более частой смены "соли", отсутствия необходимости её сохранять на диск при перезагрузках и решения проблемы предсказуемости гаммы в виртуалках, повторных запусках из снэпшотов и пр.

Кстати, ни в коем случае не надо читать из /dev/qrandom, поскольку он играет лишь вспомогательную роль. Если оттуда считать энтропию, /dev/random более не будет пополяться до тех пор, пока не будет перезапущен агент.

Помимо этого, /dev/random ещё и хэширует то, что ему попадает из всех источников, перемешивая традиционно попадающие редкие системные события с потоком из QRNG.

Если же используется /dev/urandom, то запросы к QRNG-серверу посылаются только каждые 5 секунд:

Вот как раз, возможно, /dev/urandom и берёт соль из /dev/random каждые 5 сек. и то, если она там есть, а /dev/random пополняет своё состояние из QRNG потока, поэтому она там есть всегда.
— spinore (07/08/2013 13:30)   профиль/связь   <#>
комментариев: 1515   документов: 44   редакций: 5786

Да, возможно, там однофотонные источники используются. Это может служить и объяснением того, почему высокую скорость не получить (нужно время на релаксацию системы и т.д.).


Всё может, поэтому и
встроенные методы постоянного контроля за случайностью производимых чисел
Как я понял, диагностика состояния должна быть видна из администраторской панели через web-интерфейс, даже секретарши справятся. Вывод QRNG проходит постобработку. В том числе, там точно используется какой-то SHA (мне об этом говорили), какие-то экстракторы. В цитируемой PRA-работе про это вроде есть, и про экстрактор фон Ноймана точно есть.


Как я понял, так создаётся сейчас практически любой стартап. Некоторые компании (по непроверенным слухам, MagiQ), в основном занимаются тем, что скупают квантовые патенты. Если нет огораживающего патента, инвесторы не сочтут дело достойным капиталовложений, поскольку велик риск того, что либо это запатентуют другие и запретят вам производить вашу же продукцию, либо просто задавят на рынке конкуренцией. Мало у кого есть деньги на производство промышленного образца за свой счёт, это стоит порядка 100k€. Само запатентование — тоже десятки тысяч €. У многих нет таких средств, поэтому они целиком перепродают и патенты и права тем, у кого денег много. Более того, даже если нужные деньги нашлись, гарантий, что «бизнес» взлетит, нет никакой. Т.е., вы рискуете полностью проиграться в ноль и ещё остаться всем должным.


Да, сами по себе профессиональные скилы на дают широкого кругозора и мудрости. Требуется его специально расширять, многим интересоваться, многому учиться, да и то от однобокости будет трудно избавиться. Людям, которые работают, всеми этими посторонними вещами заниматься некогда. Не удивлюсь, если многие криптографы считают, что им тоже нечего скрывать, что криптография — интересная научная игрушка как их работа, но им лично в их жизни незачем пользоваться криптосредствами. Я ловил себя на мысли, что то, о чём говорят «учёные» в свободное время — это такие посредственные примитивные обсуждения и интересы, что поначалу очень непривычно это слушать. Так что да, вы не преувеличиваете. Их взгляды на цензуру и прочее именно такие и есть, это всплывало в разговорах.


Вопрос доверия — это другой вопрос, я про него написал. Tor-нодам же в целом вы как-то доверяете. Можно приобрести QRNG и самому, самому сделать софт под него, носить его с собой. Больших проблем и нереальных скилов это не требует.


Worse is better. Толковые программисты на LISP и Haskell — штучный товар, они стоят других денег, мягко говоря.


А что, неплохая бизнес-модель: создаём энтропию, потом продаём файлы с энтропией за деньги. :-)


Там энтропия не настоящая, не квантовая, она не будет греть душу приобщением к высоким технологиям. Обладание QRNG — это же вопрос статуса. Пусть ваш ноутбук HAVEGE в сто раз лучше макбука QRNG, но QRNG — это QRNG, а не просто какой-то там RNG, им можно похвастаться перед друз на pgpru, ведь не у каждого ещё есть. :-)


Вот меня это и удивляет. Получается, что urandom генерирует 5MB*5сек = 25MB псевдоэнтропии из мелкого случайного seed'а. Нагора вам выдаётся 2 десятка мегабайт, реальной энтропии в которых — всего-то несколько байт. И как это понимать?
— unknown (07/08/2013 15:09, исправлен 07/08/2013 15:13)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Если нет огораживающего патента, инвесторы не сочтут дело достойным капиталовложений, поскольку велик риск того, что либо это запатентуют другие и запретят вам производить вашу же продукцию, либо просто задавят на рынке конкуренцией.

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


Не удивлюсь, если многие криптографы считают, что им тоже нечего скрывать

Хуже того, пропагандисты идей приватности сами бравируют этим. Речь, например, о Б. Шнайере, который хвастался своим незапароленным вайфаем. На что ему указали в блоге и он был вынужден согласиться, что это плохая практика: даже если ему лично нечего скрывать и сам он не делает ничего плохого, он увеличивает шансы поиметь разборки с полицией, если через его вайфай будут совершены незаконные действия.


это такие посредственные примитивные обсуждения и интересы, что поначалу очень непривычно это слушать.

У них ещё и ГСМ за пределами узкой профдеятельности бывает. Врачи и специалисты по химии верят в гомеопатию, "потому что ею английская королева пользуется". Логика про молярные соотношения при разведении веществ на уровне школьной программы существует как-то параллельно от остального мировозрения. Не хочется углубляться в оффтопик, но это вопрос цивилизационный — сейчас к знаниям относятся так потребительски-утилитарно даже сами их открыватели, что достижения цивилизации не ценятся, а древнее мифологическое сознание осталось и культивируется.


Их взгляды на цензуру и прочее именно такие и есть, это всплывало в разговорах.

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



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



Кстати, только потому, что там уходит много времени на неоптимальное хэширование. Напрямую с демона можно снимать энтропию сотнями мегабит.


Пусть ваш ноутбук HAVEGE в сто раз лучше макбука QRNG, но QRNG — это QRNG, а не просто какой-то там RNG, им можно похвастаться перед друз на pgpru, ведь не у каждого ещё есть. :-)

Да, не та у HAVEGE степень гламурности, элитарности и гаджетохипстерности :)


Нагора вам выдаётся 2 десятка мегабайт, реальной энтропии в которых — всего-то несколько байт. И как это понимать?

/dev/urandom должен взять из /dev/random минимум 128 бит энтропии из которой имеет право растягивать криптостойкую псевдослучайную гамму сколь-угодно большой длины, пока в /dev/random снова не накопится хотя бы 128 бит энтропии. В /dev/random тоже не всё так гладко — во многих работах его критиковали за неверные оценки энтропии. Впрочем, если к нему подключен TRNG или конкретно QRNG — его мелкие недостатки уже перестают иметь значения.

— Гость (19/01/2014 08:10)   <#>

Наглядная демонстрация к сказанному на примере fundrising для idQuantique. Аналитик из фонда, выделевшего несколько миллионов долларов на развитие квантовой криптографии в связи с информацией про АНБ, пишет на слоне статью «5 мифов о квантовом интернете». Аналитик имеет профильное образование и научную степень:

Education and Scientific Experience. PhD degree in applied mathematics from Moscow Institute of Physics and Technology. Earlier in his career Nikolay worked for Computing Centre of Russian Academy of Sciences (CCRAS) and has over ten scientific publications in the fields of artificial intelligence and quantitative modeling of physical processes.

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

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

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

Речь, я так понимаю, о макаровском видео, т.е. о взломе конкретной имплементации, но не самого принципа QKD. Естественно, аналитик об этом ничего не пишет. Равно он не пишет и о том, что та уязвимость, через которую ломали Clavis и т.п. системы уже давно закрыта. Более того, сам Макаров в своё время сказал

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

Далее аналитик пишет

Таким методом можно добраться до основной, нешифрованной части трафика, включая многие данные форм и пароли от веб-сайтов. Сложнее обстоят дела с почтовыми веб-сервисами и платежной информацией – эти данные шифруются с помощью алгоритма RSA. Надежность этого алгоритма формально не доказана, единственное обоснование надежности RSA в том, что пока не нашелся тот гений, который бы его сломал.

При чём здесь RSA, казалось бы? Какое оно имеет отношение к защите QKD? Кроме того, «веб-сервисы и платежная информация» может шифроваться не RSA, а другой асимметрикой, если на то пошло.

Зато доказано, что при при наличии квантового компьютера RSA можно щелкать как семечки. И все это весьма неутешительно

Квантового компьютера на сколько логических кубит? Квантовый компьютер на 2 кубита уже есть, а 6, 15 и 21 уже «факторизовали». Сколько нужно кубит, чтобы взломать хотя бы RSA-1024? Насколько будет полезен для взлома RSA-1024 КК на 500 кубит? Пусть аналитик не знает ответы на эти вопросы, но, интересно, он их себе хотя бы задавал, когда думал над темой? Он осознавал, что такие вопросы существуют?

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

Мы, конечно, знаем, что это очень детское объяснение (хотя его можно считать условно правильным в 10-ом приближении). Краткое объяснение (тоже упрощённое, но не до такой степени) для неспециалистов звучало бы так:

Т.е., вы считаете, что иногда Боб будет ошибаться, измеряя сигнал, а иногда Ева, так? И что потом Боб с Алисой по открытому, но аутентифицированному каналу выясняют, в каких битах Боб ошибся, а в каких нет, сравнивая синдромы. Далее, за счёт reconciliantion и privacy amplification Алиса и Боб могут выкинуть те битовые блоки, которые в которых ошибка есть, оставив только те, где её нет, т.е., совпадающие. У Евы же так хорошо не получится: если она в каком-то блоке сделала ошибку, никто её блок не выкинет, а какой блок должен быть правильным, она не знает. Соответственно, после этапа переговоров у Алисы и Боба появляется идентичный набор битов на обоих концах, а у Евы нет, у неё есть отличие. Далее Алиса и Боб могут применить экстрактор и сжать свои битовые строки в более короткий, окончательно выдавив ту часть информации, которая доступна Еве. — В этом ваша идея? Так работает QKD.

Отличие от шумового крипто в том, что в QKD наличие искажений при получении данных Бобом трактуется, как ошибка. Если канал идеальный, Боб совершит ошибку в определённом проценте случаев, и этот процент в квантовом канале можно строго оценить. Если же Ева вмешивается, Боб совершит ошибку в большем числе случаев, т.е., у Алисы с Бобом будет больше различающихся битов по окончании передачи. В QKD есть оценки, которые говорят о том, сколько максимум получила информации Ева, если отклонение от стандартного процента такое-то. В зависимости от этой информации, полученной Евой и оцененной по числу ошибок в канале, Алиса с Бобом по-разному делают privacy amplification. В частности, если уровень шума/искажений превосходит некоторый размер, шифрованый канал между Бобом и Алисой установить вообще нельзя.

Идём дальше:

Информация, передаваемая в виде однофотонных лазерных импульсов по оптоволоконным каналам связи, защищена, таким образом, от прослушивания.

Хотелось бы очередной раз упомянуть, что все современные системы QKD неоднофотонные. На примере однофотонных систем объясняют принцип работы новичкам, потому что так проще. Реальные индустриальные системы работают на, например, когерентных состояниях (DV QKD), гауссовых состояниях (CV QKD) или кубитах, реализованных time bin'ами (DV QKD, IdQuantique). И протоколы там не E91 и не BB84, а какой-нибудь SARG и обвески типа подсадных (decoy) состояний. Помимо того, что работа на других состояниях позволяет избежать многих проблем, присущих однофотонному QKD (как чисто технологических проблем, так и специфических для однофотонного QKD атак), это позволяет иметь большие пропускные способности.

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

Видно, что аналитик совсем ничего не понял. Боб получит «кашу» в любом случае, в этом цель протокола: сгенерировать гамму для одноразового блокнота.

В представлении некоторых людей подобные технологии действительно лежат в том же поле, что фотонные двигатели и световые мечи. Но пока одни, услышав слово «квантовый», делают круглые глаза, другие делают деньги. Так, компании MagiQ и IdQuantique еще в начале 2000-х разработали коммерческие системы квантовой криптографии, заняли свою рыночную нишу и вышли из стадии стартапа. Первыми клиентами технологии будущего стали крупные банки, государственные и военные структуры.

Всё бы ничего, да есть такая вещь (учёным её позволено не знать, а вот бизнес-аналитики, вкладывающие миллионы, знать обязаны), как то, что бизнес idQuantique в основном построен на производестве оборудования (однофотонные источники для разных экспериментов, QRNG и др. штуки научного инструментария), а QKD идёт лишь незначительным довеском к нему. idQuantique останется не плаву на рынке и окупаемости, даже если вообще перестанет продавать QKD. Это не единственный её бизнес. А MagiQ — закрытая контора при американских военных ведомствах, живущая на госфинансировании и промышляющая в основном скорее скупкой патентов и «интеллектуальной собственности», чем широкими продажами своего QKD. Есть несколько фирм, производивших QKD, которые не взлетели и разорились. И те примеры, в которые можно условно ткнуть как успешные, надо тыкать осторожно.

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

Насчёт «абсолютной защищённости» Реннер бы мог поспорить, если не произнесены соответствующие оговорки:

The unconditional security of a quantum key distribution protocol is often defined in terms of the accessible information, that is, the maximum mutual information between the distributed key S and the outcome of an optimal measurement on the adversary's (quantum) system. We show that, even if this quantity is small, certain parts of the key S might still be completely insecure when S is used in applications, such as for one-time pad encryption. This flaw is due to a locking property of the accessible information: one additional (physical) bit of information might increase the accessible information by more than one bit. // abstract

It turns out, however, that—even with the help of quantum mechanics—it is generally impossible to generate perfectly secure keys. One thus usually considers slightly weakened security definitions. For example, condition (ii) might be substituted by a bound on the information that the adversary has on S. This, however, raises questions such as: What is an appropriate measure to quantify the adversary's information on S? How to choose the upper bound on this information such that it is guaranteed that S can safely be used in applications? // Стр. 1

The setting considered in this paper consists of a classical n-bit string S = (S1, …, Sn) (for any nN) and a quantum system E such that the following holds:
(i) any measurement on E chosen independently of S only reveals a negligible amount of information about S (i.e., Iacc(S;E) is exponentially small in n) and
(ii) given the first n-1 bits of S, there exists a measurement on E which determines the value of the nth bit with certainty (i.e., Iacc (S; ES1, … , Sn-1) = n).

This example of locking reveals a weakness of security definitions based on the accessible information as they are used in the standard literature on quantum cryptography. In particular, a secret key which is secure according to such a definition might become completely insecure when it is used in certain applications (Section IV). A possible solution to this problem is to use the stronger yet still achievable notion of ε-security (Section V): An ε-secure key can safely be used in any application—except with some (arbitrarily small) probability. // Conclusion

Эта работа — не открытие, тут поминалась уже дважды:

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

Ева может оптимизировать свою атаку в зависимости от того, как Алиса с Бобом будут обрабатывать свои сырые данные по классическому протоколу, это породило ещё кучу работ, начиная с типа таких, т.е., даже скорость Деветака-Винтера — это не конец, это ещё только начало.

Идём дальше:

Квантовым интернетом можно покрыть всю планету: художественное преувеличение

У квантовой криптографии есть свой «скелет в шкафу». Все отлично работает на небольшом расстоянии. Но чем длиннее канал связи, тем выше потери и ниже скорость передачи данных. В районе 120 километров и более она сползает до совершенно неприличных величин вроде десятков бит в секунду. Прикладная же дистанция для использования технологии не превышает 60–80 километров, что может покрыть разве что Сингапур.

Всё как бы так, и ниже он даже пишет про повторители, но как можно умолчать об этих экспериментах:

Китай эту тему тоже разрабатывает. Там конечно, почти сплошной популизм от коммунистической партии, который стараются представить в выгодном для имиджа страны свете, но если Европа вообще руки-ноги свесит, то Китай её может обойти. В частности, про эксперимент с QKD между спутником и Землёй писали, что «тупо выбили много денег, нереально много», а всё остальное вторично. Зато в новостях удачно раструбили, что «обошли и европейцев и сделали это быстрее, чем группа Цайлингера».

Цель этих экспериментов как бы в том и состоит, что как только появятся повторители, их повесят на спутник/спутники, и сигнал можно будет транслировать между любыми двумя точками Земли. Т.е. «покрыть всю планету» — это хоть и преувеличение, но не до такой степени, т.к. результаты текущей работы нацелены именно на это.

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

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

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

Эйнштейн перевернулся в гробу.

Так что концепция охраняемых подстанций, которая используется в сетях типа Лос-Аламоса – дорогой и в общем-то тупиковый путь.

Наверное, у них есть на то свои мотивы, но в целом посыл понятен. Ссылка: «Government Lab Admits to Using Quantum Internet for Two Years».

Квантовый интернет обеспечит полную сохранность передаваемых данных: неправда

Здесь кроется основная шутка. Можно построить идеальный передатчик и получатель, изобрести повторитель – и все равно остаться с носом. Как было сказано выше, технология работает очень медленно, для нее невозможна даже мегабитная скорость.

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

Поэтому посредством квантового шифрования передаются не сами данные, а только шифровальные ключи.

Пардон, через QKD всегда передаётся сырой материал для выработки шифровальных ключей, а сами данные не передаются никогда! Отличие лишь в том, как будет использоваться ключевой материал: если его много, то можно в одноразовом блокноте, если мало, то можно в качестве симметричного ключа для блочных шифров.

Поэтому, несмотря на все успехи в данной области, а они действительно заслуживают восхищения, самым действенным способом сохранить секреты остается один: не иметь их.

Лучший способ вскипятить воду в чайнике — это вылить её из него, т.к. пустой чайник кипятить смысла нет, задача решена.

P.S. Пост символизирует то, почему часто так неохота спорить с копипастой писать разборы новостных релизов и прочего журнализма. Полная критика требует написать в несколько раз больше текста, чем содержится в самом критикуемом, потому что ошибки и недочёты (с точки зрения формального беспристрастного научного текста) будут практически в каждом предложении. С этим текстом расход требуемого времени тоже недооценил раз в 10. Думал, сейчас раз — и быстренько напишу по пунктам, а оказалась, что это работа на несколько часов, да ещё гугление ссылок время отнимает. Вообще, ошибок и недочётов в тексте не было бы (или было бы значительно меньше), если бы текст писал квалифицированный специалист в своей области, а не бизнес-аналитик, влияющий на распределение миллионов $$$. Перефразируя известную поговорку, «если ты такой богатый, то почему такой глупый?». Могли бы за свои миллионы нанять дешёвого раба, владеющего темой, который бы им всё по полочкам разложил, но, видимо, даже на это ума не хватило. Как видите, вложить миллионы в idQuantique можно даже не зная, что однофотонное QKD к ним уже давно не имеет никакого отношения, равно как и все страхи, с ним связанные.
— SATtva (19/01/2014 08:47)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
злоумышленник, именуемый в международной традиции красивым именем Ева (интересно, как это связано с первородным грехом...)

Ай лолд. Интересно, а как это связано со словом eavesdropper?
— Гость (19/01/2014 09:23)   <#>

Там другая Ева ☺. Та Ева, eaves, — на самом деле, водосточный желоб / карниз на крыше:

The verb eavesdrop was originally a back-formation of the noun eavesdropper ("a person who eavesdrops") which was formed from the unrelated noun eavesdrop [рекурсия замкнулась!] ("the dripping of water from the eaves of a house; the ground on which such water falls"). An eavesdropper was one who stood at the eavesdrop (where the water fell, i.e., near the house) so as to overhear what was said inside.

Короче, eavesdropper по своему смыслу — человек, стоящий возле дома рядом с водосточной трубой. Правда, непонятно, почему именно возле неё, а не, например, возле окна или двери.
— Гость (19/01/2014 09:35)   <#>

Наверно, могла иметься в виду картинка типа этой из вышеупомянутой статьи, но без произнесения поясняющих слов это, в любом случае, будет совершенно непонятно читателю.
— SATtva (19/01/2014 09:38)   профиль/связь   <#>
комментариев: 11558   документов: 1036   редакций: 4118
Там другая Ева ☺. Та Ева, eaves, — на самом деле

Я в курсе.
— Гость (19/01/2014 09:42)   <#>
Кстати, происхождение слова «eaves» тоже не имеет никакого отношения к Еве.
— unknown (19/01/2014 14:43)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664
Если у аналитика есть строгое обоснование того, что мегабитная скорость принципиально недостижима в QKD, то учёным будет очень интересно об этом узнать.

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

Пардон, через QKD всегда передаётся сырой материал для выработки шифровальных ключей, а сами данные не передаются никогда!

Маргинальные протоколы или даже теоретические намёки, что в квантовом канале можно не просто безопасно совместно генерировать рэндом, а передавать именно данные, где-то тоже попадались. Но это может быть сильная экзотика, маргинальщина, альтернативная физика или слабодоказанные гипотезы, не знаю.


Здесь в треде мною ранее упоминался HAVEGE. По нему есть ничем непримечательная работа, скорее даже записка, но там на стр. 8 есть замечательная картинка для сравнения: fileFig. 3 – Color image representation of a sequence produced by a quantum random number generator.
— Гость (20/01/2014 13:14)   <#>

На самом деле там есть кривая зависимости скорости от дальности. Чем больше дальность, тем больше шумы, тем меньше скорость. Начиная с какого-то уровня шумов пропускная способность (скорость передачи) Деветака-Винтера превращается в ноль.


Мне кажется полуочевидным, что IT-безопаснсть иначе (в другом протоколе, не QKD) не будет достижима: нам в любом случае нужен одноразовый блокнот, а квантово зашифровать n известных противнику бит можно только с помощью 2n бит (да даже если и n, то всё равно нет сжатия большого секрета в малый). Может быть, даже вычислительной (но безусловной) безопасности тоже не достичь, передавая данные, а, может, и достичь — тут я сам плаваю в этих вопросах.

У меня где-то отложился такой факт (но, может, он ошибочный), что можно сделать абсолютно безопасный локинг, если считать, что противник не знает ничего про плейн-текст (и, возможно, ещё надо потребовать, что этот текст случаен — детали не помню). Локинг делается как раз в смысле вычислительной безопасности: там небольшим паролем закрывают доступ к большому количеству информации.

Говорят, что когда-то все думали в терминах «придумать квантовое шифрование» по аналогии с классическим (что-то типа квантовой Энигмы), пока не поняли, что это невозможно. Однако, Ллойд кое-что недавно нарыл по этой теме. Правда, если читать внимательно, там в самом тексте есть оговорки:

The security of quantum enigma machines relies on the phenomenon of quantum data locking [4-10].

Quantum enigma machines are secure in principle by the accessible information criterion.

Quantum data locking hides large amounts of data with a small key. Consequently, Alice and Bob must be very careful to ensure the security of that key. Data locking is susceptible to plain-text attack: if Eve knows part of the message, she can use that to determine the key and unlock the rest [7,9]. Alice and Bob can evade the plain-text attack by using data locking to distribute a random secret key [11]: Alice simply sends Bob a random number, known only to her. Performing a fully random unitary is computationally inefficient: in [10], however, it is shown how locking can be performed using non-random unitaries that can be constructed in time almost linear in n. That is, unlike the classical pseudo-random transformations of the original enigma machine, quantum pseudo-random transformations perform a sufficiently good job of scrambling the message that Eve cannot decipher it.

Я плохо понимаю, что хочет сказать Ллойд. Звучит как «локинг не выдерживет plain-текст атаки, но мы это можем пофиксить предрасшаренным ключом(?); однако, такой ключ сделает это неэффективным, но есть процедура, чтобы сделать расходы линейными по n»? Но линейный рост по n — это и есть одноразовый блокнот. Надо читать внимательней, ходить по ссылкам...


Очень странная картинка. Пишут, что это QRNG, но не пишут, откуда он взялся. Они его купили у кого-то? Откуда-то скачали готовые данные? Сами собрали? Ноль деталей. Я сомневаюсь, что в промышленно продаваемых QRNG есть настолько крупные несовершенства, что их можно отловить простым визуальным тестом.
— unknown (20/01/2014 13:31, исправлен 20/01/2014 13:32)   профиль/связь   <#>
комментариев: 9796   документов: 488   редакций: 5664

Я так понял, что на картинке сырые данные с QRNG датчика без постобработки хэшированием (или экстрактором случайности). Где-то похожие картинки с дефектами квантовых датчиков ещё встречались.

На страницу: 1, 2, 3, 4, 5 След.
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3