A program control system is capable of preventing an invalid program from
being downloaded to a mobile terminal. When a programmer applies for the
certification and registration of a developed program, a gateway sends a
checking program for checking the validity of program to the programmer.
After having been notified that the program had passed the check from the
programmer, the gateway accepts the registration of the program, and
requests a cipher key database to send a public key. Having received the
public key from the cipher key database, the gateway sends the program
with the public key to a server to register the program. When a mobile
terminal requests for the program, the gateway accesses the server to
obtain the program with the public key. Subsequently, the gateway sends
the public key to the cipher key database to authenticate the public key
by use of a companion cipher key stored therein. The gateway downloads
the program to the mobile terminal only when the public key is
authenticated and thereby the program proves to be valid.