vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2020-08-26 09:06 am

Про механические ДСЧ

Тут Шнайер рекламирует механический ДСЧ. В смысле набор специальных кубиков, которые кидаешь, потом складываешь в коробочку и получаешь случайную картинку, которую можно отсканировать специальным приложением и получить гарантированные 192 бита энтропии. (и можно в таком виде хранить с качестве резервнойкопии ключа).

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

По-моему, следовало делать по другому. Делаем квадратную коробочку с тремя приелеенными по углам кубиками с фиксированным рисунком. Остальные кубики разрисовываем случайным сетками черных и белых квадратиков. Юзер кидает кубики, складывает их в коробочку, и получает QR-код, который можно сосканировать стандартным приложением для считывания QR-кодов и получить случаную строку алфавитно-цифровых символов.

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

[personal profile] inkelyad 2020-08-26 12:54 pm (UTC)(link)
Все эти читалки QR кодов одновременно умеют читать и обычные линейные. В которых мешающиеся контрольные суммы не всегда предусмотрены.

Используем Interleaved 2of5. 4 цифры на каждый кубик. Один ряд кубиков, составленных вплотную друг к другу, даст одну линейку линейного штрихкода.

Правда, от бит, которые добавляются ориентацией верхней грани, придется отказаться.

[personal profile] inkelyad 2020-08-26 06:53 pm (UTC)(link)
Произвольное число из 58 цифр подобными кубиками, скорее всего, составить нельзя. Или очень нетривиально надо грани нумеровать.

Пять рядов по шесть кубиков (всего 180 уникальных граней, что укладывается в нумерацию 4 цифрами, 6 вариантов выпадения каждого кубика, 30! вариантов перестановок): 185 (wolframalpha) бит

Решетка 6x6 - 231 бита.

А так для 192 бит надо 31 кубик: решение уравнения.