0

Electronic lock with pseudodiamesa code

В статье предложен оригинальный кодовый замок с “плаваю­щим” кодом. По мнению автора, такой замок по степени секрет­ности превосходит известные с постоянным кодом.

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

Know a great number of such structures — door locks, safe, garage, etc. unfortunately, they all have one common drawback: the code is recorded in the lock memory, permanent. Yes, it can be quickly changed, and it is regularly done in systems for better security. However the modified code is immediately permanent (static). And even increased code length (sometimes to open a lock requires you to enter a combination of 8-12 characters) can be observed, a matter one way or another. After all, in order to open the lock with a static code, require a strictly defined sequence of pressing buttons on the keypad lock or the same sequence of turning the knob of the encoder.

And if you make the lock, which will permanently change your internal code? But then people have access to open the lock, will be able to open it without knowing the current code combination? The answer is simple: the lock must somehow prompt the opening that you need to do in order to open.

The idea of the lock with dynamic code arose from the author's more than 40 years ago and was immediately implemented. Years of operation of such locks, made on different element base, has shown their absolute reliability. None of the many choices of locks made according to this principle, nobody has been able to access without the help of those who know the principle of their opening. Such cases, unfortunately, were. But the human factor has always been and remains the most vulnerable link in any secret or cryptographic system.

Consider the principle of operation of the code lock with pseudodiamesa code. We offer a simplified version of the lock has only two buttons, which requires a click in a sequence a specified number of times. The lock on every time you press any of the buttons modifies your internal code, but rather, changes the required sequence of pressing the buttons randomly. In the end, even if the attacker shall stand close to the person opening the door, and remember the order of pressing the buttons, he will not be able to open the lock, repeating just typed combination. Moreover, if the person who typed the correct code but for some reason was not included in the opened door, try to do it again in a few seconds, he would have to press on the lock button in a completely different sequence!

Дополнительная защитная опция замка — режим автоблокировки, кото­рый “замораживает” замок на некото­рое время в случае попытки его откры­вания методом подбора. И чем дольше злоумышленник будет пытаться открыть замок, нажимая наугад на кнопки, тем дольше замок будет находиться в состоянии блокировки.

Как же происходит набор требуемо­го кода? Всё просто: рядом с кнопками находятся два светодиода, свет от которых проходит через коллиматоры, ограничивающие угол рассеивания светового потока. Попросту говоря, светодиоды видны только тому, кто стоит непосредственно перед клавиа­турой замка. Следовательно, и “под­сказка” замка видна только тому, кто его открывает. Но это не значит, что посторонний наблюдатель сможет вос­пользоваться такой подсказкой.

Допустим, рабочий код замка — четырёхразрядный (а в нашем случае он может быть любой, от двух-трех до восьми разрядов). Тогда для открыва­ния замка потребуется четыре раза нажать на кнопки в требуемой очерёд­ности. Предположим, что замок запро­граммирован на открывание кодом ”1—0—0—1″. Если принять, что левой кнопке замка присвоено значение “1”, а правой — значение “0”, то для откры­вания замка потребуется следующая последовательность нажатий на кноп­ки: “левая—правая—правая—левая”.

Теперь допустим, что на каждое нажатие на кнопку замок по случайному закону изменяет значения, присвоенные кнопкам. Следовательно, после первого же нажатия статус кнопок может изме­ниться, но может и остаться прежним. Так вот подсказки, которые делает за­мок, включая один из светодиодов, касаются не самого кода, а только стату­са кнопок, т. е. замок сообщает лишь то, какая кнопка при следующем нажатии будет “нулевой”, а какая — “единичной”. Тогда для того чтобы ввести требуемый код “1—0—0—1”, нужно будет нажимать на кнопки не в последовательности “левая—правая—правая—левая”, а в последовательности “светится—не све­тится—не светится—светится”.

Для того чтобы этот алгоритм работал корректно, перед набором следует обну­лить внутренние регистры памяти замка, в которых уже могла быть случайно запи­сана какая-то информация. Для этого нужно одновременно нажать сразу на обе кнопки, что подтверждается включе­нием обоих светодиодов на 0,2 с. В этот момент генератор случайных чисел определит статус кнопок для следующе­го нажатия и включит тот или другой све­тодиод-подсказку. После очередного нажатия статус кнопок вновь будет пере­определён, и снова один из светодиодов подскажет, какая кнопка стала “единич­ной” для следующего нажатия. Если же пауза между очередными нажатиями на кнопки продлится больше 5 с, замок выключит оба светодиода и будет оста­ваться в таком состоянии до следующего нажатия на любую из кнопок. Состояние внутренних регистров микроконтролле­ра при этом останется неизменным.

В случае ошибки при наборе кода по­требуется снова обнулить замок одно­временным нажатием на обе кнопки и начать набор кода с первой “цифры”. Если же выполнено три обнуления замка, но правильный код так и не введён, замок посчитает это несанкционирован­ной попыткой открывания методом под­бора и автоматически заблокируется на некоторое время, в течение которого он даже при наборе правильной комбина­ции уже не откроется. Внешне режим автоблокировки никак не отличается от штатного — светодиоды будут продол­жать хаотично мигать при каждом нажа­тии на кнопки. Замок вернётся в рабочее состояние только после пятиминутного интервала, если в течение этого времени ни одна из кнопок не будет нажата.

It is obvious that even with a four-digit code to open the lock of a stranger will be very difficult. But if the code length to increase to 6-8 characters, then open it almost impossible.

We offer electronic lock assembled on the microcontroller ATtiny13A-P11 in housing 01R-8 (see drawing). The device has no features. The electronic lock is applied to the capacitors: C1 oxide K50-35 or imported with a rated voltage of not less than 16 In, C2 — ceramic.

Кнопки панели управления — КМ1-1 или другие с одной группой нормально разомкнутых контактов. Кнопки на пла­те — SWT-20-4,3 или любые другие ана­логичные, предназначенные для монта­жа на плату в отверстия. Подойдут как четырёхвыводные, так и двухвыводные кнопки. Интегральный стабилизатор — се­рии 78L05 в корпусе ТО-92, его можно за­менить на любой другой с напряжением стабилизации 5 В и номинальным током нагрузки 50… 100 мА. Диод VD1, шунтиру­ющий обмотку электромагнита, можно заменить на отечественный КД226А или другой с подходящими параметрами.

Питание устройства осуществляет­ся от внешнего нестабилизированного 12-вольтного источника. Максимальный выходной ток источника зависит от рабо­чего тока применённого электромагнита, открывающего механическую часть зам­ка. В сетевом блоке питания желательно предусмотреть буферную аккумулятор­ную батарею ёмкостью 4…7 А·ч. Это обес­печит длительную работу замка даже при отключении сетевого напряжения.

Электромагнит коммутируется поле­вым транзистором IRLU2905PBF с логи­ческим уровнем управления в корпусе I-Pak (ТО-251АА). Этот транзистор, как и большинство остальных деталей, может быть заменён другим с подходящими па­раметрами: максимальное напряжение сток—исток — не менее 30 В, макси­мальный ток стока — не менее 5 А (за­висит от тока срабатывания электромаг­нита), в таком же корпусе или ТО-220. Возможно применение биполярного со­ставного транзистора, например, КТ829А или КТ827А. Учитывая, что элек­тромагнит во включённом состоянии остаётся всего лишь 5 с, а промежутки времени между повторными срабатыва­ниями, как правило, гораздо больше, установка коммутирующего транзистора на теплоотвод не обязательна. В край­нем случае можно использовать неболь­шую пластину из меди, латуни или алю­миния толщиной 1,5…2 мм площадью 10…15 см2.

Управляется замок двумя кнопками SB4 и SB5, которые служат для ввода требуемого кода. На панели управления замком (на схеме выделена штрихпунктирной линией) над каждой из кнопок ввода кода установлен отдельный свето­диод. Светодиод HL1 соответствует кнопке SB4, а светодиод HL2 — кнопке SB5. Светящийся светодиод показыва­ет, какой кнопке в текущий момент при­своен статус “1”. Соответственно, не- подсвеченная кнопка имеет статус “0”.

При желании и некотором опыте экс­плуатации замка можно оставить только один светодиод, расположив его между кнопками ввода. Это ещё больше затруднит несанкционированное откры­вание замка. Цвет свечения светодио­дов — красный, диаметр 3…5 мм. Мож­но применять как отечественные свето­диоды серии АЛ307, так и импортные.

The SB1 is located on the device Board and intended for ignition mode reprogramming code. For ease of reprogramming, in that case, if control panel lock is installed at some distance from its electronic part on the Board it is better to provide space for two extra buttons SB2 and SB3, the duplicate button enter the code on the control panel SB4 and SB5, as well as two additional LEDs (not shown in the diagram), which in this case it is necessary to include sequentially with the basic led control panel. You will need to reduce the resistance of the resistors R4 and R5 to approximately 100 Ohms. Since the input of the control code that permits change of the operating code is not provided, access to buttons SB1, SB2 and SB3 should only be possible when removing the protective housing (cover) from the body lock.

Для перевода замка в режим пере­программирования кода следует одно­временно нажать на обе кнопки ввода (или дублирующие кнопки на плате уст­ройства). Замок коротко “моргнёт” све­тодиодами. Затем, не отпуская нажатые кнопки, необходимо кратковременно на­жать на кнопку SB1 (“RESET”). При пере­загрузке микроконтроллер проанализи­рует состояние кнопок SB2 (“0”) и SB3 (“1”). Если они обе находятся в замкну­том состоянии, микроконтроллер перей­дёт в режим перепрограммирования кода, просигнализировав об этом одно­кратным коротким включением обоих светодиодов. Следует иметь в виду, что несинхронность одновременного нажа­тия на кнопки не должна превышать 0,15 с, в противном случае замок может отработать не корректно. Требований к синхронности отпускания кнопок нет.

После отпускания всех кнопок можно ввести новый код требуемой длины последовательными кратковременными нажатиями на кнопки “0” и “1”. Нажатие на кнопки при наборе нового кода сопро­вождается коротким включением соот­ветствующего светодиода. Завершается перепрограммирование кода повторным одновременным нажатием на кнопки “0” и “1”. Микроконтроллер просигнализи­рует о завершении перепрограммирова­ния кода двойным коротким включением обоих светодиодов.

В режиме перепрограммирования кода замка генератор случайных чисел не работает и статус кнопок не изменяет­ся, т. е. при нажатии на кнопку “0” в EEPROM микроконтроллера всегда вво­дится 0, а при нажатии на кнопку “1” все­гда вводится 1. Длина (разрядность) ко­да определяется автоматически и также записывается в EEPROM микроконтрол­лера.

Конструкция панели управления зам­ка может быть произвольной, но при этом должна защищать кнопки и свето­диоды от возможных механических по­вреждений и отвечать требованиям эр­гономики. Оптимальное расстояние между кнопками — 40…60 мм. Свето­диоды целесообразно располагать на расстоянии 30…40 мм над кнопками. Кнопки не должны выступать над по­верхностью панели управления, а све­тодиоды следует поместить как можно дальше (глубже) от внешней поверхнос­ти, чтобы световой поток от них проходил через узкие каналы коллиматоров (от­верстия диаметром не более 1… 1,5 мм и глубиной не менее 5 мм) и не рассеи­вался во все стороны. Ещё лучше сде­лать канал коллиматора в виде конусно­го отверстия с углом раскрытия 10… 15°. Яркость светодиодов должна быть ми­нимально достаточной для уверенной идентификации при любых условиях внешней освещённости. Регулируют яр­кость подбором резисторов R4 и R5.

If initial programming of the microcontroller will be done directly on the assembled device (in-system programming), the Board should provide five-pin connector to connect the programmer. In the diagram, this connector is labeled XS1. Due to the low load capacity of the outputs of some programmers programming we recommend when wydanych the LEDs and the resistor R6.

При первоначальном программиро­вании микроконтроллера в его EEPROM записывается тестовый трёхразрядный код “1—1—1”, который затем пользова­тель может заменить на любой другой. Максимальная длина пользовательско­го кода — восемь разрядов, что, как правило, является избыточным. В мик­роконтроллере задействован стороже­вой таймер WDT, который автоматиче­ски перезагрузит устройство в случае его “зависания” по какой-либо причине.

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

The program is written in a graphical environment Algorithm Builder, which is available at http://www.algrom.net/russian.html free download. There you can find the schema of simple programmers for the Atmel microcontrollers.

Download Pthe t and hexfiles for flashing the microcontroller and its EEPROM

Author: I. KARPUNIN, Nizhny Tagil, Sverdlovsk region.
Source: Radio No. 12, 2016

admin

Leave a Reply

Your email address will not be published. Required fields are marked *