A system for protecting software that can be executed on a computer
machine, the system being of the type in which the software is associated
with a memory card for insertion in a reader connected to the computer
machine. The software stores a public key, and periodically generates a
pseudo-random number. A first algorithm is implemented by using the public
key on information received from the reader. The result of implementing
the first algorithm is compared with the pseudo-random number. Execution
of the software is interrupted in response to such comparison. The card
has protected storage means for storing an associated private key and
means for implementing a second algorithm using the private key upon
receiving information issued by the computer machine, thereby obtaining
encoded information. The encoded information is transmitted from the card
to the computer machine.
Система для защищая средства программирования можно исполнить на машине компьютера, система типа в котором средство программирования связано с карточкой памяти для ввода в читателе соединилась к машине компьютера. Средство программирования хранит общественный ключ, и периодически производит псевдо-случайный номер. Первый алгоритм снабжен путем использование общественного ключа на информации полученной от читателя. Результат снабжать первый алгоритм сравнен с псевдо-случайным номером. Исполнение средства программирования прервано in response to такое сравнение. Карточка защитила середины хранения для хранить associated приватный ключ и середины для снабжать второй алгоритм использующ приватный ключа по получать информацию выданную машиной компьютера, таким образом получая зашифрованную информацию. Зашифрованная информация передана от карточки к машине компьютера.