JP2006099697A - Method and device for protecting information program - Google Patents

Method and device for protecting information program Download PDF

Info

Publication number
JP2006099697A
JP2006099697A JP2004288150A JP2004288150A JP2006099697A JP 2006099697 A JP2006099697 A JP 2006099697A JP 2004288150 A JP2004288150 A JP 2004288150A JP 2004288150 A JP2004288150 A JP 2004288150A JP 2006099697 A JP2006099697 A JP 2006099697A
Authority
JP
Japan
Prior art keywords
information
program
key
terminal
key information
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.)
Pending
Application number
JP2004288150A
Other languages
Japanese (ja)
Inventor
Takaya Tochikubo
孝也 栃窪
Takehisa Kato
岳久 加藤
Ayumi Shimizu
歩 清水
Hideaki Azuma
秀明 東
Hiroshi Taira
博司 平
Takuya Yoshida
琢也 吉田
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2004288150A priority Critical patent/JP2006099697A/en
Publication of JP2006099697A publication Critical patent/JP2006099697A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To improve the security property of retained confidential information and programs and to execute an optional program. <P>SOLUTION: Encryption distribution information E(K<SB>P1</SB>, S) obtained by encrypting distribution information S composed of random numbers r of the same bit length as that of a compression program C by terminal inherent information K<SB>P1</SB>and an encrypted calculation value E(K<SB>P1</SB>, S') obtained by encrypting a calculation value S' obtained by calculating the distribution S and the compression program C as an exclusive OR by the terminal inherent information K<SB>P1</SB>are secretly distributed to respective server devices Sv1, Sv2, and at the time of program processing, a terminal device 10 restores the compression program C from the encrypted distribution information E(K<SB>P1</SB>, S') and the encrypted calculation value E(K<SB>P1</SB>, S'). <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、情報プログラム保護方法及び装置に関する。   The present invention relates to an information program protection method and apparatus.

従来、PC(Personal computer)などのオープンアーキテクチャの機器においては、利用者固有の暗号鍵などの秘密情報及び/又はその秘密情報を扱うプログラム自体を保護したい場合がある。この場合、例えば耐タンパーソフトウェア技術を用いた情報プログラム保護方法や、ICカード等の耐タンパー性の高いハードウェアに秘密情報やプログラムを格納してハードウェア内でプログラムを実行する情報プログラム保護方法などが適用可能となっている。   Conventionally, in an open architecture device such as a PC (Personal computer), there is a case where it is desired to protect secret information such as an encryption key unique to a user and / or a program itself that handles the secret information. In this case, for example, an information program protection method using tamper-resistant software technology, an information program protection method in which secret information or a program is stored in hardware having high tamper resistance such as an IC card, and the program is executed in the hardware. Is applicable.

ここで、前者の情報プログラム保護方法は、耐タンパー性ソフトウェアを用い、保持する秘密情報やプログラムのセキュリティ性の向上を図るものである。しかしながら、この方法は、耐タンパー性ソフトウェアの耐タンパー性が低いことから、耐タンパー性ソフトウェアが解析されると、保持する秘密情報が漏洩しシステム全体に多大な影響を及ぼす恐れがある。   Here, the former information program protection method uses tamper resistant software to improve security of confidential information and programs to be held. However, since the tamper resistance of the tamper resistance software is low in this method, when the tamper resistance software is analyzed, there is a possibility that the confidential information to be held leaks and greatly affects the entire system.

一方、後者の情報プログラム保護方法は、耐タンパー性ハードウェアを用い、保持する秘密情報やプログラムのセキュリティ性の向上を図るものである。しかしながら、この方法は、ハードウェアの耐タンパー性が高いことからセキュリティ性は高いものの、耐タンパー性ハードウェアの処理能力に制限があるため、実行可能なプログラムが耐タンパー性ハードウェアの処理能力以下に制限されてしまう。   On the other hand, the latter information program protection method uses tamper resistant hardware to improve the security of confidential information and programs to be held. However, this method has high security because the hardware has high tamper resistance, but the processing capability of the tamper resistant hardware is limited, so the executable program is less than the processing capacity of the tamper resistant hardware. It will be limited to.

なお、この出願に関係する先行技術文献としては、秘密情報を分散して管理するための秘密分散法がある(非特許文献1,2参照。)。しかしながら、秘密分散法は分散情報の個数を増大させ易い不都合がある。
A. Shamir, “How to share a secret”, Communications of the ACM, 22, 11, pp. 612 - 613, 1979. J. Benaloh, J. Leichter, “Generalized secret sharing and monotone functions”, Proceedings of CRYPTO ’88, pp. 27 - 35, 1988.
As a prior art document related to this application, there is a secret sharing method for distributing and managing secret information (see Non-Patent Documents 1 and 2). However, the secret sharing method has a disadvantage that it is easy to increase the number of shared information.
A. Shamir, “How to share a secret”, Communications of the ACM, 22, 11, pp. 612-613, 1979. J. Benaloh, J. Leichter, “Generalized secret sharing and monotone functions”, Proceedings of CRYPTO '88, pp. 27-35, 1988.

以上説明したように、従来の情報プログラム保護方法は、耐タンパーソフトウェア技術を用いる場合、耐タンパーソフトウェアの解析により、保持する秘密情報を漏洩させる恐れがあるので、セキュリティ性の向上が望まれるものとなっている。   As described above, the conventional information program protection method, when using the tamper-resistant software technology, may leak the confidential information held by the analysis of the tamper-resistant software. It has become.

一方、耐タンパー性の高いハードウェア内でプログラムを実行する場合、耐タンパー性ハードウェアの処理能力に制限があるため、実行可能なプログラムが制限される。
また、秘密分散法は分散情報の個数を増大させ易い不都合がある。
On the other hand, when a program is executed in hardware having high tamper resistance, the executable program is limited because the processing capability of the tamper resistance hardware is limited.
Also, the secret sharing method has a disadvantage that the number of pieces of shared information is likely to increase.

本発明は上記実情を考慮してなされたもので、保持する秘密情報やプログラムのセキュリティ性を向上でき、且つ任意のプログラムを実行し得る情報プログラム保護方法及び装置を提供することを目的とする。   The present invention has been made in view of the above circumstances, and an object of the present invention is to provide an information program protection method and apparatus that can improve the security of confidential information and programs to be held and can execute arbitrary programs.

また、本発明の他の目的は、秘密分散法を用いた際に、分散情報の個数を抑制し得る情報プログラム保護方法を提供することにある。   Another object of the present invention is to provide an information program protection method capable of suppressing the number of shared information when the secret sharing method is used.

第1の発明は、端末固有情報を有して共通鍵暗号方式、排他的論理和及び圧縮プログラム解凍を実行可能な端末装置に格納された秘密情報と前記秘密情報を処理するプログラムとを不正な利用又は解析から保護するように、前記プログラムを予め複数のサーバ装置に秘密分散する情報プログラム保護方法であって、前記各サーバ装置のうちの分散用サーバ装置が、0と1からなるバイナリ形式の前記プログラムに対し、前記0と1の偏りを少なくするように前記プログラムを圧縮し、圧縮プログラムを得る工程と、前記分散用サーバ装置が当該圧縮プログラムのビット長を算出する工程と、前記分散用サーバ装置が前記ビット長と同じビット長の乱数からなる分散情報を生成する工程と、前記分散用サーバ装置が前記分散情報と前記圧縮プログラムとの各ビットの排他的論理和を算出し、算出値を得る工程と、前記分散用サーバ装置が前記算出値を前記端末固有情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化算出値を得る工程と、前記分散用サーバ装置が前記分散情報を前記端末固有情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化分散情報を得る工程と、前記分散用サーバ装置が前記暗号化分散情報及び暗号化算出値のうち、少なくとも一方を他のサーバ装置に送信する工程とを備えた情報プログラム保護方法である。   In the first invention, the secret information stored in the terminal device having terminal-specific information and capable of executing the common key cryptosystem, exclusive OR, and compression program decompression and the program for processing the secret information are illegally transmitted. An information program protection method for secretly distributing the program to a plurality of server devices in advance so as to protect it from use or analysis, wherein a distribution server device among the server devices has a binary format consisting of 0 and 1 Compressing the program so as to reduce the bias between 0 and 1 with respect to the program, obtaining a compressed program, calculating the bit length of the compressed program by the distribution server device, and distributing the program A server device generating shared information comprising random numbers having the same bit length as the bit length; and the server device for distribution includes the shared information and the compression program. Calculating the exclusive OR of each bit with the ram and obtaining a calculated value; and the server device for distribution encrypts the calculated value by an encryption process based on the terminal specific information and the common key encryption method, A step of obtaining an encryption calculation value, a step of the distribution server device encrypting the distribution information by an encryption process based on the terminal unique information and the common key encryption method to obtain encrypted distribution information; And a server device transmitting at least one of the encrypted shared information and the encrypted calculated value to another server device.

第2の発明は、端末装置に内蔵されたシングルチップ形式のハードウェアからなる情報プログラム保護装置であって、前記端末装置に固有の端末固有情報が格納された端末固有情報格納手段と、圧縮プログラムのビット長と同じビット長の乱数からなる分散情報が端末固有情報により暗号化されてなる暗号化分散情報が前記端末装置から入力される暗号化分散情報入力手段と、前記分散情報と前記圧縮プログラムとの排他的論理和として算出された算出値が端末固有情報により暗号化されてなる暗号化算出値が前記端末装置から入力される暗号化算出値入力手段と、前記入力された暗号化分散情報及び暗号化算出値から前記端末固有情報格納手段内の端末固有情報に基づいて、圧縮プログラムを復元するプログラム復元手段と、前記復元された圧縮プログラムを前記端末装置内に出力する出力手段と、鍵情報が格納される鍵情報格納手段と、入力された処理要求に基づいて、暗号化処理、復号処理、署名生成処理、認証子の生成処理及び認証子の検証処理のうち、いずれかの処理を前記鍵情報を用いて実行し、実行結果を得る処理実行手段と、前記実行結果を前記端末装置内に出力する実行結果出力手段とを備えた情報プログラム保護装置である。   According to a second aspect of the present invention, there is provided an information program protection device comprising hardware of a single chip format incorporated in a terminal device, a terminal specific information storage means storing terminal specific information unique to the terminal device, and a compression program Encrypted distributed information input means for receiving, from the terminal device, encrypted shared information obtained by encrypting shared information consisting of random numbers having the same bit length as the bit length of the terminal unique information, the shared information and the compression program An encrypted calculated value input means for inputting an encrypted calculated value obtained by encrypting a calculated value calculated as an exclusive OR with terminal-specific information from the terminal device, and the input encrypted shared information And a program restoring means for restoring a compressed program based on terminal-specific information in the terminal-specific information storage means from the encryption calculation value, and the restored Output means for outputting a compression program in the terminal device, key information storage means for storing key information, and encryption processing, decryption processing, signature generation processing, and authentication code generation based on the input processing request A process execution unit that executes any one of the process and the authenticator verification process using the key information and obtains an execution result; and an execution result output unit that outputs the execution result in the terminal device. An information program protection device provided.

第3の発明は、端末固有情報を有して共通鍵暗号方式を実行可能な端末装置に格納された秘密情報と前記秘密情報を処理するプログラムとを不正な利用又は解析から保護するように、前記プログラムを予め複数のサーバ装置に秘密分散する情報プログラム保護方法であって、前記各サーバ装置のうちの分散用サーバ装置が乱数を生成する工程と、前記分散用サーバ装置が前記乱数に基づいて分散鍵情報を生成する工程と、前記分散用サーバ装置が前記分散鍵情報から前記端末固有情報に基づいて、個別化鍵情報を生成する工程と、前記分散用サーバ装置が前記プログラムを前記個別化鍵情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化プログラムを得る工程と、前記分散用サーバ装置が前記暗号化プログラム及び前記分散鍵情報のうち、少なくとも一方を他のサーバ装置に送信する工程とを備えた情報プログラム保護方法である。   In a third aspect of the invention, the secret information stored in the terminal device having terminal-specific information and capable of executing the common key cryptosystem and the program for processing the secret information are protected from unauthorized use or analysis. An information program protection method for secretly distributing the program to a plurality of server devices in advance, wherein a distribution server device among the server devices generates a random number, and the distribution server device is based on the random number. A step of generating distributed key information, a step of generating individualized key information based on the terminal-specific information from the distributed key information by the distribution server device, and the distribution server device personalizing the program Encrypting by encryption processing based on key information and the common key encryption method to obtain an encryption program, and the server device for distribution includes the encryption program and the encryption program Of Chikagi information is information program protection method that includes a step of transmitting at least one other server unit.

第4の発明は、端末装置に内蔵されたシングルチップ形式のハードウェアからなる情報プログラム保護装置であって、前記端末装置に固有の端末固有情報が格納された端末固有情報格納手段と、乱数により生成された分散鍵情報から端末固有情報に基づいて生成された個別化鍵情報に基づいてプログラムが暗号化されてなる暗号化プログラムが前記端末装置から入力される暗号化プログラム入力手段と、前記分散鍵情報が前記端末装置から入力される分散鍵情報入力手段と、前記入力された分散鍵情報及び暗号化プログラムから前記端末固有情報格納手段内の端末固有情報に基づいて、プログラムを復元するプログラム復元手段と、前記復元されたプログラムを前記端末装置内に出力する出力手段と、鍵情報が格納される鍵情報格納手段と、入力された処理要求に基づいて、暗号化処理、復号処理、署名生成処理、認証子の生成処理及び認証子の検証処理のうち、いずれかの処理を前記鍵情報を用いて実行し、実行結果を得る処理実行手段と、前記実行結果を前記端末装置内に出力する実行結果出力手段とを備えた情報プログラム保護装置である。   According to a fourth aspect of the present invention, there is provided an information program protection device comprising single-chip hardware incorporated in a terminal device, wherein the device-specific information storage means stores terminal-specific information unique to the terminal device, and a random number. An encrypted program input means for inputting from the terminal device an encrypted program obtained by encrypting a program based on the individualized key information generated based on the terminal-specific information from the generated distributed key information; Distributed key information input means for inputting key information from the terminal device, and program restoration for restoring a program based on the terminal unique information in the terminal unique information storage means from the inputted distributed key information and encrypted program Means, output means for outputting the restored program in the terminal device, key information storage means for storing key information, Based on the received processing request, one of the encryption process, the decryption process, the signature generation process, the authenticator generation process, and the authenticator verification process is executed using the key information, and the execution result An information program protection device comprising: a process execution means for obtaining the execution result; and an execution result output means for outputting the execution result into the terminal device.

第5の発明は、端末固有情報を有して共通鍵暗号方式を実行可能な端末装置に格納された秘密情報と前記秘密情報を処理するプログラムとを不正な利用又は解析から保護するように、前記プログラムの秘密分散に用いる乱数及び当該プログラムを少なくともn台のサーバ装置に秘密分散する情報プログラム保護方法であって、前記各サーバ装置のうちの分散用サーバ装置が乱数を生成する工程と、前記分散用サーバ装置が前記乱数及び端末固有情報に基づいて、個別化鍵情報を生成する工程と、前記分散用サーバ装置が前記プログラムを前記個別化鍵情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化プログラムを得る工程と、前記分散用サーバ装置が、前記乱数rを復元可能なn台以下のサーバ装置のグループの中で、一台でも欠けると乱数rが復元不可能となるグループである極小グループに基づいて、任意の(L+1)台のサーバ装置のグループでは乱数rを復元可能となる旨の最小の台数Lを定める工程と、L台以下のサーバ装置からなり、前記L台以下のサーバ装置により乱数rを復元可能で且つ1台でもサーバ装置が減ると、乱数rが復元不可能となる旨のd個の極小グループA(但し、1≦i≦d)を前記分散用サーバ装置に設定する工程と、任意の(L+1)台のサーバ装置のグループの中の極小グループに含まれるサーバ装置の集合をAとし、集合Aに含まれるサーバ装置の台数n’を求め、(L+1,n’)しきい値法により、乱数rに対する第1分散情報S={s,…,s’}を生成する工程と、前記集合Aに含まれるサーバ装置に対し、前記第1分散情報Sに含まれる要素{s,…,s’}を重複なく割り当てる工程と、前記分散用サーバ装置が、前記極小グループA毎に(|A|,|A|)しきい値法により(但し|A|はAに属するサーバ装置の台数)、前記乱数rの第2分散情報S={s{i,1},…,s{i,|Ai|}}を生成する工程と、前記分散用サーバ装置が、前記極小グループA毎に、前記第2分散情報Sに含まれる要素{s{i,1},…,s{i,|Ai|}}を当該極小グループAに含まれる各サーバ装置に個別に割り当てる工程とを備えた情報プログラム保護方法である。 According to a fifth aspect of the invention, the secret information stored in the terminal device having the terminal unique information and capable of executing the common key cryptosystem and the program for processing the secret information are protected from unauthorized use or analysis. A random number used for secret sharing of the program and an information program protection method for secretly distributing the program to at least n server devices, wherein the server device for distribution among the server devices generates a random number, A process in which the distribution server device generates personalized key information based on the random number and the terminal-specific information, and the distribution server device performs the encryption processing based on the personalization key information and the common key cryptosystem. In the group of n or less server devices in which the distribution server device can restore the random number r. A step of determining the minimum number L that the random number r can be restored in a group of arbitrary (L + 1) server devices based on a minimal group that is a group in which the random number r cannot be restored if even one is missing. And d minimum groups that the random number r can be restored by the L or less server devices, and the random number r cannot be restored if even one server device is reduced. A i (where 1 ≦ i ≦ d) is set in the distribution server device, and a set of server devices included in a minimum group among a group of arbitrary (L + 1) server devices is A 0. , The number n ′ of server devices included in the set A 0 is obtained, and first shared information S 0 = {s 1 ,..., S n ′} for the random number r is generated by the (L + 1, n ′) threshold method. And included in the set A 0 Assigning the elements {s 1 ,..., S n ′} included in the first shared information S 0 to the server device without duplication, and the server device for distribution for each minimal group A i (| A i |, | A i |) By the threshold method (where | A i | is the number of server devices belonging to A i ), the second distributed information S i = {s {i, 1} , ..., s {i, | Ai |} } and the server device for distribution includes, for each local group A i , elements {s {i, 1} included in the second distribution information S i , ..., s {i, | Ai |} is} information program protection method that includes a step of assigning individually to each server device included in the minimum group a i.

(作用)
第1及び第2の発明は、圧縮プログラムのビット長と同じビット長の乱数からなる分散情報が端末固有情報により暗号化されてなる暗号化分散情報と、分散情報及び圧縮プログラムの排他的論理和として算出された算出値が端末固有情報により暗号化されてなる暗号化算出値とを各サーバ装置に秘密分散し、プログラム処理時に、端末装置内の情報プログラム保護装置がこれら暗号化分散情報及び暗号化算出値から圧縮プログラムを復元するので、情報プログラム保護装置が保持する秘密情報(鍵情報)やプログラムのセキュリティ性を向上することができる。また、情報プログラム保護装置は、復元した圧縮プログラムを実行せずに端末装置内に出力するだけなので、従来とは異なりハードウェアの処理能力による制限が無く、任意のプログラムを実行することができる。また、排他的論理和を用いる構成により、秘密分散法を用いた際に、分散情報の個数を抑制することができる。
(Function)
In the first and second inventions, the encrypted shared information obtained by encrypting the shared information composed of random numbers having the same bit length as the bit length of the compressed program with the terminal specific information, and the exclusive OR of the distributed information and the compressed program An encrypted calculated value obtained by encrypting the calculated value calculated by the terminal unique information is secretly distributed to each server device, and the information program protection device in the terminal device performs the encryption distributed information and the encryption during the program processing. Since the compressed program is restored from the computerized calculation value, the confidential information (key information) held by the information program protection device and the security of the program can be improved. Further, since the information program protection device outputs only the restored compressed program to the terminal device without executing it, unlike the conventional case, there is no limitation due to the processing capability of the hardware, and an arbitrary program can be executed. In addition, the configuration using the exclusive OR can suppress the number of shared information when the secret sharing method is used.

第3及び第4の発明は、乱数により生成された分散鍵情報から端末固有情報に基づいて生成された個別化鍵情報に基づいてプログラムが暗号化されてなる暗号化プログラムと、分散鍵情報とを各サーバ装置に秘密分散し、プログラム処理時に、端末装置内の情報プログラム保護装置がこれら暗号化プログラム及び分散鍵情報からプログラムを復元するので、情報プログラム保護装置が保持する秘密情報(鍵情報)やプログラムのセキュリティ性を向上することができる。また、情報プログラム保護装置は、復元したプログラムを実行せずに端末装置内に出力するだけなので、従来とは異なりハードウェアの処理能力による制限が無く、任意のプログラムを実行することができる。また、暗号化プログラム及び分散鍵情報を用いる構成により、秘密分散法を用いた際に、分散情報の個数を抑制することができる。   The third and fourth inventions include an encryption program obtained by encrypting a program based on personalized key information generated based on terminal-specific information from distributed key information generated by random numbers, distributed key information, Secret information (key information) held by the information program protection device because the information program protection device in the terminal device restores the program from the encrypted program and the distributed key information during program processing. And the security of the program can be improved. Further, since the information program protection device outputs only the restored program to the terminal device without executing it, unlike the conventional one, there is no limitation due to the processing capability of the hardware, and an arbitrary program can be executed. In addition, the configuration using the encryption program and the distributed key information can suppress the number of distributed information when the secret sharing method is used.

第5の発明は、乱数及び端末固有情報に基づいて生成された個別化鍵情報に基づいてプログラムが暗号化されてなる暗号化プログラムと、乱数を秘密分散した第1及び第2分散情報とを各サーバ装置に秘密分散し、プログラム処理時に、端末装置内の情報プログラム保護装置がこれら暗号化プログラム及び各分散情報からプログラムを復元するので、情報プログラム保護装置が保持する秘密情報(鍵情報)やプログラムのセキュリティ性を向上することができる。また、情報プログラム保護装置は、復元したプログラムを実行せずに端末装置内に出力するだけなので、従来とは異なりハードウェアの処理能力による制限が無く、任意のプログラムを実行することができる。また、秘密分散法を用いる際に、(L+1,n’)しきい値法と(|Ai|,|Ai|)しきい値法を用いたので、(|Ai|,|Ai|)しきい値法のみを用いる場合に比べ、分散情報の個数を抑制することができる(図13及び図14参照)。   According to a fifth aspect of the present invention, there is provided an encrypted program obtained by encrypting a program based on personalized key information generated based on a random number and terminal-specific information, and first and second shared information obtained by secretly distributing the random number. Since the secret information is distributed to each server device and the program is processed, the information program protection device in the terminal device restores the program from the encrypted program and each of the distributed information. Therefore, the secret information (key information) held by the information program protection device The security of the program can be improved. Further, since the information program protection device outputs only the restored program to the terminal device without executing it, unlike the conventional one, there is no limitation due to the processing capability of the hardware, and an arbitrary program can be executed. In addition, since the (L + 1, n ′) threshold method and the (| Ai |, | Ai |) threshold method are used when the secret sharing method is used, the (| Ai |, | Ai |) threshold is used. Compared to the case where only the value method is used, the number of pieces of shared information can be suppressed (see FIGS. 13 and 14).

以上説明したように本発明によれば、保持する秘密情報やプログラムのセキュリティ性を向上でき、且つ任意のプログラムを実行できる。また、秘密分散法を用いた際に、分散情報の個数を抑制できる。   As described above, according to the present invention, it is possible to improve security of confidential information and programs to be held, and to execute arbitrary programs. In addition, when the secret sharing method is used, the number of shared information can be suppressed.

以下、本発明の各実施形態について図面を参照しながら説明する。
(第1の実施形態)
図1は本発明の第1の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。このシステムは、分散用サーバ装置Sv0、第1サーバ装置SV1、第2サーバ装置Sv2及び端末装置10を備えている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(First embodiment)
FIG. 1 is a schematic diagram showing the configuration of a secret sharing system to which the information program protection method according to the first embodiment of the present invention is applied. This system includes a distribution server device Sv0, a first server device SV1, a second server device Sv2, and a terminal device 10.

ここで、3台のサーバ装置Sv0〜Sv2は、説明の便宜上3台としたが、3台に限らず、1台のサーバ装置として実現しても良く、また任意の2台を一体化した1台のサーバ装置と残りの1台のサーバ装置とからなる2台のサーバ装置として実現しても良い。このことは以下の各実施形態でも同様である。   Here, the three server devices Sv0 to Sv2 are three for convenience of explanation. However, the number of server devices is not limited to three, and may be realized as a single server device. You may implement | achieve as two server apparatuses which consist of one server apparatus and the remaining one server apparatus. The same applies to the following embodiments.

分散用サーバ装置Sv0は、保護対象記憶部1、端末固有情報記憶部2、入力部3、圧縮部4、分散情報生成部5、秘密分散部6、個別化部7及び送信部8を備えている。   The distribution server device Sv0 includes a protection target storage unit 1, a terminal specific information storage unit 2, an input unit 3, a compression unit 4, a distributed information generation unit 5, a secret distribution unit 6, an individualization unit 7, and a transmission unit 8. Yes.

保護対象記憶部1は、端末装置10に利用される鍵情報及び/又はプログラム等といった保護対象が記憶されるメモリであり、入力部3により書込可能で、圧縮部4により読出可能となっている。   The protection target storage unit 1 is a memory in which a protection target such as key information and / or a program used for the terminal device 10 is stored. The protection target storage unit 1 can be written by the input unit 3 and can be read by the compression unit 4. Yes.

端末固有情報記憶部2は、端末装置10固有の情報として、鍵やIDなどの端末固有情報KP1が記憶されるメモリであり、個別化部7により読出可能となっている。 The terminal unique information storage unit 2 is a memory in which terminal unique information K P1 such as a key and ID is stored as information unique to the terminal device 10, and can be read by the individualizing unit 7.

入力部3は、端末装置10に利用される鍵情報及び/又はプログラム等といった保護対象を保護対象記憶部1に書込むための入力デバイスである。   The input unit 3 is an input device for writing a protection target such as key information and / or a program used for the terminal device 10 into the protection target storage unit 1.

圧縮部4は、保護対象記憶部1に記憶されて0と1からなるバイナリ形式のプログラムに対し、0と1の偏りを少なくするようにプログラムを圧縮し、圧縮プログラムCを得るものである。   The compression unit 4 compresses the program so as to reduce the bias of 0 and 1 with respect to the binary format program consisting of 0 and 1 stored in the protection target storage unit 1, and obtains the compressed program C.

分散情報生成部5は、圧縮部4により得られた圧縮プログラムCのビット長を算出する機能と、得られたビット長と同じビット長の乱数rからなる分散情報Sを生成するものである。   The shared information generation unit 5 generates a shared information S composed of a function for calculating the bit length of the compression program C obtained by the compression unit 4 and a random number r having the same bit length as the obtained bit length.

秘密分散部6は、分散情報生成部5により得られた分散情報Sと圧縮プログラムCとの各ビットの排他的論理和を算出し、算出値S’を得るものである。   The secret sharing unit 6 calculates an exclusive OR of each bit of the shared information S obtained by the shared information generating unit 5 and the compression program C, and obtains a calculated value S ′.

個別化部7は、秘密分散部6により得られた算出値S’を端末固有情報記憶部2内の端末固有情報KP1及び共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化算出値E(KP1,S’)を得る機能と、分散情報生成部5により得られた分散情報Sを端末固有情報記憶部2内の端末固有情報KP1及び共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化分散情報E(KP1,S)を得る機能とをもっている。 The individualization unit 7 encrypts the calculated value S ′ obtained by the secret sharing unit 6 by encryption processing based on the terminal unique information K P1 in the terminal unique information storage unit 2 and the common key encryption method, and obtains the encrypted calculated value A function for obtaining E (K P1 , S ′) and the shared information S obtained by the shared information generating unit 5 by the encryption process based on the terminal unique information K P1 in the terminal unique information storage unit 2 and the common key cryptosystem It has a function of encrypting and obtaining encrypted distributed information E (K P1 , S).

送信部8は、個別化部7により得られた暗号化分散情報E(KP1,S)を第1サーバ装置Sv1に送信する機能と、個別化部7により得られた暗号化算出値E(KP1,S’)を第2サーバ装置Sv2に送信する機能とをもっている。 The transmitting unit 8 has a function of transmitting the encrypted shared information E (K P1 , S) obtained by the individualizing unit 7 to the first server device Sv1, and an encrypted calculated value E ( K P1 , S ′) is transmitted to the second server device Sv2.

第1サーバ装置Sv1は、分散用サーバ装置Sv0から受けた暗号化分散情報E(KP1,S)をメモリに記憶する機能と、端末装置10からの要求に基づいて、メモリ内の暗号化分散情報E(KP1,S)を端末装置10に送信する機能とをもっている。 The first server device Sv1 stores the encrypted distribution information E (K P1 , S) received from the distribution server device Sv0 in the memory and the encryption distribution in the memory based on the request from the terminal device 10. And a function of transmitting information E (K P1 , S) to the terminal device 10.

第2サーバ装置Sv2は、分散用サーバ装置Sv0から受けた暗号化算出値E(KP1,S’)をメモリに記憶する機能と、端末装置10からの要求に基づいて、メモリ内の暗号化算出値E(KP1,S’)を端末装置10に送信する機能とをもっている。 The second server device Sv2 is configured to store the encrypted calculated value E (K P1 , S ′) received from the distribution server device Sv0 in the memory, and to encrypt the memory in the memory based on the request from the terminal device 10. And a function of transmitting the calculated value E (K P1 , S ′) to the terminal device 10.

端末装置10は、端末固有情報KP1を有して共通鍵暗号方式及び排他的論理和を実行可能なセキュアチップ装置(図示せず)を備えた計算機である。 The terminal device 10 is a computer including a secure chip device (not shown) that has terminal-specific information K P1 and can execute a common key cryptosystem and exclusive OR.

ここで、端末装置10内のセキュアチップ装置は、例えばシングルチップ形式の耐タンパー性ハードウェアからなり、入力された暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をそれぞれ端末固有情報KP1及び共通鍵暗号方式に基づいた復号処理により復号し、分散情報S及び算出値S’を得る機能と、得られた分散情報S及び算出値S’の排他的論理和S XOR S’を算出して圧縮プログラムCを復元する機能とをもっている。 Here, the secure chip device in the terminal device 10 is composed of, for example, single-chip tamper-resistant hardware, and the input encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) is decrypted by decryption processing based on the terminal-specific information K P1 and the common key cryptography, respectively, and a function for obtaining the shared information S and the calculated value S ′, and exclusive use of the obtained shared information S and the calculated value S ′ And the function of restoring the compression program C by calculating the logical OR S XOR S ′.

また、端末装置10は、第1サーバ装置Sv1に暗号化分散情報E(KP1,S)を要求する機能と、第2サーバ装置Sv2に暗号化算出値E(KP1,S’)を要求する機能と、各サーバSv1,Sv2から受けた暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をセキュアチップ装置に入力する機能と、セキュアチップ装置により得られた圧縮プログラムCを解凍してプログラムを復元する機能と、プログラムを実行して実行終了後に当該プログラムを削除する機能とをもっている。 The terminal device 10 requests the first server device Sv1 for the encrypted shared information E (K P1 , S), and requests the second server device Sv2 for the encrypted calculated value E (K P1 , S ′). A function for inputting the encrypted shared information E (K P1 , S ′) and the encrypted calculated value E (K P1 , S ′) received from each of the servers Sv1, Sv2, and the secure chip device. It has a function of decompressing the obtained compressed program C and restoring the program, and a function of executing the program and deleting the program after the execution is completed.

次に、以上のように構成された秘密分散システムの動作を図2のフローチャートを用いて説明する。
分散用サーバ装置Sv0では、入力部3が、鍵情報及び/又はプログラム等といった保護対象を保護対象記憶部1に書込む。しかる後、圧縮部4は、保護対象記憶部1に記憶されて0と1からなるバイナリ形式のプログラムに対し、0と1の偏りを少なくするようにデータ圧縮手法によりプログラムを圧縮し(ST1)、圧縮プログラムCを得る。データ圧縮手法には、Zip形式やLZH形式等の標準的なデータ圧縮アルゴリズムが使用可能である。
Next, the operation of the secret sharing system configured as described above will be described with reference to the flowchart of FIG.
In the distribution server device Sv0, the input unit 3 writes a protection target such as key information and / or a program into the protection target storage unit 1. Thereafter, the compression unit 4 compresses the program by the data compression method so as to reduce the bias of 0 and 1 with respect to the binary format program consisting of 0 and 1 stored in the protection target storage unit 1 (ST1). A compression program C is obtained. As the data compression method, a standard data compression algorithm such as Zip format or LZH format can be used.

分散情報生成部5は、この圧縮プログラムCのビット長を算出し、得られたビット長と同じビット長の乱数rからなる分散情報Sを生成する(ST2)。例えば、圧縮プログラムのビット長がnビットであり、圧縮プログラムの各ビットをcとすると、圧縮プログラムCは、C=(c,c,…,c) 1≦i≦nと表される。このとき、圧縮プログラムCと同じビット長の乱数rからなる分散情報Sは、S=(s,s,…,s) 1≦i≦nと生成される。 The shared information generation unit 5 calculates the bit length of the compression program C, and generates the shared information S composed of random numbers r having the same bit length as the obtained bit length (ST2). For example, the bit length of the compressor is n bits, the table when each bit of the compressed program and c i, compressor C is, C = (c 1, c 2, ..., c n) with 1 ≦ i ≦ n Is done. At this time, the distributed information S including the random number r having the same bit length as that of the compression program C is generated as S = (s 1 , s 2 ,..., S n ) 1 ≦ i ≦ n.

秘密分散部6は、この分散情報Sと圧縮プログラムCとの各ビットの排他的論理和を算出し、算出値S’を得る。例えば、排他的論理和の算出値S’は、S’=(s’,s’,…,s’) 1≦i≦n と表される。但し、s’=c XOR s 1≦i≦nである。これにより、圧縮プログラムCは秘密分散される(ST3)。 The secret sharing unit 6 calculates an exclusive OR of each bit of the shared information S and the compression program C, and obtains a calculated value S ′. For example, the calculated value S ′ of the exclusive OR is expressed as S ′ = (s ′ 1 , s ′ 2 ,..., S ′ n ) 1 ≦ i ≦ n. However, s ′ i = c i XOR s i 1 ≦ i ≦ n. As a result, the compression program C is secretly shared (ST3).

個別化部7は、この算出値S’を端末固有情報記憶部2内の端末固有情報KP1及び共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化算出値E(KP1,S’)を得る。同様に、個別化部7は、分散情報生成部5により得られた分散情報Sを端末固有情報記憶部2内の端末固有情報KP1及び共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化分散情報E(KP1,S)を得る。このように、秘密分散された圧縮プログラムCは、端末固有情報KP1に基づいて、暗号化分散情報E(KP1,S)と暗号化算出値E(KP1,S’)に個別化される(ST4)。この個別化により、端末固有情報KP1が無い場合には元のプログラムを正しく復元することができない。また秘密分散により、端末固有情報KP1があったとしても、暗号化分散情報E(KP1,S)と暗号化算出値E(KP1,S’)との一方だけからでは元のプログラムを復元できない。 The individualization unit 7 encrypts the calculated value S ′ by encryption processing based on the terminal unique information K P1 in the terminal unique information storage unit 2 and the common key cryptosystem, and the encrypted calculated value E (K P1 , S ′ ) Similarly, the individualizing unit 7 encrypts the shared information S obtained by the shared information generating unit 5 by encryption processing based on the terminal unique information K P1 in the terminal unique information storage unit 2 and the common key cryptosystem, Generalized distributed information E (K P1 , S) is obtained. Thus, the secret-distributed compression program C is individualized into encrypted distributed information E (K P1 , S) and encrypted calculated value E (K P1 , S ′) based on the terminal-specific information K P1. (ST4). Due to this individualization, the original program cannot be correctly restored if there is no terminal-specific information K P1 . Moreover, even if the terminal-specific information K P1 exists due to secret sharing, the original program cannot be obtained from only one of the encrypted sharing information E (K P1 , S ′) and the encryption calculated value E (K P1 , S ′). It cannot be restored.

送信部8は、暗号化分散情報E(KP1,S)を第1サーバ装置Sv1に送信する一方、暗号化算出値E(KP1,S’)を第2サーバ装置Sv2に送信する。 The transmission unit 8 transmits the encrypted shared information E (K P1 , S) to the first server device Sv1, while transmitting the encrypted calculated value E (K P1 , S ′) to the second server device Sv2.

第1サーバ装置Sv1は、暗号化分散情報E(KP1,S)をメモリに記憶する。第2サーバ装置Sv2は、暗号化算出値E(KP1,S’)をメモリに記憶する。これにより、プログラムの秘密分散が完了する。 The first server device Sv1 stores the encrypted shared information E (K P1 , S) in the memory. The second server device Sv2 stores the encrypted calculated value E (K P1 , S ′) in the memory. Thereby, secret sharing of the program is completed.

続いて、端末装置10が秘密分散されたプログラムを復元する動作について述べる。   Next, the operation of restoring the secret-distributed program by the terminal device 10 will be described.

端末装置10は、図示しないユーザの操作等により、第1サーバ装置Sv1に暗号化分散情報E(KP1,S)を要求すると共に、第2サーバ装置Sv2に暗号化算出値E(KP1,S’)を要求する。 The terminal device 10 requests the encrypted shared information E (K P1 , S) from the first server device Sv1 and the encrypted calculated value E (K P1 , S) from the second server device Sv2 by a user operation (not shown). S ′) is requested.

第1サーバ装置Sv1は、この要求に基づいて、メモリ内の暗号化分散情報E(KP1,S)を端末装置10に送信する。同様に、第2サーバ装置Sv2は、この要求に基づいて、メモリ内の暗号化算出値E(KP1,S’)を端末装置10に送信する。 Based on this request, the first server device Sv1 transmits the encrypted shared information E (K P1 , S) in the memory to the terminal device 10. Similarly, the second server device Sv2 transmits the encrypted calculated value E (K P1 , S ′) in the memory to the terminal device 10 based on this request.

端末装置10においては、図示しないセキュアチップ装置が、各サーバSv1,Sv2から受けた暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をそれぞれ端末固有情報KP1及び共通鍵暗号方式に基づいた復号処理により復号し、分散情報S及び算出値S’を得る。 In the terminal device 10, the secure chip device (not shown) receives the encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) received from the servers Sv1, Sv2, respectively. Decryption is performed by decryption processing based on K P1 and the common key cryptosystem, and distributed information S and calculated value S ′ are obtained.

また、セキュアチップ装置は、得られた分散情報S及び算出値S’の排他的論理和S XOR S’を算出して圧縮プログラムCを復元し、端末装置10内に出力する。   Further, the secure chip device calculates the exclusive OR S XOR S ′ of the obtained shared information S and the calculated value S ′, restores the compression program C, and outputs it to the terminal device 10.

端末装置10は、セキュアチップ装置により得られた圧縮プログラムCを解凍してプログラムを復元する。しかる後、端末装置10はプログラムを実行し、実行終了後、当該プログラムを削除する。   The terminal device 10 decompresses the compression program C obtained by the secure chip device and restores the program. Thereafter, the terminal device 10 executes the program, and deletes the program after the execution is completed.

上述したように本実施形態によれば、圧縮プログラムCのビット長と同じビット長の乱数rからなる分散情報Sが端末固有情報KP1により暗号化されてなる暗号化分散情報E(KP1,S)と、分散情報S及び圧縮プログラムCの排他的論理和として算出された算出値S’が端末固有情報KP1により暗号化されてなる暗号化算出値E(KP1,S’)とを各サーバ装置Sv1,Sv2に秘密分散し、プログラム処理時に、端末装置10がこれら暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)から圧縮プログラムCを復元するようにしたので、端末装置10内のセキュアチップ装置が保持する秘密情報(鍵情報)や、端末装置10が実行するプログラムのセキュリティ性を向上させることができる。 As described above, according to the present embodiment, the encrypted shared information E (K P1 , K P1 , which is obtained by encrypting the shared information S composed of the random number r having the same bit length as that of the compression program C with the terminal specific information K P1 . S) and an encrypted calculated value E (K P1 , S ′) obtained by encrypting the calculated value S ′ calculated as the exclusive OR of the distributed information S and the compression program C with the terminal specific information K P1. Secret sharing is performed on each server device Sv1, Sv2, and the terminal device 10 restores the compressed program C from the encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) during program processing. As a result, the security of the secret information (key information) held by the secure chip device in the terminal device 10 and the program executed by the terminal device 10 can be improved.

具体的にはデータやプログラムを秘密分散や個別化処理することで、データやプログラムの配布時のセキュリティや端末の記憶装置に保存されているデータやプログラムのセキュリティの向上が可能となる。例えば、端末装置10がプログラムを持たないので、プログラムを不正な利用又は解析から保護することができる。また、プログラムは、秘密分散され個別化された状態で外部のサーバ装置Sv1,Sv2に記憶されているので、不正な利用又は解析から保護されている。   Specifically, by performing secret sharing and individualization processing of data and programs, it is possible to improve security at the time of distribution of the data and programs and security of data and programs stored in the storage device of the terminal. For example, since the terminal device 10 does not have a program, the program can be protected from unauthorized use or analysis. Further, since the program is stored in the external server devices Sv1 and Sv2 in a secret-divided and individualized state, the program is protected from unauthorized use or analysis.

また、セキュアチップ装置は、復元した圧縮プログラムを実行せずに端末装置10内に出力するだけなので、従来とは異なりハードウェアの処理能力による制限が無く、任意のプログラムを実行することができる。また、排他的論理和を用いる構成により、秘密分散法を用いた際に、分散情報の個数を抑制することができる。   Further, since the secure chip device only outputs the restored compressed program to the terminal device 10 without executing it, unlike the conventional case, there is no limitation due to the processing capability of the hardware, and an arbitrary program can be executed. In addition, the configuration using the exclusive OR can suppress the number of shared information when the secret sharing method is used.

(第2の実施形態)
図3は本発明の第2の実施形態に係る情報プログラム保護装置が適用されるセキュアチップ装置を備えた端末装置及びその周辺構成を示す模式図であり、図1と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。なお、以下の各実施形態も同様にして重複した説明を省略する。
(Second Embodiment)
FIG. 3 is a schematic diagram showing a terminal device including a secure chip device to which the information program protection device according to the second embodiment of the present invention is applied and its peripheral configuration, and the same parts as those in FIG. The detailed explanation is omitted, and different parts are mainly described here. In the following embodiments, the same description is omitted.

すなわち、本実施形態は、第1の実施形態の具体例であり、端末装置10の構成が具体的に述べられている。   That is, this embodiment is a specific example of the first embodiment, and the configuration of the terminal device 10 is specifically described.

ここで、端末装置10は、プログラム実行部11、メモリ11a、通信部12及びセキュアチップ装置13を備えている。セキュアチップ装置13は、具体的には、制御部14、端末固有情報格納部15、個別化解除部16、分散プログラム復元部17、鍵情報格納部18及びセキュリティ処理部19を備えている。   Here, the terminal device 10 includes a program execution unit 11, a memory 11a, a communication unit 12, and a secure chip device 13. Specifically, the secure chip device 13 includes a control unit 14, a terminal specific information storage unit 15, an individualization release unit 16, a distributed program restoration unit 17, a key information storage unit 18, and a security processing unit 19.

プログラム実行部11は、プログラム(又は鍵情報)を入手するため、通信部12を介して第1及び第2サーバ装置Sv1,Sv2にプログラム(又は鍵情報)を要求する機能と、セキュアチップ装置13から受けた圧縮プログラムCを解凍し、得られたプログラム(又は鍵ID)をメモリ11aに記憶させて実行する機能と、プログラムの実行終了後、メモリ11a内のプログラムをメモリ11aから削除する機能とをもっている。 The program execution unit 11 has a function of requesting a program (or key information) from the first and second server devices Sv1 and Sv2 via the communication unit 12 in order to obtain a program (or key information), and the secure chip device 13 A function of decompressing the compressed program C received from the program and storing the obtained program (or key ID k ) in the memory 11a and executing the program, and a function of deleting the program in the memory 11a from the memory 11a after the execution of the program is completed I have.

プログラム実行部11は、プログラムの実行中、必要により、処理ID、鍵ID及びデータDからなるセキュリティ処理要求をセキュアチップ装置13に入力する機能と、セキュアチップ装置13から受けたセキュリティ処理の実行結果P(K,D)を用い、現在実行中のプログラムの実行を継続する機能とをもっている。 The program execution unit 11 has a function of inputting a security processing request including the processing ID p , the key ID k, and the data D to the secure chip device 13 as necessary during execution of the program, and the security processing received from the secure chip device 13. The execution result P (K, D) is used to have a function of continuing the execution of the currently executing program.

メモリ11aは、プログラム実行部11から読出/書込可能な記憶部であり、圧縮プログラムC、解凍後のプログラム、実行結果P(K,D)、鍵IDなどが適宜記憶される。 The memory 11a is a storage unit that can be read / written from the program execution unit 11, and stores a compression program C, a decompressed program, an execution result P (K, D), a key ID k, and the like as appropriate.

通信部12は、プログラム実行部11から受けた要求を第1及び第2サーバ装置Sv1,Sv2に送信する機能と、第1及び第2サーバ装置Sv1,Sv2から受けた暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をセキュアチップ装置13に入力する機能とをもっている。なお、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)は、通信部12からセキュアチップ装置13に入力される場合に限らず、通信部12からプログラム実行部11を介してセキュアチップ装置13に入力されるようにしてもよい。 The communication unit 12 transmits a request received from the program execution unit 11 to the first and second server devices Sv1 and Sv2, and the encrypted shared information E (K) received from the first and second server devices Sv1 and Sv2. P 1 , S) and the encryption calculated value E (K P 1 , S ′) are input to the secure chip device 13. It should be noted that the encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) are not limited to being input from the communication unit 12 to the secure chip device 13, but may be programmed from the communication unit 12. It may be input to the secure chip device 13 via the execution unit 11.

セキュアチップ装置13は、端末装置10に内蔵されたシングルチップ形式の耐タンパー性ハードウェアからなり、通信部12から暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)が入力されると、以下の各部14〜18により、復元された圧縮プログラムC又は鍵IDをプログラム実行部11に出力する機能と、プログラム実行部11からセキュリティ処理要求(処理ID,鍵ID,データD)が入力されると、以下の各部14,18,19により、セキュリティ処理の実行結果P(K,D)をプログラム実行部11に出力する機能をもっている。 The secure chip device 13 is composed of single-chip tamper-resistant hardware built in the terminal device 10, and the encrypted shared information E (K P1 , S) and the calculated encryption value E (K P1 , When S ′) is input, a function for outputting the decompressed compressed program C or key ID k to the program execution unit 11 by the following units 14 to 18 and a security processing request (processing ID p from the program execution unit 11) , Key ID k , data D) is input, the following units 14, 18, 19 have a function of outputting a security processing execution result P (K, D) to the program execution unit 11.

ここで、セキュリティ処理としては、鍵情報格納部18内の鍵情報Kを用いる処理であり、例えば暗号化処理、復号処理、署名生成処理、認証子の生成処理、又は認証子の検証処理などが使用可能となっている。なお、データDは、必ずしもセキュリティ処理要求に含まれる必要は無く、例えばセキュリティ処理部19等が乱数(又は時刻データ)等の数値データを生成してデータDとする場合にはセキュリティ処理要求から省略してもよい。   Here, the security process is a process using the key information K in the key information storage unit 18, and includes, for example, an encryption process, a decryption process, a signature generation process, an authenticator generation process, or an authenticator verification process. It can be used. The data D is not necessarily included in the security processing request. For example, when the security processing unit 19 or the like generates numerical data such as a random number (or time data) and uses it as the data D, it is omitted from the security processing request. May be.

制御部14は、入力内容に応じ、復元された圧縮プログラムC、鍵ID、又は実行結果P(K,D)を得るように、各部15〜19を制御する機能と、得られた結果をプログラム実行部11に出力する機能とをもっている
端末固有情報格納部15は、端末固有情報KP1が記憶される耐タンパーメモリであり、制御部14から読出/書込可能となっている。端末固有情報KP1は、個別化されたプログラム等の個別化を解除する際に利用される情報であり、各端末装置毎に固有の値(鍵又はID等)が用いられる。ここで、「個別化」の語は、「特定の端末装置でのみ復号可能な暗号化」を意味し、「個別化を解除」の語は「復号」を意味する。
The control unit 14 controls the functions of the units 15 to 19 and obtains the obtained results so as to obtain the restored compression program C, key ID k , or execution result P (K, D) according to the input content. The terminal specific information storage unit 15 having a function of outputting to the program execution unit 11 is a tamper-resistant memory in which the terminal specific information K P1 is stored, and can be read / written from the control unit 14. The terminal unique information K P1 is information used when releasing individualization of an individualized program or the like, and a unique value (key or ID or the like) is used for each terminal device. Here, the term “individualization” means “encryption that can be decrypted only by a specific terminal device”, and the term “cancel individualization” means “decryption”.

個別化解除部16は、制御部14から端末固有情報KP1、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)が入力されると、端末固有情報KP1に基づいて、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をそれぞれ復号し(て個別化を解除し)、分散情報S及び算出値S’を復元する機能と、得られた分散情報S及び算出値S’を制御部14に出力する機能とをもっている。 The personalization release unit 16 receives the terminal-specific information when the terminal-specific information K P1 , the encrypted shared information E (K P1 , S), and the encrypted calculated value E (K P1 , S ′) are input from the control unit 14. Based on K P1 , the encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) are decrypted (and the individualization is released), and the distributed information S and the calculated value S are obtained. And a function of outputting the obtained distributed information S and calculated value S ′ to the control unit 14.

分散プログラム復元部17は、制御部14から入力された分散情報Sと算出値S’との排他的論理和を算出し、得られた算出結果C(又は鍵情報K,鍵ID)を制御部14に出力する機能をもっている。 The distributed program restoration unit 17 calculates the exclusive OR of the distributed information S input from the control unit 14 and the calculated value S ′, and controls the obtained calculation result C (or key information K, key ID k ). It has a function of outputting to the unit 14.

鍵情報格納部18は、鍵情報K及び鍵IDが互いに関連付けられて記憶される耐タンパーメモリであり、制御部14から読出/書込可能となっている。 The key information storage unit 18 is a tamper resistant memory in which the key information K and the key ID k are stored in association with each other, and can be read / written from the control unit 14.

セキュリティ処理部19は、制御部14から鍵情報K、処理ID及びデータDが入力されると、処理IDで指定された処理Pを鍵情報Kに基づいてデータDに実行する機能と、得られた実行結果P(K,D)を制御部14に出力する機能とをもっている。 When the key information K, the process ID p, and the data D are input from the control unit 14, the security processing unit 19 executes a process P specified by the process ID p on the data D based on the key information K, and And a function of outputting the obtained execution result P (K, D) to the control unit 14.

次に、以上のように構成された端末装置の動作を図4のフローチャートを用いて説明する。
(プログラムの復元)
いま、第1の実施形態と同様に、圧縮プログラムCを秘密分散及び個別化してなる暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)が、それぞれ第1及び第2サーバ装置Sv1,Sv2に記憶されているとする。
Next, the operation of the terminal device configured as described above will be described with reference to the flowchart of FIG.
(Restore program)
As in the first embodiment, the encrypted shared information E (K P1 , S) obtained by secret sharing and individualizing the compression program C and the encrypted calculated value E (K P1 , S ′) are respectively 1 and the second server apparatuses Sv1 and Sv2.

一方、端末装置10においては、図示しない外部操作等により、プログラムの実行がプログラム実行部11に要求される。プログラム実行部11は、実行するプログラムを入手するため、通信部12を介して第1及び第2サーバ装置Sv1,Sv2にプログラムを要求する。   On the other hand, in the terminal device 10, the program execution unit 11 is requested to execute the program by an external operation (not shown). The program execution unit 11 requests a program from the first and second server devices Sv1 and Sv2 via the communication unit 12 in order to obtain a program to be executed.

第1及び第2サーバ装置Sv1,Sv2は、それぞれ要求を受けると、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)を個別に端末装置10に返信する。 Upon receiving the request, the first and second server devices Sv1 and Sv2 individually return the encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) to the terminal device 10. To do.

通信部12は、受信した暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をセキュアチップ装置13に入力する。 The communication unit 12 inputs the received encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) to the secure chip device 13.

セキュアチップ装置13は、入力があると、入力内容を識別する(ST11)。入力内容が個別化されたプログラムに相当する暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)の場合(ST12)、制御部14が端末固有情報格納部15から端末固有情報KP1を読出す。 When there is an input, the secure chip device 13 identifies the input content (ST11). In the case of the encrypted shared information E (K P1 , S ′) and the encrypted calculated value E (K P1 , S ′) corresponding to the program whose input contents are individualized (ST12), the control unit 14 is the terminal specific information storage unit. 15 reads terminal specific information K P1 .

制御部14は、この端末固有情報KP1及び入力された暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)を個別化解除部16に入力する。 The control unit 14 inputs the terminal specific information K P1, the input encrypted shared information E (K P1 , S), and the calculated encryption value E (K P1 , S ′) to the individualization release unit 16.

個別化解除部16は、端末固有情報KP1に基づいて、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をそれぞれ復号し(て個別化を解除し)、分散情報S及び算出値S’を復元する(ST13)。なお、分散情報Sと算出値S’との組は秘密分散プログラムS,S’と呼んでもよい。個別化解除部16は、分散情報S及び算出値S’からなる秘密分散プログラムS,S’を制御部14に出力する。 The individualization release unit 16 decrypts the encrypted shared information E (K P1 , S ′) and the encrypted calculated value E (K P1 , S ′) based on the terminal specific information K P1 (to release the individualization). And the shared information S and the calculated value S ′ are restored (ST13). Note that a set of the shared information S and the calculated value S ′ may be called secret sharing programs S and S ′. The individualization release unit 16 outputs the secret sharing program S, S ′ including the shared information S and the calculated value S ′ to the control unit 14.

制御部14は、この秘密分散プログラムS,S’を分散プログラム復元部17に入力する。分散プログラム復元部17は、秘密分散プログラムS,S’における分散情報Sと算出値S’との排他的論理和を算出し、算出結果Cを得る。この算出結果Cは圧縮プログラムCに相当するので、圧縮プログラムCが復元される(ST14)。分散プログラム復元部17は、圧縮プログラムCを制御部14に出力する。   The control unit 14 inputs the secret sharing programs S and S ′ to the distributed program restoring unit 17. The distributed program restoration unit 17 calculates an exclusive OR of the distributed information S and the calculated value S ′ in the secret sharing programs S and S ′, and obtains a calculation result C. Since the calculation result C corresponds to the compression program C, the compression program C is restored (ST14). The distributed program restoration unit 17 outputs the compression program C to the control unit 14.

制御部14は、この圧縮プログラムCをチップ13外部のプログラム実行部11に出力する(ST15)。   The control unit 14 outputs the compression program C to the program execution unit 11 outside the chip 13 (ST15).

プログラム実行部11は、圧縮プログラムCを解凍し、得られたプログラムをメモリ11aに記憶させて実行する。プログラムの実行終了後、プログラム実行部11は、メモリ11a内のプログラムをメモリ11aから削除し、処理を終了する。   The program execution unit 11 decompresses the compressed program C, stores the obtained program in the memory 11a, and executes it. After the execution of the program ends, the program execution unit 11 deletes the program in the memory 11a from the memory 11a and ends the process.

(セキュリティ処理の実行)
いま、端末装置10においては、例えばプログラム実行部11によるプログラムの実行中、処理IDで示されるセキュリティ処理の実行結果が必要になったとする。このとき、プログラム実行部11は、処理ID、鍵ID及びデータDからなるセキュリティ処理要求をセキュアチップ装置13に入力する。
(Perform security processing)
Now, it is assumed that the terminal device 10 needs the execution result of the security process indicated by the process ID during the execution of the program by the program execution unit 11, for example. At this time, the program execution unit 11 inputs a security processing request including the processing ID p , the key ID k, and the data D to the secure chip device 13.

セキュアチップ装置11においては、前述同様に入力内容が識別される(ST11)。入力内容が処理ID、鍵ID及びデータDからなるセキュリティ処理要求の場合(ST16)、制御部14は、入力された処理要求に含まれる鍵IDに基づいて、鍵情報格納部18から鍵情報Kを読出す。 In the secure chip device 11, the input content is identified as described above (ST11). When the input content is a security processing request including processing ID p , key ID k, and data D (ST16), the control unit 14 reads the key information storage unit 18 from the key ID k included in the input processing request. Read key information K.

制御部14は、読出した鍵情報K、処理要求に含まれる処理ID及びデータDをセキュリティ処理部19に入力する(ST17)。 The control unit 14 inputs the read key information K, the processing ID p and the data D included in the processing request to the security processing unit 19 (ST17).

セキュリティ処理部19は、処理IDで指定された処理を鍵情報Kに基づいてデータDに実行し(ST18)、実行結果P(K,D)を得る。なお、指定される処理としては、例えば、暗号化処理、復号処理、署名生成処理、認証子の生成処理、又は認証子の検証処理などが適用可能となっている。いずれにしても、セキュリティ処理部19は、得られた実行結果P(K,D)を制御部14に出力する。 The security processing unit 19 executes the process specified by the process ID p on the data D based on the key information K (ST18), and obtains an execution result P (K, D). For example, an encryption process, a decryption process, a signature generation process, an authenticator generation process, or an authenticator verification process can be applied as the designated process. In any case, the security processing unit 19 outputs the obtained execution result P (K, D) to the control unit 14.

制御部14は、この実行結果P(K,D)をチップ13外部のプログラム実行部11に出力する(ST19)。   The control unit 14 outputs the execution result P (K, D) to the program execution unit 11 outside the chip 13 (ST19).

プログラム実行部11は、この実行結果P(K,D)を用い、現在実行中のプログラムの実行を継続する。なお、プログラムの実行終了後、プログラム実行部11は、メモリ11a内のプログラムをメモリ11aから削除し、処理を終了する。   The program execution unit 11 uses the execution result P (K, D) to continue execution of the currently executing program. Note that after the execution of the program is completed, the program execution unit 11 deletes the program in the memory 11a from the memory 11a and ends the process.

(鍵情報の復元)
鍵情報Kの復元処理は、前述した圧縮プログラムCに代えて、鍵情報Kが秘密分散され個別化された場合に当該鍵情報Kを復元する内容である。但し、鍵情報Kは必ずしも圧縮されている必要はない。以下、順次説明する。
(Restore key information)
The restoration process of the key information K is a content for restoring the key information K when the key information K is secretly shared and individualized instead of the compression program C described above. However, the key information K does not necessarily need to be compressed. Hereinafter, description will be made sequentially.

いま、前述同様に、鍵情報Kを秘密分散及び個別化してなる暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)が、それぞれ第1及び第2サーバ装置Sv1,Sv2に記憶されているとする。 As described above, the encrypted shared information E (K P1 , S) obtained by secret sharing and individualizing the key information K and the encrypted calculated value E (K P1 , S ′) are respectively stored in the first and second servers. It is assumed that they are stored in the devices Sv1 and Sv2.

一方、端末装置10においては、図示しない外部操作等により、鍵情報Kの入手がプログラム実行部11に要求される。プログラム実行部11は、鍵情報Kを入手するため、通信部12を介して第1及び第2サーバ装置Sv1,Sv2に鍵情報Kを要求する。   On the other hand, in the terminal device 10, the program execution unit 11 is requested to obtain the key information K by an external operation or the like (not shown). The program execution unit 11 requests the key information K from the first and second server devices Sv1 and Sv2 via the communication unit 12 in order to obtain the key information K.

第1及び第2サーバ装置Sv1,Sv2は、それぞれ要求を受けると、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)を個別に端末装置10に返信する。 Upon receiving the request, the first and second server devices Sv1 and Sv2 individually return the encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) to the terminal device 10. To do.

通信部12は、受信した暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をセキュアチップ装置13に入力する。 The communication unit 12 inputs the received encrypted shared information E (K P1 , S) and the encrypted calculated value E (K P1 , S ′) to the secure chip device 13.

セキュアチップ装置13は、入力があると、入力内容を識別する(ST11)。入力内容が個別化された鍵情報Kに相当する暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)の場合(ST20)、制御部14が端末固有情報格納部15から端末固有情報KP1を読出す。 When there is an input, the secure chip device 13 identifies the input content (ST11). In the case of the encrypted shared information E (K P1 , S) corresponding to the individual key information K and the encrypted calculated value E (K P1 , S ′) (ST20), the control unit 14 determines the terminal-specific information. Terminal specific information K P1 is read from storage unit 15.

制御部14は、この端末固有情報KP1及び入力された暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)を個別化解除部16に入力する。 The control unit 14 inputs the terminal specific information K P1, the input encrypted shared information E (K P1 , S), and the calculated encryption value E (K P1 , S ′) to the individualization release unit 16.

個別化解除部16は、端末固有情報KP1に基づいて、暗号化分散情報E(KP1,S)及び暗号化算出値E(KP1,S’)をそれぞれ復号し(て個別化を解除し)、分散情報S及び算出値S’を復元する(ST21)。なお、分散情報Sと算出値S’との組は秘密分散鍵情報S,S’と呼んでもよい。個別化解除部16は、分散情報S及び算出値S’からなる秘密分散鍵情報S,S’を制御部14に出力する。 The individualization release unit 16 decrypts the encrypted shared information E (K P1 , S ′) and the encrypted calculated value E (K P1 , S ′) based on the terminal specific information K P1 (to release the individualization). The shared information S and the calculated value S ′ are restored (ST21). A set of the shared information S and the calculated value S ′ may be called secret shared key information S and S ′. The individualization release unit 16 outputs the secret sharing key information S and S ′ including the sharing information S and the calculated value S ′ to the control unit 14.

制御部14は、この秘密分散鍵情報S,S’を分散プログラム復元部17に入力する。分散プログラム復元部17は、秘密分散鍵情報S,S’における分散情報Sと算出値S’との排他的論理和を算出し、算出結果Cを得る。この算出結果Cは鍵情報及び鍵IDに相当するので、鍵情報K及び鍵IDが復元される(ST22)。分散プログラム復元部17は、鍵情報K及び鍵IDを制御部14に出力する。 The control unit 14 inputs the secret sharing key information S and S ′ to the distributed program restoring unit 17. The distributed program restoration unit 17 calculates an exclusive OR of the distributed information S and the calculated value S ′ in the secret shared key information S and S ′, and obtains a calculation result C. Since the calculation result C corresponds to the key information and the key ID k, key information K and the key ID k is restored (ST22). The distributed program restoration unit 17 outputs the key information K and the key ID k to the control unit 14.

制御部14は、この鍵情報K及び鍵IDを互いに関連付けて鍵情報格納部18に格納する。しかる後、制御部14は、鍵IDのみをチップ13外部のプログラム実行部11に出力する(ST23)。 The control unit 14 stores the key information K and the key ID k in the key information storage unit 18 in association with each other. Thereafter, the control unit 14 outputs only the key ID k to the program execution unit 11 outside the chip 13 (ST23).

プログラム実行部11は、鍵IDをメモリ11aに記憶させ、適宜、前述したセキュリティ処理などに使用する。 The program execution unit 11 stores the key ID k in the memory 11a and appropriately uses it for the security processing described above.

上述したように本実施形態によれば、第1の実施形態の効果に加え、圧縮プログラムの場合と同様に、秘密分散され個別化された鍵情報を復元することができる。また、鍵情報を用いる任意のセキュリティ処理をセキュアチップ装置13内で実行することができる。   As described above, according to the present embodiment, in addition to the effects of the first embodiment, secret-distributed and individualized key information can be restored as in the case of the compression program. Further, arbitrary security processing using the key information can be executed in the secure chip device 13.

なお、本実施形態は、鍵情報Kだけではなく、セキュアチップ装置13内部で動作するプログラム自体も鍵情報格納部18に格納し、格納したプログラムに基づきセキュリティ処理部19を実行してもよい。この場合、さらに高いセキュリティ性を実現できる。   In the present embodiment, not only the key information K but also the program itself operating in the secure chip device 13 may be stored in the key information storage unit 18 and the security processing unit 19 may be executed based on the stored program. In this case, higher security can be realized.

(第3の実施形態)
図3は本発明の第3の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。
(Third embodiment)
FIG. 3 is a schematic diagram showing a configuration of a secret sharing system to which the information program protection method according to the third embodiment of the present invention is applied.

本実施形態は、第1の実施形態の変形例であり、排他的論理和を用いた秘密分散に代えて、乱数rによる分散鍵情報K’を用いており、具体的には分散用サーバ装置Sv0が、図1に示した圧縮部4、分散情報生成部5、秘密分散部6及び個別化部7に代えて、乱数生成部21、分散鍵情報生成部22、個別化鍵生成部23及び個別化部24を備えている。これに伴い、送信部8、各サーバ装置Sv1,Sv2及び端末装置30は、扱う対象データが異なるものとなっている。以下、順に説明する。   The present embodiment is a modification of the first embodiment, and uses distributed key information K ′ based on a random number r instead of secret sharing using exclusive OR, specifically, a server device for distribution. Sv0 replaces the compression unit 4, the shared information generation unit 5, the secret sharing unit 6 and the personalization unit 7 shown in FIG. 1 with a random number generation unit 21, a distributed key information generation unit 22, an individualized key generation unit 23, and An individualization unit 24 is provided. Accordingly, the transmission unit 8, the server devices Sv1, Sv2, and the terminal device 30 have different target data. Hereinafter, it demonstrates in order.

ここで、乱数生成部21は、保護対象記憶部1内のプログラムCを秘密分散する際に、予め乱数rを生成し、得られた乱数rを分散鍵情報生成部22に送出する機能をもっている。なお、以下の各実施形態では排他的論理和を用いないので、保護対象記憶部1内のプログラムCは圧縮プログラム又は解凍後のプログラムのいずれでもよい。   Here, the random number generation unit 21 has a function of generating a random number r in advance when secretly distributing the program C in the protection target storage unit 1 and sending the obtained random number r to the distributed key information generation unit 22. . In the following embodiments, since exclusive OR is not used, the program C in the protection target storage unit 1 may be either a compressed program or a decompressed program.

分散鍵情報生成部22は、乱数生成部21により生成された乱数rに基づいて分散鍵情報K’(=g mod p)を生成する機能と、得られた分散鍵情報K’を個別化鍵部23及び送信部8に送出する機能とをもっている。ここで、gは乗法群の原始元であり、pは大きな素数であって、予め分散鍵情報生成部22に設定されている。 The distributed key information generation unit 22 individually generates the distributed key information K ′ (= g r mod p) based on the random number r generated by the random number generation unit 21 and the obtained distributed key information K ′. And a function of sending to the key unit 23 and the transmission unit 8. Here, g is a primitive element of the multiplicative group, p is a large prime number, and is set in the distributed key information generation unit 22 in advance.

個別化鍵生成部23は、分散鍵情報生成部22から受けた分散鍵情報K’から端末固有情報記憶部2内の端末固有情報KP1に基づいて、個別化鍵情報K(=(g P1 mod p)を生成する機能と、得られた個別化鍵情報Kを個別化部24に送出する機能とをもっている。 The individualized key generation unit 23 is based on the terminal specific information K P1 in the terminal specific information storage unit 2 from the distributed key information K ′ received from the distributed key information generation unit 22, and the individualized key information K (= (g r ) It has a function of generating K P1 mod p) and a function of sending the obtained individualized key information K to the individualizing unit 24.

個別化部24は、個別化鍵生成部23から受けた個別化鍵情報K及び共通鍵暗号方式に基づいた暗号処理により、保護対象記憶部1内のプログラムCを暗号化する機能と、得られた暗号化プログラムE(K,C)を送信部8に送出する機能とをもっている。   The individualization unit 24 has a function of encrypting the program C in the protection target storage unit 1 by encryption processing based on the individualization key information K received from the individualization key generation unit 23 and the common key cryptosystem. And a function of sending the encryption program E (K, C) to the transmitter 8.

送信部8は、分散鍵情報生成部22により得られた分散鍵情報K’(=g mod p)を第1サーバ装置Sv1に送信する機能と、個別化部24により得られた暗号化プログラムE(K,C)を第2サーバ装置Sv2に送信する機能とをもっている。 The transmitting unit 8 has a function of transmitting the distributed key information K ′ (= g r mod p) obtained by the distributed key information generating unit 22 to the first server device Sv1, and an encryption program obtained by the individualizing unit 24 A function of transmitting E (K, C) to the second server device Sv2.

第1サーバ装置Sv1は、分散用サーバ装置Sv0から受けた分散鍵情報K’をメモリに記憶する機能と、端末装置10からの要求に基づいて、メモリ内の分散鍵情報K’を端末装置10に送信する機能とをもっている。   The first server device Sv1 stores the distributed key information K ′ received from the distribution server device Sv0 in the memory and the terminal device 10 based on the request from the terminal device 10 based on the request from the terminal device 10. It has a function to send to.

第2サーバ装置Sv2は、分散用サーバ装置Sv0から受けた暗号化プログラムE(K,C)をメモリに記憶する機能と、端末装置10からの要求に基づいて、メモリ内の暗号化プログラムE(K,C)を端末装置10に送信する機能とをもっている。   The second server device Sv2 stores the encryption program E (K, C) received from the distribution server device Sv0 in the memory and the encryption program E (( K, C) and the function of transmitting to the terminal device 10.

端末装置30は、端末固有情報KP1を有して共通鍵暗号方式を実行可能なセキュアチップ装置(図示せず)を内蔵した計算機である。 The terminal device 30 is a computer having a built-in secure chip device (not shown) that has the terminal unique information K P1 and can execute the common key cryptosystem.

ここで、端末装置30内のセキュアチップ装置は、例えばシングルチップ形式の耐タンパー性ハードウェアからなり、入力された分散鍵情報K’及び暗号化プログラムE(K,C)から端末固有情報KP1及び共通鍵暗号方式に基づいた復号処理によりプログラムCを復元する機能と、得られたプログラムCを端末装置30内に送出する機能とをもっている。 Here, the secure chip device in the terminal device 30 is composed of, for example, tamper-resistant hardware in a single chip format, and the terminal-specific information K P1 is obtained from the input distributed key information K ′ and the encryption program E (K, C). And a function of restoring the program C by a decryption process based on the common key cryptosystem and a function of sending the obtained program C into the terminal device 30.

また、端末装置30は、第1サーバ装置Sv1に分散鍵情報K’を要求する機能と、第2サーバ装置Sv2に暗号化プログラムE(K,C)を要求する機能と、各サーバSv1,Sv2から受けた分散鍵情報K’及び暗号化プログラムE(K,C)をセキュアチップ装置に入力する機能と、セキュアチップ装置により得られたプログラムCを実行して実行終了後に当該プログラムを削除する機能とをもっている。   The terminal device 30 also has a function of requesting the distributed key information K ′ from the first server device Sv1, a function of requesting the encryption program E (K, C) from the second server device Sv2, and the servers Sv1, Sv2. A function for inputting the distributed key information K ′ and the encrypted program E (K, C) received from the secure chip device, and a function for executing the program C obtained by the secure chip device and deleting the program after the execution is completed. I have.

次に、以上のように構成された秘密分散システムの動作を図6のフローチャートを用いて説明する。
分散用サーバ装置Sv0では、入力部3が、鍵情報及び/又はプログラム等といった保護対象を保護対象記憶部1に書込む。このプログラムを秘密分散する際には、乱数生成部21は、乱数rを生成し(ST31)、得られた乱数rを分散鍵情報生成部22に送出する。
Next, the operation of the secret sharing system configured as described above will be described with reference to the flowchart of FIG.
In the distribution server device Sv0, the input unit 3 writes a protection target such as key information and / or a program into the protection target storage unit 1. When secretly sharing this program, the random number generation unit 21 generates a random number r (ST31) and sends the obtained random number r to the distribution key information generation unit 22.

分散鍵情報生成部22は、この乱数rに基づいて分散鍵情報K’(=g mod p)を生成し(ST32)、得られた分散鍵情報K’を個別化鍵部23及び送信部8に送出する。 The distributed key information generation unit 22 generates distributed key information K ′ (= g r mod p) based on the random number r (ST32), and uses the obtained distributed key information K ′ as an individual key unit 23 and a transmission unit. 8 to send.

個別化鍵生成部23は、この分散鍵情報K’から端末固有情報記憶部2内の端末固有情報KP1に基づいて、個別化鍵情報K(=(g P1 mod p)を生成し(ST33)、得られた個別化鍵情報Kを個別化部24に送出する。 The individualized key generation unit 23 generates the individualized key information K (= (g r ) K P1 mod p) from the distributed key information K ′ based on the terminal specific information K P1 in the terminal specific information storage unit 2. (ST33), and the obtained individualized key information K is sent to the individualizing unit 24.

個別化部24は、この個別化鍵情報K及び共通鍵暗号方式に基づいた暗号処理により、保護対象記憶部1内のプログラムCを暗号化して個別化し(ST34)、得られた暗号化プログラムE(K,C)を送信部8に送出する。なお、この個別化により、端末固有情報KP1が無い場合には元のプログラムを正しく復元することができない。また秘密分散により、端末固有情報KP1があったとしても、暗号化プログラムE(K,C)と分散鍵情報K’との一方だけからでは元のプログラムを復元できない。 The individualization unit 24 encrypts and individualizes the program C in the protection target storage unit 1 by encryption processing based on the individualization key information K and the common key encryption method (ST34), and the obtained encrypted program E (K, C) is sent to the transmitter 8. Note that due to this individualization, the original program cannot be correctly restored if there is no terminal-specific information K P1 . Further, due to secret sharing, even if the terminal unique information K P1 exists, the original program cannot be restored from only one of the encryption program E (K, C) and the distributed key information K ′.

送信部8は、分散鍵情報K’(=g mod p)を第1サーバ装置Sv1に送信する一方、暗号化プログラムE(K,C)を第2サーバ装置Sv2に送信する。 The transmission unit 8 transmits the distributed key information K ′ (= g r mod p) to the first server device Sv1, while transmitting the encryption program E (K, C) to the second server device Sv2.

第1サーバ装置Sv1は、分散鍵情報K’をメモリに記憶する。第2サーバ装置Sv2は、暗号化プログラムE(K,C)をメモリに記憶する。これにより、プログラムの秘密分散が完了する。   The first server device Sv1 stores the distributed key information K ′ in the memory. The second server device Sv2 stores the encryption program E (K, C) in the memory. Thereby, secret sharing of the program is completed.

続いて、端末装置30が秘密分散されたプログラムを復元する動作について述べる。   Next, an operation in which the terminal device 30 restores the secret-distributed program will be described.

端末装置30は、図示しないユーザの操作等により、第1サーバ装置Sv1に分散鍵情報K’を要求すると共に、第2サーバ装置Sv2に暗号化プログラムE(K,C)を要求する。   The terminal device 30 requests the distributed key information K ′ from the first server device Sv1 and requests the encryption program E (K, C) from the second server device Sv2 by a user operation (not shown).

第1サーバ装置Sv1は、この要求に基づいて、メモリ内の分散鍵情報K’を端末装置30に送信する。同様に、第2サーバ装置Sv2は、この要求に基づいて、メモリ内の暗号化プログラムE(K,C)を端末装置30に送信する。   Based on this request, the first server device Sv1 transmits the distributed key information K ′ in the memory to the terminal device 30. Similarly, the second server device Sv2 transmits the encryption program E (K, C) in the memory to the terminal device 30 based on this request.

端末装置30は、これら分散鍵情報K’及び暗号化プログラムE(K,C)を図示しないセキュアチップ装置に入力する。   The terminal device 30 inputs the distributed key information K ′ and the encryption program E (K, C) to a secure chip device (not shown).

セキュアチップ装置は、分散鍵情報K’及び暗号化プログラムE(K,C)が入力されると、分散鍵情報K’(=g mod p)及び端末固有情報KP1に基づいて、個別化鍵K(=(g P1 mod p)を復元する。 When the distributed key information K ′ and the encryption program E (K, C) are input, the secure chip device is personalized based on the distributed key information K ′ (= g r mod p) and the terminal specific information K P1 . The key K (= (g r ) K P1 mod p) is restored.

続いて、セキュアチップ装置は、得られた個別化鍵K及び共通鍵暗号方式に基づいた復号処理により暗号化プログラムE(K,C)からプログラムCを復元し、得られたプログラムCを端末装置30内に送出する。   Subsequently, the secure chip device restores the program C from the encrypted program E (K, C) by the decryption process based on the obtained individualized key K and the common key cryptosystem, and the obtained program C is stored in the terminal device. 30.

端末装置30は、セキュアチップ装置により得られたプログラムCを実行し、実行終了後、当該プログラムCを削除する。   The terminal device 30 executes the program C obtained by the secure chip device, and deletes the program C after completion of execution.

上述したように本実施形態によれば、乱数rにより生成された分散鍵情報K’から端末固有情報KP1に基づいて生成された個別化鍵情報Kに基づいてプログラムCが暗号化されてなる暗号化プログラムE(K,C)と、分散鍵情報K’とを各サーバ装置Sv1,Sv2に秘密分散し、プログラム処理時に、端末装置30内のセキュアチップ装置(情報プログラム保護装置)がこれら暗号化プログラムE(K,C)及び分散鍵情報K’からプログラムCを復元するので、端末装置30内のセキュアチップ装置が保持する秘密情報(鍵情報)やプログラムのセキュリティ性を向上することができる。 As described above, according to the present embodiment, the program C is encrypted based on the individualized key information K generated based on the terminal specific information K P1 from the distributed key information K ′ generated based on the random number r. The encryption program E (K, C) and the distributed key information K ′ are secretly distributed to the server devices Sv1 and Sv2, and the secure chip device (information program protection device) in the terminal device 30 performs the encryption during the program processing. Since the program C is restored from the computerized program E (K, C) and the distributed key information K ′, the confidential information (key information) held by the secure chip device in the terminal device 30 and the security of the program can be improved. .

また、第1の実施形態と同様に、セキュアチップ装置は、復元したプログラムを実行せずに端末装置30内に出力するだけなので、従来とは異なりハードウェアの処理能力による制限が無く、任意のプログラムを実行することができる。また、暗号化プログラム及び分散鍵情報を用いる構成により、秘密分散法を用いた際に、分散情報の個数を抑制することができる。   Similarly to the first embodiment, the secure chip device outputs only the restored program to the terminal device 30 without executing the restored program. Unlike the conventional case, the secure chip device is not limited by the processing capability of the hardware, and can be arbitrarily set. The program can be executed. In addition, the configuration using the encryption program and the distributed key information can suppress the number of distributed information when the secret sharing method is used.

なお、本実施形態は、分散鍵情報K’に代えて乱数rを第1サーバ装置Sv1に記憶させ、端末固有情報をgP1 mod pとして、個別化鍵KをK=(gP1) mod pとして算出する構成に変形しても、同様の作用効果を得ることができる。 In the present embodiment, the random number r is stored in the first server device Sv1 instead of the distributed key information K ′, the terminal unique information is g K P1 mod p, and the individualized key K is K = (g K P1). Even if the configuration is calculated as r mod p, the same effect can be obtained.

(第4の実施形態)
図7は本発明の第4の実施形態に係る情報プログラム保護装置が適用されるセキュアチップ装置を備えた端末装置及びその周辺構成を示す模式図である。
(Fourth embodiment)
FIG. 7 is a schematic diagram showing a terminal device including a secure chip device to which an information program protection device according to the fourth embodiment of the present invention is applied and its peripheral configuration.

本実施形態は、第3の実施形態の具体例であり、端末装置30の構成が具体的に述べられている。   The present embodiment is a specific example of the third embodiment, and the configuration of the terminal device 30 is specifically described.

ここで、端末装置30は、プログラム実行部11、メモリ11a、通信部31及びセキュアチップ装置32を備えている。セキュアチップ装置32は、具体的には、制御部33、端末固有情報格納部15、個別化鍵復元処理部34、個別化処理部35、鍵情報格納部18及びセキュリティ処理部19を備えている。   Here, the terminal device 30 includes a program execution unit 11, a memory 11 a, a communication unit 31, and a secure chip device 32. Specifically, the secure chip device 32 includes a control unit 33, a terminal specific information storage unit 15, an individualized key restoration processing unit 34, an individualization processing unit 35, a key information storage unit 18, and a security processing unit 19. .

プログラム実行部11は、プログラム(又は鍵情報)を入手するため、通信部32を介して第1及び第2サーバ装置Sv1,Sv2にプログラム(又は鍵情報)を要求する機能と、セキュアチップ装置32から受けたプログラム(又は鍵ID)をメモリ11aに記憶させて実行する機能と、プログラムの実行終了後、メモリ11a内のプログラムをメモリ11aから削除する機能とをもっている。 The program execution unit 11 has a function of requesting the program (or key information) from the first and second server devices Sv1 and Sv2 via the communication unit 32 in order to obtain the program (or key information), and the secure chip device 32. The program (or key ID k ) received from the memory 11a is stored and executed in the memory 11a, and the program in the memory 11a is deleted from the memory 11a after the execution of the program is completed.

プログラム実行部11は、前述した通り、プログラムの実行中、必要により、セキュリティ処理要求をセキュアチップ装置32に入力する機能と、得られた実行結果P(K,D)を用い、現在実行中のプログラムの実行を継続する機能とをもっている。   As described above, the program execution unit 11 uses the function of inputting a security processing request to the secure chip device 32 and the obtained execution result P (K, D) as necessary during execution of the program. With the ability to continue program execution.

メモリ11aは、前述同様に、プログラム実行部11から読出/書込可能な記憶部である。   The memory 11a is a storage unit that can be read / written from the program execution unit 11 as described above.

通信部31は、プログラム実行部11から受けた要求を第1及び第2サーバ装置Sv1,Sv2に送信する機能と、第1及び第2サーバ装置Sv1,Sv2から受けた分散鍵情報K’及び暗号化プログラムE(K,C)をセキュアチップ装置32に入力する機能とをもっている。なお、分散鍵情報K’及び暗号化プログラムE(K,C)は、前述同様に通信部31からプログラム実行部11を介してセキュアチップ装置32に入力してもよい。   The communication unit 31 transmits a request received from the program execution unit 11 to the first and second server devices Sv1 and Sv2, and the distributed key information K ′ and encryption received from the first and second server devices Sv1 and Sv2. And a function for inputting the program E (K, C) to the secure chip device 32. The distributed key information K ′ and the encrypted program E (K, C) may be input to the secure chip device 32 from the communication unit 31 via the program execution unit 11 as described above.

セキュアチップ装置32は、端末装置30に内蔵されたシングルチップ形式の耐タンパー性ハードウェアからなり、通信部32から分散鍵情報K’及び暗号化プログラムE(K,C)が入力されると、以下の各部33〜35,15により、復元されたプログラムC又は鍵IDをプログラム実行部11に出力する機能と、プログラム実行部11からセキュリティ処理要求(処理ID,鍵ID,データD)が入力されると、以下の各部33,18,19により、セキュリティ処理の実行結果P(K,D)をプログラム実行部11に出力する機能をもっている。 The secure chip device 32 is composed of single-chip tamper-resistant hardware built in the terminal device 30. When the distributed key information K ′ and the encryption program E (K, C) are input from the communication unit 32, A function for outputting the restored program C or key ID k to the program execution unit 11 by the following units 33 to 35, 15 and a security processing request (processing ID p , key ID k , data D) from the program execution unit 11 Is input, the following units 33, 18, 19 have a function of outputting a security processing execution result P (K, D) to the program execution unit 11.

ここで、セキュリティ処理は、前述した通り、例えば暗号化処理、復号処理、署名生成処理、認証子の生成処理、又は認証子の検証処理などが使用可能となっている。なお、データDはセキュリティ処理要求から省略可能なことも前述した通りである。   Here, as described above, for example, an encryption process, a decryption process, a signature generation process, an authenticator generation process, or an authenticator verification process can be used as the security process. As described above, the data D can be omitted from the security processing request.

制御部33は、入力内容に応じ、復元されたプログラムC、鍵ID、又は実行結果P(K,D)を得るように、各部34〜35,15,18〜19を制御する機能と、得られた結果をプログラム実行部11に出力する機能とをもっている。なお、端末固有情報格納部15、鍵情報格納部18及びセキュリティ処理部19は、前述同様のものである。 The control unit 33 controls the units 34 to 35, 15, and 18 to 19 so as to obtain the restored program C, the key ID k , or the execution result P (K, D) according to the input content, And a function of outputting the obtained result to the program execution unit 11. The terminal specific information storage unit 15, the key information storage unit 18, and the security processing unit 19 are the same as described above.

個別化鍵復元処理部34は、制御部33から入力された端末固有情報KP1及び分散鍵情報K’(=g mod p)に基づいて、個別化鍵K(=(g P1 mod p)=)を算出し、得られた個別化鍵情報Kを制御部33に送出する機能をもっている。 The individualized key restoration processing unit 34 is based on the terminal unique information K P1 and the distributed key information K ′ (= g r mod p) input from the control unit 33, and the individualized key K (= (g r ) K P1 mod p) =) is calculated, and the obtained individualized key information K is transmitted to the control unit 33.

個別化処理部35は、制御部33から個別化鍵情報K及び暗号化プログラムE(K,C)が入力されると、個別化鍵情報Kに基づいて暗号化プログラムE(K,C)を復号し(て個別化を解除し)、プログラムCを復元する機能と、得られたプログラムCを制御部33に出力する機能とをもっている。   When the personalization key information K and the encryption program E (K, C) are input from the control unit 33, the personalization processing unit 35 receives the encryption program E (K, C) based on the personalization key information K. It has a function of decrypting (releasing individualization) and restoring the program C, and a function of outputting the obtained program C to the control unit 33.

次に、以上のように構成された端末装置の動作を図4のフローチャートを用いて説明する。
(プログラムの復元)
いま、第3の実施形態と同様に、プログラムCを秘密分散及び個別化してなる分散鍵情報K’及び暗号化プログラムE(K,C)が、それぞれ第1及び第2サーバ装置Sv1,Sv2に記憶されているとする。
Next, the operation of the terminal device configured as described above will be described with reference to the flowchart of FIG.
(Restore program)
As in the third embodiment, the distributed key information K ′ and the encrypted program E (K, C) obtained by secretly sharing and individualizing the program C are stored in the first and second server devices Sv1, Sv2, respectively. Suppose that it is remembered.

一方、端末装置30においては、前述同様に、第1及び第2サーバ装置Sv1,Sv2にプログラムを要求し、各サーバ装置Sv1,Sv2から受けた分散鍵情報K’及び暗号化プログラムE(K,C)をセキュアチップ装置32に入力する。   On the other hand, in the terminal device 30, as described above, the first and second server devices Sv1 and Sv2 are requested to receive a program, and the distributed key information K ′ received from each of the server devices Sv1 and Sv2 and the encrypted program E (K, C) is input to the secure chip device 32.

セキュアチップ装置32は、入力があると、入力内容を識別する(ST41)。入力内容が個別化されたプログラムに相当する分散鍵情報K’及び暗号化プログラムE(K,C’)の場合(ST42)、制御部33が端末固有情報格納部15から端末固有情報KP1を読出す。 When there is an input, secure chip device 32 identifies the input content (ST41). In the case of the distributed key information K ′ and the encryption program E (K, C ′) corresponding to the program whose input contents are individualized (ST42), the control unit 33 obtains the terminal specific information K P1 from the terminal specific information storage unit 15. Read.

制御部33は、この端末固有情報KP1及び分散鍵情報K’を個別化鍵復元処理部34に入力する。 The control unit 33 inputs the terminal unique information K P1 and the distributed key information K ′ to the individualized key restoration processing unit 34.

個別化鍵復元処理部34は、この端末固有情報KP1及び分散鍵情報K’(=g mod p)に基づいて、個別化鍵K(=(g P1 mod p)=)を復元し(ST43)、得られた個別化鍵情報Kを制御部33に送出する。 The personalization key restoration processing unit 34 obtains the personalization key K (= (g r ) K P1 mod p) =) based on the terminal unique information K P1 and the distributed key information K ′ (= g r mod p). Restoration is performed (ST43), and the obtained individualized key information K is sent to the control unit 33.

制御部33は、この個別化鍵情報K及び暗号化プログラムE(K,C)を個別化処理部35に入力する。   The control unit 33 inputs the personalization key information K and the encryption program E (K, C) to the personalization processing unit 35.

個別化処理部35は、この個別化鍵情報Kに基づいて暗号化プログラムE(K,C)を復号し(て個別化を解除し)、プログラムCを復元する(ST44)。また、個別化処理部35は、得られたプログラムCを制御部33に出力する。   The individualization processing unit 35 decrypts the encryption program E (K, C) based on the individualization key information K (and cancels the individualization), and restores the program C (ST44). Further, the individualization processing unit 35 outputs the obtained program C to the control unit 33.

制御部14は、このプログラムCをチップ32外部のプログラム実行部11に出力する(ST45)。   The control unit 14 outputs the program C to the program execution unit 11 outside the chip 32 (ST45).

プログラム実行部11は、得られたプログラムをメモリ11aに記憶させて実行する。プログラムの実行終了後、プログラム実行部11は、メモリ11a内のプログラムをメモリ11aから削除し、処理を終了する。   The program execution unit 11 stores the obtained program in the memory 11a and executes it. After the execution of the program ends, the program execution unit 11 deletes the program in the memory 11a from the memory 11a and ends the process.

(セキュリティ処理の実行)
セキュリティ処理は、第2の実施形態と同様に実行される。
(鍵情報の復元)
鍵情報の復元処理は、前述したプログラムCに代えて、鍵情報Kcが秘密分散され個別化された場合に当該鍵情報Kcを復元する内容である。以下、順次説明する。
(Perform security processing)
The security process is executed as in the second embodiment.
(Restore key information)
The key information restoration processing is a content for restoring the key information Kc when the key information Kc is secretly distributed and individualized instead of the program C described above. Hereinafter, description will be made sequentially.

いま、前述同様に、鍵情報Kcを秘密分散及び個別化してなる秘密分散及び個別化してなる分散鍵情報K’及び暗号化鍵情報E(K,Kc)が、それぞれ第1及び第2サーバ装置Sv1,Sv2に記憶されているとする。   Now, as described above, the secret sharing and the individual key information K ′ and the encryption key information E (K, Kc) obtained by secret sharing and individualizing the key information Kc are respectively the first and second server devices. It is assumed that they are stored in Sv1 and Sv2.

一方、端末装置30においては、図示しない外部操作等により、鍵情報Kcの入手がプログラム実行部11に要求される。プログラム実行部11は、鍵情報Kcを入手するため、通信部12を介して第1及び第2サーバ装置Sv1,Sv2に鍵情報Kcを要求し、各サーバ装置Sv1,Sv2から受けた分散鍵情報K’及び暗号化鍵情報E(K,Kc)をセキュアチップ装置32に入力する。   On the other hand, in the terminal device 30, the program execution unit 11 is requested to obtain the key information Kc by an external operation or the like (not shown). The program execution unit 11 requests the key information Kc from the first and second server devices Sv1 and Sv2 via the communication unit 12 to obtain the key information Kc, and the distributed key information received from the server devices Sv1 and Sv2. K ′ and encryption key information E (K, Kc) are input to the secure chip device 32.

セキュアチップ装置32は、入力があると、入力内容を識別する(ST41)。入力内容が個別化された鍵情報Kcに相当する分散鍵情報K’及び暗号化鍵情報E(K,Kc)の場合(ST46)、制御部33が端末固有情報格納部15から端末固有情報KP1を読出す。 When there is an input, secure chip device 32 identifies the input content (ST41). In the case of the distributed key information K ′ corresponding to the individual key information Kc and the encryption key information E (K, Kc) (ST46), the control unit 33 stores the terminal specific information K from the terminal specific information storage unit 15. Read P1 .

制御部33は、この端末固有情報KP1及び分散鍵情報K’を個別化鍵復元処理部34に入力する。 The control unit 33 inputs the terminal unique information K P1 and the distributed key information K ′ to the individualized key restoration processing unit 34.

個別化鍵復元処理部34は、この端末固有情報KP1及び分散鍵情報K’(=g mod p)に基づいて、個別化鍵K(=(g P1 mod p)=)を復元し(ST47)、得られた個別化鍵情報Kを制御部33に送出する。 The personalization key restoration processing unit 34 obtains the personalization key K (= (g r ) K P1 mod p) =) based on the terminal unique information K P1 and the distributed key information K ′ (= g r mod p). Restoration is performed (ST47), and the obtained individualized key information K is sent to the control unit 33.

制御部33は、この個別化鍵情報K及び暗号化鍵情報E(K,Kc)を個別化処理部35に入力する。   The control unit 33 inputs the personalization key information K and the encryption key information E (K, Kc) to the personalization processing unit 35.

個別化処理部35は、この個別化鍵情報Kに基づいて暗号化鍵情報E(K,Kc)を復号し(て個別化を解除し)、鍵情報Kc及び鍵IDを復元する(ST48)。また、個別化処理部35は、得られた鍵情報Kc及び鍵IDを制御部33に出力する。 The individualization processing unit 35 decrypts the encryption key information E (K, Kc) based on the individualization key information K (and cancels the individualization), and restores the key information Kc and the key ID k (ST48). ). Further, the personalization processing unit 35 outputs the obtained key information Kc and key ID k to the control unit 33.

制御部33は、この鍵情報K及び鍵IDを互いに関連付けて鍵情報格納部18に格納する。しかる後、制御部33は、鍵IDのみをチップ32外部のプログラム実行部11に出力する(ST49)。 The control unit 33 stores the key information K and the key ID k in the key information storage unit 18 in association with each other. Thereafter, the control unit 33 outputs only the key ID k to the program execution unit 11 outside the chip 32 (ST49).

プログラム実行部11は、鍵IDをメモリ11aに記憶させ、適宜、前述したセキュリティ処理などに使用する。 The program execution unit 11 stores the key ID k in the memory 11a and appropriately uses it for the security processing described above.

上述したように本実施形態によれば、第3の実施形態の効果に加え、プログラムの場合と同様に、秘密分散され個別化された鍵情報を復元することができる。また、鍵情報を用いる任意のセキュリティ処理をセキュアチップ装置32内で実行することができる。   As described above, according to the present embodiment, in addition to the effects of the third embodiment, secret-distributed and individualized key information can be restored as in the case of the program. Further, any security processing using the key information can be executed in the secure chip device 32.

なお、本実施形態は、鍵情報Kだけではなく、セキュアチップ装置32内部で動作するプログラム自体も鍵情報格納部18に格納し、格納したプログラムに基づきセキュリティ処理部19を実行してもよい。この場合、さらに高いセキュリティ性を実現できる。   In the present embodiment, not only the key information K but also the program itself operating in the secure chip device 32 may be stored in the key information storage unit 18 and the security processing unit 19 may be executed based on the stored program. In this case, higher security can be realized.

(第5の実施形態)
図9は本発明の第5の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。
(Fifth embodiment)
FIG. 9 is a schematic diagram showing the configuration of a secret sharing system to which the information program protection method according to the fifth embodiment of the present invention is applied.

本実施形態は、第3の実施形態の変形例であり、乱数rによる秘密分散において、乱数r自体を分散情報S0,S1〜S3として分散するものであり、概略的には分散用サーバ装置Sv0が、図5に示した分散鍵情報生成部22を省略し、乱数rに関する分散情報生成部25を備えている。これに伴い、他の要素が若干異なるものとなっている。また、8台のサーバ装置Sv1〜Sv8に秘密分散するものとなっている。以下、順に説明する。   This embodiment is a modification of the third embodiment. In secret sharing using a random number r, the random number r itself is distributed as the distributed information S0, S1 to S3. However, the distributed key information generation unit 22 shown in FIG. 5 is omitted, and a distributed information generation unit 25 related to the random number r is provided. Along with this, other elements are slightly different. Further, secret sharing is performed on the eight server devices Sv1 to Sv8. Hereinafter, it demonstrates in order.

ここで、乱数生成部21は、保護対象記憶部1内のプログラムCを秘密分散する際に、予め乱数rを生成し、得られた乱数rを個別化鍵生成部23及び分散情報生成部25に送出する機能をもっている。   Here, when the program C in the protection target storage unit 1 is secretly distributed, the random number generation unit 21 generates a random number r in advance, and the obtained random number r is used as an individualized key generation unit 23 and a distribution information generation unit 25. It has a function to send to.

個別化鍵生成部23は、乱数生成部21から受けた乱数r及び端末固有情報記憶部2内の端末固有情報KP1に基づいて、個別化鍵情報K(=(g P1 mod p)を生成する機能と、得られた個別化鍵情報Kを個別化部24に送出する機能と、鍵生成用のパラメータgを送信部8に送出する機能とをもっている。ここで、gは乗法群の原始元であり、pは大きな素数であって、予め個別化鍵生成部23に設定されている。 The personalization key generation unit 23 is based on the random number r received from the random number generation unit 21 and the terminal specific information K P1 in the terminal specific information storage unit 2, and the personalization key information K (= (g r ) K P1 mod p ), A function for sending the obtained individualized key information K to the individualizing unit 24, and a function for sending the parameter g for key generation to the transmitting unit 8. Here, g is a primitive element of the multiplicative group, p is a large prime number, and is set in the individualized key generation unit 23 in advance.

分散情報生成部25は、乱数生成部21から受けた乱数rを復元可能な第1分散情報S及び第2分散情報S〜Sを生成する機能と、得られた第1及び第2分散情報S,S〜Sを送信部8に送信する機能とをもっている。 The shared information generation unit 25 generates the first shared information S 0 and the second shared information S 1 to S 3 that can restore the random number r received from the random number generation unit 21, and the obtained first and second A function of transmitting the shared information S 0 , S 1 to S 3 to the transmitter 8.

ここで、分散情報生成部25は、具体的には次のような機能(f1)〜(f5)を有している。   Here, the shared information generation unit 25 specifically has the following functions (f1) to (f5).

[f1]n台のサーバ装置Sv1,…,Svnのうち、任意のk台のサーバ装置により分散情報を復元可能とするように(k,n)しきい値法により、乱数rの第1分散情報S={s,…,s}を生成する機能。なお、kは、後述する(L+1)に対応する。nは、後述するn’に対応する。すなわち、(k,n)しきい値法は、後述する(L+1,n’)しきい値法に対応する。 [F1] The first distribution of the random number r using the (k, n) threshold method so that the distributed information can be restored by any k server apparatuses among the n server apparatuses Sv1,. A function of generating information S 0 = {s 1 ,..., S n }. Note that k corresponds to (L + 1) described later. n corresponds to n ′ described later. That is, the (k, n) threshold method corresponds to the (L + 1, n ′) threshold method described later.

[f2]第1分散情報Sに含まれる要素{s,…,s}を各サーバ装置Sv1,…,Svnに個別に割当てる機能。 [F2] A function of individually allocating the elements {s 1 ,..., S n } included in the first shared information S 0 to the server devices Sv 1,.

[f3]k台未満のサーバ装置からなり、k台未満のサーバ装置により乱数rを復元可能で且つ1台でもサーバ装置が減ると、乱数rが復元不可能となる旨のd個の極小グループA(但し、1≦i≦d)が設定される機能。 [F3] d minimal groups that are composed of less than k server devices, the random number r can be restored by less than k server devices, and the random number r cannot be restored if even one server device is reduced A i (where 1 ≦ i ≦ d) is set.

[f4]極小グループA毎に(|A|,|A|)しきい値法により(但し|A|はAに属するサーバ装置の台数)、乱数rの第2分散情報S={s{i,1},…,s{i,|Ai|}}を生成する機能。 [F4] For each minimal group A i (| A i |, | A i |) using the threshold method (where | A i | is the number of server devices belonging to A i ), the second shared information S of the random number r i = {s {i, 1} ,..., s {i, | Ai |} }

[f5]極小グループA毎に、第2分散情報Sに含まれる要素{s{i,1},…,s{i,|Ai|}}を当該極小グループAに含まれる各サーバ装置に個別に割り当てる機能。 [F5] For each minimal group A i , elements {s {i, 1} ,..., S {i, | Ai |} } included in the second shared information S i are assigned to each server included in the minimal group A i. A function that is individually assigned to a device.

送信部8は、分散情報生成部25により得られた分散情報S,S〜Sの所定の組合せを第1〜第6サーバ装置Sv1〜Sv8に送信する機能と、個別化鍵生成部24から受けた原始元gを第7サーバ装置Sv7に送信する機能と、個別化部24により得られた暗号化プログラムE(K,C)を第8サーバ装置Sv8に送信する機能とをもっている。 The transmitting unit 8 has a function of transmitting a predetermined combination of the shared information S 0 and S 1 to S 3 obtained by the shared information generating unit 25 to the first to sixth server devices Sv1 to Sv8, and an individualized key generating unit 24 has a function of transmitting the primitive element g received from 24 to the seventh server apparatus Sv7 and a function of transmitting the encryption program E (K, C) obtained by the individualizing unit 24 to the eighth server apparatus Sv8.

第1〜第6サーバ装置Sv1〜Sv6は、分散用サーバ装置Sv0から受けた分散情報S,S〜Sの組合せをメモリに記憶する機能と、端末装置40からの要求に基づいて、メモリ内の分散情報S0,S1〜S3を端末装置40に送信する機能とをもっている。 The first to sixth server devices Sv1 to Sv6 are based on the function of storing the combination of the distributed information S 0 and S 1 to S 3 received from the distribution server device Sv0 in the memory and the request from the terminal device 40, A function of transmitting the distributed information S0, S1 to S3 in the memory to the terminal device 40;

第7サーバ装置Sv7は、分散用サーバ装置Sv0から受けた原始元gをメモリに記憶する機能と、端末装置40からの要求に基づいて、メモリ内の原始元gを端末装置40に送信する機能とをもっている。   The seventh server device Sv7 stores the primitive element g received from the distribution server device Sv0 in the memory, and transmits the primitive element g in the memory to the terminal device 40 based on a request from the terminal device 40. I have.

第8サーバ装置Sv8は、分散用サーバ装置Sv0から受けた暗号化プログラムE(K,C)をメモリに記憶する機能と、端末装置40からの要求に基づいて、メモリ内の暗号化プログラムE(K,C)を端末装置40に送信する機能とをもっている。   The eighth server device Sv8 stores the encryption program E (K, C) received from the distribution server device Sv0 in the memory and the encryption program E (( K, C) to the terminal device 40.

端末装置40は、端末固有情報KP1を有して共通鍵暗号方式を実行可能なセキュアチップ装置(図示せず)を内蔵した計算機である。 The terminal device 40 is a computer having a built-in secure chip device (not shown) that has the terminal unique information K P1 and can execute the common key cryptosystem.

ここで、端末装置40内のセキュアチップ装置は、例えばシングルチップ形式の耐タンパー性ハードウェアからなり、入力された分散情報S又はS〜S、原始元g及び暗号化プログラムE(K,C)から端末固有情報KP1及び共通鍵暗号方式に基づいた復号処理によりプログラムCを復元する機能と、得られたプログラムCを端末装置40内に送出する機能とをもっている。 Here, the secure chip device in the terminal device 40 is composed of, for example, single-chip tamper-resistant hardware, and the distributed information S 0 or S 1 to S 3 , the source element g, and the encryption program E (K , C) has a function of restoring the program C by decryption processing based on the terminal unique information K P1 and the common key encryption method, and a function of sending the obtained program C into the terminal device 40.

また、端末装置40は、第1〜第6サーバ装置Sv1〜Sv6に分散情報S,S〜Sを要求する機能と、第7サーバ装置Sv7に原始元gを要求する機能と、第8サーバ装置Sv8に暗号化プログラムE(K,C)を要求する機能と、各サーバ装置Sv1〜Sv8から受けた分散情報S又はS〜S、原始元g及び暗号化プログラムE(K,C)をセキュアチップ装置に入力する機能と、セキュアチップ装置により得られたプログラムCを実行して実行終了後に当該プログラムを削除する機能とをもっている。 The terminal device 40 has a function of requesting the shared information S 0 , S 1 to S 3 to the first to sixth server devices Sv 1 to Sv 6, a function of requesting the primitive element g to the seventh server device Sv 7, 8 A function for requesting the encryption program E (K, C) to the server device Sv8, and the shared information S 0 or S 1 to S 3 received from each of the server devices Sv1 to Sv8, the primitive element g, and the encryption program E (K , C) to the secure chip device and a function to execute the program C obtained by the secure chip device and delete the program after the execution is completed.

次に、以上のように構成された秘密分散システムの動作を図10のフローチャートを用いて説明する。
分散用サーバ装置Sv0では、プログラムCを秘密分散する際に、乱数生成部21が乱数rを生成し(ST31)、得られた乱数rを個別化鍵生成部23及び分散情報生成部25に送出する。
Next, the operation of the secret sharing system configured as described above will be described with reference to the flowchart of FIG.
In the distribution server device Sv0, when the program C is secretly distributed, the random number generation unit 21 generates a random number r (ST31), and sends the obtained random number r to the individualized key generation unit 23 and the distributed information generation unit 25. To do.

個別化鍵生成部23は、この乱数r及び端末固有情報記憶部2内の端末固有情報KP1に基づいて、個別化鍵情報K(=(g P1 mod p)を生成し(ST33)、得られた個別化鍵情報Kを個別化部24に送出すると共に、原始元gを送信部8に送出する。 The personalization key generation unit 23 generates personalization key information K (= (g r ) K P1 mod p) based on the random number r and the terminal specific information K P1 in the terminal specific information storage unit 2 (ST33). ), The obtained individualized key information K is sent to the individualizing unit 24, and the primitive element g is sent to the transmitting unit 8.

個別化部24は、この個別化鍵情報K及び共通鍵暗号方式に基づいた暗号処理により、保護対象記憶部1内のプログラムCを暗号化して個別化し(ST34)、得られた暗号化プログラムE(K,C)を送信部8に送出する。なお、この個別化により、端末固有情報KP1が無い場合には元のプログラムを正しく復元することができない。また秘密分散により、端末固有情報KP1があったとしても、暗号化プログラムE(K,C)と、分散情報S0,S1〜S3との一方だけからでは元のプログラムを復元できない。 The individualization unit 24 encrypts and individualizes the program C in the protection target storage unit 1 by encryption processing based on the individualization key information K and the common key encryption method (ST34), and the obtained encrypted program E (K, C) is sent to the transmitter 8. Note that due to this individualization, the original program cannot be correctly restored if there is no terminal-specific information K P1 . Further, due to secret sharing, even if the terminal unique information K P1 is present, the original program cannot be restored from only one of the encryption program E (K, C) and the shared information S0, S1 to S3.

分散情報生成部25は、乱数生成部21から乱数rを受けると、乱数rを復元可能な第1分散情報S及び第2分散情報S〜Sの生成を開始する(ST35)。 Share generation unit 25 receives the random number r from the random number generating unit 21 starts generating the first recoverable random numbers r 1 shared information S 0, and the second shared information S 1 ~S 3 (ST35).

ここで、乱数rの分散情報の生成に必要な秘密分散法について述べる。乱数rはいくつかの分散情報に秘密分散され、分散情報が各サーバ装置Sv1,…,Svnに割り当てられる。このとき、本実施形態の秘密分散法は、次の(a)〜(c)で表される。   Here, a secret sharing method necessary for generating the shared information of the random number r will be described. The random number r is secretly shared into several pieces of shared information, and the shared information is assigned to each server device Sv1,. At this time, the secret sharing method of the present embodiment is expressed by the following (a) to (c).

(a)任意の(L+1)台のサーバ装置のグループは、乱数rを復元でき、また、L台以下のサーバ装置からなる極小グループA,…,Aも乱数rを復元できる。なお、極小グループは、乱数rを復元可能なグループの中で、グループのサーバ装置のうち、一台でも欠けると乱数rを復元できないグループである。また、上記台数Lは、全ての極小グループに基づいて、定めることができる。 (A) a group of any (L + 1) stage of the server apparatus, to restore the random number r, also minimum group A 1 consisting of L stand following server, ..., A d may also recover the random number r. Note that the minimal group is a group in which the random number r cannot be restored if even one of the server devices of the group is missing among the groups capable of restoring the random number r. The number L can be determined based on all the minimum groups.

(b)任意の(L+1)台のサーバ装置のグループの中で極小グループになっているグループに含まれるサーバ装置の集合をAとし、Aに含まれるサーバ装置の台数をn’とする。このとき、(L+1,n’)しきい値法により、乱数rに対する第1分散情報S={s,…,s’}を求め、Aに含まれるサーバ装置にSに含まれる分散情報の一つを重複なく割り当てる。 (B) A set of server devices included in a group that is a minimal group among a group of arbitrary (L + 1) server devices is A 0, and the number of server devices included in A 0 is n ′. . At this time, the first shared information S 0 = {s 1 ,..., S n ′} for the random number r is obtained by the (L + 1, n ′) threshold method, and included in S 0 in the server device included in A 0. Allocate one piece of distributed information without duplication.

(c)各極小グループA(1≦i≦d)に対し、(|A|,|A|)しきい値法により、乱数rに対する第2分散情報S={s{i,1},…,s{i,|Ai|}}を求め、Aに含まれるサーバ装置にSに含まれる分散情報の一つを重複なく割り当てる。 To (c) each minimum group A i (1 ≦ i ≦ d ), (| A i |, | A i |) by the threshold method, the second shared information for random number r S i = {s {i , 1} ,..., S {i, | Ai |} }, and one of the pieces of distributed information included in S i is assigned to the server apparatus included in A i without duplication.

本実施形態は、上記(a)〜(c)で表される秘密分散方法を用いるため、各サーバ装置Sv1〜Sv6に割り当てられる分散情報の数を減らすことが可能であり、実装上非常に有効である。例えば各サーバ装置Sv1,…,Sv6に関し、乱数rを復元することが可能な8つの極小グループU1〜U8を図11に示すように定めるとする。   Since this embodiment uses the secret sharing method represented by (a) to (c) above, it is possible to reduce the number of shared information allocated to each server device Sv1 to Sv6, which is very effective in implementation. It is. For example, for each of the server devices Sv1,..., Sv6, eight minimum groups U1 to U8 that can restore the random number r are determined as shown in FIG.

この場合、本実施形態の秘密分散方法では、L=3,n=n’=6、d=3となり、極小グループA,…,Aは図12に示すようになる。 In this case, in the secret sharing method of this embodiment, L = 3, n = n ′ = 6, d = 3, and the minimal groups A 0 ,..., A 3 are as shown in FIG.

従って、この場合、各サーバ装置Sv1〜Sv6に割り当てられる分散情報の数は、図13に示すように、Sv1:3個、Sv2:3個、Sv3:3個、Sv4:3個、Sv5:1個、Sv6:1個となる。   Therefore, in this case, as shown in FIG. 13, the number of shared information allocated to each server device Sv1 to Sv6 is Sv1: 3, Sv2: 3, Sv3: 3, Sv4: 3, Sv5: 1. And Sv6: 1.

一方、従来手法(例えば、非特許文献2参照)では、全ての極小グループU1〜U8に(c)の処理を行う必要があるので、各サーバ装置Sv1〜Sv6に割り当てられる分散情報の数は、図14に示すように、Sv1:4個、Sv2:4個、Sv3:5個、Sv4:5個、Sv5:5個、Sv6:5個となる。   On the other hand, in the conventional method (for example, see Non-Patent Document 2), since it is necessary to perform the process (c) on all the minimal groups U1 to U8, the number of distributed information allocated to each server device Sv1 to Sv6 is As shown in FIG. 14, Sv1: 4, Sv2: 4, Sv3: 5, Sv4: 5, Sv5: 5, Sv6: 5.

このように、従来手法は、本実施形態よりも多数の分散情報を必要とするので、非効率なことが分かる。   Thus, it can be seen that the conventional method is inefficient because it requires a larger amount of distributed information than the present embodiment.

ここで、分散情報生成部25の動作説明に戻る。分散情報生成部25は、ステップST35の後、例えばユーザ等の外部操作により、図11に示すように、各サーバ装置Sv1〜Sv6の極小グループU1〜U8が設定される(ST36)。この極小グループU1〜U8は、上記(b),(c)及び図12に示すように、極小グループA0〜A3に分類される。   Now, the description returns to the operation of the shared information generation unit 25. After the step ST35, the shared information generation unit 25 sets the minimum groups U1 to U8 of the server devices Sv1 to Sv6 as shown in FIG. 11, for example, by an external operation by a user or the like (ST36). The minimum groups U1 to U8 are classified into minimum groups A0 to A3 as shown in (b) and (c) above and FIG.

続いて、分散情報生成部25は、(L+1,n’)しきい値法により、乱数rに対する第1分散情報S={s,…,s’}を生成し(ST37)、Aに含まれるサーバ装置にSに含まれる分散情報の一つを重複なく割り当てる。 Subsequently, the shared information generation unit 25 generates the first shared information S 0 = {s 1 ,..., S n ′} for the random number r by the (L + 1, n ′) threshold method (ST37), and A assigning without duplication one shared information contained in the S 0 to a server device included in the 0.

また、分散情報生成部25は、各極小グループA(1≦i≦d)に対し、(|A|,|A|)しきい値法により、乱数rに対する第2分散情報S={s{i,1},…,s{i,|Ai|}}を生成し(ST38)、Aに含まれるサーバ装置にSに含まれる分散情報の一つを重複なく割り当てる。 In addition, the shared information generation unit 25 uses the (| A i |, | A i |) threshold method for each minimal group A i (1 ≦ i ≦ d) to calculate the second shared information S i for the random number r. = {S {i, 1} ,..., S {i, | Ai |} } is generated (ST38), and one of the distributed information included in S i is assigned to the server device included in A i without duplication.

しかる後、分散情報生成部25は、得られた第1及び第2分散情報S,S〜Sを送信部8に送信する。 Thereafter, the shared information generation unit 25 transmits the obtained first and second shared information S 0 , S 1 to S 3 to the transmission unit 8.

送信部8は、これら分散情報S,S〜Sの所定の組合せを第1〜第6サーバ装置Sv1〜Sv8に送信し、個別化鍵生成部24から受けた原始元gを第7サーバ装置Sv7に送信し、個別化部24により得られた暗号化プログラムE(K,C)を第8サーバ装置Sv8に送信する。 The transmission unit 8 transmits a predetermined combination of these pieces of shared information S 0 , S 1 to S 3 to the first to sixth server devices Sv 1 to Sv 8, and the primitive element g received from the individualized key generation unit 24 is the seventh The encrypted program E (K, C) transmitted to the server device Sv7 and obtained by the individualizing unit 24 is transmitted to the eighth server device Sv8.

第1〜第6サーバ装置Sv1〜Sv6は、それぞれ受信した分散情報S,S〜Sの組合せをメモリに記憶する。第7サーバ装置Sv7は、受信した原始元gをメモリに記憶する。第8サーバ装置Sv8は、受信した暗号化プログラムE(K,C)をメモリに記憶する。これにより、プログラムの秘密分散が完了する。 First to sixth server Sv1~Sv6 stores the combination of the distributed information S 0, S 1 ~S 3 respectively received in the memory. The seventh server device Sv7 stores the received primitive element g in the memory. The eighth server device Sv8 stores the received encryption program E (K, C) in the memory. Thereby, secret sharing of the program is completed.

続いて、端末装置40が秘密分散されたプログラムを復元する動作について述べる。   Next, an operation in which the terminal device 40 restores the secret-distributed program will be described.

端末装置40は、図示しないユーザの操作等により、例えば図12に示すような極小グループAに属する第2〜第4サーバ装置Sv2〜Sv4に対し、図13に示すような第2分散情報Sを要求する。また、端末装置40は、第7及び第8サーバ装置Sv7,Sv8にも情報を要求する。なお、極小グループAに限らず、任意の極小グループA〜Aに分散情報を要求可能なことは言うまでもない。また、極小グループAの場合、任意の4台のサーバ装置Svを選択すればよい。 Terminal device 40, by the user's operation, not shown or the like, for example, with respect to the second to fourth server Sv2~Sv4 belonging to minimum group A 3 shown in FIG. 12, the second shared information S as shown in FIG. 13 3 is requested. The terminal device 40 also requests information from the seventh and eighth server devices Sv7 and Sv8. The present invention is not limited to the minimum group A 3, it is needless to say that can request the distribution information to any minimum group A 0 to A 2. Also, if the minimum group A 0, may be selected arbitrary four server Sv.

さて第2〜第4サーバ装置Sv2〜Sv4は、この要求に基づいて、それぞれメモリ内の分散情報S{3,1},S{3,2},S{3,3}を端末装置40に送信する。第7サーバ装置Sv7は、この要求に基づいて、メモリ内の原始元gを端末装置40に送信する。第8サーバ装置Sv8は、この要求に基づいて、メモリ内の暗号化プログラムE(K,C)を端末装置40に送信する。   Based on this request, the second to fourth server devices Sv2 to Sv4 send the distributed information S {3,1}, S {3,2} and S {3,3} in the memory to the terminal device 40, respectively. Send. Based on this request, the seventh server device Sv7 transmits the primitive element g in the memory to the terminal device 40. Based on this request, the eighth server device Sv8 transmits the encryption program E (K, C) in the memory to the terminal device 40.

端末装置30は、これら分散情報S(=S{3,1},S{3,2},S{3,3})、原始元g及び暗号化プログラムE(K,C)をセキュアチップ装置(図示せず)に入力する。 The terminal device 30 secures the shared information S 3 (= S {3,1}, S {3,2}, S {3,3}), the primitive element g, and the encryption program E (K, C). Input to a device (not shown).

セキュアチップ装置は、分散情報S、原始元g及び暗号化プログラムE(K,C)が入力されると、分散情報S(=S{3,1},S{3,2},S{3,3})から乱数rを復元する。また、セキュアチップ装置は、得られた乱数r及び原始元gから端末固有情報KP1に基づいて個別化鍵情報K(=(g P1 mod p)を算出する。しかる後、セキュアチップ装置は、個別化鍵情報K及び共通鍵暗号方式に基づいた復号処理によりプログラムCを復元し、得られたプログラムCを端末装置40内に送出する。 When the shared information S 3 , the primitive element g and the encryption program E (K, C) are input to the secure chip device, the shared information S 3 (= S {3,1}, S {3,2}, S The random number r is restored from {3,3}). Further, the secure chip device calculates the personalized key information K (= (g r ) K P1 mod p) based on the terminal specific information K P1 from the obtained random number r and the primitive element g. Thereafter, the secure chip device restores the program C by decryption processing based on the individualized key information K and the common key encryption method, and sends the obtained program C into the terminal device 40.

端末装置30は、セキュアチップ装置により得られたプログラムCを実行し、実行終了後、当該プログラムCを削除する。   The terminal device 30 executes the program C obtained by the secure chip device, and deletes the program C after completion of execution.

上述したように本実施形態によれば、乱数r及び端末固有情報KP1に基づいて生成された個別化鍵情報Kに基づいてプログラムが暗号化されてなる暗号化プログラムE(K,C)と、乱数rを秘密分散した第1及び第2分散情報S,S〜Sとを各サーバ装置Sv1〜Sv8に秘密分散し、プログラム処理時に、端末装置40内のセキュアチップ装置(情報プログラム保護装置)がこれら暗号化プログラムE(K,C)及び分散情報(例、S)からプログラムCを復元するので、端末装置40内のセキュアチップ装置が保持する秘密情報(鍵情報)やプログラムのセキュリティ性を向上することができる。また、セキュアチップ装置は、復元したプログラムを実行せずに端末装置40内に出力するだけなので、従来とは異なりハードウェアの処理能力による制限が無く、任意のプログラムを実行することができる。また、秘密分散法を用いる際に、(k,n)しきい値法と(|Ai|,|Ai|)しきい値法を用いたので、(|Ai|,|Ai|)しきい値法のみを用いる場合に比べ、分散情報の個数を抑制することができる(図13及び図14参照)。 As described above, according to the present embodiment, the encrypted program E (K, C) obtained by encrypting the program based on the individualized key information K generated based on the random number r and the terminal specific information K P1 The first and second shared information S 0 , S 1 to S 3 obtained by secretly sharing the random number r are secretly distributed to the server devices Sv 1 to Sv 8, and the secure chip device (information program in the terminal device 40 is processed during program processing) Since the protection device) restores the program C from the encrypted program E (K, C) and the shared information (eg, S 3 ), the secret information (key information) and the program held by the secure chip device in the terminal device 40 Security can be improved. Further, since the secure chip device only outputs the restored program to the terminal device 40 without executing it, unlike the conventional case, there is no restriction due to the processing capability of the hardware, and an arbitrary program can be executed. Further, since the (k, n) threshold method and the (| Ai |, | Ai |) threshold method are used when the secret sharing method is used, the (| Ai |, | Ai |) threshold value is used. Compared to the case where only the method is used, the number of shared information can be suppressed (see FIGS. 13 and 14).

(第6の実施形態)
図15は本発明の第6の実施形態に係る情報プログラム保護装置が適用されるセキュアチップ装置を備えた端末装置及びその周辺構成を示す模式図である。
(Sixth embodiment)
FIG. 15 is a schematic diagram showing a terminal device including a secure chip device to which the information program protection device according to the sixth embodiment of the present invention is applied and its peripheral configuration.

本実施形態は、第5の実施形態の具体例であり、端末装置40の構成が具体的に述べられている。   The present embodiment is a specific example of the fifth embodiment, and the configuration of the terminal device 40 is specifically described.

ここで、端末装置40は、プログラム実行部11、メモリ11a、通信部41及びセキュアチップ装置42を備えている。セキュアチップ装置42は、具体的には、制御部43、端末固有情報格納部15、乱数復元部44、個別化鍵復元処理部45、個別化処理部35、鍵情報格納部18及びセキュリティ処理部19を備えている。   Here, the terminal device 40 includes a program execution unit 11, a memory 11 a, a communication unit 41, and a secure chip device 42. Specifically, the secure chip device 42 includes a control unit 43, a terminal specific information storage unit 15, a random number restoration unit 44, an individualized key restoration processing unit 45, an individualization processing unit 35, a key information storage unit 18, and a security processing unit. 19 is provided.

プログラム実行部11は、プログラム(又は鍵情報)を入手するため、通信部41を介して第1〜第6サーバ装置Sv1〜Sv6の極小グループA又はA及び第7〜第8サーバ装置Sv7,Sv8にプログラム(又は鍵情報)を要求する機能と、セキュアチップ装置42から受けたプログラム(又は鍵ID)をメモリ11aに記憶させて実行する機能と、プログラムの実行終了後、メモリ11a内のプログラムをメモリ11aから削除する機能とをもっている。 The program execution unit 11, the program (or key information) to obtain a minimum group A 0 or A i and seventh eighth server device of the first to sixth server Sv1~Sv6 via the communication unit 41 SV7 , A function for requesting a program (or key information) to Sv8, a function for storing the program (or key ID k ) received from the secure chip device 42 in the memory 11a, and executing the program, and in the memory 11a after completion of the execution of the program And a function of deleting the program from the memory 11a.

プログラム実行部11は、前述した通り、プログラムの実行中、必要により、セキュリティ処理要求をセキュアチップ装置42に入力する機能と、得られた実行結果P(K,D)を用い、現在実行中のプログラムの実行を継続する機能とをもっている。   As described above, the program execution unit 11 uses the function of inputting a security processing request to the secure chip device 42 and the obtained execution result P (K, D) as necessary during execution of the program. With the ability to continue program execution.

メモリ11aは、前述同様に、プログラム実行部11から読出/書込可能な記憶部である。   The memory 11a is a storage unit that can be read / written from the program execution unit 11 as described above.

通信部41は、プログラム実行部11から受けた要求を第1〜第6サーバ装置Sv1〜Sv6の極小グループA又はA及び第7〜第8サーバ装置Sv7,Sv8に送信する機能と、第1〜第8サーバ装置Sv1〜Sv8から受けた分散情報S0〜S3のいずれか、原始元g及び暗号化プログラムE(K,C)をセキュアチップ装置42に入力する機能とをもっている。なお、分散鍵情報K’及び暗号化プログラムE(K,C)は、前述同様に通信部31からプログラム実行部11を介してセキュアチップ装置42に入力してもよい。 The communication unit 41 transmits a request received from the program execution unit 11 to the minimal group A 0 or A i of the first to sixth server devices Sv1 to Sv6 and the seventh to eighth server devices Sv7 and Sv8, and It has a function of inputting any one of the shared information S0 to S3 received from the first to eighth server devices Sv1 to Sv8, the primitive element g and the encryption program E (K, C) to the secure chip device 42. The distributed key information K ′ and the encrypted program E (K, C) may be input from the communication unit 31 to the secure chip device 42 via the program execution unit 11 as described above.

セキュアチップ装置42は、端末装置40に内蔵されたシングルチップ形式の耐タンパー性ハードウェアからなり、通信部41から分散鍵情報K’及び暗号化プログラムE(K,C)が入力されると、以下の各部43〜45,35,15により、復元されたプログラムC又は鍵IDをプログラム実行部11に出力する機能と、プログラム実行部11からセキュリティ処理要求(処理ID,鍵ID,データD)が入力されると、以下の各部43,18,19により、セキュリティ処理の実行結果P(K,D)をプログラム実行部11に出力する機能をもっている。 The secure chip device 42 is composed of single-chip tamper-resistant hardware built in the terminal device 40, and when the distributed key information K ′ and the encryption program E (K, C) are input from the communication unit 41, The function of outputting the restored program C or key ID k to the program execution unit 11 by each of the following units 43 to 45, 35, 15 and the security processing request (processing ID p , key ID k , data from the program execution unit 11 When D) is input, each of the following units 43, 18, 19 has a function of outputting a security processing execution result P (K, D) to the program execution unit 11.

制御部43は、入力内容に応じ、復元されたプログラムC、鍵ID、又は実行結果P(K,D)を得るように、各部44〜45,35,15,18〜19を制御する機能と、得られた結果をプログラム実行部11に出力する機能とをもっている。なお、端末固有情報格納部15、個別化処理部35、鍵情報格納部18及びセキュリティ処理部19は、前述同様のものである。 The control unit 43 functions to control the units 44 to 45, 35, 15, and 18 to 19 so as to obtain the restored program C, key ID k , or execution result P (K, D) according to the input content. And a function of outputting the obtained result to the program execution unit 11. The terminal specific information storage unit 15, the personalization processing unit 35, the key information storage unit 18 and the security processing unit 19 are the same as described above.

乱数復元部44は、制御部33から入力された分散情報S〜Sのいずれかに基づいて乱数rを復元する機能と、得られた乱数rを制御部43に送出する機能とをもっている。 The random number restoration unit 44 has a function of restoring the random number r based on any of the shared information S 0 to S 3 input from the control unit 33 and a function of sending the obtained random number r to the control unit 43. .

個別化鍵復元処理部34は、制御部33から入力された乱数r、原始元g及び端末固有情報KP1に基づいて、個別化鍵K(=(g P1 mod p)=)を算出し、得られた個別化鍵情報Kを制御部43に送出する機能をもっている。 The personalization key restoration processing unit 34 obtains the personalization key K (= (g r ) K P1 mod p) =) based on the random number r, the primitive element g, and the terminal specific information K P1 input from the control unit 33. It has a function of calculating and sending the obtained personalized key information K to the control unit 43.

次に、以上のように構成された端末装置の動作を図16のフローチャートを用いて説明する。
(プログラムの復元)
いま、第5の実施形態と同様に、プログラムCを秘密分散及び個別化してなる分散情報S0〜S3、原始元g及び暗号化プログラムE(K,C)が、それぞれ第1〜第8サーバ装置Sv1〜Sv8に記憶されているとする。
Next, the operation of the terminal device configured as described above will be described with reference to the flowchart of FIG.
(Restore program)
Now, as in the fifth embodiment, shared information S0 to S3 obtained by secret sharing and individualizing program C, primitive element g, and encrypted program E (K, C) are respectively stored in first to eighth server apparatuses. It is assumed that they are stored in Sv1 to Sv8.

一方、端末装置40においては、前述同様に、極小グループAに属する第2〜第4サーバ装置Sv2〜Sv4に対し、図13に示すような第2分散情報Sを要求する。また、端末装置40は、第7及び第8サーバ装置Sv7,Sv8にも情報を要求する。 On the other hand, in the terminal apparatus 40, as before, to the second to fourth server Sv2~Sv4 belonging to minimum group A 3, and requests the second shared information S 3 as shown in FIG. 13. The terminal device 40 also requests information from the seventh and eighth server devices Sv7 and Sv8.

また、端末装置30は、各サーバ装置Sv2〜SV4,Sv7,Sv8から受けた分散情報S(=S{3,1},S{3,2},S{3,3})、原始元g及び暗号化プログラムE(K,C)をセキュアチップ装置42に入力する。 In addition, the terminal device 30 uses the shared information S 3 (= S {3,1}, S {3,2}, S {3,3}) received from each of the server devices Sv2 to SV4, Sv7, and Sv8, the primitive element g and the encryption program E (K, C) are input to the secure chip device 42.

セキュアチップ装置42は、入力があると、入力内容を識別する(ST41R)。入力内容が個別化されたプログラムに相当する分散情報S、原始元g及び暗号化プログラムE(K,C’)の場合(ST42R)、制御部43が分散情報Sを乱数復元部44に入力する。 When there is an input, secure chip device 42 identifies the input content (ST41R). In the case of shared information S 3 corresponding to an individualized input content, primitive element g and encrypted program E (K, C ′) (ST42R), the control unit 43 sends the shared information S 3 to the random number restoration unit 44. input.

乱数復元部44は、この分散情報Sから乱数rを復元し(ST43R−1)、得られた乱数rを制御部43に出力する。 Random number restoring unit 44, the shared information S 3 restores the random number r from (ST43R-1), and outputs the obtained random number r to the control unit 43.

制御部43は、この乱数r、原始元g及び端末固有情報KP1を個別化鍵復元処理部45に入力する。 The control unit 43 inputs the random number r, the primitive element g, and the terminal unique information K P1 to the individualized key restoration processing unit 45.

個別化鍵復元処理部45は、この乱数r、原始元g及び端末固有情報KP1に基づいて、個別化鍵K(=(g P1 mod p)=)を復元し(ST43R−2)、得られた個別化鍵情報Kを制御部43に送出する。 The individualized key restoration processing unit 45 restores the individualized key K (= (g r ) K P1 mod p) =) based on the random number r, the primitive element g, and the terminal specific information K P1 (ST43R-2). ) And sending the obtained individualized key information K to the control unit 43.

制御部43は、この個別化鍵情報K及び暗号化プログラムE(K,C)を個別化処理部35に入力する。以下、前述同様にST44以降の処理が実行される。   The control unit 43 inputs the personalization key information K and the encryption program E (K, C) to the personalization processing unit 35. Thereafter, the processing after ST44 is executed as described above.

(セキュリティ処理の実行)
セキュリティ処理は、第2の実施形態と同様に実行される。
(鍵情報の復元)
鍵情報の復元処理は、前述したプログラムCに代えて、鍵情報Kcが秘密分散され個別化された場合に当該鍵情報Kcを復元する内容である。以下、順次説明する。
(Perform security processing)
The security process is executed as in the second embodiment.
(Restore key information)
The key information restoration processing is a content for restoring the key information Kc when the key information Kc is secretly distributed and individualized instead of the program C described above. Hereinafter, description will be made sequentially.

いま、前述同様に、鍵情報Kcを秘密分散及び個別化してなる秘密分散及び個別化してなる分散情報S〜S、原始元g及び暗号化鍵情報E(K,Kc)が、それぞれ第1〜第8サーバ装置Sv1〜Sv8に記憶されているとする。 As described above, the secret information obtained by secret sharing and individualizing the key information Kc, and the shared information S 0 to S 3 obtained by individualizing, the original element g, and the encryption key information E (K, Kc) are respectively It is assumed that the data are stored in the first to eighth server devices Sv1 to Sv8.

一方、端末装置40においては、前述同様にして、各サーバ装置Sv2〜SV4,Sv7,Sv8から分散情報S(=S{3,1},S{3,2},S{3,3})、原始元g及び暗号化鍵情報E(K,Kc)を受けると、これらをセキュアチップ装置42に入力する。 On the other hand, in the terminal device 40, the distributed information S 3 (= S {3,1}, S {3,2}, S {3,3} is obtained from the server devices Sv2 to SV4, Sv7, Sv8 in the same manner as described above. When the primitive element g and the encryption key information E (K, Kc) are received, these are input to the secure chip device 42.

セキュアチップ装置42は、入力があると、入力内容を識別する(ST41R)。入力内容が個別化された鍵情報Kcに相当する分散情報S、原始元g及び暗号化鍵情報E(K,Kc)の場合(ST46R)、制御部43が分散情報Sを乱数復元部44に入力する。 When there is an input, secure chip device 42 identifies the input content (ST41R). In the case of shared information S 3 corresponding to individualized key information Kc, primitive element g and encrypted key information E (K, Kc) (ST46R), the control unit 43 converts the shared information S 3 into a random number restoration unit. 44.

乱数復元部44は、この分散情報Sから乱数rを復元する(ST47R−1)。詳しくは、乱数復元部44は、次の(α)又は(β)のようにして乱数rを復元する。 Random number restoring unit 44 restores the random number r from this shared information S 3 (ST47R-1). Specifically, the random number restoration unit 44 restores the random number r in the following (α) or (β).

(α)入力された分散情報がSに含まれる分散情報であり、入力された個数が(L+1)個以上のとき、(L+1,n’)しきい値法によりrを復元する。 (Α) When the input shared information is the distributed information included in S 0 and the input number is (L + 1) or more, r is restored by the (L + 1, n ′) threshold method.

(β)入力された分散情報がS(1≦i≦d)に含まれる分散情報であり、入力された個数が|A|個以上のとき、(|A|,|A|)しきい値法によりrを復元する。 (Β) When the input shared information is shared information included in S i (1 ≦ i ≦ d), and the input number is | A i | or more, (| A i |, | A i | ) Restore r by the threshold method.

しかる後、乱数復元部44は得られた乱数rを制御部43に出力する。   Thereafter, the random number restoration unit 44 outputs the obtained random number r to the control unit 43.

制御部43は、この乱数r、原始元g及び端末固有情報KP1を個別化鍵復元処理部45に入力する。 The control unit 43 inputs the random number r, the primitive element g, and the terminal unique information K P1 to the individualized key restoration processing unit 45.

個別化鍵復元処理部45は、この乱数r、原始元g及び端末固有情報KP1に基づいて、個別化鍵K(=(g P1 mod p)=)を復元し(ST47R−2)、得られた個別化鍵情報Kを制御部43に送出する。 The individualized key restoration processing unit 45 restores the individualized key K (= (g r ) K P1 mod p) =) based on the random number r, the primitive element g, and the terminal specific information K P1 (ST47R-2). ), And sends the obtained individualized key information K to the control unit 43.

制御部43は、この個別化鍵情報K及び暗号化鍵情報E(K,Kc)を個別化処理部35に入力する。以下、前述同様にST48以降の処理が実行される。   The control unit 43 inputs the individualization key information K and the encryption key information E (K, Kc) to the individualization processing unit 35. Thereafter, the processing after ST48 is executed as described above.

上述したように本実施形態によれば、第5の実施形態の効果に加え、プログラムの場合と同様に、秘密分散され個別化された鍵情報を復元することができる。また、鍵情報を用いる任意のセキュリティ処理をセキュアチップ装置42内で実行することができる。   As described above, according to the present embodiment, in addition to the effects of the fifth embodiment, secret-distributed and individualized key information can be restored as in the case of the program. Further, any security processing using the key information can be executed in the secure chip device 42.

なお、本実施形態は、鍵情報Kだけではなく、セキュアチップ装置42内部で動作するプログラム自体も鍵情報格納部18に格納し、格納したプログラムに基づきセキュリティ処理部19を実行してもよい。この場合、さらに高いセキュリティ性を実現できる。   In the present embodiment, not only the key information K but also the program itself operating in the secure chip device 42 may be stored in the key information storage unit 18 and the security processing unit 19 may be executed based on the stored program. In this case, higher security can be realized.

なお、上記各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。   The method described in each of the above embodiments is a program that can be executed by a computer, such as a magnetic disk (floppy (registered trademark) disk, hard disk, etc.), an optical disk (CD-ROM, DVD, etc.), a magneto-optical disk ( MO), and can be stored and distributed in a storage medium such as a semiconductor memory.

また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。   In addition, as long as the storage medium can store a program and can be read by a computer, the storage format may be any form.

また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が本実施形態を実現するための各処理の一部を実行しても良い。   In addition, an OS (operating system) operating on the computer based on an instruction of a program installed in the computer from the storage medium, MW (middleware) such as database management software, network software, and the like implement the present embodiment. A part of each process may be executed.

さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。   Furthermore, the storage medium in the present invention is not limited to a medium independent of a computer, but also includes a storage medium in which a program transmitted via a LAN or the Internet is downloaded and stored or temporarily stored.

また、記憶媒体は1つに限らず、複数の媒体から本実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。   Further, the number of storage media is not limited to one, and the case where the processing in the present embodiment is executed from a plurality of media is also included in the storage media in the present invention, and the media configuration may be any configuration.

尚、本発明におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。   The computer according to the present invention executes each process according to the present embodiment based on a program stored in a storage medium, and includes a single device such as a personal computer or a system in which a plurality of devices are connected to a network. Any configuration may be used.

また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。   In addition, the computer in the present invention is not limited to a personal computer, but includes a processing unit, a microcomputer, and the like included in an information processing device, and is a generic term for devices and devices that can realize the functions of the present invention by a program. .

なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。   Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Moreover, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined.

本発明の第1の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system to which the information program protection method which concerns on the 1st Embodiment of this invention is applied. 同実施形態における動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement in the embodiment. 本発明の第2の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system to which the information program protection method which concerns on the 2nd Embodiment of this invention is applied. 同実施形態における動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement in the embodiment. 本発明の第3の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system to which the information program protection method which concerns on the 3rd Embodiment of this invention is applied. 同実施形態における動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement in the embodiment. 本発明の第4の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system to which the information program protection method which concerns on the 4th Embodiment of this invention is applied. 同実施形態における動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement in the embodiment. 本発明の第5の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system to which the information program protection method which concerns on the 5th Embodiment of this invention is applied. 同実施形態における動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement in the embodiment. 同実施形態における極小グループを説明するための模式図である。It is a schematic diagram for demonstrating the minimum group in the same embodiment. 同実施形態における極小グループを説明するための模式図である。It is a schematic diagram for demonstrating the minimum group in the same embodiment. 同実施形態における分散情報の個数を説明するための模式図である。It is a schematic diagram for demonstrating the number of the shared information in the same embodiment. 従来手法による分散情報の個数を説明するための模式図である。It is a schematic diagram for demonstrating the number of the distributed information by a conventional method. 本発明の第6の実施形態に係る情報プログラム保護方法が適用される秘密分散システムの構成を示す模式図である。It is a schematic diagram which shows the structure of the secret sharing system to which the information program protection method which concerns on the 6th Embodiment of this invention is applied. 同実施形態における動作を説明するためのフローチャートである。It is a flowchart for demonstrating the operation | movement in the embodiment.

符号の説明Explanation of symbols

Sv0〜Sv8…サーバ装置、1…保護対象記憶部、2…端末固有情報記憶部、3…入力部、4…圧縮部、5…分散情報生成部、6…秘密分散部、7…個別化部、8…送信部、10〜40…端末装置、11…プログラム実行部、11a…メモリ、12,31,41…通信部、13,32,42…セキュアチップ装置、14,33,43…制御部、15…端末固有情報格納部、16…個別化解除部、17…分散プログラム復元部、18…鍵情報格納部、19…セキュリティ処理部、21…乱数生成部、22…分散鍵情報生成部、23…個別化鍵生成部、24…個別化部、25…分散情報生成部、34,45…個別化鍵復元処理部、35…個別化処理部、44…乱数生成部。   Sv0 to Sv8 ... Server device, 1 ... Protection target storage unit, 2 ... Terminal specific information storage unit, 3 ... Input unit, 4 ... Compression unit, 5 ... Distributed information generation unit, 6 ... Secret sharing unit, 7 ... Individualization unit , 8 ... Transmission unit, 10 to 40 ... Terminal device, 11 ... Program execution unit, 11a ... Memory, 12, 31, 41 ... Communication unit, 13, 32, 42 ... Secure chip device, 14, 33, 43 ... Control unit 15 ... Terminal unique information storage unit, 16 ... Individualization release unit, 17 ... Distributed program restoration unit, 18 ... Key information storage unit, 19 ... Security processing unit, 21 ... Random number generation unit, 22 ... Distributed key information generation unit, 23 ... Individualized key generation unit, 24 ... Individualization unit, 25 ... Distributed information generation unit, 34, 45 ... Individualized key restoration processing unit, 35 ... Individualization processing unit, 44 ... Random number generation unit.

Claims (11)

端末固有情報を有して共通鍵暗号方式、排他的論理和及び圧縮プログラム解凍を実行可能な端末装置に格納された秘密情報と前記秘密情報を処理するプログラムとを不正な利用又は解析から保護するように、前記プログラムを予め複数のサーバ装置に秘密分散する情報プログラム保護方法であって、
前記各サーバ装置のうちの分散用サーバ装置が、0と1からなるバイナリ形式の前記プログラムに対し、前記0と1の偏りを少なくするように前記プログラムを圧縮し、圧縮プログラムを得る工程と、
前記分散用サーバ装置が当該圧縮プログラムのビット長を算出する工程と、
前記分散用サーバ装置が前記ビット長と同じビット長の乱数からなる分散情報を生成する工程と、
前記分散用サーバ装置が前記分散情報と前記圧縮プログラムとの各ビットの排他的論理和を算出し、算出値を得る工程と、
前記分散用サーバ装置が前記算出値を前記端末固有情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化算出値を得る工程と、
前記分散用サーバ装置が前記分散情報を前記端末固有情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化分散情報を得る工程と、
前記分散用サーバ装置が前記暗号化分散情報及び暗号化算出値のうち、少なくとも一方を他のサーバ装置に送信する工程と
を備えたことを特徴とする情報プログラム保護方法。
Protects secret information stored in a terminal device that has terminal-specific information and can execute common key cryptography, exclusive OR, and compression program decompression and a program that processes the secret information from unauthorized use or analysis An information program protection method for secretly distributing the program to a plurality of server devices in advance,
A distribution server device among the server devices compresses the program so as to reduce the bias of 0 and 1 with respect to the binary program consisting of 0 and 1, and obtains a compressed program;
The distribution server device calculating a bit length of the compression program;
The distribution server device generating distribution information composed of random numbers having the same bit length as the bit length;
The distribution server device calculates an exclusive OR of each bit of the distribution information and the compression program, and obtains a calculated value;
The distribution server device encrypting the calculated value by an encryption process based on the terminal-specific information and the common key encryption method to obtain an encrypted calculated value;
The distribution server device encrypting the distributed information by encryption processing based on the terminal unique information and the common key encryption method to obtain encrypted distributed information;
And a step of transmitting at least one of the encrypted shared information and the encrypted calculated value to another server device.
端末装置に内蔵されたシングルチップ形式のハードウェアからなる情報プログラム保護装置であって、
前記端末装置に固有の端末固有情報が格納された端末固有情報格納手段と、
圧縮プログラムのビット長と同じビット長の乱数からなる分散情報が端末固有情報により暗号化されてなる暗号化分散情報が前記端末装置から入力される暗号化分散情報入力手段と、
前記分散情報と前記圧縮プログラムとの排他的論理和として算出された算出値が端末固有情報により暗号化されてなる暗号化算出値が前記端末装置から入力される暗号化算出値入力手段と、
前記入力された暗号化分散情報及び暗号化算出値から前記端末固有情報格納手段内の端末固有情報に基づいて、圧縮プログラムを復元するプログラム復元手段と、
前記復元された圧縮プログラムを前記端末装置内に出力する出力手段と、
鍵情報が格納される鍵情報格納手段と、
入力された処理要求に基づいて、暗号化処理、復号処理、署名生成処理、認証子の生成処理及び認証子の検証処理のうち、いずれかの処理を前記鍵情報を用いて実行し、実行結果を得る処理実行手段と、
前記実行結果を前記端末装置内に出力する実行結果出力手段と
を備えたことを特徴とする情報プログラム保護装置。
An information program protection device composed of single-chip hardware incorporated in a terminal device,
Terminal-specific information storage means storing terminal-specific information specific to the terminal device;
Encrypted distributed information input means for receiving, from the terminal device, encrypted shared information obtained by encrypting shared information consisting of random numbers having the same bit length as the bit length of the compression program using terminal specific information
An encrypted calculated value input means for inputting an encrypted calculated value obtained by encrypting a calculated value calculated as an exclusive OR of the shared information and the compression program from the terminal device;
Program restoration means for restoring a compression program based on the terminal-specific information in the terminal-specific information storage means from the input encrypted shared information and encryption calculation value;
Output means for outputting the decompressed compressed program into the terminal device;
Key information storage means for storing key information;
Based on the input processing request, one of the encryption process, the decryption process, the signature generation process, the authenticator generation process, and the authenticator verification process is executed using the key information, and the execution result Processing execution means for obtaining
An information program protection device comprising: execution result output means for outputting the execution result into the terminal device.
請求項2に記載の情報プログラム保護装置において、
前記プログラム復元手段は、
前記入力された暗号化分散情報を前記端末固有情報格納手段内の端末固有情報に基づいて復号し、分散情報を得る分散情報復号手段と、
前記入力された暗号化算出値を前記端末固有情報格納手段内の端末固有情報に基づいて復号し、算出値を得る算出値復号手段と、
前記復号された分散情報と前記復号された算出値との排他的論理和を算出し、圧縮プログラムを得る排他的論理和算出手段と、
を備えたことを特徴とする情報プログラム保護装置。
The information program protection device according to claim 2,
The program restoring means includes:
A shared information decryption unit for decrypting the input encrypted shared information based on the terminal specific information in the terminal specific information storage unit to obtain shared information;
A calculated value decrypting means for decrypting the input encrypted calculated value based on the terminal specific information in the terminal specific information storage means and obtaining a calculated value;
An exclusive OR calculation means for calculating an exclusive OR of the decoded shared information and the decoded calculated value, and obtaining a compression program;
An information program protection device comprising:
請求項2に記載の情報プログラム保護装置において、
前記鍵格納手段は、鍵IDが前記鍵情報に関連付けて格納されており、
前記処理要求は、処理ID、鍵ID及びデータを含んでおり、
前記処理実行手段は、
前記入力された処理要求に含まれる鍵IDに基づいて、前記鍵情報格納部から鍵情報を読出す手段と、
前記読出した鍵情報、前記処理要求に含まれる処理ID及びデータに関し、前記処理IDで指定された処理を鍵情報に基づいてデータに実行し、前記実行結果を得る手段と
を備えたことを特徴とする情報プログラム保護装置。
The information program protection device according to claim 2,
The key storage means stores a key ID in association with the key information,
The processing request includes a processing ID, a key ID, and data.
The process execution means includes
Means for reading key information from the key information storage unit based on the key ID included in the input processing request;
Means for executing the process specified by the process ID on the data based on the key information with respect to the read key information and the process ID and data included in the process request, and obtaining the execution result. Information program protection device.
請求項2に記載の情報プログラム保護装置において、
鍵情報のビット長と同じビット長の乱数からなる分散鍵情報が端末固有情報により暗号化されてなる暗号化分散鍵情報が前記端末装置から入力される暗号化分散鍵情報入力手段と、
前記分散鍵情報と当該鍵情報との排他的論理和として算出された鍵用算出値が端末固有情報により暗号化されてなる暗号化鍵用算出値が前記端末装置から入力される暗号化鍵用算出値入力手段と、
前記入力された暗号化分散鍵情報を前記端末固有情報格納手段内の端末固有情報に基づいて復号し、分散鍵情報を得る分散鍵情報復号手段と、
前記入力された暗号化鍵用算出値を前記端末固有情報格納手段内の端末固有情報に基づいて復号し、鍵用算出値を得る鍵用算出値復号手段と、
前記復号された分散鍵情報と前記復号された鍵用算出値との排他的論理和を算出し、鍵情報を復元する鍵情報復元手段と、
前記復元された鍵情報を対応する鍵IDと関連付けて前記鍵情報格納手段に書込む鍵書込手段と、
当該鍵IDを前記端末装置内に出力する鍵ID出力手段と
を備えたことを特徴とする情報プログラム保護装置。
The information program protection device according to claim 2,
Encrypted distributed key information input means for receiving, from the terminal device, encrypted distributed key information in which distributed key information consisting of random numbers having the same bit length as the bit length of the key information is encrypted with terminal-specific information;
An encryption key calculation value obtained by encrypting a key calculation value calculated as an exclusive OR of the distributed key information and the key information with terminal-specific information is input from the terminal device. A calculated value input means;
Distributed key information decrypting means for decrypting the inputted encrypted distributed key information based on the terminal unique information in the terminal unique information storage means to obtain distributed key information;
A key calculation value decryption unit that decrypts the input encryption key calculation value based on the terminal unique information in the terminal unique information storage unit to obtain a key calculation value;
A key information restoring unit that calculates an exclusive OR of the decrypted distributed key information and the decrypted calculated value for the key, and restores the key information;
A key writing means for writing the restored key information in the key information storage means in association with the corresponding key ID;
An information program protection device comprising: key ID output means for outputting the key ID into the terminal device.
端末固有情報を有して共通鍵暗号方式を実行可能な端末装置に格納された秘密情報と前記秘密情報を処理するプログラムとを不正な利用又は解析から保護するように、前記プログラムを予め複数のサーバ装置に秘密分散する情報プログラム保護方法であって、
前記各サーバ装置のうちの分散用サーバ装置が乱数を生成する工程と、
前記分散用サーバ装置が前記乱数に基づいて分散鍵情報を生成する工程と、
前記分散用サーバ装置が前記分散鍵情報から前記端末固有情報に基づいて、個別化鍵情報を生成する工程と、
前記分散用サーバ装置が前記プログラムを前記個別化鍵情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化プログラムを得る工程と、
前記分散用サーバ装置が前記暗号化プログラム及び前記分散鍵情報のうち、少なくとも一方を他のサーバ装置に送信する工程と
を備えたことを特徴とする情報プログラム保護方法。
In order to protect the secret information stored in the terminal device having terminal-specific information and capable of executing the common key cryptography and the program for processing the secret information from unauthorized use or analysis, a plurality of programs are previously stored. An information program protection method for secret sharing in a server device,
A step of generating a random number by the server device for distribution among the server devices;
The distribution server device generating distribution key information based on the random number;
The distribution server device generating personalized key information based on the terminal-specific information from the distributed key information;
The distribution server device encrypting the program by an encryption process based on the individual key information and the common key encryption method to obtain an encrypted program;
And a step of the distribution server device transmitting at least one of the encryption program and the distribution key information to another server device.
端末装置に内蔵されたシングルチップ形式のハードウェアからなる情報プログラム保護装置であって、
前記端末装置に固有の端末固有情報が格納された端末固有情報格納手段と、
乱数により生成された分散鍵情報から端末固有情報に基づいて生成された個別化鍵情報に基づいてプログラムが暗号化されてなる暗号化プログラムが前記端末装置から入力される暗号化プログラム入力手段と、
前記分散鍵情報が前記端末装置から入力される分散鍵情報入力手段と、
前記入力された分散鍵情報及び暗号化プログラムから前記端末固有情報格納手段内の端末固有情報に基づいて、プログラムを復元するプログラム復元手段と、
前記復元されたプログラムを前記端末装置内に出力する出力手段と、
鍵情報が格納される鍵情報格納手段と、
入力された処理要求に基づいて、暗号化処理、復号処理、署名生成処理、認証子の生成処理及び認証子の検証処理のうち、いずれかの処理を前記鍵情報を用いて実行し、実行結果を得る処理実行手段と、
前記実行結果を前記端末装置内に出力する実行結果出力手段と
を備えたことを特徴とする情報プログラム保護装置。
An information program protection device composed of single-chip hardware incorporated in a terminal device,
Terminal-specific information storage means storing terminal-specific information specific to the terminal device;
An encrypted program input means for inputting from the terminal device an encrypted program obtained by encrypting a program based on personalized key information generated based on terminal-specific information from distributed key information generated by random numbers;
Distributed key information input means for inputting the distributed key information from the terminal device;
Program restoring means for restoring a program based on terminal-specific information in the terminal-specific information storage means from the input distributed key information and encrypted program;
Output means for outputting the restored program in the terminal device;
Key information storage means for storing key information;
Based on the input processing request, one of the encryption process, the decryption process, the signature generation process, the authenticator generation process, and the authenticator verification process is executed using the key information, and the execution result Processing execution means for obtaining
An information program protection device comprising: execution result output means for outputting the execution result into the terminal device.
請求項7に記載の情報プログラム保護装置において、
前記プログラム復元手段は、
前記入力された分散鍵情報から前記端末固有情報格納手段内の端末固有情報に基づいて、個別化鍵情報を生成する個別化鍵情報生成手段と、
前記入力された暗号化プログラムを前記個別化鍵情報に基づいて復号し、プログラムを得るプログラム復号手段と、
を備えたことを特徴とする情報プログラム保護装置。
In the information program protection device according to claim 7,
The program restoring means includes:
Personalized key information generating means for generating personalized key information from the input distributed key information based on terminal specific information in the terminal specific information storage means;
Program decryption means for decrypting the input encrypted program based on the individualized key information and obtaining a program;
An information program protection device comprising:
請求項7に記載の情報プログラム保護装置において、
前記鍵格納手段は、鍵IDが前記鍵情報に関連付けて格納されており、
前記処理要求は、処理ID、鍵ID及びデータを含んでおり、
前記処理実行手段は、
前記入力された処理要求に含まれる鍵IDに基づいて、前記鍵情報格納部から鍵情報を読出す手段と、
前記読出した鍵情報、前記処理要求に含まれる処理ID及びデータに関し、前記処理IDで指定された処理を鍵情報に基づいてデータに実行し、前記実行結果を得る手段と
を備えたことを特徴とする情報プログラム保護装置。
In the information program protection device according to claim 7,
The key storage means stores a key ID in association with the key information,
The processing request includes a processing ID, a key ID, and data.
The process execution means includes
Means for reading key information from the key information storage unit based on the key ID included in the input processing request;
Means for executing the process specified by the process ID on the data based on the key information with respect to the read key information and the process ID and data included in the process request, and obtaining the execution result. Information program protection device.
請求項7に記載の情報プログラム保護装置において、
乱数により生成された分散鍵情報から端末固有情報に基づいて生成された個別化鍵情報に基づいて鍵情報が暗号化されてなる暗号化鍵情報が前記端末装置から入力される暗号化鍵情報入力手段と、
前記分散鍵情報が前記端末装置から入力される分散鍵情報入力手段と、
前記入力された分散鍵情報から前記端末固有情報格納手段内の端末固有情報に基づいて、個別化鍵情報を生成する個別化鍵情報生成手段と、
前記入力された暗号化鍵情報を前記個別化鍵情報に基づいて復号し、鍵情報を復元する鍵情報復元手段と、
前記復元された鍵情報を対応する鍵IDと関連付けて前記鍵情報格納手段に書込む鍵書込手段と、
当該鍵IDを前記端末装置内に出力する鍵ID出力手段と
を備えたことを特徴とする情報プログラム保護装置。
In the information program protection device according to claim 7,
Encryption key information input in which encryption key information obtained by encrypting key information based on personalized key information generated based on terminal-specific information from distributed key information generated by random numbers is input from the terminal device Means,
Distributed key information input means for inputting the distributed key information from the terminal device;
Personalized key information generating means for generating personalized key information from the input distributed key information based on terminal specific information in the terminal specific information storage means;
Key information restoring means for decrypting the inputted encryption key information based on the individualized key information and restoring the key information;
A key writing means for writing the restored key information in the key information storage means in association with the corresponding key ID;
An information program protection device comprising: key ID output means for outputting the key ID into the terminal device.
端末固有情報を有して共通鍵暗号方式を実行可能な端末装置に格納された秘密情報と前記秘密情報を処理するプログラムとを不正な利用又は解析から保護するように、前記プログラムの秘密分散に用いる乱数及び当該プログラムを少なくともn台のサーバ装置に秘密分散する情報プログラム保護方法であって、
前記各サーバ装置のうちの分散用サーバ装置が乱数rを生成する工程と、
前記分散用サーバ装置が前記乱数及び端末固有情報に基づいて、個別化鍵情報を生成する工程と、
前記分散用サーバ装置が前記プログラムを前記個別化鍵情報及び前記共通鍵暗号方式に基づいた暗号処理により暗号化し、暗号化プログラムを得る工程と、
前記分散用サーバ装置が、前記乱数rを復元可能なn台以下のサーバ装置のグループの中で、一台でも欠けると乱数rが復元不可能となるグループである極小グループに基づいて、任意の(L+1)台のサーバ装置のグループでは乱数rを復元可能となる旨の最小の台数Lを定める工程と、
L台以下のサーバ装置からなり、前記L台以下のサーバ装置により乱数rを復元可能で且つ1台でもサーバ装置が減ると、乱数rが復元不可能となる旨のd個の極小グループA(但し、1≦i≦d)を前記分散用サーバ装置に設定する工程と、
任意の(L+1)台のサーバ装置のグループの中の極小グループに含まれるサーバ装置の集合をAとし、集合Aに含まれるサーバ装置の台数n’を求め、(L+1,n’)しきい値法により、乱数rに対する第1分散情報S={s,…,s’}を生成する工程と、
前記集合Aに含まれるサーバ装置に対し、前記第1分散情報Sに含まれる要素{s,…,s’}を重複なく割り当てる工程と、
前記分散用サーバ装置が、前記極小グループA毎に(|A|,|A|)しきい値法により(但し|A|はAに属するサーバ装置の台数)、前記乱数rの第2分散情報S={s{i,1},…,s{i,|Ai|}}を生成する工程と、
前記分散用サーバ装置が、前記極小グループA毎に、前記第2分散情報Sに含まれる要素{s{i,1},…,s{i,|Ai|}}を当該極小グループAに含まれる各サーバ装置に個別に割り当てる工程と
を備えたことを特徴とする情報プログラム保護方法。
In order to protect secret information stored in a terminal device having terminal-specific information and capable of executing a common key cryptosystem and a program for processing the secret information from unauthorized use or analysis, An information program protection method for secretly distributing a random number to be used and the program to at least n server devices,
A process of generating a random number r by a distribution server device among the server devices;
The distribution server device generating personalized key information based on the random number and the terminal-specific information; and
The distribution server device encrypting the program by an encryption process based on the individual key information and the common key encryption method to obtain an encrypted program;
Based on a minimal group that is a group in which the random number r cannot be restored if at least one of the groups of n or less server devices that can restore the random number r is missing, the distribution server device A step of determining a minimum number L that the random number r can be restored in a group of (L + 1) server devices;
It is composed of L or less server devices, and the d minimum groups A i that the random number r can be restored by the L or less server devices and that even if one server device is reduced, the random number r cannot be restored. (Where 1 ≦ i ≦ d) is set in the distribution server device;
A set of server devices contained in the minimum group in the group for any (L + 1) stage of the server and A 0, 'seek, (L + 1, n' number n of the server apparatus included in the set A 0 and) Generating first shared information S 0 = {s 1 ,..., S n ′} for the random number r by a threshold method;
Assigning elements {s 1 ,..., S n ′] included in the first shared information S 0 to the server devices included in the set A 0 without duplication;
The distribution server device uses the threshold value method (where | A i | is the number of server devices belonging to A i ) for each minimal group A i (| A i |, | A i |). Generating second shared information S i = {s {i, 1} ,..., S {i, | Ai |} },
The distribution server device assigns elements {s {i, 1} ,..., S {i, | Ai |} } included in the second distribution information S i to the minimal group A for each minimal group A i. a method of individually allocating to each server device included in i .
JP2004288150A 2004-09-30 2004-09-30 Method and device for protecting information program Pending JP2006099697A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004288150A JP2006099697A (en) 2004-09-30 2004-09-30 Method and device for protecting information program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004288150A JP2006099697A (en) 2004-09-30 2004-09-30 Method and device for protecting information program

Publications (1)

Publication Number Publication Date
JP2006099697A true JP2006099697A (en) 2006-04-13

Family

ID=36239402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004288150A Pending JP2006099697A (en) 2004-09-30 2004-09-30 Method and device for protecting information program

Country Status (1)

Country Link
JP (1) JP2006099697A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007322822A (en) * 2006-06-01 2007-12-13 Toshiba Corp Data processor, data processing method, and data processing program
JP2012529086A (en) * 2009-05-29 2012-11-15 ビッツプレイ・コーポレーション Secure storage and transmission of information over a communication network
JP6047258B1 (en) * 2016-09-23 2016-12-21 ネクスト・イット株式会社 Data backup apparatus and data backup method used for financial institution server

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000324096A (en) * 1999-05-13 2000-11-24 Nippon Telegr & Teleph Corp <Ntt> Contents protection system
JP2002281475A (en) * 2001-03-14 2002-09-27 Sony Corp Image pickup device, server device and client device
JP2003114853A (en) * 2001-10-04 2003-04-18 Koden Electronics Co Ltd E-mail confidential protection system
JP2003188871A (en) * 2001-12-20 2003-07-04 Fujitsu Ltd Ciphering processor, ciphering processing unit controller, and ciphering processing unit
JP2003249926A (en) * 2002-02-22 2003-09-05 Nippon Telegr & Teleph Corp <Ntt> Transmitter for contents common key, contents distributing device and contents receiver
JP2003296179A (en) * 2002-03-29 2003-10-17 Mitsubishi Electric Corp Information processor and network file method
JP2003333023A (en) * 2002-05-09 2003-11-21 Toshiba Corp Data relay program for plant supervisory control and system
JP2003348065A (en) * 2002-05-23 2003-12-05 Japan Datacom Co Ltd Distributed data storage system
JP2004012866A (en) * 2002-06-07 2004-01-15 Nippon Telegr & Teleph Corp <Ntt> Content distribution method, device and program
JP2004145618A (en) * 2002-10-24 2004-05-20 Canon System & Support Inc Information processor, document authenticating method, its program and recording medium
JP2004213650A (en) * 2002-12-19 2004-07-29 Ntt Communications Kk Data fragmentation method, data fragmentation device and computer program
JP2004221883A (en) * 2003-01-14 2004-08-05 Sony Corp User interface method and terminal equipment
JP2004259077A (en) * 2003-02-27 2004-09-16 Hitachi Ltd Update method for incorporating appliance program

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000324096A (en) * 1999-05-13 2000-11-24 Nippon Telegr & Teleph Corp <Ntt> Contents protection system
JP2002281475A (en) * 2001-03-14 2002-09-27 Sony Corp Image pickup device, server device and client device
JP2003114853A (en) * 2001-10-04 2003-04-18 Koden Electronics Co Ltd E-mail confidential protection system
JP2003188871A (en) * 2001-12-20 2003-07-04 Fujitsu Ltd Ciphering processor, ciphering processing unit controller, and ciphering processing unit
JP2003249926A (en) * 2002-02-22 2003-09-05 Nippon Telegr & Teleph Corp <Ntt> Transmitter for contents common key, contents distributing device and contents receiver
JP2003296179A (en) * 2002-03-29 2003-10-17 Mitsubishi Electric Corp Information processor and network file method
JP2003333023A (en) * 2002-05-09 2003-11-21 Toshiba Corp Data relay program for plant supervisory control and system
JP2003348065A (en) * 2002-05-23 2003-12-05 Japan Datacom Co Ltd Distributed data storage system
JP2004012866A (en) * 2002-06-07 2004-01-15 Nippon Telegr & Teleph Corp <Ntt> Content distribution method, device and program
JP2004145618A (en) * 2002-10-24 2004-05-20 Canon System & Support Inc Information processor, document authenticating method, its program and recording medium
JP2004213650A (en) * 2002-12-19 2004-07-29 Ntt Communications Kk Data fragmentation method, data fragmentation device and computer program
JP2004221883A (en) * 2003-01-14 2004-08-05 Sony Corp User interface method and terminal equipment
JP2004259077A (en) * 2003-02-27 2004-09-16 Hitachi Ltd Update method for incorporating appliance program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007322822A (en) * 2006-06-01 2007-12-13 Toshiba Corp Data processor, data processing method, and data processing program
JP2012529086A (en) * 2009-05-29 2012-11-15 ビッツプレイ・コーポレーション Secure storage and transmission of information over a communication network
JP6047258B1 (en) * 2016-09-23 2016-12-21 ネクスト・イット株式会社 Data backup apparatus and data backup method used for financial institution server

Similar Documents

Publication Publication Date Title
JP4316636B2 (en) Content distribution / browsing system, content distribution apparatus, content browsing apparatus, and program
JP4686138B2 (en) Storage medium conversion method, program and device
CN100514471C (en) Method and system of visiting encrypting content on mobile media by device
US7373506B2 (en) Data authentication system
JP5248153B2 (en) Information processing apparatus, method, and program
US20110222691A1 (en) Recording system, playback system, key distribution server, recording device, recording medium device, playback device, recording method, and playback method
JP2001352321A (en) Information processing system, information processing method, and information recording medium, and program providing medium
KR100777906B1 (en) Information processing system and method
JP2010028485A (en) Information processing apparatus, authentication method, and storage medium
WO2006085595A1 (en) Program conversion device and program execution device
KR20100028516A (en) Accelerated cryptography with an encryption attribute
JP4606421B2 (en) Key information generation method and apparatus, key information update method, falsification detection method and apparatus, and data structure of key information
JP4302150B2 (en) Data processing apparatus and program
JP2008299683A (en) Security method for information recording medium, information processing device, and program
JP2006099697A (en) Method and device for protecting information program
JP5964460B2 (en) Data encryption storage system
JP4843587B2 (en) Information recording medium security method, information processing apparatus, program, and recording medium
JP2004023122A (en) Encryption system utilizing ic card
JP3949952B2 (en) Smart card, playback / management apparatus, method, and program
JP6980158B2 (en) Data processing device, decoding device, data processing method, decoding method, data processing program and decoding program
JP5318069B2 (en) Information processing device
JP4791971B2 (en) Data reproduction method and data processing apparatus
CN100571135C (en) Generation method, manipulation and detection method and the device of data for detection of tampering
KR20020025343A (en) Apparatus and Method for encryption and decryption of file using base key and one-time key
JP2019153881A (en) File encryption system and file encryption program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070712

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100629

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110125