Patent ID: 7818814

Claim:
A method for distributing software to a user based on software protection devices, wherein said software includes an upgrade program that is extracted from the software and placed into a user software protection device, and a protected program retained after said upgrade program is extracted from the software by a software developer; said protected program, upgrade program, and the user software protection device are delivered to the user respectively; and said upgrade program is loaded into said software protection device based on leasehold information; and the method comprising the following steps: a) A software developer requests a license to use the user software protection device from a hardware manufacturer, said hardware manufacturer grants the license to the software developer and provides said software developer with the developer software protection device and leasehold information based upon the granted license, and said developer software protection device contains pre-set encryption algorithms; b) The software developer develops the upgrade program to run in the user software protection device; c) The user obtains the user software protection device and the protected program respectively, and said user software protection device contains pre-set decryption algorithms; d) The user retrieves hardware characteristic information of the user software protection device and characteristics of the protected program, builds a characteristic information packet, and sends the packet to said software developer; e) Said software developer sends a verification packet back to the user, which contains said upgrade program, the characteristic information of the user software protection device, and said leasehold information, and said verification packet is encrypted using the encryption algorithms in said developer software protection device; f) Said user decrypts the verification packet sent by the software developer using the decryption algorithms in said user software protection device, and saves the upgrade program into said user software protection device.