Показати повний текст
Винахід належить до області обчислювальної техніки до систем ідентифікації користувачів персонального комп'ютера за клавіатурним почерком. Відомий спосіб комп'ютерної ідентифікації суб'єкта, що включає збір даних, формування образу для можливості ідентифікації і порівняння його з образами, збереженими раніше в базі даних, який оснований на тому, що збір даних здійснюють при переміщенні суб'єктом маніпулятора комп'ютера, для з'єднання точок, що задаються генератором випадкових чисел і послідовно виникають на екрані монітора, причому як дані для побудови образу вибирають траєкторії руху курсору, що не мають зупинок, прямих ділянок, кількість відліків яких складає не менше 10, швидкість і прискорення, з якими суб'єкт переміщує маніпулятор комп'ютера, а також кривизну і кутову швидкість для кожної точки кожної збереженої траєкторії, а формування образу здійснюють шляхом перетворення одержаних даних в систему вимірів, побудови за вимірами коваріаційної матриці в просторі динамічних характеристик і визначення спектра коваріантної матриці, який і є образом, що використовується для порівняння (Патент на корисну модель UA № 42496, Бюл. № 13, від 10.07.2009, Спосіб комп'ютерної ідентифікації суб'єкта). Недоліком способу є недостатня надійність ідентифікації внаслідок можливості зміни користувачами системного налаштування маніпулятора комп'ютера та обмежена функціональність внаслідок того, що спосіб не передбачає ідентифікації особи за допомогою маніпуляцій з клавіатурою. Найближчим аналогом є цифровий пристрій біометричної ідентифікації особистості за почерком роботи на клавіатурі (Патент України № 134993, Бюл. № 11 від 10.06.2019), що містить клавіатуру, перетворювач, генератор, блок пам'яті еталонів, блок порівняння, блок формування пар натискання клавіш, блок обчислення тривалості натискання першої клавіші, блок обчислення натискання другої клавіші, блок обчислення часового інтервалу між натисканнями першої та другої клавіш, лічильник, одинично-позиційний лічильник, блок формування ключового коду та блок прийняття рішень, в якому вихід клавіатури підключений до входу перетворювача, перший вхід блока порівняння підключений до виходу блока пам'яті еталонів, вихід блока прийняття рішень підключений до виходу пристрою, а перший та другий входи блока прийняття рішень підключені, відповідно, до виходу блока порівняння та до другого виходу блока пам'яті еталонів, вхід якого підключений до другого входу блока порівняння та до виходу блока формування ключового коду, входи управління якого підключені до відповідних виходів одинично-позиційного лічильника, лічильний вхід якого підключений до третього виходу лічильника, лічильний вхід якого підключений до другого виходу перетворювача, до другого входу блока формування пар натискання клавіш та до перших входів блоків обчислення тривалостей натискання першої та другої клавіш, а також до першого входу блока обчислення часового інтервалу між натисканнями першої та другої клавіш, вихід якого підключений до четвертого входу блока формування ключового коду, перший, другий та третій входи якого підключені, відповідно, до виходів блока формування пар натискання клавіш, блока обчислення тривалостей натискання першої клавіші та блока обчислення тривалості натискання другої клавіші, перший вихід перетворювача підключений до першого входу блока формування пар натискання клавіш, третій вхід якого підключений до третього виходу перетворювача та до других входів блоків обчислення тривалостей натискання першої та другої клавіш, вихід генератора підключений до третіх входів блоків обчислення тривалостей натискання першої та другої клавіш, а також до другого входу блока обчислення часового інтервалу між натисканнями першої та другої клавіш. Недоліком даного пристрою є низька точність та недостатня достовірність ідентифікації за рахунок обмеженої кількості характеристик пар натиснутих клавіш у блоці пам'яті еталонів при первинному занесенні ключових фраз окремого користувача. Іншим суттєвим недоліком є те, що при роботі з клавіатурою залежно від емоційного стану або зовнішніх обставин (наприклад таких, як необхідність в окремих випадках термінового набору тексту) клавіатурний почерк кожного окремого користувача у кожному окремому випадку може змінюватися, що призводить до зниження достовірності та збільшення часу для ідентифікації. Ще одним фактором, який впливає на надійність ідентифікації, є природна зміна в часі клавіатурного почерку кожного користувача, тобто зміна характеристик пар клавіш, яка відбувається з часом у результаті вдосконалення прийомів роботи з клавіатурою у кожного користувача, що з часом призводить до зниження функціональної надійності роботи пристрою та викликає необхідність періодичної заміни ключових фраз у блоці пам'яті еталонів. В основу винаходу поставлена задача підвищення точності та достовірності функціонування пристрою за рахунок послідовного додавання кількості характеристичних ознак сполучень клавіш кожного користувача до блока пам'яті еталонів та послідовної оптимізації в часі характеристик пар натиснутих клавіш кожного користувача у блоці пам'яті еталонів у процесі роботи пристрою. Поставлена задача вирішується тим, що у пристрій біометричної ідентифікації особистості за почерком роботи на клавіатурі, що містить клавіатуру, перетворювач, генератор, блок пам'яті еталонів, блок порівняння, блок формування пар натискання клавіш, блок обчислення тривалості натискання першої клавіші, блок обчислення натискання другої клавіші, блок обчислення часового інтервалу між натисканнями першої та другої клавіш, лічильник, одинично-позиційний лічильник, блок формування ключового коду та блок прийняття рішень, в якому вихід клавіатури підключений до входу перетворювача, перший вхід блока порівняння підключений до першого виходу блока пам'яті еталонів, вихід блока прийняття рішень підключений до виходу пристрою, а перший та другий входи блока прийняття рішень підключені, відповідно, до виходу блока порівняння та до другого виходу блока пам'яті еталонів, перший вхід якого підключений до другого входу блока порівняння та до виходу блока формування ключового коду, входи управління якого підключені до відповідних виходів одинично-позиційного лічильника, лічильний вхід якого підключений до третього виходу лічильника, а перший та другий виходи лічильника підключені відповідно до четвертих входів блока обчислення тривалості натискання другої клавіші та блока обчислення натискання першої клавіші, вхід лічильника підключений до другого виходу перетворювача, до другого входу блока формування пар натискання клавіш та до перших входів блоків обчислення тривалостей натискання першої та другої клавіш, а також до першого входу блока обчислення часового інтервалу між натисканнями першої та другої клавіш, вихід якого підключений до четвертого входу блока формування ключового коду, перший, другий та третій входи якого підключені, відповідно, до виходів блока формування пар натискання клавіш, блока обчислення тривалостей натискання першої клавіші та блока обчислення тривалості натискання другої клавіші, перший вихід перетворювача підключений до першого входу блока формування пар натискання клавіш, третій вхід якого підключений до третього виходу перетворювача та до других входів блоків обчислення тривалостей натискання першої та другої клавіш, вихід генератора підключений до третіх входів блоків обчислення тривалостей натискання першої та другої клавіш, а також до другого входу блока обчислення часового інтервалу між натисканнями першої та другої клавіш додатково введені таймер, блок вибору сегмента пам'яті еталонів, блок оперативної пам'яті, перемикач режимів та блок управління, причому вихід блока прийняття рішень підключений до входу блока вибору сегмента пам'яті еталонів, вихід якого підключений до першого входу блока управління, другий вхід якого з'єднаний з виходом блока оперативної пам'яті, а вихід блока управління підключений до другого входу блока пам'яті еталонів, вихід перемикача режимів з'єднаний з третіми входами відповідно блока управління, блока порівняння та блока оперативної пам'яті, вихід блока формування ключового коду, який підключений до другого входу блока порівняння та до першого входу блока пам'яті еталонів, з'єднаний також з першим входом блока оперативної пам'яті, а другий вхід якого підключений до виходу таймера, вхід якого з'єднаний зі входом лічильника, першими входами блоків обчислення тривалостей натискання першої та другої клавіш і першим входом блока обчислення часового інтервалу між натисканнями першої та другої клавіш, другим входом блока формування пар натискання клавіш та другим виходом перетворювача. Суть винаходу пояснюють креслення. На фіг. 1 представлена структурна схема пристрою біометричної ідентифікації користувача по почерку роботи на клавіатурі. Запропонований пристрій містить клавіатуру 1, перетворювач 2, генератор 3, блок формування пар натискання клавіш 4, блок обчислення тривалості натискання першої клавіші 5, блок обчислення натискання другої клавіші 6, блок обчислення часового інтервалу між натисканнями першої та другої клавіш 7, лічильник 8, блок формування ключового коду 9, одинично-позиційний лічильник 10, таймер 11, перемикач режимів 12, блок порівняння 13, блок пам'яті еталонів 14, блок управління 15, блок оперативної пам'яті 16, блок прийняття рішень 17 та блок вибору сегмента пам'яті еталонів 18. На фіг. 2 представлена структура блока пам'яті еталонів 14, який складається з окремих сегментів з комірками енергонезалежної пам'яті на основі регістрів зсуву. У цих окремих сегментах пам'яті зберігаються ключові коди окремих осіб, занесених до блока пам'яті еталонів 14. На фіг. 3 представлена структура окремого сегмента блока пам'яті еталонів 14 для зберігання ключових кодів окремих пар клавіш. Кожний сегмент блока пам'яті еталонів 14 складається з енергонезалежних регістрів зсуву. Напрямок зсуву інформації в режимі "запис даних до блока пам'яті еталонів" з першої строки кожного окремого сегменту блока пам'яті еталонів 14 з однаковим сполученням пар натиснутих клавіш (ключових кодів однакових пар натиснутих клавіш) показаний стрілкою вниз. Пристрій функціонує в такий спосіб. На початку роботи перемикачем режимів 12 встановлюється один із режимів роботи пристрою: "ідентифікація особи" або "запис даних до блока пам'яті еталонів". У режимі роботи "запис даних до блока пам'яті еталонів" у початковий момент роботи пристрою усі модулі обнуляються та встановлюються у початковий стан. В цьому режимі сигнал з виходу перемикача режимів 12, який надходить на треті входи, відповідно, блока оперативної пам'яті 16 та блока порівняння 13, блокує їхню роботу, а блок управління 15 після отримання сигналу "запис даних до блока пам'яті еталонів" з виходу перемикача режимів 12 на свій третій вхід вибирає вільний сегмент блока пам'яті еталонів 14 для запису ключових кодів сполучення пар клавіш нового користувача. Після початку введення користувачем символів текстової послідовності аналогові сигнали з виходу клавіатури 1 надходять на вхід перетворювача 2, який на своєму другому виході формує короткотривалі імпульси початку натискання кожної клавіші. Тобто з початком натискання клавіші на другому виході перетворювача 2 формується один короткотривалий імпульс, який подається на другий вхід блока формування пар натискання клавіш 4, на перші входи блока обчислення тривалості натискання першої клавіші 5, блока обчислення тривалості натискання другої клавіші 6, блока обчислення часового інтервалу між натисканнями першої та другої клавіш 7, на вхід таймера 11, а також на вхід лічильника 8. Таймер 11 працює в режимі одновібратора з перезапуском, запускається у роботу першим сформованим імпульсом з другого виходу перетворювача 2 і у подальшому перезапускається кожним імпульсом, який з'являється на його вході. У випадку припинення натискання клавіш через визначений час перезапуск таймера припиняється, це ідентифікується як закінчення циклу роботи окремого користувача і після закінчення процесу оптимізації вмісту блока пам'яті еталонів 14 відбувається обнуління інформації у блоці оперативної пам'яті 15. З другого виходу лічильника 8 логічний "0" подається на четвертий вхід блока обчислення тривалості натискання першої клавіші 5, який починає обчислювати тривалість натискання першої натиснутої клавіші Т1. Обчислювання часових інтервалів блоком обчислення тривалості натискання першої клавіші 5, блоком обчислення тривалості натискання другої клавіші 6 та блоком обчислення часового інтервалу між натисканнями першої та другої клавіш 7 відбувається шляхом підрахунку кількості імпульсів генератора 3, які надходять на відповідні входи зазначених блоків. Оскільки на першому виході лічильника з'являється сигнал логічної "1", який надходить на четвертий вхід блока обчислення тривалості натискання другої клавіші 6, блок обчислення тривалості натискання другої клавіші 6 не здійснює обчислення. Коли перша натиснута клавіша відпускається, то в даний момент часу на третьому виході перетворювача 2 з'являється короткотривалий імпульс, який подається на третій вхід блока формування пар натискання клавіш 4, а також на другі входи блоків обчислення тривалості натискання першої та другої клавіш відповідно 5 та 6. Блок обчислення тривалості натискання першої клавіші 5 формує код тривалості натискання першої клавіші, який з його виходу подається на другий вхід блока формування ключового коду 9. Крім того, з приходом першого імпульсу на перший вхід блока обчислення часового інтервалу між натисканнями першої та другої клавіш 7 зазначений блок починає обчислення тривалості між появою двох імпульсів Τ1-2 на другому виході перетворювача 2. З початком натискання другої клавіші, на другому виході перетворювача 2 з'являється другий короткотривалий імпульс. На першому виході лічильника 8 формується логічний "0", а на другому виході формується логічна "1". Блок обчислення натискання другої клавіші 6 починає обчислювати тривалість натискання другої клавіші Т2. Блок обчислення часового інтервалу між натисканнями першої та другої клавіш 7 завершує обчислення тривалості T1-2 між натисканнями першої та другої клавіш. Отриманий код Т1-2 з виходу блока обчислення часового інтервалу між натисканнями першої та другої клавіш 7 подається на четвертий вхід блока формування ключового коду 9. Блок обчислення тривалості натискання першої клавіші 5 не функціонує, оскільки на його четвертому вході присутній сигнал логічної "1". На третьому виході лічильника 8 формується сигнал логічної "1", який подається на лічильний вхід одинично-позиційного лічильника 10 і на його першому виході формується сигнал логічної "1", який надходить на перший управляючий вхід блока формування ключового коду 9. В момент відпускання другої клавіші на третьому виході перетворювача 2 формується другий короткотривалий імпульс, який подається на другий вхід блока обчислення тривалості натискання другої клавіші 6, який завершує обчислення тривалості натискання другої клавіші Т2. Код Т2 з виходу блока обчислення тривалості натискання другої клавіші 6 подається на третій вхід блок формування ключового коду 9. Код кожної натиснутої клавіші формується на першому виході перетворювача 2 і подається на перший вхід блока формування пар натискання клавіш 4. Коди пар натиснутих клавіш з'являються на виході блока формування пар натискання клавіш 4 і подаються на перший вхід блока формування ключового коду 9. Оскільки на першому управляючому вході блока формування ключового коду 9 присутній одиничний сигнал, блок формування ключового коду 9 формує першу частину сформованої ключової послідовності, яка складається з кодів N1S1S2T1T2T1-2. Код Ν1 указує номер пари натиснутих клавіш, а коди S1 та S2 - коди відповідних номерів клавіш. При натисканні наступних клавіш пристрій функціонує аналогічним чином, як описано раніше. Друга частина ключової послідовності формується у блоці формування ключового коду 9 завдяки присутності одиничного сигналу на його другому управляючому вході, який надходить з відповідного виходу одинично-позиційного лічильника 10, оскільки одинично-позиційний лічильник 10 функціонує в одинично-позиційному коді. Генератор 3 використовується для формування опорних імпульсів, які подаються на треті входи блоків обчислення тривалості натискання першої та другої клавіш, відповідно, 5 та 6 та другий вхід блока обчислення часового інтервалу між натисканнями першої та другої клавіш 7. За допомогою опорних імпульсів генератора 3 здійснюється обчислення необхідних тривалостей Τ1, Τ2 та Т1-2. Таким чином, на виході блока формування ключового коду 9 формується код, який має наступну структуру: N1S1S2T1T2T1-2N2S3S4T3T4T3-4. Сформований таким чином ключовий код пари натиснутих клавіш з виходу блока формування ключового коду 9 надходить на перший вхід блока пам'яті еталонів 14, в якому під управлінням блока управління 15 послідовно відбувається запис ключових кодів у комірки першого рядка вибраного вільного сегмента блока пам'яті еталонів 14. Блок управління 15 може бути реалізований на мікроконтролері, який містить відповідну програму функціонування у кожному з доступних режимів: "ідентифікація" або "запис даних до блока пам'яті еталонів". В окремі комірки першого рядка вибраного сегмента нового користувача блока пам'яті еталонів 14 під управлінням блока управління 15 послідовно записуються ключові коди виключно незбіжних надалі пар клавіш. В разі формування ключового коду блоком формування ключового коду 9 пари клавіш, яка вже була раніше занесена у перший рядок сегмента, відбувається зсув на один регістр донизу раніше записаного ключового коду у перший рядок сегмента, а на звільнене місце у першому рядку записується поточний новий ключовий код такої ж пари клавіш, який надходить з виходу блока формування ключового коду 9. Таким чином, після закінчення повного циклу запису ключових кодів нового користувача у блок пам'яті еталонів 14 у першому рядку будуть записані ключові коди незбіжних надалі пар сполучень клавіш, ключові коди однакових сполучень пар клавіш, які зустрічаються вдруге і надалі при роботі користувача на клавіатурі, будуть заноситися на місце вже існуючого сполучення клавіш, які знаходяться у першому рядку сегмента, а вже існуючі в першому рядку сегмента будуть зсуватися нижче першого рядка сегмента за допомогою регістрів зсуву. При цьому, як було зазначено вище, сигналом з виходу перемикача режимів 12 блокується робота блока порівняння 13 та блока оперативної пам'яті 16. Робота пристрою у режимі "ідентифікація особи", який встановлюється за допомогою перемикача режимів 12, відбувається наступним чином. Сигнал з виходу перемикача режимів 12 знімає блокування блока оперативної пам'яті 16 та блока порівняння 13, а блок управління 15 змінює свою програму функціонування на іншу, яка наведена нижче. Користувач починає набір символів текстової послідовності на клавіатурі, при цьому робота клавіатури 1, перетворювача 2, генератора 3, блока формування пар натискання клавіш 4, блока обчислення тривалості натискання першої клавіші 5, блока обчислення натискання другої клавіші 6, блока обчислення часового інтервалу між натисканнями першої та другої клавіш 7, лічильника 8, блока формування ключового коду 9, одинично-позиційного лічильника 10 та таймера 11 не відрізняється від роботи вищезазначених блоків у режимі "запис даних до блока пам'яті еталонів". В процесі натискання пар клавіш на виході блока формування ключового коду 9 формуються ключові коди, які подаються на другий вхід блока порівняння 13, перший вхід блока пам'яті еталонів 14 та перший вхід блока оперативної пам'яті 16, в якому відбувається їх запам'ятовування. Блок пам'яті еталонів 14 за допомогою блока управління 15 здійснює пошук першої існуючої еталонної частини серед усіх еталонних кодів кожного сектора. Для кожного збігу еталонної частини кодів блок порівняння 13 формує сигнал збігу на перший вхід блока прийняття рішень 17. Далі серед виділених кодів з однаковою першою частиною вибираються коди з однаковими другими частинами і т. д. Визначені еталонні коди з другого виходу блока пам'яті еталонів 14 подаються на другий вхід блока прийняття рішень 17. З появою нової частини ключової послідовності на виході блока прийняття рішень 17 пристрою формується ідентифікована множина особистостей, яка зменшується з кожним кроком ідентифікації до кінцевого результату, у якому залишається одна особа. Слід відзначити, що кінцеве рішення з ідентифікації особи приймається блоком прийняття рішень 17 за максимальною кількістю збігів ключових кодів серед усіх осіб, занесених до блока пам'яті еталонів 14, і воно не може бути абсолютно стовідсотковим з огляду на те, що окремі ключові коди при роботі на клавіатурі кожної особи можуть відрізнятися від занесених раніше до блока пам'яті еталонів 14 і навпаки - збігатись з ключовими кодами інших осіб, занесених у відповідні сегменти цих осіб. Після ідентифікації конкретної особи сигнал з виходу блока прийняття рішень 17 з'являється на вході блока вибору сегмента пам'яті еталонів 18, який фіксує один конкретний сегмент визначеного користувача у блоці пам'яті еталонів 14, після чого блок управління 15 починає послідовну перевірку на збіг ключових кодів однакових пар клавіш, які знаходяться у блоці оперативної пам'яті 16 з кожним таким же сполученням клавіш у першому рядку вибраного сегмента блока пам'яті еталонів 14. У разі збігу пар клавіш відбувається заміна ключового коду з блока оперативної пам'яті 16 у відповідну комірку з таким же сполученням клавіш першої строки вибраного сегмента, при цьому попередній ключовий код з першої строки сегмента зсувається нижче. В разі відсутності будь-якого сполучення клавіш у першому рядку вибраного сегмента блока пам'яті еталонів 14 в процесі перевірки блок управління 15 записує ключовий код нового сполучення клавіш з блока оперативної пам'яті 16 у вільну комірку першої строки вибраного сегмента. В результаті відпрацювання зазначеного алгоритму роботи блока управління 15 буде проведена заміна у відповідному секторі визначеного користувача ключових кодів пар клавіш, які знаходилися у секторі визначеного користувача, на ключові коди однакових сполучень клавіш з блока оперативної пам'яті 16 та додавання тих ключових кодів пар клавіш з блока оперативної пам'яті 16 у першу строку відповідного сектора визначеного користувача блока пам'яті еталонів 14, які були там відсутніми. Після проведеної заміни ключових кодів у визначеному сегменті блока пам'яті еталонів 14 і відпрацювання таймера 11 вміст блока оперативної пам'яті 16 обнуляється, а всі інші блоки встановлюються у вихідний стан, готуючи пристрій до роботи у новому циклі. Запропоноване технічне рішення дозволяє підвищити точність та достовірність ідентифікації користувача за рахунок збільшення в процесі роботи пристрою кількості ключових кодів пар натиснутих клавіш у блоці пам'яті еталонів 14, враховувати природні зміни клавіатурного почерку кожного користувача у процесі вдосконалення роботи з клавіатурою та виключити необхідність періодичної заміни характеристик пар натиснутих клавіш у блоці пам'яті еталонів 14, що дозволяє досягнути поставлену мету.