JPWO2014109059A1 - データの暗号化記憶システム - Google Patents
データの暗号化記憶システム Download PDFInfo
- Publication number
- JPWO2014109059A1 JPWO2014109059A1 JP2014556312A JP2014556312A JPWO2014109059A1 JP WO2014109059 A1 JPWO2014109059 A1 JP WO2014109059A1 JP 2014556312 A JP2014556312 A JP 2014556312A JP 2014556312 A JP2014556312 A JP 2014556312A JP WO2014109059 A1 JPWO2014109059 A1 JP WO2014109059A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- encryption
- storage
- storage device
- storage system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 21
- 230000002441 reversible effect Effects 0.000 claims abstract description 18
- 238000013019 agitation Methods 0.000 claims description 35
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 238000013523 data management Methods 0.000 claims description 17
- 238000003756 stirring Methods 0.000 claims description 17
- 230000014759 maintenance of location Effects 0.000 claims description 11
- 238000007726 management method Methods 0.000 claims description 10
- 238000002156 mixing Methods 0.000 claims description 8
- 238000013144 data compression Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 abstract description 6
- 238000003672 processing method Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 239000012634 fragment Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
従来技術では、再暗号化処理の委託を可能としているが、再暗号化処理のコストが大きく、また、委託先が再暗号化を正しく実行したことを検証することができない。サービサ(もしくはデータの所有者)が暗号化処理を実行する方法であって、暗号化の処理コストが小さい再暗号化処理方法を提供する。また、外部ストレージがデータを正しく保持していることを確認する方法、さらに、データに対する電子署名を更新する方法を提供する。本発明の暗号化記憶方法は、All-or-Nothing Transform (AONT)と呼ばれる可逆変換と部分暗号化処理を組み合わせてデータ全体の暗号化を行い、暗号文を、部分暗号化を施した部分とそれ以外の部分に分割し、それぞれを異なる記憶装置に保存し、 秘密鍵と、部分暗号化処理した部分のみを用いて再暗号化処理を行う。
Description
本発明は、データの暗号化処理技術とその応用技術に関する。
IT技術の普及が進むと共に、公文書など重要な文書データについても電子的に保存するようになっている。このような重要データは、長期間の保存が必要であり、最長で30年程度の保存が義務付けられている場合もある。これらの重要文書データは今後増加の一途をたどり、ストレージを大量に消費するため、データセンタなどクラウドを利用して保存していくことになると考えられる。これらのデータは概ね暗号化された上で保管されているが、アルゴリズム危殆化や鍵漏えいの観点から、秘密鍵は定期的にと変える必要がある。たとえば、NIST (National Institute of Standards and Technology)は少なくとも5年に1度、秘密鍵を更新することを要求している。しかし、データの再暗号化はデータのread/writeが大量に発生し、ストレージの性能にも影響を与える作業である。
また、クラウドサービスでは、外部ストレージを利用する場合が多々あり、個々のストレージを完全に管理することが困難であり、鍵更新を含めたデータ管理を厳密に行うようなデータセンタやストレージは利用コストがかさむことが予想される。その一方で、鍵管理をクラウドのサービサが集約して行う場合には、再暗号化に際して、外部ストレージからネットワークを介してデータを取り出し、再暗号化を施し、さらにネットワークを介して外部ストレージに再委託するという一連の作業が必要である。
データの再暗号化については、たとえば、以下の非特許文献1で取り上げられている。非特許文献1は、ユーザのアクセス権失効させるときに、対象データを新しい鍵で暗号化する方法を提案している。
高山 一樹,外1名,「平文を生成しない分散ストレージ上での再暗号化手法」 ,日本データベース学会論文誌 ,日本データベース学会,2008年12月,第7巻、第3号
非特許文献1では、再暗号化処理の委託を実現しているが、再暗号化処理のコスト自体を削減しているわけではない。また、外部ストレージが再暗号化を正しく実行したことを検証することができない。したがって、計算および通信コストが小さい再暗号化処理技術が望まれている。
本発明は上記のような課題に鑑みてなされたもので、サービサ(もしくはデータの所有者)が暗号化処理を実行する方式であって、暗号化の処理コストが小さい再暗号化処理方法またはシステムを提供する。
本発明は、また、上記システムにおいて、外部ストレージがデータを正しく保持していることを確認する方法と、データに対する電子署名を更新する方法を提供する。
本発明は以下の2点を特徴とする。
1.出力すべてが揃わないと入力を復元できないような変換であるAll-or-Nothing Transform (AONT)と呼ばれる可逆変換と部分暗号化処理を組み合わせてデータ全体の暗号化を行い、暗号文を、部分暗号化を施した部分とそれ以外の部分に分割し、それぞれを異なる記憶装置に保存する。
2. 秘密鍵と、部分暗号化処理した部分のみを用いて再暗号化処理を行う。
具体的には、データを暗号化して保管する本発明の暗号化記憶システムは、データを入出力するインターフェースI/Fと、暗号化鍵生成装置と、暗号処理装置と、データ管理装置と、前記暗号化鍵生成装置で生成された秘密鍵を記憶する第1の記憶装置と、前記暗号処理装置で暗号化されたデータを記憶する第2及び第3の記憶装置と、上記装置を制御する制御装置とを備え、
前記暗号処理装置は、セレクタと、前記暗号処理装置に入力されたデータを受け取り、入力ビットのすべての値が出力ビットのそれぞれの値に影響を与える変換を行うAll-or-Nothing変換(AONT)装置と、前記AONT装置の出力を分割し、第1の保存データと第1の中間データを出力するデータ分割装置とを備え、
前記暗号化記憶システムは前記第1の保存データを前記第3の記憶装置に記憶し、
さらに、前記暗号処理装置は、前記暗号化鍵生成装置で生成された秘密鍵をパラメータとし、前記セレクタの出力を入力としてデータ変換を行い、第2の保存データを出力するパラメータ付きデータ攪拌装置を備え、
前記暗号化記憶システムは前記第2の保存データを前記第2の記憶装置に記憶し、
前記暗号処理装置は、さらに、前記第1の記憶装置に記憶された秘密鍵をパラメータとし、前記第2の記憶装置に記憶された前記第2の保存データを入力として前記パラメータ付きデータ攪拌装置の逆変換を行い、第2の中間データを出力するパラメータ付きデータ逆攪拌装置と、前記第2の中間データと、前記第3の記憶装置に記憶された前記第1の保存データを結合するデータ結合装置と、前記データ結合装置で結合されたデータを受け取り、前記AONT装置の逆変換を行い、暗号処理装置の出力を生成するAONT逆変換装置とを備え、
前記セレクタは、前記データ分割装置と前記パラメータ付きデータ逆攪拌装置の出力を前記制御装置の指示に従って切り替える。
前記暗号処理装置は、セレクタと、前記暗号処理装置に入力されたデータを受け取り、入力ビットのすべての値が出力ビットのそれぞれの値に影響を与える変換を行うAll-or-Nothing変換(AONT)装置と、前記AONT装置の出力を分割し、第1の保存データと第1の中間データを出力するデータ分割装置とを備え、
前記暗号化記憶システムは前記第1の保存データを前記第3の記憶装置に記憶し、
さらに、前記暗号処理装置は、前記暗号化鍵生成装置で生成された秘密鍵をパラメータとし、前記セレクタの出力を入力としてデータ変換を行い、第2の保存データを出力するパラメータ付きデータ攪拌装置を備え、
前記暗号化記憶システムは前記第2の保存データを前記第2の記憶装置に記憶し、
前記暗号処理装置は、さらに、前記第1の記憶装置に記憶された秘密鍵をパラメータとし、前記第2の記憶装置に記憶された前記第2の保存データを入力として前記パラメータ付きデータ攪拌装置の逆変換を行い、第2の中間データを出力するパラメータ付きデータ逆攪拌装置と、前記第2の中間データと、前記第3の記憶装置に記憶された前記第1の保存データを結合するデータ結合装置と、前記データ結合装置で結合されたデータを受け取り、前記AONT装置の逆変換を行い、暗号処理装置の出力を生成するAONT逆変換装置とを備え、
前記セレクタは、前記データ分割装置と前記パラメータ付きデータ逆攪拌装置の出力を前記制御装置の指示に従って切り替える。
本発明によれば、暗号化されたデータの一部の保管を外部ストレージに委託するシステムで、外部ストレージに保管した大量のデータに影響を与えることなく、暗号化データの鍵を更新する(再暗号化する)暗号化処理方法を提供できる。
まず始めに用語を説明する。
・All-or-Nothing Transform (AONT):出力すべてが揃わないと、入力を復元できないような変換。
・ハッシュ関数(hash function):任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数。
・疑似乱数(pseudorandom number):有限、もしくは無限のビット列であり、どのような方法でも真性乱数と区別することができないもの。
・真性乱数:無限ビット列であり、任意の連続する部分列が与えられても、次の1ビットを推定することができないような列のこと。
・共通鍵暗号(symmetric-key encryption):暗号化処理と復号処理に同じ鍵を用いる暗号化技術。
・鍵:暗号化処理の際に用いる秘匿パラメータ。
・平文(plaintext):暗号化処理前、または復号処理後のデータであり、ディジタル化されたマルチメディアデータも含まれる。
・暗号文(ciphertext):暗号化処理されたデータ。
・ブロック暗号:入力データを一定長のデータごとに区切り(区切られた一定長データをブロックという)、鍵と共に攪拌処理を行うことで暗号化処理(encryption)または復号処理(decryption)を行う暗号技術。
・ストリーム暗号:疑似乱数生成装置に乱数列を決定する情報を与えて乱数列を生成し、この乱数列と平文を攪拌することで暗号文を生成する暗号技術。
・All-or-Nothing Transform (AONT):出力すべてが揃わないと、入力を復元できないような変換。
・ハッシュ関数(hash function):任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数。
・疑似乱数(pseudorandom number):有限、もしくは無限のビット列であり、どのような方法でも真性乱数と区別することができないもの。
・真性乱数:無限ビット列であり、任意の連続する部分列が与えられても、次の1ビットを推定することができないような列のこと。
・共通鍵暗号(symmetric-key encryption):暗号化処理と復号処理に同じ鍵を用いる暗号化技術。
・鍵:暗号化処理の際に用いる秘匿パラメータ。
・平文(plaintext):暗号化処理前、または復号処理後のデータであり、ディジタル化されたマルチメディアデータも含まれる。
・暗号文(ciphertext):暗号化処理されたデータ。
・ブロック暗号:入力データを一定長のデータごとに区切り(区切られた一定長データをブロックという)、鍵と共に攪拌処理を行うことで暗号化処理(encryption)または復号処理(decryption)を行う暗号技術。
・ストリーム暗号:疑似乱数生成装置に乱数列を決定する情報を与えて乱数列を生成し、この乱数列と平文を攪拌することで暗号文を生成する暗号技術。
以下、本発明の実施形態を、図を用いて説明する。
(システム構成)
図1は本実施形態における暗号化処理装置を備えたデータセンタ(以下、暗号化記憶システム)の機能構成を表す図である。以下、図1に従って暗号化記憶システム(100)の構成を説明する。
図1は本実施形態における暗号化処理装置を備えたデータセンタ(以下、暗号化記憶システム)の機能構成を表す図である。以下、図1に従って暗号化記憶システム(100)の構成を説明する。
本システムは、3つの記憶装置(記憶装置1(101)、記憶装置2(102)、記憶装置3(103))、暗号処理装置(104)、暗号化鍵生成装置(105)、データ管理装置(106)、外部とデータを送受信するインターフェース(I/F)(107)と、これらの装置を制御する制御装置(108)で構成される。また、図1に示す暗号化記憶システムは、CPU、メモリ、記憶装置、及び入出力端末を有する計算機で実現できる。
一般に、記憶装置1(101)は秘密鍵を保存するための記憶装置であり、秘密鍵はセキュアな領域に保存することが望ましい。記憶装置の各容量は特段限定されないが、以下では、記憶装置1(101)、2(102)に比べると、記憶装置3は大規模な記憶容量を持っているものとする。記憶装置2(102)、及び記憶装置3(103)は暗号文を格納するための記憶領域を提供する。暗号化鍵生成装置(105)は、乱数生成器であり、制御装置(108)の要求に応じて定められた長さのランダムなビット列(秘密鍵)を生成する。制御装置(108)に入力される信号(109)は、データ書き込み(暗号化)要求、データ読み出し(復号)要求、及びデータ再暗号化(鍵更新)要求の3つである。
(データの対応付け)
データ管理装置(106)は、データのヘッダ情報や、3つの記憶装置に保存されているデータの対応付けを管理するデータベースであり、制御装置(108)の要求に応じて、それぞれの記憶装置から該当するデータを読み出し、暗号処理装置(104)に渡す。また、データ管理装置(106)は、暗号処理装置(104)から受け取ったデータをそれぞれの記憶装置に渡し、データベースにその対応を記憶する。
データ管理装置(106)は、データのヘッダ情報や、3つの記憶装置に保存されているデータの対応付けを管理するデータベースであり、制御装置(108)の要求に応じて、それぞれの記憶装置から該当するデータを読み出し、暗号処理装置(104)に渡す。また、データ管理装置(106)は、暗号処理装置(104)から受け取ったデータをそれぞれの記憶装置に渡し、データベースにその対応を記憶する。
図2は、データ管理装置(106)のデータベースで管理されているテーブル(201)を例示したものである。データベースで管理されるテーブル(201)には、データのID(201a)、データ所有者のID(201b)、データを検索するための検索キー(201c)など一般的な項目の他、長期保存を目的として保存期間(201d)と、それぞれの記憶装置について、データを書き込んだ領域のアドレス(201e、201f、201g)が項目として含まれる。
なお、図1では、データ管理装置(106)が中心となってデータの読み書きを行っているが、データの読み書きは暗号処理装置(104)が直接行い、その結果をデータ管理装置(106)に伝えて管理してもよい。
(システムの概要)
図3は、図1の暗号化記憶システム(100)を、それぞれが計算機を有する2つのデータセンタで構成したシステムの概要図である。
図3は、図1の暗号化記憶システム(100)を、それぞれが計算機を有する2つのデータセンタで構成したシステムの概要図である。
図3のシステムでは、暗号化記憶システム(300)はデータセンタ1(301)とデータセンタ2(302)およびこれら2つのデータセンタを接続するネットワーク(303)で構成される。データセンタ1(301)は、記憶装置1(311)と記憶装置2(312)、暗号処理装置(313)、データ管理装置(314)、通信装置1(315)で構成され、データセンタ2(302)は記憶装置3(321)と通信装置2(322)で構成される。このような構成例として、データセンタ1(301)をセキュアなプライベートクラウド(private cloud)とし、データセンタ2(302)をコストの安いストレージであるパブリッククラウド(public cloud)とすることで、データ記憶の役割の分担を図ることができる。ネットワーク(303)は専用線でもよいし、インターネットなどの一般回線でもよい。
図3のシステムにおいて、データ所有者(304)は、保管して欲しいデータ(305)を、ネットワーク(303)を介してサービサ(306)に委託する。サービサ(306)を介して暗号化記憶システム(300)に委託されたデータは、暗号処理装置(313)で暗号化され、データ所有者(304)の指示に基づいて、保管して欲しいデータ(305)を、秘匿化すべきデータとそうでないデータとに分け、これらのデータはデータセンタ1(301)とデータセンタ2(302)に分割して保存される。記憶装置2(312)と記憶装置3(321)には、保管して欲しいデータ(305)を暗号化したデータが格納されるが、記憶装置2(312)に格納される秘匿化すべきデータに対しては、秘匿化のレベルを高めるために上記の変換(暗号化)に加えて、更にデータの攪拌処理が行われる。なお、ネットワーク(303)がインターネットなどの一般回線の場合には、IPSecやTLSなどの暗号機能により、通信路全般を保護することが望ましい。
また、個人が大量のデータを保持しており、その大部分をパブリッククラウドに保存したい場合に、記憶装置1(311)および記憶装置2(312)として手元のハードディスクやUSBメモリなどを利用し、記憶装置3(321)としてパブリッククラウドを利用してもよい。
(暗号処理装置の機能)
図4は本実施形態における暗号処理装置(104)の機能構成を表す図である。
図4は本実施形態における暗号処理装置(104)の機能構成を表す図である。
暗号処理装置(400)は、暗号化処理で用いられるAONT装置(又はAONT変換装置)(401)、データ所有者(304)の指示に基づいてデータ(305)を分割するデータ分割装置(402)、暗号化されたデータを更に攪拌させるためのパラメータ付きデータ攪拌装置(403)と、復号処理で用いられるAONT逆変換装置(404)、分割されたデータを元の1つのデータに結合するデータ結合装置(405)、攪拌されたデータを元に戻すパラメータ付きデータ逆攪拌装置(406)、およびパラメータ付きデータ攪拌装置(403)へのデータ入力を制御するセレクタ(407)で構成される。セレクタ(407)は、データ書き込み要求があった場合にはデータ分割装置(402)の出力をパラメータ付きデータ攪拌装置(403)に渡し、データ再暗号化要求があった場合には、パラメータ付きデータ逆攪拌装置(406)の出力をパラメータ付きデータ攪拌装置(403)に渡す。
ここで、AONT(All-or-Nothing Transform)は、出力すべてが揃わないと入力を復元できないようなデータ変換であり、可逆変換と部分暗号化処理を組み合わせたデータ全体の暗号化である。
パラメータ付きデータ攪拌装置(403)および逆攪拌装置(406)は、たとえばブロック暗号やストリーム暗号などを用いてもよい。また、公開鍵を用いてもよい。以下の実施例では共通鍵暗号を用いる場合について説明する。この場合、秘密鍵がパラメータに相当する。ブロック暗号は、入力データを一定長のデータごとに区切り(区切られた一定長データをブロックという)、鍵と共に攪拌処理を行うことで暗号化処理(encryption)または復号処理(decryption)を行う暗号技術であり、ストリーム暗号は、疑似乱数生成装置に乱数列を決定する情報を与えて乱数列を生成し、この乱数列と平文を攪拌することで暗号文を生成する暗号技術である。
(暗号化及び復号処理におけるデータの流れ)
図12に、図4に示した暗号処理装置(104)によって実行される暗号化及び復号の処理におけるデータの流れを示す。図12は、図4における各部の関連をデータの流れとして示したものである。図12及び以下の説明では、Dは、AONT装置(401)によりDを変換したデータを表し、D→Dは、AONT逆変換装置(404)による逆変換を表し、D*は、パラメータ付きデータ攪拌装置(403)によりDを攪拌したデータを表し、D*→Dは、パラメータ付きデータ逆攪拌装置(406)による逆攪拌を表す。
図12に、図4に示した暗号処理装置(104)によって実行される暗号化及び復号の処理におけるデータの流れを示す。図12は、図4における各部の関連をデータの流れとして示したものである。図12及び以下の説明では、Dは、AONT装置(401)によりDを変換したデータを表し、D→Dは、AONT逆変換装置(404)による逆変換を表し、D*は、パラメータ付きデータ攪拌装置(403)によりDを攪拌したデータを表し、D*→Dは、パラメータ付きデータ逆攪拌装置(406)による逆攪拌を表す。
(1)データ分割: 平文である入力データDをAONT装置(401)で変換して得られたDを、データ分割装置(402)で、非書き換えデータである第1の保存データD R と書き換えデータである第1の中間データD M とに分割し、第1の保存データD R を記憶装置3(413)に保存する。
(2)データ攪拌: 暗号鍵生成装置(415)で生成した秘密鍵K1を記憶装置1(411)に保存すると共に、秘密鍵K1を用いて、パラメータ付きデータ攪拌装置(403)により、第1の中間データD M をデータ攪拌した第2の保存データD M *を生成し、記憶装置2(412)に保存する。
(3)データ逆攪拌: 記憶装置1(411)から取り出した秘密鍵K1を用いて、パラメータ付きデータ逆攪拌装置(406)により、記憶装置2(412)から取り出した第2の保存データD M *をデータ逆攪拌して第2の中間データD M を生成する。
(4)データ合成: 生成した第2の中間データD M と記憶装置3(413)から取り出した第1の保存データD R とを、データ結合装置(405)により、データ合成してデータDを生成し、データ合成した結果をAONT逆変換装置(404)により逆変換すると出力データD(入力データの平文と同じ)が得られる。
(5)再暗号化: 上記ステップ(3)で用いた秘密鍵K1を用いて、記憶装置2(412)に保存されていた第2の保存データD M *をデータ逆攪拌して第2の中間データD M を生成し、これを再度、新たな秘密鍵を用いて、上記ステップ(2)と同等に、データ攪拌して第2の保存データD M *を生成して、記憶装置2(412)に保存する。
パラメータ付きデータ攪拌装置(403)の入力には、通常のデータ攪拌のためのデータ、あるいは、再暗号化のためのデータのいずれかを選択するセレクタ(407)が設けられている。また、データ攪拌はデータの暗号化処理に相当し、データ逆攪拌はデータの復号処理に相当する。
(暗号化処理のシーケンス)
図5は本実施形態における暗号化記憶システム(100)のデータ書き込み処理の流れを表すシーケンス図である。以下、図5に沿って暗号化記憶システム(100)の暗号化処理手順を説明する。
図5は本実施形態における暗号化記憶システム(100)のデータ書き込み処理の流れを表すシーケンス図である。以下、図5に沿って暗号化記憶システム(100)の暗号化処理手順を説明する。
ステップ1(502):暗号化記憶システム(101)は、外部からデータ書き込み要求を受け取ると、I/F(107)を介して平文データを受信する。受信したデータは暗号処理装置(104)に入力される。
ステップ2(503):暗号化鍵生成装置(105)は、制御装置(108)からデータ書き込み要求信号を受け取ると、秘密鍵を生成する。
ステップ3(504):暗号処理装置(400(104))は、平文データを受け取り、AONT装置(401)を用いて平文データを変換(暗号化)する。
ステップ4(505):AONT装置(401)の出力(中間データ)をデータ分割装置(402)で2つ(秘匿化すべきデータ2(第1の中間データ)、そうでないデータ3(第1の保存データ))に分割する。データ3は、データ管理装置(414(106))を介して記憶装置3(413(103))に格納する。データをどのように分割するか、即ち、データのどの部分を秘匿化するかは、ユーザの指示に基づいて決められる。
ステップ5(506、507):ステップ2(503)で生成した秘密鍵をパラメータとして、パラメータ付きデータ攪拌装置(403)でデータ2を攪拌する。パラメータ付きデータ攪拌装置(403)の出力はデータ管理装置(414(106))を介して記憶装置2(412(102))に格納する。
ステップ6(508):秘密鍵を記憶装置1(415(105))に格納する。
(復号処理のシーケンス)
図6は本実施形態における暗号化記憶システム(100)のデータ読み出し処理の流れを表すシーケンス図である。以下、図6に沿って暗号化記憶システム(100)の復号処理手順を説明する。
図6は本実施形態における暗号化記憶システム(100)のデータ読み出し処理の流れを表すシーケンス図である。以下、図6に沿って暗号化記憶システム(100)の復号処理手順を説明する。
ステップ1(602):暗号化記憶システム(100)は、外部からデータ読み出し要求を受け取ると、記憶装置1(411(101))から読み出し要求に従って該当する秘密鍵を、記憶装置2(412(102))からデータ2を、記憶装置3からデータ3をデータ管理装置(413(103))を介してそれぞれ読み出す。
ステップ2(603):パラメータ付き逆攪拌装置(406)は、秘密鍵をパラメータとして、データ2を変換(逆攪拌)する。
ステップ3(604):データ結合装置(405)は、パラメータ付き逆攪拌装置(406)の出力とデータ3を結合する。
ステップ4(605):AONT逆変換装置(407)は、結合したデータを変換(復号)する。
ステップ5(606):ステップ4(605)の出力である平文データを、インターフェース(107)を介して出力データ(110)として出力する。
(再暗号化処理のシーケンス)
図7は本実施形態における暗号化記憶システム(100)の再暗号化処理の流れを表すシーケンス図である。以下、図7に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
図7は本実施形態における暗号化記憶システム(100)の再暗号化処理の流れを表すシーケンス図である。以下、図7に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
ステップ1(702):暗号化記憶システム(100)は、外部からデータ読み出し要求を受け取ると、記憶装置1(411(101))から読み出し要求に従って該当する秘密鍵を読み出し、記憶装置2(412(102))からデータ2を読み出す。
ステップ2(703):パラメータ付き逆攪拌装置(406)は、秘密鍵をパラメータとして、データ2を変換(逆攪拌)する。
ステップ3(704):暗号化鍵生成装置(415(105))は、新しい秘密鍵を生成する。
ステップ4(705):パラメータ付き攪拌装置(403)は、新しい秘密鍵をパラメータとして、ステップ2で変換されたデータを変換(攪拌)する。
ステップ5(706):ステップ3で生成した新しい秘密鍵で、記憶装置1(411(101))に格納されていた秘密鍵のデータを上書きする。
ステップ6(706):ステップ4の出力で、記憶装置2(412(102))に格納されていたデータ2を上書きする。
このように、本実施形態における再暗号化処理では、AONT装置(401)の出力を記憶装置2(412(102))と記憶装置3(413(103))に分割しておくことで、記憶装置1(411(101))と記憶装置2(412(102))に記憶されているデータだけで再暗号化処理を行うことができる。すなわち、再暗号化を行わないデータが格納されている記憶装置3(413(103))に対するアクセスが発生しないため、通信負荷および記憶装置の処理負荷を小さくすることができる。記憶装置3(413(103))がネットワーク上にある外部ストレージであり、記憶装置3(413(103))に分割されたデータの大部分が格納されている場合に、特に上記の効果が顕著である。
(AONTサンプル(1))
図8は本実施形態におけるAONT変換装置(800(401))の機能構成およびデータ処理フローを表す図である。図8は2つのハッシュ関数(811、812)と1つの疑似乱数生成装置(813)、排他的論理和を用いて構成される。図中の「○に十文字」の記号は排他的論理和処理を表す。ハッシュ関数(hash function)は、任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数である。
図8は本実施形態におけるAONT変換装置(800(401))の機能構成およびデータ処理フローを表す図である。図8は2つのハッシュ関数(811、812)と1つの疑似乱数生成装置(813)、排他的論理和を用いて構成される。図中の「○に十文字」の記号は排他的論理和処理を表す。ハッシュ関数(hash function)は、任意の有限長のデータから固定長の疑似乱数(ハッシュ値)を生成する関数である。
図8に示したAONT変換装置(800(401))による暗号化処理を説明する。
(1)平文データ(801)を構成する所定の長さのデータXを、n1ビットのデータ(XL)とn2ビットのデータ(XR)に分割する。
(2)ハッシュ関数1(811)によってXRから生成したハッシュ値とXLとの排他的論理和により第1のデータ(T1)を生成する。
(3)第1のデータ(T1)を入力として疑似乱数生成装置(813)によって生成した疑似乱数とXRとの排他的論理和により第2のデータ(T2)を生成する。
(4)ハッシュ関数2(812)によって第2のデータ(T2)から生成したハッシュ値と第1のデータ(T1)との排他的論理和により第3のデータ(T3)を生成する。
(5)第3のデータ(T3)と第2のデータ(T2)を連結して出力データ(Y)として中間データ(802)を生成する。
(1)平文データ(801)を構成する所定の長さのデータXを、n1ビットのデータ(XL)とn2ビットのデータ(XR)に分割する。
(2)ハッシュ関数1(811)によってXRから生成したハッシュ値とXLとの排他的論理和により第1のデータ(T1)を生成する。
(3)第1のデータ(T1)を入力として疑似乱数生成装置(813)によって生成した疑似乱数とXRとの排他的論理和により第2のデータ(T2)を生成する。
(4)ハッシュ関数2(812)によって第2のデータ(T2)から生成したハッシュ値と第1のデータ(T1)との排他的論理和により第3のデータ(T3)を生成する。
(5)第3のデータ(T3)と第2のデータ(T2)を連結して出力データ(Y)として中間データ(802)を生成する。
2つのハッシュ関数(811、812)は同じ関数を用いてもよいし、別の関数を用いてもよい。異なるハッシュ関数を用いる代わりに、ハッシュ関数の入力の一部を定数とし、ハッシュ関数1(811)とハッシュ関数2(812)で異なる定数を用いてもよい。AONT逆変換装置(404)は、図8の処理を下から逆順に行えばよい。
データ分割装置(402)は、AONT変換装置(401)の出力に対して任意の分割を行えばよい。ただし、セキュリティ上の観点から、分割の断片があまりに小さいことは望ましくない。一般的に、それぞれの断片は128ビット以上であることが望ましい。データ結合装置(405)は、データ分割装置(402)で分割したデータを結合して元通りに復元する処理を行う。
(AONTサンプル(2))
図9は本実施形態におけるAONT変換装置(401)を実現する別の方法について、機能構成およびデータ処理フローを表す図である。図9のAONT変換装置(900(401))は、乱数生成装置(911)、疑似乱数生成装置(912)、データ圧縮装置(913)、および排他的論理和で構成される。
図9は本実施形態におけるAONT変換装置(401)を実現する別の方法について、機能構成およびデータ処理フローを表す図である。図9のAONT変換装置(900(401))は、乱数生成装置(911)、疑似乱数生成装置(912)、データ圧縮装置(913)、および排他的論理和で構成される。
図9に示したAONT変換装置(800(401))による暗号化処理を説明する。
(1)乱数生成装置(911)で生成したn1ビットのデータ(X1)を入力として疑似乱数生成装置(912)によって生成した乱数データと、平文データ(901)を構成するn2ビットのデータ(X2)との排他的論理和により第1のデータ(Z1)を生成する。
(2)第1のデータ(Z1)をデータ圧縮装置(913)によって圧縮した圧縮データと、n1ビットのデータ(X1)との排他的論理和により第2のデータ(Z2)を生成する。
(3)第2のデータ(Z2)と第1のデータ(Z1)を連結してn1+n2ビットの出力データ(Y)として中間データ(902)を生成する。
(1)乱数生成装置(911)で生成したn1ビットのデータ(X1)を入力として疑似乱数生成装置(912)によって生成した乱数データと、平文データ(901)を構成するn2ビットのデータ(X2)との排他的論理和により第1のデータ(Z1)を生成する。
(2)第1のデータ(Z1)をデータ圧縮装置(913)によって圧縮した圧縮データと、n1ビットのデータ(X1)との排他的論理和により第2のデータ(Z2)を生成する。
(3)第2のデータ(Z2)と第1のデータ(Z1)を連結してn1+n2ビットの出力データ(Y)として中間データ(902)を生成する。
データ圧縮装置(913)は、ハッシュ関数を用いてもよいし、n2ビットのデータをn1ビットごとに区切って排他的論理和してもよい。データ圧縮装置を排他的論理和で構成した場合には、データ分割装置(402)はAONT変換装置(900(401))の出力を左側n1ビットと右側n2ビットに分割する。疑似乱数生成装置(912)は、MUGIやEnocoroなどを用いてもよいし、AESをカウンタモードで用いてもよい。また、ハッシュ関数を使った鍵導出関数を用いてもよい。
疑似乱数(pseudorandom number)は、有限、もしくは無限のビット列であり、どのような方法でも真性乱数と区別することができないものであり、真性乱数は、無限ビット列であり、任意の連続する部分列が与えられても、次の1ビットを推定することができないような列のことである。
また、本実施形態におけるAONT変換装置(401)は、図8、図9に挙げた方法に限らず、一般的に知られている他の方法を適用してもよい。
(後処理がストリーム暗号の場合の再暗号化処理(機能構成))
図10は、図4の暗号処理装置(400)で、パラメータ付きデータ攪拌装置(403)およびパラメータ付きデータ逆攪拌装置(406)をストリーム暗号の暗号化関数と復号関数で実現した場合の実施例2の機能構成を表す図である。
図10は、図4の暗号処理装置(400)で、パラメータ付きデータ攪拌装置(403)およびパラメータ付きデータ逆攪拌装置(406)をストリーム暗号の暗号化関数と復号関数で実現した場合の実施例2の機能構成を表す図である。
パラメータ付きデータ攪拌装置(400)は、疑似乱数生成装置(1051)と加算装置2(1052)で構成され、パラメータ付きデータ逆攪拌装置(406)は減算装置(1053)で構成される。データの再暗号化では、疑似乱数生成器と(1051)と加算装置1(1054)を用いる。ここで、加算装置1、2(1054、1052)は算術加算もしくは排他的論理和を行う装置である。また、減算装置(1053)は加算装置の逆演算、即ち、x+yのデータをxとyに分ける演算を行う装置である。
図10の機能構成では、暗号化鍵生成装置(1004(105))の出力をそのまま記憶装置1(1001(101))に格納するのではなく、加算装置1(1054)の出力を書き込む。初回書き込み時には、あらかじめ記憶装置1(1001(101))のデータをゼロリセットしておく。
図10の再暗号化処理では、暗号化鍵生成装置(1004(105))で生成された鍵に基づいて、疑似乱数生成装置(1051)によって乱数を生成する。その後、加算装置2(1052)により、この乱数と、記憶装置2(1002(102))に保存された第2の保存データ(あるいは、入力された平文を変換(暗号化)した結果を分割した秘匿化対象の第1の中間データ)を加算した結果を記憶装置2(1002(102))に保存する。同様に、加算装置1(1054)により、この乱数と、記憶装置1(1001(101))に保存された鍵情報を加算した結果を記憶装置1(1001(101))に保存する。上記の処理を、再暗号化の際に実行することで、保存データ及び鍵情報のストリーム暗号が生成される。即ち、再暗号化の際に、実施例1のデータ攪拌及びデータ逆攪拌の代わりに、実施例2ではストリーム暗号が生成される。
また、減算装置(1053)により、記憶装置2(1002(102))に保存されていた第2の保存データから、加算されていた乱数を減算した結果と、記憶装置3(1003(103))に保存されていた第1の保存データとを合成し、更に、この合成結果を逆変換(復号)することで元の平文を出力データとして出力できる。(データ出力時の処理の詳細は実施例1と同様であるため、図10ではその詳細は図示せず。)
(後処理がストリーム暗号の場合の再暗号化処理のシーケンス)
図11は、図10の暗号処理装置(1000(104))で再暗号化処理を行う場合の処理の流れを表すシーケンス図である。以下、図11に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
(後処理がストリーム暗号の場合の再暗号化処理のシーケンス)
図11は、図10の暗号処理装置(1000(104))で再暗号化処理を行う場合の処理の流れを表すシーケンス図である。以下、図11に沿って暗号化記憶システム(100)の再暗号化処理手順を説明する。
ステップ1(1101):暗号化記憶システム(100)は、外部からデータ読み出し要求を受け取ると、記憶装置1(1001(101))から読み出し要求に従って該当するデータ1(鍵データ)を、記憶装置2(1002(102))からデータ2(中間データ)を読み出す。
ステップ2(1102):暗号化鍵生成装置(1004(105))は、新しい秘密鍵を生成する。疑似乱数生成装置(1051)は、新しい秘密鍵から鍵ストリームを生成する。
ステップ3(1103):加算装置1(1054)は、データ1に鍵ストリームを加算し、その計算結果で記憶装置1(1001(101))に格納されているデータ1を上書きする。
ステップ4(1104):加算装置2(1052)は、データ2に鍵ストリームを加算し、その計算結果で記憶装置2(1002(102))に格納されているデータ2を上書きする。
このように、図4の暗号処理装置において、パラメータ付きデータ攪拌装置(403)をストリーム暗号で実現した場合、復号を行わずに再暗号化処理を行うことが可能であり、一般的な構成に比べて情報漏えいの危険性が低いと期待できる。
(追加機能1:データの保持証明)
記憶装置3(103)が外部ストレージである場合、暗号化記憶システム(100)は、外部ストレージが正しくデータを保管しており、データの紛失や改ざんが行われていないことを確認できる機能を持っていることが望ましい。これは、たとえば、外部ストレージが保管している管理ログなどにより確認できる。
記憶装置3(103)が外部ストレージである場合、暗号化記憶システム(100)は、外部ストレージが正しくデータを保管しており、データの紛失や改ざんが行われていないことを確認できる機能を持っていることが望ましい。これは、たとえば、外部ストレージが保管している管理ログなどにより確認できる。
ただし、管理ログは外部ストレージ自身が生成しているものであるため、暗号学的な信頼性は保証できない。そこで、管理装置(106)もしくは暗号処理装置(104)がMAC(Message Authentication Code) 生成装置1を備え、暗号化記憶システム(100)がMAC用鍵とMACを保存する記憶装置4を備えている場合に、暗号学的にデータの保持証明を行う方法について説明する。
一般に、MACは、共通鍵とメッセージを入力とする、ハッシュ関数に類似したMAC関数の出力であり、一種の「タグ」である。送信側は、共通鍵を用いてメッセージから生成されたMACとメッセージを受信側に送信し、受信側では、共通鍵を用いて受け取ったメッセージから生成したMACと送信側から送られたMACとが一致するかどうかを判定して、メッセージの真正性を確認する。また、下記のデータ保持証明では、受信側の記憶装置3に上記の送信側のMAC生成装置と同じ演算を行うMAC生成装置2が必要である。
(1)事前準備(データの保存時の処理)
ステップ1:暗号化記憶システム(100)は、データの書き込み要求を受けるごとに、複数個の乱数r_1、r_2、…、r_Tを生成する。乱数の生成には、暗号化鍵生成装置(105)を用いてもよいし、別途乱数生成器を用意してもよい。
ステップ1:暗号化記憶システム(100)は、データの書き込み要求を受けるごとに、複数個の乱数r_1、r_2、…、r_Tを生成する。乱数の生成には、暗号化鍵生成装置(105)を用いてもよいし、別途乱数生成器を用意してもよい。
ステップ2:暗号化記憶システム(100)は、それぞれの乱数を鍵として、記憶装置3(103)に書き込むデータのMAC値を計算し、乱数とMAC値をペアにして保管しておく。このデータを保持する記憶装置4は、記憶装置1(101)と同じくセキュアに管理された領域であることが望ましい。
(2)データの保持証明
ステップ1:暗号化記憶システム(100)は、記憶装置3(103)を保持する外部ストレージに乱数r_iと、データのID_jを送信する。
ステップ1:暗号化記憶システム(100)は、記憶装置3(103)を保持する外部ストレージに乱数r_iと、データのID_jを送信する。
ステップ2:外部ストレージは、乱数r_iとデータD_jを用いてMAC値を計算し、暗号化記憶システム(の本体)に返信する。
ステップ3:暗号化記憶システム(101)は、受信したMAC値が記憶装置4に保管されているMAC値と一致するかどうか(データが真正であるかどうか)を確認する。
上記の方法により、一定回数のデータ保持確認が可能である。外部ストレージが独自に再暗号化を行う場合には、記憶装置3(103)に保管されているデータが書き換えられてしまうため、上記のデータ保持証明方法は適用できない。たとえば、非特許文献1の再暗号化方法で再暗号化を行った場合、上記の方法では、データの真正性を確認することができない。上記のデータ保持証明方法は、再暗号化により記憶装置3のデータが書き換えられない場合に適用可能な方法である。
一般に、文書の長期保存が義務付けられているケースでは、保存しなければならない年数が決まっていることが多い。そこで、図3のようなシステムであれば、データ所有者がデータの暗号化及び保管をサービサに依頼する際に、保存期間を設定することで、事前に計算しておく乱数の個数を決めることができる。これにより、乱数およびMAC値を保存するためのストレージ領域を最適化することができる。
データの保持証明を行う場合には、図2に記載したデータ管理装置(106)が保持しているデータベース(201)に、乱数とMAC値の対をすべて保存し、データの対応付けを行う。乱数とMAC値は外部に漏れないよう、暗号化して保存する。この秘密鍵は、記憶装置1(101)などのセキュアな領域に保存する。または、乱数とMAC値そのものを記憶装置1(101)などのセキュアな領域に保存してもよい。
(追加機能2:署名の更新)
データの真正性が要求される文書の場合、データには電子署名が付されていることが一般的である。これらの電子署名についても、署名鍵や公開鍵証明書には有効期限が設定されており、定期的な再署名が必要となる。そこで、本発明の実施形態に合わせて電子署名の更新を行う方法について説明する。以下のシーケンスでは、管理装置(106)もしくは暗号処理装置(104)が電子署名生成装置を備えているものとする。
データの真正性が要求される文書の場合、データには電子署名が付されていることが一般的である。これらの電子署名についても、署名鍵や公開鍵証明書には有効期限が設定されており、定期的な再署名が必要となる。そこで、本発明の実施形態に合わせて電子署名の更新を行う方法について説明する。以下のシーケンスでは、管理装置(106)もしくは暗号処理装置(104)が電子署名生成装置を備えているものとする。
ステップ1:記憶装置3(103)を管理する外部ストレージに対して、データの存在証明を行い、データに対する改ざんが行われていないことを確認する。
ステップ2:もともと計算されていたハッシュ値に対して、新しい署名鍵で再署名を施す。
署名についても、データの保持証明と同じように、データ管理装置(106)が保持しているデータベース(201)に電子署名値を保存する。
データ所有者(304)が署名処理を行う必要がある場合には、サービサ(306)がデータの保持証明を行った後で、該当データのハッシュ値をデータ所有者(304)に送信し、再署名処理を行えばよい。
上記の再署名方式では、平文データのハッシュ値を再計算するのではなく、データに改ざんが無いことを確認したうえで、平文データのハッシュ値に再署名を施すことで、再署名に要する通信量と計算量を大幅に削減している。厳密な管理が要求されるような場合であれば、ステップ1の結果にタイムスタンプを付して保管しておくことで、再署名手続きの妥当性を保証することができる。
100:暗号化記憶システム、101:記憶装置1、102:記憶装置2、103:記憶装置3、104:暗号処理装置、105:暗号化鍵生成装置、106:データ管理装置、107:I/F、108:制御装置、201:データベース、401:AONT装置、402:データ分割装置、403:パラメータ付きデータ攪拌装置、404:AONT逆変換装置、405:データ結合装置、406:パラメータ付きデータ逆攪拌装置
Claims (15)
- データを暗号化して保管する暗号化記憶システムであって、
前記システムは、
データを入出力するインターフェースI/Fと、
暗号化鍵生成装置と、
暗号処理装置と、
データ管理装置と、
前記暗号化鍵生成装置で生成された秘密鍵を記憶する第1の記憶装置と、
前記暗号処理装置で暗号化されたデータを記憶する第2の記憶装置及び第3の記憶装置と、
前記装置のそれぞれを制御する制御装置と、を備え、
前記暗号処理装置は、
セレクタと、
前記暗号処理装置に入力されたデータを受け取り、入力ビットのすべての値が出力ビットのそれぞれの値に影響を与える変換を行うAONT装置と、
前記AONT装置の出力を分割し、秘匿化対象以外の第1の保存データと秘匿化対象の第1の中間データを出力するデータ分割装置とを備え、
前記暗号化記憶システムは前記第1の保存データを前記第3の記憶装置に記憶し、
さらに、前記暗号処理装置は、
前記暗号化鍵生成装置で生成された秘密鍵をパラメータとし、前記セレクタの出力を入力としてデータ攪拌を行い、第2の保存データを出力するパラメータ付きデータ攪拌装置を備え、
前記暗号化記憶システムは前記第2の保存データを前記第2の記憶装置に記憶し、
前記暗号処理装置は、さらに、
前記第1の記憶装置に記憶された秘密鍵をパラメータとし、前記第2の記憶装置に記憶された前記第2の保存データを入力として前記パラメータ付きデータ攪拌装置の逆攪拌を行い、第2の中間データを出力するパラメータ付きデータ逆攪拌装置と、
前記第2の中間データと、前記第3の記憶装置に記憶された前記第1の保存データを結合するデータ結合装置と、
前記データ結合装置で結合されたデータを受け取り、前記AONT装置により逆変換を行い、暗号処理装置の出力を生成するAONT逆変換装置と、を備え、
前記セレクタは、前記データ分割装置と前記パラメータ付きデータ逆攪拌装置の出力を前記制御装置の指示に従って切り替える
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記制御装置は、再暗号化要求の制御信号を受信すると、
前記第1の記憶装置から前記秘密鍵を読み出し、前記第2の記憶装置から前記第2の保存データを読み出し、
前記秘密鍵をパラメータとして、前記パラメータ付きデータ逆攪拌装置を用いて前記第2の保存データを逆攪拌して再暗号化用の前記第2の中間データを生成し、
前記暗号化鍵生成装置で新しい秘密鍵を生成し、
前記新しい秘密鍵をパラメータとして、前記パラメータ付きデータ攪拌装置で前記再暗号化用の前記第2の中間データを攪拌し、前記攪拌の出力である前記第2の保存データを前記第2の記憶装置に記憶し、
前記新しい秘密鍵を前記第1の記憶装置に記憶する、
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記パラメータ付きデータ攪拌装置は、第1の疑似乱数生成装置と第1の加算器とを備え、前記第1の疑似乱数生成装置は、前記秘密鍵に基づいて暗号化用鍵ストリームを生成し、前記鍵ストリームと前記セレクタの出力するデータを前記加算器で加算することでデータの攪拌処理を行ない、
前記暗号化記憶システムは、前記鍵ストリームを前記第1の記憶装置に記憶することを特徴とする暗号化記憶システム。 - 請求項3に記載の暗号化記憶システムであって、
前記パラメータ付きデータ逆攪拌装置は減算器を備え、
前記制御装置が復号処理要求の制御信号を受信すると、前記パラメータ付きデータ逆攪拌装置は前記第1の記憶装置から前記鍵ストリームを読み出し、前記第2の記憶装置から前記第2の保存データを読み出し、前記減算器で減算処理を行い、データの逆攪拌を行うことを特徴とする暗号化記憶システム。 - 請求項4に記載の暗号化記憶システムであって、
前記暗号処理装置は、さらに第2の加算器を備え、前記制御装置が再暗号化要求の制御信号を受信すると、
前記第1の記憶装置に記憶されている前記鍵ストリームを第1の鍵ストリームとして読み出し、前記第2の記憶装置から前記第2の保存データを読み出し、
前記暗号化鍵生成装置で新しい秘密鍵を生成し、
前記疑似乱数生成装置は前記新しい秘密鍵に基づいて新しい鍵ストリームを第2の鍵ストリームとして生成し、
前記第1の鍵ストリームと前記第2の保存データを前記第1の加算器で加算することで前記第2の保存データを更新し、前記第2の記憶装置に書き込み、
前記第1の鍵ストリームと前記第2の鍵ストリームを前記第2の加算器で加算することで前記第1の鍵ストリームを更新し、前記第1の記憶装置に書き込む
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記データ管理装置はデータベースを備え、前記第1の記憶装置に記憶されているデータと、前記第2の記憶装置に記憶されているデータと、前記第3の記憶装置に記憶されているデータとの対応を管理することを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記AONT装置は、n1ビットのハッシュ値を生成する第1ハッシュ関数及び第2のハッシュ関数と、n1ビットのデータを入力とする疑似乱数生成器とを備え、
暗号化対象のデータを構成する所定の長さの単位データを、n1ビットの第1のデータとn2ビットの第2のデータに分割し、
前記第1のハッシュ関数によって前記第2のデータから生成したハッシュ値と前記第1のデータとの排他的論理和により第1の内部データを生成し、
前記第1の内部データを入力として前記疑似乱数生成装置によって生成した疑似乱数と前記第2のデータとの排他的論理和により第2の内部データを生成し、
前記第2のハッシュ関数2によって前記第2の内部データから生成したハッシュ値と前記第1の内部データとの排他的論理和により第3の内部データを生成し、
前記第3の内部データと前記第2の内部データを連結して出力データとして中間データを生成する、
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記AONT装置は、乱数生成装置と、n1ビットのデータを入力とする疑似乱数生成器と、n1ビットの圧縮値を生成するデータ圧縮装置とを備え、
前記乱数生成装置で生成したn1ビットの第1のデータを入力として前記疑似乱数生成装置によって生成した乱数データと、暗号化対象のデータを構成するn2ビットの第2のデータとの排他的論理和により第1の内部データを生成し、
前記第1の内部データを前記データ圧縮装置によって圧縮した圧縮データと、n1ビットのデータとの排他的論理和により第2の内部データを生成し、
前記第2の内部データと前記第1の内部データを連結してn1+n2ビットの出力データとして中間データを生成する、
ことを特徴とする暗号化記憶システム。 - 請求項8に記載の暗号化記憶システムであって、
入力データを詰め込むことによりn1ビットの倍数のデータに成形し、前記データ圧縮装置は、前記計算の途中結果の前記第1の内部データをn1ビットずつに分割して排他的論理和する
ことを特徴とする暗号化記憶システム。 - 請求項1に記載の暗号化記憶システムであって、
前記暗号化装置は、さらに第1のMAC値生成装置と、MAC用乱数生成装置と、第4の記憶装置とを備え、
前記第3の記憶装置は、前記第1のMAC値生成装置と同じ処理を行う第2のMAC値生成装置を備えることを特徴とする暗号化記憶システム。 - 請求項10に記載の暗号化記憶システムであって、
前記制御装置がデータの書き込み信号と保存期間に関する情報を受信すると、
前記MAC用乱数生成装置は保存期間に応じて少なくとも一つの乱数を生成し、
前記第1のMAC値生成装置は、それぞれの乱数を鍵として、前記少なくとも1つの乱数のそれぞれに対応して、前記第1の保存データのMAC値を計算し、
前記暗号化記憶システムは、前記計算の結果を前記第4の記憶装置に記憶する、
ことを特徴とする暗号化記憶システム。 - 請求項11に記載の暗号化記憶システムであって、
前記制御装置がデータの保持証明信号を受信すると、
前記管理装置は、前記データに対応する、前記第4の記憶装置に記憶した当該乱数を読み出し、前記データを特定する情報と合わせて、前記第3の記憶装置に送信し、
前記第3の記憶装置は、前記データを特定する情報に従って該当データを読み出し、
前記第2のMAC生成装置は、前記受信した前記当該乱数を鍵として、前記該当データのMAC値Tを計算し、
前記第3の記憶装置は、前記MAC値Tを前記管理装置に送信し、
前記管理装置は、前記データと前記当該乱数に対応する、前記第4の記憶装置に記憶されているMAC値を読み出し、受信した前記MAC値Tとを比較し、一致していれば正しくデータ保持されているという信号を、一致しなければ不正であるという信号を返信する、
ことを特徴とする暗号化記憶システム。 - 請求項10に記載の暗号化記憶システムであって、
前記暗号化装置は、さらに署名用ハッシュ値生成装置と、電子署名生成装置と、第5の記憶装置とを備え、
前記制御装置がデータの書き込み信号を受信すると、
前記署名用ハッシュ値生成装置は、前記I/Fを介して受信したデータのハッシュ値を計算し、
前記電子署名生成装置は、前記ハッシュ値を入力として署名値を生成し、
前記暗号化記憶システムは、前記ハッシュ値と、前記署名値を前記第5の記憶装置に記憶する、
ことを特徴とする暗号化記憶システム。 - 請求項13に記載の暗号化システムであって、
前記制御装置がデータの再署名信号を受信すると、
前記管理装置は、前記第1のMAC値生成装置と前記第2のMAC値生成装置を用いて、データの保持証明を行ない、
正しくデータ保持されていることが確認できれば、前記第5の記憶装置に記憶した、前記ハッシュ値を読み出し、
前記電子署名生成装置は、前記ハッシュ値に対して新しい署名鍵で署名値を生成し、前記署名値を前記新しく生成した署名値で更新する、
ことを特徴とする暗号化記憶システム。 - 記憶装置を有する処理装置を用いた暗号化記憶方法であって、
入力データを変換した変換データを、非書き換えデータである第1の保存データと書き換えデータである第1の中間データとに分割し、前記第1の保存データを第3の記憶装置に保存し、
生成した秘密鍵を第1の記憶装置に保存すると共に、前記秘密鍵を用いて、前記第1の中間データをデータ攪拌した第2の保存データを生成し、第2の記憶装置に保存し、
前記第1の記憶装置から取り出した前記秘密鍵を用いて、前記第2の記憶装置から取り出した前記第2の保存データをデータ逆攪拌して第2の中間データを生成し、
前記生成した第2の中間データと前記第3の記憶装置から取り出した前記第1の保存データとを、データ合成して前記変換データを生成し、前記変換データを復号した出力データを出力し、
再暗号化の際は、前記秘密鍵を用いて、前記第2の記憶装置に保存されていた前記第2の保存データをデータ逆攪拌して前記第2の中間データを生成し、前記生成した第2の中間データを再度データ攪拌して前記第2の保存データを生成し、前記第2の保存データを前記第2の記憶装置に保存する、
ことを特徴とする暗号化記憶方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2013/050477 WO2014109059A1 (ja) | 2013-01-11 | 2013-01-11 | データの暗号化記憶システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5964460B2 JP5964460B2 (ja) | 2016-08-03 |
JPWO2014109059A1 true JPWO2014109059A1 (ja) | 2017-01-19 |
Family
ID=51166726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014556312A Expired - Fee Related JP5964460B2 (ja) | 2013-01-11 | 2013-01-11 | データの暗号化記憶システム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5964460B2 (ja) |
WO (1) | WO2014109059A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016004170A (ja) * | 2014-06-17 | 2016-01-12 | Kddi株式会社 | 暗号化装置及び復号装置、暗号化方法及び復号方法、並びに暗号化プログラム及び復号プログラム |
WO2016050287A1 (en) * | 2014-09-30 | 2016-04-07 | Nec Europe Ltd. | Method and system for at least partially updating data encrypted with an all-or-nothing encryption scheme |
CN109840426B (zh) * | 2019-03-05 | 2023-07-25 | 深圳市汇顶科技股份有限公司 | 加密方法、加密装置及电子设备 |
CN112560071B (zh) * | 2020-12-28 | 2022-06-14 | 杭州趣链科技有限公司 | 具有审核和指定验证者功能的数据共享方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5870470A (en) * | 1996-02-20 | 1999-02-09 | International Business Machines Corporation | Method and apparatus for encrypting long blocks using a short-block encryption procedure |
JPH1115738A (ja) * | 1997-06-25 | 1999-01-22 | Nec Corp | 暗号化機能付きデータ蓄積装置 |
WO2006114841A1 (ja) * | 2005-04-08 | 2006-11-02 | Trusted Solutions Corporation | 情報処理方法および情報処理システム |
JP2006311383A (ja) * | 2005-04-28 | 2006-11-09 | Trusted Solutions Kk | データ管理方法、データ管理システムおよびデータ管理装置 |
JP2008035305A (ja) * | 2006-07-31 | 2008-02-14 | Nec Engineering Ltd | 暗号化方法及びデータ秘匿方法 |
JP4843531B2 (ja) * | 2006-09-29 | 2011-12-21 | 富士通株式会社 | 暗号変換装置、暗号変換方法および暗号変換プログラム |
JP4892382B2 (ja) * | 2007-03-27 | 2012-03-07 | 株式会社日立製作所 | 記憶装置及びデータ管理方法 |
JP2008269173A (ja) * | 2007-04-18 | 2008-11-06 | Hitachi Ltd | 計算機システム、ストレージシステムおよびデータ管理方法 |
-
2013
- 2013-01-11 WO PCT/JP2013/050477 patent/WO2014109059A1/ja active Application Filing
- 2013-01-11 JP JP2014556312A patent/JP5964460B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5964460B2 (ja) | 2016-08-03 |
WO2014109059A1 (ja) | 2014-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11818262B2 (en) | Method and system for one-to-many symmetric cryptography and a network employing the same | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
JP6363032B2 (ja) | 鍵付替え方向制御システムおよび鍵付替え方向制御方法 | |
KR20070057968A (ko) | 랜덤 함수를 이용한 비밀 공유 | |
WO2018154623A1 (ja) | 暗号化装置及び復号装置 | |
US11431489B2 (en) | Encryption processing system and encryption processing method | |
JP5964460B2 (ja) | データの暗号化記憶システム | |
KR20210036700A (ko) | 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템 | |
CN114124364A (zh) | 密钥安全处理方法、装置、设备及计算机可读存储介质 | |
WO2020044748A1 (ja) | Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム | |
JP5469618B2 (ja) | 暗号化システム、復号方法、鍵更新方法、鍵生成装置、受信装置、代理計算装置、プログラム | |
CN107360252A (zh) | 一种异构云域授权的数据安全访问方法 | |
CN109495478B (zh) | 一种基于区块链的分布式安全通信方法及系统 | |
JP5850888B2 (ja) | 情報記憶システム、情報記憶装置、その方法、及びプログラム | |
WO2020240630A1 (ja) | 再暗号化装置、再暗号化方法、再暗号化プログラム及び暗号システム | |
Singh et al. | Security of Data with 3DES & Watermarking Algorithm | |
JP5539024B2 (ja) | データ暗号化装置およびその制御方法 | |
CN116755618A (zh) | 一种基于区块链和分布存储的文件安全存取方法 | |
JP2022551586A (ja) | 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行 | |
Bhaisare et al. | Solution to Data Sharing for Confidentiality between Service Provider and the Data Owner | |
JP2017009914A (ja) | 指標算出システム、指標算出方法、指標算出プログラム、及び、照合システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160523 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160629 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5964460 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |