Abstract:
In a system which processes confidential information, use of a confidential information processing LSI due to unauthorized tampering of software, spoofing or the like is prevented and data on a bus are protected against analysis using a probe, etc. Within the confidential information processing LSI, software which controls the LSI  1002  is subjected to tampering detection which is executed by a comparator  1008  and authentication processing which is executed by a comparator  1020, thereby confirming the validity of the software and preventing use of the confidential information processing LSI by unauthorized software. The LSI and the software share session keys  1035  and  1038  which are based on a random number used for authentication processing and encrypted communications are attained using the session keys, which protects data on the bus.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to a confidential information processing system and an LSI which prevent, by means of an encoding technique, leakage of confidential information.  
         [0003]     2. Background Art  
         [0004]      FIG. 1  shows an example of the structure of a confidential information processing apparatus. A confidential information processing apparatus  101  is a confidential information processing system which comprises a CPU  102 , an I/O interface  103 , a memory  104 , a confidential information processing LSI  105  and a bus  106  which connects these. To be addressed principally in such a confidential information processing system for prevention of leakage of confidential information are the three problems of leakage of confidential information owing to tampering of software, spoofing or the like, leakage of confidential information resulting from unauthorized access to the confidential information processing LSI  105 , and leakage of confidential information committed by observing the bus  106  between the confidential information processing LSI  105  and the CPU  102 .  
         [0005]     Known as an apparatus which prevents leakage of confidential information owing to tampering of software, spoofing or the like is an apparatus in which the confidential information processing LSI  105  performs tampering detection of a part of software which is being run by the CPU  102  at the time of execution of confidential information processing and when detecting tampering, informs the CPU  102  of the detection of tampering so that leakage of confidential information owing to unauthorized execution of the software will be prevented (Japanese Patent Application Laid-Open Gazette No. H11-39156 for example).  
         [0006]     Meanwhile, the technique called TRS is also known which requires execution of anti-tampering processing of software to thereby prevent leakage of confidential information owing to tampering of the software. This is a technique which implements a special method, such as encoding/decoding and insertion of a dummy code, at the time of installation of software to thereby make deciphering or tampering of the software difficult.  
         [0007]     Next, as means which prevents leakage of confidential information because of unauthorized access to the confidential information processing LSI  105 , such confidential information processing LSI  105  is known which uses registers which can not be accessed from outside as a register for storing confidential information (which may be a coding key for instance) which is needed for processing of confidential information.  
         [0008]     Further, as means which prevents leakage of confidential information committed by observing the bus  106  between the confidential information processing LSI  105  and the CPU  102 , such a confidential information processing apparatus is known which establishes encrypted communications between the confidential information processing LSI  105  and the CPU  102  using a fixed key.  
         [0009]     However, the conventional techniques have the following problems.  
         [0010]     In an apparatus in which the confidential information processing LSI  105  performs tampering detection of a part of software which is being run by the CPU  102  at the time of execution of confidential information processing and when detecting tampering, informs the CPU  102  of the detection of tampering so that leakage of confidential information owing to unauthorized software execution will be prevented (See Patent Literature  1 ), the confidential information processing LSI  105 , upon detection of undue tampering of software, merely informs the CPU  102  of the detection of tampering and it is the CPU  102  that determined error processing to follow, and hence, there is a problem that one can attempt re-tampering and an attack.  
         [0011]     Meanwhile, a method which requires encrypted communications between a confidential information processing LSI and a CPU using a fixed key has a problem that use of the fixed key, i.e., a constant value, as a code key allows one to estimate the key during observation over a long period and one would be able to decipher encrypted communications.  
       SUMMARY OF THE INVENTION  
       [0012]     In light of these problems, the present invention aims at providing, as a confidential information processing system, prevention of use of a confidential information processing LSI owing to unauthorized software execution.  
         [0013]     The present invention also aims at providing protection of communications of confidential information between a confidential information processing LSI and a CPU.  
         [0014]     The confidential information processing system according to the present invention comprises: a memory which stores software; a CPU which reads and executes said software from said memory; and an LSI which comprises at least one of a tampering detection circuit, which detects tampering of said software, and an authentication processing circuit, which authenticates said software, and a circuit which processes confidential information under the control of said software, 
        characterized in that said LSI has a function of performing, utilizing said tampering detection circuit or said authentication processing circuit, at least one processing of tampering detection and authentication, and determining the operation of said LSI based on the result of the processing.        
 
         [0016]     In the confidential information processing system according to the present invention, when the result of tampering detection executed by the tampering detection circuit or the result of authentication processing executed by the authentication processing circuit within the LSI shows that the software has been tampered or spoofing has occurred, the circuit within the LSI stops operating, or alternatively, when it is found that no tampering of the software has occurred and the software is valid, the circuit within the LSI starts operating.  
         [0017]     Hence, when the software is unauthorized software, the software cannot operate the LSI, which makes it possible to prevent use of the confidential information processing LSI by unauthorized software and hence leakage of confidential information.  
         [0018]     In the structure above, when tampering is detected as a result of tampering detection or in the case of failed authentication as a result of authentication processing, said confidential information input/output terminal inside said LSI stops operating.  
         [0019]     In the structure above, when tampering is not detected as a result of tampering detection or in the case of successful authentication as a result of authentication processing, a confidential information input/output terminal inside said LSI starts operating.  
         [0020]     In the structure above, when tampering is detected as a result of tampering detection or in the case of failed authentication as a result of authentication processing, said circuit which processes confidential information within said LSI stops operating.  
         [0021]     In the structure above, when tampering is not detected as a result of tampering detection or in the case of successful authentication as-a result of authentication processing, said circuit which processes confidential information within said LSI starts operating.  
         [0022]     In the structure above, said software has a first coded hush value which is obtained by calculating a hush value in advance before installation and encoding the result of the calculation, and said tampering detection circuit comprises a first decoding circuit which decodes said first coded hush value using a first decoding key, a hush creating circuit which creates a first hush value of said software prior to execution of said software, and a first comparator which detects tampering of said software by means of comparison of said first hush value and a value which is obtained as said first decoding circuit decodes said first coded hush value.  
         [0023]     In the structure above, a first constant is concatenated at a predetermined position in said software and said software is encoded using a software coding key before installation, and 
        said tampering detection circuit has a second constant and comprises a software decoding circuit which decodes said software using a software decoding key and extracts a first comparison value from said predetermined position, and a second comparator which detects tampering of said software by comparing said first comparison value with said second constant.        
 
         [0025]     In the structure above, said authentication processing circuit comprises a first random number generating circuit which generates a first random number, a first circuit which performs first one-way function processing of said first random number using a first common key, and a third comparator, 
        said software has a first function of performing said first one-way function processing of said first random number using a common key, and     said third comparator authenticates said software by comparing a second comparison value which is obtained as said authentication processing circuit performs said first one-way function processing with a third comparison value which is obtained as said software performs said first one-way function processing of said first random number fed from said authentication processing circuit.        
 
         [0028]     In the structure above, said authentication processing circuit comprises a second circuit which performs second one-way function processing using a second common key, and a fourth comparator, 
        said software has a second function of performing said second one-way function processing using a common key, and a first random number generating function of generating a second random number, and     said fourth comparator authenticates said software by comparing a fourth comparison value, which is obtained as said software performs said second one-way function processing of said second random number generated by said first random number generating function, with a fifth comparison value which is obtained as said second circuit of said authentication processing circuit performs said second one-way function processing of said second random number fed from said software.        
 
         [0031]     In the structure above, said authentication processing circuit comprises a second random number generating circuit, a third circuit which performs third one-way function processing using a third common key and a fifth comparator, and said second random number generating circuit generates a third random number, 
        said software has a third function of performing said third one-way function processing using a common key, a second random number generating function and a first comparing function of comparing two input values, and said second random number generating function generates a fourth random number,     said fifth comparator compares a sixth comparison value, which is the result of said third one-way function processing performed on said third random number by said third circuit of said authentication processing circuit, with a seventh comparison value which is the result of said third one-way function processing performed on said third random number by     said third function of said software, and said first comparing function compares an eighth comparison value, which is obtained as said software performs said third one-way function processing of said fourth random number, with a ninth comparison value which is obtained as a result of said third one-way function processing of said fourth random number performed by said third circuit of said authentication processing circuit, whereby said LSI and said software authenticate each other.        
 
         [0035]     In the structure above, first session keys common to said LSI and said software are generated based on a random number in the event of no detection of tampering and no failed authentication, and encrypted communications are achieved using said first session keys.  
         [0036]     Requiring encrypted communications using the first session keys, the structure above realizes protection of confidential data on a bus. The first session keys are based on a random number and the value of the keys changes unlike in encrypted communications using a fixed key, and therefore, it is difficult to estimate the keys even through observation of the bus using a probe and it is possible to prevent leakage of confidential information, and if the keys should be observed, since the keys are changed for every authentication, leakage of the confidential information is minimized.  
         [0037]     In the structure above, a first counter is disposed which counts the number of communications during encrypted communications using said first session keys, a first random number re-issue signal generator circuit is disposed which generates a first random number re-issue signal which prompts generation of a new random number for every certain communications, and said first session keys can thus be updated.  
         [0038]     Since the structure above requires updating of the first session keys for every certain communications, it is possible to update the keys at a frequency which meets the demanded level of security.  
         [0039]     The structure above comprises a reset signal generator circuit which generates a first session key reset signal at the same time that said first random number re-issue signal is generated for every certain communications, to thereby reset said first session keys held by said LSI and said software respectively to different values.  
         [0040]     The structure above comprises a circuit which generates a communication circuit stop signal, which stops the operation of said confidential information input/output terminal inside said LSI, at the same time that said first random number re-issue signal is generated for every certain communications.  
         [0041]     In the structure above, said software has a first coded hush value which is obtained by calculating a hush value in advance before installation and encoding the result of the calculation, 
        said tampering detection circuit comprises a first decoding circuit which decodes said first coded hush value using a first decoding key, a hush creating circuit which creates a first hush value of said software prior to execution of said software, and a first comparator which detects tampering of said software by means of comparison of said first hush value and a value which is obtained as said first decoding circuit decodes said first coded hush value, and a circuit which is started and stopped operating in accordance with the result of this is said authentication processing circuit,     said authentication processing circuit comprises a second random number generating circuit, a third circuit which performs third one-way function processing using a third common key and a fifth comparator, and said second random number generating circuit generates a third random number,     in which case said software has a third function of performing said third one-way function processing using a common key, a second random number generating function and a first comparing function of comparing two input values, and said second random number generating function generates a fourth random number,     said fifth comparator compares a sixth comparison value, which is the result of said third one-way function processing performed on said third random number by said third circuit of said authentication processing circuit, with a seventh comparison value which is the result of said third one-way function processing performed on said third random number by means of said third function of said software, and     said first comparing function compares an eighth comparison value, which is obtained as said software performs said third one-way function processing of said fourth random number, with a ninth comparison value which is obtained as a result of said third one-way function processing of said fourth random number performed by said third circuit of said authentication processing circuit, whereby said LSI and said software authenticate each other, and a circuit which is started and stopped operating in accordance with the result of this authentication processing is a circuit which attains encrypted communications,     said circuit which attains encrypted communications generates first session keys common to said LSI and said software based on a random number in the event of no detection of tampering and no failed authentication, and achieves encrypted communications using said first session keys,     a first counter is disposed which counts the number of communications during encrypted communications and a first random number re-issue signal generator circuit is disposed which generates a first random number re-issue signal which prompts generation of a new random number for every certain communications, which makes it possible to update said first session keys, and     a reset signal generator circuit is disposed which generates a first session key reset signal at the same time that said first random number re-issue signal is generated for every certain communications, to thereby reset said first session keys held by said LSI and said software respectively to different values.        
 
         [0050]     The LSI according to the present invention comprises: at least one of a tampering detection circuit and an authentication processing circuit; a circuit which processes confidential information under the control of software which is executed by a CPU; and a function of making said tampering detection circuit or said authentication processing circuit perform at least one of tampering detection and authentication of said software and accordingly determining to operate or not to operate based on the result of this.  
         [0051]     In the structure above, a confidential information input/output terminal is disposed, and when tampering is detected as a result of tampering detection or in the case of failed authentication as a result of authentication processing, said confidential information input/output terminal stops operating.  
         [0052]     In the structure above, a confidential information input/output terminal is disposed, and when tampering is not detected as a result of tampering detection or in the case of successful authentication as a result of authentication processing, said confidential information input/output terminal starts operating.  
         [0053]     In the structure above, when tampering is detected as a result of tampering detection or in the case of failed authentication as a result of authentication processing, said circuit which processes confidential information stops operating.  
         [0054]     In the structure above, when tampering is not detected as a result of tampering detection or in the case of successful authentication as a result of authentication processing, said circuit which processes confidential information starts operating.  
         [0055]     In the structure above, said software has a first coded hush value which is obtained by calculating a hush value in advance before installation and encoding the result of the calculation, and 
        said tampering detection circuit comprises a first decoding circuit which decodes said first coded hush value using a first decoding key, a hush creating circuit which creates a first hush value of said software prior to execution of said software, and a first comparator which detects tampering of said software by means of comparison of said first hush value and a value which is obtained as said first decoding circuit decodes said first coded hush value.        
 
         [0057]     In the structure above, a first constant is concatenated at a predetermined position in said software and said software is encoded using a software coding key before installation, and 
        said tampering detection circuit has a second constant and comprises a software decoding circuit which decodes said software using a software decoding key and extracts a first comparison value from said predetermined position, and a second comparator which detects tampering of said software by comparing said first comparison value with said second constant.        
 
         [0059]     In the structure above, said authentication processing circuit comprises a first random number generating circuit which generates a first random number, a first circuit which performs first one-way function processing of said first random number using a first common key, and a third comparator, 
        said software has a first function of performing said first one-way function processing of said first random number using a common key, and     said third comparator authenticates said software by comparing a second comparison value which is obtained as said authentication processing circuit performs said first one-way function processing with a third comparison value which is obtained as said software performs said first one-way function processing of said first random number fed from said authentication processing circuit.        
 
         [0062]     In the structure above, said authentication processing circuit comprises a second circuit which performs second one-way function processing using a second common key, and a fourth comparator, 
        said software has a second function of performing said second one-way function processing using a common key, and a first random number generating function of generating a second random number, and     said fourth comparator authenticates said software by comparing a fourth comparison value, which is obtained as said software performs said second one-way function processing of said second random number generated by said first random number generating function, with a fifth comparison value which is obtained as said second circuit of said authentication processing circuit performs said second one-way function processing of said second random number fed from said software.        
 
         [0065]     In the structure above, said authentication processing circuit comprises a second random number generating circuit, a third circuit which performs third one-way function processing using a third common key and a fifth comparator, and said second random number generating circuit generates a third random number, 
        said software has a third function of performing said third one-way function processing using a common key, a second random number generating function and a first comparing function of comparing two input values, and said second random number generating function generates a fourth random number,     said fifth comparator compares a sixth comparison value, which is the result of said third one-way function processing performed on said third random number by said third circuit of said authentication processing circuit, with a seventh comparison value which is the result of said third one-way function processing performed on said third random number by said third function of said software, and     said first comparing function compares an eighth comparison value, which is obtained as said software performs said third one-way function processing of said fourth random number, with a ninth comparison value which is obtained as a result of said third one-way function processing of said fourth random number performed by said third circuit of said authentication processing circuit, whereby said LSI and said software authenticate each other.        
 
         [0069]     In the structure above, first session keys common to said LSI and said software are generated based on a random number in the event of no detection of tampering and no failed authentication, and encrypted communications are achieved using said first session keys.  
         [0070]     In the structure above, a first counter is disposed which counts the number of communications during encrypted communications using said first session keys, a first random number re-issue signal generator circuit is disposed which generates a first random number re-issue signal which prompts generation of a new random number for every certain communications, and said first session keys can thus be updated.  
         [0071]     The structure above comprises a reset signal generator circuit which generates a first session key reset signal at the same time that said first random number re-issue signal is generated for every certain communications, to thereby reset said first session keys held by said LSI and said software respectively to different values.  
         [0072]     The structure above comprises a circuit which generates a communication circuit stop signal, which stops the operation of said confidential information input/output terminal inside said LSI, at the same time that said first random number re-issue signal is generated for every certain communications.  
         [0073]     In the structure above, said software has a first coded hush value which is obtained by calculating a hush value in advance before installation and encoding the result of the calculation, 
        said tampering detection circuit comprises a first decoding circuit which decodes said first coded hush value using a first decoding key, a hush creating circuit which creates a first hush value of said software prior to execution of said software, and a first comparator which detects tampering of said software by means of comparison of said first hush value and a value which is obtained as said first decoding circuit decodes said first coded hush value, and a circuit which is started and stopped operating in accordance with the result of this is said authentication processing circuit,     said authentication processing circuit comprises a second random number generating circuit, a third circuit which performs third one-way function processing using a third common key and a fifth comparator, and said second random number generating circuit generates a third random number,     in which case said software has a third function of performing said third one-way function processing using a common key, a second random number generating function and a first comparing function of comparing two input values, and said second random number generating function generates a fourth random number,     said fifth comparator compares a sixth comparison value, which is the result of said third one-way function processing performed on said third random number by said third circuit of said authentication processing circuit, with a seventh comparison value which is the result of said third one-way function processing performed on said third random number by means of said third function of said software, and     said first comparing function compares an eighth comparison value, which is obtained as said software performs said third one-way function processing of said fourth random number, with a ninth comparison value which is obtained as a result of said third one-way function processing of said fourth random number performed by said third circuit of said authentication processing circuit, whereby said LSI and said software authenticate each other, and a circuit which is started and stopped operating in accordance with the result of this authentication processing is a circuit which attains encrypted communications,     said circuit which attains encrypted communications generates first session keys common to said LSI and said software based on a random number in the event of no detection of tampering and no failed authentication, and achieves encrypted communications using said first session keys, a first counter is disposed which counts the number of communications during encrypted communications and a first random number re-issue signal generator circuit is disposed which generates a first random number re-issue signal which prompts generation of a new random number for every certain communications, which makes it possible to update said first session keys, and     a reset signal generator circuit is disposed which generates a first session key reset signal at the same time that said first random number re-issue signal is generated for every certain communications, to thereby reset said first session keys held by said LSI and said software respectively to different values.       
 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0081]      FIG. 1  is a drawing which shows the structure of a confidential information processing apparatus;  
         [0082]      FIG. 2  is a drawing which shows the major structure of a confidential information processing LSI which is used in the present invention;  
         [0083]      FIG. 3  is a flow chart of the operation of the confidential information processing LSI which is used in the present invention;  
         [0084]      FIG. 4  is a drawing which shows the steps of deriving a coded hush value of confidential information processing software which is used in a first embodiment, a second embodiment and a third embodiment of the present invention;  
         [0085]      FIG. 5  is a drawing which shows the configuration of the confidential information processing software and the content of a memory which are used in the first embodiment, the second embodiment and the third embodiment of the present invention;  
         [0086]      FIG. 6  is a drawing which shows the operation of a confidential information processing system and the structure of a confidential information processing LSI according to the first embodiment of the present invention;  
         [0087]      FIG. 7  is a drawing which shows the operation of a confidential information processing system and the structure of a confidential information processing LSI according to the second embodiment of the present invention;  
         [0088]      FIG. 8  is a drawing which shows the operation of a confidential information processing system and the structure of a confidential information processing LSI according to the third embodiment of the present invention;  
         [0089]      FIG. 9  is a drawing which shows the configuration of confidential information processing software and the content of a memory which are used-in a fourth embodiment of the present invention; and  
         [0090]      FIG. 10  is a drawing which shows the operation of a confidential information processing system and the structure of a confidential information processing LSI according to the fourth embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0091]     Embodiments of the present invention will now be described with reference to the associated drawings.  
         [0092]      FIG. 1  shows the structure of a confidential information processing apparatus  101  which is common across the embodiments of the present invention. A CPU  102 , an I/O interface  103 , a memory  104  and a confidential information processing LSI  105  are connected with each other on a bus  106 . While these are individually disposed to the confidential information processing apparatus in the structure according to this embodiment, some or all of these may be incorporated in one LSI. In the apparatus  101  shown in  FIG. 1 , the CPU  102  reads from the memory  104  software which executes confidential information processing using the confidential information processing LSI  105 . The software can process confidential information using the confidential information processing LSI  105  when no tampering has been detected and authentication has accordingly succeeded during tampering detection and authentication processing performed by the confidential information processing LSI  105 .  
         [0093]     As shown in  FIG. 2 , a confidential information processing LSI  301  contains four blocks. A software tampering detecting block  302  is formed by a circuit which is associated with tampering detection of software, an authentication block  303  is formed by a circuit which is associated with authentication processing of software, an encrypted communications block  304  is formed by a circuit which is associated with encrypted communications, and a confidential information processing block  305  is formed by a circuit which is associated with confidential information processing. Examples of the detailed structures of the respective blocks will be described later in relation to the first through the fourth embodiments.  
         [0094]      FIG. 3  is a flow chart of the operation of the confidential information processing LSI  105  commonly used in the respective embodiments. When confidential information processing software commences processing of confidential information using the confidential information processing LSI  105 , first, the software tampering detecting block  302  of the confidential information processing LSI  105  performs tampering detection of the confidential information processing software (Step  401 ). When tampering is detected as a result of this (Step  402 ), the authentication block stops operating (Step  403 ) and the processing is accordingly terminated (Step  404 ). In the event that no tampering is detected, the authentication block  303  starts operating (Step  405 ).  
         [0095]     The authentication block  303  then performs authentication processing (Step  406 ), and when the authentication ends up in a failure (Step  407 ), the encrypted communications block  304  stops operating (Step  408 ) and the processing is terminated (Step  409 ). In the event of successful authentication, the encrypted communications block  304  starts operating (Step  410 ).  
         [0096]     In the encrypted communications block  304 , both the confidential information processing LSI  105  and the confidential information processing software generate session keys (Step  411 ), and after initialization of a counter which records the number of communications (Step  412 ), an encrypted communication using the session keys is started (Step  413 ). While the communication is ongoing (Step  414 ), the count registered in the counter per communication increases (Step  415 ), and when the counter reaches a predetermined value (Step  416 ), authentication processing is performed once again and the session keys are updated, whereby encrypted communications are attained while updating the keys at an appropriate frequency and the processing ends as all communications finish (Step  417 ).  
         [0097]     This is a common operation of the confidential information processing LSI across the respective embodiments. The first, the second, the third and the fourth embodiments will now be described with reference to the associated drawings.  
       First Embodiment  
       [0098]     The structure according to the first embodiment is as shown in  FIG. 1 . The memory  104  stores a coded hush value  455  which is obtained by calculating as shown in  FIG. 5 a  hush value of confidential information processing software  501 , which executes processing of confidential information using the confidential information processing LSI  105 , and a hush value of confidential information processing software  451  ( 501 ) at the time of installation ( 452 ) as shown in  FIG. 4  and encoding ( 454 ) these results using a secret key  453  ( 502 ). The confidential information processing software  501  includes a tampering detection control part  503 , an authentication control part  504 , an encrypted communications control part  505  and a processing command part  506 .  
         [0099]      FIG. 6  shows the operation of a CPU  601 , which reads and executes the confidential information processing software  501 , and the structure and operation of a confidential information processing LSI  602 : Execution of the confidential information processing software  501  realizes confidential information processing  607 .  
         [0100]     At the time of execution of the confidential information processing software  501 , the CPU  601  reads and executes the tampering detection control part  503  from the memory  104 . The CPU  601 , executing the tampering detection control part  503 , reads the coded hush value  502  which is in the memory  104  ( 603 ) and feeds this to the confidential information processing LSI  602 , first. Within a decoding circuit  604  of the confidential information processing LSI  602 , thus fed coded hush value  603  is decoded with the use of a secret key  605  stored inside the confidential information processing LSI  602  and accordingly becomes a right hush value  606 .  
         [0101]     Meanwhile, the CPU  601  supplies the tampering detection control part  503 , the authentication control part  504 , the encrypted communications control part  505  and the processing command part  506  which are in the memory  104  one after another to the confidential information processing LSI  602 . The confidential information processing LSI  602  calculates, within a hush function circuit  608 , a hush value  609  from these inputs.  
         [0102]     Once the hush value  609  is obtained in the confidential information processing LSI  602 , a comparator  610  compares the value of the right hush value  606  with that of the hush value  609 , thereby detecting tampering of the confidential information processing software  501 . A match between the two values means no detection of tampering, which makes an enable/disable signal  611  have a value “enable” and makes the confidential information processing LSI  602  start the operation of an authentication block  612  which is contained in the confidential information processing LSI  602 . A difference between the two values means detection of tampering, which the enable/disable signal  611  have a value “disable” and makes the confidential information processing LSI  602  stop the operation of the authentication block  612 .  
         [0103]     Once the operation of the authentication block  612  starts, a random number generating circuit  613  receives a random number seed  614 , which is based on a noise outside the confidential information processing LSI  602 , and generates a random number  615 . Thus generated random number  615  is output to the CPU  601 . Reading the authentication control part  504  of the confidential information processing software  501  from the memory  104  and using a common key  616  incorporated in the authentication control part  504 , the CPU  601  performs one-way function processing  617  of the random number  615  and supplies the result of this as a comparison value  618  to the confidential information processing LSI  602 . In the confidential information processing LSI  602 , a circuit  619  for one-way function processing performs one-way function processing of the random number  615  using a common key  620  stored in the confidential information processing LSI  602 , and supplies the result of this as a comparison value  621  to a comparator  622 .  
         [0104]     The comparator  622  compares a comparison value  618  fed from the CPU  601  with the comparison value  621 , thereby performing authentication processing. A match between the two values means authentication of the confidential information processing software  501  by the confidential information processing LSI  602 , which makes an enable/disable signal  623  have a value “enable” and makes the confidential information processing LSI  602  start the operation of an encrypted communications block  624  which is contained in the confidential information processing LSI  602 . A difference between the two values means failed authentication, which makes the enable/disable signal  623  have a value “disable” and makes the confidential information processing LSI  602  stop the operation of the encrypted communications block  624 .  
         [0105]     Once the operation of the encrypted communications block  624  starts, a circuit  625  for one-way function processing performs one-way function processing of the comparison value  621  using the common key  620 , and the result of this is determined a session key  626 . Meanwhile, the CPU  601  reads the encrypted communications control part  505  of the confidential information processing software  501  from the memory  104  and performs the one-way function processing  627  of the comparison value  618  using the common key  616 , and the result of this is determined a session key  628 . Since authentication is successful as long as the encrypted communications block  624  is operating, the session key  626  and the session key  628  are same values.  
         [0106]     Commands of the processing command part  506  and processing data  507  in the memory  104  are read into the CPU  601  one after another, and after encoding  629  which uses the session key  628 , fed to the confidential information processing LSI  602 . Within the confidential information processing LSI  602 , coded commands and coded data received at a confidential information input/output terminal  630  are decoded by a encoding/decoding circuit  631  using the session key  626  and thus decoded commands and data are supplied to a confidential information processing circuit  632  which is inside the confidential information processing LSI  602 , whereby confidential information is processed.  
         [0107]     Alternatively, output data from the confidential information processing circuit  632  are encoded by the encoding/decoding circuit  631  using the session key  626  and output to the CPU  601  through the confidential information input/output terminal  630 , and the CPU  601  executes decoding  629  using the session key  628  and accordingly realizes processing of confidential information.  
         [0108]     During such encrypted communications, a counter  633  disposed to the confidential information processing LSI  602  counts the number of the communications. A comparator  635  compares the count registered in the counter  633  with a limitation value  634  stored in the confidential information processing LSI  602 , and when the two values match with each other, a random number re-issue signal generator circuit  637  generates a random number re-issue signal  636  and a reset signal generator circuit  638  generates a reset signal  639  and a reset signal  640 . The random number re-issue signal  636  is fed to the random number generating circuit  613 , and as a result, the random number  615  is generated once again. Meanwhile, the reset signal  639  resets the session key  626  which is inside the confidential information processing LSI  602 . Further, the reset signal  640  is output to the CPU  601 , and the CPU  601 , receiving this, resets the session key  628 . At this stage, the two session keys  626  and  628  are reset to different values which have been determined in advance respectively for the confidential information processing software  501  and the confidential information processing LSI  602 , and accordingly have different values.  
         [0109]     Following this, the CPU  601  executes the authentication control part  504  and the confidential information processing LSI  602  re-executes the operation of the authentication block  612 , whereby authentication processing is performed once again and the session keys  626  and  628  are updated.  
         [0110]     While the first embodiment requires that the common key used in the one-way function processing  617  and  619  for authentication processing is the same as the common key used in the one-way function processing  627  and  625  for generation of the session keys, these maybe common keys which are different from each other.  
         [0111]     Further, the configuration of the authentication block  612  only needs be able to control the operation of the encrypted communications block  624 : Some of the structure elements in the configuration of the authentication block  612  according to the first embodiment may be outside the authentication block or other structure elements may be included in the authentication block.  
         [0112]     Further, the encrypted communications block  624  only needs be configured such that no encrypted communication using the same session key will take place unless the encrypted communications block  624  operates: Some of the structure elements in the configuration of the encrypted communications block  624  according to the first embodiment may be outside the encrypted communications block or other structure elements may be included in the encrypted communications block.  
         [0113]     Further, although the first embodiment requires resetting the session keys  626  and  628  respectively to the predetermined values at the time of generation of the reset signals  639  and  640 , these may be reset respectively to different values using a random number for instance.  
         [0114]     As described above, according to the first embodiment, tampering detection is performed through calculation of the hush value of the confidential information processing software  501  while executing authentication processing based on the random number  615  generated by the confidential information processing LSI  602 , which prevents use of the confidential information processing LSI  602  by unauthorized software. In addition, as the session keys  626  and  628  are generated based on the random number  615  which is used during the authentication processing and encrypted communications are realized between the LSI  602  and the CPU  601 , communications of confidential information between the confidential information processing LSI  602  and the CPU  601  are protected.  
         [0115]     Since the random number  615  to be used during authentication processing is generated inside the confidential information processing LSI  602  according to the first embodiment, the random number is generated by means of hardware, therefore, a risk of undue manipulation of the random number is minimized and reliability is significantly improved.  
         [0116]     Further, since hush is utilized for tampering detection, the software to be installed need no special processing and it is thus easy to install the software. Moreover, since the session keys  626  and  628  are reset when the number of encrypted communications using the session keys  626  and  628  reaches the limitation value  634 , the start and the end of the operation of the encrypted communications block  624  at the time of resetting necessitate no control and it is therefore easy to control.  
       Second Embodiment  
       [0117]     The structure according to the second embodiment is as shown in  FIG. 1 . The memory  104  stores a coded hush value  455  which is obtained by calculating as shown in  FIG. 5 a  hush value of confidential information processing software  501 , which executes processing of confidential information using the confidential information processing LSI  105 , and a hush value of confidential information processing software  451  ( 501 ) at the time of installation ( 452 ) as shown in  FIG. 4  and encoding ( 454 ) these results using a secret key  453  ( 502 ). The confidential information processing software  501  includes a tampering detection control part  503 , an authentication control part  504 , an encrypted communications control part  505  and a processing command part  506 .  
         [0118]      FIG. 7  shows the operation of a CPU  701 , which reads and executes the confidential information processing software  501 , and the structure and operation of a confidential information processing LSI  702 : Execution of the confidential information processing software  501  realizes confidential information processing  707 .  
         [0119]     At the time of execution of the confidential information processing software  501 , the CPU  701  reads and executes the tampering detection control part  503  from the memory  104 . The CPU  701 , executing the tampering detection control part  503 , reads the coded hush value  502  which is in the memory  104  ( 703 ) and feeds this to the confidential information processing LSI  702 , first. Within a decoding circuit  704  of the confidential information processing LSI  702 , thus fed coded hush value  703  is decoded with the use of a secret key  705  stored inside the confidential information processing LSI  702  and accordingly becomes a right hush value  706 .  
         [0120]     Meanwhile, the CPU  701  supplies the tampering detection control part  503 , the authentication control part  504 , the encrypted communications control part  505  and the processing command part  506  which are in the memory  104  one after another to the confidential information processing LSI  702 . The confidential information processing LSI  702  calculates, within a hush function circuit  708 , a hush value  709  from these inputs.  
         [0121]     Once the hush value  709  is obtained in the confidential information processing LSI  702 , a comparator  710  compares the value of the right hush value  706  with that of the hush value  709 , thereby detecting tampering of the confidential information processing software  501 . A match between the two values means no detection of tampering, which makes the enable/disable signal  711  have a value “enable” and makes the confidential information processing LSI  702  start the operation of an authentication block  712  which is contained in the confidential information processing LSI  702 . A difference between the two values means detection of tampering, which the enable/disable signal  711  have a value “disable” and makes the confidential information processing LSI  702  stop the operation of the authentication block  712 .  
         [0122]     Finishing execution of the tampering detection control part  503 , the CPU  701  reads and executes the authentication control part  504  from the memory  104 . In the authentication control part  504 , random number generation  714  is performed based on a random number seed  713  which is based on a noise in the confidential information processing apparatus  101 , thereby generating a random number  715 . The CPU  701  performs one-way function processing  717  of the random number  715  using a common key  716  which is incorporated in the authentication control part  504 , and outputs the result of this to the confidential information processing LSI  702  as a comparison value  718  to the confidential information processing LSI  702 .  
         [0123]     Meanwhile, the random number  715  is fed to the confidential information processing LSI  702  from the CPU  701 , a circuit  719  for one-way function processing performs one-way function processing of the random number  715  using a common key  720  stored in the confidential information processing LSI  702 , and the result of this is fed to a comparator  722  as a comparison value  721 .  
         [0124]     The comparator  722  compares the comparison value  718  fed from the CPU  701  with the comparison value  721 , thereby performing authentication processing. A match between the two values means authentication of the confidential information processing software  501  by the confidential information processing LSI  702 , which makes an enable/disable signal  723  have a value “enable,” makes an enable/disable control circuit  724  enable an enable/disable signal  725  and makes the confidential information processing LSI  702  start the operations of an encrypted communications block  726  and a confidential information input/output terminal  727  which are inside the confidential information processing LSI  702 . A difference between the two values means failed authentication, which the enable/disable signal  723  have a value “disable,” makes the enable/disable control circuit  724  disable the enable/disable signal  725  and makes the confidential information processing LSI  702  stop the operations of the encrypted communications block  726  and the confidential information input/output terminal  727 .  
         [0125]     Once the operation of the encrypted communications block  726  starts, a circuit  728  for one-way function processing performs one-way function processing of the comparison value  721  using the common key  720 , and the result of this is determined a session key  729 . Meanwhile, the CPU  701  reads the encrypted communications control part  505  of the confidential information processing software  501  from the memory  104  and performs one-way function processing  730  of the comparison value  718  using the common key  716 , and the result of this is determined a session key  731 . Since authentication is successful as long as the encrypted communications block  726  is operating, the session key  729  and the session key  731  are same values.  
         [0126]     Commands of the processing command part  506  and processing data  507  in the memory  104  are read into the CPU  701  one after another, and after encoding  732  which uses the session key  731 , fed to the confidential information processing LSI  702 . Within the confidential information processing LSI  702 , coded commands and coded data received at a confidential information input/output terminal  727  are decoded by a encoding/decoding circuit  733  using the session key  729  and thus decoded commands and data are supplied to a confidential information processing circuit  734  which is inside the confidential information processing LSI  702 , whereby confidential information is processed.  
         [0127]     Alternatively, output data from the confidential information processing circuit  734  are encoded by the encoding/decoding circuit  733  using the session key  729  and output to the CPU  701  through the confidential information input/output terminal  727 , the CPU  701  performs decoding  732  using the session key  731  and accordingly realizes processing of confidential information.  
         [0128]     During such encrypted communications, a counter  735  disposed to the confidential information processing LSI  702  counts the number of the communications. A comparator  737  compares the value registered in the counter  735  with a limitation value  736  stored in the confidential information processing LSI  702 , and when the two values match with each other, a random number re-issue signal generator circuit  739  generates a random number re-issue signal  738 . Meanwhile, a disable signal generator circuit  740  generates a disable signal  741  and an enable/disable control circuit  724  disables an enable/disable signal  725 , so that the operations of the encrypted communications block  726  and the confidential information input/output terminal  727  are stopped.  
         [0129]     Following this, the CPU  701  executes the authentication control part  504  and the confidential information processing LSI  702  re-executes the operation of the authentication block  712 , whereby authentication processing is performed once again and the session keys  729  and  731  are updated.  
         [0130]     While the second embodiment requires that the common key used in the one-way function processing  717  and  719  for authentication processing is the same as the common key used in the one-way function processing  730  and  728  for generation of the session keys, these maybe common keys which are different from each other.  
         [0131]     Further, the configuration of the authentication block  712  only needs be able to control the operation of the encrypted communications block  726 : Some of the structure elements in the configuration of the authentication block  712  according to the second embodiment may be outside the authentication block or other structure elements may be included in the authentication block.  
         [0132]     Further, the encrypted communications block  726  only needs be configured such that no encrypted communication using the same session key will take place unless the encrypted communications block  726  operates: Some of the structure elements in the configuration of the encrypted communications block  726  according to the second embodiment may be outside the encrypted communications block or other structure elements may be included in the encrypted communications block.  
         [0133]     As described above, according to the second embodiment, tampering detection is performed through calculation of the hush value of the confidential information processing software  501  while executing authentication processing based on the random number  715  generated by the confidential information processing software  501 , which prevents use of the confidential information processing LSI  702  by unauthorized software. In addition, as the session keys ( 729 ,  731 ) are generated based on the random number  715  which is used during the authentication processing and encrypted communications are realized between the LSI  702  and the CPU  701 , communications of confidential information between the confidential information processing LSI  702  and the CPU  701  are protected.  
         [0134]     Since the second embodiment requires generation of the random number  715  by the confidential information processing software  501 , it is easy to mount the confidential information processing LSI while reducing the surface area size.  
         [0135]     Further, since hush is utilized for tampering detection, the software to be installed need no special processing and it is thus easy to install the software. Moreover, since the operations of the encrypted communications block  726  and the confidential information input/output terminal  727  are stopped when the number of encrypted communications using the session keys  731  and  729  reaches the limitation value  736 , no erroneous communication will take place while authentication processing is being executed once again, which ensures improved security.  
       Third Embodiment  
       [0136]     The structure according to the third embodiment is as shown in  FIG. 1 . The memory  104  stores a coded hush value  455  which is obtained by calculating as shown in  FIG. 5 a  hush value of confidential information processing software  501 , which executes processing of confidential information using the confidential information processing LSI  105 , and a hush value of confidential information processing software  451  ( 501 ) at the time of installation ( 452 ) as shown in  FIG. 4  and encoding ( 454 ) these results using a secret key  453  ( 502 ). The confidential information processing software  501  includes a tampering detection control part  503 , an authentication control part  504 , an encrypted communications control part  505  and a processing command part  506 .  
         [0137]      FIG. 8  shows the operation of a CPU  801 , which reads and executes the confidential information processing software  501 , and the structure and operation of a confidential information processing LSI  802 : Execution of the confidential information processing software  501  realizes confidential information processing  807 .  
         [0138]     At the time of execution of the confidential information processing software  501 , the CPU  801  reads and executes the tampering detection control part  503  from the memory  104 . The CPU  801 , executing the tampering detection control part  503 , reads the coded hush value  502  ( 803 ) which is in the memory  104  and feeds this to the confidential information processing LSI  802 , first. Within a decoding circuit  804  of the confidential information processing LSI  802 , thus fed coded hush value  803  is decoded using a secret key  805  stored inside the confidential information processing LSI  802  and accordingly becomes a right hush value  806 .  
         [0139]     Meanwhile, the CPU  801  supplies the tampering detection control part  503 , the authentication control part  504 , the encrypted communications control part  505  and the processing command part  506  which are in the memory  104  one after another to the confidential information processing LSI  802 . The confidential information processing LSI  802  calculates, within a hush function circuit  808 , a hush value  809  from these inputs.  
         [0140]     Once the hush value  809  is obtained in the confidential information processing LSI  802 , a comparator  810  compares the value of the right hush value  806  with that of the hush value  809 , thereby detecting tampering of the confidential information processing software  501 . A match between the two values means no detection of tampering, which makes an enable/disable signal  811  have a value “enable” and makes the confidential information processing LSI  802  start the operation of an authentication block  812  which is contained in the confidential information processing LSI  802 . A difference between the two values means detection of tampering, which the enable/disable signal  811  have a signal “disable” and makes the confidential information processing LSI  802  stop the operation of the authentication block  812 .  
         [0141]     Once the operation of the authentication block  812  starts, a random number generating circuit  813  receives a random number seed  814 , which is based on a noise outside the confidential information processing LSI  802 , and generates a random number  815 . Thus generated random number  815  is output to the CPU  801 . Reading the authentication control part  504  of the confidential information processing software  501  from the memory  104  and using a common key  816  incorporated in the authentication control part  504 , the CPU  801  performs one-way function processing  817  of the random number  815  and supplies the result of this as a comparison value  818  to the confidential information processing LSI  802 .  
         [0142]     In the confidential information processing LSI  802 , a circuit  819  for one-way function processing performs one-way function processing of the random number  815  using a common key  820  stored in the confidential information processing LSI  802 , and the result of this is fed to a comparator  822  as a comparison value  821 .  
         [0143]     The comparator  822  compares a comparison value  818  fed from the CPU  801  with the comparison value  821 , thereby performing authentication processing. A match between the two values means authentication of the confidential information processing software  501  by the confidential information processing LSI  802 , which makes an enable/disable signal  823  have a value “enable” and makes the confidential information processing LSI  802  start the operation of an encrypted communications block  824  which is contained in the confidential information processing LSI  802 . A difference between the two values means failed authentication, which makes the enable/disable signal  823  have a value “disable” and makes the confidential information processing LSI  802  stop the operation of the encrypted communications block  824 .  
         [0144]     Finishing execution of the tampering detection control part  503 , the CPU  801  reads and executes the authentication control part  504  from the memory  104 . In the authentication control part  504 , random number generation  826  is performed based on a random number seed  825  which is based on a noise in the confidential information processing apparatus  101 , thereby generating a random number  827 . The CPU  801  performs one-way function processing  828  of the random number  827  using a common key  816  which is incorporated in the authentication control part  504 , and outputs the result of this as a comparison value  829 . Meanwhile, the random number  827  is fed to the confidential information processing LSI  802  from the CPU  801 , a circuit  831  for one-way function processing performs one-way function processing of the random number  827  using the common key  820  stored in the confidential information processing LSI  802 , and the result of this is fed to the CPU  801  as a comparison value  832 .  
         [0145]     The CPU  801  executes comparison processing  830  of the comparison value  832  fed from the confidential information processing LSI  802  and the comparison value  829 , thereby performing authentication processing. A match between the two values means authentication of the confidential information processing LSI  802  by the confidential information processing software  501 , which enables enable/disable information  833  and makes the CPU  801  read and execute ( 834 ) the encrypted communications control part  505  from the memory  104 . A difference between the two values means failed authentication, which disables the enable/disable information  833 , allows no execution of the encrypted communications control part  505  and makes the CPU  801  terminate the processing.  
         [0146]     After the start of execution of the encrypted communications control part  834 , using the common key  816 , the CPU  801  performs one-way function processing  836  on the result of exclusive-OR ( 835 ) of the comparison value  818  and the comparison value  829 , and the result of this is determined a session key  837 .  
         [0147]     Once the operation of the encrypted communications block  824  starts, a circuit  838  for one-way function processing performs one-way function processing on the result of exclusive-OR ( 839 ) of the comparison value  821  and the comparison value  832  using the common key  820 , and the result of this is determined a session key  840 . Since authentication is successful as long as the encrypted communications block  824  and the encrypted communications control part  834  are operating, the two session keys ( 837 ,  840 ) are same values.  
         [0148]     Commands of the processing command part  506  and processing data  507  in the memory  104  are read into the CPU  801  one after another, and after encoding  841  which uses the session key  837 , fed to the confidential information processing LSI  802 . Within the confidential information processing LSI  802 , coded commands and coded data received at a confidential information input/output terminal  842  are decoded by a encoding/decoding circuit  843  using the session key  840  and thus decoded commands and data are supplied to a confidential information processing circuit  844  which is inside the confidential information processing LSI  802 , whereby confidential information is processed.  
         [0149]     Alternatively, output data from the confidential information processing circuit  844  are encoded by the encoding/decoding circuit  843  using the session key  840  and output to the CPU  801  through the confidential information input/output terminal  842 , the CPU  801  performs decoding  841  using the session key  837  and accordingly realizes processing of confidential information.  
         [0150]     During such encrypted communications, a counter  845  disposed to the confidential information processing LSI  802  counts the number of the communications. A comparator  847  compares the value registered in the counter  845  with a limitation value  846  stored in the confidential information processing LSI  802 , and when the two values match with each other, a random number re-issue signal generator circuit  850  generates random number re-issue signals  848  and  849 , whereas a reset signal generator circuit  851  generates reset signals  852  and  853 . The random number re-issue signal  848  is fed to the random number generating circuit  813 , and as a result, the random number  815  is generated once again, while the random number re-issue signal  849  is fed to the CPU  801 , and receiving this, the CPU  801  re-executes the random number generation  826 . Further, the reset signal  852  resets the session key  840  within the confidential information processing LSI  802 . Meanwhile, the reset signal  853  is fed to the CPU  801 , and receiving this, the CPU  801  resets the session key  837 . At this stage, the two session keys  837  and  840  are reset to different values which have been determined in advance respectively for the confidential information processing software  501  and the confidential information processing LSI  802 , and accordingly have different values.  
         [0151]     Following this, the CPU  801  executes the authentication control part  504  and the confidential information processing LSI  802  re-executes the operation of the authentication block  812 , whereby authentication processing is performed once again and the session keys  837  and  840  are updated.  
         [0152]     While the third embodiment requires that the common key used in the one-way function processing  817  and  819  for authentication processing, the common key used in the one-way function processing  828  and  831  similarly for authentication processing and the common key used in the one-way function processing  836  and  838  for generation of the session keys are the same, these maybe common keys which are different from each other.  
         [0153]     Further, the configuration of the authentication block  812  only needs be able to control the operation of the encrypted communications block  824 : Some of the structure elements in the configuration of the authentication block  812  according to the third embodiment may be outside the authentication block or other structure elements may be included in the authentication block.  
         [0154]     Further, the encrypted communications block  824  only needs be configured such that no encrypted communication using the same session key will take place unless the encrypted communications block  824  operates: Some of the structure elements in the configuration of the encrypted communications block  824  according to the third embodiment may be outside the encrypted communications block or other structure elements may be included in the encrypted communications block.  
         [0155]     Further, although the third embodiment requires resetting the session keys  837  and  840  respectively to the predetermined values at the time of generation of the reset signals  852  and  853 , these may be are reset respectively to different values using a random number for instance.  
         [0156]     Further, although the exclusive-OR  835  and  839  of the comparison values are yielded for generation of the session keys in the third embodiment, other function such as sum and product which uses two inputs and yields one output may be used instead.  
         [0157]     As described above, according to the third embodiment, tampering detection is performed through calculation of the hush value of the confidential information processing software  501  while executing mutual authentication processing based on the random number  815  generated by the confidential information processing LSI  802  and the random number  827  generated by the CPU  801 , which prevents use of the confidential information processing LSI  802  by unauthorized software. In addition, as the session keys  837  and  840  are generated based on the random numbers  815  and  827  which are used during the authentication processing and encrypted communications are realized between the LSI  802  and the CPU  801 , communications of confidential information between the confidential information processing LSI  802  and the CPU  801  are protected.  
         [0158]     Since the third embodiment requires generation of the random numbers by both the confidential information processing LSI  802  and the CPU  801 , and hence, mutual authentication,if someone should use an unauthorized confidential information processing LSI in an attempt to acquire confidential information held by the confidential information processing software  501 , authentication will fail, thus improving security.  
         [0159]     Further, since hush is utilized for tampering detection, the software to be installed need no special processing and it is thus easy to install the software. Moreover, since the session keys  837  and  840  are reset when the number of encrypted communications using the session keys  837  and  840  reaches the limitation value  846 , processing to start and end the operation of the encrypted communications block  824  is not necessary at the time of resetting and it is therefore easy to control.  
       Fourth Embodiment  
       [0160]     The structure according to the fourth embodiment is as shown in  FIG. 1 . The memory  104  stores coded confidential information software  901  obtained by encoding confidential information software which is for processing of confidential information by a confidential information processing LSI  105  as shown in  FIG. 9 . The coded confidential information processing software  901  is obtained concatenating ( 904 ) a constant  903  to pre-installation confidential information software  902  and CBC-encoding ( 906 ) this using a CBC common key  905 . The coded confidential information processing software  901 , as it is encoded, includes a tampering detection control part  907 , an authentication control part  908 , an encrypted communications control part  909 , a processing command part  910  and a constant  911 .  
         [0161]      FIG. 10  shows the operation of a CPU  1001  which reads and executes the coded confidential information processing software  901  and the structure and operation of a confidential information processing LSI: Execution of the coded confidential information software  901  realizes confidential information processing  1003 .  
         [0162]     At the time of execution of the coded confidential information software  901 , the CPU  1001  reads and executes the tampering detection control part  907  from the memory  104 . The CPU  1001 , executing the tampering detection control part  907 , supplies the tampering detection control part  907 , the authentication control part  908 , the encrypted communications control part  909 , the processing command part  910  and the constant  911  one after another to the confidential information processing LSI  1002 . In the confidential information processing LSI  1002 , a CBC decoding circuit  1005  decodes these inputs using a CBC common key  1004 , and separates and extracts ( 1006 ) thus decoded constant part. A comparator  1008  compares the constant part extracted in this manner with a constant  1007 , whereby tampering detection of the coded confidential information software  901  is performed. A match between the two values means no detection of tampering, which makes an enable/disable signal  1009  have a value “enable” and makes the confidential information processing LSI  1002  start the operation of an authentication block  1010  which is contained in the confidential information processing LSI  1002 . A difference between the two values means detection of tampering, which makes the enable/disable signal  1009  have a value “disable” and makes the confidential information processing LSI  1002  stop the operation of the authentication block  1010 .  
         [0163]     Once the operation of the authentication block  1010  starts, a random number generating circuit  1011  receives a random number seed  1012 , which is based on-a noise outside the confidential information processing LSI  1002 , and generates a random number  1013 . Thus generated random number  1013  is output to the CPU  1001 . Reading the authentication control part  908  of the coded confidential information software  901  from the memory  104  and using a common key  1014  incorporated in the authentication control part  908 , the CPU  1001  performs one-way function processing  1015  of the random number  1013  and supplies the result of this as a comparison value  1016  to the confidential information processing LSI  1002 .  
         [0164]     In the confidential information processing LSI  1002 , a circuit  1017  for one-way function processing performs one-way function processing  1017  of the random number  1013  using a common key  1018  stored in the confidential information processing LSI  1002 , and the result of this is fed to a comparator  1020  as a comparison value  1019 . The comparator  1020  compares the comparison value  1016  fed from the CPU  1001  with the comparison value  1019 , thereby performing authentication processing. A match between the two values means authentication of the coded confidential information software  901  by the confidential information processing LSI  1002 , which makes an enable/disable signal  1021  have a value “enable” and makes the confidential information processing LSI  1002  start the operation of an encrypted communications block  1022  which is contained in the confidential information processing LSI  1002 . A difference between the two values means failed authentication, which makes the enable/disable signal  1021  have a value “disable” and makes the confidential information processing LSI  1002  stop the operation of the encrypted communications block  1022 .  
         [0165]     Finishing execution of the tampering detection control part  907 , the CPU  1001  reads and executes the authentication control part  908  from the memory  104 . In the authentication control part  908 , random number generation  1024  is performed based on a random number seed  1023  which is based on a noise in the confidential information processing apparatus  101 , thereby generating a random number  1025 . The CPU  1001  performs one-way function processing  1026  of the random number  1025  using a common key  1014  which is incorporated in the authentication control part  908 , and the result of this is determined as a comparison value  1027 .  
         [0166]     Meanwhile, the random number  1025  is fed to the confidential information processing LSI  1002  from the CPU  1001 , a circuit  1029  for one-way function processing performs one-way function processing of the random number  1025  using a common key  1018  stored in the confidential information processing LSI  1002 , and the result of this is fed to the CPU  1001  as a comparison value  1030 .  
         [0167]     The CPU  1001  executes comparison processing  1028  of the comparison value  1030  fed from the confidential information processing LSI  1002  and the comparison value  1027 , thereby performing authentication processing. A match between the two values means authentication of the confidential information processing LSI  1002  by the coded confidential information software  901 , which enables enable/disable information  1031  and makes the CPU  1001  read and execute the encrypted communications control part  909  ( 1032 ) from the memory  104 . A difference between the two values means failed authentication, which disables the enable/disable information  1031 , allows no execution of the encrypted communications control part  1032  and makes the CPU  1001  terminate the processing.  
         [0168]     In addition, using the common key  1014 , the CPU  1001  performs one-way function processing  1034  on the result of exclusive-OR  1033  of the comparison value  1016  and the comparison value  1027 , and the result of this is determined as a session key  1035 .  
         [0169]     Meanwhile, within the confidential information processing LSI  1002 , a circuit  1036  for one-way function processing, using the common key  1018 , performs one-way function processing on the result of exclusive-OR  1037  of the comparison value  1019  and the comparison value  1030 , and the result of this is determined as a session key  1038 . In the case of successful authentication, the two session keys  1035  and  1038  have the same values.  
         [0170]     Commands of the processing command part  910  and processing data  912  in the memory  104  are read into the CPU  1001  one after another, subjected to encoding  1039  which uses the session key  1035 , output after confidential information input/output processing  1040 , and fed to the confidential information processing LSI  1002 . Within the confidential information processing LSI  1002 , coded commands and coded data received at a confidential information input/output terminal  1041  are decoded by a encoding/decoding circuit  1042  using the session key  1038  and thus decoded commands and data are supplied to a confidential information processing circuit  1043  which is inside the confidential information processing LSI  1002 , whereby confidential information is processed.  
         [0171]     Alternatively, output data from the confidential information processing circuit  1043  are encoded by the encoding/decoding circuit  1042  using the session key  1038 , fed to the CPU  1001  through the confidential information input/output processing  1040  and subjected to decoding  1039  using the session key  1035 , and the CPU  1001  accordingly processes the confidential information.  
         [0172]     During such encrypted communications, a counter  1044  disposed to the confidential information processing LSI  1002  counts the number of the communications. A comparator  1046  compares the value registered in the counter  1044  with a limitation value  1045  stored in the confidential information processing LSI  1002 , and when the two values match with each other, a random number re-issue signal generator circuit  1049  generates random number re-issue signals  1047  and  1048 , whereas a reset signal generator circuit  1050  generates reset signals  1051  and  1052 . The random number re-issue signal  1047  is fed to the random number generating circuit  1011 , and as a result, the random number  1013  is generated once again, while the random number re-issue signal  1048  is fed to the CPU  1001 , and receiving this, the CPU  1001  re-executes the random number generation ( 1024 ). The reset signal  1051  resets the session key  1038  which is within the confidential information processing LSI  1002 . Further, the reset signal  1052  is fed to the CPU  1001 , and receiving this, the CPU  1001  resets the session key  1035 . At this stage, the two session keys ( 1035 ,  1038 ) are reset to different values which have been determined in advance respectively for the coded confidential information software  901  and the confidential information processing LSI  1002 , and accordingly have different values.  
         [0173]     Following this, the CPU  1001  executes the authentication control part  908  and the confidential information processing LSI  1002  re-executes the operation of the authentication block  1010 , whereby authentication processing is performed once again and the session keys  1035  and  1038  are updated.  
         [0174]     While the fourth embodiment requires that the common key used in the one-way function processing  1015  and  1017  for authentication processing, the common key similarly used in the one-way function processing  1026  and  1029  for authentication processing and the common key used in the one-way function processing  1034  and  1036  for generation of the session keys are the same, these may be common keys which are different from each other.  
         [0175]     Further, although the fourth embodiment requires execution of the CBC-encoding  906  at the time of concatenating the constant  903  to the pre-installation confidential information software  902  and encoding, other encoding algorithm may be used instead of CBC encoding. On the other hand, while the foregoing has described that the constant  911  is located after the processing command part  910  in the coded confidential information software  901 , the constant  911  may be located at other position or multiple positions.  
         [0176]     Further, the configuration of the authentication block  1010  only needs be able to control the operation of the encrypted communications block  1022 : Some of the structure elements in the configuration of the authentication block  1010  according to the fourth embodiment may be outside the authentication block or other structure elements may be included in the authentication block.  
         [0177]     Further, the encrypted communications block  1022  only needs be configured such that no encrypted communication using the same session key will take place unless the encrypted communications block  1022  operates: Some of the structure elements in the configuration of the encrypted communications block  1022  according to the fourth embodiment may be outside the encrypted communications block or other structure elements may be included in the encrypted communications block.  
         [0178]     Further, although the fourth embodiment requires resetting the session keys  1038  and  1035  respectively to the predetermined values at the time of generation of the reset signals  1051  and  1052 , these may be are reset respectively to different values using a random number for example.  
         [0179]     Further, although the exclusive-OR  1033  and  1037  of the comparison values are yielded for generation of the session keys in the fourth embodiment, other function such as sum and product which uses two inputs and yields one output may be used instead.  
         [0180]     As described above, according to the fourth embodiment, tampering detection is performed by decoding the coded confidential information software  901  and extracting the constant  911  while executing mutual authentication processing based on the random number  1013  generated by the confidential information processing LSI  1002  and the random number  1025  generated by the CPU  1001 , which prevents use of the confidential information processing LSI  1002  by unauthorized software. In addition, as the session keys  1038  and  1035  are generated based on the random numbers  1013  and  1025  which are used during the authentication processing and encrypted communications are realized between the LSI  1002  and the CPU  1001 , communications of confidential information between the confidential information processing LSI  1002  and the CPU  1001  are protected.  
         [0181]     Since the fourth embodiment requires generation of the random numbers by both the confidential information processing LSI  1002  and the CPU  1001 , and hence, mutual authentication, if someone should use unauthorized confidential information processing LSI  1002  in an attempt to acquire confidential information held by the coded confidential information processing software  901 , authentication will fail, thus improving security.  
         [0182]     In addition, it is possible for the confidential information processing LSI  1002  to store in advance a value for comparison (the constant  1007 ) to be used at the time of tampering detection since the tampering detection utilizes encoding/decoding, and as a fewer inputs are fed to the confidential information processing LSI  1002 , security improves. Moreover, since the session keys  1035  and  1038  are reset when the number of encrypted communications using the session keys  1035  and  1038  reaches the limitation value  1045 , processing to start and end the operation of the encrypted communications block  1022  is not necessary at the time of resetting and it is therefore easy to control.  
         [0183]     Thus, the first embodiment, the second embodiment, the third embodiment and the fourth embodiment are as described above.  
         [0184]     Although each embodiment requires that the limitation value  634 ,  736 ,  846  or  1045  is a value stored in advance in the confidential information processing LSI, this value may be a value which is fed from outside. Further, while the foregoing has described that the random number seeds  614 ,  713 ,  814 ,  825 ,  1012  and  1023  based on noises, these may be something else. Still further, although the foregoing has described that the bus  106  is common to the respective data, dedicated buses may be disposed for some or all of the data.  
         [0185]     As described above, according to the present invention, leakage of confidential information owing to unauthorized software execution is prevented since authentication and tampering detection is performed between the software which is for processing of confidential information and the LSI which processes confidential information and the LSI controls the start and the end of the operation of the circuit disposed within the LSI based on the result of this, while leakage of confidential information committed by observing a bus using a probe or the like is prevented since session keys are generated from a value originating from a random number which is used for authentication and encrypted communications are established between the software and the LSI using a common key which is updated at appropriate intervals, so that the confidential information processing system and the LSI are highly secure.  
         [0186]     In the present invention, in the event of detection of tampering identified through tampering detection or failed authentication as a result of authentication processing, the confidential information input/output terminal within the LSI may stop operating or the circuit which processes confidential information may stop operating, whereas in the case of no detection of tampering through tampering detection or successful authentication as a result of authentication processing, the confidential information input/output terminal within the LSI may start operating or the circuit which processes confidential information may start operating.  
         [0187]     The confidential information processing system and the LSI according to the present invention attain the effect that it is possible to prevent leakage of confidential information owing to unauthorized software execution or the like, and as such, are useful as a confidential information processing system and an LSI which are secure.