JP2014011739A - Computing system and calculation method - Google Patents

Computing system and calculation method Download PDF

Info

Publication number
JP2014011739A
JP2014011739A JP2012148728A JP2012148728A JP2014011739A JP 2014011739 A JP2014011739 A JP 2014011739A JP 2012148728 A JP2012148728 A JP 2012148728A JP 2012148728 A JP2012148728 A JP 2012148728A JP 2014011739 A JP2014011739 A JP 2014011739A
Authority
JP
Japan
Prior art keywords
data
program
encryption
row
encrypted
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
JP2012148728A
Other languages
Japanese (ja)
Inventor
Keizo Murakami
啓造 村上
Takahiro Yamamoto
隆広 山本
Koji Kishi
晃司 岸
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012148728A priority Critical patent/JP2014011739A/en
Publication of JP2014011739A publication Critical patent/JP2014011739A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a computing system which prevents confidential information from being leaked when the system is attacked while executing a program of which data and program itself exceed capacity of a tamper resistant device.SOLUTION: A computing system comprises: a tamper resistant device which manages an encryption key; and a server which stores a program and data encrypted by the encryption key. The tamper resistant device performs decryption processing on the encrypted program and data acquired from the server by the encryption key.

Description

この発明は、計算機システムおよび計算方法に関し、特に、個人情報など機密性の高い情報を扱うシステムのセキュリティを確保するための計算機システムおよび計算方法に関する。   The present invention relates to a computer system and a calculation method, and more particularly to a computer system and a calculation method for ensuring the security of a system that handles highly confidential information such as personal information.

個人情報など機密性の高いデータを扱うシステムにおいて、従来は、データを暗号化して保存し、暗号鍵を耐タンパ装置(HSM:ハードウェアセキュリティモジュール)で管理していた(例えば、特許文献1参照)。HSMの容量は小さく、暗号処理など最低限の処理のみHSM内で行い、その他の処理はHSMの外で実行していた。   In a system that handles highly confidential data such as personal information, conventionally, the data is encrypted and stored, and the encryption key is managed by a tamper resistant device (HSM: hardware security module) (see, for example, Patent Document 1). ). The capacity of the HSM is small, and only minimum processing such as encryption processing is performed within the HSM, and other processing is performed outside the HSM.

特開2012−5037号公報JP 2012-5037 A

個人情報といった機密性の高いデータを扱うシステムでは、データを暗号化して保管しているが、実行時には復号して処理を行う必要がある。耐タンパ装置(HSM)の内部で全ての処理が行えれば、実行時に機密情報が平文になることは問題とならないが、HSMの容量は小さく、大規模なプログラムやデータをHSMに格納することは不可能であるため、暗号演算など最低限の処理以外はHSM内で行うことができなかったので、実行時を攻撃されると機密情報が漏えいする危険性があった。   In a system that handles highly confidential data such as personal information, the data is encrypted and stored. However, at the time of execution, the data needs to be decrypted and processed. If all processing can be performed inside the tamper resistant device (HSM), it will not be a problem that the confidential information becomes plaintext at the time of execution, but the capacity of the HSM is small and large-scale programs and data should be stored in the HSM. Since it was impossible, it was impossible to perform the processing other than the minimum processing such as cryptographic computation in the HSM. Therefore, there was a risk of leaking confidential information when attacked at the time of execution.

したがって、かかる点に鑑みてなされた本発明の目的は、耐タンパ装置の容量を超えるプログラムやデータについて、プログラム実行時の攻撃に対し機密情報の漏洩を防ぐことが可能な計算機システムおよび計算方法を提供することにある。   Accordingly, an object of the present invention made in view of such a point is to provide a computer system and a calculation method capable of preventing leakage of confidential information against an attack at the time of executing a program or data exceeding the capacity of a tamper resistant device. It is to provide.

上述した諸課題を解決すべく、本発明に係る計算機システムは、暗号鍵を管理する耐タンパ装置と、前記暗号鍵で暗号化されたプログラムおよびデータを格納するサーバと、を備え、前記耐タンパ装置は、前記サーバから取得した前記暗号化されたプログラムおよびデータを前記暗号鍵で復号して処理する、ことを特徴とする。   In order to solve the above-described problems, a computer system according to the present invention includes a tamper resistant device that manages an encryption key, and a server that stores a program and data encrypted with the encryption key. The apparatus is characterized in that the encrypted program and data acquired from the server are decrypted with the encryption key and processed.

また、前記プログラムは、行単位に分割され暗号化される、ことが望ましい。   The program is preferably divided into lines and encrypted.

また、前記プログラムは、関数単位のスクリプトに分割され暗号化される、ことが望ましい。   Further, it is desirable that the program is divided into function-based scripts and encrypted.

さらに、上述した諸課題を解決すべく、本発明に係る計算方法は、秘密鍵を管理する耐タンパ装置と、サーバとを備える計算機システムの計算方法であって、前記サーバが、前記秘密鍵の公開鍵で暗号化されたプログラムおよびデータを格納するステップと、前記耐タンパ装置が、前記サーバから取得した前記暗号化されたプログラムおよびデータを前記秘密鍵で復号して処理するステップと、を含むことを特徴とする。   Furthermore, in order to solve the above-described problems, a calculation method according to the present invention is a calculation method of a computer system including a tamper-proof device that manages a secret key and a server, wherein the server is configured to store the secret key. Storing the program and data encrypted with a public key, and the tamper-proof device decrypting the encrypted program and data acquired from the server with the secret key and processing the data. It is characterized by that.

また、前記プログラムは、行単位に分割され暗号化される、ことが望ましい。   The program is preferably divided into lines and encrypted.

また、前記プログラムは、関数単位のスクリプトに分割され暗号化される、ことが望ましい。   Further, it is desirable that the program is divided into function-based scripts and encrypted.

本発明による計算機システムおよび計算方法によれば、耐タンパ装置の容量を超えるプログラムやデータについて、プログラム実行時の攻撃に対し機密情報の漏洩を防ぐことが可能となる。特に、暗号鍵による暗号化により、公開鍵によって不正なプログラムが暗号化されてHSMに読み込まれる脅威を防ぐことができる。   According to the computer system and the calculation method of the present invention, it is possible to prevent leakage of confidential information against an attack at the time of executing a program or data exceeding the capacity of the tamper resistant device. In particular, encryption with an encryption key can prevent a threat that an illegal program is encrypted with a public key and read into the HSM.

本発明の一実施形態に係る計算機システムの概略構成を示す図である。It is a figure which shows schematic structure of the computer system which concerns on one Embodiment of this invention. プログラム暗号化の一例を示す図である。It is a figure which shows an example of program encryption. 計算機システムの鍵生成の処理シーケンスである。It is a processing sequence of key generation of a computer system. 計算機システムのプログラム暗号化の処理シーケンスである。It is a processing sequence of program encryption of a computer system. 計算機システムのデータ暗号化の処理シーケンスである。It is a processing sequence of data encryption of a computer system. 計算機システムのプログラム実行の処理シーケンスである。It is a processing sequence of the computer system program execution.

以降、諸図面を参照しながら、本発明の実施態様を詳細に説明する。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.

図1は、本発明の一実施形態に係る計算機システムの概略構成を示す図である。計算機システムは、暗号化用端末10と、サーバ20と、耐タンパ装置であるHSM30と、クライアント40とを備える。暗号化用端末10はプログラムおよびデータを暗号化して、サーバ20に格納しておく。サーバ20はクライアント40からの処理要求に従って処理に必要な暗号化された「行」およびデータをHSM30に送信する。HSM30は、サーバ20から送られた、暗号化された「行」およびデータを復号し、正当性を確認したうえで実行する。実行後のデータは暗号化してサーバ20に保存される。以下、暗号化用端末10と、サーバ20と、HSM30と、クライアント40の構成について詳述する。   FIG. 1 is a diagram showing a schematic configuration of a computer system according to an embodiment of the present invention. The computer system includes an encryption terminal 10, a server 20, an HSM 30 that is a tamper resistant device, and a client 40. The encryption terminal 10 encrypts the program and data and stores them in the server 20. The server 20 transmits the encrypted “row” and data necessary for processing to the HSM 30 in accordance with the processing request from the client 40. The HSM 30 decrypts the encrypted “row” and data sent from the server 20 and executes the data after confirming the validity. The executed data is encrypted and stored in the server 20. Hereinafter, the configuration of the encryption terminal 10, the server 20, the HSM 30, and the client 40 will be described in detail.

暗号化用端末10は、プログラム暗号化手段11と、データ暗号化手段12と、「行」・データ送信手段13とを備える。プログラム暗号化手段11は、クライアント40からのプログラム暗号化命令を受け取る。データ暗号化手段12は、クライアント40からのデータ暗号化命令を受け取る。「行」・データ送信手段13は、暗号化した「行」及びデータをサーバ20に保存するために、サーバ20に送信する。   The encryption terminal 10 includes a program encryption unit 11, a data encryption unit 12, and a “row” / data transmission unit 13. The program encryption unit 11 receives a program encryption command from the client 40. The data encryption unit 12 receives a data encryption command from the client 40. The “row” / data transmission means 13 transmits the encrypted “row” and data to the server 20 in order to save them in the server 20.

プログラム暗号化手段11は、プログラム分割手段111と、ハッシュ生成・付加手段112と、行番号付加手段113と、結果通知手段114とを備える。図2は、プログラム暗号化の一例を示す図である。(1)プログラム分割手段111は、プログラムを行単位で分割する。(2)ハッシュ生成・付加手段112は、「行」正当性識別タグを各行に付加する。「行」正当性識別タグとは、プログラムを分割した「行」のハッシュ値である。(3)データ暗号化手段12は、「行+行正当性識別タグ」を暗号化する。「行+行正当性識別タグ」を暗号化したものを暗号化された「行」と呼ぶ。(4)行番号付加手段113は、クライアント40から暗号化された「行」を呼び出す際に用いる行番号を付加する。行番号とは、プログラムを行単位に分割した際の、各行の行番号のことである。結果通知手段114は、クライアント40へプログラム暗号化が成功したことを通知する。   The program encryption unit 11 includes a program division unit 111, a hash generation / addition unit 112, a line number addition unit 113, and a result notification unit 114. FIG. 2 is a diagram illustrating an example of program encryption. (1) The program dividing unit 111 divides the program in units of lines. (2) The hash generation / addition unit 112 adds a “row” validity identification tag to each row. The “row” validity identification tag is a hash value of “row” obtained by dividing the program. (3) The data encryption unit 12 encrypts “row + row validity identification tag”. An encrypted “row + row validity identification tag” is referred to as an encrypted “row”. (4) The line number adding means 113 adds a line number used when calling an encrypted “line” from the client 40. The line number is the line number of each line when the program is divided into line units. The result notifying unit 114 notifies the client 40 that the program encryption is successful.

サーバ20は、「行」・データ転送手段21と、「行」・データ格納手段22と、「行」保管庫23と、データ保管庫24とを備える。「行」・データ転送手段21は、クライアント40からの処理要求および、HSM30からの「行」・データ転送要求に従って、「行」保管庫23及びデータ保管庫24から暗号化された「行」およびデータをHSM30に転送する。「行」・データ格納手段22は、暗号化された「行」およびデータを「行」保管庫23およびデータ保管庫24に格納する。「行」保管庫23は、暗号化された「行」を格納しておく。データ保管庫24は、暗号化されたデータを格納しておく。   The server 20 includes “row” / data transfer means 21, “row” / data storage means 22, “row” storage 23, and data storage 24. The “row” / data transfer means 21 encrypts the “row” encrypted from the “row” storage 23 and the data storage 24 in accordance with the processing request from the client 40 and the “row” / data transfer request from the HSM 30. Transfer data to HSM 30. The “row” / data storage means 22 stores the encrypted “row” and data in the “row” storage 23 and the data storage 24. The “row” storage 23 stores the encrypted “row”. The data storage 24 stores the encrypted data.

HSM30は、暗号鍵生成手段31と、復号手段32と、ハッシュ照合手段33と、「行」実行手段34と、データ暗号化手段35と、データ送信手段36と、「行」・データ要求手段37と、暗号鍵保管庫38と、暗号化手段39とを備える。暗号鍵生成手段31は、プログラムおよびデータの暗号化および復号に用いる暗号鍵を生成する。復号手段32は、暗号化された「行」およびデータを暗号鍵保管庫38に保存された暗号鍵で復号する。ハッシュ照合手段33は、復号された「行」の「行」部分(「行」正当性識別タグを除く部分)のハッシュをとり、そのハッシュと、暗号化用端末10のハッシュ生成・付加手段112が付加した「行」正当性識別タグが一致することを確認する。「行」実行手段34は、復号された「行」およびデータを処理する。データ暗号化手段35は、処理後のデータを暗号鍵保管庫38に保存された暗号鍵で暗号化する。データ送信手段36は、暗号化された処理後のデータをサーバ20のデータ保管庫24に格納するために、「行」・データ格納手段22に送信する。「行」・データ要求手段37は、「行」実行中に呼び出された行番号・データ名にしたがって、対応する行番号が付加された暗号化された「行」を、サーバ20の「行」・データ転送手段21から受け取り、復号手段32に引数とともに渡す機能と、次に要求する「行」・データがない場合は、処理の結果をサーバ20の「行」・データ転送手段21に伝える機能を持つ。暗号鍵保管庫38は、暗号鍵生成手段31が生成した暗号鍵を保存しておく。暗号化手段39は、暗号鍵保管庫38に格納されている暗号鍵で、プログラム暗号化手段11、データ暗号化手段12からの入力を暗号化し返却する。   The HSM 30 includes an encryption key generation unit 31, a decryption unit 32, a hash collation unit 33, a “row” execution unit 34, a data encryption unit 35, a data transmission unit 36, and a “row” / data request unit 37. And an encryption key storage 38 and encryption means 39. The encryption key generation means 31 generates an encryption key used for program and data encryption and decryption. The decryption means 32 decrypts the encrypted “row” and data with the encryption key stored in the encryption key storage 38. The hash collating unit 33 takes the hash of the “row” portion (the portion excluding the “row” validity identification tag) of the decrypted “row”, and the hash generation / addition unit 112 of the encryption terminal 10. Confirm that the “line” legitimacy identification tag added by matches. The “row” execution means 34 processes the decoded “row” and data. The data encryption unit 35 encrypts the processed data with the encryption key stored in the encryption key storage 38. The data transmission unit 36 transmits the encrypted processed data to the “row” / data storage unit 22 in order to store the data in the data storage 24 of the server 20. The “line” / data request means 37 sends the encrypted “line” with the corresponding line number added to the “line” of the server 20 according to the line number / data name called during execution of the “line”. A function for receiving from the data transfer means 21 and passing it to the decryption means 32 together with an argument, and a function for transmitting the processing result to the “row” / data transfer means 21 of the server 20 when there is no “row” / data to be requested next. have. The encryption key storage 38 stores the encryption key generated by the encryption key generation unit 31. The encryption unit 39 encrypts and returns the input from the program encryption unit 11 and the data encryption unit 12 with the encryption key stored in the encryption key storage 38.

クライアント40は、暗号鍵生成要求手段41と、プログラム暗号化要求手段42と、データ暗号化要求手段43と、処理要求送信手段44とを備える。暗号鍵生成要求手段41は、ユーザからの暗号鍵生成要求をHSM30に伝える。プログラム暗号化要求手段42は、ユーザからソースコードとして入力されたプログラムの暗号化を暗号化用端末10に要求する。データ暗号化要求手段43は、ユーザから入力されたデータの暗号化を暗号化用端末10に要求する。処理要求送信手段44は、ユーザの処理要求(行番号、データのデータ保管庫24における位置情報)をサーバ20の「行」・データ転送手段21に伝える。   The client 40 includes an encryption key generation request unit 41, a program encryption request unit 42, a data encryption request unit 43, and a processing request transmission unit 44. The encryption key generation request unit 41 transmits an encryption key generation request from the user to the HSM 30. The program encryption request unit 42 requests the encryption terminal 10 to encrypt a program input as a source code from the user. The data encryption request unit 43 requests the encryption terminal 10 to encrypt data input by the user. The processing request transmission unit 44 transmits the user's processing request (row number, data location information in the data storage 24) to the “row” / data transfer unit 21 of the server 20.

以降、各構成要素の動作を計算機システムの処理シーケンスとともに説明する。   Hereinafter, the operation of each component will be described together with the processing sequence of the computer system.

(鍵生成)
図3は、計算機システムの前処理として行われる鍵生成の処理シーケンスである。ユーザからの暗号鍵生成要求を受け、クライアント40の暗号鍵生成要求手段41は、HSM30の暗号鍵生成手段31に鍵生成を要求する(ステップS101)。HSM30の暗号鍵生成手段31は、暗号鍵を生成し、暗号鍵を暗号鍵保管庫38に保存する(ステップS102、S103)。暗号鍵生成手段31は、保存が成功したことをクライアント40の暗号鍵生成要求手段41に伝える(ステップS104)。暗号鍵生成要求手段41は、暗号鍵生成が成功したという結果をユーザに返す(ステップS105)。
(Key generation)
FIG. 3 is a processing sequence of key generation performed as pre-processing of the computer system. Upon receiving the encryption key generation request from the user, the encryption key generation request unit 41 of the client 40 requests key generation from the encryption key generation unit 31 of the HSM 30 (step S101). The encryption key generation means 31 of the HSM 30 generates an encryption key and stores the encryption key in the encryption key storage 38 (steps S102 and S103). The encryption key generation unit 31 notifies the encryption key generation request unit 41 of the client 40 that the storage has been successful (step S104). The encryption key generation request unit 41 returns a result that the encryption key generation was successful to the user (step S105).

(プログラム暗号化)
図4は、計算機システムの前処理として行われるプログラム暗号化の処理シーケンスである。ユーザからプログラム(ソースコード)を受けると、クライアント40のプログラム暗号化要求手段42は、暗号化用端末10のプログラム暗号化手段11にプログラムの暗号化を要求する(ステップS201)。プログラム暗号化手段11のプログラム分割手段111は、プログラムを行単位で分割する(ステップS202)。ハッシュ生成・付加手段112は、「行」のハッシュを取り、「行」正当性識別タグとして付加する(ステップS203)。プログラム暗号化手段11は、「「行」+「行」正当性識別タグ」の暗号化を、HSM30の暗号化手段39に要求する(ステップS204)。「「行」+「行」正当性識別タグ」を暗号化したものを、暗号化された「行」と呼ぶ。暗号化手段39は、暗号鍵保管庫38に保存されている暗号鍵を用いて暗号化し、暗号化された「行」を暗号化用端末10のプログラム暗号化手段11に返す(ステップS205)。プログラム暗号化手段11の行番号付加手段113は、暗号化された「行」に行番号を付加する(ステップS206)。プログラム暗号化手段11は、「行」・データ送信手段13に、暗号化された「行」+「行」識別子をサーバ20の「行」・データ格納手段22に送信することを要求し、「行」・データ送信手段13は、サーバ20の「行」・データ格納手段22に「行」の保存を要求する(ステップS207)。サーバ20の「行」・データ格納手段22は、暗号化された「行」+「行」識別子を「行」保管庫23に保存し、保存が終わったら暗号化用端末10の「行」・データ送信手段13に伝える(ステップS208)。プログラム暗号化手段11の結果通知手段114は、クライアント40のプログラム暗号化要求手段42に「行」識別子を送信する(ステップS209)。プログラム暗号化要求手段42は、「行」識別子を保存し(ステップS210)、暗号化が成功したという結果をユーザに返す(ステップS211)。
(Program encryption)
FIG. 4 is a processing sequence of program encryption performed as pre-processing of the computer system. When the program (source code) is received from the user, the program encryption request unit 42 of the client 40 requests the program encryption unit 11 of the encryption terminal 10 to encrypt the program (step S201). The program dividing unit 111 of the program encryption unit 11 divides the program in units of lines (step S202). The hash generation / addition unit 112 takes the hash of “row” and adds it as a “row” validity identification tag (step S203). The program encryption unit 11 requests the encryption unit 39 of the HSM 30 to encrypt ““ row ”+“ row ”validity identification tag” (step S204). An encrypted “line” + “line” validity identification tag ”is referred to as an encrypted“ line ”. The encryption means 39 encrypts using the encryption key stored in the encryption key storage 38, and returns the encrypted “row” to the program encryption means 11 of the encryption terminal 10 (step S205). The line number adding unit 113 of the program encryption unit 11 adds a line number to the encrypted “line” (step S206). The program encryption unit 11 requests the “row” / data transmission unit 13 to transmit the encrypted “row” + “row” identifier to the “row” / data storage unit 22 of the server 20. The “row” / data transmission unit 13 requests the “row” / data storage unit 22 of the server 20 to save the “row” (step S207). The “row” / data storage means 22 of the server 20 stores the encrypted “row” + “row” identifier in the “row” storage 23, and when the storage is completed, the “row” / data storage means 22 of the encryption terminal 10. The data is transmitted to the data transmission means 13 (step S208). The result notifying unit 114 of the program encryption unit 11 transmits the “row” identifier to the program encryption request unit 42 of the client 40 (step S209). The program encryption request means 42 stores the “row” identifier (step S210), and returns a result of successful encryption to the user (step S211).

図5は、計算機システムの前処理として行われるデータ暗号化の処理シーケンスである。ユーザからデータを受けると、クライアント40のデータ暗号化要求手段43は、暗号化用端末10のデータ暗号化手段12にデータの暗号化を要求する(ステップS301)。データ暗号化手段12は、データの暗号化を、HSM30の暗号化手段39に要求する(ステップS302)。暗号化手段39は、暗号鍵保管庫38に保存されている暗号鍵を用いて暗号化し、暗号化されたデータを暗号化用端末10のデータ暗号化手段12に返す(ステップS303)。データ暗号化手段12は、「行」・データ送信手段13に、暗号化されたデータをサーバ20の「行」・データ格納手段22に送信することを要求し、「行」・データ送信手段13は、サーバ20の「行」・データ格納手段22に暗号化されたデータの保存を要求する(ステップS304)。サーバ20の「行」・データ格納手段22は、暗号化されたデータをデータ保管庫24に保存し、保存が終わったら暗号化用端末10の「行」・データ送信手段13に伝える(ステップS305)。データ暗号化手段12は、クライアント40のデータ暗号化要求手段43に暗号化が成功したことを伝える(ステップS306)。データ暗号化要求手段43は、暗号化が終了したという結果をユーザに返す(ステップS307)。なお、当該結果には、暗号化されたデータのデータ保管庫24における位置情報も含まれる。   FIG. 5 is a data encryption processing sequence performed as pre-processing of the computer system. When receiving data from the user, the data encryption requesting means 43 of the client 40 requests the data encryption means 12 of the encryption terminal 10 to encrypt the data (step S301). The data encryption unit 12 requests the encryption unit 39 of the HSM 30 to encrypt the data (step S302). The encryption means 39 encrypts using the encryption key stored in the encryption key storage 38, and returns the encrypted data to the data encryption means 12 of the encryption terminal 10 (step S303). The data encryption unit 12 requests the “row” / data transmission unit 13 to transmit the encrypted data to the “row” / data storage unit 22 of the server 20. Requests the “row” / data storage means 22 of the server 20 to save the encrypted data (step S304). The “row” / data storage means 22 of the server 20 saves the encrypted data in the data repository 24, and when the saving is completed, the encrypted data is transmitted to the “row” / data transmission means 13 of the encryption terminal 10 (step S305). ). The data encryption unit 12 notifies the data encryption request unit 43 of the client 40 that the encryption is successful (step S306). The data encryption request unit 43 returns a result that the encryption is completed to the user (step S307). Note that the result includes location information of the encrypted data in the data storage 24.

(プログラム実行)
図6は、計算機システムのプログラム実行の処理シーケンスである。ユーザから行番号および処理するデータのデータ保管庫24における位置情報を受けると、クライアント40の処理要求送信手段44は、行番号および処理するデータのデータ保管庫24における位置情報を含んだ処理要求をサーバ20の「行」・データ転送手段21に送信する(ステップS401)。「行」・データ転送手段21は、処理要求に従って「行」保管庫23、データ保管庫24から暗号化された「行」と暗号化されたデータをHSM30の復号手段32に送信する(ステップS402)。HSM30の復号手段32は、転送されてきた暗号化された「行」、暗号化されたデータを暗号鍵保管庫38に保管されている暗号鍵を用いて復号する(ステップS403)。ハッシュ照合手段33は、復号された「行」の「行」部分(「行」正当性識別タグを除いた部分)のハッシュを取り、そのハッシュと「行」正当性識別タグを照合して一致するかを確認する(ステップS404)。「行」実行手段34は、「行」を実行する(ステップS405)。データ暗号化手段35は、暗号鍵保管庫38に格納されている暗号鍵を用いて処理後のデータを暗号化する(ステップS406)。データ送信手段36は、暗号化されたデータをサーバ20の「行」・データ格納手段22に送信する(ステップS407)。サーバ20の「行」・データ格納手段22は、暗号化されたデータをデータ保管庫24に格納し、完了したらHSM30のデータ送信手段36に保存が完了したことを伝える(ステップS408)。「行」・データ要求手段37は、「行」内容がプログラム終了(例えばEND)ならばステップS411に移る(ステップS409のYes)。
(Program execution)
FIG. 6 is a processing sequence of the computer system program execution. Upon receiving the line number and the position information of the data to be processed in the data storage 24 from the user, the processing request transmission means 44 of the client 40 sends a processing request including the line number and the position information of the data to be processed in the data storage 24. The data is transmitted to the “row” / data transfer means 21 of the server 20 (step S401). The “row” / data transfer means 21 transmits the encrypted “row” and the encrypted data from the “row” storage 23 and the data storage 24 to the decryption means 32 of the HSM 30 in accordance with the processing request (step S402). ). The decryption means 32 of the HSM 30 decrypts the transferred encrypted “row” and the encrypted data using the encryption key stored in the encryption key storage 38 (step S403). The hash collation means 33 takes the hash of the “row” portion of the decrypted “row” (the portion excluding the “row” legitimacy identification tag), and collates the hash with the “row” legitimacy identification tag to match. It is confirmed whether to do (step S404). The “row” execution unit 34 executes “row” (step S405). The data encryption means 35 encrypts the processed data using the encryption key stored in the encryption key storage 38 (step S406). The data transmission unit 36 transmits the encrypted data to the “row” / data storage unit 22 of the server 20 (step S407). The “row” / data storage unit 22 of the server 20 stores the encrypted data in the data storage 24, and when completed, notifies the data transmission unit 36 of the HSM 30 that the storage is complete (step S408). If the “line” content is the end of the program (for example, END), the “line” / data request unit 37 proceeds to step S411 (Yes in step S409).

「行」・データ要求手段37は、「行」内容がプログラム終了以外の場合(ステップS409のNo)、次の処理を行う。
(1)「行」実行中に特定の行番号に移動する命令(例えば強制移動(GOTO)、条件分岐(IF)、ループ(FOR)、サブルーチン分岐(GOSUB)等)があれば、対応する行番号の「行」を、サーバ20の「行」・データ転送手段21に要求する。
(2)「行」実行中に必要なデータがあれば、対応するデータのデータ保管庫24における位置情報によって、サーバ20の「行」・データ転送手段21に要求する。
(3)特定の行番号に移動する命令もなければ、実行した「行」の次の行番号の「行」を、サーバ20の「行」・データ転送手段21に要求する。
The “line” / data request unit 37 performs the following process when the “line” content is other than the program end (No in step S409).
(1) If there is an instruction to move to a specific line number during execution of “line” (for example, forced movement (GOTO), conditional branch (IF), loop (FOR), subroutine branch (GOSUB), etc.), the corresponding line The “row” of the number is requested to the “row” / data transfer means 21 of the server 20.
(2) If there is necessary data during execution of “row”, a request is made to the “row” / data transfer means 21 of the server 20 based on the position information of the corresponding data in the data storage 24.
(3) If there is no command to move to a specific line number, a request is made to the “line” / data transfer means 21 of the server 20 for the “line” next to the executed “line”.

「行」・データ転送手段21は、渡された行番号およびデータのデータ保管庫24における位置情報に従い、対応する暗号化された「行」および暗号化されたデータを、「行」・データ要求手段37に渡す(ステップS410)。「行」・データ要求手段37は、暗号化された「行」および暗号化されたデータを復号手段32に渡し、処理はステップS403に戻る。   The “row” / data transfer means 21 sends the corresponding encrypted “row” and encrypted data to the “row” / data request according to the passed row number and the location information of the data in the data storage 24. It passes to the means 37 (step S410). The “row” / data request unit 37 passes the encrypted “row” and the encrypted data to the decryption unit 32, and the process returns to step S403.

プログラムが終了すると、「行」・データ要求手段37は、「行」の返り値を、サーバ20の「行」・データ転送手段21に送信する(ステップS411)。「行」・データ転送手段21は、クライアント40の処理要求送信手段44に処理結果を返す(ステップS412)。処理要求送信手段44は、処理結果をユーザに返す(ステップS413)。   When the program ends, the “row” / data request unit 37 transmits the return value of “row” to the “row” / data transfer unit 21 of the server 20 (step S411). The “row” / data transfer unit 21 returns the processing result to the processing request transmission unit 44 of the client 40 (step S412). The processing request transmission unit 44 returns the processing result to the user (step S413).

このように、本実施形態によれば、サーバ20は暗号鍵で暗号化されたプログラムおよびデータを格納し、耐タンパ装置であるHSM30は、サーバ20から取得した暗号化されたプログラムおよびデータを暗号鍵で復号して処理する。これにより、HSM30内で動作するプログラムやデータを容量の大きなHSM30の外部ストレージ(サーバ20)に格納することができるため、HSM30の容量を超えるプログラムやデータをHSM30内で安全に実行することが可能となる。すなわち、プログラム実行時の攻撃に対し機密情報の漏洩を防ぐことが可能となる。特に、暗号鍵は、公開鍵とは異なり誰もが入手できるものではない。つまり、暗号鍵による暗号化により、公開鍵によって不正なプログラムが暗号化されてHSMに読み込まれる脅威を防ぐことができる。   Thus, according to the present embodiment, the server 20 stores the program and data encrypted with the encryption key, and the HSM 30 that is the tamper resistant device encrypts the encrypted program and data acquired from the server 20. Decrypt with key and process. As a result, programs and data that operate in the HSM 30 can be stored in the external storage (server 20) of the HSM 30 having a large capacity, so that programs and data that exceed the capacity of the HSM 30 can be safely executed in the HSM 30. It becomes. In other words, it is possible to prevent leakage of confidential information against attacks during program execution. In particular, unlike public keys, encryption keys are not available to everyone. That is, the encryption with the encryption key can prevent a threat that an illegal program is encrypted with the public key and read into the HSM.

また、上述の暗号化されるプログラムは、行単位に分割され暗号化される。これにより、HSM30はプログラム的に意味のあるまとまり毎に外部ストレージ(サーバ20)と暗号化されたプログラムの交換が可能となる。   The above-described program to be encrypted is divided and encrypted in units of lines. As a result, the HSM 30 can exchange the encrypted program with the external storage (server 20) for each programally meaningful group.

本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各部材、各手段、各ステップなどに含まれる機能などは論理的に矛盾しないように再配置可能であり、複数の手段やステップなどを1つに組み合わせたり、或いは分割したりすることが可能である。   Although the present invention has been described based on the drawings and examples, it should be noted that those skilled in the art can easily make various modifications and corrections based on the present disclosure. Therefore, it should be noted that these variations and modifications are included in the scope of the present invention. For example, functions included in each member, each means, each step, etc. can be rearranged so as not to be logically contradictory, and a plurality of means, steps, etc. can be combined or divided into one. Is possible.

例えば、上述の実施形態において、プログラム暗号化手段11は、プログラムを行単位に分割して暗号化を行った。これは、いわゆる手続き型言語を対象とした例であり、本発明は、関数型の他の言語にも適用することが可能である。例えば、本発明を関数型言語に適用する場合、プログラム暗号化手段11は、プログラムを関数単位でスクリプトに分割し、「行」の代わりに、当該スクリプトに対してハッシュ生成・付加や、スクリプト識別子の付加をすればよい。スクリプト識別子は、行単位に分割する際に付加する行番号のように、クライアント40からスクリプトを呼び出す際に用いる識別子である。例えば、スクリプト識別子は、プログラムの関数名を変換し、関数名を変換されたプログラムを関数ごとにスクリプトに分割した際の、各スクリプトの変換後の関数名のことである。このように、上述の暗号化されるプログラムを、関数単位のスクリプトに分割して暗号化することにより、HSM30はプログラム的に意味のあるまとまり毎に外部ストレージ(サーバ20)と暗号化されたプログラムの交換が可能となる。   For example, in the above-described embodiment, the program encryption unit 11 divides the program into lines and performs encryption. This is an example for a so-called procedural language, and the present invention can be applied to other functional languages. For example, when the present invention is applied to a functional language, the program encryption unit 11 divides the program into scripts in units of functions, and instead of “rows”, hash generation / addition or script identifier is added to the script. Should be added. The script identifier is an identifier used when calling a script from the client 40, such as a line number added when dividing the script into line units. For example, the script identifier is a function name after conversion of each script when the function name of the program is converted and the program into which the function name is converted is divided into scripts for each function. In this way, by dividing the above-described encrypted program into functional unit scripts and encrypting them, the HSM 30 can program the external storage (server 20) and the encrypted program for each meaningful program. Can be exchanged.

また、暗号化用端末10は、クライアント40やサーバ20の機能の一部として実装することも可能である。また、暗号鍵生成の命令や、プログラムおよびデータの暗号化の命令を行う主体はクライアント40でなく、サーバ20が行ってもよい。   The encryption terminal 10 can also be implemented as part of the functions of the client 40 and the server 20. Further, the server 20 may perform the subject that performs the encryption key generation command and the program and data encryption command.

10 暗号化用端末
11 プログラム暗号化手段
111 プログラム分割手段
112 ハッシュ生成・付加手段
113 行番号付加手段
114 結果通知手段
12 データ暗号化手段
13 「行」・データ送信手段
20 サーバ
21 「行」・データ転送手段
22 「行」・データ格納手段
23 「行」保管庫
24 データ保管庫
30 HSM
31 暗号鍵生成手段
32 復号手段
33 ハッシュ照合手段
34 「行」実行手段
35 データ暗号化手段
36 データ送信手段
37 「行」・データ要求手段
38 暗号鍵保管庫
39 暗号化手段
40 クライアント
41 暗号鍵生成要求手段
42 プログラム暗号化要求手段
43 データ暗号化要求手段
44 処理要求送信手段
DESCRIPTION OF SYMBOLS 10 Terminal for encryption 11 Program encryption means 111 Program division means 112 Hash generation / addition means 113 Line number addition means 114 Result notification means 12 Data encryption means 13 “Row” / data transmission means 20 Server 21 “Row” / data Transfer means 22 “Row” / data storage means 23 “Row” storage 24 Data storage 30 HSM
Reference Signs List 31 encryption key generation means 32 decryption means 33 hash collation means 34 “row” execution means 35 data encryption means 36 data transmission means 37 “row” / data request means 38 encryption key storage 39 encryption means 40 client 41 encryption key generation Request means 42 Program encryption request means 43 Data encryption request means 44 Processing request transmission means

Claims (6)

暗号鍵を管理する耐タンパ装置と、
前記暗号鍵で暗号化されたプログラムおよびデータを格納するサーバと、を備え、
前記耐タンパ装置は、前記サーバから取得した前記暗号化されたプログラムおよびデータを前記暗号鍵で復号して処理する、ことを特徴とする計算機システム。
A tamper resistant device for managing encryption keys;
A server storing a program and data encrypted with the encryption key,
The computer system, wherein the tamper resistant apparatus decrypts the encrypted program and data acquired from the server with the encryption key and processes the encrypted program and data.
前記プログラムは、行単位に分割され暗号化される、ことを特徴とする請求項1に記載の計算機システム。   The computer system according to claim 1, wherein the program is divided into lines and encrypted. 前記プログラムは、関数単位のスクリプトに分割され暗号化される、ことを特徴とする請求項1又は2に記載の計算機システム。   The computer system according to claim 1, wherein the program is divided into functional scripts and encrypted. 秘密鍵を管理する耐タンパ装置と、サーバとを備える計算機システムの計算方法であって、
前記サーバが、前記秘密鍵の公開鍵で暗号化されたプログラムおよびデータを格納するステップと、
前記耐タンパ装置が、前記サーバから取得した前記暗号化されたプログラムおよびデータを前記秘密鍵で復号して処理するステップと、を含むことを特徴とする計算方法。
A calculation method for a computer system comprising a tamper resistant device for managing a secret key and a server,
The server storing a program and data encrypted with a public key of the private key;
The tamper resistant device includes a step of decrypting and processing the encrypted program and data acquired from the server with the secret key.
前記プログラムは、行単位に分割され暗号化される、ことを特徴とする請求項4に記載の計算方法。   The calculation method according to claim 4, wherein the program is divided into lines and encrypted. 前記プログラムは、関数単位のスクリプトに分割され暗号化される、ことを特徴とする請求項4又は5に記載の計算方法。   The calculation method according to claim 4, wherein the program is divided into function-based scripts and encrypted.
JP2012148728A 2012-07-02 2012-07-02 Computing system and calculation method Pending JP2014011739A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012148728A JP2014011739A (en) 2012-07-02 2012-07-02 Computing system and calculation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012148728A JP2014011739A (en) 2012-07-02 2012-07-02 Computing system and calculation method

Publications (1)

Publication Number Publication Date
JP2014011739A true JP2014011739A (en) 2014-01-20

Family

ID=50108027

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012148728A Pending JP2014011739A (en) 2012-07-02 2012-07-02 Computing system and calculation method

Country Status (1)

Country Link
JP (1) JP2014011739A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002078914A (en) * 2000-09-06 2002-03-19 Sansei R & D:Kk Pachinko machine
JP2005197912A (en) * 2004-01-06 2005-07-21 Nippon Telegr & Teleph Corp <Ntt> Method and program for information disclosure control and tamper resistant instrument
JP2013179453A (en) * 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> Computer system and computing method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002078914A (en) * 2000-09-06 2002-03-19 Sansei R & D:Kk Pachinko machine
JP2005197912A (en) * 2004-01-06 2005-07-21 Nippon Telegr & Teleph Corp <Ntt> Method and program for information disclosure control and tamper resistant instrument
JP2013179453A (en) * 2012-02-28 2013-09-09 Nippon Telegr & Teleph Corp <Ntt> Computer system and computing method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNJ201210010029; 村上 啓造,岸 晃司,山本 隆広: 'インタプリタの命令の暗号化によるセキュリティ確保方式の検討' 電子情報通信学会2012年総合大会講演論文集 情報・システム1 , 20120306, p.29, 社団法人電子情報通信学会 *
JPN6015000919; 村上 啓造,岸 晃司,山本 隆広: 'インタプリタの命令の暗号化によるセキュリティ確保方式の検討' 電子情報通信学会2012年総合大会講演論文集 情報・システム1 , 20120306, p.29, 社団法人電子情報通信学会 *

Similar Documents

Publication Publication Date Title
CN108632284B (en) User data authorization method, medium, device and computing equipment based on block chain
EP3229397B1 (en) Method for fulfilling a cryptographic request requiring a value of a private key
EP2973183B1 (en) Intra-computer protected communications between applications
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
WO2014145039A1 (en) Intra-computer protected communications between applications
US11349822B2 (en) Runtime encryption plugin for a key management system
CN110889696A (en) Storage method, device, equipment and medium for alliance block chain secret key based on SGX technology
CN109768862B (en) A kind of key management method, key call method and cipher machine
US11626976B2 (en) Information processing system, information processing device, information processing method and information processing program
CN113849847B (en) Method, apparatus and medium for encrypting and decrypting sensitive data
CN111274611A (en) Data desensitization method, device and computer readable storage medium
CN102571329A (en) Password key management
CN103378971A (en) Data encryption system and method
US11288381B2 (en) Calculation device, calculation method, calculation program and calculation system
CN111656345A (en) Software module enabling encryption in container files
US11783091B2 (en) Executing entity-specific cryptographic code in a cryptographic coprocessor
CN114124364A (en) Key security processing method, device, equipment and computer readable storage medium
US20210044419A1 (en) System and method for generating scalable group key based on homomorphic encryption with trust server
US9038194B2 (en) Client-side encryption in a distributed environment
CN106549927B (en) Key storage and acquisition method and device
US11595201B2 (en) System and method for generation of a disposable software module for cryptographic material protection
JP2009055428A (en) Information processor, server device, information processing program and method
CN114329390A (en) Financial institution database access password protection method and system
US20210111901A1 (en) Executing entity-specific cryptographic code in a trusted execution environment
JP2014011739A (en) Computing system and calculation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140729

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150223

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150526