Безопасность не абстрактная вещь и не может быть реализована только программными средствами. Безопасность это точно не криптография, хотя она будет использоваться под капотом, вам нужно комплексное програмно-аппаратное решение плюс регламенты.
Так как вы ничего не сказали про вашу задачу, задавать наводящие вопросы это долго, я придумаю ответы за вас, и дам выжимку:
Вам нужна аутентификация пользователя, т.е. надежный способ идентифицировать пользователя, что бы в приложении можно было выбрать (авторизация), что пользователю доступно или к примеру блокировать доступ при его отзыве.
Вам нужна минимальная защита компроментации рабочего места, в зависимости от типа компроментации будет выбираться способ аутентификации и аппаратные решения.
Например если у вас с гарантией рабочее место защищено (обыски при входе в помещение, видеонаблюдение, личная ответственность и т.п.) то может хватить и пароля или пассивной карты доступа, в т.ч. на базе тупого qr/bar-кода + пинкод. Недостатки подхода - пароли или карты с qr-кодом нужно часто менять (интервал времени меньше чем время для доступа к рабочему месту после приема на работу/проверки службой безопасности, что бы злоумышленник, сначала скопировав карту доступа, не поступил на работу и не получил бы доступ к рабочему месту).
Более сложный и надежный способ - не пассивное устройство с чипом шифрования (карта доступа или usb токен), в этом случае для компроментации доступа нужна физическая кража устройства или проксируемый доступ снаружи и физический доступ с подменой карт ридера на рабочем месте (обламывается регламентами, обысками и слежкой).
Я рекомендую не пассивный usb токен авторизации, на базе FIDO2 (CTAP2) USB‑ключа (есть карты но тогда нужно покупать еще и ридер), библиотеки есть по до все, например открытая libfido2, стоимость токена порядка 1-2т.р. (может есть дешевле при оптовых покупках). В приложении заложить логику, ввода пин кода (с экрана, что бы усложнить компроментацию, а то с клавиатурой это не сложно) при вставке, и поддерживать доступ к приложению и данным только пока устройство подключено.
Токен будет позволять выдавать ключ шифрования и защищает его от копирования при его краже. Управление правами доступа (добавление или отзыв доступа) при оффлайн работе приложения придется делать на нем же (т.е. администратор использует свой ключ доступа, авторизуясь, получает у приложения доступ на управление списками доступа и регистрацию новых ключей).