JP5876937B2 - データ保持検証システム及び方法 - Google Patents
データ保持検証システム及び方法 Download PDFInfo
- Publication number
- JP5876937B2 JP5876937B2 JP2014544148A JP2014544148A JP5876937B2 JP 5876937 B2 JP5876937 B2 JP 5876937B2 JP 2014544148 A JP2014544148 A JP 2014544148A JP 2014544148 A JP2014544148 A JP 2014544148A JP 5876937 B2 JP5876937 B2 JP 5876937B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- user terminal
- verification target
- target data
- verification
- 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.)
- Expired - Fee Related
Links
- 238000012795 verification Methods 0.000 title claims description 361
- 238000000034 method Methods 0.000 title claims description 183
- 230000014759 maintenance of location Effects 0.000 title claims description 30
- 238000000151 deposition Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 133
- 230000008569 process Effects 0.000 description 122
- 238000004364 calculation method Methods 0.000 description 50
- 238000004891 communication Methods 0.000 description 47
- 230000006870 function Effects 0.000 description 33
- 238000007792 addition Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 9
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 8
- 102100022465 Methanethiol oxidase Human genes 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 102100038445 Claudin-2 Human genes 0.000 description 2
- 101000618135 Homo sapiens Sperm-associated antigen 1 Proteins 0.000 description 2
- 102100021916 Sperm-associated antigen 1 Human genes 0.000 description 2
- 101100310674 Tenebrio molitor SP23 gene Proteins 0.000 description 2
- 102100040791 Zona pellucida-binding protein 1 Human genes 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 102100022907 Acrosin-binding protein Human genes 0.000 description 1
- 208000019901 Anxiety disease Diseases 0.000 description 1
- 101100478055 Dictyostelium discoideum cotC gene Proteins 0.000 description 1
- 101100478056 Dictyostelium discoideum cotE gene Proteins 0.000 description 1
- 101000756551 Homo sapiens Acrosin-binding protein Proteins 0.000 description 1
- 101000882901 Homo sapiens Claudin-2 Proteins 0.000 description 1
- 101100333868 Homo sapiens EVA1A gene Proteins 0.000 description 1
- 101710134383 Methanethiol oxidase Proteins 0.000 description 1
- 102100031798 Protein eva-1 homolog A Human genes 0.000 description 1
- 230000036506 anxiety Effects 0.000 description 1
- 238000003287 bathing Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004587 chromatography analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/126—Applying verification of the received information the source of the received data
-
- 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/3236—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 using cryptographic hash functions
- H04L9/3242—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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Description
本発明は、データ保持検証システム及び方法に関し、例えば、クラウドサービスを行うクラウドシステムに適用して好適なものである。
近年、情報システムの開発の効率化、運用管理費の低減などを目的に、サーバ及びストレージ装置を自分で所有せず、データの記憶保持を外部業者に委託するクラウドと呼ばれる運用管理形態が脚光を浴びている。このようなクラウドサービスの利用は、効率化やコスト低減というメリットを有する反面、サーバ及びストレージ装置を管理する業者がサーバ及びストレージ装置を利用する者とは異なるため、機密情報を外部業者に預託することに不安が生じる。そのため、事前にデータ損失の検知策として暗号技術を活用し、データの信頼性を確保する必要がある。
しかし、単純にデータ損失を検知する為にデータをダウンロードする方法では、通信量が膨大になるためにネットワーク負荷が高く、情報システム管理者に預託した全てのデータの確認ができなくなる。また、これは当初の目的であるコスト低減などに反しており、対策技術が求められる。
このような対策技術のうち、サーバ/クライアントモデルにおいて、クライアントが、サーバにデータを預託しながら、サーバに対し、情報の保持確認処理を依頼できる暗号化方式が知られている。例えば、非特許文献1には、このようなデータ保持確認処理を実現する方式が記載されている。非特許文献1に記載の技術では、サーバ運営事業者がデータを保持しない場合、偽証が不可能であることが安全性証明と呼ばれる理論を用いて証明されている。このような安全な暗号化方式を用いることにより、クラウド業者などの不正を検知しながら、かつサーバに預託したデータの保持を安全に証明するための技術が開示されている。
Giuseppe Ateniese, Randal Burns, Reza Curtmola, Joseph Herring, Lea Kissner, Zachary Peterson, Dawn Song:Provable Data Possession at Untrusted Stores. Proceedings of 14th ACM Conference on Computer and Communications Security (CCS 2007).
ところが、かかる非特許文献1に記載された技術を、上述したデータ保持証明に用いる場合、決定的に100〔%〕誤りなくストレージ装置のデータ保持を証明するためには、サーバだけではなく、クライアントにも膨大な計算量(n回のべき乗剰余乗算など)が要求される。
例えば、省電力性が求められる携帯電話やスマートフォン等の携帯型モバイルPC、又は、カード形状で利用される小型マイコンやRFIDなどをクライアントと想定したモデルでは、クライアントの計算量を極力抑える必要があるが、非特許文献1に記載された技術では、実際、管理サーバ(上述の例ではサーバ)にクライアントがデータ保持証明プロトコルの要求をした場合、サーバ・クライアントの計算量が膨大になる。例えば、1ギガバイトのファイルデータがOS(Operating System)のファイルフォーマット等に従い1キロバイト毎に管理する場合、決定的に100%誤りなくサーバのデータ保持を証明するためには、クライアントは計算負荷が高いことで知られる逆元計算またはべき乗剰余乗算を100万回以上、処理する必要がある。
本発明は以上の点を考慮してなされたもので、ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かの検証を少ない通信量又は計算量で行い得るデータ保持検証システム及び方法を提案しようとするものである。
かかる課題を解決するため本発明においては、ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証システムにおいて、前記ユ一ザ端末から前記サーバ装置に予め公開パラメータが登録され、前記ユーザ端末は、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信し、前記ユーザ端末は、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信し、前記サーバ装置は、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、前記ユーザ端末は、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定し、前記サーバ装置は、前記サーバ側証拠データをSi、Ui、前記公開パラメータをN、前記パラメータをh、分割数をn、前記乱数をR1〜Rn、t、前記分割データをMi(1)〜Mi(n)、前記データ識別子をi(1)〜i(n)、前記ユーザ端末側証拠データをTi、Vi、前記秘密鍵をd、前記秘密鍵の逆元をe、Funcを一方向性関数を表す演算子として、次式
により前記サーバ側証拠データを算出し、前記ユーザ端末は、次式
により前記ユーザ端末側証拠データを算出するようにした。
また本発明においては、ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証方法において、前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録される第1のステップと、前記ユーザ端末において、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信する第2のステップと、前記ユーザ端末において、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信する第3のステップと、前記サーバ装置において、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信する第4のステップと、前記ユーザ端末において、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する第5のステップとを備え、前記第4のステップにおいて、前記サーバ装置は、前記サーバ側証拠データをSi、Ui、前記公開パラメータをN、前記パラメータをh、分割数をn、前記乱数をR1〜Rn、t、前記分割データをMi(1)〜Mi(n)、前記データ識別子をi(1)〜i(n)、前記ユーザ端末側証拠データをTi、Vi、前記秘密鍵をd、前記秘密鍵の逆元をe、Funcを一方向性関数を表す演算子として、次式
により前記サーバ側証拠データを算出し、前記第5のステップにおいて、前記ユーザ端末は、次式
により前記ユーザ端末側証拠データを算出するようにした。
本発明によれば、かかるデータ保持検証システム及び方法によれば、ユーザ端末がサーバ装置に預けた検証対象データをサーバ装置が保持しているか否かの検証を少ない通信量又は計算量で行い得るデータ保持検証システム及び方法を実現できる。
以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)本実施の形態によるクラウドシステムの構成
図1において、1は全体として本実施の形態によるクラウドシステムを示す。このクラウドシステム1は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末2と、クラウドサービス事業者のサービス提供サーバ3とを有し、これらがネットワーク4を介して接続されている。
(1−1)本実施の形態によるクラウドシステムの構成
図1において、1は全体として本実施の形態によるクラウドシステムを示す。このクラウドシステム1は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末2と、クラウドサービス事業者のサービス提供サーバ3とを有し、これらがネットワーク4を介して接続されている。
ユーザ端末2及びサービス提供サーバ3は、図2に示すように、内部バス10を介して相互に接続されたCPU(Central Processing Unit)11、メモリ12、外部記憶装置13、読書き装置14、通信装置15、入力装置16及び出力装置17を備える。
CPU11は、装置(ユーザ端末2又はサービス提供サーバ3)全体の動作制御を司るプロセッサである。またメモリ12は、各種プログラムを記憶するために利用されるほか、CPU11のワークメモリとしても利用される。外部記憶装置13は、例えばハードディスク装置等の不揮発性の大容量記憶装置から構成され、各種プログラムや各種データが格納される。外部記憶装置13に格納されたプログラムがメモリ12に展開され、当該プログラムをCPU11が実行することにより、ユーザ端末2又はサービス提供サーバ3全体として後述のような各種処理を実行する。
読書き装置14は、例えばSD(Secure Digital)カード、マイクロSDカード若しくはマイクロSDHC(Secure Digital High Capacity)カードなどの記憶媒体18に対応したメモリリーダ・ライタ、又は、CD(Compact Disc)若しくはDVD(Digital Versatile Disc)などの記憶媒体18に対応したディスク装置などから構成される。
通信装置15は、ユーザ端末2又はサービス提供サーバ3をネットワーク4(図1)に接続するためのインタフェースであり、例えばNIC(Network Interface Card)などから構成される。また入力装置16は、例えばタッチボタンやキーボード及び又はマウスなどから構成され、出力装置17は、例えば液晶パネルや液晶ディスプレイなどから構成される。
図3は、ユーザ端末2の論理構成を示す。この図3からも明らかなように、ユーザ端末2は、制御部20、記憶部21、入力部22、出力部23及び通信部24を備えて構成される。
制御部20は、後述する各種処理を実行する機能ブロックであり、全体処理部30、乱数生成部31、素数生成部32及び基本演算部33を備える。これら全体処理部30、乱数生成部31、素数生成部32及び基本演算部33は、ユーザ端末2のCPU11(図2)がメモリ12(図2)に展開された対応するプログラムを実行することにより具現化される。
全体処理部30は、ユーザ端末2における処理を統括制御する機能部分であり、入力部22を介して入力されたユーザからの指示に応じた制御処理や、出力部23への画像出力、通信部24を介したサービス提供サーバ3との間の通信等の各種処理を実行する。
また乱数生成部31は、秘密鍵などを用いて予め指定された任意のビット長(例えば512ビット、1024ビット又は2048ビット)の擬似乱数を生成する機能部分である。この際、秘密鍵のデータ値は、乱数生成部31によって、新しいデータ値に更新される。なお、乱数生成部31が温度、時間、電力量などの物理現象や、乱数生成アルゴリズムを用いて乱数を生成するようにしても良い。
素数生成部32は、乱数生成部31に擬似乱数の生成を依頼し、作成された擬似乱数が素数であるかを判定するテストを通して、予め設定された任意のビット長(例えば512ビット、1024ビット又は2048ビット)の素数を生成する機能部分である。素数生成部32における素数のアルゴリズムとしては、標準的な素数生成アルゴリズムを適用することができる。
さらに基本演算部33は、加算、減算、比較演算などの基本的な算術演算に関する処理を行う機能部分である。
記憶部21は、図2について上述したメモリ12、外部記憶装置13及び記憶媒体18などから構成される。この記憶部21には、後述のように、通信データ34、秘密鍵35、公開パラメータ36及び一時情報37が格納される。
通信データ34は、検証対象データ40、証蹟41及びデータ識別子42を含む。検証対象データ40は、サービス提供サーバ3に預けられるユーザデータである。本実施の形態の場合、この検証対象データ40は、サービス提供サーバ3に送信した後に削除されるものとするが、必ずしも削除する必要はない。
証蹟41は、サービス提供サーバ3が検証対象データ40を保持しているか否かを検証する際に用いられるデータであり、検証対象データ40を用いて算出される。証蹟41の具体的な算出手法については後述する。データ識別子42は、検証対象データ40をサービス提供サーバ3に登録する際に作成される当該検証対象データ40に固有の識別子である。データ識別子42は、サービス提供サーバ3に対して所望する検証対象データ40を指定する際に用いられる。
秘密鍵35は、証蹟41を生成する際に用いられる暗号鍵であり、ユーザ端末2の素数生成部32において作成される。さらに公開パラメータ36は、検証対象データ40がサービス提供サーバ3に保持されているか否かを検証する際に用いる暗号鍵であり、一時情報37は、制御部20により実行される処理において一時的に必要となるデータである。
入力部22は、ユーザがユーザ端末2を操作する際に利用する機能部分であり、入力装置16(図2)から構成される。また出力部23は、各種情報をユーザに提示する機能部分であり、出力装置17(図2)から構成される。さらに通信部24は、ユーザ端末2がサービス提供サーバ3と通信を行う際に利用するインタフェースであり、通信装置15(図2)から構成される。
図4は、サービス提供サーバ3の論理構成を示す。この図4からも明らかなように、サービス提供サーバ3は、制御部50、記憶部51、入力部52、出力部53及び通信部54を備えて構成される。
制御部50は、後述する各種処理を実行する機能ブロックであり、全体処理部60及び基本演算部61を備える。これら全体処理部60及び基本演算部61は、サービス提供サーバ3のCPU11(図2)がメモリ12(図2)に展開された対応するプログラムを実行することにより具現化される。
全体処理部60は、サービス提供サーバ3における処理を統括制御する機能部分であり、入力部52を介して入力されたユーザからの指示に応じた制御処理や、出力部53への画像出力、通信部54を介したユーザ端末2との通信等の各種処理を実行する。また基本演算部61は、加算、減算、比較演算などの基本的な算術演算に関する処理を行う機能部分である。
記憶部51は、図2について上述したメモリ12、外部記憶装置13及び記憶媒体18などから構成される。この記憶部51には、後述のように、検証対象データ40、データ識別子42、公開パラメータ36及び一時情報62が格納される。
検証対象データ40は、ユーザ端末2から預けられたユーザデータであり、データ識別子42は、検証対象データ40と共にユーザ端末2から送信されてきた当該検証対象データ40に固有の識別子である。また公開パラメータ36は、検証対象データ40がサービス提供サーバ3に保持されているか否かを検証する際に用いる暗号鍵であり、ユーザ端末2により予め登録される。一時情報62は、制御部50により実行される処理において一時的に必要となる情報である。
入力部52は、ユーザがサービス提供サーバ3を操作する際に利用する機能部分であり、入力装置16(図2)から構成される。また出力部53は、各種情報をサービス提供サーバ3のオペレータに提示する機能部分であり、出力装置17(図2)から構成される。さらに通信部54は、サービス提供サーバ3がユーザ端末2と通信を行う際に利用するインタフェースであり、通信装置15(図2)から構成される。
(1−2)本クラウドシステムにおけるデータ保持検証方式
次に、本クラウドシステム1におけるデータ保持検証方式について図3〜図8を参照して説明する。本データ保持検証方式は、予め公開パラメータ36(図3)をサービス提供サーバ3に登録しておく公開パラメータ登録処理と、ユーザ端末2内の検証対象データ40(図3)をサービス提供サーバ3に預ける検証対象データ登録処理と、この後、かかる検証対象データ40がサービス提供サーバ3に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
次に、本クラウドシステム1におけるデータ保持検証方式について図3〜図8を参照して説明する。本データ保持検証方式は、予め公開パラメータ36(図3)をサービス提供サーバ3に登録しておく公開パラメータ登録処理と、ユーザ端末2内の検証対象データ40(図3)をサービス提供サーバ3に預ける検証対象データ登録処理と、この後、かかる検証対象データ40がサービス提供サーバ3に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
(1−2−1)公開パラメータ登録処理
図5は、本実施の形態による公開パラメータ登録処理の一連の流れを示す。この公開パラメータ登録処理は、クラウドサービス事業者に預けた検証対象データ40をサービス提供サーバ3が保持しているか否かを検証できるように、ユーザ端末2及びサービス提供サーバ3間で公開パラメータを共有するために事前に行われる処理である。
図5は、本実施の形態による公開パラメータ登録処理の一連の流れを示す。この公開パラメータ登録処理は、クラウドサービス事業者に預けた検証対象データ40をサービス提供サーバ3が保持しているか否かを検証できるように、ユーザ端末2及びサービス提供サーバ3間で公開パラメータを共有するために事前に行われる処理である。
この公開パラメータ登録処理は、ユーザが自己のユーザ端末2の入力部22を操作して、秘密鍵35及び公開パラメータ36の設定情報を入力すると共に、公開パラメータ36のサービス提供サーバ3への登録指示(以下、これを公開パラメータ登録指示と呼ぶ)を入力することにより開始される。
実際上、ユーザ端末2の全体処理部30(図3)は、入力部22を介してかかる公開パラメータ登録指示が入力されると(SP1)、まず、素数生成部32に対して素数を生成するよう指示を与える。かくして素数生成部32は、かかる指示に従って、2つの素数(p及びqとする)を生成する。そして全体処理部30は、素数生成部32が生成したこれら2つの素数p,qを秘密鍵35として記憶部21に格納する(SP2)。
続いて、全体処理部30は、ステップSP1において記憶部21に格納した2つの秘密鍵p,qを読み出し、読み出した2つの秘密鍵p,qと、これら2つの秘密鍵p,qの積を演算すべき指示とを基本演算部33に指示を与える。かくして基本演算部33は、かかる指示に従って、これら2つの秘密鍵p,qの積を算出する(SP3)。
次いで、全体処理部30は、基本演算部33により算出されたかかる2つの秘密鍵p,qの積を公開パラメータ36として記憶部21に格納すると共に、当該公開パラメータ36を通信部24(図3)を介してサービス提供サーバ3に送信する(SP4)。
一方、サービス提供サーバ3の全体処理部60(図4)は、かかる公開パラメータ36を通信部54を介して受信すると(SP5)、この公開パラメータ36を記憶部51に格納する(SP6)。また全体処理部60は、この後、かかる公開パラメータ36を正常に登録(正常に記憶部51に格納)できたか否かを表す登録処理結果を、通信部54を介してユーザ端末2に送信する(SP7)。
ユーザ端末2の全体処理部30は、この登録処理結果を通信部24を介して受信すると(SP8)、当該登録処理結果に基づいて、サービス提供サーバ3への公開パラメータ36の登録が成功したか否かを判定する(SP9)。そして全体処理部30は、公開パラメータ36の登録が失敗したと判定した場合には、公開パラメータ36の再送信処理を実行する(SP4)。これに対して全体処理部30は、公開パラメータ36の登録が成功したと判定した場合には、判定結果を出力部23に表示させ(SP10)、この公開パラメータ登録処理を終了する。
(1−2−2)検証対象データ登録処理
一方、図6は、本実施の形態による検証対象データ登録処理の一連の流れを示す。この検証対象データ登録処理は、検証対象データ40を、当該検証対象データ40に基づく証蹟41(図3)を生成してからサービス提供サーバ3に預ける処理である。
一方、図6は、本実施の形態による検証対象データ登録処理の一連の流れを示す。この検証対象データ登録処理は、検証対象データ40を、当該検証対象データ40に基づく証蹟41(図3)を生成してからサービス提供サーバ3に預ける処理である。
この検証対象データ登録処理は、ユーザが自己のユーザ端末2の入力部22を操作して、当該ユーザ端末2の記憶部21に格納されている検証対象データ40の中から所望の検証対象データ40を指定し、その検証対象データ40のサービス提供サーバ3への登録指示(以下、これを検証対象データ登録指示と呼ぶ)を入力することにより開始される。
実際上、ユーザ端末2の全体処理部30(図3)は、入力部22を介してかかる検証対象データ登録指示が入力されると(SP20)、まず、検証対象データ登録指示において指定された登録対象の検証対象データ40のデータ識別子42を生成し、生成したデータ識別子42を記憶部21に格納する(SP21)。
続いて、全体処理部30は、基本演算部33に対して、公開パラメータ登録処理(図5)のステップSP2において記憶部21に格納した2つの秘密鍵p,qと、検証対象データ登録指示において指定された検証対象データ40とを用いて、その検証対象データ40の証蹟41を作成するよう指示を与える。かくして基本演算部33は、かかる指示に従って、登録対象の検証対象データ40をMi、証蹟41をmiとして、次式を満たす証蹟41を算出し、算出した証蹟41を記憶部21に格納する(SP22)。
なお「mod」は、除算の余りを求める演算子である。従って、(1)式は、一方の秘密鍵pから「1」を引いた値と、他方の秘密鍵qから「1」を引いた値との積(p−1)(q−1)で検証対象データ40を除算した余りを証蹟41として算出することを表す。
この後、全体処理部30は、検証対象データ登録指示において指定された検証対象データ40と、ステップSP21において生成した当該検証対象データ40のデータ識別子42とを、通信部24を介してサービス提供サーバ3に送信する(SP23)。
一方、サービス提供サーバ3の全体処理部60(図4)は、かかる検証対象データ40及びデータ識別子42を通信部54を介して受信すると(SP24)、図7に示すように、これら検証対象データ40及びデータ識別子42を対応付けて記憶部51に格納する(SP25)。また全体処理部60は、この後、これら検証対象データ40及びデータ識別子42を正常に登録(正常に記憶部51に登録)できたか否かを表す登録処理結果を、通信部54を介してユーザ端末2に送信する(SP26)。
ユーザ端末2の全体処理部30は、この登録処理結果を通信部24を介して受信すると(SP27)、当該登録処理結果に基づいて、サービス提供サーバ3への検証対象データ40及びデータ識別子42の登録が成功したか否かを判定する(SP28)。そして全体処理部30は、検証対象データ40及びデータ識別子42の登録が失敗したと判定した場合には、検証対象データ40及びデータ識別子42の再送信処理を実行する(SP23)。これに対して全体処理部30は、検証対象データ40及びデータ識別子42の登録が成功したと判定した場合には、判定結果を出力部23に表示させ(SP29)、この検証対象データ登録処理を終了する。
(1−2−3)検証対象データ保持検証処理
他方、図8は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末2が先に生成した証蹟41(図3)を用いて、サービス提供サーバ3に検証対象データ40(図4)を送信させることなく、サービス提供サーバ3が検証対象データ40を保持しているか否かを検証する処理である。
他方、図8は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末2が先に生成した証蹟41(図3)を用いて、サービス提供サーバ3に検証対象データ40(図4)を送信させることなく、サービス提供サーバ3が検証対象データ40を保持しているか否かを検証する処理である。
この検証対象データ保持検証処理は、ユーザが自己のユーザ端末2の入力部22を操作して、所望する検証対象データ40(図3)のデータ識別子42(図3)を指定し、対応する検証対象データ40がサービス提供サーバ3に保持されているか否かを検証すべき旨の指示(以下、これを検証対象データ保持検証指示と呼ぶ)を入力することにより開始される。
実際上、ユーザ端末2の全体処理部30は、入力部22を介して検証対象データ40のデータ識別子42を指定したかかる検証対象データ保持検証指示が入力されると(SP30)、まず、乱数生成部31(図3)に対して乱数を生成するよう指示を与える。かくして乱数生成部31は、かかる指示に従って、乱数を生成する(SP31)。また全体処理部30は、このとき乱数生成部31が生成した乱数と、上述の検証対象データ保持検証指示において指定されたデータ識別子42とを、通信部24を介してサービス提供サーバ3に送信する(SP32)。
一方、サービス提供サーバ3の全体処理部60は、かかる乱数及びデータ識別子42(図4)を通信部54を介して受信すると、これら乱数及びデータ識別子42を記憶部51に格納し(SP33)、この後、このデータ識別子42に基づいて、当該サービス提供サーバ3が保持していることを証明すべき検証対象データ40(図4)を特定する(SP34)。
続いて、全体処理部60は、基本演算部61(図4)に対して、ステップSP33において受信した乱数と、ステップSP34において特定した検証対象データ40と、公開パラメータ登録処理(図5)のステップSP6において記憶部51に格納した公開パラメータ36(図4)とを用いて、その検証対象データ40のサービス提供サーバ3側の証拠データ(以下、これをサーバ側証拠データと呼ぶ)を生成するよう指示を与える。
かくして基本演算部61は、かかる指示に従って、ステップSP33において受信した乱数をR、ステップSP34において特定した検証対象データをMi、公開パラメータ登録処理のステップSP6において記憶部51に格納した公開パラメータをNとして、次式を満たすサーバ側証拠データSiを算出し、算出したサーバ側証拠データSiを記憶部51に格納する(SP35)。
なお、上述のように「mod」は除算の余りを求める演算子である。従って、(2)式は、公開パラメータ36で乱数RのMi乗を除算した余りをサーバ側証拠データSiとして算出することを表している。
この後、全体処理部60は、記憶部51に格納されている上述のサーバ側証拠データSiを、通信部54を介してユーザ端末2に送信する(SP36)。
他方、ユーザ端末2の全体処理部30は、かかるサーバ側証拠データSiを通信部24を介して受信すると(SP37)、基本演算部33に対して、ステップSP31において乱数生成部31が生成した乱数と、公開パラメータ登録処理のステップSP6において基本演算部33が生成した公開パラメータ36と、検証対象データ登録処理(図6)のステップSP22において基本演算部33が生成した証蹟41とを用いて、ユーザ端末2側の証拠データ(以下、これをユーザ端末側証拠データと呼ぶ)を生成するよう指示を与える。
かくして基本演算部33は、かかる指示に従って、上記乱数をR、上記公開パラメータをN、上記証蹟をmiとして、次式を満たすユーザ端末側証拠データTiを算出し、算出したユーザ端末側証拠データTiを記憶部21に格納する(SP38)。
また基本演算部33は、この後、ステップSP37において受信したサーバ側証拠データSiと、ステップSP38において算出したユーザ端末側証拠データTiとを比較することにより、サービス提供サーバ3がそのとき対象としている検証対象データ40を保持しているか否かを判定する。
具体的に、基本演算部33は、フェルマーの小定理によれば、kを任意の整数として、次式
が成り立つことを利用して、サーバ側証拠データSi及びユーザ端末側証拠データTiが等しいか否かを判断する。
そして基本演算部33は、かかる判断処理により、サーバ側証拠データSi及びユーザ端末側証拠データTiが等しいとの判断結果を得た場合には、サービス提供サーバ3がそのとき対象としていた検証対象データ40を保持していると判定し、サーバ側証拠データSi及びユーザ端末側証拠データTiが等しくない(異なっている)との判断結果を得た場合には、サービス提供サーバ3が当該検証対象データ40を保持していないと判定する(SP39)。
そして全体処理部30は、かかる基本演算部33の判定結果を出力部23に表示させ(SP40)、この後、この検証対象データ保持検証処理を終了する。
(1−3)本実施の形態の効果
以上のように本実施の形態のクラウドシステム1では、サービス提供サーバ3から検証対象データ40(図4)を送信してもらうことなく、ユーザ端末2側において、当該検証対象データ40をサービス提供サーバ3が保持しているか否かを検証することができる。従って、検証対象データ40が膨大なデータサイズである場合にも、ユーザ端末2が少ない通信量(データ識別子42及び乱数の送信と、サーバ側証拠データSiの受信のみ)で、サービス提供サーバ3が検証対象データ40を保持しているか否かを検証することができる。
以上のように本実施の形態のクラウドシステム1では、サービス提供サーバ3から検証対象データ40(図4)を送信してもらうことなく、ユーザ端末2側において、当該検証対象データ40をサービス提供サーバ3が保持しているか否かを検証することができる。従って、検証対象データ40が膨大なデータサイズである場合にも、ユーザ端末2が少ない通信量(データ識別子42及び乱数の送信と、サーバ側証拠データSiの受信のみ)で、サービス提供サーバ3が検証対象データ40を保持しているか否かを検証することができる。
また本実施の形態のクラウドシステム1では、検証対象データ40をサービス提供サーバ3が保持しているか否かを検証するに際してサービス提供サーバ3やユーザ端末2において必要な計算は(2)式や(3)式の計算だけであり、非常に簡易な計算により検証対象データ40をサービス提供サーバ3が保持しているか否かを検証することができる。
かくするにつき、本実施の形態によるデータ保持検証方式によれば、ユーザ端末2がサービス提供サーバ3に預けた検証対象データ40をサービス提供サーバ3が保持しているか否かの検証を少ない通信量又は計算量で行うことができる。
(1−4)第1の実施の形態の適用対象
第1の実施の形態のデータ保持検証方式によれば、例えば、電子文書(データ)を預かるサービスを提供する電子文書保管サービス事業者が、預けた電子文書を紛失していないことをユーザが確認できる。すなわち、電子文書保管サービス事業者に預ける電子文書を検証対象データ40とし、この証蹟41をユーザが事前に作成することにより、電子文書が電子文書保管サービス事業者に管理されていることをユーザが確認することができる。
第1の実施の形態のデータ保持検証方式によれば、例えば、電子文書(データ)を預かるサービスを提供する電子文書保管サービス事業者が、預けた電子文書を紛失していないことをユーザが確認できる。すなわち、電子文書保管サービス事業者に預ける電子文書を検証対象データ40とし、この証蹟41をユーザが事前に作成することにより、電子文書が電子文書保管サービス事業者に管理されていることをユーザが確認することができる。
また本実施の形態のデータ保持検証方式は、電子文書保管サービス事業者だけを適用対象とするものではない。例えば、自治体などが、ある行政文書を確かに保管していることも同様に確認する処理にも適用することができる。
さらに自治体では、保管期間が満了したもののうち、保管価値のある行政文書は公文書館などへ移管することがある。従って、公文書館での保管状況の確認についても同様に本実施の形態のデータ保持検証方式を適用することができる。
さらに本実施の形態のデータ保持検証方式は、公証役場における電子公証サービスにも適用可能である。すなわち、嘱託人等の依頼によって公証役場が公文書の保管を行うが、ここでも、嘱託人等が予め公文書の証蹟を作成することにより、公証役場が公文書を保持しているかを確認可能となる。
(2)第2の実施の形態
上述した第1の実施の形態のデータ保持検証方法によれば、論理的にはサービス提供サーバ3が検証対象データ40を保持しているか否かの検証を無限に行うことができるものの、ユーザ端末2やサービス提供サーバ3においてべき乗剰余演算が必要となり、計算能力が乏しいユーザ端末2又はサービス提供サーバ3には負荷が大きい。
上述した第1の実施の形態のデータ保持検証方法によれば、論理的にはサービス提供サーバ3が検証対象データ40を保持しているか否かの検証を無限に行うことができるものの、ユーザ端末2やサービス提供サーバ3においてべき乗剰余演算が必要となり、計算能力が乏しいユーザ端末2又はサービス提供サーバ3には負荷が大きい。
そこで、本実施の形態においては、サービス提供サーバ3が検証対象データを保持しているか否かの検証を行い得る回数が有限回に制限されるものの、少ない計算量でサービス提供サーバ3が検証対象データを保持しているか否かを検証し得るデータ保持検証方式について説明する。
(2−1)本実施の形態によるクラウドシステムの構成
図1において、70は全体として第2の実施の形態によるクラウドシステムを示す。このクラウドシステム70は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末71と、クラウドサービス事業者のサービス提供サーバ72とを有し、これらがネットワーク4を介して接続されている。ユーザ端末71及びサービス提供サーバ72のハードウェア構成は、第1の実施の形態と同様であるため、ここでの説明は省略する。
図1において、70は全体として第2の実施の形態によるクラウドシステムを示す。このクラウドシステム70は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末71と、クラウドサービス事業者のサービス提供サーバ72とを有し、これらがネットワーク4を介して接続されている。ユーザ端末71及びサービス提供サーバ72のハードウェア構成は、第1の実施の形態と同様であるため、ここでの説明は省略する。
図3との対応部分に同一符号を付して示す図9は、第2の実施の形態によるユーザ端末71の論理構成を示す。この図9からも明らかなように、本実施の形態のユーザ端末71は、制御部80に素数生成部32(図3)に代えて一方向性関数部81が設けられている点と、記憶部21に公開パラメータ36(図3)が格納されない点とを除いて第1の実施の形態のユーザ端末2(図3)と同様に構成されている。
一方向性関数部81は、ユーザ端末71のCPU11(図2)がメモリ12(図2)に格納された対応するプログラムを実行することにより具現化される機能部分であり、全体処理部82からの指示に応じて、検証対象データ40に対する一方向性関数による処理を行う。なお、一方向性関数とは、関数の出力値から入力値を求めることが困難な関数のことであり、一般的には暗号学的ハッシュ関数や、公開鍵暗号関数(ただし秘密鍵は秘密にする)、秘密鍵暗号関数(ただし秘密鍵は秘密にする)などがこれに該当する。
また図4との対応部分に同一符号を付した図10は、第2の実施の形態によるサービス提供サーバ72を示す。この図10からも明らかなように、本実施の形態のサービス提供サーバ72は、制御部90に基本演算部33(図4)に代えて一方向性関数部91が設けられている点と、記憶部51に公開パラメータ36(図4)が格納されない点とを除いて第1の実施の形態のサービス提供サーバ3と同様に構成されている。一方向性関数部91は、サービス提供サーバ72のCPU11(図2)がメモリ12(図2)に格納された対応するプログラムを実行することにより具現化される機能部分であり、ユーザ端末71の一方向性関数部81と同様の機能を有する。
(2−2)本実施の形態によるデータ保持検証方式
本実施の形態によるデータ保持検証方式は、予め複数の秘密鍵をサービス提供サーバ72に登録しておく秘密鍵登録処理と、検証対象データ40をサービス提供サーバ72に預ける検証対象データ登録処理と、この後、かかる検証対象データ40がサービス提供サーバ72に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
本実施の形態によるデータ保持検証方式は、予め複数の秘密鍵をサービス提供サーバ72に登録しておく秘密鍵登録処理と、検証対象データ40をサービス提供サーバ72に預ける検証対象データ登録処理と、この後、かかる検証対象データ40がサービス提供サーバ72に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
(2−2−1)秘密鍵登録処理
秘密鍵登録処理は、ユーザが自己のユーザ端末71の入力部22を操作して、秘密鍵の設定情報及び作成個数を入力すると共に、秘密鍵のサービス提供サーバ72への登録指示(以下、これを秘密鍵登録指示と呼ぶ)を入力することにより開始される。
秘密鍵登録処理は、ユーザが自己のユーザ端末71の入力部22を操作して、秘密鍵の設定情報及び作成個数を入力すると共に、秘密鍵のサービス提供サーバ72への登録指示(以下、これを秘密鍵登録指示と呼ぶ)を入力することにより開始される。
実際上、ユーザ端末71の全体処理部82(図9)は、入力部22を介してかかる秘密鍵登録指示が入力されると、乱数生成部31に対して秘密鍵登録指示において指定された個数の秘密鍵を作成するよう指示を与える。かくして乱数生成部31は、かかる指示に従って、指定された個数の乱数(k1〜kn)を生成する。そして全体処理部は、乱数生成部31が生成したこれらの乱数を、それぞれ秘密鍵83(図9)として記憶部21に格納する。
(2−2−2)検証対象データ登録処理
本実施の形態のデータ保持検証方式における検証対象データ登録処理は、図6について上述した第1の実施の形態による検証対象データ登録処理と、ステップSP22における証蹟41の生成方法が異なる点を除いて同様である。
本実施の形態のデータ保持検証方式における検証対象データ登録処理は、図6について上述した第1の実施の形態による検証対象データ登録処理と、ステップSP22における証蹟41の生成方法が異なる点を除いて同様である。
実際上、本データ保持検証方式の場合、検証対象データ登録処理のステップSP22において、全体処理部82(図9)は、基本演算部33に対して、ステップSP20で受領した検証対象データ登録指示において指定されている検証対象データ40の証蹟41を生成するよう指示を与える。かくして基本演算部33は、かかる指示に従って、上述した秘密鍵登録処理において生成した複数の秘密鍵83の中から未使用の秘密鍵83を1つ選択し、選択した秘密鍵83をkj(j=1〜n)、かかる検証対象データ40をMi、証蹟41をmiとして、次式を満たす証蹟41を算出し、算出した証蹟41を記憶部21に格納する。
なお「Func」は一方向性関数を表す演算子であり、「||」は前後の数値の結合を表す演算子である。具体的には、「Mi||kj」は、「Mi」の値を上位、「kj」の値を下位とするデータを表す。従って、(5)式は、検証対象データ40の値と、秘密鍵kjの値とを結合した数値を入力とする一方向関数Funcの出力値を証蹟41として算出することを表す。
本データ保持検証方式の場合、検証対象データ登録処理におけるこれ以外の処理内容は図6について上述した第1の実施の形態による検証対象データ登録処理の処理内容と同様であるため、これ以上の説明は省略する。
(2−2−3)検証対象データ保持検証処理
図11は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末71が先に生成した証蹟41(図9)を用いて、サービス提供サーバ72に検証対象データ40を送信させることなく、サービス提供サーバ72が検証対象データ40を保持しているか否かを検証する処理である。
図11は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末71が先に生成した証蹟41(図9)を用いて、サービス提供サーバ72に検証対象データ40を送信させることなく、サービス提供サーバ72が検証対象データ40を保持しているか否かを検証する処理である。
この検証対象データ保持検証処理は、ユーザが自己のユーザ端末71の入力部22を操作して、所望する検証対象データ40のデータ識別子42を指定し、対応する検証対象データ40がサービス提供サーバ72に保持されているか否かを検証すべき旨の指示(検証対象データ保持検証指示)を入力することにより開始される。
実際上、ユーザ端末71の全体処理部82(図9)は、入力部22を介して検証対象データ40のデータ識別子42を指定したかかる検証対象データ保持検証指示が入力されると(SP50)、この検証対象データ保持検証指示において指定されたデータ識別子42と、当該データ識別子42に対応する検証対象データ40をサービス提供サーバ72に登録するに際して当該検証対象データ40の証蹟41を生成したときに使用した秘密鍵83とを、通信部24を介してサービス提供サーバ72に送信する(SP51)。
一方、サービス提供サーバ72の全体処理部92(図10)は、かかるデータ識別子42及び秘密鍵83を通信部54を介して受信すると、これらデータ識別子42及び秘密鍵83を記憶部51に格納し(SP52)、この後、このデータ識別子42に基づいて、当該サービス提供サーバ72が保持していることを証明すべき検証対象データ40を特定する(SP53)。
続いて、全体処理部92は、一方向性関数部91に対して、ステップSP52において受信した秘密鍵83と、ステップSP53において特定した検証対象データ40とを用いて、その検証対象データ40のサービス提供サーバ72側の証拠データ(サーバ側証拠データ)を生成するよう指示を与える。かくして一方向性関数部91は、かかる指示に従って、ステップSP52において受信した秘密鍵83をkj、ステップSP53において特定した検証対象データ40をMiとして、次式を満たすサーバ側証拠データSiを算出し、算出したサーバ側証拠データSiを記憶部51に格納する(SP54)。
この後、全体処理部92は、記憶部51に格納されている上述のサーバ側証拠データSiを、通信部54を介してユーザ端末71に送信する(SP55)。
他方、ユーザ端末71の全体処理部82(図9)は、かかるサーバ側証拠データSiを通信部24を介して受信すると(SP56)、基本演算部33に対して、このとき対象としている検証対象データ40の証蹟41と、ステップSP56において受信したサーバ側証拠データSiとを比較するよう指示を与える。かくして基本演算部33は、この指示に従って、かかる証蹟41を記憶部21から読み出し、読み出した証蹟41をユーザ端末71側の証拠データ(ユーザ端末側証拠データ)Tiとして、このユーザ端末側証拠データTiと、ステップSP56において受信したサーバ側証拠データSiとを比較する。
そして基本演算部33は、これらサーバ側証拠データSi及びユーザ端末側証拠データTiが等しい場合には、サービス提供サーバ72がそのとき対象としていた検証対象データ40を保持していると判定し、サーバ側証拠データSi及びユーザ端末側証拠データTiが等しくない(異なっている)場合には、サービス提供サーバ72が当該検証対象データ40を保持していないと判定する(SP57)。
そして全体処理部82は、かかる基本演算部33の判定結果を出力部23に表示させ(SP58)、この後、この検証対象データ保持検証処理を終了する。
(2−3)本実施の形態の効果
以上のように本実施の形態によるクラウドシステム70では、第1の実施の形態と同様に、サービス提供サーバ72から検証対象データ40(図10)を送信してもらうことなく、ユーザ端末71側において、当該検証対象データ40をサービス提供サーバ3が保持しているか否かを検証することができる。
以上のように本実施の形態によるクラウドシステム70では、第1の実施の形態と同様に、サービス提供サーバ72から検証対象データ40(図10)を送信してもらうことなく、ユーザ端末71側において、当該検証対象データ40をサービス提供サーバ3が保持しているか否かを検証することができる。
また本実施の形態によるクラウドシステム70では、検証対象データ40をサービス提供サーバ72が保持しているか否かを検証するに際してユーザ端末71やサービス提供サーバ72において必要な計算は(5)式や(6)式の計算だけであり、非常に簡易な計算により検証対象データ40をサービス提供サーバ72が保持しているか否かを検証することができる。
かくするにつき、本実施の形態によるデータ保持検証方式によれば、ユーザ端末71がサービス提供サーバ72に預けた検証対象データ40をサービス提供サーバ72が保持しているか否かの検証を少ない通信量又は計算量で行うことができる。
なお、本実施の形態によるデータ保持検証方式が第1の実施の形態によるデータ保持検証方式と大きく異なるのは、サービス提供サーバ72がサーバ側証拠データSiを生成する際、ユーザ端末71が乱数を送信するか、秘密鍵83を送信するかの点である。
この場合において、第1の実施の形態によるデータ保持検証方式では、基本的に毎回異なる乱数を送信するのと同様、本実施の形態によるデータ保持検証方式でも、毎回異なる値の秘密鍵83をユーザ端末71からサービス提供サーバ72に送信する必要がある。さもないと、サービス提供サーバ72は、検証対象データ40を保持していなくても、サーバ側証拠データSiを再利用し、ユーザ端末71に検証対象データ40を保持していると偽証できるからである。従って、本実施の形態によるデータ保持検証方式では、秘密鍵登録処理で作成した秘密鍵83の個数分しか、サービス提供サーバ72が検証対象データ40を保持しているか否かを検証することができない。
(3)第3の実施の形態
第1の実施の形態による検証対象データ保持検証方式や第2の実施の形態による検証対象データ保持検証方式では、サービス提供サーバ3,72が検証対象データ40を保持しているか否かを検証するために、検証対象データ40ごとにユーザ端末2,71が証蹟41を保持する必要がある。そのため、複数のユーザ端末2,71からサービス提供サーバ3,72が同一の検証対象データ40を保持しているか否かを検証し得るようにするためには、複数のユーザ端末2,71間で証蹟41を共有する必要がある。
第1の実施の形態による検証対象データ保持検証方式や第2の実施の形態による検証対象データ保持検証方式では、サービス提供サーバ3,72が検証対象データ40を保持しているか否かを検証するために、検証対象データ40ごとにユーザ端末2,71が証蹟41を保持する必要がある。そのため、複数のユーザ端末2,71からサービス提供サーバ3,72が同一の検証対象データ40を保持しているか否かを検証し得るようにするためには、複数のユーザ端末2,71間で証蹟41を共有する必要がある。
しかしながら、複数のユーザ端末2,71間で証蹟41を共有する場合、検証対象データ40が更新されるごとに各ユーザ端末2,71がそれぞれ保持するその検証対象データ40の証蹟41をすべて同様に更新することが必要になるため、実際の運用には手間がかかり過ぎる。
一方、非特許文献1に示された既存技術では、ユーザ端末2,71及びサービス提供サーバ3,72の双方に、計算負荷の高いべき乗剰余乗算と呼ばれる計算を大量に処理することが要求される。
そこで、ユーザ端末2,71に証蹟41を保持させることなく、かつユーザ端末2,71にもサービス提供サーバ3,72にも、非特許文献1に開示された既存技術よりもはるかに少ない回数のべき乗剰余乗算で、サービス提供サーバ3,72が検証対象データ40を保持しているか否かを検証可能な第3の実施の形態による検証データ保持検証方式について、以下に説明する。
(3−1)本実施の形態によるクラウドシステムの構成
図1において、100は全体として第3の実施の形態によるクラウドシステムを示す。このクラウドシステム100は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末101と、クラウドサービス事業者のサービス提供サーバ102とを有し、これらがネットワーク4を介して接続されている。ユーザ端末101及びサービス提供サーバ102のハードウェア構成は第1の実施の形態と同様であるため、ここでの説明は省略する。
図1において、100は全体として第3の実施の形態によるクラウドシステムを示す。このクラウドシステム100は、例えば携帯電話機やパーソナルコンピュータから構成されるユーザ端末101と、クラウドサービス事業者のサービス提供サーバ102とを有し、これらがネットワーク4を介して接続されている。ユーザ端末101及びサービス提供サーバ102のハードウェア構成は第1の実施の形態と同様であるため、ここでの説明は省略する。
図3との対応部分に同一符号を付して示す図12は、第3の実施の形態によるユーザ端末101の論理構成を示す。この図12からも明らかなように、本実施の形態のユーザ端末101は、制御部110に一方向性関数部111が設けられている点と、サービス提供サーバ102に預けた検証対象データ40の証蹟41(図3)が記憶部21に格納されていない点とを除いて第1の実施の形態のユーザ端末2(図3)と同様に構成されている。
一方向性関数部111は、ユーザ端末101のCPU11(図2)がメモリ12(図2)に格納された対応するプログラムを実行することにより具現化される機能部分である。この一方向性関数は、図9について上述した第2の実施の形態の一方向性関数部81と同様の機能を有するものであるため、その詳細についての説明は省略する。
また図4において102は、第3の実施の形態によるサービス提供サーバを示す。このサービス提供サーバ102は、制御部120の全体処理部121により実行される各種処理の処理内容が第1の実施の形態の全体処理部60と異なる点を除いて第1の実施の形態によるサービス提供サーバ3と同様に構成される。なお、全体処理部121は、サービス提供サーバ102のCPU11(図2)がメモリ12(図2)に格納された対応するプログラムを実行することにより具現化される機能部分である。
(3−2)本実施の形態によるデータ保持検証方式
次に、本実施の形態によるデータ保持検証方式について説明する。本実施の形態によるデータ保持検証方式は、第1の実施の形態によるデータ保持検証方式と同様に、予め公開パラメータ36をサービス提供サーバ102に登録しておく公開パラメータ登録処理と、検証対象データ40をサービス提供サーバ102に預ける検証対象データ登録処理と、この後、かかる検証対象データがサービス提供サーバ102に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
次に、本実施の形態によるデータ保持検証方式について説明する。本実施の形態によるデータ保持検証方式は、第1の実施の形態によるデータ保持検証方式と同様に、予め公開パラメータ36をサービス提供サーバ102に登録しておく公開パラメータ登録処理と、検証対象データ40をサービス提供サーバ102に預ける検証対象データ登録処理と、この後、かかる検証対象データがサービス提供サーバ102に保持されていることを検証する検証対象データ保持検証処理とにより実現される。以下、これら公開パラメータ登録処理、検証対象データ登録処理及び検証対象データ保持検証処理について説明する。
(3−2−1)公開パラメータ登録処理
図13は、本実施の形態による公開パラメータ登録処理の一連の流れを示す。この公開パラメータ登録処理は、サービス提供サーバ102に預けた検証対象データ40(図12)を当該サービス提供サーバ102が保持しているか否かを検証できるように、ユーザ端末101及びサービス提供サーバ102間で公開パラメータ36(図12)を共有するために事前に行われる処理である。
図13は、本実施の形態による公開パラメータ登録処理の一連の流れを示す。この公開パラメータ登録処理は、サービス提供サーバ102に預けた検証対象データ40(図12)を当該サービス提供サーバ102が保持しているか否かを検証できるように、ユーザ端末101及びサービス提供サーバ102間で公開パラメータ36(図12)を共有するために事前に行われる処理である。
この公開パラメータ登録処理は、ユーザが自己のユーザ端末101の入力部22を操作して、秘密鍵及び公開パラメータの設定情報を入力すると共に、公開パラメータのサービス提供サーバ102への登録指示(公開パラメータ登録指示)を入力することにより開始される。
実際上、ユーザ端末101の全体処理部112(図12)は、入力部22を介してかかる公開パラメータ登録指示が入力されると(SP60)、まず、素数生成部32に対して素数を生成するよう指示を与える。かくして素数生成部32は、かかる指示に従って、2つの素数(p及びqとする)を生成する。そして全体処理部112は、素数生成部32が生成したこれら2つの素数p,qと、これら2つの素数p,qの積を演算すべき指示とを基本演算部33(図12)に指示を与える。かくして基本演算部33は、かかる指示に従って、これら2つの素数p,qの積を演算する。そして全体処理部112は、基本演算部33により算出されたかかる2つの素数p,qの積を公開パラメータ36(図12)として記憶部21に格納する(SP61)。
続いて、全体処理部112は、ステップSP61において生成した公開パラメータ36をNとして、乱数生成部31(図12)に対して0以上N未満の2つの乱数を生成するよう指示を与える。かくして乱数生成部31は、かかる指示に従って、2つの乱数(g及びdとする)を生成する。そして全体処理部112は、乱数生成部31が生成したこれら2つの乱数を秘密鍵g,dとして記憶部21に格納すると共に、次式
を満たす秘密鍵dの逆元eを算出し、算出した秘密鍵dの逆元eを記憶部21に格納する。さらに全体処理部112は、乱数生成部31に対して乱数を生成するよう指示を与える。かくして乱数生成部31は、かかる指示に従って、1つの乱数(kとする)を生成する。そして全体処理部112は、乱数生成部31が生成したこの乱数を秘密鍵kとして記憶部21に格納する(SP62)。
この後、全体処理部112は、ステップSP61において生成した公開パラメータ36を通信部24(図12)を介してサービス提供サーバ102に送信する(SP63)。
一方、サービス提供サーバ102の全体処理部121(図4)は、かかる公開パラメータ36を通信部54を介して受信すると(SP64)、この公開パラメータ36を記憶部51に格納する(SP65)。また全体処理部112は、この後、かかる公開パラメータ36を正常に登録(正常に記憶部51に格納)できたか否かを表す登録処理結果を、通信部54を介してユーザ端末101に送信する(SP66)。
ユーザ端末101の全体処理部112は、この登録処理結果を通信部24を介して受信すると(SP67)、当該登録処理結果に基づいて、サービス提供サーバ102への公開パラメータ36の登録が成功したか否かを判定する(SP68)。そして全体処理部112は、公開パラメータ36の登録が失敗したと判定した場合には、公開パラメータ36の再送信処理を実行する(SP63)。これに対して全体処理部112は、公開パラメータ36の登録が成功したと判定した場合には、結果を出力部23に表示させ(SP69)、この公開パラメータ登録処理を終了する。
(3−2−2)検証対象データ登録処理
一方、図14は、本実施の形態による検証対象データ登録処理の一連の流れを示す。この検証対象データ登録処理は、ユーザ端末101が後にサービス提供サーバ102が検証対象データ40(図12)を保持しているか否かを検証できるように、検証対象データ40ごとに証蹟をそれぞれ生成し、生成した証蹟を検証対象データ40と共にサービス提供サーバ3に預ける処理である。
一方、図14は、本実施の形態による検証対象データ登録処理の一連の流れを示す。この検証対象データ登録処理は、ユーザ端末101が後にサービス提供サーバ102が検証対象データ40(図12)を保持しているか否かを検証できるように、検証対象データ40ごとに証蹟をそれぞれ生成し、生成した証蹟を検証対象データ40と共にサービス提供サーバ3に預ける処理である。
この検証対象データ登録処理は、ユーザが自己のユーザ端末101(図12)の入力部22を操作して、当該ユーザ端末101の記憶部21に格納されている検証対象データ40の中から所望する検証対象データ40を指定し、その検証対象データ40のサービス提供サーバ102への登録指示(検証対象データ登録指示)を入力することにより開始される。
実際上、ユーザ端末101の全体処理部112(図12)は、入力部22を介してかかる検証対象データ登録指示が入力されると(SP70)、まず、検証対象データ登録指示において指定された検証対象データ40のデータ識別子42を生成する(SP71)。具体的に、全体処理部112は、図15に示すように、例えば1つのドキュメントでなる登録対象の検証対象データ40を所定単位で分割(例えば4,8,32又は64〔kbyte〕といったOSのファイルシステムごとに分割)し、かくして得られた検証対象データ40の分割データ40Aごとにそれぞれデータ識別子42Aを生成する。そして全体処理部112は、このようにして生成した検証対象データ40の各分割データ40Aのデータ識別子42Aをそれぞれ記憶部21(図12)に格納する(SP71)。
続いて、全体処理部112は、基本演算部33(図12)に対して、公開パラメータ登録処理(図13)のステップSP61において記憶部21に格納した公開パラメータ36(図12)と、当該公開パラメータ登録処理のステップSP62において記憶部21に格納した2つの秘密鍵g,dと、登録対象の検証対象データ40のすべての分割データ40Aとを記憶部21から読み出す。また全体処理部112は、読み出したこれら公開パラメータ36及び2つの秘密鍵g,dを用いて、公開パラメータ36をN、検証対象データ40の各分割データ40AをMi(j)(j=1〜n)、これら分割データ40Aごとの証蹟をmi(j)(j=1〜n)として、次式を満たす検証対象データ40の分割データ40Aごとの証蹟をそれぞれ算出し、算出したこれらの証蹟(mi(j)(j=1〜n))を記憶部21に格納する(SP72)。
なお、上述のように「mod」は除算の余りを求める演算子であり、「Func」は一方向性関数である。また「||」は前後の数値の結合を意味する演算子である。よって「k||j」は「k」の値を上位、「j」の値を下位とするデータを表す。また「Exp」は、第1の引数を底とし、第2の引数をべき乗指数とするべき乗指数関数を表す演算子である。よって、例えば「Exp(2、3)」は2の3乗(=8)を表し、「Exp(3、4)」は3の4乗(=81)を表す。
この後、全体処理部112は、検証対象データ40と、上述のようにして得られた検証対象データ40の各分割データ40Aのデータ識別子42Aと、これら分割データ40Aごとの証蹟41とを、通信部24を介してサービス提供サーバ102に送信する(SP73)。
一方、サービス提供サーバ102の全体処理部121(図4)は、かかる検証対象データ40と、当該検証対象データ40の分割データ40Aごとのデータ識別子42Aと、これら分割データ40Aごとの証蹟とを通信部54(図4)を介して受信すると(SP74)、これらを記憶部51(図4)に格納する(SP75)。この際、全体処理部121は、各データ識別子42Aと、対応する証蹟とを対応付けて記憶部51に格納する(SP75)。
また全体処理部121は、この後、これら検証対象データ40と、当該検証対象データ40の分割データ40Aごとのデータ識別子42Aと、これら分割データ40Aごとの証蹟とを正常に登録(正常に記憶部に登録)できたか否かを表す登録処理結果を、通信部54(図4)を介してユーザ端末101に送信する(SP76)。
ユーザ端末101の全体処理部112(図12)は、この登録処理結果を通信部24(図12)を介して受信すると(SP77)、当該登録処理結果に基づいて、サービス提供サーバ102への検証対象データ40と、当該検証対象データ40の分割データ40Aごとのデータ識別子42Aと、当該分割データ40Aごとの証蹟との登録が成功したか否かを判定する(SP78)。そして全体処理部112は、かかる登録が失敗したと判定した場合には、検証対象データ40と、当該検証対象データ40の分割データ40Aごとのデータ識別子42Aと、これら分割データ40Aごとの証蹟との再送信処理を実行する(SP73)。また全体処理部112は、かかる登録が成功したと判定した場合には、結果を出力部23に表示させ(SP79)、この検証対象データ登録処理を終了する。
なお、非特許文献1に開示された既存技術では、公開パラメータを共有する処理と、検証対象データの登録処理の処理手順は、本実施の形態による公開パラメータ登録処理及び検証対象データ登録処理とほぼ同様であるが、検証対象データ登録処理において実行される検証対象データ40の分割データ40Aごとの証蹟(mi(j))の作成方法が異なる。具体的には、かかる既存技術では、次式により検証対象データ40の分割データ40Aごとの証蹟(mi(j))をそれぞれ生成する。
ただし、(8)式及び(9)式は、計算式が異なるものの、最も計算負荷が高いべき乗剰余乗算は同様に1回であることから(8)式及び(9)式の計算量はほぼ同じであり、データのサイズもほぼ同じとみなすことができる。従って、本実施の形態による検証対象データ登録処理については、ユーザ端末101やサービス提供サーバ102に要求される計算量が非特許文献1に開示された既存技術と同等量であるとみなすことができる。
(3−2−3)検証対象データ保持検証処理
他方、図16は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末101が先に生成した検証対象データ40の分割データ40Aごとの証蹟を用いて、サービス提供サーバ102に検証対象データ40を送信させることなく、サービス提供サーバ102が検証対象データ40を保持しているか否かを検証する処理である。
他方、図16は、本実施の形態による検証対象データ保持検証処理の一連の流れを示す。この検証対象データ保持検証処理は、ユーザ端末101が先に生成した検証対象データ40の分割データ40Aごとの証蹟を用いて、サービス提供サーバ102に検証対象データ40を送信させることなく、サービス提供サーバ102が検証対象データ40を保持しているか否かを検証する処理である。
この検証対象データ保持検証処理は、ユーザが自己のユーザ端末101(図12)の入力部22を操作して、所望する検証対象データ40のデータ識別子42を指定し、対応する検証対象データ40がサービス提供サーバ102に保持されているか否かを検証すべき旨の指示(検証対象データ保持検証指)を入力することにより開始される。
そしてユーザ端末101の全体処理部112(図12)は、入力部22を介して検証対象データ40のデータ識別子42を指定したかかる検証対象データ保持検証指示が入力されると(SP80)、まず、一方向性関数部111に対して検証対象データ40の分割データ40Aごとのデータ識別子42Aを生成するよう指示を与える。かくして一方向性関数部111は、かかる指示に従って、公開パラメータ登録処理(図13)のステップSP62において記憶部21に格納した秘密鍵kを用いて、検証対象データ40の分割データ40Aごとのデータ識別子42Aをi(j)として、次式により検証対象データ40の分割データ40Aごとのデータ識別子42Aをそれぞれ算出する。
また全体処理部112は、乱数生成部31に対して乱数を生成するよう指示を与える。かくして乱数生成部31は、0以上p未満の乱数tを生成し、次式を満たすパラメータhを生成する(SP81)。
なお、上述の説明において、「p」は、図13について上述した公開パラメータ登録処理のステップSP61において公開パラメータ36(図12)を生成するに際して乱数生成部31により生成された乱数の1つであり、(11)式において、「g」は、公開パラメータ登録処理のステップSP62において乱数生成部31により生成された乱数の1つであり、「N」は公開パラメータ登録処理のステップSP61において生成された公開パラメータ36の値である。
続いて、全体処理部112は、乱数生成部31に対して検証対象データ40の分割データ40Aごとの乱数をそれぞれ生成するよう指示を与える。かくして乱数生成部31は、かかる指示に従って、検証対象データ40の分割データ40Aごとの乱数(R(j)(j=1〜n))をそれぞれ生成する(SP82)。
次いで、全体処理部112は、このとき乱数生成部31が生成した各乱数(R(j)(j=1〜n))と、上述の検証対象データ保持検証指示において指定された各データ識別子42Aと、ステップSP81において生成したパラメータhとを、通信部24(図12)を介してサービス提供サーバ102に送信する(SP83)。
一方、サービス提供サーバ102の全体処理部121(図4)は、かかる各乱数(R(j)(j=1〜n))、データ識別子42A及びパラメータhを通信部54を介して受信すると、これら各乱数(R(j)(j=1〜n))、データ識別子42A及びパラメータhを記憶部51に格納する(SP84)。
続いて、全体処理部121は、ステップSP84において受信したデータ識別子42Aに基づいて、対応する検証対象データ40の各分割データ40Aのデータ識別子42Aをそれぞれ記憶部51から読み出し、読み出したこれらのデータ識別子42Aに基づいて、サービス提供サーバ102が保持していることを検証すべき検証対象データ40の各分割データ40Aをそれぞれ特定する(SP85)。
次いで、全体処理部121は、基本演算部61(図4)に対して、ステップSP85において特定した検証対象データ40の各分割データ40Aと、公開パラメータ登録処理(図13)のステップSP65において記憶部51に格納した公開パラメータ36とを用いて、検証対象データ40のサービス提供サーバ102側の2つの証拠データ(以下、これらをそれぞれ第1及び第2のサーバ側証拠データと呼ぶ)をそれぞれ算出するよう指示を与える。かくして基本演算部61は、かかる指示に従って、検証対象データ40の各分割データ40Aの値をそれぞれMi(1)〜Mi(n)、これら分割データ40Aのデータ識別子42Aをそれぞれi(1)〜i(n)、ステップSP84においてサービス提供サーバ102が受信した乱数をそれぞれR(1)〜R(n)、公開パラメータ登録処理のステップSP65において記憶部51に格納した公開パラメータ36をNとして、次式を満たす第1及び第2のサーバ側証拠データSi,Uiをそれぞれ算出し、算出した第1及び第2のサーバ側証拠データSi,Uiをそれぞれ記憶部51に格納する(SP86)。
なお(13)式において、次式
で表される指数部は、乗算と加算から構成されているため、先に指数部を演算することにより、(13)式を1回のべき乗剰余算と、n回程度の乗算及び加算とで演算することができる。この場合、加算及び乗算は計算負荷が低いため、(13)式の実際の演算量は1回のべき乗剰余乗算とほぼ等しい。
この後、全体処理部121は、上述のように算出した第1及び第2のサーバ側証拠データSi,Uiをそれぞれ記憶部51から読み出し、読み出したこれら第1及び第2のサーバ側証拠データSi,Uiを通信部24を介してユーザ端末101に送信する(SP87)。
他方、ユーザ端末101の全体処理部112は、かかる第1及び第2のサーバ側証拠データSi,Uiを通信部24を介して受信すると(SP88)、基本演算部33に対して、ステップSP82において乱数生成部31が生成した検証対象データ40の分割データ40Aごとの乱数R(j)と、ステップSP81において算出した検証対象データ40の分割データ40Aごとのデータ識別子42A(i(j))と、公開パラメータ登録処理(図13)のステップSP61において生成した公開パラメータ36とを用いて、ユーザ端末101側の証拠データ(以下、これをユーザ端末側証拠データと呼ぶ)を生成するよう指示を与える。
かくして基本演算部33は、かかる指示に従って、次式を満たす第1のユーザ端末側証拠データTiを算出する。
なお(15)式において、次式
で表される指数部は、乗算と加算から構成されているため、先に指数部を演算することにより、(15)式を1回のべき乗剰余算と、n回程度の乗算及び加算とで演算することができる。この場合、加算及び乗算は計算負荷が低いため、(15)式の実際の演算量は1回のべき乗剰余乗算とほぼ等しい。
また(13)式及び(15)式の関係から、第1のユーザ端末側証拠データTiは次式を満たす。
続いて、基本演算部33は、ステップSP81において乱数生成部31が生成した乱数tと、公開パラメータ登録処理(図13)のステップSP62において生成した秘密鍵e(秘密鍵dの逆元)とを記憶部21から読み出し、次式を満たす第2のユーザ端末側証拠データViを算出すると共に、算出した第2のユーザ端末側証拠データViを記憶部21に格納する(SP89)。
次いで、基本演算部33は、このようにして算出した第2のユーザ端末側証拠データViと、ステップSP88において受信した第1のサーバ側証拠データSiとを比較する。そして基本演算部33は、これら第2のユーザ端末側証拠データVi及び第1のサーバ側証拠データSiが等しい場合には、サービス提供サーバ102がそのとき対象としていた検証対象データ40を保持していると判定し、第1のサーバ側証拠データSi及び第2のユーザ端末側証拠データViが等しくない(異なっている)場合には、サービス提供サーバ102が当該検証対象データ40を保持していないと判定する(SP90)。
そして全体処理部112は、かかる基本演算部33の判定結果を出力部23に表示させ(SP91)、この後、この検証対象データ保持検証処理を終了する。
なお、上述の処理手順では、公開パラメータ36を法とする乗算を用いて第1及び第2のユーザ端末側証拠データTi,Viを生成するようにした場合について述べたが、公開パラメータを法とする加算(又は減算)を用いて、第1及び第2のユーザ端末側証拠データTi,Viを生成するようにしてもよい。
(3−3)本実施の形態の効果
上述した非特許文献1に開示された既存技術では、サービス提供サーバ102が検証対象データ40を保持しているか否かの検証処理の処理手順が本実施の形態の検証対象データ保持検証処理と類似するが、検証対象データ登録処理(図14)のステップSP72において(9)式でなく(8)式に基づいて証蹟を生成するため処理内容が一部異なる。
上述した非特許文献1に開示された既存技術では、サービス提供サーバ102が検証対象データ40を保持しているか否かの検証処理の処理手順が本実施の形態の検証対象データ保持検証処理と類似するが、検証対象データ登録処理(図14)のステップSP72において(9)式でなく(8)式に基づいて証蹟を生成するため処理内容が一部異なる。
具体的には、非特許文献1に開示された既存技術の場合、検証対象データ保持検証処理(図16)のステップSP86において、サーバ側証拠データUiが次式に基づいて算出される。
この場合において(19)式は、gR1Mi(1)+……+RnMi(n)、i(1)R1、i(2)R2、……といった底が異なる(n+1)個のべき乗剰余乗算が組み合わされているため、1回のべき乗剰余乗算で処理可能な(14)式と比べ、計算量が約100倍も大きい。
また、非特許文献1に開示された既存技術は、ユーザ端末101の処理負荷も高い。具体的には、検証対象データ保持検証処理(図16)のステップSP89において、次式によりユーザ端末101が第1のユーザ端末側証拠データTiを算出する。
この場合において、(20)式は、(19)式と同様に、底が異なる(n+1)個のべき乗剰余乗算が組み合わされているため、やはり1回のべき乗剰余乗算で処理可能な(15)式と比べ、計算量が約100倍も大きい。
以上のことからも明らかなように、本実施の形態によるデータ保持検証方式によれば、検証対象データ40の登録処理と、サービス提供サーバ102がその検証対象データ40を保持しているか否かを検証する検証対象データ保持検証処理において、非特許文献1に示された既存技術よりもはるかに少ない回数のべき乗剰余乗算で、サービス提供サーバ102が検証対象データ40を保持していることを検証することができる。
また本実施の形態によるデータ保持検証方式によれば、第1の実施の形態と同様に、サービス提供サーバ102から検証対象データ40を送信してもらうことなく、ユーザ端末101側において、当該検証対象データ40をサービス提供サーバ102が保持しているか否かを検証することができる。
かくするにつき、本実施の形態によるデータ保持検証方式によれば、ユーザ端末101がサービス提供サーバ102に預けた検証対象データ40をサービス提供サーバ102が保持しているか否かの検証を少ない通信量又は計算量で行うことができる。
(4)他の実施の形態
なお上述の第1〜第3の実施の形態においては、本発明を図1のように構成されたクラウドシステムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のシステムに広く適用することができる。
なお上述の第1〜第3の実施の形態においては、本発明を図1のように構成されたクラウドシステムに適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の構成のシステムに広く適用することができる。
また上述の第1の実施の形態においては、公開パラメータ登録処理、検証対象データ登録処理及びデータ保持検証処理をそれぞれ図5、図6又は図8に示す処理手順に従って実行し、第2の実施の形態においては、データ保持検証処理を図11に示す処理手順に従って実行し、第3の実施の形態においては、公開パラメータ登録処理、検証対象データ登録処理及びデータ保持検証処理をそれぞれ図13、図14又は図15に示す処理手順に従って実行するようにした場合について述べたが、本発明はこれに限らず、本質的な処理内容が同じであるのならば、処理手順を変更して実施するようにしても良い。
さらに上述の第1〜第3の実施の形態においては、サービス提供サーバ3,72,102がユーザ端末2,71,101から預かったデータを保持しているか否かを検証するデータ保持検証処理において使用する検証用情報として、第1の実施の形態では乱数、第2の実施の形態では秘密鍵83、第3の実施の形態では乱数及びパラメータhを適用するようにした場合について述べたが、本発明はこれに限らず、かかる検証用情報としては、この他種々の情報を適用することができる。
さらに上述の第1の実施の形態においては、サービス提供サーバ3が、(2)式について上述したように、公開パラメータ36を法とし、乱数Rを検証対象データ40の値の指数とするべき乗剰余演算によりサーバ側証拠データSiを算出し、ユーザ端末2が、(3)式について上述したように、公開パラメータ36を法とし、乱数Rを第1の証蹟41の値の指数とするべき乗剰余演算によりユーザ端末側証拠データTiを算出するようにした場合について述べたが、本発明はこれに限らず、例えば公開パラメータ36を法とする加算又は減算を用いてサーバ側証拠データSi及びユーザ端末側証拠データTiを算出するようにしても良い。
さらに上述の第2の実施の形態においては、ユーザ端末71が、(5)式について上述したように、検証対象データ40を上位、秘密鍵83の値を下位とする検証対象データ40及び秘密鍵83を結合した値を入力とした一方向関数の出力値として証蹟41(ユーザ端末側証拠データTi)を生成し、サービス提供サーバ72が、(6)式について上述したように、検証対象データ40を上位、秘密鍵83の値を下位とする検証対象データ40及び秘密鍵83を結合した値を入力とした一方向関数の出力値としてサーバ側証拠データSiを生成するようにした場合について述べたが、本発明はこれに限らず、他の演算(加減算又は乗算)や他の関数の出力値を一方向関数の入力としても良く、また一方向性関数の出力値に任意の演算を追加するようにしても良い。
本発明は例えば、クラウドサービスを行うクラウドシステムのほか、ユーザ端末と、当該ユーザ端末からの検証対象データを預かるサーバ装置とから構成される種々の構成のシステムに広く適用することができる。
1,70,100……クラウドシステム、2,71,101……ユーザ端末、3,72,102……サービス提供サーバ、11……CPU、20,50,80,90,120……制御部、35……秘密鍵、36……公開パラメータ、40……検証対象データ、40A……分割データ、41……証蹟、42、42A……データ識別子。
Claims (4)
- ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証システムにおいて、
前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録され、
前記ユーザ端末は、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信し、
前記ユーザ端末は、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信し、
前記サーバ装置は、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信し、
前記ユーザ端末は、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定し、
前記サーバ装置は、
前記サーバ側証拠データをSi、Ui、前記公開パラメータをN、前記パラメータをh、分割数をn、前記乱数をR1〜Rn、t、前記分割データをMi(1)〜Mi(n)、前記データ識別子をi(1)〜i(n)、前記ユーザ端末側証拠データをTi、Vi、前記秘密鍵をd、前記秘密鍵の逆元をe、Funcを一方向性関数を表す演算子として、次式
前記ユーザ端末は、次式
ことを特徴とするデータ保持検証システム。 - 前記ユーザ端末は、2つの素数の積として前記公開パラメータを算出する
ことを特徴とする請求項1に記載のデータ保持検証システム。 - ユーザ端末がサーバ装置に預けた検証対象データを前記サーバ装置が保持しているか否かを検証するデータ保持検証方法において、
前記ユーザ端末から前記サーバ装置に予め公開パラメータが登録される第1のステップと、
前記ユーザ端末において、前記検証対象データを前記サーバ装置に預ける際に、当該検証対象データを複数の分割データに分割し、前記分割データごとに当該分割データに基づく証蹟をそれぞれ生成し、生成した前記分割データごとの前記証蹟を前記検証対象データ及びデータ識別子と共に前記サーバ装置に送信する第2のステップと、
前記ユーザ端末において、検証用情報として、秘密鍵を用いて生成したパラメータと、前記検証対象データの前記分割データごとの乱数とを前記サーバ装置に送信する第3のステップと、
前記サーバ装置において、前記パラメータと、前記検証対象データの各前記分割データと、前記検証対象データの前記分割データごとの前記乱数と、前記公開パラメータとを用いてサーバ側証拠データを算出し、算出した前記サーバ側証拠データを前記ユーザ端末に送信する第4のステップと、
前記ユーザ端末において、前記秘密鍵と、前記検証対象データの前記分割データごとの前記乱数とを用いてユーザ端末側証拠データを算出し、算出した前記ユーザ端末側証拠データと、前記サーバ装置から送信された前記サーバ側証拠データとを比較し、比較結果に基づいて、前記サーバ装置が前記検証対象データを保持しているか否かを判定する第5のステップと
を備え、
前記第4のステップにおいて、前記サーバ装置は、
前記サーバ側証拠データをSi、Ui、前記公開パラメータをN、前記パラメータをh、分割数をn、前記乱数をR1〜Rn、t、前記分割データをMi(1)〜Mi(n)、前記データ識別子をi(1)〜i(n)、前記ユーザ端末側証拠データをTi、Vi、前記秘密鍵をd、前記秘密鍵の逆元をe、Funcを一方向性関数を表す演算子として、次式
前記第5のステップにおいて、前記ユーザ端末は、次式
ことを特徴とするデータ保持検証方法。 - 前記ユーザ端末は、2つの素数の積として前記公開パラメータを算出する
ことを特徴とする請求項3に記載のデータ保持検証方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/078249 WO2014068734A1 (ja) | 2012-10-31 | 2012-10-31 | データ保持検証システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5876937B2 true JP5876937B2 (ja) | 2016-03-02 |
JPWO2014068734A1 JPWO2014068734A1 (ja) | 2016-09-08 |
Family
ID=50626700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014544148A Expired - Fee Related JP5876937B2 (ja) | 2012-10-31 | 2012-10-31 | データ保持検証システム及び方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150288703A1 (ja) |
EP (1) | EP2916482A4 (ja) |
JP (1) | JP5876937B2 (ja) |
WO (1) | WO2014068734A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IN2013CH05992A (ja) * | 2013-12-20 | 2015-06-26 | Infosys Ltd | |
WO2016031033A1 (ja) * | 2014-08-29 | 2016-03-03 | 株式会社日立製作所 | データ保持確認方法、装置 |
US10498819B2 (en) * | 2015-05-13 | 2019-12-03 | Nec Corporation | Method for storing data in a cloud and network for carrying out the method |
KR102415626B1 (ko) * | 2016-01-04 | 2022-07-01 | 한국전자통신연구원 | 데이터 소유권 검증 방법 및 장치 |
US11895240B2 (en) * | 2016-12-15 | 2024-02-06 | Nec Corporation | System, apparatus, method and program for preventing illegal distribution of an access token |
CN111865596B (zh) * | 2019-04-29 | 2022-01-04 | 华控清交信息科技(北京)有限公司 | 面向数据传输的验证方法及系统 |
CN116383239B (zh) * | 2023-06-06 | 2023-08-15 | 中国人民解放军国防科技大学 | 一种基于混合证据的事实验证方法、系统及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080134321A1 (en) * | 2006-12-05 | 2008-06-05 | Priya Rajagopal | Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates |
US7913086B2 (en) * | 2007-06-20 | 2011-03-22 | Nokia Corporation | Method for remote message attestation in a communication system |
TWI424321B (zh) * | 2010-05-14 | 2014-01-21 | Chunghwa Telecom Co Ltd | 雲端儲存系統及方法 |
US9253199B2 (en) * | 2010-09-09 | 2016-02-02 | Red Hat, Inc. | Verifying authenticity of a sender of an electronic message sent to a recipient using message salt |
-
2012
- 2012-10-31 EP EP12887668.7A patent/EP2916482A4/en not_active Withdrawn
- 2012-10-31 WO PCT/JP2012/078249 patent/WO2014068734A1/ja active Application Filing
- 2012-10-31 JP JP2014544148A patent/JP5876937B2/ja not_active Expired - Fee Related
- 2012-10-31 US US14/438,698 patent/US20150288703A1/en not_active Abandoned
Non-Patent Citations (3)
Title |
---|
JPN6012064112; Ayad F. Barsoum, et al.: 'Provable Possession and Replication of Data over Cloud Servers' Technical Reports CACR 2010-32, 2010, Centre for Applied Cryptographic Research (CACR) a * |
JPN6012064113; Sravan Kumar R, et al.: 'Data Integrity Proofs in Cloud Storage' Proceedings of 2011 Third International Conference on Communication Systems and Networks (COMSNETS) , 2011, IEEE * |
JPN7015003645; G. Ateniese et al.: 'Provable data possession at untrusted stores' Proceedings of the 14th ACM conference on Computer and communications security (CCS '07) , 2007, pp. 598-609, ACM * |
Also Published As
Publication number | Publication date |
---|---|
EP2916482A4 (en) | 2016-05-25 |
JPWO2014068734A1 (ja) | 2016-09-08 |
US20150288703A1 (en) | 2015-10-08 |
WO2014068734A1 (ja) | 2014-05-08 |
EP2916482A1 (en) | 2015-09-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5876937B2 (ja) | データ保持検証システム及び方法 | |
KR102472231B1 (ko) | 블록체인 구현 방법 및 시스템 | |
CN110800250B (zh) | 受控加密私钥的发布 | |
US8667263B2 (en) | System and method for measuring staleness of attestation during booting between a first and second device by generating a first and second time and calculating a difference between the first and second time to measure the staleness | |
Armknecht et al. | Transparent data deduplication in the cloud | |
EP2791817B1 (en) | Cryptographic certification of secure hosted execution environments | |
CN111133733B (zh) | 用于基于云平台的自动区块链部署的方法和系统 | |
WO2018158936A1 (ja) | ブロックチェーン管理装置、ブロックチェーン管理方法及びプログラム | |
CN112544053B (zh) | 用于确定数据块和用于提供时间戳事务的方法、系统、计算机程序产品和计算可读介质 | |
CN104715183B (zh) | 一种虚拟机运行时的可信验证方法和设备 | |
JP2009003854A (ja) | 情報セキュリティ装置および情報セキュリティシステム | |
EP3652885A1 (en) | Secure token passing via blockchains | |
CA2903376A1 (en) | Configuration and verification by trusted provider | |
CN109743168B (zh) | 一种联盟链资源共享方法、装置及其存储介质 | |
CN110199285A (zh) | 从属包围区二进制文件 | |
US11757659B2 (en) | Post-quantum certificate binding | |
GB2529246A (en) | Method for securing integrity and consistency of a cloud storage service with efficient client operations | |
CN110214321A (zh) | 嵌套包围区身份 | |
Ponnuramu et al. | Data integrity proof and secure computation in cloud computing | |
CN111161075A (zh) | 区块链交易数据证明监管方法、系统及相关设备 | |
CN113051622B (zh) | 索引构建方法、装置、设备和存储介质 | |
US20200213095A1 (en) | Method and device for the computer aided processing of a random bit pattern | |
US20200409571A1 (en) | Ensuring data authenticity using notary as a service | |
US11356276B2 (en) | Digital data management | |
TWI796231B (zh) | 針對一硬體安全模組安全散佈一根金鑰 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151204 |
|
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: 20160105 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160122 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5876937 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |