Программные термины не нужны. Представьте себе два аппаратных средства (ваш ключ и что-то в компании), которые генерируют одинаковые числа с одинаковыми регулярными интервалами. Было бы практически невозможно угадать, что это за номер из-за некоторых проприетарных алгоритмов, поэтому, если набираемый вами номер (или автоматически отправляется ключом) совпадает с номером на сервере, ваша личность подтверждается.
По крайней мере, с моим ключом, вы также должны предоставить пин-код, известный только вам и серверу. Таким образом, для аутентификации вам нужно что-то физическое и что-то в вашей голове. Эту комбинацию довольно сложно подделать. Даже если кто-то получит ключ, если он не знает вашу булавку, это бесполезно. И если они знают ваш пин-код, эта информация бесполезна без ключа.