A protection system for software and firmware or information including: a first module including: a first storage unit for storing a software and firmware program or an information; a first arithmetic unit for using, operating or processing the software and firmware program or the information; and a first control unit for controlling operation of the first storage unit and the first arithmetic unit; and a second module with capability of preventing external intrusion or operating securely, including: a second storage unit for storing an information key; a second decryption unit using the information key to decrypt the software and firmware program or the information; and a second control unit for controlling operation of the second storage unit and the second decryption unit; wherein the first control unit further controls communication between the first module and the second module, and the second control unit further controls communication between the second module and the first module; wherein an encrypted software and firmware program is encrypted by the information key, an encrypted information key encrypted by a transfer key and a transfer key computation program are temporarily stored in the first storage unit, and the transfer key is generated by the transfer key computation program executed in the first arithmetic unit, the encrypted information key is decrypted into the information key with the transfer key by the first arithmetic unit. a first module including: a first storage unit for storing a software and firmware program or an information; a first arithmetic unit for using, operating or processing the software and firmware program or the information; and a first control unit for controlling operation of the first storage unit and the first arithmetic unit; and a first storage unit for storing a software and firmware program or an information; a first arithmetic unit for using, operating or processing the software and firmware program or the information; and a first control unit for controlling operation of the first storage unit and the first arithmetic unit; and a second module with capability of preventing external intrusion or operating securely, including: a second storage unit for storing an information key; a second decryption unit using the information key to decrypt the software and firmware program or the information; and a second control unit for controlling operation of the second storage unit and the second decryption unit; wherein the first control unit further controls communication between the first module and the second module, and the second control unit further controls communication between the second module and the first module; wherein an encrypted software and firmware program is encrypted by the information key, an encrypted information key encrypted by a transfer key and a transfer key computation program are temporarily stored in the first storage unit, and the transfer key is generated by the transfer key computation program executed in the first arithmetic unit, the encrypted information key is decrypted into the information key with the transfer key by the first arithmetic unit. a second storage unit for storing an information key; a second decryption unit using the information key to decrypt the software and firmware program or the information; and a second control unit for controlling operation of the second storage unit and the second decryption unit; wherein the first control unit further controls communication between the first module and the second module, and the second control unit further controls communication between the second module and the first module; wherein an encrypted software and firmware program is encrypted by the information key, an encrypted information key encrypted by a transfer key and a transfer key computation program are temporarily stored in the first storage unit, and the transfer key is generated by the transfer key computation program executed in the first arithmetic unit, the encrypted information key is decrypted into the information key with the transfer key by the first arithmetic unit.