Подробнее о атакующих кодовых замках

1 min


Пару недель назад я писал о том, как Последовательности де Брюина может использоваться для атаки на замки, в которых нет клавиши «ввод», т. е. замок откроется после ввода правильных символов.

Вот вариант этой темы: как насчет замков, позволяющих нажимать более одной кнопки одновременно? (1)

Блокировка, позволяющая нажимать более одной кнопки одновременно

Вы можете просто рассматривать это как клавиатуру с большим количеством кнопок. Например, предположим, что вы можете нажимать одну или две кнопки за раз на замке, изображенном выше. Затем вы можете рассматривать это как блокировку с 15 кнопками: пятью фактическими кнопками и 10 виртуальными кнопками, соответствующими десяти способам, которыми вы можете выбрать 2 кнопки из 5 для одновременного нажатия.

Возможно, блокировка позволит вам нажимать еще больше кнопок одновременно. Я не думаю, что когда-либо использовал комбинацию, для которой требовалось более двух кнопок одновременно, но в принципе вы могли бы нажимать до пяти кнопок одновременно на фото выше, в общей сложности 31 возможная комбинация кнопок. А так как 31 простое число, вы можете использовать алгоритм здесь генерировать соответствующую последовательность де Брюйна.

Если вы знаете, как долго пароль, вы можете попробовать последовательность Де Брюин для паролей этой длины. Но что, если вы не знаете длину пароля априори? Вы можете попробовать последовательность Де Брюина для паролей длины 1, затем длины 2, затем длины 3 и т. Д. Но есть ли более эффективный способ?

Если есть К комбинации кнопок и пароль имеет длину Nтогда оптимальным решением будет начать ввод последовательности де Брюина В(К, N) пока замок не откроется. Если вы знаете, что пароль имеет длину не более 4, то вы можете попробовать В(К, 4) последовательность, и если пароль на самом деле короче 4, скажем, длина 3, вы все равно откроете его.

Но что, если вы попробовали В(К4) последовательность и получается пароль имеет длину 5? Вы могли бы сделать лучше, чем начать с В(К5) последовательность, потому что некоторые из подстрок в этом В(К5) последовательность уже будет опробована. Но как вы могли бы сделать это систематически? Если вы не знаете длину пароля, как вы можете сделать лучше, чем пытаться В(К1), то В(К, 2), то В(К3) и т. Д.?

Похожие сообщения

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


0 Comments

Ваш e-mail не будет опубликован. Обязательные поля помечены *