Methods, systems and computer program products are provide for controlling
access to software is provided by the software to be controlled being divided into
a first encrypted portion and a second unencrypted portion. The second unencrypted
portion has access to, and may even incorporate, a first secret value and a software
identification associated with a copy of the software. The first encrypted portion
is encrypted with a first key value which is based on the first secret value and
a second secret value. The second secret value is obtained and the first key value
generated from the obtained second secret value and the first secret value. The
first encrypted portion of the software may then be decrypted with the first key
value. The software may be installed on a data processing system utilizing the
decrypted first encrypted portion of the software.