JP2020150310A - Information processing unit, decryption method of encryption data and electronic apparatus - Google Patents

Information processing unit, decryption method of encryption data and electronic apparatus Download PDF

Info

Publication number
JP2020150310A
JP2020150310A JP2019043913A JP2019043913A JP2020150310A JP 2020150310 A JP2020150310 A JP 2020150310A JP 2019043913 A JP2019043913 A JP 2019043913A JP 2019043913 A JP2019043913 A JP 2019043913A JP 2020150310 A JP2020150310 A JP 2020150310A
Authority
JP
Japan
Prior art keywords
program code
data
encryption
key
decryption
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019043913A
Other languages
Japanese (ja)
Other versions
JP7230598B2 (en
Inventor
憲一 高田
Kenichi Takada
憲一 高田
平野 晋健
Tanitake Hirano
晋健 平野
輝明 城
Teruaki Jo
輝明 城
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=72429950&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2020150310(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2019043913A priority Critical patent/JP7230598B2/en
Publication of JP2020150310A publication Critical patent/JP2020150310A/en
Application granted granted Critical
Publication of JP7230598B2 publication Critical patent/JP7230598B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

To limit such data as program codes and set values, stored in apparatus included in an information processing unit, only to those procured from reliable origins.SOLUTION: In an information processing unit including a first apparatus, and a second apparatus having a tamper-resistance higher than that of the first apparatus, the first apparatus receives encryption data, obtained by performing first encryption processing using a first cryptographic key and a second encryption processing using a second cryptographic key for prescribed data, from an external unit, and performs first decryption processing using a first decryption key capable of decrypting data encrypted by first encryption processing, for the data encrypted by the first encryption processing in the encryption data. The second apparatus performs second decryption processing using a second decryption key capable of decrypting data encrypted by second encryption processing, for the data encrypted by the second encryption processing in the encryption data.SELECTED DRAWING: Figure 4

Description

IoT(Internet of Things)機器等の情報処理装置の技術分野に関する。 The technical field of information processing equipment such as IoT (Internet of Things) equipment.

IoT機器は、インターネットを介して、IoT機器が備えるセンサーで測定したデータをサーバで取得すること、IoT機器をサーバにより遠隔管理することなどを目的として利用される。IoT機器はインターネットを介してサーバと接続されるため安全性が求められることから、IoT機器にセキュアエレメント(Secure Element)を設けて、鍵などの秘密情報を管理する動きがある。特許文献1には、鍵情報を保持するセキュリティチップとサーバとの間で安全な通信経路を確立して秘密情報を送受信するシステムが開示されている。 The IoT device is used for the purpose of acquiring data measured by a sensor included in the IoT device on a server via the Internet, remotely managing the IoT device by the server, and the like. Since IoT devices are connected to a server via the Internet, security is required. Therefore, there is a movement to provide secure elements in IoT devices to manage confidential information such as keys. Patent Document 1 discloses a system for transmitting and receiving confidential information by establishing a secure communication path between a security chip that holds key information and a server.

特開2006−129143号公報Japanese Unexamined Patent Publication No. 2006-129143

また、IoT機器の普及に伴い、IoT機器が攻撃対象になることが増えており、コンピュータウィルスが不正にインストールされることなどが社会問題になっている。また、IoT機器に設定されている値が改竄されて異常な動作をすることも懸念される。その一方で、IoT機器に使用されるマイコン等の機器はIoT機器を制御するために最低限必要な性能しか有しておらず、PC(Personal Computer)のように常駐のウイルス対策ソフト等を導入することは現実的ではないという問題がある。 In addition, with the spread of IoT devices, IoT devices are increasingly targeted for attacks, and unauthorized installation of computer viruses has become a social problem. In addition, there is a concern that the value set in the IoT device may be falsified to cause abnormal operation. On the other hand, devices such as microcomputers used for IoT devices have only the minimum performance required to control IoT devices, and resident antivirus software such as PCs (Personal Computers) have been introduced. The problem is that it is not realistic to do.

こうした事情に鑑み、IoT機器等の情報処理装置に含まれるマイコン等の機器が記憶するプログラムコードや設定値等のデータを、信頼できる発信元から入手したものに制限することができる当該情報処理装置等を提供することを課題とする。 In view of these circumstances, the information processing device that can limit data such as program codes and setting values stored in devices such as microcomputers included in information processing devices such as IoT devices to those obtained from a reliable source. Etc. are the issues to be provided.

上記課題を解決するために、請求項1に記載の発明は、第1機器と、当該第1機器よりも耐タンパ性が高い第2機器とを含む情報処理装置であって、前記第1機器は、所定のデータに対して、第1暗号鍵を用いる第1暗号化処理と、第2暗号鍵を用いる第2暗号化処理と、を行うことにより得られた暗号化データを外部装置から受信する受信手段と、前記受信した暗号化データにおける前記第1暗号化処理により暗号化されたデータに対して、前記第1暗号化処理により暗号化されたデータを復号可能な第1復号鍵を用いた第1復号処理を行う第1復号手段と、を備え、前記第2機器は、前記受信した暗号化データにおける前記第2暗号化処理により暗号化されたデータに対して、前記第2暗号化処理により暗号化されたデータを復号可能な第2復号鍵を用いた第2復号処理を行う第2復号手段を備えることを特徴とする。 In order to solve the above problems, the invention according to claim 1 is an information processing apparatus including a first apparatus and a second apparatus having a tamper resistance higher than that of the first apparatus, and the first apparatus. Receives the encrypted data obtained by performing the first encryption process using the first encryption key and the second encryption process using the second encryption key on the predetermined data from the external device. A first decryption key capable of decrypting the data encrypted by the first encryption process is used for the receiving means to be performed and the data encrypted by the first encryption process in the received encrypted data. The second apparatus includes the first decryption means for performing the first decryption process, and the second apparatus performs the second encryption on the data encrypted by the second encryption process in the received encrypted data. It is characterized by comprising a second decoding means for performing a second decryption process using a second decryption key capable of decrypting the data encrypted by the process.

請求項2に記載の発明は、請求項1に記載の情報処理装置であって、前記第1機器は、前記第1復号処理及び前記第2復号処理により得られた前記所定のデータを記憶するデータ記憶手段を更に備えることを特徴とする。 The invention according to claim 2 is the information processing apparatus according to claim 1, wherein the first apparatus stores the predetermined data obtained by the first decoding process and the second decoding process. It is characterized by further providing a data storage means.

請求項3に記載の発明は、請求項2に記載の情報処理装置であって、前記暗号化データは、前記所定のデータにおける第1の部分に対して前記第2暗号化処理を行って得られた第1暗号化データと、前記所定のデータにおける前記第1の部分を除いた残りの部分である第2の部分に対して前記第1暗号化処理を行って得られた第2暗号化データと、で構成され、前記第1復号手段は、前記受信した前記暗号化データにおける前記第2暗号化データに対して前記第1復号処理を行い、前記第2復号手段は、前記受信した前記暗号化データにおける前記第1暗号化データに対して前記第2復号処理を行い、前記データ記憶手段は、前記第2復号処理により得られた前記第1の部分と、前記第1復号処理により得られた前記第2の部分と、で構成される前記所定のデータを記憶することを特徴とする。 The invention according to claim 3 is the information processing apparatus according to claim 2, wherein the encrypted data is obtained by performing the second encryption process on a first portion of the predetermined data. The second encryption obtained by performing the first encryption process on the obtained first encrypted data and the second part which is the remaining part of the predetermined data excluding the first part. The first decryption means is composed of data, and the first decryption means performs the first decryption process on the second encrypted data in the received encrypted data, and the second decryption means receives the received said. The second decryption process is performed on the first encrypted data in the encrypted data, and the data storage means obtains the first part obtained by the second decryption process and the first decryption process. It is characterized in that the predetermined data composed of the second portion is stored.

請求項4に記載の発明は、請求項3に記載の情報処理装置であって、前記受信手段は、前記第1暗号化データと前記第2の部分とで構成される一部暗号化データに対する第1生成処理により生成されたメッセージダイジェストと、秘密鍵と、を用いて生成されたデジタル署名を前記外部装置から更に受信し、前記第2機器は、前記秘密鍵に対応する公開鍵を用いて前記デジタル署名を復号することによりメッセージダイジェストを取得する取得手段と、前記受信手段が受信した前記暗号化データにおける前記第1暗号化データと、前記第1復号処理により得られた前記第2の部分と、で構成される一部暗号化データに対する前記第1生成処理により生成されたメッセージダイジェストと、前記取得手段が取得したメッセージダイジェストと、を比較する第1比較手段を更に備え、前記第2復号手段は、前記第1比較手段による比較の結果が一致であった場合に、前記第2復号処理を行うことを特徴とする。 The invention according to claim 4 is the information processing apparatus according to claim 3, wherein the receiving means relates to partially encrypted data composed of the first encrypted data and the second portion. A digital signature generated by using the message digest generated by the first generation process and the private key is further received from the external device, and the second device uses the public key corresponding to the private key. An acquisition means for acquiring a message digest by decrypting the digital signature, the first encrypted data in the encrypted data received by the receiving means, and the second portion obtained by the first decryption process. A first comparison means for comparing the message digest generated by the first generation process with respect to the partially encrypted data composed of the above and the message digest acquired by the acquisition means is further provided, and the second decryption The means is characterized in that the second decoding process is performed when the results of comparison by the first comparison means are in agreement.

請求項5に記載の発明は、請求項2に記載の情報処理装置であって、前記暗号化データは、前記所定のデータにおける第1の部分に対して前記第2暗号化処理を行って得られた第1暗号化データと、前記所定のデータにおける前記第1の部分を除いた残りの部分である第2の部分と、で構成される一部暗号化データに対して前記第1暗号化処理を行って得られたデータであり、前記第1復号手段は、前記受信した前記暗号化データに対して前記第1復号処理を行い、前記第2復号手段は、前記第1復号処理により得られた一部暗号化データにおける前記第1暗号化データに対して前記第2復号処理を行い、前記データ記憶手段は、前記第2復号処理により得られた前記第1の部分と、前記第1復号処理により得られた前記一部暗号化データにおける前記第2の部分と、で構成される前記所定のデータを記憶することを特徴とする。 The invention according to claim 5 is the information processing apparatus according to claim 2, wherein the encrypted data is obtained by performing the second encryption process on a first portion of the predetermined data. The first encryption is performed on the partially encrypted data composed of the obtained first encrypted data and the second part which is the remaining part of the predetermined data excluding the first part. The data obtained by performing the processing, the first decoding means performs the first decoding processing on the received encrypted data, and the second decoding means is obtained by the first decoding processing. The second decryption process is performed on the first encrypted data in the partially encrypted data, and the data storage means includes the first part obtained by the second decryption process and the first. It is characterized in that the predetermined data composed of the second part of the partially encrypted data obtained by the decryption process is stored.

請求項6に記載の発明は、請求項5に記載の情報処理装置であって、前記受信手段は、前記第1暗号化データと前記第2の部分とで構成される一部暗号化データに対する第1生成処理により生成されたメッセージダイジェストと、秘密鍵と、を用いて生成されたデジタル署名を前記外部装置から更に受信し、前記第2機器は、前記秘密鍵に対応する公開鍵を用いて前記デジタル署名を復号することによりメッセージダイジェストを取得する取得手段と、前記第1復号処理により得られた一部暗号化データに対する前記第1生成処理により生成されたメッセージダイジェストと、前記取得手段が取得したメッセージダイジェストと、を比較する第1比較手段を更に備え、前記第2復号手段は、前記第1比較手段による比較の結果が一致であった場合に、前記第2復号処理を行うことを特徴とする。 The invention according to claim 6 is the information processing apparatus according to claim 5, wherein the receiving means relates to partially encrypted data composed of the first encrypted data and the second portion. A digital signature generated by using the message digest generated by the first generation process and the private key is further received from the external device, and the second device uses the public key corresponding to the private key. An acquisition means for acquiring a message digest by decrypting the digital signature, a message digest generated by the first generation process for the partially encrypted data obtained by the first decryption process, and the acquisition means. The second decoding means further includes a first comparison means for comparing the message digest, and the second decoding means performs the second decoding process when the comparison results by the first comparison means are in agreement. And.

請求項7に記載の発明は、請求項4又は6に記載の情報処理装置であって、前記所定のデータはプログラムコードであり、前記第2機器は、前記第1比較手段による比較の結果が一致であった場合に、前記比較したメッセージダイジェストを記憶するメッセージダイジェスト記憶手段を更に備え、前記第1機器は、前記プログラムコードを実行するプログラムコード実行手段と、前記プログラムコード実行手段による前記プログラムコードの実行が初回である場合におけるその実行前に、前記データ記憶手段に記憶されている前記プログラムコードを、前記第2機器に送信するプログラムコード送信手段を更に備え、前記第2機器は、前記プログラムコード送信手段により送信されたプログラムコードを受信するプログラムコード受信手段と、前記プログラムコード受信手段が受信したプログラムコードにおける前記第1の部分に対して前記第2暗号化処理を行うことにより第1暗号化データを取得し、当該第1暗号化データと、当該プログラムコードにおける前記第2の部分と、で構成される一部暗号化データに対する前記第1生成処理によりメッセージダイジェストを生成するメッセージダイジェスト生成手段と、前記メッセージダイジェスト記憶手段が記憶するメッセージダイジェストと、前記メッセージダイジェスト生成手段が生成したメッセージダイジェストと、を比較する第2比較手段と、前記第2比較手段による比較の結果が一致であった場合に、その旨を前記第1機器に通知する通知手段を更に備え、前記プログラムコード実行手段は、前記プログラムコード送信手段が前記プログラムコードを送信した場合には、前記第2比較手段による比較の結果が一致であった旨の通知を受けた後に前記プログラムコードを実行することを特徴とする。 The invention according to claim 7 is the information processing apparatus according to claim 4 or 6, wherein the predetermined data is a program code, and the second device has a result of comparison by the first comparison means. Further, a message digest storage means for storing the compared message digests when there is a match is further provided, and the first device includes a program code executing means for executing the program code and the program code by the program code executing means. When the execution of the program is the first time, the program code transmitting means for transmitting the program code stored in the data storage means to the second device is further provided, and the second device is provided with the program. The first encryption is performed by performing the second encryption processing on the program code receiving means for receiving the program code transmitted by the code transmitting means and the first part of the program code received by the program code receiving means. Message digest generation means that acquires encrypted data and generates a message digest by the first generation process for partially encrypted data composed of the first encrypted data and the second part in the program code. When the second comparison means for comparing the message digest stored in the message digest storage means and the message digest generated by the message digest generation means and the comparison result by the second comparison means are in agreement. In addition, the program code executing means further includes a notification means for notifying the first device to that effect, and when the program code transmitting means transmits the program code, the result of comparison by the second comparing means is provided. The program code is executed after receiving the notification that the data matches.

請求項8に記載の発明は、請求項7に記載の情報処理装置であって、前記第2機器は、前記第2比較手段による比較の結果が一致であった場合に、前記プログラムコード受信手段が受信したプログラムコードに対する第2生成処理によりチェックコードを生成するチェックコード生成手段と、前記チェックコード生成手段により生成されたチェックコードを記憶するチェックコード記憶手段を更に備え、前記第1機器は、前記プログラムコード実行手段による前記プログラムコードの実行が2回目以降である場合におけるその実行前に、前記データ記憶手段に記憶されている前記プログラムコードに対する前記第2生成処理によりチェックコードを生成し、前記第2機器に送信するチェックコード送信手段を更に備え、前記第2機器は、前記チェックコード送信手段により送信されたチェックコードを受信するチェックコード受信手段と、前記チェックコード受信手段が受信したチェックコードと、前記チェックコード記憶手段が記憶するチェックコードと、を比較する第3比較手段と、前記第3比較手段による比較の結果が一致であった場合に、その旨を前記第1機器に通知する第2通知手段を更に備え、前記プログラムコード実行手段は、前記チェックコード送信手段が前記チェックコードを送信した場合には、前記第3比較手段による比較の結果が一致であった旨の通知を受けた後に前記プログラムコードを実行することを特徴とする。 The invention according to claim 8 is the information processing apparatus according to claim 7, wherein the second device is the program code receiving means when the results of comparison by the second comparison means are in agreement. The first apparatus further comprises a check code generation means for generating a check code by a second generation process for the program code received by the program code, and a check code storage means for storing the check code generated by the check code generation means. In the case where the program code is executed by the program code executing means for the second time or later, a check code is generated by the second generation process for the program code stored in the data storage means, and the check code is generated. The second device further includes a check code transmitting means for transmitting to the second device, and the second device includes a check code receiving means for receiving the check code transmitted by the check code transmitting means and a check code received by the check code receiving means. When the third comparison means for comparing the check code stored in the check code storage means with the check code stored in the check code storage means and the comparison result by the third comparison means are in agreement, the first device is notified to that effect. The program code executing means further includes a second notifying means, and when the check code transmitting means transmits the check code, the program code executing means receives a notification that the comparison results by the third comparing means are in agreement. After that, the program code is executed.

請求項9に記載の発明は、請求項1乃至8の何れか一項に記載の情報処理装置であって、前記第1機器は、非セキュアエレメントであり、前記第2機器は、セキュアエレメントであることを特徴とする。 The invention according to claim 9 is the information processing apparatus according to any one of claims 1 to 8, wherein the first device is a non-secure element, and the second device is a secure element. It is characterized by being.

請求項10に記載の発明は、請求項1乃至9の何れか一項に記載の情報処理装置であって、前記第2機器は、前記第2復号鍵を記憶する鍵記憶手段を更に備えることを特徴とする。 The invention according to claim 10 is the information processing apparatus according to any one of claims 1 to 9, wherein the second device further includes a key storage means for storing the second decryption key. It is characterized by.

請求項11に記載の発明は、請求項1乃至10の何れか一項に記載の情報処理装置であって、前記所定のデータはプログラムコードであり、前記第1の部分は、前記プログラムコードにおける先頭の実行アドレスを特定するためのアドレス情報を含むことを特徴とする。 The invention according to claim 11 is the information processing apparatus according to any one of claims 1 to 10, wherein the predetermined data is a program code, and the first part is the program code. It is characterized by including address information for specifying the first execution address.

請求項12に記載の発明は、第1機器と、当該第1機器よりも耐タンパ性が高い第2機器を含む情報処理装置における暗号化データの復号方法であって、前記第1機器が、所定のデータに対して、第1暗号鍵を用いる第1暗号化処理と、第2暗号鍵を用いる第2暗号化処理と、を行うことにより得られた暗号化データにおける前記第1暗号化処理により暗号化されたデータに対して、前記第1暗号化処理により暗号化されたデータを復号可能な第1復号鍵を用いた第1復号処理を行う第1復号工程と、前記第2機器が、前記暗号化データにおける前記第2暗号化処理により暗号化されたデータに対して、前記第2暗号化処理により暗号化されたデータを復号可能な第2復号鍵を用いた第2復号処理を行う第2復号工程と、を含むことを特徴とする。 The invention according to claim 12 is a method for decrypting encrypted data in an information processing device including a first device and a second device having a tamper resistance higher than that of the first device. The first encryption process in the encrypted data obtained by performing the first encryption process using the first encryption key and the second encryption process using the second encryption key on the predetermined data. The first decryption step of performing the first decryption process using the first decryption key capable of decrypting the data encrypted by the first encryption process on the data encrypted by the above, and the second apparatus A second decryption process using a second decryption key capable of decrypting the data encrypted by the second encryption process is performed on the data encrypted by the second encryption process in the encrypted data. It is characterized by including a second decoding step to be performed.

請求項13に記載の発明は、所定のデータに対して、第1暗号鍵を用いる第1暗号化処理と、第2暗号鍵を用いる第2暗号化処理と、を行うことにより得られた暗号化データを外部装置から受信する受信手段と、前記受信した暗号化データにおける前記第1暗号化処理により暗号化されたデータに対して、前記第1暗号化処理により暗号化されたデータを復号可能な第1復号鍵を用いた第1復号処理を行う第1復号手段と、を備える所定の機器よりも耐タンパ性が高い電子機器であって、前記所定の機器から、前記暗号化データにおける前記第2暗号化処理により暗号化されたデータを受け取る受取手段と、当該受取手段が受け取った前記第2暗号化処理により暗号化されたデータに対して、前記第2暗号化処理により暗号化されたデータを復号可能な第2復号鍵を用いた第2復号処理を行う第2復号手段と、前記第2復号処理により取得したデータを前記所定の機器に受け渡す受渡手段と、を備えることを特徴とする。 The invention according to claim 13 is a cipher obtained by performing a first encryption process using a first encryption key and a second encryption process using a second encryption key on predetermined data. It is possible to decrypt the data encrypted by the first encryption process against the receiving means for receiving the encrypted data from the external device and the data encrypted by the first encryption process in the received encrypted data. An electronic device having a tamper resistance higher than that of a predetermined device including a first decryption means for performing a first decryption process using the first decryption key, and the encrypted data from the predetermined device. The receiving means for receiving the data encrypted by the second encryption process and the data encrypted by the second encryption process received by the receiving means are encrypted by the second encryption process. It is characterized by including a second decoding means for performing a second decoding process using a second decoding key capable of decoding data, and a delivery means for delivering the data acquired by the second decoding process to the predetermined device. And.

本発明によれば、暗号化データを外部機器から受信した場合に、第1機器が当該暗号化データにおける第1暗号化処理により暗号化されたデータに対して、第1復号鍵を用いた第1復号処理を行い、第2機器が当該暗号化データにおける第2暗号化処理により暗号化されたデータに対して第2復号鍵を用いた第2復号処理を行う。すなわち、信頼できる発信元以外の発信元から入手したデータは適切に復号できないため、情報処理装置に含まれる機器は暗号化データから正常に復号できたデータのみを記憶することにより、記憶するデータを信頼できる発信元から入手したものに制限することができる。 According to the present invention, when the encrypted data is received from an external device, the first device uses the first decryption key for the data encrypted by the first encryption process in the encrypted data. 1 Decryption process is performed, and the second device performs a second decryption process using the second decryption key on the data encrypted by the second encryption process in the encrypted data. That is, since data obtained from a source other than a reliable source cannot be properly decrypted, the device included in the information processing device stores only the data that can be normally decrypted from the encrypted data, thereby storing the stored data. You can limit it to those obtained from trusted sources.

第1実施形態における通信システム構成例を示す図である。It is a figure which shows the communication system configuration example in 1st Embodiment. (A)は第1実施形態におけるIoT端末1の構成例を示すブロック図であり、(B)は第1実施形態におけるサーバSの構成例を示すブロック図である。(A) is a block diagram showing a configuration example of the IoT terminal 1 in the first embodiment, and (B) is a block diagram showing a configuration example of the server S in the first embodiment. 第1実施形態におけるプログラムコードの暗号化の概要を示す図である。It is a figure which shows the outline of the encryption of the program code in 1st Embodiment. 第1実施形態におけるプログラムコードの暗号化及び復号の流れの概要を示す図である。It is a figure which shows the outline of the flow of encryption and decryption of the program code in 1st Embodiment. 第1実施形態におけるサーバSによる処理例を示すフローチャートであるIt is a flowchart which shows the processing example by the server S in 1st Embodiment. 第1実施形態におけるプログラムコードインストール時のサーバSとIoT端末1の処理例を示すフローチャートである。It is a flowchart which shows the processing example of the server S and IoT terminal 1 at the time of program code installation in 1st Embodiment. 第1実施形態におけるプログラムコード初回実行時のIoT端末1の処理例を示すフローチャートである。It is a flowchart which shows the processing example of the IoT terminal 1 at the time of the first execution of the program code in 1st Embodiment. 第1実施形態におけるプログラムコード2回目以降実行時のIoT端末1の処理例を示すフローチャートである。It is a flowchart which shows the processing example of the IoT terminal 1 at the time of execution of the program code 2nd time or later in 1st Embodiment. 第2実施形態におけるプログラムコードの暗号化の概要を示す図である。It is a figure which shows the outline of the encryption of the program code in 2nd Embodiment. 第2実施形態におけるプログラムコードの暗号化及び復号の流れの概要を示す図である。It is a figure which shows the outline of the flow of encryption and decryption of a program code in 2nd Embodiment. 第2実施形態におけるサーバSによる処理例を示すフローチャートである。It is a flowchart which shows the processing example by the server S in 2nd Embodiment. 第2実施形態におけるプログラムコードインストール時のサーバSとIoT端末1の処理例を示すフローチャートである。It is a flowchart which shows the processing example of the server S and IoT terminal 1 at the time of program code installation in 2nd Embodiment.

[1.第1実施形態]
以下、図面を参照して本発明の第1実施形態について詳細に説明する。第1実施形態は、インターネットなどのネットワークを介してサーバと接続するIoT端末に対して本発明を適用した場合の実施形態である。
[1. First Embodiment]
Hereinafter, the first embodiment of the present invention will be described in detail with reference to the drawings. The first embodiment is an embodiment when the present invention is applied to an IoT terminal connected to a server via a network such as the Internet.

図1に示すように、通信システムはサーバSとIoT端末1を備える。IoT端末1は、自らが実行するプログラムコード(パッチファイルを含む)をサーバSから受信する。サーバSとIoT端末1は、暗号化や復号に使用する鍵をそれぞれが記憶しており、サーバSはプログラムコードを暗号化してIoT端末1に送信し、IoT端末1はこれを復号した上で記憶し、実行する。 As shown in FIG. 1, the communication system includes a server S and an IoT terminal 1. The IoT terminal 1 receives the program code (including the patch file) executed by itself from the server S. The server S and the IoT terminal 1 each store a key used for encryption and decryption, the server S encrypts the program code and sends it to the IoT terminal 1, and the IoT terminal 1 decrypts the program code and then transmits the code. Remember and execute.

[1.1.IoT端末1の構成]
図2(A)を用いて、IoT端末1の構成について説明する。図2(A)は、IoT端末1のハードウェア構成例を示す図である。IoT端末1は、マイコン11、通信部12、入力部13、出力部14及びセキュアエレメント2を備えて構成される。
[1.1. Configuration of IoT terminal 1]
The configuration of the IoT terminal 1 will be described with reference to FIG. 2 (A). FIG. 2A is a diagram showing a hardware configuration example of the IoT terminal 1. The IoT terminal 1 includes a microcomputer 11, a communication unit 12, an input unit 13, an output unit 14, and a secure element 2.

マイコン11は、CPU(Central Processing Unit)111、RAM(Random Access Memory)112、ROM(Read Only Memory)113、I/O回路114及び不揮発性メモリ115を含んで構成され、IoT端末1全体を制御する。例えば、マイコン11は、入力部13に入力された入力データや入力情報に基づいて処理を行い、出力部14に出力データや出力情報を出力する。通信部12は、無線通信のためのアンテナを有し、ネットワークNを介してサーバSと通信を行うための処理を行う。入力部13は、マイコン11に入力データや入力情報を入力する。例えば、入力部13がセンサーであれば検出データを入力し、タイマーであれば一定時間が経過したことを示す入力データを入力し、入力部13がキーボードやボタンなどの操作部であれば、操作部に対する操作内容を示す入力情報を入力する。出力部14は、マイコン11から出力された出力データや出力情報に基づいて出力を行う。例えば、出力部14がLED(Light Emitting Diode)であれば発光し、音声出力装置であれば音声を出力する。 The microcomputer 11 is configured to include a CPU (Central Processing Unit) 111, a RAM (Random Access Memory) 112, a ROM (Read Only Memory) 113, an I / O circuit 114, and a non-volatile memory 115, and controls the entire IoT terminal 1. To do. For example, the microcomputer 11 performs processing based on the input data and input information input to the input unit 13, and outputs the output data and output information to the output unit 14. The communication unit 12 has an antenna for wireless communication, and performs processing for communicating with the server S via the network N. The input unit 13 inputs input data and input information to the microcomputer 11. For example, if the input unit 13 is a sensor, the detection data is input, if the input unit 13 is a timer, the input data indicating that a certain time has passed is input, and if the input unit 13 is an operation unit such as a keyboard or a button, the operation is performed. Enter the input information that indicates the operation details for the unit. The output unit 14 outputs based on the output data and output information output from the microcomputer 11. For example, if the output unit 14 is an LED (Light Emitting Diode), it emits light, and if it is an audio output device, it outputs audio.

RAM112には、例えばOS(Operating System)や各種アプリケーションが機能する上で一時的に必要となるデータが記憶される。ROM113には、OS、各種アプリケーション等が記憶される。I/O回路114は、セキュアエレメント2との通信インターフェイスを担う。不揮発性メモリ115には、例えばフラッシュメモリ又は「Electrically Erasable Programmable Read-Only Memory」などを適用することができる。不揮発性メモリ115は、後述する処理を実行するためのプログラム等を記憶する。 The RAM 112 stores, for example, data temporarily required for the OS (Operating System) and various applications to function. The OS, various applications, and the like are stored in the ROM 113. The I / O circuit 114 serves as a communication interface with the secure element 2. For example, a flash memory or an "Electrically Erasable Programmable Read-Only Memory" can be applied to the non-volatile memory 115. The non-volatile memory 115 stores a program or the like for executing a process described later.

セキュアエレメント2は、CPU21、RAM22、不揮発性メモリ23及びI/O回路24を備えて構成される。セキュアエレメント2は、高い耐タンパ性を有する。耐タンパ性が高いとは、暗号化、復号、署名検証のための鍵をはじめとする秘密情報や秘密情報の処理メカニズムを外部から不当に観測・改変することや秘密情報を処理するメカニズムを不当に改変することの困難さが極めて高いことを意味する。なお、本実施形態において、セキュアエレメント2は非セキュアエレメントであるマイコン11よりも耐タンパ性が高い。 The secure element 2 includes a CPU 21, a RAM 22, a non-volatile memory 23, and an I / O circuit 24. The secure element 2 has high tamper resistance. High tamper resistance means unreasonable observation / modification of confidential information such as keys for encryption, decryption, and signature verification, and the mechanism for processing confidential information from the outside. It means that it is extremely difficult to modify it. In this embodiment, the secure element 2 has higher tamper resistance than the microcomputer 11 which is a non-secure element.

RAM22には、例えばOS、各種アプリケーションが機能する上で一時的に必要となるデータが記憶される。 The RAM 22 stores, for example, data temporarily required for the OS and various applications to function.

不揮発性メモリ23には、例えばフラッシュメモリ又は「Electrically Erasable Programmable Read-Only Memory」などを適用することができる。不揮発性メモリ23は、OS、各種アプリケーション、後述する処理を実行するためのプログラム、鍵等を記憶する。 For example, a flash memory or an "Electrically Erasable Programmable Read-Only Memory" can be applied to the non-volatile memory 23. The non-volatile memory 23 stores an OS, various applications, a program for executing a process described later, a key, and the like.

I/O回路24は、マイコン11との通信インターフェイスを担う。 The I / O circuit 24 serves as a communication interface with the microcomputer 11.

[1.2.サーバ装置Sの構成]
次に、図2(B)を用いて、サーバSの構成について説明する。図2(B)に示すように、サーバSは、制御部31、記憶部32、通信部33、表示部34及び操作部35を含んで構成されている。
[1.2. Configuration of server device S]
Next, the configuration of the server S will be described with reference to FIG. 2 (B). As shown in FIG. 2B, the server S includes a control unit 31, a storage unit 32, a communication unit 33, a display unit 34, and an operation unit 35.

記憶部32は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等により構成されており、OSや、後述する処理を実行するためのプログラム、その他各種データ及び鍵等を記憶する。 The storage unit 32 is composed of, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), or the like, and stores an OS, a program for executing a process described later, other various data, a key, and the like.

通信部33は、IoT端末1との通信を制御する。 The communication unit 33 controls communication with the IoT terminal 1.

表示部34は、例えば、液晶ディスプレイ等により構成されており、文字や画像等の情報を表示するようになっている。 The display unit 34 is composed of, for example, a liquid crystal display or the like, and displays information such as characters and images.

操作部35は、例えば、キーボード、マウス等により構成されており、オペレータからの操作指示を受け付け、その指示内容を指示信号として制御部31に出力するようになっている。 The operation unit 35 is composed of, for example, a keyboard, a mouse, or the like, and receives an operation instruction from an operator and outputs the instruction content as an instruction signal to the control unit 31.

制御部31は、制御部31全体を制御するCPUと、制御部31を制御する制御プログラム等が予め記憶されているROMと、各種データを一時的に格納するRAMと、により構成されている。そして、CPUが、ROMや記憶部32に記憶された各種プログラムを読み出し実行することにより各種機能を実現する。 The control unit 31 is composed of a CPU that controls the entire control unit 31, a ROM in which a control program that controls the control unit 31 is stored in advance, and a RAM that temporarily stores various data. Then, the CPU realizes various functions by reading and executing various programs stored in the ROM and the storage unit 32.

[1.3.プログラムコードのインストールからインストール後の処理]
次に、図3−図8を用いて、サーバSがIoT端末1に暗号化したプログラムコードを送信し、IoT端末1がこれを復号してプログラムコードをインストールするまでの処理と、IoT端末1がインストールしたプログラムコードを実行する際の処理について説明する。
[1.3. Program code installation to post-installation processing]
Next, using FIGS. 3 to 8, the process until the server S transmits the encrypted program code to the IoT terminal 1 and the IoT terminal 1 decrypts it and installs the program code, and the IoT terminal 1 This section describes the process when executing the program code installed by.

なお、サーバSとIoT端末1は、共通鍵暗号方式の鍵のペア(共通鍵のペア)を2組と、公開鍵暗号方式の鍵のペア(公開鍵と秘密鍵のペア)を1組、それぞれ共有する。具体的には、サーバSが共通鍵1(「鍵1」という場合がある)と共通鍵3(「鍵3」という場合がある)と秘密鍵2(「鍵2」という場合がある)を保持し、IoT端末1が共通鍵1(「鍵1」という場合がある)と共通鍵3(「鍵3」という場合がある)と公開鍵2(「鍵2」という場合がある)を保持する。すなわち、サーバSが、自らが保持する鍵1(又は鍵3)を用いて暗号化したデータを、IoT端末1は自らが保持する鍵1(又は鍵3)を用いて復号することができる。また、サーバSが、自らが保持する鍵2を用いて暗号化したデータを、IoT端末1は自らが保持する鍵2を用いて復号することができる。更に、サーバSが、自らが保持する鍵2(秘密鍵)を用いて生成したデジタル署名を、IoT端末1は自らが保持する鍵2(公開鍵)を用いて検証することができる。なお、サーバSは鍵1、鍵2、鍵3を記憶部32に記憶し、IoT端末1は鍵1、鍵2、鍵3をセキュアエレメント2の不揮発性メモリ23に記憶する。また、サーバS及びIoT端末1がそれぞれ記憶する鍵1、鍵2、鍵3はセッションキー(一定時間有効な鍵)である。 The server S and the IoT terminal 1 have two sets of common key cryptography keys (common key pairs) and one pair of public key cryptography keys (public key and private key pairs). Share each. Specifically, the server S uses the common key 1 (sometimes called "key 1"), the common key 3 (sometimes called "key 3"), and the private key 2 (sometimes called "key 2"). The IoT terminal 1 holds the common key 1 (sometimes called "key 1"), the common key 3 (sometimes called "key 3"), and the public key 2 (sometimes called "key 2"). To do. That is, the data encrypted by the server S using the key 1 (or key 3) held by the server S can be decrypted by the IoT terminal 1 using the key 1 (or key 3) held by the server S. Further, the IoT terminal 1 can decrypt the data encrypted by the server S using the key 2 held by the server S by using the key 2 held by the server S. Further, the IoT terminal 1 can verify the digital signature generated by the server S using the key 2 (private key) held by the server S by using the key 2 (public key) held by the server S. The server S stores the key 1, the key 2, and the key 3 in the storage unit 32, and the IoT terminal 1 stores the key 1, the key 2, and the key 3 in the non-volatile memory 23 of the secure element 2. Further, the key 1, the key 2, and the key 3 stored in the server S and the IoT terminal 1, respectively, are session keys (keys valid for a certain period of time).

[1.3.1.サーバSによる暗号化]
まず、図3を用いて、サーバSの制御部31がIoT端末1にインストールさせるプログラムコードを暗号化する流れについて説明する。
[13.1. Encryption by server S]
First, the flow in which the control unit 31 of the server S encrypts the program code to be installed in the IoT terminal 1 will be described with reference to FIG.

制御部31は、IoT端末1がインストールするプログラムコード300を暗号化するに際し、プログラムコード300をプログラムコード(PART1)301とプログラムコード(PART2)302に分割する。分割の方法や分割する際のデータサイズの割合は任意である。 When encrypting the program code 300 installed by the IoT terminal 1, the control unit 31 divides the program code 300 into a program code (PART1) 301 and a program code (PART2) 302. The method of division and the ratio of the data size at the time of division are arbitrary.

次に、制御部31は、プログラムコード(PART1)301を鍵1(共通鍵)で暗号化し、暗号化プログラムコード(PART1)301Eを生成する。 Next, the control unit 31 encrypts the program code (PART1) 301 with the key 1 (common key) to generate the encrypted program code (PART1) 301E.

次に、制御部31は、暗号化プログラムコード(PART1)301Eと、プログラムコード(PART2)302を合体させて一部暗号化プログラムコード300Hを生成する。次いで、制御部31は、一部暗号化プログラムコード300Hと、所定の暗号的ハッシュ関数を用いてメッセージダイジェスト(ハッシュ値)310を取得する。 Next, the control unit 31 combines the encryption program code (PART1) 301E and the program code (PART2) 302 to generate a partial encryption program code 300H. Next, the control unit 31 acquires a message digest (hash value) 310 by using a partial encryption program code 300H and a predetermined cryptographic hash function.

次に、制御部31は、メッセージダイジェストを鍵2(秘密鍵)で暗号化することによりデジタル署名311を生成する。 Next, the control unit 31 generates a digital signature 311 by encrypting the message digest with the key 2 (private key).

また、制御部31は、プログラムコード(PART2)302を鍵3(共通鍵)で暗号化し、暗号化プログラムコード(PART2)302Eを生成する。 Further, the control unit 31 encrypts the program code (PART2) 302 with the key 3 (common key) to generate the encrypted program code (PART2) 302E.

次に、制御部31は、暗号化プログラムコード(PART1)301Eと、暗号化プログラムコード(PART2)302Eを合体させて暗号化データ300Eを生成する。 Next, the control unit 31 combines the encryption program code (PART1) 301E and the encryption program code (PART2) 302E to generate the encrypted data 300E.

なお、後述するように、暗号化プログラムコード(PART2)302Eは、IoT端末1におけるマイコン11により復号され、暗号化プログラムコード(PART1)301Eは、IoT端末1におけるセキュアエレメント2により復号される。プログラムコード300における重要な部分は、マイコン11より耐タンパ性の高いセキュアエレメント2に復号させることが好ましい。そこで、プログラムコード300を分割する際には、当該重要な部分がプログラムコード(PART1)301に含まれるように分割することとする。プログラムコード300における重要な部分とは、例えば、プログラムコードにおける先頭の実行アドレスを特定するためのアドレス情報が記述されている部分である。一般的にアドレス情報は、プログラムコードの先頭部分に記述されているため、当該部分がプログラムコード(PART1)301に含まれるようにプログラムコード300を分割するのが好ましい。 As will be described later, the encryption program code (PART2) 302E is decrypted by the microcomputer 11 in the IoT terminal 1, and the encryption program code (PART1) 301E is decrypted by the secure element 2 in the IoT terminal 1. It is preferable that the important part of the program code 300 is decoded by the secure element 2 having higher tamper resistance than the microcomputer 11. Therefore, when the program code 300 is divided, the important portion is divided so as to be included in the program code (PART1) 301. The important part in the program code 300 is, for example, a part in which the address information for specifying the first execution address in the program code is described. Since the address information is generally described at the beginning of the program code, it is preferable to divide the program code 300 so that the portion is included in the program code (PART1) 301.

[1.3.2.IoT機器1によるプログラムコードのインストール]
次に、図4を用いて、IoT機器1がサーバSから暗号化プログラムコード300Eをダウンロードし、マイコン11の不揮発性メモリ115にインストールする(記憶させる)までの流れについて説明する。
[1.3.2. Installation of program code by IoT device 1]
Next, the flow until the IoT device 1 downloads the encryption program code 300E from the server S and installs (stores) it in the non-volatile memory 115 of the microcomputer 11 will be described with reference to FIG.

IoT機器1のマイコン11(CPU111)は、サーバSから暗号化プログラムコード300Eとデジタル署名311を受信すると、暗号化プログラムコード(PART1)301Eと暗号化プログラムコード(PART2)302Eとに分割する。なお、暗号化プログラムコード300Eやプログラムコード300における何れの部分が暗号化プログラムコード(PART1)301Eやプログラムコード(PART1)301であるかは、予めサーバSと取り決めておいてもよいし、別途、それを示す情報をサーバSから受信しておくこととしてもよい。 When the microcomputer 11 (CPU111) of the IoT device 1 receives the encryption program code 300E and the digital signature 311 from the server S, the microcomputer 11 (CPU111) divides the encryption program code (PART1) 301E and the encryption program code (PART2) 302E. It should be noted that which part of the encryption program code 300E or the program code 300 is the encryption program code (PART1) 301E or the program code (PART1) 301 may be agreed with the server S in advance, or separately. Information indicating this may be received from the server S.

次に、マイコン11(CPU111)は、暗号化プログラムコード(PART2)302Eを鍵3(共通鍵)で復号し、プログラムコード(PART2)302を取得する。なお、鍵3(共通鍵)は、セキュアエレメント2から取得しておき、復号が完了したら削除する。 Next, the microcomputer 11 (CPU111) decrypts the encryption program code (PART2) 302E with the key 3 (common key) and acquires the program code (PART2) 302. The key 3 (common key) is acquired from the secure element 2 and deleted when the decryption is completed.

次に、マイコン11(CPU111)は、暗号化プログラムコード(PART1)301Eとプログラムコード(PART2)302(すなわち、一部暗号化プログラムコード300H)から、所定の暗号的ハッシュ関数を用いてメッセージダイジェスト(ハッシュ値)310Sを取得する。 Next, the microcomputer 11 (CPU111) uses a predetermined cryptographic hash function to digest a message from the encryption program code (PART1) 301E and the program code (PART2) 302 (that is, the partial encryption program code 300H). Hash value) 310S is acquired.

次に、マイコン11(CPU111)は、暗号化プログラムコード(PART1)301Eと、メッセージダイジェスト310Sと、デジタル署名311と、をセキュアエレメント2に受け渡す。 Next, the microcomputer 11 (CPU111) passes the encryption program code (PART1) 301E, the message digest 310S, and the digital signature 311 to the secure element 2.

セキュアエレメント2(制御部21)は、暗号化プログラムコード(PART1)301Eと、メッセージダイジェスト310Sと、デジタル署名311と、を受け取ると、デジタル署名311を鍵2(公開鍵)(不揮発性メモリ23に記憶されている鍵2)で復号し、メッセージダイジェスト310を取得する。 When the secure element 2 (control unit 21) receives the encryption program code (PART1) 301E, the message digest 310S, and the digital signature 311, the secure element 2 (control unit 21) transfers the digital signature 311 to the key 2 (public key) (nonvolatile memory 23). Decrypt with the stored key 2) and acquire the message digest 310.

次に、セキュアエレメント2(制御部21)は、メッセージダイジェスト310Sとメッセージダイジェスト310を比較検証する。セキュアエレメント2(制御部21)は、メッセージダイジェスト310Sとメッセージダイジェスト310が一致した場合には検証成功と判定し、一致しなかった場合には検証失敗と判定する。 Next, the secure element 2 (control unit 21) compares and verifies the message digest 310S and the message digest 310. The secure element 2 (control unit 21) determines that the verification is successful when the message digest 310S and the message digest 310 match, and determines that the verification fails if they do not match.

セキュアエレメント2(制御部21)は、検証成功と判定した場合には、暗号化プログラムコード(PART1)301Eを鍵3(共通鍵)(不揮発性メモリ23に記憶されている鍵3)で復号し、プログラムコード(PART1)301を取得する。 When the secure element 2 (control unit 21) determines that the verification is successful, the secure element 2 (control unit 21) decrypts the encryption program code (PART1) 301E with the key 3 (common key) (key 3 stored in the non-volatile memory 23). , Acquire the program code (PART1) 301.

次に、セキュアエレメント2(制御部21)は、プログラムコード(PART1)301をマイコン11に受け渡す。 Next, the secure element 2 (control unit 21) passes the program code (PART1) 301 to the microcomputer 11.

マイコン11(CPU111)は、プログラムコード(PART1)301をセキュアエレメント2から受け取ると、プログラムコード(PART1)301とプログラムコード(PART2)302を合体させたプログラムコード300を不揮発性メモリ115にインストールする(記憶させる)。 When the microcomputer 11 (CPU111) receives the program code (PART1) 301 from the secure element 2, the microcomputer 11 (CPU111) installs the program code 300, which is a combination of the program code (PART1) 301 and the program code (PART2) 302, in the non-volatile memory 115 ( Remember).

[1.3.3.サーバSによる暗号化処理]
まず、図5のフローチャートを用いて、サーバSの制御部31による暗号化処理について説明する。
[1.3.3. Encryption process by server S]
First, the encryption process by the control unit 31 of the server S will be described with reference to the flowchart of FIG.

サーバSの制御部31は、プログラムコード300をプログラムコード(PART1)301とプログラムコード(PART2)302に分割する(ステップS101)。 The control unit 31 of the server S divides the program code 300 into the program code (PART1) 301 and the program code (PART2) 302 (step S101).

次に、制御部31は、プログラムコード(PART1)301を鍵1(共通鍵)で暗号化し、暗号化プログラムコード(PART1)301Eを取得する(ステップS102)。 Next, the control unit 31 encrypts the program code (PART1) 301 with the key 1 (common key) and acquires the encrypted program code (PART1) 301E (step S102).

次に、制御部31は、暗号化プログラムコード(PART1)301Eとプログラムコード(PART2)302からなる一部暗号化プログラムコード300Hから所定の暗号的ハッシュ関数を用いてメッセージダイジェスト310を算出する(ステップS103)。 Next, the control unit 31 calculates the message digest 310 from the partially encrypted program code 300H composed of the encryption program code (PART1) 301E and the program code (PART2) 302 by using a predetermined cryptographic hash function (step). S103).

次に、制御部31は、鍵2(秘密鍵)を用いて、ステップS103の処理で算出したメッセージダイジェスト310を暗号化することによりデジタル署名311を生成する(ステップS104)。 Next, the control unit 31 generates a digital signature 311 by encrypting the message digest 310 calculated in the process of step S103 using the key 2 (private key) (step S104).

次に、制御部31は、プログラムコード(PART2)302を鍵3(共通鍵)で暗号化し、暗号化プログラムコード(PART2)302Eを取得する(ステップS105)。 Next, the control unit 31 encrypts the program code (PART2) 302 with the key 3 (common key) and acquires the encrypted program code (PART2) 302E (step S105).

次に、制御部31は、ステップS102の処理で取得した暗号化プログラムコード(PART1)301EとステップS105の処理で取得した暗号化プログラムコード(PART2)302Eからなる暗号化プログラムコード300Eと、ステップS104の処理で生成したデジタル署名311と、をIoT端末1に送信し(ステップS106)、暗号化処理を終了する。 Next, the control unit 31 includes an encryption program code 300E composed of an encryption program code (PART1) 301E acquired in the process of step S102 and an encryption program code (PART2) 302E acquired in the process of step S105, and step S104. The digital signature 311 generated in the above process is transmitted to the IoT terminal 1 (step S106), and the encryption process is completed.

[1.3.4.IoT端末1によるインストール処理]
まず、図6のフローチャートを用いて、IoT端末1のマイコン11とセキュアエレメント2によるインストール処理について説明する。
[13.4. Installation process by IoT terminal 1]
First, the installation process by the microcomputer 11 and the secure element 2 of the IoT terminal 1 will be described with reference to the flowchart of FIG.

マイコン11(CPU111)は、サーバSから暗号化プログラムコード300Eとデジタル署名311と、を受信すると(ステップS201)、セキュアエレメント2にその旨を通知する。これに対してセキュアエレメント2(CPU21)は、不揮発性メモリ23に記憶されている鍵3(共通鍵)をマイコン11に送信する(ステップS301)。 When the microcomputer 11 (CPU 111) receives the encryption program code 300E and the digital signature 311 from the server S (step S201), the microcomputer 11 (CPU 111) notifies the secure element 2 to that effect. On the other hand, the secure element 2 (CPU 21) transmits the key 3 (common key) stored in the non-volatile memory 23 to the microcomputer 11 (step S301).

マイコン11(CPU111)は、セキュアエレメント2から鍵3(共通鍵)を受信すると(ステップS202)、暗号化プログラムコード300Eにおける暗号化プログラムコード(PART2)302Eを鍵3で復号し、プログラムコード(PART2)302を取得する。そして、暗号化プログラムコード300Eにおける暗号化プログラムコード(PART1)301Eとプログラムコード(PART2)302からなる一部暗号化プログラムコード300Hを取得する(ステップS203)。 When the microcomputer 11 (CPU111) receives the key 3 (common key) from the secure element 2 (step S202), the microcomputer 11 (CPU111) decrypts the encryption program code (PART2) 302E in the encryption program code 300E with the key 3, and the program code (PART2). ) Acquire 302. Then, the partial encryption program code 300H including the encryption program code (PART1) 301E and the program code (PART2) 302 in the encryption program code 300E is acquired (step S203).

次に、マイコン11(CPU111)は、ステップS203の処理で取得した一部暗号化プログラムコード300Hから、所定の暗号的ハッシュ関数(図5のステップS103の処理でサーバSの制御部31が用いたのと同じ関数)を用いてメッセージダイジェスト310Sを算出する(ステップS204)。 Next, the microcomputer 11 (CPU111) uses a predetermined cryptographic hash function (used by the control unit 31 of the server S in the process of step S103 in FIG. 5) from the partial encryption program code 300H acquired in the process of step S203. The message digest 310S is calculated using the same function as in (step S204).

次に、マイコン11(CPU111)は、暗号化プログラムコード300Eにおける暗号化プログラムコード(PART1)301Eと、ステップS204の処理で算出したメッセージダイジェスト310Sと、サーバSから受信したデジタル署名311と、をセキュアエレメント2に送信する(ステップS205)。 Next, the microcomputer 11 (CPU111) secures the encryption program code (PART1) 301E in the encryption program code 300E, the message digest 310S calculated in the process of step S204, and the digital signature 311 received from the server S. It is transmitted to the element 2 (step S205).

セキュアエレメント2(CPU21)は、マイコン11から暗号化プログラムコード(PART1)301Eと、メッセージダイジェスト310Sと、デジタル署名311と、を受信すると(ステップS302)、次いで、鍵2(公開鍵)を用いてデジタル署名311を復号することにより、デジタル署名311からメッセージダイジェスト310を抽出する(ステップS303)。 When the secure element 2 (CPU 21) receives the encryption program code (PART1) 301E, the message digest 310S, and the digital signature 311 from the microcomputer 11 (step S302), then the key 2 (public key) is used. The message digest 310 is extracted from the digital signature 311 by decrypting the digital signature 311 (step S303).

セキュアエレメント2(CPU21)は、ステップS302の処理で受信したメッセージダイジェスト310Sと、ステップS303の処理で抽出したメッセージダイジェスト310とを比較する(ステップS304)。セキュアエレメント2(CPU21)は、比較の結果、一致しないと判定した場合には(ステップS305:NO)、インストール処理を終了する。なお、セキュアエレメント2(CPU21)は、エラー処理を行ってからインストール処理を終了することとしてもよい。例えば、署名検証に失敗したことを示すエラー通知をマイコン11に送信することとしてもよい。マイコン11は、エラー通知をIoT端末1から受信した場合には、インストール処理を終了することとし、更に、インストール処理に失敗したことをサーバSに通知することとしてもよい。 The secure element 2 (CPU 21) compares the message digest 310S received in the process of step S302 with the message digest 310 extracted in the process of step S303 (step S304). If it is determined as a result of comparison that the secure element 2 (CPU 21) does not match (step S305: NO), the secure element 2 (CPU 21) ends the installation process. The secure element 2 (CPU 21) may terminate the installation process after performing error processing. For example, an error notification indicating that the signature verification has failed may be transmitted to the microcomputer 11. When the microcomputer 11 receives the error notification from the IoT terminal 1, the installation process may be terminated, and the server S may be notified that the installation process has failed.

一方、セキュアエレメント2(CPU21)は、メッセージダイジェストの比較の結果、一致したと判定した場合には(ステップS305:YES)、メッセージダイジェスト310(メッセージダイジェスト310S)を、不揮発性メモリ23に保存する(ステップS306)。不揮発性メモリ23に保存するのは、後述するプログラムコードの初回実行時に利用するためである。 On the other hand, when the secure element 2 (CPU 21) determines that they match as a result of comparing the message digests (step S305: YES), the secure element 2 (CPU 21) stores the message digest 310 (message digest 310S) in the non-volatile memory 23 (step S305: YES). Step S306). The reason for storing in the non-volatile memory 23 is to use it at the first execution of the program code described later.

次に、セキュアエレメント2(CPU21)は、ステップS302の処理で受信した暗号化プログラムコード(PART1)301Eを鍵1(共通鍵)で復号し、プログラムコード(PART1)301を取得する(ステップS307)。 Next, the secure element 2 (CPU21) decrypts the encryption program code (PART1) 301E received in the process of step S302 with the key 1 (common key), and acquires the program code (PART1) 301 (step S307). ..

次に、セキュアエレメント2(CPU21)は、ステップS307の処理で取得したプログラムコード(PART1)301をマイコン11に送信し(ステップS308)、インストール処理を終了する。 Next, the secure element 2 (CPU 21) transmits the program code (PART1) 301 acquired in the process of step S307 to the microcomputer 11 (step S308), and ends the installation process.

マイコン11(CPU111)は、セキュアエレメント2からプログラムコード(PART1)301を受信すると(ステップS206)、プログラムコード(PART1)301と、ステップS203の処理で取得したプログラムコード(PART2)302からなるプログラムコード300を不揮発性メモリ115に記憶させ(ステップS207)、インストール処理を終了する。 When the microcomputer 11 (CPU111) receives the program code (PART1) 301 from the secure element 2 (step S206), the microcomputer 11 (CPU111) is a program code composed of the program code (PART1) 301 and the program code (PART2) 302 acquired in the process of step S203. The 300 is stored in the non-volatile memory 115 (step S207), and the installation process is completed.

[1.3.5.IoT端末1によるプログラムコード初回実行時処理]
次に、図7のフローチャートを用いて、IoT端末1のプログラムコード初回実行時処理について説明する。なお、マイコン11によるプログラムコードの初回実行は、一般的に、インストール処理が完了した直後に行われる。
[1.3.5. Program code first run-time processing by IoT terminal 1]
Next, the process at the time of initial execution of the program code of the IoT terminal 1 will be described with reference to the flowchart of FIG. 7. The first execution of the program code by the microcomputer 11 is generally performed immediately after the installation process is completed.

まず、マイコン11(CPU111)は、不揮発性メモリ115に記憶させたプログラムコード300を初めて実行する前に、プログラムコード300をセキュアエレメント2に送信する(ステップS231)。 First, the microcomputer 11 (CPU 111) transmits the program code 300 to the secure element 2 before executing the program code 300 stored in the non-volatile memory 115 for the first time (step S231).

セキュアエレメント2(CPU21)は、プログラムコード300を受信すると(ステップS331)、プログラムコード300におけるプログラムコード(PART1)301を鍵1(共通鍵)で暗号化し、暗号化プログラムコード(PART1)301Eを取得する(ステップS332)。 When the secure element 2 (CPU 21) receives the program code 300 (step S331), the secure element 2 (CPU 21) encrypts the program code (PART1) 301 in the program code 300 with the key 1 (common key) and acquires the encrypted program code (PART1) 301E. (Step S332).

次に、セキュアエレメント2(CPU21)は、暗号化プログラムコード(PART1)301Eと、プログラムコード300におけるプログラムコード(PART2)302とからなる一部暗号化プログラムコード300Hから所定の暗号的ハッシュ関数(図6のステップS303の処理で用いた関数と同じ関数)によりメッセージダイジェストを算出する(ステップS333)。 Next, the secure element 2 (CPU 21) has a predetermined cryptographic hash function (FIG.) from the partially encrypted program code 300H composed of the encryption program code (PART1) 301E and the program code (PART2) 302 in the program code 300. The message digest is calculated by the same function as the function used in the process of step S303 in step 6 (step S333).

次に、セキュアエレメント2(CPU21)は、図6のステップS306の処理で保存したメッセージダイジェストと、ステップS333の処理で算出したメッセージダイジェストを比較する(ステップS334)。セキュアエレメント2(CPU21)は、比較の結果、一致しないと判定した場合には(ステップS335:NO)、プログラムコード初回実行時処理を終了する。なお、セキュアエレメント2(CPU21)は、エラー処理を行ってからプログラムコード初回実行時処理を終了することとしてもよい。例えば、メッセージダイジェストの検証に失敗したことを示すエラー通知をマイコン11に送信することとしてもよい。マイコン11は、エラー通知をIoT端末1から受信した場合には、プログラムコード初回実行時処理を終了することとする。 Next, the secure element 2 (CPU 21) compares the message digest saved in the process of step S306 of FIG. 6 with the message digest calculated in the process of step S333 (step S334). If it is determined as a result of the comparison that the secure element 2 (CPU 21) does not match (step S335: NO), the secure element 2 (CPU 21) ends the program code initial execution time processing. The secure element 2 (CPU 21) may end the program code initial execution processing after performing error processing. For example, an error notification indicating that the verification of the message digest has failed may be transmitted to the microcomputer 11. When the microcomputer 11 receives the error notification from the IoT terminal 1, the microcomputer 11 ends the processing at the time of initial execution of the program code.

一方、セキュアエレメント2(CPU21)は、メッセージダイジェストの比較の結果、一致したと判定した場合には(ステップS335:YES)、プログラムコード300からチェックコードを算出する(ステップS336)。チェックコードの算出方法は任意であるが、上述した所定の暗号的ハッシュ関数や他の暗号的ハッシュ関数を用いることとしてもよい。 On the other hand, the secure element 2 (CPU 21) calculates a check code from the program code 300 (step S336) when it is determined that they match as a result of comparing the message digests (step S335: YES). The method for calculating the check code is arbitrary, but the predetermined cryptographic hash function described above or another cryptographic hash function may be used.

次に、セキュアエレメント2(CPU21)は、S336の処理で算出したチェックコードを不揮発性メモリ23に保存する(ステップS337)。不揮発性メモリ23に保存するのは、後述するプログラムコードの2回目以降実行時に利用するためである。 Next, the secure element 2 (CPU 21) stores the check code calculated in the process of S336 in the non-volatile memory 23 (step S337). The reason why the non-volatile memory 23 is stored is that the program code described later is used for the second and subsequent executions.

次に、セキュアエレメント2(CPU21)は、図6のステップS306の処理で保存したメッセージダイジェストを無効化し(ステップS338)、メッセージダイジェストの検証が成功した旨の通知をマイコン11に送信し(ステップS339)、プログラムコード初回実行時処理を終了する。 Next, the secure element 2 (CPU 21) invalidates the message digest saved in the process of step S306 of FIG. 6 (step S338), and transmits a notification to the microcomputer 11 that the verification of the message digest is successful (step S339). ), Ends the processing at the first execution of the program code.

マイコン11(CPU111)は、セキュアエレメント2から検証が成功した旨の通知を受信すると(ステップS232)、不揮発性メモリ115に記憶されているプログラムコード300を実行し(ステップS233)、プログラムコード初回実行時処理を終了する。 When the microcomputer 11 (CPU 111) receives the notification from the secure element 2 that the verification is successful (step S232), the microcomputer 11 (CPU 111) executes the program code 300 stored in the non-volatile memory 115 (step S233), and executes the program code for the first time. Ends time processing.

[1.3.6.IoT端末1によるプログラムコード2回目以降実行時処理]
次に、図8のフローチャートを用いて、IoT端末1のプログラムコード2回目以降実行時処理について説明する。
[13.6. Program code by IoT terminal 1 Second and subsequent run-time processing]
Next, the run-time processing of the IoT terminal 1 from the second time onward will be described with reference to the flowchart of FIG.

まず、マイコン11(CPU111)は、不揮発性メモリ115に記憶させたプログラムコード300について2回目以降の実行をする前に、プログラムコード300からチェックコードを算出する(ステップS251)。チェックコードの算出には、図7のステップS336の処理でセキュアエレメント2が用いた算出方法と同一の算出方法を用いることとする。 First, the microcomputer 11 (CPU 111) calculates a check code from the program code 300 before executing the program code 300 stored in the non-volatile memory 115 for the second and subsequent times (step S251). For the calculation of the check code, the same calculation method as that used by the secure element 2 in the process of step S336 of FIG. 7 is used.

次に、マイコン11(CPU111)は、ステップS251の処理で算出したチェックコードをセキュアエレメント2に送信する(ステップS252)。 Next, the microcomputer 11 (CPU111) transmits the check code calculated in the process of step S251 to the secure element 2 (step S252).

セキュアエレメント2(CPU21)は、マイコン11からチェックコードを受信すると(ステップS351)、図7のステップS337の処理で保存したチェックコードと比較する(ステップS352)。セキュアエレメント2(CPU21)は、比較の結果、一致しないと判定した場合には(ステップS353:NO)、プログラムコード2回目以降実行時処理を終了する。なお、セキュアエレメント2(CPU21)は、エラー処理を行ってからプログラムコード2回目以降実行時処理を終了することとしてもよい。例えば、チェックコードの検証に失敗したことを示すエラー通知をマイコン11に送信することとしてもよい。マイコン11は、エラー通知をIoT端末1から受信した場合には、プログラムコード2回目以降実行時処理を終了することとする。 When the secure element 2 (CPU 21) receives the check code from the microcomputer 11 (step S351), the secure element 2 (CPU 21) compares it with the check code saved in the process of step S337 of FIG. 7 (step S352). If it is determined as a result of the comparison that the secure element 2 (CPU 21) does not match (step S353: NO), the secure element 2 (CPU 21) ends the run-time processing from the second time onward of the program code. The secure element 2 (CPU 21) may terminate the run-time processing from the second time onward of the program code after performing the error processing. For example, an error notification indicating that the check code verification has failed may be transmitted to the microcomputer 11. When the microcomputer 11 receives the error notification from the IoT terminal 1, the microcomputer 11 ends the run-time processing from the second time onward of the program code.

一方、セキュアエレメント2(CPU21)は、チェックコードの比較の結果、一致したと判定した場合には(ステップS353:YES)、チェックコードの検証が成功した旨の通知をマイコン11に送信し(ステップS354)、プログラムコード2回目以降実行時処理を終了する。 On the other hand, when the secure element 2 (CPU 21) determines that they match as a result of the check code comparison (step S353: YES), the secure element 2 (CPU 21) transmits a notification to the microcomputer 11 that the check code verification is successful (step S353: YES). S354), the run-time processing is terminated after the second time of the program code.

マイコン11(CPU111)は、セキュアエレメント2から検証が成功した旨の通知を受信すると(ステップS253)、不揮発性メモリ115に記憶されているプログラムコード300を実行し(ステップS254)、プログラムコード2回目以降実行時処理を終了する。 When the microcomputer 11 (CPU 111) receives the notification from the secure element 2 that the verification is successful (step S253), the microcomputer 11 (CPU 111) executes the program code 300 stored in the non-volatile memory 115 (step S254), and the program code is second. After that, the run-time processing ends.

なお、鍵1、鍵2、鍵3はセッションキー(一定時間有効な鍵)であると説明したが、少なくとも図6のステップS102の処理から図7のステップS332の処理が完了するまでの間は有効であることとする。 Although it has been explained that the key 1, the key 2, and the key 3 are session keys (keys valid for a certain period of time), at least from the process of step S102 in FIG. 6 to the completion of the process in step S332 of FIG. It shall be valid.

[2.第2実施形態]
次に、図面を参照して本発明の第2実施形態について説明する。第2実施形態は、第1実施形態とプログラムコードの暗号化及び復号の方法が相違する。なお、第2実施形態は、第1実施形態と共通する部分が多いのでその差異点を中心に説明し、共通する部材や処理については説明を省略する。
[2. Second Embodiment]
Next, a second embodiment of the present invention will be described with reference to the drawings. The second embodiment differs from the first embodiment in the method of encrypting and decrypting the program code. Since the second embodiment has many parts in common with the first embodiment, the differences thereof will be mainly described, and the common members and treatments will be omitted.

[2.1.IoT端末1及びサーバ装置Sの構成]
第2実施形態におけるIoT端末1及びサーバ装置Sの構成は、第1実施形態と同様であるので説明を省略する。
[2.1. Configuration of IoT terminal 1 and server device S]
Since the configurations of the IoT terminal 1 and the server device S in the second embodiment are the same as those in the first embodiment, the description thereof will be omitted.

[2.2.プログラムコードのインストールからインストール後の処理]
[2.2.1.サーバSによる暗号化]
図9を用いて、第2実施形態におけるサーバSの制御部31がIoT端末1にインストールさせるプログラムコードを暗号化する流れについて説明する。
[2.2. Program code installation to post-installation processing]
[2.2.1. Encryption by server S]
A flow in which the control unit 31 of the server S in the second embodiment encrypts the program code to be installed in the IoT terminal 1 will be described with reference to FIG.

まず、制御部31が、プログラムコード300から一部暗号化プログラムコード300Hとデジタル署名311を生成するまでの流れは第1実施形態と同様である。 First, the flow from the program code 300 to the generation of the partially encrypted program code 300H and the digital signature 311 by the control unit 31 is the same as that in the first embodiment.

第2実施形態では、一部暗号化プログラムコード300Hを鍵3(共通鍵)で暗号化し、暗号化プログラムコード320Eを生成する。 In the second embodiment, the partial encryption program code 300H is encrypted with the key 3 (common key) to generate the encryption program code 320E.

なお、後述するように、暗号化プログラムコード320Eは、IoT端末1におけるマイコン11により復号され、暗号化プログラムコード(PART1)301Eは、IoT端末1におけるセキュアエレメント2により復号される。第1実施形態と同様に、プログラムコード300における重要な部分はマイコン11より耐タンパ性が高いセキュアエレメント2に復号させることが好ましい。そこで、プログラムコード300を分割する際には、当該重要な部分がプログラムコード(PART1)301に含まれるように分割することとする。プログラムコード300における重要な部分とは、例えば、プログラムコードにおける先頭の実行アドレスを特定するためのアドレス情報が記述されている部分である。一般的にアドレス情報は、プログラムコードの先頭部分に記述されているため、当該部分がプログラムコード(PART1)301に含まれるようにプログラムコード300を分割するのが好ましい。 As will be described later, the encryption program code 320E is decrypted by the microcomputer 11 in the IoT terminal 1, and the encryption program code (PART1) 301E is decrypted by the secure element 2 in the IoT terminal 1. Similar to the first embodiment, it is preferable that the important part in the program code 300 is decoded by the secure element 2 having higher tamper resistance than the microcomputer 11. Therefore, when the program code 300 is divided, the important portion is divided so as to be included in the program code (PART1) 301. The important part in the program code 300 is, for example, a part in which the address information for specifying the first execution address in the program code is described. Since the address information is generally described at the beginning of the program code, it is preferable to divide the program code 300 so that the portion is included in the program code (PART1) 301.

[2.2.2.IoT機器1によるプログラムコードのインストール]
次に、図10を用いて、第2実施形態におけるIoT機器1がサーバSから暗号化プログラムコード320Eをダウンロードし、復号したプログラムコード300をマイコン11の不揮発性メモリ115にインストールする(記憶させる)までの流れについて説明する。
[2.2.2. Installation of program code by IoT device 1]
Next, using FIG. 10, the IoT device 1 in the second embodiment downloads the encryption program code 320E from the server S, and installs (stores) the decrypted program code 300 in the non-volatile memory 115 of the microcomputer 11. The flow up to is explained.

IoT機器1のマイコン11(CPU111)は、サーバSから暗号化プログラムコード320Eとデジタル署名311を受信すると、暗号化プログラムコード320Eを鍵3(共通鍵)で復号し、暗号化プログラムコード(PART1)301Eとプログラムコード(PART2)302からなる一部暗号化プログラムコード300Hを取得する。 When the microcomputer 11 (CPU111) of the IoT device 1 receives the encryption program code 320E and the digital signature 311 from the server S, the microcomputer 11 (CPU111) decrypts the encryption program code 320E with the key 3 (common key), and the encryption program code (PART1). Acquires a partially encrypted program code 300H composed of 301E and program code (PART2) 302.

次に、マイコン11(CPU111)は、一部暗号化プログラムコード300Hから、所定の暗号的ハッシュ関数を用いてメッセージダイジェスト(ハッシュ値)310Sを取得する。 Next, the microcomputer 11 (CPU111) acquires a message digest (hash value) 310S from the partial encryption program code 300H by using a predetermined cryptographic hash function.

以降、マイコン11(CPU111)が、暗号化プログラムコード(PART1)301Eと、メッセージダイジェスト310Sと、デジタル署名311と、をセキュアエレメント2に受け渡し、セキュアエレメント2(CPU21)がデジタル署名311を検証し、暗号化プログラムコード(PART1)301Eを復号して取得したプログラムコード(PART1)301をマイコン11に差し戻し、マイコン11(CPU111)が、プログラムコード(PART1)301とプログラムコード(PART2)302とからなるプログラムコード300を不揮発性メモリ115にインストールする(記憶させる)までの流れは第1実施形態と同様であるので説明を省略する。 After that, the microcomputer 11 (CPU111) passes the encryption program code (PART1) 301E, the message digest 310S, and the digital signature 311 to the secure element 2, and the secure element 2 (CPU21) verifies the digital signature 311. The program code (PART1) 301 obtained by decrypting the encryption program code (PART1) 301E is returned to the microcomputer 11, and the microcomputer 11 (CPU111) is a program composed of the program code (PART1) 301 and the program code (PART2) 302. Since the flow until the code 300 is installed (stored) in the non-volatile memory 115 is the same as that in the first embodiment, the description thereof will be omitted.

[2.2.3.サーバSによる暗号化処理]
次に、図11のフローチャートを用いて、第2実施形態におけるサーバSの制御部31による暗号化処理について説明する。
[2.22.3. Encryption process by server S]
Next, the encryption process by the control unit 31 of the server S in the second embodiment will be described with reference to the flowchart of FIG.

サーバSの制御部31によるステップS101からステップS104の処理は第1実施形態と同様であるので説明を省略する。 Since the processing of steps S101 to S104 by the control unit 31 of the server S is the same as that of the first embodiment, the description thereof will be omitted.

制御部31は、ステップS104の処理を終えると、次いで、一部暗号化プログラムコード300Hを鍵3(共通鍵)で暗号化し、暗号化プログラムコード320Eを取得する(ステップS105A)。 When the control unit 31 finishes the process of step S104, the control unit 31 then encrypts the partial encryption program code 300H with the key 3 (common key) and acquires the encryption program code 320E (step S105A).

次に、制御部31は、ステップS105Aの処理で取得した暗号化プログラムコード320Eと、ステップS104の処理で生成したデジタル署名311と、をIoT端末1に送信し(ステップS106)、暗号化処理を終了する。 Next, the control unit 31 transmits the encryption program code 320E acquired in the process of step S105A and the digital signature 311 generated in the process of step S104 to the IoT terminal 1 (step S106), and performs the encryption process. finish.

[2.2.4.IoT端末1によるインストール処理]
次に、図12のフローチャートを用いて、第2実施形態におけるIoT端末1のマイコン11とセキュアエレメント2によるインストール処理について説明する。
[2.2.4. Installation process by IoT terminal 1]
Next, the installation process by the microcomputer 11 and the secure element 2 of the IoT terminal 1 in the second embodiment will be described with reference to the flowchart of FIG.

マイコン11(CPU111)によるステップS201からステップS202の処理と、セキュアエレメント2(CPU21)によるステップS301の処理は第1実施形態と同様であるので説明を省略する。 Since the processing of steps S201 to S202 by the microcomputer 11 (CPU111) and the processing of step S301 by the secure element 2 (CPU21) are the same as those in the first embodiment, the description thereof will be omitted.

マイコン11(CPU111)は、ステップS202の処理を終えると、次いで、ステップS201の処理で受信した暗号化プログラムコード320Eを鍵3(共通鍵)で復号し、一部暗号化プログラムコード300Hを取得する(ステップS203A)。 After the processing of step S202 is completed, the microcomputer 11 (CPU111) decrypts the encryption program code 320E received in the processing of step S201 with the key 3 (common key), and acquires a partial encryption program code 300H. (Step S203A).

以降、マイコン11(CPU111)によるステップS204からステップS207の処理と、セキュアエレメント2(CPU21)によるステップS302からステップS308の処理は第1実施形態と同様であるので説明を省略する。 Hereinafter, the processing of steps S204 to S207 by the microcomputer 11 (CPU111) and the processing of steps S302 to S308 by the secure element 2 (CPU21) are the same as those in the first embodiment, and thus the description thereof will be omitted.

[2.2.5.IoT端末1によるプログラムコード実行時処理]
第2実施形態におけるIoT端末1によるプログラムコード初回実行時処理及びIoT端末1によるプログラムコード2回目以降実行時処理は、第1実施形態と同様であるので説明を省略する。
[2.2.5. Program code run-time processing by IoT terminal 1]
Since the first execution processing of the program code by the IoT terminal 1 and the second and subsequent execution processing of the program code by the IoT terminal 1 in the second embodiment are the same as those in the first embodiment, the description thereof will be omitted.

以上説明したように、第1実施形態及び第2実施形態のIoT端末1は、マイコン11(「第1機器」の一例)と、マイコン11よりも耐タンパ性が高いセキュアエレメント2(「第2機器」の一例)とを含み、マイコン11のCPU111(「受信手段」、「第1復号手段」の一例)が、プログラムコード300(「所定のデータ」の一例)に対して、鍵3(共通鍵)(「第1暗号鍵」の一例)を用いる暗号化処理(「第1暗号化処理」の一例)と、鍵1(共通鍵)(「第2暗号鍵」の一例)を用いる暗号化処理(「第2暗号化処理」の一例)と、を行うことにより得られた暗号化プログラムコード300E(「暗号化データ」の一例)をサーバS(「外部装置」の一例)から受信し、受信した暗号化プログラムコード300Eにおける鍵3(共通鍵)を用いた暗号化処理により暗号化されたデータに対して、鍵3(共通鍵)(「第1復号鍵」の一例)を用いた復号処理(「第1復号処理」の一例)を行い、セキュアエレメント2のCPU21(「第2復号手段」の一例)は、受信した暗号化プログラムコード300Eにおける鍵1(共通鍵)を用いた暗号化処理により暗号化されたデータに対して、鍵1(共通鍵)(「第2復号鍵」の一例)を用いた復号処理(「第2復号処理」の一例)を行う。 As described above, the IoT terminal 1 of the first embodiment and the second embodiment includes the microcomputer 11 (an example of the "first device") and the secure element 2 ("second") having higher tamper resistance than the microcomputer 11. The CPU 111 (an example of the "receiving means" and the "first decoding means") of the microcomputer 11 includes the key 3 (common) with respect to the program code 300 (an example of the "predetermined data") including the "equipment"). An encryption process using a key) (an example of a "first encryption key") (an example of a "first encryption process") and an encryption using a key 1 (common key) (an example of a "second encryption key") The processing (an example of the "second encryption processing") and the encryption program code 300E (an example of the "encrypted data") obtained by performing the processing are received from the server S (an example of the "external device"). Decryption using key 3 (common key) (an example of "first decryption key") for data encrypted by encryption processing using key 3 (common key) in the received encryption program code 300E. The process (an example of the "first decryption process") is performed, and the CPU 21 of the secure element 2 (an example of the "second decryption means") is encrypted using the key 1 (common key) in the received encryption program code 300E. A decryption process (an example of the "second decryption process") using the key 1 (common key) (an example of the "second decryption key") is performed on the data encrypted by the process.

したがって、第1実施形態及び第2実施形態のIoT端末1によれば、暗号化プログラムコード300Eをサーバ装置Sから受信した場合に、マイコン11が暗号化プログラムコード300Eにおける鍵3(共通鍵)を用いた暗号化処理により暗号化されたデータに対して、鍵3(共通鍵)を用いた復号処理を行い、セキュアエレメント2が暗号化プログラムコード300Eにおける鍵1(共通鍵)を用いた暗号化処理により暗号化されたデータに対して鍵1(共通鍵)を用いた復号処理を行う。すなわち、信頼できる発信元以外の発信元から入手したデータは適切に復号できないため、マイコン11は暗号化プログラムコード300Eから正常に復号できたデータのみを記憶することにより、記憶するデータを信頼できる発信元から入手したものに制限することができる。 Therefore, according to the IoT terminal 1 of the first embodiment and the second embodiment, when the encryption program code 300E is received from the server device S, the microcomputer 11 uses the key 3 (common key) in the encryption program code 300E. The data encrypted by the encryption process used is decrypted using the key 3 (common key), and the secure element 2 is encrypted using the key 1 (common key) in the encryption program code 300E. Decryption processing using key 1 (common key) is performed on the data encrypted by the processing. That is, since data obtained from a source other than a reliable source cannot be properly decrypted, the microcomputer 11 stores only the data that can be normally decrypted from the encryption program code 300E, so that the stored data can be transmitted reliably. You can limit it to what you originally obtained.

また、第1実施形態及び第2実施形態におけるIoT端末1において、マイコン11の不揮発性メモリ115(「データ記憶手段」の一例)は、鍵3(共通鍵)を用いた復号処理及び鍵1(共通鍵)を用いた復号処理により得られたプログラムコード300を記憶する。これにより、マイコン11は暗号化プログラムコード300E(暗号化プログラムコード320E)から正常に復号できたデータ、すなわち、信頼できる発信元から入手したデータのみを記憶することができる。 Further, in the IoT terminal 1 according to the first embodiment and the second embodiment, the non-volatile memory 115 (an example of the "data storage means") of the microcomputer 11 is subjected to a decryption process using the key 3 (common key) and the key 1 (an example of the "data storage means"). The program code 300 obtained by the decryption process using the common key) is stored. As a result, the microcomputer 11 can store only the data that can be normally decrypted from the encryption program code 300E (encryption program code 320E), that is, the data obtained from a reliable source.

更に、第1実施形態におけるIoT端末1において、暗号化プログラムコード300Eは、プログラムコード300におけるプログラムコード(PART1)301(「第1の部分」の一例)に対して鍵1(共通鍵)を用いた暗号化処理を行って得られた暗号化プログラムコード(PART1)301Eと、プログラムコード300におけるプログラムコード(PART2)302(「第2の部分」の一例)に対して鍵3(共通鍵)を用いた暗号化処理を行って得られた暗号化プログラムコード(PART2)302Eと、で構成され、マイコン11のCPU111は、暗号化プログラムコード300Eにおける暗号化プログラムコード(PART2)302Eに対して鍵3(共通鍵)を用いた復号処理を行い、セキュアエレメント2のCPU21は、暗号化プログラムコード300Eにおける暗号化プログラムコード(PART1)301Eに対して鍵1(共通鍵)を用いた復号処理を行い、マイコン11の不揮発性メモリ115は、鍵1(共通鍵)を用いた復号処理により得られたプログラムコード(PART1)301と、鍵3(共通鍵)を用いた復号処理により得られたプログラムコード(PART2)302とからなるプログラムコード300を記憶する。これにより、マイコン11の不揮発性メモリ115は、マイコン11で復号されたプログラムコード(PART1)301と、セキュアエレメント2で復号されたプログラムコード(PART2)302とからなるプログラムコード300(すなわち、信頼できる発信元から入手したデータ)を記憶することができる。 Further, in the IoT terminal 1 of the first embodiment, the encryption program code 300E uses the key 1 (common key) for the program code (PART1) 301 (an example of the "first part") in the program code 300. Key 3 (common key) is applied to the encryption program code (PART1) 301E obtained by performing the encryption processing and the program code (PART2) 302 (an example of the "second part") in the program code 300. It is composed of the encryption program code (PART2) 302E obtained by performing the encryption process used, and the CPU 111 of the microcomputer 11 is the key 3 with respect to the encryption program code (PART2) 302E in the encryption program code 300E. The decryption process using the (common key) is performed, and the CPU 21 of the secure element 2 performs the decryption process using the key 1 (common key) for the encryption program code (PART1) 301E in the encryption program code 300E. The non-volatile memory 115 of the microcomputer 11 has a program code (PART1) 301 obtained by a decoding process using the key 1 (common key) and a program code (PART1) 301 obtained by the decoding process using the key 3 (common key). Stores the program code 300 including PART2) 302. As a result, the non-volatile memory 115 of the microcomputer 11 has a program code 300 (that is, reliable) composed of the program code (PART1) 301 decoded by the microcomputer 11 and the program code (PART2) 302 decoded by the secure element 2. Data obtained from the source) can be stored.

更にまた、第1実施形態におけるIoT端末1のマイコン11のCPU111は、暗号化プログラムコード(PART1)301Eとプログラムコード(PART2)302とで構成される一部暗号化プログラムコード300H(「一部暗号化データ」の一例)に対する所定の暗号的ハッシュ関数を用いた処理(「第1生成処理」の一例)により生成されたメッセージダイジェスト310と、秘密鍵2と、を用いて生成されたデジタル署名311をサーバSから更に受信し、セキュアエレメント2のCPU21(「取得手段」、「第1比較手段」の一例)は、秘密鍵2に対応する公開鍵2を用いてデジタル署名311を復号することによりメッセージダイジェスト310を取得し、マイコン11が受信した暗号化プログラムコード300Eにおける暗号化プログラムコード(PART1)301Eと、鍵3(共通鍵)を用いた復号処理により得られたプログラムコード(PART2)302と、で構成される一部暗号化プログラムコード300Hに対する所定の暗号的ハッシュ関数を用いた処理により生成されたメッセージダイジェスト310Sと比較し、比較の結果が一致であった場合に、鍵1(共通鍵)を用いた復号処理を行う。これにより、デジタル署名の検証が成功した場合にのみ、鍵1(共通鍵)を用いた復号処理及びプログラムコード300をマイコン11の不揮発性メモリ115に記憶させる処理が実行されるため、マイコン11は信頼できる発信元から入手したプログラムコード300を記憶することができる。 Furthermore, the CPU 111 of the microcomputer 11 of the IoT terminal 1 in the first embodiment is a partial encryption program code 300H (“partial encryption” composed of an encryption program code (PART1) 301E and a program code (PART2) 302. Digital signature 311 generated by using the message digest 310 generated by the process using a predetermined cryptographic hash function (an example of the "first generation process") and the private key 2 for "an example of the encrypted data"). Is further received from the server S, and the CPU 21 of the secure element 2 (an example of the "acquisition means" and the "first comparison means") decrypts the digital signature 311 using the public key 2 corresponding to the private key 2. The message digest 310 is acquired, and the encryption program code (PART1) 301E in the encryption program code 300E received by the microcomputer 11 and the program code (PART2) 302 obtained by the decryption process using the key 3 (common key). Compared with the message digest 310S generated by processing using a predetermined cryptographic hash function for the partially encrypted program code 300H composed of, key 1 (common key) when the comparison results are in agreement. ) Is used for decryption processing. As a result, only when the verification of the digital signature is successful, the decoding process using the key 1 (common key) and the process of storing the program code 300 in the non-volatile memory 115 of the microcomputer 11 are executed, so that the microcomputer 11 is executed. The program code 300 obtained from a reliable source can be stored.

更にまた、第2実施形態におけるIoT端末1において、暗号化プログラムコード320Eは、プログラムコード300におけるプログラムコード(PART1)301に対して鍵1(共通鍵)を用いた暗号化処理を行って得られた暗号化プログラムコード(PART1)301Eと、プログラムコード300におけるプログラムコード(PART2)302と、で構成される一部暗号化プログラムコード300Hに対して鍵3(共通鍵)を用いた暗号化処理(「第1暗号化処理」の一例)を行って得られたデータであり、マイコン11のCPU111は、暗号化プログラムコード320Eに対して鍵3(共通鍵)を用いた復号処理を行い、セキュアエレメント2のCPU21は、一部暗号化プログラムコード300Hにおける暗号化プログラムコード(PART1)301Eに対して鍵1(共通鍵)を用いた復号処理を行い、マイコン11の不揮発性メモリ115は、鍵3(共通鍵)を用いた復号処理により得られたプログラムコード(PART1)301と、鍵3(共通鍵)を用いた復号処理により得られた一部暗号化プログラムコード300Hにおけるプログラムコード(PART2)302と、で構成されるプログラムコード300を記憶する。これにより、マイコン11の不揮発性メモリ115は、マイコン11で復号されたプログラムコード(PART1)301と、セキュアエレメント2で復号されたプログラムコード(PART2)302とからなるプログラムコード300(すなわち、信頼できる発信元から入手したデータ)を記憶することができる。 Furthermore, in the IoT terminal 1 of the second embodiment, the encryption program code 320E is obtained by performing an encryption process using the key 1 (common key) on the program code (PART1) 301 in the program code 300. Encryption processing using key 3 (common key) for partially encrypted program code 300H composed of the encrypted program code (PART1) 301E and the program code (PART2) 302 in the program code 300 ( This is the data obtained by performing "an example of the first encryption process"), and the CPU 111 of the microcomputer 11 performs a decryption process using the key 3 (common key) on the encryption program code 320E, and secure element. The CPU 21 of 2 performs a decryption process using the key 1 (common key) for the encryption program code (PART1) 301E in the partial encryption program code 300H, and the non-volatile memory 115 of the microcomputer 11 uses the key 3 (P). The program code (PART1) 301 obtained by the decryption process using the key 3 (common key) and the program code (PART2) 302 in the partially encrypted program code 300H obtained by the decryption process using the key 3 (common key). The program code 300 composed of ,, is stored. As a result, the non-volatile memory 115 of the microcomputer 11 has a program code 300 (that is, reliable) composed of the program code (PART1) 301 decoded by the microcomputer 11 and the program code (PART2) 302 decoded by the secure element 2. Data obtained from the source) can be stored.

更にまた、第2実施形態におけるIoT端末1のマイコン11のCPU111は、暗号化プログラムコード(PART1)301Eとプログラムコード(PART2)302とで構成される一部暗号化プログラムコード300Hに対する所定の暗号的ハッシュ関数を用いた処理(「第1生成処理」の一例)により生成されたメッセージダイジェスト310と、秘密鍵2と、を用いて生成されたデジタル署名311をサーバSから更に受信し、セキュアエレメント2のCPU21(「取得手段」、「第1比較手段」の一例)は、秘密鍵2に対応する公開鍵2を用いてデジタル署名311を復号することによりメッセージダイジェスト310を取得し、鍵3(共通鍵)を用いた復号処理により得られた一部暗号化プログラムコード300Hに対する所定の暗号的ハッシュ関数を用いた処理により生成されたメッセージダイジェスト310Sと比較し、比較の結果が一致であった場合に、鍵1(共通鍵)を用いた復号処理を行う。これにより、デジタル署名の検証が成功した場合にのみ、鍵1(共通鍵)を用いた復号処理及びプログラムコード300をマイコン11の不揮発性メモリ115に記憶させる処理が実行されるため、マイコン11は信頼できる発信元から入手したプログラムコード300を記憶することができる。 Furthermore, the CPU 111 of the microcomputer 11 of the IoT terminal 1 in the second embodiment is a predetermined encryption for the partial encryption program code 300H composed of the encryption program code (PART1) 301E and the program code (PART2) 302. The digital signature 311 generated by using the message digest 310 generated by the process using the hash function (an example of the "first generation process") and the private key 2 is further received from the server S, and the secure element 2 is further received. CPU 21 (an example of "acquisition means" and "first comparison means") acquires the message digest 310 by decrypting the digital signature 311 using the public key 2 corresponding to the private key 2, and the key 3 (common). When compared with the message digest 310S generated by the processing using the predetermined cryptographic hash function for the partial encryption program code 300H obtained by the decryption processing using the key), and the comparison results are in agreement. , Performs decryption processing using key 1 (common key). As a result, only when the verification of the digital signature is successful, the decoding process using the key 1 (common key) and the process of storing the program code 300 in the non-volatile memory 115 of the microcomputer 11 are executed, so that the microcomputer 11 is executed. The program code 300 obtained from a reliable source can be stored.

更にまた、第1実施形態及び第2実施形態におけるIoT端末1のセキュアエレメント2の不揮発性メモリ23(「メッセージダイジェスト記憶手段」の一例)は、メッセージダイジェスト310Sとメッセージダイジェスト310の比較(図6のステップS304)の結果が一致であった場合に、比較したメッセージダイジェスト310(メッセージダイジェスト310S)を記憶し、マイコン11のCPU111(「プログラムコード実行手段」、「プログラムコード送信手段」の一例)は、プログラムコード300の実行が初回である場合におけるその実行前に、不揮発性メモリ115に記憶されているプログラムコード300をセキュアエレメント2に送信し、セキュアエレメント2のCPU21(「プログラムコード受信手段」、「メッセージダイジェスト生成手段」、「第2比較手段」、「通知手段」の一例)はマイコン11により送信されたプログラムコード300を受信し、プログラムコード300におけるプログラムコード(PART1)301に対して鍵1(共通鍵)を用いた暗号化処理を行うことにより暗号化プログラムコード(PART1)301Eを取得し、暗号化プログラムコード(PART1)301Eと、プログラムコード300Hにおけるプログラムコード(PART2)302と、で構成される一部暗号化プログラムコード300Hに対する所定の暗号的ハッシュ関数を用いた処理により生成されたメッセージダイジェストを生成し、不揮発性メモリ23が記憶するメッセージダイジェストと比較し(図7のステップS334)、比較の結果が一致であった場合に、その旨をマイコン11に通知し、マイコン11のCPU111は、プログラムコード300をセキュアエレメント2に送信した場合には、比較の結果が一致であった旨の通知をセキュアエレメント2から受けた後にプログラムコード300を実行する。これにより、例えば、図6のステップS207の処理で不揮発性メモリ115に記憶されたプログラムコード300が攻撃により改変されている場合には、セキュアエレメント2による比較(図7のステップS334)の結果が不一致となるためプログラムコード300が実行されることはない。すなわち、不揮発性メモリ115が記憶するプログラムコード300が改変されている場合には、マイコン11のCPU111がプログラムコード300を実行することを防ぐことができる。 Furthermore, the non-volatile memory 23 (an example of the "message digest storage means") of the secure element 2 of the IoT terminal 1 in the first embodiment and the second embodiment is a comparison between the message digest 310S and the message digest 310 (FIG. 6). When the results of step S304) are in agreement, the compared message digest 310 (message digest 310S) is stored, and the CPU 111 (example of "program code executing means" and "program code transmitting means") of the microcomputer 11 stores the compared message digest 310 (message digest 310S). When the program code 300 is executed for the first time, the program code 300 stored in the non-volatile memory 115 is transmitted to the secure element 2 before the execution, and the CPU 21 of the secure element 2 (“program code receiving means”, “ An example of the "message digest generation means", "second comparison means", and "notification means") receives the program code 300 transmitted by the microcomputer 11, and the key 1 (for the program code (PART1) 301 in the program code 300) The encryption program code (PART1) 301E is acquired by performing the encryption process using the common key), and is composed of the encryption program code (PART1) 301E and the program code (PART2) 302 in the program code 300H. A message digest generated by processing using a predetermined cryptographic hash function for the partial encryption program code 300H is generated and compared with the message digest stored in the non-volatile memory 23 (step S334 in FIG. 7) and compared. When the results of the above are the same, the microcomputer 11 is notified to that effect, and when the CPU 111 of the microcomputer 11 transmits the program code 300 to the secure element 2, the notification that the comparison results are the same is notified. Is received from the secure element 2, and then the program code 300 is executed. As a result, for example, when the program code 300 stored in the non-volatile memory 115 in the process of step S207 of FIG. 6 is modified by an attack, the result of the comparison by the secure element 2 (step S334 of FIG. 7) is obtained. The program code 300 is not executed because of the mismatch. That is, when the program code 300 stored in the non-volatile memory 115 is modified, it is possible to prevent the CPU 111 of the microcomputer 11 from executing the program code 300.

更にまた、第1実施形態及び第2実施形態におけるIoT端末1のセキュアエレメント2の不揮発性メモリ23(「チェックコード生成手段」の一例)は、図7のステップS334の処理における比較の結果が一致であった場合に、図7のステップS331の処理において受信したプログラムコード300に対する暗号的ハッシュ関数(「第2生成処理」の一例)によりチェックコードを生成し、セキュアエレメント2の不揮発性メモリ23(「チェックコード記憶手段」の一例)が当該生成されたチェックコードを記憶する。マイコン11のCPU111(「チェックコード送信手段」の一例)は、不揮発性メモリ115に記憶されているプログラムコード300の実行が2回目以降である場合におけるその実行前に、当該プログラムコード300に対する暗号的ハッシュ関数(「第2生成処理の一例)によりチェックコードを生成し、セキュアエレメント2に送信し、セキュアエレメント2のCPU21(「チェックコード受信手段」、「第3比較手段」、「第2通知手段」の一例)は、マイコン11から送信されたチェックコードを受信し、不揮発性メモリ23が記憶するチェックコードと比較し(図8のステップS352)、比較の結果が一致であった場合に、その旨をマイコン11に通知する。マイコン11のCPU111は、チェックコードをセキュアエレメント2に送信した場合には、セキュアエレメント2によるチェックコードの比較の結果が一致であった旨の通知を受けた後にプログラムコード300を実行する。これにより、例えば、不揮発性メモリ115に記憶されたプログラムコード300が図7のステップS233の処理で実行された後に攻撃により改変されている場合には、セキュアエレメント2による比較(図8のステップS352)の結果が不一致となるためプログラムコード300が実行されることはない。すなわち、不揮発性メモリ115が記憶するプログラムコード300が改変されている場合には、マイコン11のCPU111がプログラムコード300を実行することを防ぐことができる。また、チェックコードは、メッセージダイジェストのように鍵1(共通鍵)を用いることなく算出することができるため、チェックコードの比較検証に要する時間はメッセージダイジェストの比較検証に要する時間より短い。すなわち、CPU111がプログラムコード300を実行するに当たり、プログラムコード300の改変チェックを短時間で済ませることができ、プログラムコード300の実行までの時間を短縮することができる。 Furthermore, the non-volatile memory 23 (an example of the "check code generation means") of the secure element 2 of the IoT terminal 1 in the first embodiment and the second embodiment has the same comparison results in the process of step S334 of FIG. If this is the case, a check code is generated by a cryptographic hash function (an example of the “second generation process”) for the program code 300 received in the process of step S331 in FIG. 7, and the non-volatile memory 23 of the secure element 2 ( An example of "check code storage means") stores the generated check code. The CPU 111 of the microcomputer 11 (an example of the “check code transmitting means”) encrypts the program code 300 stored in the non-volatile memory 115 before executing the program code 300 for the second time or later. A check code is generated by a hash function (“an example of the second generation process), transmitted to the secure element 2, and the CPU 21 of the secure element 2 (“check code receiving means”, “third comparison means”, “second notification means”. (Example) receives the check code transmitted from the microcomputer 11 and compares it with the check code stored in the non-volatile memory 23 (step S352 in FIG. 8), and when the comparison results are in agreement, the check code is compared. Notify the microcomputer 11 to that effect. When the CPU 111 of the microcomputer 11 transmits the check code to the secure element 2, the CPU 111 executes the program code 300 after receiving a notification that the results of the check code comparison by the secure element 2 are in agreement. As a result, for example, when the program code 300 stored in the non-volatile memory 115 is modified by an attack after being executed in the process of step S233 of FIG. 7, comparison by the secure element 2 (step S352 of FIG. 8). ) Will be inconsistent, so the program code 300 will not be executed. That is, when the program code 300 stored in the non-volatile memory 115 is modified, it is possible to prevent the CPU 111 of the microcomputer 11 from executing the program code 300. Further, since the check code can be calculated without using the key 1 (common key) as in the message digest, the time required for the comparison verification of the check code is shorter than the time required for the comparison verification of the message digest. That is, when the CPU 111 executes the program code 300, the modification check of the program code 300 can be completed in a short time, and the time until the program code 300 is executed can be shortened.

更にまた、第1実施形態及び第2実施形態におけるIoT端末1のセキュアエレメント2の不揮発性メモリ23(「鍵記憶手段」の一例)は、鍵1(共通鍵)を記憶する。これにより、マイコン11の不揮発性メモリ115に記憶させるよりも安全に鍵1(共通鍵)を保持することができる。 Furthermore, the non-volatile memory 23 (an example of "key storage means") of the secure element 2 of the IoT terminal 1 in the first embodiment and the second embodiment stores the key 1 (common key). As a result, the key 1 (common key) can be held more safely than being stored in the non-volatile memory 115 of the microcomputer 11.

更にまた、第1実施形態及び第2実施形態におけるIoT端末1において、プログラムコード(PART1)301がプログラムコード300における先頭の実行アドレスを特定するためのアドレス情報を含むこととすることにより、マイコン11よりも耐タンパ性の高いセキュアエレメント2にプログラムコード300における重要な部分であるアドレス情報を含む暗号化プログラムコード(PART1)301Eを復号させることができる。 Furthermore, in the IoT terminal 1 in the first embodiment and the second embodiment, the program code (PART1) 301 includes the address information for specifying the first execution address in the program code 300, so that the microcomputer 11 The secure element 2 having higher tamper resistance can decrypt the encryption program code (PART1) 301E including the address information which is an important part in the program code 300.

更にまた、第1実施形態及び第2実施形態におけるIoT端末1のセキュアエレメント2(「電子機器」の一例)は、プログラムコード300(「所定のデータ」の一例)に対して、鍵3(共通鍵)(「第1暗号鍵」の一例)を用いる暗号化処理(「第1暗号化処理」の一例)と、鍵1(共通鍵)(「第2暗号鍵」の一例)を用いる暗号化処理(「第2暗号化処理」の一例)と、を行うことにより得られた暗号化プログラムコード300E(暗号化プログラムコード320E)(「暗号化データ」の一例)をサーバS(「外部装置」の一例)から受信し、暗号化プログラムコード300E(暗号化プログラムコード320E)における鍵3(共通鍵)を用いた暗号化処理により暗号化されたデータに対して、鍵3(共通鍵)(「第1復号鍵」の一例)を用いた復号処理(「第1復号処理」の一例)を行うCPU111(「受信手段」、「第1復号手段」の一例)を備えるマイコン11(「所定の機器」の一例)よりも耐タンパ性が高く、CPU21(「受取手段」、「第2復号手段」、「受渡手段」の一例)は、マイコン11から、暗号化プログラムコード300Eにおける鍵1(共通鍵)を用いた暗号化処理により暗号化されたデータを受け取り、当該データに対して、鍵1(共通鍵)を用いた暗号化処理により暗号化されたデータを復号可能な鍵1(共通鍵)(「第2復号鍵」の一例)を用いた復号処理(「第2復号処理」の一例)を行い、当該復号処理により取得したデータをマイコン11に受け渡す。 Furthermore, the secure element 2 (an example of an "electronic device") of the IoT terminal 1 in the first embodiment and the second embodiment has a key 3 (common) with respect to the program code 300 (an example of "predetermined data"). An encryption process using a key) (an example of a "first encryption key") (an example of a "first encryption process") and an encryption using a key 1 (common key) (an example of a "second encryption key") The processing (an example of "second encryption processing") and the encryption program code 300E (encryption program code 320E) (an example of "encrypted data") obtained by performing the processing are transferred to the server S ("external device"). For data received from (one example) and encrypted by the encryption process using the key 3 (common key) in the encryption program code 300E (encryption program code 320E), the key 3 (common key) (" A microcomputer 11 (“predetermined device”) including a CPU 111 (an example of a “receiving means” and a “first decoding means”) that performs a decoding process (an example of a “first decoding process”) using an example (an example of a first decoding key). The CPU 21 (an example of the "receiving means", the "second decoding means", and the "delivery means") has a higher tamper resistance than the "example"), and the key 1 (common key) in the encryption program code 300E is transmitted from the microcomputer 11. ) Is received and the data encrypted by the encryption process using the key 1 (common key) is decrypted with respect to the data. Key 1 (common key) A decoding process (an example of the "second decoding process") using (an example of the "second decoding key") is performed, and the data acquired by the decoding process is passed to the microcomputer 11.

したがって、第1実施形態及び第2実施形態のセキュアエレメント2によれば、暗号化プログラムコード300Eをサーバ装置Sから受信した場合に、マイコン11が暗号化プログラムコード300Eにおける鍵3(共通鍵)を用いた暗号化処理により暗号化されたデータに対して、鍵3(共通鍵)を用いた復号処理を行い、セキュアエレメント2が暗号化プログラムコード300Eにおける鍵1(共通鍵)を用いた暗号化処理により暗号化されたデータに対して鍵1(共通鍵)を用いた復号処理を行う。すなわち、信頼できる発信元以外の発信元から入手したデータは適切に復号できないため、マイコン11は暗号化プログラムコード300Eから正常に復号できたデータのみを記憶することにより、記憶するデータを信頼できる発信元から入手したものに制限することができる。 Therefore, according to the secure element 2 of the first embodiment and the second embodiment, when the encryption program code 300E is received from the server device S, the microcomputer 11 uses the key 3 (common key) in the encryption program code 300E. The data encrypted by the encryption process used is subjected to decryption processing using the key 3 (common key), and the secure element 2 is encrypted using the key 1 (common key) in the encryption program code 300E. Decryption processing using key 1 (common key) is performed on the data encrypted by the processing. That is, since data obtained from a source other than a reliable source cannot be properly decrypted, the microcomputer 11 stores only the data that can be normally decrypted from the encryption program code 300E, so that the stored data can be transmitted reliably. You can limit it to what you originally obtained.

なお、マイコン11とセキュアエレメント2とでは、一般的にセキュアエレメント2の方が処理速度が遅いので、サーバSがプログラムコード300を分割する際に、プログラムコード(PART1)301を、プログラムコード(PART2)302よりも小さくすることにより、IoT機器1における暗号化プログラムコード300Eの復号処理に要する時間を短縮することができる。 Since the processing speed of the secure element 2 is generally slower than that of the microcomputer 11 and the secure element 2, when the server S divides the program code 300, the program code (PART1) 301 is changed to the program code (PART2). ) By making it smaller than 302, the time required for the decryption process of the encryption program code 300E in the IoT device 1 can be shortened.

[3.変形例]
次に、本実施例の変形例について説明する。なお、以下に説明する変形例は適宜組み合わせることができる。
[3. Modification example]
Next, a modified example of this embodiment will be described. The modifications described below can be combined as appropriate.

[3.1.変形例1]
第1実施形態及び第2実施形態では、鍵3(共通鍵)をセキュアエレメント2の不揮発性メモリ23に記憶させておき、マイコン11がサーバSから暗号化プログラムコード300E及びデジタル署名311を受信した場合に、セキュアエレメント2から鍵3(共通鍵)を受信して復号処理を行うこととしたが、鍵3(共通鍵)をマイコン11の不揮発性メモリ115に記憶させておき、復号処理の際には不揮発性メモリ115に記憶されている鍵3(共通鍵)を用いることとしてもよい。
[3.1. Modification 1]
In the first embodiment and the second embodiment, the key 3 (common key) is stored in the non-volatile memory 23 of the secure element 2, and the microcomputer 11 receives the encryption program code 300E and the digital signature 311 from the server S. In this case, it was decided to receive the key 3 (common key) from the secure element 2 and perform the decryption process, but the key 3 (common key) is stored in the non-volatile memory 115 of the microcomputer 11 during the decryption process. The key 3 (common key) stored in the non-volatile memory 115 may be used for this.

[3.2.変形例2]
第1実施形態及び第2実施形態では、サーバSから受信し、復号して記憶する対象がプログラムコード300である場合について説明したが、当該対象は種類を問わず、例えば、IoT機器1の制御に用いられる設定値等であってもよい。
[3.2. Modification 2]
In the first embodiment and the second embodiment, the case where the target to be received from the server S, decoded and stored is the program code 300 has been described. However, regardless of the type of the target, for example, the control of the IoT device 1 It may be a set value or the like used for.

[3.3.変形例3]
第1実施形態及び第2実施形態では、図6(図12)のステップS204の処理でマイコン11のCPU111が一部暗号化プログラムコード300Hからメッセージダイジェスト310Sを算出することとしたが、セキュアエレメント2のCPU21がマイコン11から一部暗号化プログラムコード300Hを取得して算出することとしてもよい。
[3.3. Modification 3]
In the first embodiment and the second embodiment, the CPU 111 of the microcomputer 11 calculates the message digest 310S from the partially encrypted program code 300H in the process of step S204 of FIG. 6 (FIG. 12), but the secure element 2 The CPU 21 of the above may acquire a partial encryption program code 300H from the microcomputer 11 and calculate it.

1 IoT端末
11 マイコン
111 CPU
112 RAM
113 ROM
114 I/O回路
115 不揮発性メモリ
12 通信部
13 入力部
14 出力部
2 セキュアエレメント
21 CPU
22 RAM
23 不揮発性メモリ
24 I/O回路
S サーバ
31 制御部
32 記憶部
33 通信部
34 表示部
35 操作部
N ネットワーク
1 IoT terminal 11 Microcomputer 111 CPU
112 RAM
113 ROM
114 I / O circuit 115 Non-volatile memory 12 Communication unit 13 Input unit 14 Output unit 2 Secure element 21 CPU
22 RAM
23 Non-volatile memory 24 I / O circuit S server 31 Control unit 32 Storage unit 33 Communication unit 34 Display unit 35 Operation unit N network

Claims (13)

第1機器と、当該第1機器よりも耐タンパ性が高い第2機器とを含む情報処理装置であって、
前記第1機器は、
所定のデータに対して、第1暗号鍵を用いる第1暗号化処理と、第2暗号鍵を用いる第2暗号化処理と、を行うことにより得られた暗号化データを外部装置から受信する受信手段と、
前記受信した暗号化データにおける前記第1暗号化処理により暗号化されたデータに対して、前記第1暗号化処理により暗号化されたデータを復号可能な第1復号鍵を用いた第1復号処理を行う第1復号手段と、を備え、
前記第2機器は、
前記受信した暗号化データにおける前記第2暗号化処理により暗号化されたデータに対して、前記第2暗号化処理により暗号化されたデータを復号可能な第2復号鍵を用いた第2復号処理を行う第2復号手段を備えることを特徴とする情報処理装置。
An information processing device including a first device and a second device having a higher tamper resistance than the first device.
The first device is
Receiving the encrypted data obtained by performing the first encryption process using the first encryption key and the second encryption process using the second encryption key on the predetermined data from the external device. Means and
A first decryption process using a first decryption key capable of decrypting the data encrypted by the first encryption process with respect to the data encrypted by the first encryption process in the received encrypted data. A first decoding means for performing the above,
The second device is
A second decryption process using a second decryption key capable of decrypting the data encrypted by the second encryption process with respect to the data encrypted by the second encryption process in the received encrypted data. An information processing apparatus including a second decoding means for performing the above.
請求項1に記載の情報処理装置であって、
前記第1機器は、前記第1復号処理及び前記第2復号処理により得られた前記所定のデータを記憶するデータ記憶手段を更に備えることを特徴とする情報処理装置。
The information processing device according to claim 1.
The first device is an information processing apparatus further comprising a data storage means for storing the predetermined data obtained by the first decoding process and the second decoding process.
請求項2に記載の情報処理装置であって、
前記暗号化データは、前記所定のデータにおける第1の部分に対して前記第2暗号化処理を行って得られた第1暗号化データと、前記所定のデータにおける前記第1の部分を除いた残りの部分である第2の部分に対して前記第1暗号化処理を行って得られた第2暗号化データと、で構成され、
前記第1復号手段は、前記受信した前記暗号化データにおける前記第2暗号化データに対して前記第1復号処理を行い、
前記第2復号手段は、前記受信した前記暗号化データにおける前記第1暗号化データに対して前記第2復号処理を行い、
前記データ記憶手段は、前記第2復号処理により得られた前記第1の部分と、前記第1復号処理により得られた前記第2の部分と、で構成される前記所定のデータを記憶することを特徴とする情報処理装置。
The information processing device according to claim 2.
The encrypted data excludes the first encrypted data obtained by performing the second encryption process on the first part of the predetermined data and the first part of the predetermined data. It is composed of the second encrypted data obtained by performing the first encryption process on the second part, which is the remaining part.
The first decryption means performs the first decryption process on the second encrypted data in the received encrypted data.
The second decryption means performs the second decryption process on the first encrypted data in the received encrypted data.
The data storage means stores the predetermined data composed of the first portion obtained by the second decoding process and the second portion obtained by the first decoding process. An information processing device characterized by.
請求項3に記載の情報処理装置であって、
前記受信手段は、前記第1暗号化データと前記第2の部分とで構成される一部暗号化データに対する第1生成処理により生成されたメッセージダイジェストと、秘密鍵と、を用いて生成されたデジタル署名を前記外部装置から更に受信し、
前記第2機器は、
前記秘密鍵に対応する公開鍵を用いて前記デジタル署名を復号することによりメッセージダイジェストを取得する取得手段と、
前記受信手段が受信した前記暗号化データにおける前記第1暗号化データと、前記第1復号処理により得られた前記第2の部分と、で構成される一部暗号化データに対する前記第1生成処理により生成されたメッセージダイジェストと、前記取得手段が取得したメッセージダイジェストと、を比較する第1比較手段を更に備え、
前記第2復号手段は、前記第1比較手段による比較の結果が一致であった場合に、前記第2復号処理を行うことを特徴とする情報処理装置。
The information processing device according to claim 3.
The receiving means is generated by using the message digest generated by the first generation process for the partially encrypted data composed of the first encrypted data and the second part, and the private key. Further receiving a digital signature from the external device
The second device is
An acquisition means for acquiring a message digest by decrypting the digital signature using a public key corresponding to the private key.
The first generation process for partially encrypted data composed of the first encrypted data in the encrypted data received by the receiving means and the second portion obtained by the first decryption process. A first comparison means for comparing the message digest generated by the above and the message digest acquired by the acquisition means is further provided.
The information processing apparatus is characterized in that the second decoding means performs the second decoding process when the results of comparison by the first comparison means are in agreement.
請求項2に記載の情報処理装置であって、
前記暗号化データは、前記所定のデータにおける第1の部分に対して前記第2暗号化処理を行って得られた第1暗号化データと、前記所定のデータにおける前記第1の部分を除いた残りの部分である第2の部分と、で構成される一部暗号化データに対して前記第1暗号化処理を行って得られたデータであり、
前記第1復号手段は、前記受信した前記暗号化データに対して前記第1復号処理を行い、
前記第2復号手段は、前記第1復号処理により得られた一部暗号化データにおける前記第1暗号化データに対して前記第2復号処理を行い、
前記データ記憶手段は、前記第2復号処理により得られた前記第1の部分と、前記第1復号処理により得られた前記一部暗号化データにおける前記第2の部分と、で構成される前記所定のデータを記憶することを特徴とする情報処理装置。
The information processing device according to claim 2.
The encrypted data excludes the first encrypted data obtained by performing the second encryption process on the first part of the predetermined data and the first part of the predetermined data. It is the data obtained by performing the first encryption process on the partially encrypted data composed of the second part which is the remaining part and the second part.
The first decryption means performs the first decryption process on the received encrypted data, and then performs the first decryption process.
The second decryption means performs the second decryption process on the first encrypted data in the partially encrypted data obtained by the first decryption process.
The data storage means is composed of the first part obtained by the second decryption process and the second part of the partially encrypted data obtained by the first decryption process. An information processing device characterized by storing predetermined data.
請求項5に記載の情報処理装置であって、
前記受信手段は、前記第1暗号化データと前記第2の部分とで構成される一部暗号化データに対する第1生成処理により生成されたメッセージダイジェストと、秘密鍵と、を用いて生成されたデジタル署名を前記外部装置から更に受信し、
前記第2機器は、
前記秘密鍵に対応する公開鍵を用いて前記デジタル署名を復号することによりメッセージダイジェストを取得する取得手段と、
前記第1復号処理により得られた一部暗号化データに対する前記第1生成処理により生成されたメッセージダイジェストと、前記取得手段が取得したメッセージダイジェストと、を比較する第1比較手段を更に備え、
前記第2復号手段は、前記第1比較手段による比較の結果が一致であった場合に、前記第2復号処理を行うことを特徴とする情報処理装置。
The information processing device according to claim 5.
The receiving means is generated by using the message digest generated by the first generation process for the partially encrypted data composed of the first encrypted data and the second part, and the private key. Further receiving a digital signature from the external device
The second device is
An acquisition means for acquiring a message digest by decrypting the digital signature using a public key corresponding to the private key.
A first comparison means for comparing the message digest generated by the first generation process with respect to the partially encrypted data obtained by the first decryption process and the message digest acquired by the acquisition means is further provided.
The information processing apparatus is characterized in that the second decoding means performs the second decoding process when the results of comparison by the first comparison means are in agreement.
請求項4又は6に記載の情報処理装置であって、
前記所定のデータはプログラムコードであり、
前記第2機器は、
前記第1比較手段による比較の結果が一致であった場合に、前記比較したメッセージダイジェストを記憶するメッセージダイジェスト記憶手段を更に備え、
前記第1機器は、
前記プログラムコードを実行するプログラムコード実行手段と、
前記プログラムコード実行手段による前記プログラムコードの実行が初回である場合におけるその実行前に、前記データ記憶手段に記憶されている前記プログラムコードを、前記第2機器に送信するプログラムコード送信手段を更に備え、
前記第2機器は、
前記プログラムコード送信手段により送信されたプログラムコードを受信するプログラムコード受信手段と、
前記プログラムコード受信手段が受信したプログラムコードにおける前記第1の部分に対して前記第2暗号化処理を行うことにより第1暗号化データを取得し、当該第1暗号化データと、当該プログラムコードにおける前記第2の部分と、で構成される一部暗号化データに対する前記第1生成処理によりメッセージダイジェストを生成するメッセージダイジェスト生成手段と、
前記メッセージダイジェスト記憶手段が記憶するメッセージダイジェストと、前記メッセージダイジェスト生成手段が生成したメッセージダイジェストと、を比較する第2比較手段と、
前記第2比較手段による比較の結果が一致であった場合に、その旨を前記第1機器に通知する通知手段を更に備え、
前記プログラムコード実行手段は、前記プログラムコード送信手段が前記プログラムコードを送信した場合には、前記第2比較手段による比較の結果が一致であった旨の通知を受けた後に前記プログラムコードを実行することを特徴とする情報処理装置。
The information processing device according to claim 4 or 6.
The predetermined data is a program code and
The second device is
A message digest storage means for storing the compared message digests when the results of the comparison by the first comparison means are in agreement is further provided.
The first device is
A program code execution means for executing the program code and
Further provided is a program code transmitting means for transmitting the program code stored in the data storage means to the second device before the execution of the program code by the program code executing means for the first time. ,
The second device is
A program code receiving means for receiving the program code transmitted by the program code transmitting means, and a program code receiving means.
The first encrypted data is acquired by performing the second encryption process on the first part of the program code received by the program code receiving means, and the first encrypted data and the program code are used. A message digest generation means for generating a message digest by the first generation process for partially encrypted data composed of the second part, and
A second comparison means for comparing the message digest stored by the message digest storage means and the message digest generated by the message digest generation means.
If the results of the comparison by the second comparison means are in agreement, a notification means for notifying the first device to that effect is further provided.
When the program code transmitting means transmits the program code, the program code executing means executes the program code after receiving a notification that the comparison results by the second comparing means are in agreement. An information processing device characterized by this.
請求項7に記載の情報処理装置であって、
前記第2機器は、
前記第2比較手段による比較の結果が一致であった場合に、前記プログラムコード受信手段が受信したプログラムコードに対する第2生成処理によりチェックコードを生成するチェックコード生成手段と、
前記チェックコード生成手段により生成されたチェックコードを記憶するチェックコード記憶手段を更に備え、
前記第1機器は、
前記プログラムコード実行手段による前記プログラムコードの実行が2回目以降である場合におけるその実行前に、前記データ記憶手段に記憶されている前記プログラムコードに対する前記第2生成処理によりチェックコードを生成し、前記第2機器に送信するチェックコード送信手段を更に備え、
前記第2機器は、
前記チェックコード送信手段により送信されたチェックコードを受信するチェックコード受信手段と、
前記チェックコード受信手段が受信したチェックコードと、前記チェックコード記憶手段が記憶するチェックコードと、を比較する第3比較手段と、
前記第3比較手段による比較の結果が一致であった場合に、その旨を前記第1機器に通知する第2通知手段を更に備え、
前記プログラムコード実行手段は、前記チェックコード送信手段が前記チェックコードを送信した場合には、前記第3比較手段による比較の結果が一致であった旨の通知を受けた後に前記プログラムコードを実行することを特徴とする情報処理装置。
The information processing device according to claim 7.
The second device is
A check code generation means that generates a check code by a second generation process for the program code received by the program code receiving means when the results of the comparison by the second comparison means match.
A check code storage means for storing the check code generated by the check code generation means is further provided.
The first device is
In the case where the program code is executed by the program code executing means for the second time or later, a check code is generated by the second generation process for the program code stored in the data storage means, and the check code is generated. Further equipped with a check code transmission means for transmitting to the second device,
The second device is
A check code receiving means for receiving the check code transmitted by the check code transmitting means, and a check code receiving means.
A third comparison means for comparing the check code received by the check code receiving means with the check code stored in the check code storage means.
When the results of comparison by the third comparison means are in agreement, a second notification means for notifying the first device to that effect is further provided.
When the check code transmitting means transmits the check code, the program code executing means executes the program code after receiving a notification that the comparison results by the third comparing means are in agreement. An information processing device characterized by this.
請求項1乃至8の何れか一項に記載の情報処理装置であって、
前記第1機器は、非セキュアエレメントであり、
前記第2機器は、セキュアエレメントであることを特徴とする情報処理装置。
The information processing device according to any one of claims 1 to 8.
The first device is a non-secure element and
The second device is an information processing device characterized by being a secure element.
請求項1乃至9の何れか一項に記載の情報処理装置であって、
前記第2機器は、前記第2復号鍵を記憶する鍵記憶手段を更に備えることを特徴とする情報処理装置。
The information processing device according to any one of claims 1 to 9.
The second device is an information processing device further comprising a key storage means for storing the second decryption key.
請求項1乃至10の何れか一項に記載の情報処理装置であって、
前記所定のデータはプログラムコードであり、
前記第1の部分は、前記プログラムコードにおける先頭の実行アドレスを特定するためのアドレス情報を含むことを特徴とする情報処理装置。
The information processing device according to any one of claims 1 to 10.
The predetermined data is a program code and
The first portion is an information processing apparatus including address information for specifying a first execution address in the program code.
第1機器と、当該第1機器よりも耐タンパ性が高い第2機器を含む情報処理装置における暗号化データの復号方法であって、
前記第1機器が、所定のデータに対して、第1暗号鍵を用いる第1暗号化処理と、第2暗号鍵を用いる第2暗号化処理と、を行うことにより得られた暗号化データにおける前記第1暗号化処理により暗号化されたデータに対して、前記第1暗号化処理により暗号化されたデータを復号可能な第1復号鍵を用いた第1復号処理を行う第1復号工程と、
前記第2機器が、前記暗号化データにおける前記第2暗号化処理により暗号化されたデータに対して、前記第2暗号化処理により暗号化されたデータを復号可能な第2復号鍵を用いた第2復号処理を行う第2復号工程と、
を含むことを特徴とする暗号化データの復号方法。
A method for decrypting encrypted data in an information processing device including a first device and a second device having a higher tamper resistance than the first device.
In the encrypted data obtained by the first apparatus performing a first encryption process using the first encryption key and a second encryption process using the second encryption key on the predetermined data. A first decryption step of performing a first decryption process using a first decryption key capable of decrypting the data encrypted by the first encryption process on the data encrypted by the first encryption process. ,
The second device uses a second decryption key capable of decrypting the data encrypted by the second encryption process in the encrypted data with respect to the data encrypted by the second encryption process. The second decoding step of performing the second decoding process and
A method of decrypting encrypted data, which comprises.
所定のデータに対して、第1暗号鍵を用いる第1暗号化処理と、第2暗号鍵を用いる第2暗号化処理と、を行うことにより得られた暗号化データを外部装置から受信する受信手段と、前記受信した暗号化データにおける前記第1暗号化処理により暗号化されたデータに対して、前記第1暗号化処理により暗号化されたデータを復号可能な第1復号鍵を用いた第1復号処理を行う第1復号手段と、を備える所定の機器よりも耐タンパ性が高い電子機器であって、
前記所定の機器から、前記暗号化データにおける前記第2暗号化処理により暗号化されたデータを受け取る受取手段と、
当該受取手段が受け取った前記第2暗号化処理により暗号化されたデータに対して、前記第2暗号化処理により暗号化されたデータを復号可能な第2復号鍵を用いた第2復号処理を行う第2復号手段と、
前記第2復号処理により取得したデータを前記所定の機器に受け渡す受渡手段と、
を備えることを特徴とする電子機器。
Receiving the encrypted data obtained by performing the first encryption process using the first encryption key and the second encryption process using the second encryption key on the predetermined data from the external device. A first method using means and a first decryption key capable of decrypting the data encrypted by the first encryption process in the received encrypted data by the first encryption process. (1) An electronic device having a tamper resistance higher than that of a predetermined device including a first decoding means for performing a decryption process.
A receiving means for receiving the data encrypted by the second encryption process in the encrypted data from the predetermined device, and
For the data encrypted by the second encryption process received by the receiving means, a second decryption process using a second decryption key capable of decrypting the data encrypted by the second encryption process is performed. The second decoding means to be performed and
A delivery means for delivering the data acquired by the second decoding process to the predetermined device, and
An electronic device characterized by being equipped with.
JP2019043913A 2019-03-11 2019-03-11 Information processing device, decryption method for encrypted data, and electronic device Active JP7230598B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019043913A JP7230598B2 (en) 2019-03-11 2019-03-11 Information processing device, decryption method for encrypted data, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019043913A JP7230598B2 (en) 2019-03-11 2019-03-11 Information processing device, decryption method for encrypted data, and electronic device

Publications (2)

Publication Number Publication Date
JP2020150310A true JP2020150310A (en) 2020-09-17
JP7230598B2 JP7230598B2 (en) 2023-03-01

Family

ID=72429950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019043913A Active JP7230598B2 (en) 2019-03-11 2019-03-11 Information processing device, decryption method for encrypted data, and electronic device

Country Status (1)

Country Link
JP (1) JP7230598B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7226602B1 (en) 2022-02-01 2023-02-21 凸版印刷株式会社 Secret information distribution system, secret information distribution method, device management server, and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10164049A (en) * 1996-11-29 1998-06-19 Sony Corp Data transmission method, data transmitter, program recording transmission medium, data reception method, data receiver, data transmission/reception method and data transmitter-receiver
JP2000348003A (en) * 1998-10-16 2000-12-15 Matsushita Electric Ind Co Ltd Author protection system dealing with contents being digital author
WO2002057904A1 (en) * 2001-01-19 2002-07-25 Fujitsu Limited Controller having download function
US20040139026A1 (en) * 1998-10-16 2004-07-15 Shunji Harada Production protection system dealing with contents that are digital production

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10164049A (en) * 1996-11-29 1998-06-19 Sony Corp Data transmission method, data transmitter, program recording transmission medium, data reception method, data receiver, data transmission/reception method and data transmitter-receiver
JP2000348003A (en) * 1998-10-16 2000-12-15 Matsushita Electric Ind Co Ltd Author protection system dealing with contents being digital author
US20040139026A1 (en) * 1998-10-16 2004-07-15 Shunji Harada Production protection system dealing with contents that are digital production
WO2002057904A1 (en) * 2001-01-19 2002-07-25 Fujitsu Limited Controller having download function

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7226602B1 (en) 2022-02-01 2023-02-21 凸版印刷株式会社 Secret information distribution system, secret information distribution method, device management server, and program
JP2023112251A (en) * 2022-02-01 2023-08-14 凸版印刷株式会社 Secret information distribution system, secret information distribution method, device management server, and program

Also Published As

Publication number Publication date
JP7230598B2 (en) 2023-03-01

Similar Documents

Publication Publication Date Title
CN109313690B (en) Self-contained encrypted boot policy verification
CN109075976B (en) Certificate issuance dependent on key authentication
CN107077574B (en) Trust service for client devices
JP6067449B2 (en) Information processing apparatus and information processing program
US8874922B2 (en) Systems and methods for multi-layered authentication/verification of trusted platform updates
KR100792287B1 (en) Method for security and the security apparatus thereof
TWI557589B (en) Secure software product identifier for product validation and activation
US9489520B2 (en) Decryption and encryption of application data
US9405912B2 (en) Hardware rooted attestation
CN111832013A (en) Firmware upgrading method and device
US20200084042A1 (en) Information handling system entitlement validation
US20220075873A1 (en) Firmware security verification method and device
WO2022160733A1 (en) File signature method, computing device, and storage medium
CN110688660B (en) Method and device for safely starting terminal and storage medium
CN101657792A (en) Trusted component update system and method
TW201324225A (en) System and method for temporary secure boot of an electronic device
WO2016019790A1 (en) Verification method, client, server and system for installation package
US20150358321A1 (en) Storage device, information processing apparatus, and information processing method
US20170060775A1 (en) Methods and architecture for encrypting and decrypting data
WO2009090706A1 (en) Information processing device and mobile telephone device
CN115859267A (en) Method for safely starting application program, storage control chip and electronic equipment
KR20170089352A (en) Firmware integrity verification for performing the virtualization system
KR101579696B1 (en) System and method for obfuscating initiation values of a cryptography protocol
KR20200020626A (en) SECURE FIRMWARE UPDATE METHOD OF IoT DEVICE USING AN INTEGRATED SECURITY SoC
JP6930884B2 (en) BIOS management device, BIOS management system, BIOS management method, and BIOS management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221101

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221227

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230130

R150 Certificate of patent or registration of utility model

Ref document number: 7230598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R157 Certificate of patent or utility model (correction)

Free format text: JAPANESE INTERMEDIATE CODE: R157