JP6576699B2 - ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM - Google Patents

ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM Download PDF

Info

Publication number
JP6576699B2
JP6576699B2 JP2015119406A JP2015119406A JP6576699B2 JP 6576699 B2 JP6576699 B2 JP 6576699B2 JP 2015119406 A JP2015119406 A JP 2015119406A JP 2015119406 A JP2015119406 A JP 2015119406A JP 6576699 B2 JP6576699 B2 JP 6576699B2
Authority
JP
Japan
Prior art keywords
key
data
current
encrypted
encryption
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.)
Active
Application number
JP2015119406A
Other languages
Japanese (ja)
Other versions
JP2017005587A (en
Inventor
敏伸 山口
敏伸 山口
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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2015119406A priority Critical patent/JP6576699B2/en
Priority to US15/177,514 priority patent/US10243736B2/en
Publication of JP2017005587A publication Critical patent/JP2017005587A/en
Application granted granted Critical
Publication of JP6576699B2 publication Critical patent/JP6576699B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本開示は、暗号化されたデータを管理する暗号化システム、データの暗号化時に用いられるキーの更新方法、および当該キーの更新プログラムに関する。   The present disclosure relates to an encryption system that manages encrypted data, a key update method used when encrypting data, and a key update program.

近年、クラウドサービスが普及している。クラウドサービスの利用により、たとえば、社内システムによって従業員に提供されていたサービスが、クラウド上のサーバーによって安価に提供される。社内システムにおいては、社内の運用者がデータベースを管理するため、情報が外部に漏えいするリスクが少ない。クラウドサービスにおいては、サーバー内のデータベースが第三者の運用者に閲覧され得るため、情報が外部に漏えいするリスクがある。したがって、機密データは、クラウドサーバーでは暗号化された上で管理されることが望ましい。   In recent years, cloud services have become widespread. By using a cloud service, for example, a service provided to an employee by an in-house system is provided at a low cost by a server on the cloud. In the in-house system, since the in-house operator manages the database, there is little risk of information leaking outside. In the cloud service, since the database in the server can be viewed by a third party operator, there is a risk that information is leaked to the outside. Therefore, it is desirable that the confidential data is managed after being encrypted in the cloud server.

このような暗号化技術に関し、特開2014−17763号公報(特許文献1)は、「暗号更新を希望する利用者側の装置の負荷を軽減しながら、暗号化データが記憶されたデータベースの管理者に平文や復号用情報を与えることなく、暗号更新を行う技術」を開示している。   Regarding such an encryption technique, Japanese Patent Application Laid-Open No. 2014-17763 (Patent Document 1) states that “the management of a database in which encrypted data is stored while reducing the load on the device on the user side who desires to update the encryption. "Technology for performing cipher update without giving plaintext or decryption information to a person".

特開2014−17763号公報JP 2014-17763 A

一般的に、データの暗号化には暗号化キー(以下、「キー」ともいう。)が用いられる。キーは、定期的に更新されることがセキュリティ上好ましい。キーの更新時には、データベースは、更新後のキーに合わせて再暗号化される必要がある。   Generally, an encryption key (hereinafter also referred to as “key”) is used for data encryption. It is preferable for security that the key is periodically updated. When updating the key, the database needs to be re-encrypted to match the updated key.

再暗号化処理は、たとえば、ネットワークを介してクラウドサーバーに接続されているクライアントによって実行される。より具体的には、クライアントは、クラウドサーバーからデータを取得し、当該データを更新前のキーで復号化し、当該データを更新後のキーで再暗号化し、当該データをクラウドサーバーに格納する。数百万件のデータがデータベース上で管理されている場合には、再暗号化処理に時間がかかり、サービスの提供に支障が生じる可能性がある。   The re-encryption process is executed by a client connected to the cloud server via a network, for example. More specifically, the client acquires data from the cloud server, decrypts the data with the pre-update key, re-encrypts the data with the post-update key, and stores the data in the cloud server. If millions of pieces of data are managed on a database, re-encryption processing takes time, which may hinder service provision.

特許文献1に開示される技術は、新たな暗号化キーを生成する度に、暗号化されているデータを新たな暗号化キーで暗号化する。このように、当該技術においては、データが暗号化キーで何重にも暗号化されているため、データの復号時に時間がかかる。また、データのサイズは、暗号化キーの更新の度に増大する。   The technology disclosed in Patent Document 1 encrypts encrypted data with a new encryption key every time a new encryption key is generated. As described above, in this technique, since the data is encrypted with the encryption key several times, it takes time to decrypt the data. Further, the data size increases every time the encryption key is updated.

本開示は上述のような問題点を解決するためになされたものであって、ある局面における目的は、暗号化キーの更新に起因して暗号化処理および復号化処理の効率が低下することを防止できる暗号化システムを提供することである。他の局面における目的は、暗号化キーの更新に起因して暗号化処理および復号化処理の効率が低下することを防止できるキー更新方法を提供することである。さらに他の局面における目的は、暗号化キーの更新に起因して暗号化処理および復号化処理の効率が低下することを防止できるキー更新プログラムを提供することである。   The present disclosure has been made to solve the above-described problems, and an object in one aspect is to reduce the efficiency of encryption processing and decryption processing due to the update of the encryption key. It is to provide an encryption system that can be prevented. The objective in the other situation is to provide the key update method which can prevent that the efficiency of an encryption process and a decoding process falls due to the update of an encryption key. Still another object of the present invention is to provide a key update program that can prevent the efficiency of the encryption process and the decryption process from being reduced due to the update of the encryption key.

ある局面に従うと、データの暗号化システムは、第1キーを用いた第1暗号化方式でデータを暗号化し、第1暗号化データを生成するための第1暗号化部と、第2キーを用いた第2暗号化方式で第1暗号化データを暗号化し、第2暗号化データを生成するための第2暗号化部とを備える。第2暗号化方式は、データのシフト量を規定している第2キーに基づいてシフト演算を行う暗号化方式、または、データの反転位置を規定している第2キーに基づいてXOR演算を行う暗号化方式である。暗号化システムは、生成された第2暗号化データを格納するためのデータ記憶部と、現在の第1キーおよび現在の第2キーの両方の更新指示を受け付けたことに基づいて、現在の第1キーを新たな第1キーに更新するとともに、現在の第2キーを新たな第2キーに更新するためのキー更新部と、現在の第2キーの更新時に、現在の第2キーで暗号化されている第2暗号化データを、新たな第2キーで暗号化されている状態に変換するデータ更新部と、現在の第2キーと新たな第2キーとの間の差分を算出するための算出部とを備える。データ更新部は、差分を用いて、現在の第2キーで暗号化されている第2暗号化データを、現在の第2キーで復号化せずに、新たな第2キーで暗号化されている状態に変換する。暗号化システムは、キー更新部による更新後の第2キーで、データ更新部による変換後の第2暗号化データを第1暗号化データに復号化するための第1復号化部と、キー更新部による更新前の第1キーで、第1復号化部による復号化で得られた第1暗号化データをデータに復号化するための第2復号化部とを備える。 According to an aspect, a data encryption system encrypts data by a first encryption method using a first key, generates a first encrypted data, and a second key. A second encryption unit configured to encrypt the first encrypted data using the second encryption method used to generate second encrypted data ; The second encryption method is an encryption method that performs a shift operation based on a second key that defines a data shift amount, or an XOR operation that is performed based on a second key that defines a data inversion position. This is the encryption method to be performed. The encryption system receives the update instruction for both the current first key and the current second key based on the data storage unit for storing the generated second encrypted data and the current second key. A key update unit for updating one key to a new first key and a current second key to a new second key, and encryption with the current second key when updating the current second key A difference between the data updating unit that converts the encrypted second encrypted data into a state encrypted with the new second key, and the current second key and the new second key And a calculation unit for. The data updating unit uses the difference to encrypt the second encrypted data encrypted with the current second key without decrypting the current second key with the new second key. Convert to the state. The encryption system includes a first decryption unit for decrypting the second encrypted data converted by the data update unit into the first encrypted data with the second key updated by the key update unit, and a key update And a second decryption unit for decrypting the first encrypted data obtained by the decryption by the first decryption unit with the first key before being updated by the unit.

好ましくは、データ更新部は、第2暗号化データの変換後に、差分を削除する。
好ましくは、変換処理前における第2暗号化データのデータサイズと、変換処理後における第2暗号化データのデータサイズとは等しい。
Preferably, the data update unit deletes the difference after the conversion of the second encrypted data.
Preferably, the data size of the second encrypted data before the conversion process is equal to the data size of the second encrypted data after the conversion process.

好ましくは、データ記憶部は、第2暗号化データと当該第2暗号化データの更新日時とを互いに関連付けて格納する。暗号化システムは、さらに、過去の第1キーと当該第1キーの生成日時とを現在の第1キーで暗号化した上で履歴情報として格納する履歴情報記憶部と、現在の第2キーを現在の第1キーで暗号化した上で第2キー情報として格納するための第2キー記憶部とを備えるPreferably, the data storage unit stores the second encrypted data and the update date / time of the second encrypted data in association with each other. The encryption system further includes a history information storage unit that encrypts the past first key and the generation date and time of the first key with the current first key, and stores it as history information, and a current second key. And a second key storage unit for storing the second key information after encrypting with the current first key .

好ましくは、キー更新部は、現在の第1キーの更新指示を受け付けたことに基づいて、履歴情報を現在の第1キーで復号化し、現在の第1キーを過去の第1キーとして当該第1キーと当該第1キーの生成日時とを履歴情報に追加し、当該履歴情報を新たな第1キーで暗号化する。   Preferably, the key update unit decrypts the history information with the current first key based on accepting the update instruction of the current first key, and sets the current first key as the past first key. One key and the generation date and time of the first key are added to the history information, and the history information is encrypted with the new first key.

好ましくは、キー更新部は、現在の第2キーの更新指示を受け付けたことに基づいて、第2キー情報を現在の第1キーで復号化し、復号化処理後の第2キー情報に含まれる現在の第2キーを新たな第2キーで置換し、置換処理後の第2キー情報を新たな第1キーで暗号化する。   Preferably, the key update unit decrypts the second key information with the current first key on the basis of receiving the current second key update instruction, and is included in the second key information after the decryption process. The current second key is replaced with a new second key, and the second key information after the replacement process is encrypted with the new first key.

好ましくは、暗号化システムは、第2暗号化データの更新日時が保管期間を過ぎたことに基づいて、第2暗号化データを削除するための削除部をさらに備える。キー更新部は、第2暗号化データが削除されたことに基づいて、履歴情報を現在の第1キーで復号化し、復号化処理後の履歴情報に含まれる過去の第1キーの中から保管期間が過ぎている第1キーを削除し、削除処理後の履歴情報を現在の第1キーで再び暗号化する。   Preferably, the encryption system further includes a deletion unit for deleting the second encrypted data based on the fact that the update date of the second encrypted data has passed the storage period. The key update unit decrypts the history information with the current first key based on the deletion of the second encrypted data, and stores it from the past first key included in the history information after the decryption process. The first key whose period has expired is deleted, and the history information after the deletion process is encrypted again with the current first key.

好ましくは、第2復号化部は、生成日時が第2暗号化データの更新日時よりも前である最新の第1キーで第1暗号化データをデータに復号化する。 Preferably, the second decryption unit decrypts the first encrypted data into data with the latest first key whose generation date and time is earlier than the update date and time of the second encrypted data.

好ましくは、暗号化システムは、互いにネットワークで接続されているクライアントとサーバーとを備える。クライアントは、現在の第1キーを格納するための第1キー記憶部を含む。サーバーは、第2キー記憶部と、履歴情報記憶部と、データ記憶部とを含む。   Preferably, the encryption system includes a client and a server connected to each other via a network. The client includes a first key storage unit for storing the current first key. The server includes a second key storage unit, a history information storage unit, and a data storage unit.

好ましくは、暗号化システムは、互いにネットワークで接続されているクライアントとサーバーとを備える。クライアントは、現在の第1キーを格納するための第1キー記憶部と、第2キー記憶部と、履歴情報記憶部とを含む。サーバーは、データ記憶部を含む。   Preferably, the encryption system includes a client and a server connected to each other via a network. The client includes a first key storage unit for storing the current first key, a second key storage unit, and a history information storage unit. The server includes a data storage unit.

好ましくは、データから第2暗号化データへの暗号化処理および第2暗号化データからデータへの復号化処理は、クライアントおよびサーバーの少なくとも一方によって実行される。   Preferably, the encryption process from the data to the second encrypted data and the decryption process from the second encrypted data to the data are executed by at least one of the client and the server.

他の局面に従うと、データの暗号化システムにおけるコンピュータによって実行されるデータの暗号化時に用いられるキーの更新方法であって、コンピュータが、第1キーを用いた第1暗号化方式でデータを暗号化し、第1暗号化データを生成するステップと、コンピュータが、第2キーを用いた第2暗号化方式で第1暗号化データを暗号化し、第2暗号化データを生成するステップとを備える。第2暗号化方式は、データのシフト量を規定している第2キーに基づいてシフト演算を行う暗号化方式、または、データの反転位置を規定している第2キーに基づいてXOR演算を行う暗号化方式である。更新方法は、コンピュータが、生成された第2暗号化データを暗号化システムの記憶装置に格納するステップと、コンピュータが、現在の第1キーおよび現在の第2キーの両方の更新指示を受け付けたことに基づいて、現在の第1キーを新たな第1キーに更新するとともに、現在の第2キーを新たな第2キーに更新するステップと、コンピュータが、現在の第2キーの更新時に、現在の第2キーで暗号化されている第2暗号化データを、新たな第2キーで暗号化されている状態に変換するステップと、コンピュータが、現在の第2キーと新たな第2キーとの間の差分を算出するステップと、備える。変換するステップでは、コンピュータが差分を用いたビットの操作を実行することで、現在の第2キーで暗号化されている第2暗号化データを、現在の第2キーで復号化せずに、新たな第2キーで暗号化されている状態に変換する処理を実行する。更新方法は、更新するステップでの更新後の第2キーで、変換するステップでの変換後の第2暗号化データを第1暗号化データに復号化するステップと、更新するステップでの更新前の第1キーで、復号化するステップで得られた第1暗号化データをデータに復号化するステップとを備えるAccording to another aspect, a key update method used when encrypting data executed by a computer in a data encryption system, wherein the computer encrypts data using a first encryption method using a first key. And generating a first encrypted data, and a computer encrypting the first encrypted data by a second encryption method using a second key and generating a second encrypted data . The second encryption method is an encryption method that performs a shift operation based on a second key that defines a data shift amount, or an XOR operation that is performed based on a second key that defines a data inversion position. This is the encryption method to be performed. In the update method, the computer stores the generated second encrypted data in the storage device of the encryption system , and the computer receives an instruction to update both the current first key and the current second key. And updating the current first key to a new first key and updating the current second key to a new second key, and when the computer updates the current second key, Converting the second encrypted data encrypted with the current second key into a state encrypted with the new second key, and the computer having the current second key and the new second key And a step of calculating a difference between them. In the converting step, the computer performs a bit operation using the difference, so that the second encrypted data encrypted with the current second key is not decrypted with the current second key, A process of converting to a state encrypted with the new second key is executed. The update method includes a step of decrypting the second encrypted data after the conversion at the step of converting into the first encrypted data with the second key after the update at the step of updating, and before the update at the step of updating And decrypting the first encrypted data obtained in the decrypting step with the first key .

さらに他の局面に従うと、データの暗号化システムにおけるコンピュータによって実行可能で、データの暗号化時に用いられるキーの更新プログラムであって、コンピュータに、第1キーを用いた第1暗号化方式でデータを暗号化し、第1暗号化データを生成するステップと、第2キーを用いた第2暗号化方式で第1暗号化データを暗号化し、第2暗号化データを生成するステップとを実行させる。第2暗号化方式は、データのシフト量を規定している第2キーに基づいてシフト演算を行う暗号化方式、または、データの反転位置を規定している第2キーに基づいてXOR演算を行う暗号化方式である。コンピュータに、さらに、生成された第2暗号化データをコンピュータの記憶装置に格納するステップと、現在の第1キーおよび現在の第2キーの更新指示を受け付けたことに基づいて、現在の第1キーを新たな第1キーに更新するとともに、現在の第2キーを新たな第2キーに更新するステップと、現在の第2キーの更新時に、現在の第2キーで暗号化されている第2暗号化データを、新たな第2キーで暗号化されている状態に変換するステップと、現在の第2キーと新たな第2キーとの間の差分を算出するステップと、を実行させる。変換するステップでは、差分を用いたビットの操作が実行されることで、現在の第2キーで暗号化されている第2暗号化データを、現在の第2キーで復号化せずに、新たな第2キーで暗号化されている状態に変換する処理を実行させる。コンピュータに、さらに、更新するステップでの更新後の第2キーで、変換するステップでの変換後の第2暗号化データを第1暗号化データに復号化するステップと、更新するステップでの更新前の第1キーで、復号化するステップで得られた第1暗号化データをデータに復号化するステップとを実行させるAccording to yet another aspect, a key update program that can be executed by a computer in a data encryption system and is used when data is encrypted, wherein the computer uses the first encryption method that uses the first key to store data. Are encrypted and the first encrypted data is generated, and the first encrypted data is encrypted by the second encryption method using the second key to generate the second encrypted data . The second encryption method is an encryption method that performs a shift operation based on a second key that defines a data shift amount, or an XOR operation that is performed based on a second key that defines a data inversion position. This is the encryption method to be performed. The computer further stores the generated second encrypted data in a storage device of the computer, and receives a current first key and an update instruction for the current second key based on the current first key. Updating the key to a new first key, updating the current second key to a new second key, and updating the current second key to a second encrypted with the current second key. 2 A step of converting the encrypted data into a state encrypted with a new second key and a step of calculating a difference between the current second key and the new second key are executed. In the converting step, the bit operation using the difference is executed, so that the second encrypted data encrypted with the current second key is newly decrypted without being decrypted with the current second key. A process of converting to a state encrypted with the second key is executed. The computer further includes the step of decrypting the second encrypted data after the conversion at the step of converting into the first encrypted data with the second key after the update at the step of updating, and the update at the step of updating The first encrypted data obtained in the decrypting step is decrypted with the previous first key .

ある局面において、暗号化キーの更新に起因して暗号化処理および復号化処理の効率が低下することを防止できる。   In one aspect, it is possible to prevent the efficiency of the encryption process and the decryption process from being reduced due to the update of the encryption key.

本発明の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本発明に関する次の詳細な説明から明らかとなるであろう。   The above and other objects, features, aspects and advantages of the present invention will become apparent from the following detailed description of the present invention taken in conjunction with the accompanying drawings.

関連技術に従う暗号化システムによる暗号化キーの更新処理を概略的に示す概念図である。It is a conceptual diagram which shows roughly the update process of the encryption key by the encryption system according to related technology. 第1の実施の形態に従う暗号化システムが利用するデータの内容を概略的に示す概念図である。It is a conceptual diagram which shows roughly the content of the data which the encryption system according to 1st Embodiment utilizes. 第1の実施の形態に従う暗号化システムのキー更新時における機能構成の一例を示す図である。It is a figure which shows an example of the function structure at the time of the key update of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムのキー更新処理を表わすフローチャートである。It is a flowchart showing the key update process of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムの暗号化時における機能構成の一例を示す図である。It is a figure which shows an example of a function structure at the time of the encryption of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムの暗号化処理を表わすフローチャートである。It is a flowchart showing the encryption process of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムの復号化時における機能構成の一例を示す図である。It is a figure which shows an example of a function structure at the time of the decoding of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムの復号化時における機能構成の他の例を示す図である。It is a figure which shows the other example of a function structure at the time of the decoding of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムの復号化処理を表わすフローチャートである。It is a flowchart showing the decoding process of the encryption system according to 1st Embodiment. 第1の実施の形態に従う暗号化システムの主要なハードウェア構成を示すブロック図である。It is a block diagram which shows the main hardware constitutions of the encryption system according to 1st Embodiment. 第2の実施の形態に従う暗号化システムのキー削除時における機能構成の一例を示す図である。It is a figure which shows an example of a function structure at the time of the key deletion of the encryption system according to 2nd Embodiment. 第2の実施の形態に従う暗号化システムの削除処理を表わすフローチャートである。It is a flowchart showing the deletion process of the encryption system according to 2nd Embodiment.

以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わされてもよい。   Embodiments according to the present invention will be described below with reference to the drawings. In the following description, the same parts and components are denoted by the same reference numerals. Their names and functions are also the same. Therefore, detailed description thereof will not be repeated. Each embodiment and each modified example described below may be selectively combined as appropriate.

<関連技術>
まず、以下の各実施の形態についての理解を深めるために、図1を参照して、関連技術に従う暗号化システム300Xについて説明する。図1は、暗号化システム300Xによる暗号化キーの更新処理を概略的に示す概念図である。図1に示されるように、暗号化システム300Xは、互いにネットワーク上で接続されているクライアント100Xとサーバー200Xとを含む。
<Related technologies>
First, in order to deepen the understanding of the following embodiments, an encryption system 300X according to the related art will be described with reference to FIG. FIG. 1 is a conceptual diagram schematically showing encryption key update processing by the encryption system 300X. As shown in FIG. 1, the encryption system 300X includes a client 100X and a server 200X that are connected to each other on a network.

クライアント100Xは、暗号化対象のデータを受け付けると、当該データを二段階で暗号化する。以下では、一段階目の暗号化処理で用いられる暗号化キーを「メインキー」ともいう。二段階目の暗号化処理で用いられる暗号化キーを「サブキー」ともいう。クライアント100Xは、暗号化対象のデータをメインキーA0で暗号化し、当該暗号化により得られるデータをさらにサブキーB0で暗号化する。クライアント100Xは、メインキーA0およびサブキーB0で暗号化されたデータDXをサーバー200Xに送信する。サーバー200Xは、クライアント100Xから受信したデータDXを格納する。   When the client 100X receives the data to be encrypted, the client 100X encrypts the data in two stages. Hereinafter, the encryption key used in the first-stage encryption process is also referred to as “main key”. The encryption key used in the second-stage encryption process is also referred to as a “sub key”. The client 100X encrypts the data to be encrypted with the main key A0, and further encrypts the data obtained by the encryption with the sub key B0. The client 100X transmits the data DX encrypted with the main key A0 and the sub key B0 to the server 200X. Server 200X stores data DX received from client 100X.

クライアント100Xは、メインキーA0およびサブキーB0の更新指示を受け付けると、現在のメインキーA0に代わる新たなメインキーA1を生成するとともに、現在のサブキーB0に代わる新たなサブキーB1を生成する。クライアント100Xは、新たなメインキーA1とサブキーB1とをサーバー200Xに送信するとともに、メインキーA1で暗号化された更新前のサブキーB0をサーバー200Xに送信する。サーバー200Xの更新部20Xは、メインキーA1およびサブキーB1を受信したことに基づいて、サブキーB0で暗号化されているデータDXと、メインキーA1で暗号化されているサブキーB0とをサブキーB1でさらに暗号化する。このように、サーバー200がデータDXを復号化せずにキーを更新するため、データDXの内容がサーバー200Xの管理者に漏えいするリスクが少ない。   When receiving an update instruction for the main key A0 and the subkey B0, the client 100X generates a new main key A1 that replaces the current main key A0 and also generates a new subkey B1 that replaces the current subkey B0. The client 100X transmits the new main key A1 and subkey B1 to the server 200X, and transmits the subkey B0 before update encrypted with the main key A1 to the server 200X. Based on the reception of the main key A1 and the subkey B1, the update unit 20X of the server 200X converts the data DX encrypted with the subkey B0 and the subkey B0 encrypted with the main key A1 with the subkey B1. Encrypt further. Thus, since the server 200 updates the key without decrypting the data DX, there is little risk that the contents of the data DX will be leaked to the administrator of the server 200X.

暗号化システム300Xは、キーの更新の度にデータDXを新たなサブキーで暗号化し、更新前のサブキーを順次記憶する。そのため、サーバー200X上のデータサイズは、キーの更新の度に大きくなる。また、データDXの復号時には、サブキーで何重にも暗号化されているデータDXを順に復号化する必要があるため、キーの更新回数が多くなるほど復号化処理にかかる時間が長くなる。   The encryption system 300X encrypts the data DX with a new subkey every time the key is updated, and sequentially stores the subkeys before the update. Therefore, the data size on the server 200X increases every time the key is updated. In addition, when data DX is decrypted, it is necessary to sequentially decrypt data DX that has been encrypted with the sub-key in order, so that the time required for the decryption process increases as the number of key updates increases.

以下で説明する実施の形態に従う暗号化システム300は、これらの問題を解決することができる。すなわち、暗号化システム300は、キーの更新の度に、サーバー上のデータサイズが大きくなることを防止するとともに、当該更新処理に起因して復号化処理の効率が低下することを防止する。   The encryption system 300 according to the embodiment described below can solve these problems. That is, the encryption system 300 prevents the data size on the server from increasing each time the key is updated, and prevents the efficiency of the decryption process from being reduced due to the update process.

<第1の実施の形態>
[データ構造]
図2を参照して、第1の実施の形態に従う暗号化システム300が利用するデータの内容について説明する。図2は、暗号化システム300が利用するデータの内容を概略的に示す概念図である。
<First Embodiment>
[data structure]
With reference to FIG. 2, the content of data used by encryption system 300 according to the first embodiment will be described. FIG. 2 is a conceptual diagram schematically showing the contents of data used by the encryption system 300.

図2に示されるように、暗号化システム300は、互いにネットワーク上で接続されているクライアント100とサーバー200とを含む。   As shown in FIG. 2, the encryption system 300 includes a client 100 and a server 200 connected to each other on a network.

クライアント100は、メインキー情報111を含む。メインキー情報111は、たとえば、クライアント100の記憶装置110(図10参照)に格納されている。メインキー情報111には、現在のメインキーに関する情報が含まれる。図2の例では、メインキー情報111には、メインキーA0と、メインキーA0の生成日時とが含まれている。   The client 100 includes main key information 111. The main key information 111 is stored in the storage device 110 (see FIG. 10) of the client 100, for example. The main key information 111 includes information on the current main key. In the example of FIG. 2, the main key information 111 includes the main key A0 and the generation date and time of the main key A0.

サーバー200は、メインキー履歴情報211と、サブキー情報212と、データベース213とを含む。メインキー履歴情報211と、サブキー情報212と、データベース213とは、サーバー200の記憶装置210(図10参照)に格納されている。   Server 200 includes main key history information 211, subkey information 212, and database 213. The main key history information 211, the sub key information 212, and the database 213 are stored in the storage device 210 (see FIG. 10) of the server 200.

メインキー履歴情報211には、過去のメインキーに関する情報が含まれる。一例として、メインキー履歴情報211は、過去のメインキーAa〜AzとメインキーAa〜Azの生成日時とを含む。メインキー履歴情報211は、現在のメインキーA0で暗号化されている。   The main key history information 211 includes information on past main keys. As an example, the main key history information 211 includes past main keys Aa to Az and generation dates and times of the main keys Aa to Az. The main key history information 211 is encrypted with the current main key A0.

サブキー情報212は、現在のサブキーに関する情報を含む。サブキー情報212は、現在のメインキーA0で暗号化されている。一例として、サブキー情報212は、サブキーB0を含む。   The sub key information 212 includes information regarding the current sub key. The sub key information 212 is encrypted with the current main key A0. As an example, the subkey information 212 includes a subkey B0.

データベース213は、管理対象のデータと、当該データに関する情報とを含む。管理対象のデータは、メインキーで暗号化された上で、さらに、サブキーで暗号化されている。一例として、データベース213においては、暗号化されたデータと、当該データの更新日時とが互いに関連付けられている。   The database 213 includes data to be managed and information related to the data. Data to be managed is encrypted with the main key and further encrypted with the sub key. As an example, in the database 213, the encrypted data and the update date and time of the data are associated with each other.

なお、メインキー情報111、メインキー履歴情報211、サブキー情報212、およびデータベース213の格納場所は、図2の例に限定されない。すなわち、これらの格納場所は任意である。たとえば、メインキー情報111、メインキー履歴情報211、およびサブキー情報212がクライアント100に格納されて、データベース213がサーバー200に格納されてもよい。   The storage locations of the main key information 111, the main key history information 211, the sub key information 212, and the database 213 are not limited to the example in FIG. That is, these storage locations are arbitrary. For example, the main key information 111, the main key history information 211, and the sub key information 212 may be stored in the client 100, and the database 213 may be stored in the server 200.

[暗号化システム300の処理]
暗号化システム300によって実行される処理として、キー更新処理と、暗号化処理と、復号化処理とが挙げられる。暗号化システム300は、キー更新処理を実行することで、暗号化および復号化に用いられるキーを更新する。暗号化システム300は、暗号化処理を実行することで、平文のデータを暗号化し、暗号化データを生成する。暗号化システム300は、復号化処理を実行することで、暗号化データを復号化し、平文のデータを生成する。
[Processing of Encryption System 300]
Examples of processing executed by the encryption system 300 include key update processing, encryption processing, and decryption processing. The encryption system 300 updates a key used for encryption and decryption by executing a key update process. The encryption system 300 executes encryption processing to encrypt plaintext data and generate encrypted data. The encryption system 300 executes decryption processing to decrypt the encrypted data and generate plaintext data.

以下では、暗号化システム300のキー更新処理、暗号化処理、および復号化処理について順に説明する。   Hereinafter, the key update process, encryption process, and decryption process of the encryption system 300 will be described in order.

(キー更新処理)
図3および図4を参照して、暗号化システム300のキー更新処理について説明する。図3は、キー更新時における暗号化システム300の機能構成の一例を示す図である。図4は、暗号化システム300のキー更新処理を表わすフローチャートである。図4の処理は、クライアント100のCPU(Central Processing Unit)102(図10参照)およびサーバー200のCPU202(図10参照)がキー更新プログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。
(Key update process)
With reference to FIG. 3 and FIG. 4, the key update process of the encryption system 300 is demonstrated. FIG. 3 is a diagram illustrating an example of a functional configuration of the encryption system 300 at the time of key update. FIG. 4 is a flowchart showing the key update process of the encryption system 300. The processing in FIG. 4 is realized by the CPU (Central Processing Unit) 102 (see FIG. 10) of the client 100 and the CPU 202 (see FIG. 10) of the server 200 executing the key update program. In other aspects, some or all of the processing may be performed by circuit elements or other hardware.

図3に示されるように、クライアント100は、キー更新処理を実現するための機能構成として、キー生成部150と、キー更新部152と、算出部154とを含む。サーバー200は、データ更新部250を含む。   As illustrated in FIG. 3, the client 100 includes a key generation unit 150, a key update unit 152, and a calculation unit 154 as a functional configuration for realizing key update processing. Server 200 includes a data updating unit 250.

ステップS50において、キー生成部150は、メインキーA0およびサブキーB0を更新する指示を受け付けたことに基づいて、現在のメインキーA0に代わるメインキーA1と、現在のサブキーB0に代わるサブキーB1とを新たに生成する。一例として、キーの更新指示は、予め設定されている期間(たとえば、一日)ごとに発せられる。あるいは、キーの更新指示は、クライアント100に対するキー更新操作に基づいて応じて発せられる。キー生成部150は、新たに生成したメインキーA1をキー更新部152に出力するとともに、新たに生成したサブキーB1を算出部154に出力する。   In step S50, the key generation unit 150 receives the main key A1 that replaces the current main key A0 and the subkey B1 that replaces the current subkey B0 based on the reception of the instruction to update the main key A0 and the subkey B0. Create a new one. As an example, the key update instruction is issued every preset period (for example, one day). Alternatively, the key update instruction is issued based on a key update operation on the client 100. The key generation unit 150 outputs the newly generated main key A1 to the key update unit 152 and outputs the newly generated subkey B1 to the calculation unit 154.

ステップS52において、キー更新部152は、メインキー履歴情報211をサーバー200から取得する。メインキー履歴情報211は、更新前のメインキーA0で暗号化されているため、キー更新部152は、メインキー履歴情報211をメインキーA0で復号化する。キー更新部152は、新たなメインキーA1と当該メインキーA1の生成日時とを、復号化後のメインキー履歴情報211に追加する。その後、キー更新部152は、新たなメインキーA1でメインキー履歴情報211を暗号化し、当該メインキー履歴情報211をサーバー200に送信する。サーバー200は、受信したメインキー履歴情報211を格納する。   In step S <b> 52, the key update unit 152 acquires the main key history information 211 from the server 200. Since the main key history information 211 is encrypted with the main key A0 before update, the key update unit 152 decrypts the main key history information 211 with the main key A0. The key updating unit 152 adds the new main key A1 and the generation date and time of the main key A1 to the decrypted main key history information 211. Thereafter, the key update unit 152 encrypts the main key history information 211 with the new main key A1 and transmits the main key history information 211 to the server 200. The server 200 stores the received main key history information 211.

ステップS54において、キー更新部152は、クライアント100に格納されているメインキー情報111を更新する。より具体的には、キー更新部152は、メインキー情報111に含まれるメインキーA0を新たなメインキーA1に置換するとともに、メインキー情報111に含まれるメインキーA0の生成日時をメインキーA1の生成日時に置換する。   In step S <b> 54, the key update unit 152 updates the main key information 111 stored in the client 100. More specifically, the key updating unit 152 replaces the main key A0 included in the main key information 111 with a new main key A1, and sets the generation date and time of the main key A0 included in the main key information 111 to the main key A1. Replace with the creation date of.

ステップS56において、算出部154は、現在のサブキーB0と新たなサブキーB1との差分Cを算出する。算出部154は、算出した差分Cをデータ更新部250に出力する。   In step S56, the calculation unit 154 calculates the difference C between the current subkey B0 and the new subkey B1. The calculation unit 154 outputs the calculated difference C to the data update unit 250.

ステップS58において、キー更新部152は、サブキー情報212をサーバー200から取得する。サブキー情報212は、更新前のメインキーA0で暗号化されているため、キー更新部152は、サブキー情報212をメインキーA0で復号化する。キー更新部152は、サブキー情報212に含まれるサブキーB0を新たなサブキーB1で置換する。その後、キー更新部152は、新たなメインキーA1でサブキー情報212を暗号化し、当該サブキー情報212をサーバー200に送信する。サーバー200は、受信したサブキー情報212を格納する。   In step S <b> 58, the key update unit 152 acquires the sub key information 212 from the server 200. Since the subkey information 212 is encrypted with the main key A0 before update, the key update unit 152 decrypts the subkey information 212 with the main key A0. The key update unit 152 replaces the sub key B0 included in the sub key information 212 with the new sub key B1. After that, the key update unit 152 encrypts the sub key information 212 with the new main key A1, and transmits the sub key information 212 to the server 200. The server 200 stores the received subkey information 212.

ステップS60において、データ更新部250は、サブキーB0の更新時に、更新前のサブキーB0で暗号化されているデータベース213を更新後の新たなサブキーB1で暗号化されている状態に変換する。より具体的には、データ更新部250は、差分Cを用いて、データベース213をサブキーB0で復号化せずに、データベース213をサブキーB1で暗号化されている状態に変換する。   In step S60, when updating the subkey B0, the data updating unit 250 converts the database 213 encrypted with the subkey B0 before the update into a state encrypted with the new subkey B1 after the update. More specifically, the data update unit 250 uses the difference C to convert the database 213 into a state encrypted with the subkey B1 without decrypting the database 213 with the subkey B0.

ステップS60における更新処理について具体例を挙げてさらに詳細に説明する。ある局面において、サブキーによる暗号化は、データをビットシフトさせることで実現される。この場合、サブキーには、データのシフト量が規定されている。一例として、サブキーB0には、シフト量として「3ビット右シフト」が規定されているとする。サブキーB1には、シフト量として「9ビット右シフト」が規定されているとする。この場合、算出部154は、サブキーB1からサブキーB0を差分した「6ビット右シフト」を差分Cとして算出する。   The update process in step S60 will be described in more detail with a specific example. In one aspect, the encryption with the subkey is realized by bit-shifting the data. In this case, a data shift amount is defined in the subkey. As an example, it is assumed that “3-bit right shift” is defined as the shift amount in the subkey B0. It is assumed that “9-bit right shift” is defined as the shift amount in the sub key B1. In this case, the calculation unit 154 calculates “6-bit right shift” obtained by subtracting the subkey B0 from the subkey B1 as the difference C.

データ更新部250は、差分Cに基づいて、サブキーB0で暗号化されているデータベース213を6ビット右シフトさせることで、データベース213をサブキーB1で暗号化されている状態にする。このように、データ更新部250は、データベース213を更新前のサブキーB0で復号化せずに、更新後のサブキーB1で暗号化した状態にデータベース213を変換する。これにより、データ更新部250は、キー更新時におけるデータベース213の変換処理を高速化することができる。結果として、キー更新中における暗号化システム300への負荷が軽減される。   Based on the difference C, the data update unit 250 shifts the database 213 encrypted with the subkey B0 to the right by 6 bits, thereby making the database 213 encrypted with the subkey B1. In this way, the data update unit 250 converts the database 213 into a state in which the database 213 is encrypted with the updated subkey B1 without being decrypted with the subkey B0 before the update. Thereby, the data update part 250 can speed up the conversion process of the database 213 at the time of key update. As a result, the load on the encryption system 300 during the key update is reduced.

他の局面において、サブキーによる暗号化は、ビット反転により実現される。この場合、サブキーには、1バイト(すなわち、8ビット)のデータにおいて反転するビット位置が規定されている。一例として、サブキーB0には、反転位置として「1ビット目、3ビット目」が規定されているとする。サブキーB1には、反転位置として「1ビット目、4ビット目」が規定されているとする。この場合、算出部154は、サブキーB1からサブキーB0を差分した「3ビット目、4ビット目」を差分Cとして算出する。   In another aspect, the encryption by the subkey is realized by bit inversion. In this case, a bit position that is inverted in 1-byte (that is, 8 bits) data is defined in the subkey. As an example, it is assumed that “first bit, third bit” is defined as the inversion position in the subkey B0. It is assumed that “first bit, fourth bit” is defined as the inversion position in the subkey B1. In this case, the calculation unit 154 calculates “the third bit, the fourth bit” obtained by subtracting the sub key B0 from the sub key B1 as the difference C.

データ更新部250は、差分Cに基づいて、データベース213の1バイトごとのそれぞれのデータについて3,4ビット目を反転する。このように、データ更新部250は、データベース213を更新前のサブキーB0で復号化せずに、更新後のサブキーB1で暗号化した状態にデータベース213を変換することができる。   Based on the difference C, the data update unit 250 inverts the third and fourth bits for each byte of data in the database 213. In this way, the data updating unit 250 can convert the database 213 into a state where the database 213 is encrypted with the updated subkey B1 without being decrypted with the updated subkey B0.

サーバー200は、新たなサブキーB1を用いずにデータベース213を変換するため、サブキーB1がサーバー200の管理者に漏えいすることはない。さらに、サブキーが頻繁に更新されることにより、仮にサーバー200の管理者が過去のサブキーを入手したとしても、当該管理者は、データベース213を復号化することができない。そのため、データベース213の内容が当該管理者に漏えいリスクは低い。   Since the server 200 converts the database 213 without using the new subkey B1, the subkey B1 does not leak to the administrator of the server 200. Furthermore, if the subkey is frequently updated, even if the administrator of the server 200 obtains a past subkey, the administrator cannot decrypt the database 213. Therefore, the risk of leaking the contents of the database 213 to the administrator is low.

好ましくは、変換処理前におけるデータベース213のデータサイズと、変換処理後におけるデータベース213のデータサイズとは等しい。これにより、データ更新部250は、サーバー200上でデータサイズがキーの更新の度に増大することを防止する。   Preferably, the data size of the database 213 before the conversion process is equal to the data size of the database 213 after the conversion process. As a result, the data update unit 250 prevents the data size on the server 200 from increasing each time the key is updated.

さらに好ましくは、データ更新部250は、データベース213の変換後に、差分Cを削除する。これにより、データ更新部250は、キーの更新の度に差分Cが蓄積されることを防止でき、キーの更新処理に起因してサーバー200上でデータサイズが増大することを防止できる。   More preferably, the data update unit 250 deletes the difference C after the database 213 is converted. Thereby, the data update unit 250 can prevent the difference C from being accumulated every time the key is updated, and can prevent the data size from increasing on the server 200 due to the key update process.

(暗号化システム300の暗号化処理)
図5および図6を参照して、暗号化システム300の暗号化処理について説明する。図5は、暗号化時における暗号化システム300の機能構成の一例を示す図である。図6は、暗号化システム300の暗号化処理を表わすフローチャートである。図6の処理は、クライアント100のCPU102(図10参照)およびサーバー200のCPU202(図10参照)が暗号化プログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。
(Encryption processing of the encryption system 300)
The encryption processing of the encryption system 300 will be described with reference to FIGS. 5 and 6. FIG. 5 is a diagram illustrating an example of a functional configuration of the encryption system 300 at the time of encryption. FIG. 6 is a flowchart showing the encryption process of the encryption system 300. The processing in FIG. 6 is realized by the CPU 102 (see FIG. 10) of the client 100 and the CPU 202 (see FIG. 10) of the server 200 executing the encryption program. In other aspects, some or all of the processing may be performed by circuit elements or other hardware.

図5に示されるように、クライアント100は、暗号化処理を実現するための機能構成として、データ暗号化部130と、データ暗号化部134と、キー復号化部142とを含む。サーバー200は、暗号化処理を実現するための機能構成として、データ更新部250を含む。   As shown in FIG. 5, the client 100 includes a data encryption unit 130, a data encryption unit 134, and a key decryption unit 142 as functional configurations for realizing the encryption process. The server 200 includes a data update unit 250 as a functional configuration for realizing the encryption process.

ステップS10において、データ暗号化部130は、暗号化対象のデータを取得する。暗号化対象のデータは、たとえば、クライアント100の管理者によって指定されたデータである。あるいは、暗号化対象のデータは、クライアント100において予め設定されているフォルダのデータである。   In step S10, the data encryption unit 130 acquires data to be encrypted. The data to be encrypted is, for example, data designated by the administrator of the client 100. Alternatively, the encryption target data is data of a folder set in advance in the client 100.

ステップS12において、データ暗号化部130は、メインキー情報111から現在のメインキーA0を取得する。データ暗号化部130は、メインキーA0を用いた第1暗号化方式で暗号化対象のデータを暗号化し、データD0を生成する。好ましくは、第1暗号化方式には、後述する第2暗号化方式よりも暗号化強度が高い暗号化アルゴリズムが採用される。第1暗号化方式としては、たとえば、AES(Advanced Encryption Standard)−256bitやRSA(Rivest Shamir Adleman)等が挙げられる。データ暗号化部130は、暗号化後のデータD0をデータ暗号化部134に出力する。   In step S12, the data encryption unit 130 acquires the current main key A0 from the main key information 111. The data encryption unit 130 encrypts data to be encrypted by the first encryption method using the main key A0, and generates data D0. Preferably, an encryption algorithm having an encryption strength higher than that of a second encryption method to be described later is employed as the first encryption method. Examples of the first encryption method include AES (Advanced Encryption Standard) -256 bits and RSA (Rivest Shamir Adleman). The data encryption unit 130 outputs the encrypted data D0 to the data encryption unit 134.

ステップS14において、キー復号化部142は、サブキー情報212をサーバー200から受信する。サブキー情報212は、現在のメインキーA0で暗号化されているため、キー復号化部142は、サブキー情報212をメインキーA0で復号化する。キー復号化部142は、復号化後のサブキー情報212からサブキーB0を取得し、当該サブキーB0をデータ暗号化部134に出力する。   In step S <b> 14, the key decryption unit 142 receives the sub key information 212 from the server 200. Since the sub key information 212 is encrypted with the current main key A0, the key decryption unit 142 decrypts the sub key information 212 with the main key A0. The key decryption unit 142 acquires the subkey B0 from the decrypted subkey information 212, and outputs the subkey B0 to the data encryption unit 134.

ステップS16において、データ暗号化部134は、サブキーB0を用いた第2暗号化方式でデータD0を暗号化し、データD1を生成する。データ暗号化部134は、データD1を生成した時刻を更新日時として、当該更新日時とデータD1とをサーバー200に送信する。   In step S16, the data encryption unit 134 encrypts the data D0 by the second encryption method using the subkey B0, and generates data D1. The data encryption unit 134 transmits the update date and time and the data D1 to the server 200 using the time when the data D1 is generated as the update date and time.

一例として、第2暗号化方式には、第1暗号化方式よりも高速な暗号化方式が採用される。好ましくは、第2暗号化方式には、サブキーの種類によらず暗号化前後でデータサイズが同じになる方式が採用される。さらに好ましくは、第2暗号化方式には、異なるサブキー同士で差分が可能な方式が採用される。   As an example, an encryption method that is faster than the first encryption method is adopted as the second encryption method. Preferably, a method in which the data size is the same before and after encryption is adopted as the second encryption method regardless of the type of subkey. More preferably, a method that allows a difference between different subkeys is adopted as the second encryption method.

一例として、第2暗号化方式には、XOR演算、シフト演算、小サイズの変換テーブルに基づいたデータ変換アルゴリズム等が採用される。XOR演算においては、データ暗号化部134は、サブキーを種として乱数を発生させ、当該乱数に基づいて1バイト内の反転させるビット位置を決定する。データ暗号化部134は、データD0の1バイトごとのそれぞれのデータについてビット反転する。シフト演算においては、データ暗号化部134は、サブキーを種として乱数を発生させ、当該乱数に基づいてシフト量を決定する。データ暗号化部134は、決定したシフト量の分だけデータD0をビットシフトする。   As an example, for the second encryption method, an XOR operation, a shift operation, a data conversion algorithm based on a small-size conversion table, or the like is employed. In the XOR operation, the data encryption unit 134 generates a random number using the sub key as a seed, and determines a bit position to be inverted within 1 byte based on the random number. The data encryption unit 134 performs bit inversion for each byte of data D0. In the shift operation, the data encryption unit 134 generates a random number using the sub key as a seed, and determines the shift amount based on the random number. The data encryption unit 134 bit-shifts the data D0 by the determined shift amount.

ステップS18において、データ更新部250は、クライアント100から受信したデータD1と更新日時とを一つのレコードとしてデータベース213に格納する。   In step S18, the data update unit 250 stores the data D1 received from the client 100 and the update date and time in the database 213 as one record.

なお、上述では、クライアント100が暗号化処理を実行する例について説明したが、クライアント100およびサーバー200間の通信経路のセキュリティに問題がなく、暗号化処理中のデータをサーバー200の管理者に秘匿できれば、サーバー200が暗号化処理を実行してもよい。すなわち、暗号化処理は、クライアント100およびサーバー200の少なくとも一方によって実行され得る。   Although the example in which the client 100 executes the encryption process has been described above, there is no problem with the security of the communication path between the client 100 and the server 200, and the data being encrypted is kept secret from the administrator of the server 200. If possible, the server 200 may execute the encryption process. That is, the encryption process can be executed by at least one of the client 100 and the server 200.

(暗号化システム300の復号化処理)
図7〜図9を参照して、暗号化システム300の復号化処理について説明する。図7は、復号化時における暗号化システム300の機能構成の一例を示す図である。図8は、復号化時における暗号化システム300の機能構成の他の例を示す図である。図9は、暗号化システム300の復号化処理を表わすフローチャートである。図9の処理は、クライアント100のCPU102(図10参照)およびサーバー200のCPU202(図10参照)が復号化プログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。
(Decryption processing of the encryption system 300)
The decryption process of the encryption system 300 will be described with reference to FIGS. FIG. 7 is a diagram illustrating an example of a functional configuration of the encryption system 300 at the time of decryption. FIG. 8 is a diagram illustrating another example of the functional configuration of the encryption system 300 at the time of decryption. FIG. 9 is a flowchart showing the decryption process of the encryption system 300. The processing in FIG. 9 is realized by the CPU 102 (see FIG. 10) of the client 100 and the CPU 202 (see FIG. 10) of the server 200 executing the decryption program. In other aspects, some or all of the processing may be performed by circuit elements or other hardware.

図7および図8に示されるように、クライアント100は、復号化処理を実現するためのデータ復号化部140と、キー復号化部142と、キー復号化部144と、データ復号化部146とを含む。   As shown in FIGS. 7 and 8, the client 100 includes a data decryption unit 140, a key decryption unit 142, a key decryption unit 144, and a data decryption unit 146 for realizing the decryption process. including.

ステップS30において、データ復号化部140は、復号化対象のデータD1と当該データD1の更新日時とをサーバー200のデータベース213から取得する。復号化対象のデータD1は、たとえば、クライアント100の管理者によって指定される。   In step S <b> 30, the data decryption unit 140 acquires the data D <b> 1 to be decrypted and the update date / time of the data D <b> 1 from the database 213 of the server 200. The data D1 to be decrypted is specified by the administrator of the client 100, for example.

ステップS32において、キー復号化部142は、サブキー情報212をサーバー200から取得する。サブキー情報212は、現在のメインキーA0で暗号化されているため、キー復号化部142は、メインキー情報111に含まれるメインキーA0でサブキー情報212を復号化する。キー復号化部142は、復号化後のサブキー情報212からサブキーB0を取得する。キー復号化部142は、サブキーB0をデータ復号化部140に出力する。   In step S <b> 32, the key decryption unit 142 acquires the sub key information 212 from the server 200. Since the sub key information 212 is encrypted with the current main key A 0, the key decryption unit 142 decrypts the sub key information 212 with the main key A 0 included in the main key information 111. The key decryption unit 142 acquires the sub key B0 from the decrypted sub key information 212. The key decryption unit 142 outputs the sub key B0 to the data decryption unit 140.

ステップS34において、データ復号化部140は、サブキーB0で暗号化されているデータD1をサブキーB0で復号化し、データD0を生成する。データ復号化部140は、データD0をデータ復号化部146に出力する。   In step S34, the data decryption unit 140 decrypts the data D1 encrypted with the subkey B0 with the subkey B0, and generates data D0. The data decoding unit 140 outputs the data D0 to the data decoding unit 146.

ステップS36において、クライアント100は、データD1の更新日時が現在のメインキーA0の生成日時よりも新しいか否かを判断する。クライアント100は、データD1の更新日時が現在のメインキーA0の生成日時よりも新しいと判断した場合(ステップS36においてYES)、制御をステップS38に切り替える。そうでない場合には(ステップS36においてNO)、クライアント100は、制御をステップS40に切り替える。   In step S36, the client 100 determines whether or not the update date and time of the data D1 is newer than the current generation date and time of the main key A0. If the client 100 determines that the update date / time of the data D1 is newer than the current generation date / time of the main key A0 (YES in step S36), the client 100 switches the control to step S38. If not (NO in step S36), the client 100 switches the control to step S40.

ステップS38において、データ復号化部146は、メインキー情報111からメインキーA0を取得し、データD0をメインキーA0で復号化する。これにより、データ復号化部146は、平文のデータを取得することができる。   In step S38, the data decryption unit 146 acquires the main key A0 from the main key information 111, and decrypts the data D0 with the main key A0. As a result, the data decryption unit 146 can acquire plaintext data.

ステップS40において、キー復号化部144は、サーバー200からメインキー履歴情報211を取得する。メインキー履歴情報211は、現在のメインキーA0で暗号化されているため、キー復号化部144は、メインキーA0でメインキー履歴情報211を復号化する。その結果、過去のメインキーと、当該メインキーの生成日時が得られる。取得された情報は、クライアント100の内部にキャッシュとして保持されてもよい。これにより、次回の復号化処理が高速化される。キー復号化部144は、生成日時が暗号化データの更新日時よりも古いメインキーをメインキー履歴情報211に含まれるメインキーの中から選択し、選択したメインキーの中で最も新しいメインキーAaを取得する。キー復号化部144は、メインキーAaをデータ復号化部146に出力する。   In step S <b> 40, the key decryption unit 144 acquires the main key history information 211 from the server 200. Since the main key history information 211 is encrypted with the current main key A0, the key decryption unit 144 decrypts the main key history information 211 with the main key A0. As a result, the past main key and the generation date and time of the main key are obtained. The acquired information may be held in the client 100 as a cache. This speeds up the next decoding process. The key decryption unit 144 selects a main key whose generation date / time is older than the update date / time of the encrypted data from the main keys included in the main key history information 211, and the newest main key Aa among the selected main keys. To get. The key decryption unit 144 outputs the main key Aa to the data decryption unit 146.

ステップS42において、データ復号化部146は、データD0をメインキーAaで復号化する。以上のようにして、データ復号化部146は、データD1の更新日時よりも前に生成されたメインキーAaでデータD1を平文のデータに復号化する。   In step S42, the data decryption unit 146 decrypts the data D0 with the main key Aa. As described above, the data decryption unit 146 decrypts the data D1 into plaintext data using the main key Aa generated before the update date and time of the data D1.

なお、図7および図8では、クライアント100が復号化処理を実行する例について説明したが、クライアント100およびサーバー200間の通信経路のセキュリティに問題がなく、復号化処理中のデータをサーバー200の管理者に秘匿できれば、サーバー200が復号化処理を実行してもよい。すなわち、復号化処理は、クライアント100およびサーバー200の少なくとも一方によって実行され得る。   7 and 8, the example in which the client 100 executes the decryption process has been described. However, there is no problem in the security of the communication path between the client 100 and the server 200, and the data being decrypted is stored in the server 200. If it can be kept secret from the administrator, the server 200 may execute the decryption process. That is, the decryption process can be executed by at least one of the client 100 and the server 200.

[暗号化システム300のハードウェア構成]
図10を参照して、暗号化システム300のハードウェア構成の一例について説明する。図10は、暗号化システム300の主要なハードウェア構成を示すブロック図である。図10に示されるように、暗号化システム300は、クライアント100と、サーバー200とを含む。クライアント100およびサーバー200は、互いにネットワーク接続されている。以下では、クライアント100のハードウェア構成と、サーバー200のハードウェア構成とについて順に説明する。
[Hardware Configuration of Encryption System 300]
An example of the hardware configuration of the encryption system 300 will be described with reference to FIG. FIG. 10 is a block diagram showing the main hardware configuration of the encryption system 300. As shown in FIG. 10, the encryption system 300 includes a client 100 and a server 200. The client 100 and the server 200 are connected to each other via a network. Hereinafter, the hardware configuration of the client 100 and the hardware configuration of the server 200 will be described in order.

(クライアント100のハードウェア構成)
図10に示されるように、クライアント100は、ROM(Read Only Memory)101と、CPU102と、RAM(Random Access Memory)103と、ネットワークI/F(インタフェース)104と、モニタ105と、記憶装置110とを含む。
(Hardware configuration of client 100)
As shown in FIG. 10, the client 100 includes a ROM (Read Only Memory) 101, a CPU 102, a RAM (Random Access Memory) 103, a network I / F (interface) 104, a monitor 105, and a storage device 110. Including.

ROM101は、クライアント100のオペレーティングシステム、クライアント100で実行される制御プログラム等を格納する。CPU102は、オペレーティングシステムやクライアント100の制御プログラム等の各種プログラムを実行することで、クライアント100の動作を制御する。RAM103は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。   The ROM 101 stores an operating system of the client 100, a control program executed by the client 100, and the like. The CPU 102 controls the operation of the client 100 by executing various programs such as an operating system and a control program for the client 100. The RAM 103 functions as a working memory and temporarily stores various data necessary for program execution.

ネットワークI/F104には、アンテナやNIC(Network Interface Card)等の通信機器が接続される。クライアント100は、当該通信機器を介して、他の通信端末との間でデータを送受信する。他の通信端末は、たとえば、サーバー200、その他の端末等を含む。クライアント100は、本実施の形態に従う各種の処理を実現するためのプログラム115を、ネットワークI/F104を介してダウンロードできるように構成されてもよい。   A communication device such as an antenna or a NIC (Network Interface Card) is connected to the network I / F 104. The client 100 transmits / receives data to / from other communication terminals via the communication device. Other communication terminals include, for example, the server 200 and other terminals. Client 100 may be configured to download program 115 for realizing various processes according to the present embodiment via network I / F 104.

モニタ105は、プログラム115を実行することで表示される各種画面を表示する。モニタ105は、タッチセンサ(図示しない)と組み合わされてタッチパネルとして実現されてもよい。タッチパネルは、暗号化対象のデータや復号化対象のデータを選択するための操作を受け付けたり、キーを更新するための操作を受け付けたりする。   The monitor 105 displays various screens displayed by executing the program 115. The monitor 105 may be realized as a touch panel in combination with a touch sensor (not shown). The touch panel accepts an operation for selecting data to be encrypted or data to be decrypted, or accepts an operation for updating a key.

記憶装置110は、たとえば、ハードディスクや外付けの記憶装置等の記憶媒体である。一例として、記憶装置110は、メインキー情報111と、本実施の形態に従うプログラム115とを含む。メインキー情報111は、たとえば、記憶装置110の所定の記憶領域であるメインキー記憶部に格納される。プログラム115は、データの暗号化を実現するための暗号化プログラム、暗号化されたデータの復号化を実現するための復号化プログラム、暗号化処理に用いられるキーの更新処理を実現するための更新プログラム等を含む。   The storage device 110 is a storage medium such as a hard disk or an external storage device. As an example, storage device 110 includes main key information 111 and program 115 according to the present embodiment. The main key information 111 is stored in, for example, a main key storage unit that is a predetermined storage area of the storage device 110. The program 115 is an encryption program for realizing data encryption, a decryption program for realizing decryption of encrypted data, and an update for realizing update processing of keys used for encryption processing. Includes programs.

なお、プログラム115は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う暗号化システム300の趣旨を逸脱するものではない。さらに、プログラム115によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスのような形態でクライアント100が構成されてもよい。さらに、プログラム115によって提供される機能の一部または全部は、クライアント100およびサーバー200が協働することで実現されてもよい。   The program 115 may be provided by being incorporated in a part of an arbitrary program, not as a single program. In this case, processing according to the present embodiment is realized in cooperation with an arbitrary program. Even such a program that does not include some modules does not depart from the spirit of the encryption system 300 according to the present embodiment. Furthermore, some or all of the functions provided by the program 115 may be realized by dedicated hardware. Furthermore, the client 100 may be configured in the form of a so-called cloud service in which at least one server realizes processing according to the present embodiment. Furthermore, part or all of the functions provided by the program 115 may be realized by the cooperation of the client 100 and the server 200.

(サーバー200のハードウェア構成)
次に、サーバー200のハードウェア構成について説明する。図10に示されるように、サーバー200は、ROM201と、CPU202と、RAM203と、ネットワークI/F204と、モニタ205と、記憶装置210とを含む。
(Hardware configuration of server 200)
Next, the hardware configuration of the server 200 will be described. As illustrated in FIG. 10, the server 200 includes a ROM 201, a CPU 202, a RAM 203, a network I / F 204, a monitor 205, and a storage device 210.

ROM201は、サーバー200のオペレーティングシステム、サーバー200で実行される制御プログラム等を格納する。CPU202は、オペレーティングシステムやサーバー200の制御プログラム等の各種プログラムを実行することで、サーバー200の動作を制御する。RAM203は、ワーキングメモリとして機能し、プログラムの実行に必要な各種データを一時的に格納する。   The ROM 201 stores an operating system of the server 200, a control program executed by the server 200, and the like. The CPU 202 controls the operation of the server 200 by executing various programs such as an operating system and a control program for the server 200. The RAM 203 functions as a working memory and temporarily stores various data necessary for program execution.

ネットワークI/F204には、アンテナやNIC等の通信機器が接続される。サーバー200は、当該通信機器を介して、他の通信端末との間でデータを送受信する。他の通信端末は、たとえば、クライアント100、その他の端末等を含む。サーバー200は、本実施の形態に従う各種の処理を実現するためのプログラム215を、ネットワークI/F204を介してダウンロードできるように構成されてもよい。   A communication device such as an antenna or a NIC is connected to the network I / F 204. The server 200 transmits / receives data to / from other communication terminals via the communication device. Other communication terminals include, for example, the client 100 and other terminals. Server 200 may be configured to download program 215 for realizing various processes according to the present embodiment via network I / F 204.

モニタ205は、プログラム215を実行することで表示される各種画面を表示する。モニタ205は、タッチセンサ(図示しない)と組み合わされてタッチパネルとして実現されてもよい。   The monitor 205 displays various screens that are displayed by executing the program 215. The monitor 205 may be implemented as a touch panel in combination with a touch sensor (not shown).

記憶装置210は、たとえば、ハードディスクや外付けの記憶装置等の記憶媒体である。一例として、記憶装置210は、メインキー履歴情報211と、サブキー情報212と、データベース213と、本実施の形態に従うプログラム215とを含む。メインキー履歴情報211は、たとえば、記憶装置210の所定の記憶領域である履歴情報記部に格納される。サブキー情報212は、たとえば、記憶装置210の所定の記憶領域であるサブキー記憶部に格納される。データベース213は、たとえば、記憶装置210の所定の記憶領域であるデータ記憶部に格納される。プログラム215は、データの暗号化を実現するための暗号化プログラム、暗号化されたデータの復号化を実現するための復号化プログラム、暗号化処理に用いられたキーの更新処理を実現するための更新プログラム等を含む。   The storage device 210 is a storage medium such as a hard disk or an external storage device. As an example, storage device 210 includes main key history information 211, sub key information 212, database 213, and program 215 according to the present embodiment. The main key history information 211 is stored, for example, in a history information storage section that is a predetermined storage area of the storage device 210. The sub key information 212 is stored in, for example, a sub key storage unit that is a predetermined storage area of the storage device 210. The database 213 is stored in, for example, a data storage unit that is a predetermined storage area of the storage device 210. The program 215 is an encryption program for realizing data encryption, a decryption program for realizing decryption of encrypted data, and a key update process for realizing encryption processing. Includes update programs.

なお、プログラム215は、単体のプログラムとしてではなく、任意のプログラムの一部に組み込まれて提供されてもよい。この場合、任意のプログラムと協働して本実施の形態に従う処理が実現される。このような一部のモジュールを含まないプログラムであっても、本実施の形態に従う暗号化システム300の趣旨を逸脱するものではない。さらに、プログラム215によって提供される機能の一部または全部は、専用のハードウェアによって実現されてもよい。さらに、少なくとも1つのサーバーが本実施の形態に従う処理を実現する、所謂クラウドサービスのような形態でサーバー200が構成されてもよい。さらに、プログラム215によって提供される機能の一部または全部は、クライアント100およびサーバー200が協働することで実現されてもよい。   The program 215 may be provided by being incorporated in a part of an arbitrary program, not as a single program. In this case, processing according to the present embodiment is realized in cooperation with an arbitrary program. Even such a program that does not include some modules does not depart from the spirit of the encryption system 300 according to the present embodiment. Furthermore, some or all of the functions provided by the program 215 may be realized by dedicated hardware. Furthermore, the server 200 may be configured in the form of a so-called cloud service in which at least one server realizes processing according to the present embodiment. Furthermore, some or all of the functions provided by the program 215 may be realized by the cooperation of the client 100 and the server 200.

[小括]
以上のようにして、本実施の形態に従う暗号化システム300は、キーの更新時において、更新前のサブキーで暗号化されている暗号化データを、更新後の新たなサブキーで暗号化されている状態に変換する。すなわち、暗号化システム300は、キーの更新時において、更新前のサブキーで暗号化データを復号化する必要はない。これにより、キーの更新処理の効率が改善される。また、暗号化データの復号時には、更新前のサブキーを用いる必要はないため、復号化処理の効率も改善される。
[Brief Summary]
As described above, encryption system 300 according to the present embodiment encrypts encrypted data that has been encrypted with the subkey before the update with the new subkey after the update when the key is updated. Convert to state. That is, the encryption system 300 does not need to decrypt the encrypted data with the subkey before the update when the key is updated. This improves the efficiency of the key update process. Further, since it is not necessary to use the pre-update subkey when decrypting the encrypted data, the efficiency of the decryption process is also improved.

さらに、キー更新時における暗号化データの変換前後でデータサイズは変わらない。そのため、キーの更新の度にデータサイズが増大していくことに起因して暗号化処理の効率が低下することを防止できる。   Furthermore, the data size does not change before and after conversion of encrypted data at the time of key update. For this reason, it is possible to prevent the efficiency of the encryption process from being reduced due to the increase in the data size every time the key is updated.

<第2の実施の形態>
[概要]
第2の実施の形態に従う暗号化システム300は、データベース213に含まれるデータのうち保管期間が過ぎているデータを削除するとともに、メインキー履歴情報211に含まれるメインキーのうち保管期間が過ぎているメインキーを削除する。これにより、暗号化システム300でのデータ量が抑制される。また、データ量が抑制されることで、暗号化処理および復号化処理にかかる時間が短縮される。
<Second Embodiment>
[Overview]
The encryption system 300 according to the second embodiment deletes the data whose storage period has expired from the data included in the database 213, and the storage period has expired from the main keys included in the main key history information 211. Delete the main key. Thereby, the data amount in the encryption system 300 is suppressed. Further, since the data amount is suppressed, the time required for the encryption process and the decryption process is shortened.

第2の実施の形態に従う暗号化システム300のハードウェア構成等その他の点については、第1の実施の形態に従う暗号化システム300と同じであるので、それらの説明は繰り返さない。   Since other points such as the hardware configuration of the encryption system 300 according to the second embodiment are the same as those of the encryption system 300 according to the first embodiment, description thereof will not be repeated.

[暗号化システム300の削除処理]
図11および図12を参照して、暗号化システム300の削除処理について説明する。図11は、キー削除時における暗号化システム300の機能構成の一例を示す図である。図12は、暗号化システム300の削除処理を表わすフローチャートである。図12の処理は、クライアント100のCPU102(図10参照)およびサーバー200のCPU202(図10参照)がプログラムを実行することにより実現される。他の局面において、処理の一部または全部が、回路素子その他のハードウェアによって実行されてもよい。
[Deleting process of encryption system 300]
The deletion process of the encryption system 300 will be described with reference to FIGS. 11 and 12. FIG. 11 is a diagram illustrating an example of a functional configuration of the encryption system 300 at the time of key deletion. FIG. 12 is a flowchart showing the deletion process of the encryption system 300. The processing in FIG. 12 is realized by the CPU 102 (see FIG. 10) of the client 100 and the CPU 202 (see FIG. 10) of the server 200 executing the program. In other aspects, some or all of the processing may be performed by circuit elements or other hardware.

図11に示されるように、暗号化システム300は、クライアント100とサーバー200とを含む。クライアント100は、削除処理を実現するための機能構成として、キー更新部152を含む。サーバー200は、削除処理を実現するための機能構成として、データ削除部252を含む。   As shown in FIG. 11, the encryption system 300 includes a client 100 and a server 200. The client 100 includes a key update unit 152 as a functional configuration for realizing the deletion process. The server 200 includes a data deletion unit 252 as a functional configuration for realizing the deletion process.

ステップS70において、データ削除部252は、現在時刻を取得し、データの保管期間を決定する。データの保管期間は、たとえば、現在時刻から所定時間前(たとえば、1週間前)までの期間である。当該所定時間は、設計時に予め設定されていてもよいし、クライアント100やサーバー200の管理者によって設定されてもよい。データ削除部252は、保管期間をキー更新部152に送信する。   In step S70, the data deletion unit 252 acquires the current time and determines the data storage period. The data storage period is, for example, a period from the current time to a predetermined time before (for example, one week before). The predetermined time may be set in advance at the time of design, or may be set by an administrator of the client 100 or the server 200. The data deletion unit 252 transmits the storage period to the key update unit 152.

ステップS72において、データ削除部252は、データベース213に含まれている暗号化データの内から保管期間が過ぎている暗号化データを削除する。すなわち、データ削除部252は、データベース213のデータに関連付けられている更新日時を参照し、当該更新日時が保管期間外であるデータを削除する。これにより、データ削除部252は、データベース213のデータサイズが増大することを防止できる。   In step S <b> 72, the data deletion unit 252 deletes the encrypted data whose storage period has expired from the encrypted data included in the database 213. That is, the data deletion unit 252 refers to the update date and time associated with the data in the database 213 and deletes data whose update date and time is outside the storage period. Thereby, the data deletion unit 252 can prevent the data size of the database 213 from increasing.

ステップS74において、キー更新部152は、メインキー履歴情報211をサーバー200から取得する。メインキー履歴情報211は、現在のメインキーA0で暗号化されているため、キー更新部152は、メインキーA0でメインキー履歴情報211を復号化する。キー更新部152は、復号化処理後のメインキー履歴情報211の中から保管期間が過ぎているメインキーを削除する。すなわち、キー更新部152は、メインキー履歴情報211のメインキーに関連付けられている生成微を参照し、当該生成微が保管期間外であるデータを削除する。これにより、キー更新部152は、メインキー履歴情報211のデータサイズが増大することを防止できる。キー更新部152は、削除処理後のメインキー履歴情報211を現在のメインキーA0で再び暗号化する。その後、キー更新部152は、メインキー履歴情報211をサーバー200に送信する。サーバー200は、受信したメインキー履歴情報211を格納する。   In step S 74, the key update unit 152 acquires the main key history information 211 from the server 200. Since the main key history information 211 is encrypted with the current main key A0, the key update unit 152 decrypts the main key history information 211 with the main key A0. The key update unit 152 deletes the main key whose storage period has passed from the main key history information 211 after the decryption process. That is, the key update unit 152 refers to the generation fine associated with the main key of the main key history information 211, and deletes data whose generation fine is outside the storage period. As a result, the key update unit 152 can prevent the data size of the main key history information 211 from increasing. The key update unit 152 encrypts the main key history information 211 after the deletion process again with the current main key A0. Thereafter, the key update unit 152 transmits the main key history information 211 to the server 200. The server 200 stores the received main key history information 211.

[小括]
以上のようにして、本実施の形態に従う暗号化システム300は、保管期間が過ぎているデータをデータベース213から削除するとともに、保管期間が過ぎているメインキーをメインキー履歴情報211から削除する。これにより、データベース213およびメインキー履歴情報211のデータサイズを一定に保つことができ、暗号化システム300のパフォーマンスを維持することができる。
[Brief Summary]
As described above, encryption system 300 according to the present embodiment deletes data whose storage period has passed from database 213 and deletes the main key whose storage period has passed from main key history information 211. Thereby, the data sizes of the database 213 and the main key history information 211 can be kept constant, and the performance of the encryption system 300 can be maintained.

今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内での全ての変更が含まれることが意図される。   The embodiment disclosed this time should be considered as illustrative in all points and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the description above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

20X 更新部、100,100X クライアント、101,201 ROM、102,202 CPU、103,203 RAM、104,204 ネットワークI/F、105,205 モニタ、110,210 記憶装置、111 メインキー情報、115,215 プログラム、130,134 データ暗号化部、142,144 キー復号化部、140,146 データ復号化部、150 キー生成部、152 キー更新部、154 算出部、200,200X サーバー、211 メインキー履歴情報、212 サブキー情報、213 データベース、250 データ更新部、252 データ削除部、300,300X 暗号化システム。   20X update unit, 100, 100X client, 101, 201 ROM, 102, 202 CPU, 103, 203 RAM, 104, 204 network I / F, 105, 205 monitor, 110, 210 storage device, 111 main key information, 115, 215 program, 130, 134 data encryption unit, 142, 144 key decryption unit, 140, 146 data decryption unit, 150 key generation unit, 152 key update unit, 154 calculation unit, 200, 200X server, 211 main key history Information, 212 subkey information, 213 database, 250 data update unit, 252 data deletion unit, 300,300X encryption system.

Claims (13)

データの暗号化システムであって、
第1キーを用いた第1暗号化方式で前記データを暗号化し、第1暗号化データを生成するための第1暗号化部と、
第2キーを用いた第2暗号化方式で前記第1暗号化データを暗号化し、第2暗号化データを生成するための第2暗号化部とを備え、前記第2暗号化方式は、データのシフト量を規定している前記第2キーに基づいてシフト演算を行う暗号化方式、または、データの反転位置を規定している前記第2キーに基づいてXOR演算を行う暗号化方式であり
生成された前記第2暗号化データを格納するためのデータ記憶部と、
現在の前記第1キーおよび現在の前記第2キーの両方の更新指示を受け付けたことに基づいて、現在の前記第1キーを新たな前記第1キーに更新するとともに、現在の前記第2キーを新たな前記第2キーに更新するためのキー更新部と、
現在の前記第2キーの更新時に、現在の前記第2キーで暗号化されている前記第2暗号化データを、新たな前記第2キーで暗号化されている状態に変換するデータ更新部と、
現在の前記第2キーと新たな前記第2キーとの間の差分を算出するための算出部とを備え、
前記データ更新部は、前記差分を用いて、現在の前記第2キーで暗号化されている前記第2暗号化データを、現在の前記第2キーで復号化せずに、新たな前記第2キーで暗号化されている状態に変換し、
前記キー更新部による更新後の前記第2キーで、前記データ更新部による変換後の前記第2暗号化データを前記第1暗号化データに復号化するための第1復号化部と、
前記キー更新部による更新前の前記第1キーで、前記第1復号化部による復号化で得られた前記第1暗号化データを前記データに復号化するための第2復号化部とを備える、暗号化システム。
A data encryption system,
A first encryption unit for encrypting the data with a first encryption method using a first key and generating first encrypted data;
A second encryption unit for encrypting the first encrypted data by a second encryption method using a second key and generating second encrypted data , wherein the second encryption method includes data An encryption method that performs a shift operation based on the second key that defines the shift amount of the data, or an encryption method that performs an XOR operation based on the second key that defines the data inversion position ,
A data storage unit for storing the generated second encrypted data;
The current first key is updated to a new first key on the basis of receiving update instructions for both the current first key and the current second key, and the current second key is updated. A key updating unit for updating the key to a new second key;
A data updating unit that converts the second encrypted data encrypted with the current second key into a state encrypted with the new second key when the current second key is updated; ,
A calculation unit for calculating a difference between the current second key and the new second key;
The data updating unit uses the difference to create a new second data without decrypting the second encrypted data encrypted with the current second key with the current second key. Converted to a state encrypted with the key ,
A first decryption unit for decrypting the second encrypted data converted by the data update unit into the first encrypted data with the second key updated by the key update unit;
A second decryption unit for decrypting the first encrypted data obtained by decryption by the first decryption unit with the first key before the update by the key update unit. , Encryption system.
前記データ更新部は、前記第2暗号化データの変換後に、前記差分を削除する、請求項1に記載の暗号化システム。   The encryption system according to claim 1, wherein the data update unit deletes the difference after the conversion of the second encrypted data. 変換処理前における前記第2暗号化データのデータサイズと、変換処理後における前記第2暗号化データのデータサイズとは等しい、請求項1または2に記載の暗号化システム。   The encryption system according to claim 1 or 2, wherein a data size of the second encrypted data before the conversion process is equal to a data size of the second encrypted data after the conversion process. 前記データ記憶部は、前記第2暗号化データと当該第2暗号化データの更新日時とを互いに関連付けて格納し、
前記暗号化システムは、さらに、
過去の前記第1キーと当該第1キーの生成日時とを現在の第1キーで暗号化した上で履歴情報として格納する履歴情報記憶部と、
現在の前記第2キーを現在の前記第1キーで暗号化した上で第2キー情報として格納するための第2キー記憶部とを備える、請求項1〜3のいずれか1項に記載の暗号化システム。
The data storage unit stores the second encrypted data and the update date and time of the second encrypted data in association with each other ,
The encryption system further includes:
A history information storage unit that stores the past first key and the generation date and time of the first key as history information after encrypting with the current first key;
The second key storage unit for encrypting the current second key with the current first key and storing the second key information as the second key information . Encryption system.
前記キー更新部は、
現在の前記第1キーの更新指示を受け付けたことに基づいて、前記履歴情報を現在の前記第1キーで復号化し、
現在の前記第1キーを過去の第1キーとして当該第1キーと当該第1キーの生成日時とを前記履歴情報に追加し、
当該履歴情報を新たな前記第1キーで暗号化する、請求項4に記載の暗号化システム。
The key update unit
Based on receiving the current update instruction for the first key, the history information is decrypted with the current first key;
Adding the first key and the date and time of generation of the first key to the history information, using the current first key as a past first key;
The encryption system according to claim 4, wherein the history information is encrypted with the new first key.
前記キー更新部は、
現在の前記第2キーの更新指示を受け付けたことに基づいて、前記第2キー情報を現在の前記第1キーで復号化し、
復号化処理後の前記第2キー情報に含まれる現在の前記第2キーを新たな前記第2キーで置換し、
置換処理後の前記第2キー情報を新たな前記第1キーで暗号化する、請求項4または5に記載の暗号化システム。
The key update unit
Based on receiving the current second key update instruction, the second key information is decrypted with the current first key;
Replacing the current second key included in the second key information after decryption with the new second key;
The encryption system according to claim 4 or 5, wherein the second key information after replacement processing is encrypted with the new first key.
前記暗号化システムは、前記第2暗号化データの更新日時が保管期間を過ぎたことに基づいて、前記第2暗号化データを削除するための削除部をさらに備え、
前記キー更新部は、
前記第2暗号化データが削除されたことに基づいて、前記履歴情報を現在の前記第1キーで復号化し、
復号化処理後の前記履歴情報に含まれる過去の第1キーの中から前記保管期間が過ぎている第1キーを削除し、
削除処理後の前記履歴情報を現在の前記第1キーで再び暗号化する、請求項4〜6のいずれか1項に記載の暗号化システム。
The encryption system further includes a deletion unit for deleting the second encrypted data based on the update date and time of the second encrypted data having passed the storage period,
The key update unit
Based on the deletion of the second encrypted data, the history information is decrypted with the current first key;
Deleting a first key whose storage period has expired from past first keys included in the history information after decryption processing;
The encryption system according to any one of claims 4 to 6, wherein the history information after the deletion process is encrypted again with the current first key.
前記第2復号化部は、生成日時が前記第2暗号化データの更新日時よりも前である最新の第1キーで前記第1暗号化データを前記データに復号化する、請求項4〜7のいずれか1項に記載の暗号化システム。 The second decryption unit decrypts the first encrypted data into the data with the latest first key whose generation date and time is earlier than the update date and time of the second encrypted data. The encryption system according to any one of the above. 前記暗号化システムは、互いにネットワークで接続されているクライアントとサーバーとを備え、
前記クライアントは、
現在の前記第1キーを格納するための第1キー記憶部を含み、
前記サーバーは、
前記第2キー記憶部と、
前記履歴情報記憶部と、
前記データ記憶部とを含む、請求項4〜8のいずれか1項に記載の暗号化システム。
The encryption system includes a client and a server connected to each other via a network,
The client
A first key storage unit for storing the current first key;
The server
The second key storage unit;
The history information storage unit;
The encryption system according to any one of claims 4 to 8, comprising the data storage unit.
前記暗号化システムは、互いにネットワークで接続されているクライアントとサーバーとを備え、
前記クライアントは、
現在の前記第1キーを格納するための第1キー記憶部と、
前記第2キー記憶部と、
前記履歴情報記憶部とを含み、
前記サーバーは、
前記データ記憶部を含む、請求項4〜8のいずれか1項に記載の暗号化システム。
The encryption system includes a client and a server connected to each other via a network,
The client
A first key storage unit for storing the current first key;
The second key storage unit;
Including the history information storage unit,
The server
The encryption system according to claim 4, including the data storage unit.
前記データから前記第2暗号化データへの暗号化処理および前記第2暗号化データから前記データへの復号化処理は、前記クライアントおよび前記サーバーの少なくとも一方によって実行される、請求項9または10に記載の暗号化システム。   The encryption process from the data to the second encrypted data and the decryption process from the second encrypted data to the data are performed by at least one of the client and the server. The described encryption system. データの暗号化システムにおけるコンピュータによって実行されるデータの暗号化時に用いられるキーの更新方法であって、
前記コンピュータが、第1キーを用いた第1暗号化方式で前記データを暗号化し、第1暗号化データを生成するステップと、
前記コンピュータが、第2キーを用いた第2暗号化方式で前記第1暗号化データを暗号化し、第2暗号化データを生成するステップとを備え、前記第2暗号化方式は、データのシフト量を規定している前記第2キーに基づいてシフト演算を行う暗号化方式、または、データの反転位置を規定している前記第2キーに基づいてXOR演算を行う暗号化方式であり
前記コンピュータが、生成された前記第2暗号化データを前記暗号化システムの記憶装置に格納するステップと、
前記コンピュータが、現在の前記第1キーおよび現在の前記第2キーの両方の更新指示を受け付けたことに基づいて、現在の前記第1キーを新たな前記第1キーに更新するとともに、現在の前記第2キーを新たな前記第2キーに更新するステップと、
前記コンピュータが、現在の前記第2キーの更新時に、現在の前記第2キーで暗号化されている前記第2暗号化データを、新たな前記第2キーで暗号化されている状態に変換するステップと、
前記コンピュータが、現在の前記第2キーと新たな前記第2キーとの間の差分を算出するステップと、
を備え、
前記変換するステップでは、前記コンピュータが前記差分を用いたビットの操作を実行することで、現在の前記第2キーで暗号化されている前記第2暗号化データを、現在の前記第2キーで復号化せずに、新たな前記第2キーで暗号化されている状態に変換する処理を実行し、
前記更新するステップでの更新後の前記第2キーで、前記変換するステップでの変換後の前記第2暗号化データを前記第1暗号化データに復号化するステップと、
前記更新するステップでの更新前の前記第1キーで、前記復号化するステップで得られた前記第1暗号化データを前記データに復号化するステップとを備える、更新方法。
A method of updating a key used when encrypting data executed by a computer in a data encryption system,
The computer encrypting the data with a first encryption method using a first key to generate first encrypted data;
The computer encrypting the first encrypted data by a second encryption method using a second key to generate second encrypted data , wherein the second encryption method includes a data shift An encryption method that performs a shift operation based on the second key that defines a quantity, or an encryption method that performs an XOR operation based on the second key that defines a data inversion position ;
The computer storing the generated second encrypted data in a storage device of the encryption system;
The computer updates the current first key to the new first key on the basis of accepting an update instruction for both the current first key and the current second key, and Updating the second key to a new second key;
When the computer updates the second key, the computer converts the second encrypted data encrypted with the current second key into a state encrypted with the new second key. Steps,
The computer calculating a difference between the current second key and the new second key;
With
In the converting step, the computer executes the bit operation using the difference, so that the second encrypted data encrypted with the current second key is converted with the current second key. Performing a process of converting to a state encrypted with the new second key without decryption ;
Decrypting the second encrypted data after the conversion in the converting step into the first encrypted data with the second key after the updating in the updating step;
An update method comprising: decrypting the first encrypted data obtained in the decrypting step into the data with the first key before the updating in the updating step .
データの暗号化システムにおけるコンピュータによって実行可能で、データの暗号化時に用いられるキーの更新プログラムであって、
前記コンピュータに、
第1キーを用いた第1暗号化方式で前記データを暗号化し、第1暗号化データを生成するステップと、
第2キーを用いた第2暗号化方式で前記第1暗号化データを暗号化し、第2暗号化データを生成するステップとを実行させ、前記第2暗号化方式は、データのシフト量を規定している前記第2キーに基づいてシフト演算を行う暗号化方式、または、データの反転位置を規定している前記第2キーに基づいてXOR演算を行う暗号化方式であり
前記コンピュータに、さらに、
生成された前記第2暗号化データを前記コンピュータの記憶装置に格納するステップと、
現在の前記第1キーおよび現在の前記第2キーの更新指示を受け付けたことに基づいて、現在の前記第1キーを新たな前記第1キーに更新するとともに、現在の前記第2キーを新たな前記第2キーに更新するステップと、
現在の前記第2キーの更新時に、現在の前記第2キーで暗号化されている前記第2暗号化データを、新たな前記第2キーで暗号化されている状態に変換するステップと、
現在の前記第2キーと新たな前記第2キーとの間の差分を算出するステップと、
を実行させ、
前記変換するステップでは、前記差分を用いたビットの操作が実行されることで、現在の前記第2キーで暗号化されている前記第2暗号化データを、現在の前記第2キーで復号化せずに、新たな前記第2キーで暗号化されている状態に変換する処理を実行させ
前記コンピュータに、さらに、
前記更新するステップでの更新後の前記第2キーで、前記変換するステップでの変換後の前記第2暗号化データを前記第1暗号化データに復号化するステップと、
前記更新するステップでの更新前の前記第1キーで、前記復号化するステップで得られた前記第1暗号化データを前記データに復号化するステップとを実行させる、更新プログラム。
A key update program that can be executed by a computer in a data encryption system and is used when data is encrypted,
In the computer,
Encrypting the data with a first encryption scheme using a first key to generate first encrypted data;
Encrypting the first encrypted data by a second encryption method using a second key and generating a second encrypted data , wherein the second encryption method defines a data shift amount An encryption method for performing a shift operation based on the second key, or an encryption method for performing an XOR operation based on the second key that defines a data inversion position ,
In addition to the computer,
Storing the generated second encrypted data in a storage device of the computer;
Based on accepting an instruction to update the current first key and the current second key, the current first key is updated to the new first key, and the current second key is updated. Updating to the second key;
When updating the current second key, converting the second encrypted data encrypted with the current second key into a state encrypted with the new second key;
Calculating a difference between the current second key and the new second key;
And execute
In the converting step, the second encrypted data encrypted with the current second key is decrypted with the current second key by performing a bit operation using the difference. Without performing the process of converting to a state encrypted with the new second key ,
In addition to the computer,
Decrypting the second encrypted data after the conversion in the converting step into the first encrypted data with the second key after the updating in the updating step;
An update program for executing the step of decrypting the first encrypted data obtained in the decrypting step with the first key before the updating in the updating step .
JP2015119406A 2015-06-12 2015-06-12 ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM Active JP6576699B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015119406A JP6576699B2 (en) 2015-06-12 2015-06-12 ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM
US15/177,514 US10243736B2 (en) 2015-06-12 2016-06-09 Cryptographic system, updating method, and non-transitory storage medium encoded with computer readable program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015119406A JP6576699B2 (en) 2015-06-12 2015-06-12 ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM

Publications (2)

Publication Number Publication Date
JP2017005587A JP2017005587A (en) 2017-01-05
JP6576699B2 true JP6576699B2 (en) 2019-09-18

Family

ID=57516176

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015119406A Active JP6576699B2 (en) 2015-06-12 2015-06-12 ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM

Country Status (2)

Country Link
US (1) US10243736B2 (en)
JP (1) JP6576699B2 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106878009B (en) * 2017-02-21 2021-04-09 蔚来(安徽)控股有限公司 Key updating method and system
JP6939897B2 (en) * 2017-11-07 2021-09-22 日本電信電話株式会社 Communication terminal, program
US11017127B2 (en) * 2018-01-31 2021-05-25 Seagate Technology Llc Storage compute appliance with internal data encryption
US11425559B1 (en) * 2018-05-15 2022-08-23 Know 2Solutions, LLC Data transmission network device
GB2574458A (en) * 2018-06-07 2019-12-11 Gbr14 Ltd Methods and Systems For Secure Data Transmission
CN109871373B (en) * 2019-01-31 2021-06-08 北京明略软件系统有限公司 Data storage method and device and computer readable storage medium
JP7215245B2 (en) * 2019-03-08 2023-01-31 富士電機株式会社 Information processing device, information processing method and program
CN112564901B (en) * 2020-12-08 2023-08-25 三维通信股份有限公司 Method and system for generating secret key, storage medium and electronic device
US12019778B1 (en) * 2023-11-22 2024-06-25 Verkada Inc. Systems and methods to perform end to end encryption

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1020779A (en) * 1996-07-08 1998-01-23 Hitachi Inf Syst Ltd Key changing method in open key cipher system
JP2002149608A (en) * 2000-11-09 2002-05-24 Techno Brain:Kk System/method for managing secrecy by deciphering and computer-readable recording medium with program for making computer perform the method recorded thereon
SE522794C2 (en) * 2001-02-23 2004-03-09 Ericsson Telefon Ab L M Device and method for communicating electronic data via a network infrastructure having a unicast mechanism and multicast mechanism
JP2003152703A (en) * 2001-11-12 2003-05-23 Victor Co Of Japan Ltd Encryption device, encryption method, decryption device, decryption method, encryption decryption device and encryption decryption method
JP3904432B2 (en) * 2001-11-16 2007-04-11 株式会社ルネサステクノロジ Information processing device
JP2005135003A (en) * 2003-10-28 2005-05-26 Canon Inc Document management system
US8045714B2 (en) * 2005-02-07 2011-10-25 Microsoft Corporation Systems and methods for managing multiple keys for file encryption and decryption
US7801871B2 (en) * 2005-08-09 2010-09-21 Nexsan Technologies Canada Inc. Data archiving system
JP4629602B2 (en) * 2006-03-24 2011-02-09 日本電信電話株式会社 Public key encryption communication system, public key encryption communication method, client terminal, and client program
US7978849B2 (en) * 2007-11-19 2011-07-12 Kabushiki Kaisha Toshiba Image forming apparatus, and control method thereof
JP2014017763A (en) 2012-07-11 2014-01-30 Nec Corp Encryption update system, encryption update request device, encryption update device, decryption device, encryption update method, and computer program
JP6033741B2 (en) * 2013-06-14 2016-11-30 株式会社日立製作所 Encryption key update system and method
JP6330528B2 (en) * 2014-07-04 2018-05-30 富士通株式会社 Data division control program, data division control method, and data division control device

Also Published As

Publication number Publication date
JP2017005587A (en) 2017-01-05
US20160365976A1 (en) 2016-12-15
US10243736B2 (en) 2019-03-26

Similar Documents

Publication Publication Date Title
JP6576699B2 (en) ENCRYPTION SYSTEM, UPDATE METHOD, AND UPDATE PROGRAM
US7822206B2 (en) Systems and methods for management and auto-generation of encryption keys
US10313119B2 (en) Data management device, system, re-encryption device, data sharing device, and storage medium
US10050777B2 (en) Method of updating a file tree stored on a storage server
CN109922084B (en) Key management method and device and electronic equipment
US10735186B2 (en) Revocable stream ciphers for upgrading encryption in a shared resource environment
EP2693358A1 (en) Secret distribution system, device, and memory medium
JP6363032B2 (en) Key change direction control system and key change direction control method
JPWO2010041442A1 (en) Information processing apparatus, method, program, and integrated circuit
JP6341599B2 (en) Encryption data update system and encryption data update method
US11128452B2 (en) Encrypted data sharing with a hierarchical key structure
US10116442B2 (en) Data storage apparatus, data updating system, data processing method, and computer readable medium
US20130227278A1 (en) Generation of relative prime numbers for use in cryptography
JP2014175970A (en) Information distribution system, information processing device, and program
JP5732429B2 (en) Secret sharing system, data sharing device, data restoration device, secret sharing method, and program
JP2006311383A (en) Data managing method, data management system and data managing device
JP5964460B2 (en) Data encryption storage system
JP6266130B2 (en) Cryptographic system, master key update device, and master key update program
JP5784662B2 (en) ENCRYPTED DATA OPERATION SYSTEM, DEVICE, AND PROGRAM
Kapusta et al. Enhancing data protection in a distributed storage environment using structure-wise fragmentation and dispersal of encrypted data
CN111224921A (en) Secure transmission method and secure transmission system
JPWO2016088250A1 (en) Decryption condition adding apparatus and encryption system
JP3933999B2 (en) Digital certificate issuing system and system program thereof
CN107769915B (en) Data encryption and decryption system and method with fine-grained user control
JP2014017763A (en) Encryption update system, encryption update request device, encryption update device, decryption device, encryption update method, and computer program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170613

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170809

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180423

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180501

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20180713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190821

R150 Certificate of patent or registration of utility model

Ref document number: 6576699

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150