(57)【要約】【課題】  データサーバの管理者によるデータの覗き見、漏洩、改ざん、消去を防止または発見することを課題とする。【解決手段】  データサーバ１、データ保有者デバイス４、データ共有者デバイス３および端末２とを有して構成されるデータ共有システムにおいて、データ保有者のデータは、データ保有者デバイス４内で暗号化され、通し番号と署名を付与された後、データサーバ１に書き込まれる。そして、データサーバ１からデータ保有者のデータを読み出す場合は、データ保有者デバイス４あるいはデータ共有者デバイス３内で、読み出したデータを復号化する。【選択図】      図１
2006099548.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶、管理するデータサーバと、データ保有者が所有するデータ保有者デバイスと、前記データサーバおよび前記データ保有者デバイスと通信可能な端末とを有して構成され、前記データ保有者のデータを前記データサーバに記憶させるデータ共有システムであって、
前記データ保有者デバイスは、前記端末から前記データサーバに書き込む当該データを暗号化する暗号化手段と、暗号化された当該データを前記データサーバから前記端末に読み出すときに前記データサーバから読み出された暗号化された当該データを復号化する第一復号化手段を有することを特徴とするデータ共有システム。
【請求項２】
前記データ保有者デバイスは、さらに、暗号化された当該データを元に改ざん防止用の署名を生成し暗号化された当該データに付与する署名生成付与手段と、前記データサーバから当該データを読み出したときに前記署名によって当該データの改ざんの有無を検証する署名検証手段とを有することを特徴とする請求項１に記載のデータ共有システム。
【請求項３】
前記データ保有者デバイスは、さらに、前記データサーバに書き込む当該データに対して通し番号を付与する通番付与手段を有し、
前記データサーバは、当該データを記憶するときは追加記憶を許可する追記許可手段を有し、前記追記許可手段は受信した当該データに付与された通し番号がすでに存在するときには追加記憶を拒否することを特徴とする請求項１または請求項２に記載のデータ共有システム。
【請求項４】
前記データ保有者デバイスは、さらに、前記データサーバに記憶されたデータへのアクセス権限に関する情報であるデータ保有者アクセス権限情報を有し、前記データ保有者アクセス権限情報により許可された範囲で前記データサーバに対してデータの読み出しあるいは書き込みを行うことを特徴とする請求項１から請求項３までのいずれか１項に記載のデータ共有システム。
【請求項５】
前記データ共有システムは、前記端末と通信可能なデータ共有者デバイスをさらに含んで構成され、
前記データ共有者デバイスは、前記データサーバに記憶されたデータへのアクセス権限に関する情報であるデータ共有者アクセス権限情報を有し、
前記データ保有者デバイスは、さらに、前記データ共有者デバイスが前記データサーバに対してデータの書き込みまたは読み出しの権限を有しているか否かを前記データ共有者アクセス権限情報から判断するアクセス制御手段を有することを特徴とする請求項１から請求項４までのいずれか１項に記載のデータ共有システム。
【請求項６】
前記データ共有システムは、前記端末と通信可能なデータ共有者デバイスをさらに含んで構成され、
前記データ共有者デバイスは、暗号化して前記データサーバに記憶されている前記第一復号化手段を復号化する第二復号化手段を有し、前記データサーバから前記第一復号化手段を読み出して前記第二復号化手段で復号化することにより前記データ保有者デバイスの前記第一復号化手段と同一の前記第一復号化手段を取得し、前記データサーバから読み出した前記データ保有者のデータを前記第一復号化手段で復号化することを特徴とする請求項１から請求項４までのいずれか１項に記載のデータ共有システム。
【請求項７】
前記端末と前記データ共有者デバイスが一体の情報機器として構成されていることを特徴とする請求項５または請求項６に記載のデータ共有システム。
【請求項８】
データを記憶、管理するデータサーバと、データ保有者が所有するデータ保有者デバイスと、前記データサーバおよび前記データ保有者デバイスと通信可能な端末とを有して構成され、前記データ保有者のデータを前記データサーバに記憶させるデータ共有システムによるデータ共有方法であって、
前記データ保有者デバイスが、
前記端末から受信した当該データを暗号化するステップと、
暗号化した当該データを前記データサーバに書き込むステップと、
前記データサーバから暗号化された当該データを読み出すステップと、
暗号化された当該データを復号化するステップと、を実行することを特徴とするデータ共有方法。
【請求項９】
データを記憶、管理するデータサーバと、データ保有者が所有するデータ保有者デバイスと、前記データサーバおよび前記データ保有者デバイスと通信可能な端末とを有して構成され、前記データ保有者のデータを前記データサーバに記憶させるデータ共有システムによるデータ共有方法であって、
前記データ保有者デバイスが、
前記端末から受信した当該データを暗号化するステップと、
暗号化した当該データを元に改ざん防止用の署名を生成して暗号化した当該データに付与するステップと、
暗号化した当該データおよび前記署名を前記データサーバに書き込むステップと、
前記データサーバから暗号化された当該データおよび前記署名を読み出すステップと、
前記署名によって当該データの改ざんの有無を検証するステップと、
暗号化された当該データを復号化するステップと、を実行することを特徴とするデータ共有方法。
【請求項１０】
前記データ保有者デバイスが、
暗号化した当該データを前記データサーバに書き込む前に、暗号化した当該データに対して通し番号を付与するステップを実行することを特徴とする請求項９に記載のデータ共有方法。
【請求項１１】
データを記憶、管理するデータサーバと、データ保有者が所有するデータ保有者デバイスと、前記データサーバおよび前記データ保有者デバイスと通信可能な端末とを有して構成され、前記データ保有者のデータを前記データサーバに記憶させるデータ共有システムにおける前記データ保有者デバイスであって、
前記端末から前記データサーバに書き込む当該データを暗号化する暗号化手段と、暗号化された当該データを前記データサーバから前記端末に読み出すときに前記データサーバから読み出された暗号化された当該データを復号化する復号化手段を有することを特徴とするデータ保有者デバイス。
【請求項１２】
データを記憶、管理するデータサーバと、データ保有者が所有するデータ保有者デバイスと、前記データサーバおよび前記データ保有者デバイスと通信可能な端末とを有して構成され、前記データ保有者のデータを前記データサーバに記憶させるデータ共有システムにおける前記データサーバであって、
暗号化された当該データを受信し、記憶するときに、追加記憶を許可する追記許可手段を有することを特徴とするデータサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ保有者のデータをネットワーク上のデータサーバに格納し、データ保有者とデータ共有者が有するＩＣカードなどのデバイスを用いてデータの暗復号化やアクセス制御を行うことにより、データを安全に共有するデータ共有システム、データ共有方法、データ保有者デバイスおよびデータサーバに関する。
【背景技術】
【０００２】
情報化社会の高度化が進行する現代において、個人情報の管理が重要課題となってきている。つまり、電子化された個人情報を集めたデータベースなどを多数の者が利用する場面が多く、悪意ある者によってそれらの個人情報が盗まれたり改ざんされたりする危険性が少なからず存在するというのが現状である。
【０００３】
たとえば、特許文献１では、ネットワーク上のデータサーバを用いてデータを共有するシステムおよび方法として、個人の健康医療情報を共有するシステムおよび方法が開示されている。具体的には、まず、データ保有者である患者は、データサーバに、データ共有者である医者などのアクセス権限、つまり、どのデータ共有者がどのデータにアクセスしてよいのかなど、を設定する。そして、データ共有者は、データサーバにログインした後、データサーバに設定されているアクセス権限に従い、データ操作を実施する。これにより、アクセス権限のない者はデータにアクセスできないという効果を奏する。また、データサーバに格納されるデータは、データサーバ内で暗号化することもでき、暗号化しておけば、データがデータサーバ外部へ漏洩しても内容を解読されることはない。
【特許文献１】特開２００１−３２５３７２号公報（段落０００５〜段落０００８、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術では、データ共有者のアクセス制御や格納データの暗号化をデータサーバ内で実施するため、データサーバの管理者によるデータの覗き見、漏洩、改ざん、消去を防止または発見できないという問題がある。
【０００５】
本発明は、このような背景に鑑みてなされたものであり、データサーバの管理者によるデータの覗き見、漏洩、改ざん、消去を防止または発見できるデータ共有システム、データ共有方法、データ保有者デバイスおよびデータサーバを提供することを目的とする。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明は、データサーバ、データ保有者デバイス、データ共有者デバイスおよび端末とを有して構成されるデータ共有システムにおいて、データ保有者のデータは、データ保有者デバイス内で暗号化され、通し番号と署名を付与された後、データサーバに書き込まれる。そして、データサーバからデータ保有者のデータを読み出す場合は、データ保有者デバイスあるいはデータ共有者デバイス内で、読み出したデータを復号化する。
【発明の効果】
【０００７】
本発明によれば、データサーバの管理者によるデータの覗き見、漏洩、改ざん、消去を防止または発見することができる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施形態に関して、病院などの医療機関にデータ共有システムを導入した例について説明する。この場合、データ保有者はたとえば患者であり、データ共有者はたとえば医者である。そして、データ保有者のデータ（たとえばカルテ）をデータサーバに書き込むには、データ保有者デバイス（たとえばＩＣカード）が必ず必要となる。また、そのデータを読み出す場合は、データ保有者デバイスあるいはデータ共有者デバイス（たとえばＩＣカード）のいずれかがあれば可能である。さらに、データ共有システムの運営者（以下、単に運営者と記載）は、たとえば医療機関の経営者であり、データ共有システムの直接の管理者（たとえば現場責任者）を監督する立場の者などがなればよい。以下、適宜図面を参照しながら、構成、動作の順で、詳細に説明する。
【０００９】
＜＜＜構成＞＞＞
＜＜全体＞＞
図１は、本実施形態に係るデータ共有システムの全体構成図である。データ共有システムは、データサーバ１、端末２、データ共有者デバイス３、および、データ保有者デバイス４を含んで構成される。
【００１０】
＜データサーバ＞
データサーバ１は、データ保有者とデータ共有者の間で共有するデータを格納するネットワーク上のサーバであり、ＣＰＵ１０、メモリ１１、記憶部１２、通信部１３を備えている。記憶部１２には、端末２からのデータ書込／読出要求に応じてデータの書込／読出を行うためのデータ書込プログラム１２０とデータ読出プログラム１２１、および、データ保有者のデータを格納するデータ格納部１２２が格納されている。そして、データの書込／読出時には、データ書込プログラム１２０／データ読出プログラム１２１がメモリ１１に読み込まれ、ＣＰＵ１０によって実行される。
【００１１】
また、データ格納部１２２には、データ保有者のデータが、データ保有者デバイス４が有するデータ暗復号鍵により暗号化された状態で格納される。また、データサーバ１は、データ書込時、データ共有者やデータ保有者によるデータの改ざんを防止するため、データの追記のみを許可する構成となっており、その詳細については後記する。データサーバ１としては、たとえば、ワークステーション、ホストコンピュータ、ＰＣ（Personal Computer）サーバなどが挙げられ、医療機関の管理室などに設置される。
【００１２】
＜端末＞
端末２は、データ保有者またはデータ共有者が、データサーバ１上の共有データの閲覧や、データサーバ１への共有データの書き込みを行うための情報端末であり、ＣＰＵ２０、メモリ２１、記憶部２２、通信部２３、通信部２４、通信部２５、キーボードやマウス、キーボタン、音声入力などの入力部２６、ディスプレイなどの表示部２７を備えている。記憶部２２には、データサーバ１上の共有データの読み出し、および、データサーバ１への共有データの書き込みを行うためのデータ書込プログラム２２０とデータ読出プログラムプログラム２２１が格納されている。そして、データの書込／読出時には、データ書込プログラム２２０／データ読出プログラム２２１がメモリ２１に読み込まれ、ＣＰＵ２０によって実行される。
【００１３】
なお、前記した通り、データサーバ１上の共有データは、データ保有者デバイス４が有するデータ暗復号鍵により暗号化された状態で格納される。そのため、原則として、データ保有者デバイス４がないと共有データの読出／書込は不可能である。しかし、運営者から当該データ暗復号鍵を共有することを認められたデータ共有者は、データ保有者の合意を得て当該データ暗復号鍵を共有することにより、データ保有者デバイス４がなくても共有データを読み出すことが可能となる。
【００１４】
したがって、データサーバ１へのデータ書込方法には、データ保有者デバイス４とデータ共有者デバイス３の両方を用いる方法と、データ保有者デバイス４のみを用いる方法との２通りが存在する。また、データ読出方法には、データ保有者デバイス４とデータ共有者デバイス３の両方を用いる方法と、データ保有者デバイス４のみを用いる方法と、データ共有者デバイス３のみを用いる方法の３通りが存在する。各書込／読出方法の詳細に関しては、後記する。端末２としては、たとえば、ＰＣ、携帯電話、ＰＤＡ（Personal Digital Assistant；携帯情報端末）などが挙げられ、医療機関の診察室などに設置される。
【００１５】
＜データ共有者デバイス＞
データ共有者デバイス３は、データ保有者のデータを共有することを、運営者から認められたデータ共有者が有するデバイスであり、ＣＰＵ３０、メモリ３１、記憶部３２、通信部３３を備えている。記憶部３２には、データサーバ１から読み出されたデータを復号化するための読出データ復号化プログラム３２０、および、データ共有者がデータの書込／読出を行う際に必要なデータを格納するデータ格納部３２１が格納されている。そして、データサーバ１から読み出されたデータを復号化する際、読出データ復号化プログラム３２０は、メモリ３１に読み込まれ、ＣＰＵ３０によって実行される。
【００１６】
また、データ共有者デバイス３は、データ暗復号鍵や共有データなどの重要情報の漏洩を防止するため、耐タンパ性（データへの不正アクセス防止能力）の高いものが望ましい。データ共有者デバイス３としては、たとえば、ＣＰＵ機能を有するメモリカードやＩＣカードなどが挙げられる。
【００１７】
＜データ保有者デバイス＞
データ保有者デバイス４は、データ保有者が有するデバイスであり、ＣＰＵ４０、メモリ４１、記憶部４２、通信部４３を備えている。記憶部４２には、データサーバ１に書き込むデータを暗号化するための書込データ暗号化プログラム４２０と、データサーバ１から読み出されたデータを復号化するための読出データ復号化プログラム４２１、運営者からデータ暗復号鍵を共有することを認められたデータ共有者と当該データ暗復号鍵を共有するためのデータ暗復号鍵共有プログラム４２２、書込／読出データの暗号化／復号化やデータ暗復号鍵の共有を行う際に必要なデータを格納するデータ格納部４２３が格納されている。
【００１８】
そして、書込／読出データの暗号化／復号化やデータ暗復号鍵の共有を行う際、書込データ暗号化プログラム４２０や読出データ復号化プログラム４２１、データ暗復号鍵共有プログラム４２２は、メモリ４１に読み込まれ、ＣＰＵ４０によって実行される。また、データ保有者デバイス４は、データ暗復号鍵や共有データなどの重要情報の漏洩を防止するため、耐タンパ性の高いものが望ましい。データ保有者デバイス４としては、たとえば、ＣＰＵ機能を有するメモリカードやＩＣカードなどが挙げられる。
【００１９】
＜通信状態など＞
そして、データサーバ１と端末２の間、端末２とデータ共有者デバイス３の間、および、端末２とデータ保有者デバイス４の間は、それぞれ、通信部１３と通信部２３、通信部２４と通信部３３、および、通信部２５と通信部４３を介して相互に通信可能である。なお、通信部１３と通信部２３は、たとえば、インターネット、専用回線、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、公衆回線などを利用して通信を行う。また、通信部２４と通信部３３、および、通信部２５と通信部４３は、ＩＳＯ（International Organization for Standardization）１４４４３規格などに基づいた非接触ＩＣカードまたは非接触ＩＣチップ、バーコード、ＩｒＤＡ（Infrared Data Association）が規定した赤外線通信などの無線通信や、接触型リーダライタやシリアルケーブルなどを利用する有線通信を利用して通信を行う。
【００２０】
また、図１では、１台のデータサーバ１に対し、データ保有者デバイスが１つしか存在しないが、実際には複数存在してもよい。さらに、１つのデータ保有者デバイス４に対して、端末２およびデータ共有者デバイス３が各１つしか存在していないが、実際にはそれぞれ複数存在してもよい。また、端末２とデータ共有者デバイス３をそれぞれ独立の装置としているが、情報端末としてそれらが一体化されていてもよい。
【００２１】
＜＜データ項目＞＞
＜データサーバのデータ格納部＞
図２は、データサーバ１のデータ格納部１２２に格納されるデータ項目である。なお、このデータ項目は、データ保有者デバイス４の1つ分のデータ項目である。したがって、データサーバ１を複数のデータ保有者デバイス４が利用する場合、データ格納部１２２には、図２に示したデータ項目が、データ保有者デバイス４の個数分格納されることになる。また、以下では、このデータ保有者デバイス４の1つ分のデータ項目全体のことを共有データと呼ぶ。
【００２２】
データ保有者ＩＤ１２２０は、データ保有者およびデータ共有者に対して運営者が固有に割り当てる利用者ＩＤ（識別情報）のうち、データ保有者デバイス４に割り当てられた利用者ＩＤである。署名検証用公開鍵１２２１は、データ保有者デバイス４から署名生成用秘密鍵を用いて署名を付与して送られてきたデータの正当性を検証するためのデータである。つまり、このように署名を使用することによって、データが途中で改ざんされていたり、不正な者からのデータであったりすることを防止または発見できるのである。なお、署名の生成・検証を行う公開鍵暗号アルゴリズムとしては、たとえば、楕円曲線暗号やＲＳＡ（Rivest,Shamir,Adleman）暗号などが挙げられるが、それらは公知技術であるので、説明は省略する。
【００２３】
鍵データリスト１２２２には、後記するデータ暗復号鍵を共有したデータ共有者のデータ共有者ＩＤ１２３０と、当該データ共有者が有するデータ暗復号鍵共有用公開鍵で暗号化されたデータ暗復号鍵（暗号化）１２３１、当該データ共有者が有するデータ暗復号鍵共有用公開鍵で暗号化された署名検証用公開鍵（暗号化）１２３２、データ保有者デバイス４が自身が有する署名生成用秘密鍵を用いてデータ暗復号鍵（暗号化）１２３１と署名検証用公開鍵（暗号化）１２３２に対して付与した署名１２３３が格納される。
【００２４】
データリスト１２２３には、データＩＤ１２３４、データ種別ＩＤ１２３５、データ（暗号化）１２３６および署名１２３７が格納される。データＩＤ１２３４は、データ種別ＩＤ１２３５、データ（暗号化）１２３６および署名１２３７からなるワンセットのデータをこのデータリスト１２２３に書き込む際に、順番に割り当てられる通し番号である。本実施例では、一例として、データＩＤ１２３４を１から順番に割り当てることとする。
【００２５】
データ種別ＩＤ１２３５は、運営者がデータの種別毎に割り当てた識別情報であり、たとえば内科、外科、レントゲン、投薬などの項目が考えられる。データサーバ１にはデータが暗号化された状態で格納されるため、データ保有者およびデータ共有者は、本データ種別ＩＤ１２３５を用いて、格納されているデータの種別を識別する。データ（暗号化）１２３６は、データ保有者デバイス４が自身が有するデータ暗復号鍵で暗号化したデータ保有者のデータである。署名１２３７は、データ保有者デバイス４が自身が有する署名生成用秘密鍵を用いて、データＩＤ１２３４とデータ種別ＩＤ１２３５、データ（暗号化）１２３６に対して付与した署名である。
【００２６】
＜データ共有者デバイスのデータ格納部＞
図３は、データ共有者デバイス３のデータ格納部３２１に格納されるデータ項目である。データ共有者ＩＤ３２１０は、データ保有者デバイスおよびデータ共有者デバイスに対して運営者が固有に割り当てる利用者ＩＤのうち、データ共有者デバイス３に割り当てられた利用者ＩＤである。
【００２７】
アクセス権限情報３２１１は、データ共有者デバイス３がアクセス可能なデータ種別ＩＤを示すデータである。このアクセス権限情報３２１１は、運営者が設定するデータであり、データ種別ＩＤリスト３２２０と、データ種別ＩＤリスト３２２０に対して運営者が付与した署名３２２１からなる。署名３２２１の生成アルゴリズムとしては、たとえば、楕円曲線暗号やＲＳＡ暗号などの公開鍵暗号アルゴリズムや、ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）などの共通鍵暗号アルゴリズム、鍵付きハッシュアルゴリズムなどが挙げられるが、それらは公知技術であるので、説明を省略する。
【００２８】
データ暗復号鍵共有許可情報３２１２は、運営者がデータ保有者デバイス４とデータ暗復号鍵を共有することを認めたデータ共有者デバイス３に対して与えるデータであり、データ暗復号鍵共有用公開鍵３２２２と署名３２２３からなる。データ暗復号鍵共有用公開鍵３２２２は、データ保有者デバイス４とデータ暗復号鍵を共有する際に、当該データ暗復号鍵、および、データ保有者デバイス４が有する署名生成用公開鍵を暗号化するために利用される。署名３２２３は、データ暗復号鍵共有用公開鍵３２２２に対して運営者が付与するデータであり、生成アルゴリズムとしては、たとえば、楕円曲線暗号やＲＳＡ暗号などの公開鍵暗号アルゴリズムや、ＤＥＳやＡＥＳなどの共通鍵暗号アルゴリズム、鍵付きハッシュアルゴリズムなどが挙げられる。
【００２９】
データ暗復号鍵共有用秘密鍵３２１３は、データ暗復号鍵共有用公開鍵３２２２で暗号化されたデータ暗復号鍵と署名検証用公開鍵を復号化するために利用される。データ暗復号鍵と署名検証用公開鍵の暗号化・復号化を行う公開鍵暗号アルゴリズムとしては、たとえば、楕円曲線暗号やＲＳＡ暗号などが挙げられる。なお、データ暗復号鍵共有用公開鍵３２２２、および、データ暗復号鍵共有用秘密鍵３２１３は、セキュリティの面からデータ共有者デバイス３内で生成されることが望ましい。
【００３０】
＜データ保有者デバイスのデータ格納部＞
図４は、データ保有者デバイス４のデータ格納部４２３に格納されるデータ項目である。データ保有者ＩＤ４２３０は、データ保有者デバイスおよびデータ共有者デバイスに対して運営者が固有に割り当てる利用者ＩＤのうち、データ保有者デバイス４に割り当てられた利用者ＩＤである。
【００３１】
アクセス権限情報４２３１は、データ保有者デバイス４がデータサーバ１においてアクセス可能なデータのデータ種別ＩＤを示すデータである。このアクセス権限情報４２３１は、運営者が設定するデータであり、データ種別ＩＤリスト４２４０と、当該データ種別ＩＤリスト４２４０に対して運営者が付与した署名４２４１からなる。署名４２４１の生成アルゴリズムは、署名３２２１の生成アルゴリズムと同様でよく、たとえば、楕円曲線暗号やＲＳＡ暗号などの公開鍵暗号アルゴリズムや、ＤＥＳやＡＥＳなどの共通鍵暗号アルゴリズム、鍵付きハッシュアルゴリズムなどが挙げられる。
【００３２】
アクセス権限情報検証用データ４２３２は、データ共有者デバイス３が有するアクセス権限情報３２１１に含まれる署名３２２１の正当性を検証するためのデータであり、格納されるデータは署名３２２１の生成アルゴリズムに依存する。データ暗復号鍵４２３３は、データ保有者のデータの暗復号化を行うための鍵データであり、暗復号化アルゴリズムとしては、たとえば、楕円曲線暗号やＲＳＡ暗号などの公開鍵暗号アルゴリズムや,ＤＥＳやＡＥＳなどの共通鍵暗号アルゴリズムが挙げられる。
【００３３】
署名生成用秘密鍵４２３４は、データサーバ１に書き込むデータに対し、署名を生成するためのデータである。署名検証用公開鍵４２３５は、署名生成用秘密鍵４２３４を用いて生成した署名の正当性を検証するためのデータである。なお、署名の生成・検証を行う公開鍵暗号アルゴリズムとしては、たとえば、楕円曲線暗号やＲＳＡ暗号などが挙げられる。また、署名検証用秘密鍵４２３４、および、署名検証用公開鍵４２３５は、セキュリティの面からデータ保有者デバイス４内で生成されることが望ましい。
【００３４】
データ書込回数４２３６は、データサーバ１にデータを書き込んだ回数を示すデータであり、データを書き込む毎に１加算される。データ暗復号鍵共有許可情報検証用データ４２３７は、データ共有者デバイス３とデータ暗復号鍵４２３３を共有する際に、データ共有者デバイス３が有するデータ暗復号鍵共有許可情報３２１２に含まれる署名３２２３の正当性を検証するためのデータであり、格納されるデータは署名３２２３の生成アルゴリズムに依存する。
【００３５】
利用者識別データ４２３８は、データ保有者デバイス４の利用者本人しか知らない、または、保有しないデータであり、データ保有者デバイス４の利用者の正当性検証に利用される。利用者識別データ４２３８としては、たとえば、パスワード、指紋情報、虹彩情報などが挙げられる。データサーバＵＲＬ４２３９は、データサーバ１のＵＲＬであるが、端末２に格納する構成でもよい。
【００３６】
＜＜＜動作＞＞＞
＜＜書込動作＞＞
図１のシステム構成において、データサーバ１にデータを書き込む方法に関して説明する。データ書込方法としては、データ保有者デバイス４とデータ共有者デバイス３を用いてデータを書き込む方法（書込動作１）と、データ保有者デバイス４のみを用いてデータを書き込む方法（書込動作２）の２通りが存在する。
【００３７】
＜書込動作１＞
データ保有者デバイス４とデータ共有者デバイス３を用いてデータを書き込む方法について、図１から図４までを適宜参照しながら、図５のフローチャートに沿って説明する。この動作は、たとえば、医療機関において、医者であるデータ共有者が、患者であるデータ保有者のカルテを書き込む場合などの動作である。本動作では、データサーバ１、端末２およびデータ保有者デバイス４上で、それぞれ、データ書込プログラム１２０、データ書込プログラム２２０および書込データ暗号化プログラム４２０が実行される。
【００３８】
データ共有者が、端末２に対してデータ共有者デバイス３とデータ保有者デバイス４を通信可能状態にセットし、データ書き込みのための所定の操作を行うと、Ｓ（ステップ；以下同じ）１０１において、端末２はデータ共有者デバイス３にアクセス権限情報３２１１の送信を要求し、Ｓ１０２において、データ共有者デバイス３は端末２にアクセス権限情報３２１１を送信する。
【００３９】
次に、端末２は、データ共有者に対して、データサーバ１に書き込むデータの指定を要求し、Ｓ１０３において、データ共有者は、端末２の入力部２６などを用いて、データサーバ１へ書き込むデータ（本動作において、以下、データ（平文）と記載）、および、データ（平文）のデータ種別ＩＤを指定する。なお、データ（平文）とデータ種別ＩＤは、その場で直接入力してもよいし、あるいは端末２に既に入っているデータから選択するようにしてもよい。
【００４０】
Ｓ１０４において、端末２は、Ｓ１０２で受信したアクセス権限情報３２１１と、データ共有者から指定されたデータ（平文）およびデータ種別ＩＤを、データ保有者デバイス４に送信する。
Ｓ１０５において、データ保有者デバイス４は、受信したアクセス権限情報３２１１の正当性を、アクセス権限情報３２１１における署名３２２１およびアクセス権限情報検証用データ４２３２を用いて検証する。これにより、アクセス権限情報３２１１の改ざんなどを発見することができ、不正な者によるデータの書き込みを防止することができる。
【００４１】
Ｓ１０５の検証によりアクセス権限情報３２１１が正当でないと判断された場合、Ｓ１０６において、データ保有者デバイス４は、その旨を端末２に通知し、データ書込処理を終了する。
Ｓ１０５の検証によりアクセス権限情報３２１１が正当であると判断された場合、Ｓ１０７において、データ保有者デバイス４は、受信したアクセス権限情報３２１１に含まれるデータ種別ＩＤリスト３２２０に、受信したデータ種別ＩＤが含まれるか、つまり受信したデータ種別ＩＤがデータサーバ１へのアクセス権限を有するか否かを判断する。
【００４２】
Ｓ１０７でデータ種別ＩＤが含まれていない、つまりアクセス権限がない場合、Ｓ１０８において、データ保有者デバイス４は、データ共有者デバイス３には書込権限がないことを端末２に通知し、データ書込処理を終了する。これにより、たとえば、外科医が、担当外である内科のデータを書き込んだりすることを防止することができる。
【００４３】
Ｓ１０７でデータ種別ＩＤが含まれていた、つまりアクセス権限がある場合、Ｓ１０９において、データ保有者デバイス４は、受信したデータ（平文）をデータ暗復号鍵４２３３を用いて暗号化する。このように、データ保有者デバイス４内で暗号化を行うことで、システムの管理者によってもデータ（平文）の内容を覗き見られることはない。なお、暗号化されたデータ（平文）は、以下、データ（暗号化）と表記する。
【００４４】
Ｓ１１０において、データ保有者デバイス４は、データ書込回数４２３６を１加算した後、データ（暗号化）に対して当該データ書込回数４２３６をデータＩＤとして割り当てる。
Ｓ１１１において、データ保有者デバイス４は、データ種別ＩＤ、データ（暗号化）およびデータＩＤを連結したデータから、署名生成用秘密鍵４２３４を用いて署名を生成し、付与する。なお、本動作において、これらのデータ種別ＩＤ、データ（暗号化）、データＩＤおよび署名のひとまとまりを、書込データと呼ぶ。
【００４５】
Ｓ１１２において、データ保有者デバイス４は、データ保有者ＩＤ４２３０、データサーバＵＲＬ４２３９および書込データを端末２に送信する。
Ｓ１１３において、端末２は、受信したデータサーバＵＲＬ４２３９を元に、データ保有者ＩＤ４２３０および書込データをデータサーバ１に転送する。
【００４６】
Ｓ１１４において、データサーバ１は、データ格納部１２２内のデータ保有者ＩＤ１２２０をチェックし、データ保有者ＩＤ４２３０を有する共有データが存在するか否か確認する。
Ｓ１１４で当該共有データが存在しない場合、Ｓ１１５において、データサーバ１は、共有データが存在しない旨を端末２に通知した後、データ書込処理を終了する。なお、共有データに最初に書き込みを行う場合は、運営者の設定により共有データが存在するようにしておけばよい。
【００４７】
Ｓ１１４で共有データが存在する場合、Ｓ１１６において、データサーバ１は、受信した書込データの正当性を、書込データのうちの署名および署名検証用公開鍵１２２１を用いて検証する。これにより、たとえば、Ｓ１１３などで書込データが改ざんされていたとしても、発見することができる。
【００４８】
Ｓ１１６で書込データが正当でないと判断された場合、Ｓ１１７において、データサーバ１は、書込データが正当でない旨を端末２に通知し、データ書込処理を終了する。
Ｓ１１６で書込データが正当であると判断された場合、Ｓ１１８において、データサーバ１は、書込データのデータＩＤがデータリスト１２２３内のデータＩＤ１２３４に存在するか否かを判断する。
【００４９】
Ｓ１１８でデータＩＤが存在していた場合、Ｓ１１９において、データサーバ１は、当該データＩＤを有する書込データが既に存在する旨を端末２に通知し、データ書込処理を終了する。これにより、不正な書込データが書き込まれることを防止することができる。なぜなら、正常な書き込みが行われ続けている場合は、書込データのデータＩＤは１つずつ増えていくはずだからである。なお、Ｓ１１８では、書込データのデータＩＤが、前回書き込まれた書込データのデータＩＤに１加算した値であることを同時にチェックしてもよい。データサーバ１は書込データについて修正や削除は不可で追記のみ可の構成となっていることともあわせて、そうすることで、不当に大きな数字のデータＩＤを有する不正な書込データや、以前書き込まれた正当な書込データが消去されたという事実を、発見することができる。
【００５０】
Ｓ１１８でデータＩＤが存在していなかった場合、Ｓ１２０において、データサーバ１は、受信した書込データのデータＩＤ、データ種別ＩＤ、データ（暗号化）および署名を、それぞれ、データリスト１２２３内のデータＩＤ１２３４、データ種別ＩＤ１２３５、データ（暗号化）１２３６、署名１２３７に追記する。このように、暗号化されたデータを保存することで、そのデータが外部に漏洩してもその内容までは知られることがない。
Ｓ１２１において、データサーバ１は、データの追記が完了した旨を端末２に通知し、書込処理を終了する。
【００５１】
＜書込動作２＞
データ保有者デバイス４のみを用いてデータを書き込む方法について、図１から図４までを適宜参照しながら、図６のフローチャートに沿って説明する。この動作は、たとえば、患者であるデータ保有者が、自宅のパソコンである端末２を使って体温や血圧などのデータを書き込む場合などの動作である。本動作では、データサーバ１、端末２およびデータ保有者デバイス４上で、それぞれ、データ書込プログラム１２０、および、データ書込プログラム２２０、書込データ暗号化プログラム４２０が実行される。
【００５２】
データ保有者が、端末２に対してデータ保有者デバイス４を通信可能状態にセットし、データ書き込みのための所定の操作を行うと、端末２は、データ保有者に対して、利用者識別データの入力を要求し、Ｓ２０１において、データ保有者は、端末２の入力部２６を用いて、利用者識別データを入力する。利用者識別データは、前記したように、たとえば、パスワード、指紋情報、虹彩情報などである。
【００５３】
端末２は、データ保有者に対して、データサーバ１に書き込むデータの指定を要求し、Ｓ２０２において、データ保有者は、端末２の入力部２６などを用いて、データサーバ１へ書き込むデータ（本動作において、以下、データ（平文）と記載）、および、本データのデータ種別ＩＤを指定する。
【００５４】
Ｓ２０３において、端末２は、利用者識別データ、データ種別ＩＤおよびデータ（平文）を、データ保有者デバイス４に送信する。
Ｓ２０４において、データ保有者デバイス４は、受信した利用者識別データと利用者識別データ４２３８が一致するか否かチェックする。
【００５５】
Ｓ２０４で一致しなかった場合、Ｓ２０５において、データ保有者デバイス４は、その旨を端末２に通知し、データ書込処理を終了する。これにより、不正な者によるデータの書き込みを防止することができる。
Ｓ２０４で一致した場合、Ｓ２０６において、データ保有者デバイス４は、受信したデータ種別ＩＤがアクセス権限情報４２３１内のデータ種別ＩＤリスト４２４０に含まれるか、つまり受信したデータ種別ＩＤがデータサーバ１へのアクセス権限を有するか否かを判断する。
【００５６】
Ｓ２０６でデータ種別ＩＤが含まれていない、つまりアクセス権限がない場合、Ｓ２０７において、データ保有者デバイス４は、その旨を端末２に通知し、データ書込処理を終了する。これにより、たとえば、外科のみに通う患者であるデータ保有者が、勝手に内科など別のデータ種別のデータを書き込んだりすることなどを防止できる。
【００５７】
なお、Ｓ２０３でデータ種別ＩＤを送信する際、当該データ種別ＩＤから生成した署名を付与しておき、受信したデータ保有者デバイス４側で、その署名を利用してデータ種別ＩＤの正当性を判断するようにすれば、セキュリティレベルをさらに上げることができる。逆に、端末２を使用する者がデータ保有者以外に考えられない場合などには、Ｓ２０１の利用者識別データ入力およびそれに関連する処理を省略することもできる。
【００５８】
Ｓ２０６でデータ種別ＩＤが含まれている、つまりアクセス権限がある場合、Ｓ２０８に進むが、Ｓ２０８〜Ｓ２２０の処理は、図５のＳ１０９〜Ｓ１２１の処理とまったく同様であり、説明を省略する。
【００５９】
＜＜読出動作＞＞
図１のシステム構成において、データサーバ１上のデータを読み出す方法に関して説明する。データ読出方法としては、データ共有者デバイス３とデータ保有者デバイス４を用いてデータを読み出す方法（読出動作１）、データ保有者デバイス４のみを用いて読み出す方法（読出動作２）、データ共有者デバイス３のみを用いて読み出す方法（読出動作３）の３通りが存在する。
【００６０】
＜読出動作１＞
データ共有者デバイス３とデータ保有者デバイス４を用いてデータを読み出す方法について、図１から図４までを適宜参照しながら、図７のフローチャートに沿って説明する。この動作は、たとえば、医療機関において、医者であるデータ共有者が、患者であるデータ保有者のカルテを読み出す場合などの動作である。本動作では、データサーバ１、端末２、および、データ保有者デバイス４上で、それぞれ、データ読出プログラム１２１、データ読出プログラム２２１および読出データ復号化プログラム４２１が実行される。
【００６１】
データ共有者が、端末２に対してデータ共有者デバイス３とデータ保有者デバイス４を通信可能状態にセットし、データ読み出しのための所定の操作を行うと、Ｓ３０１において、端末２は、データ共有者デバイス３にアクセス権限情報３２１１の送信を要求する。
Ｓ３０２において、データ共有者デバイス３は、端末２にアクセス権限情報３２１１を送信し、Ｓ３０３において、端末２はデータ保有者デバイス４にアクセス権限情報３２１１を転送する。
【００６２】
Ｓ３０４において、データ保有者デバイス４は、受信したアクセス権限情報３２１１の正当性を、アクセス権限情報３２１１における署名３２２１およびアクセス権限情報検証用データ４２３２を用いて検証する。これにより、アクセス権限情報３２１１の改ざんなどを発見することができ、不正な者によるデータの読み出しを防止することができる。
【００６３】
Ｓ３０４の検証によりアクセス権限情報３２１１が正当でないと判断された場合、Ｓ３０５において、データ保有者デバイス４は、その旨を端末２に通知し、データ読出処理を終了する。
Ｓ３０４の検証によりアクセス権限情報３２１１が正当であると判断された場合、Ｓ３０６において、データ保有者デバイス４は、データ保有者ＩＤ４２３０およびデータサーバＵＲＬ４２３９を端末２に送信する。
【００６４】
端末２は、データ共有者に対して、読み出したいデータのデータ種別ＩＤの指定を要求し、Ｓ３０７において、データ共有者は、端末２の入力部２６などを用いて、読み出したいデータのデータ種別ＩＤを入力する。なお、端末２は、データ共有者にデータ種別ＩＤの指定を要求する際に、Ｓ３０３の直前に受信しているアクセス権限情報３２１１に含まれるデータ種別ＩＤリスト３２２０を表示部２７に表示してもよい。
Ｓ３０８において、端末２は、受信したデータサーバＵＲＬ４２３９を元に、データ保有者ＩＤ４２３０およびデータ種別ＩＤをデータサーバ１に送信する。
【００６５】
なお、端末２は、Ｓ３０７の直前にデータ共有者にデータ種別ＩＤの指定を要求することを省略し、Ｓ３０２でデータ共有者デバイス３が送信したアクセス権限情報３２１１に含まれるデータ種別ＩＤリスト３２２０をＳ３０８でデータサーバ１に送信するようにしてもよい。これによれば、たとえば、医者であるデータ共有者のデータ種別ＩＤリスト３２２０が１つだけ（たとえば内科のみ）の場合、読み出すデータのデータ種別は確定（内科）なので、Ｓ３０７のデータ共有者による入力の手間を省くことができるのである。
【００６６】
Ｓ３０９において、データサーバ１は、データ格納部１２２内のデータ保有者ＩＤ１２２０をチェックし、データ保有者ＩＤ４２３０を有する共有データが存在するか否か確認する。
Ｓ３０９で当該共有データが存在しない場合、Ｓ３１０において、データサーバ１は、共有データが存在しない旨を端末２に通知し、データ読出処理を終了する。
【００６７】
Ｓ３０９で共有データが存在する場合、Ｓ３１１において、データサーバ１は、データリスト１２２３内のデータ種別ＩＤ１２３５をチェックし、当該データ種別ＩＤを有するデータのデータＩＤ、データ種別ＩＤ、データ（暗号化）および署名を端末２に送信する。なお、本動作において、これらのデータＩＤ、データ種別ＩＤ、データ（暗号化）および署名のひとまとまりを、読出データと呼ぶ。
【００６８】
Ｓ３１２において、端末２は、受信した読出データをデータ保有者デバイス４に転送する。
Ｓ３１３において、データ保有者デバイス４は、受信した読出データの正当性を、読出データのうちの署名および署名検証用公開鍵４２３５を用いて検証する。これにより、たとえば、Ｓ３１２などで読出データが改ざんされていたとしても、発見することができる。
【００６９】
Ｓ３１３で読出データが正当でないと判断された場合、Ｓ３１４において、データ保有者デバイス４は、読出データが正当でない旨を端末２に通知し、データ読出処理を終了する。
Ｓ３１３で読出データが正当であると判断された場合、Ｓ３１５において、データ保有者デバイス４は、Ｓ３０４の直前に受信したアクセス権限情報３２１１に含まれるデータ種別ＩＤリスト３２２０に、読出データのデータ種別ＩＤが含まれるか、つまり受信したデータ種別ＩＤがデータへのアクセス権限を有するか否かを判断する。
【００７０】
Ｓ３１５でデータ種別ＩＤが含まれない、つまりアクセス権限がないと判断された場合、Ｓ３１６において、データ保有者デバイス４は、その旨を端末２に通知し、データ読出処理を終了する。これにより、たとえば、外科の医者であるデータ共有者が、患者であるデータ保有者のデータのうち、自分の担当外の内科のデータを見ることなどを防止することができる。
【００７１】
Ｓ３１５でデータ種別ＩＤが含まれる、つまりアクセス権限があると判断された場合、Ｓ３１７において、データ保有者デバイス４は、読出データのうちのデータ（暗号化）を、データ暗復号鍵４２３３を用いて復号化する。
Ｓ３１８において、データ保有者デバイス４は、データ（平文）を端末２に返信する。
その後、端末２でデータ（平文）を表示などすることにより、データ共有者がそのデータ（平文）を見たり操作したりすることができる。
【００７２】
なお、本動作では、データサーバ１から読み出される読出データは１つであるが、複数のデータを読み出すようにしてもよい。その場合、Ｓ３１３からＳ３１８までの処理を、読み出された個々の読出データに対して適用すればよい。
【００７３】
＜読出動作２＞
データ保有者デバイス４のみを用いてデータを読み出す方法について、図１から図４までを適宜参照しながら、図８のフローチャートに沿って説明する。この動作は、たとえば、患者であるデータ保有者が、自宅のパソコンである端末２を使ってデータサーバ１のデータを読み出す場合などの動作である。本動作では、データサーバ１、端末２、および、データ保有者デバイス４上で、それぞれ、データ読出プログラム１２１、データ読出プログラム２２１、および、読出データ復号化プログラム４２１が実行される。
【００７４】
データ保有者が、端末２に対してデータ保有者デバイス４を通信可能状態にセットし、データ読み出しのための所定の操作を行うと、端末２は、データ保有者に対して、利用者識別データの入力を要求し、Ｓ４０１において、データ保有者は、端末２の入力部２６を用いて、利用者識別データを入力する。利用者識別データは、前記したように、たとえば、パスワード、指紋情報、虹彩情報などである。
【００７５】
Ｓ４０２において、端末２は、Ｓ４０１で入力した利用者識別データをデータ保有者デバイス４に送信する。
Ｓ４０３において、データ保有者デバイス４は、受信した利用者識別データと利用者識別データ４２３８が一致するか否かチェックする。
【００７６】
Ｓ４０３で一致しなかった場合、Ｓ４０４において、データ保有者デバイス４は、その旨を端末２に通知し、データ読出処理を終了する。これにより、不正な者によるデータの読み出しを防止することができる。また、不正な者が端末２を使用する可能性がなければ、Ｓ４０１からＳ４０３までは省略してもかまわない。
【００７７】
Ｓ４０３で一致した場合、Ｓ４０５において、データ保有者デバイス４は、データ保有者ＩＤ４２３０、データサーバＵＲＬ４２３９およびアクセス権限情報４２３１に含まれるデータ種別ＩＤリスト４２４０を端末２に送信する。
次に、端末２は、データ保有者に対して、読み出したいデータのデータ種別ＩＤの指定を要求し、Ｓ４０６において、データ保有者は、端末２の入力部２６などを用いて、読み出したいデータのデータ種別ＩＤを入力する。なお、端末２は、データ保有者にデータ種別ＩＤの指定を要求する際に、Ｓ４０５でデータ保有者デバイス４が送信したデータ種別ＩＤリスト４２４０を表示部２７に表示してもよい。
【００７８】
Ｓ４０７において、端末２は、受信したデータサーバＵＲＬ４２３９を元に、データ保有者ＩＤ４２３０およびデータ種別ＩＤをデータサーバ１に送信する。
なお、端末２は、Ｓ４０６の直前でデータ保有者にデータ種別ＩＤの指定を要求することを省略し、Ｓ４０５でデータ保有者デバイス４が送信したデータ種別ＩＤリスト４２４０をＳ４０７でデータサーバ１に送信してもよい。
【００７９】
Ｓ４０８〜Ｓ４１７の処理は、図７のＳ３０９〜Ｓ３１８の処理とまったく同様であり、説明を省略する。
【００８０】
＜読出動作３＞
データ共有者デバイス３のみを用いてデータを読み出す方法について説明する。この動作は、たとえば、医療機関において、医者であるデータ共有者が、患者であるデータ保有者のデータ保有者デバイス４なしでデータサーバ１からデータを読み出す場合などの動作である。この場合、データ共有者デバイス３は、以下の準備１、準備２の動作でデータ保有者デバイス４のデータ暗復号鍵４２３３を取得し、その後に、読出の動作を行うことになる。
【００８１】
〔準備１（データサーバへのデータ暗復号鍵の書込）〕
データ共有者がデータ保有者デバイス４のデータ暗復号鍵４２３３をデータサーバ１に書き込む方法について、図１から図４までを適宜参照しながら、図９のフローチャートに沿って説明する。本動作では、データサーバ１、端末２、および、データ保有者デバイス４上で、それぞれ、データ読出プログラム１２１、データ読出プログラム２２１、および、読出データ復号化プログラム４２１が実行される。
【００８２】
データ共有者が、端末２に対してデータ共有者デバイス３およびデータ保有者デバイス４を通信可能状態にセットし、所定の操作を行うと、Ｓ５０１において、端末２は、データ共有者デバイス３にデータ共有者ＩＤ３２１０およびデータ暗復号鍵共有許可情報３２１２の送信を要求する。
【００８３】
Ｓ５０２において、データ共有者デバイス３は、データ共有者ＩＤ３２１０およびデータ暗復号鍵共有許可情報３２１２を端末２に送信し、Ｓ５０３において、端末２は、データ共有者ＩＤ３２１０およびデータ暗復号鍵共有許可情報３２１２をデータ保有者デバイス４に転送する。
【００８４】
Ｓ５０４において、データ保有者デバイス４は、受信したデータ暗復号鍵共有許可情報３２１２の正当性を、署名３２２３およびデータ暗復号鍵共有許可情報検証用データ４２３７を用いて検証する。
Ｓ５０４で検証したデータ暗復号鍵共有許可情報３２１２が正当でなかった場合、Ｓ５０５において、データ保有者デバイス４は、その旨を端末２に通知し、処理を終了する。
【００８５】
Ｓ５０４で検証したデータ暗復号鍵共有許可情報３２１２が正当であった場合、Ｓ５０６において、データ保有者デバイス４は、データ暗復号鍵共有許可情報３２１２に含まれるデータ暗復号鍵共有用公開鍵３２２２を用いて、データ暗復号鍵４２３３、および、署名検証用公開鍵４２３５を暗号化する。以下、暗号化したデータ暗復号鍵４２３３、および、署名検証用公開鍵４２３５を、それぞれ、データ暗復号鍵（暗号化）、および、署名検証用公開鍵（暗号化）と呼ぶ。
【００８６】
Ｓ５０７において、データ保有者デバイス４は、データ暗復号鍵（暗号化）と署名検証用公開鍵（暗号化）を連結したデータに対し、署名生成用秘密鍵４２３４を用いて署名を生成し、付与する。なお、本動作において、以下、データ共有者ＩＤ、データ暗復号鍵（暗号化）、署名検証用公開鍵（暗号化）および署名のひとまとまりを、鍵データと呼ぶ。
【００８７】
Ｓ５０８において、データ保有者デバイス４は、データ保有者ＩＤ４２３０、データサーバＵＲＬ４２３９および鍵データを端末２に送信する。
Ｓ５０９において、端末２は、データサーバＵＲＬ４２３９を元に、データ保有者ＩＤ４２３０および鍵データをデータサーバ１に転送する。
【００８８】
Ｓ５１０において、データサーバ１は、データ格納部１２２内の利用者ＩＤ１２２０をチェックし、受信したデータ保有者ＩＤ４２３０を有するデータ保有者デバイスの共有データが存在するか否か確認する。
【００８９】
Ｓ５１０で当該共有データが存在しない場合、Ｓ５１１において、データサーバ１は、共有データが存在しない旨を端末２に通知し、データ処理を終了する。
Ｓ５１０で共有データが存在する場合、Ｓ５１２において、データサーバ１は、受信した鍵データの正当性を、鍵データの署名および署名検証用公開鍵１２２１を用いて検証する。
【００９０】
Ｓ５１２で鍵データが正当でないと判断された場合、Ｓ５１３において、データサーバ１は、鍵データが正当でない旨を端末２に通知し、データ処理を終了する。
Ｓ５１２で鍵データが正当であると判断された場合、Ｓ５１４において、データサーバ１は、鍵データのデータ共有者ＩＤ３２１０、データ暗復号鍵（暗号化）、署名検証用公開鍵（暗号化）および署名を、それぞれ、鍵データリスト１２２２のデータ共有者ＩＤ１２３０、データ暗復号鍵（暗号化）１２３１、署名検証用公開鍵（暗号化）１２３２および署名１２３３に書き込む。
Ｓ５１５において、データサーバ１は、鍵データの書き込みが完了した旨を端末２に通知する。
【００９１】
〔準備２（データ暗復号鍵の取得）〕
データ共有者デバイス３がデータ保有者デバイス４のデータ暗復号鍵４２３３を取得する方法について、図１から図４までを適宜参照しながら、図１０のフローチャートに沿って説明する。本動作では、データサーバ１、端末２、および、データ共有者デバイス３上で、それぞれ、データ読出プログラム１２１、データ読出プログラム２２１、および、読出データ復号化プログラム３２０が実行される。
【００９２】
データ共有者が、端末２に対してデータ共有者デバイス３を通信可能状態にセットし、所定の操作を行うと、Ｓ６０１において、端末２は、データ共有者デバイス３に対してデータ共有者ＩＤ３２１０の送信を要求する。
Ｓ６０２において、データ共有者デバイス３は、端末２にデータ共有者ＩＤ３２１０を送信する。
【００９３】
次に、端末２は、データ共有者に対して、データ保有者ＩＤ４２３０およびデータサーバＵＲＬ４２３９の指定を要求し、Ｓ６０３において、データ共有者は、端末２の入力部２６などを用いて、データ保有者ＩＤ４２３０およびデータサーバＵＲＬ４２３９を指定する。
【００９４】
Ｓ６０４において、端末２は、データサーバＵＲＬ４２３９を元に、データ保有者ＩＤ４２３０およびデータ共有者ＩＤ３２１０をデータサーバ１に送信する。
Ｓ６０５において、データサーバ１は、データ格納部１２２内の利用者ＩＤ１２２０をチェックし、受信したデータ保有者ＩＤ４２３０を有するデータ保有者デバイスの共有データが存在するか否か確認する。
【００９５】
Ｓ６０５で当該共有データが存在しない場合、Ｓ６０６において、データサーバ１は、共有データが存在しない旨を端末２に通知し、データ処理を終了する。
Ｓ６０５で共有データが存在する場合、Ｓ６０７において、データサーバ１は、鍵データリスト１２２２内のデータ共有者ＩＤ１２３０をチェックし、データ共有者ＩＤ３２１０に対応するデータ暗復号鍵（暗号化）、署名検証用公開鍵（暗号化）および署名を端末２に送信し、Ｓ６０８において、端末２は、データ暗復号鍵（暗号化）、署名検証用公開鍵（暗号化）および署名をデータ共有者デバイス３に転送する。
【００９６】
Ｓ６０９において、データ共有者デバイス３は、受信したデータ暗復号鍵（暗号化）および署名検証用公開鍵（暗号化）を、データ暗復号鍵共有用秘密鍵３２１３を用いて復号化し、データ暗復号鍵４２３３および署名検証用公開鍵４２３５を取得する。
【００９７】
Ｓ６１０において、データ共有者デバイス３は、データ暗復号鍵４２３３および署名検証用公開鍵４２３５の正当性を、Ｓ６０９の直前に受信した署名および署名検証用公開鍵４２３５を用いて検証する。これにより、Ｓ６０８でデータ暗復号鍵（暗号化）あるいは署名検証用公開鍵（暗号化）が改ざんされていた場合などでも発見することができる。
【００９８】
Ｓ６１０でデータ暗復号鍵４２３３および署名検証用公開鍵４２３５が正当でなかった場合、Ｓ６１１において、データ共有者デバイス３は、その旨を端末２に通知し、データ処理を終了する。
Ｓ６１０でデータ暗復号鍵４２３３および署名検証用公開鍵４２３５が正当であった場合、Ｓ６１２において、データ共有者デバイス３は、データ暗複合鍵の取得が完了した旨を端末２に通知する。
【００９９】
〔読出〕
データ共有者デバイス３がデータサーバ１からデータを読み出す方法について、図１から図４までを適宜参照しながら、図１１のフローチャートに沿って説明する。本動作では、データサーバ１、端末２、および、データ共有者デバイス３上で、それぞれ、データ読出プログラム１２１、データ読出プログラム２２１、および、読出データ復号化プログラム３２０が実行される。なお、本動作は、前記準備２の動作と独立して行うようにしてもよいが、ここでは前記準備２の動作から継続して行うものとする。
【０１００】
前記準備２の動作から引き続いて、Ｓ７０１において、データ共有者は、端末２の入力部２６などを用いて、読み出したいデータのデータ種別ＩＤを入力する。なお、その際、端末２がデータ共有者デバイス３からデータ種別ＩＤリスト３２２０を読み出して、端末２の表示部２７に表示するようにしてもよい。また、データ共有者がデータ種別ＩＤを入力することなく、端末２がデータ共有者デバイス３からデータ種別ＩＤリスト３２２０を読み出してデータサーバ１に送信するようにしてもよい。
【０１０１】
Ｓ７０２において、端末２は、Ｓ６０３（図１０）で指定されたデータサーバＵＲＬ４２３９を元に、Ｓ６０３（図１０）で指定されたデータ保有者ＩＤ４２３０、および、Ｓ７０１で入力されたデータ種別ＩＤを、データサーバ１に送信する。
Ｓ７０３において、データサーバ１は、データ格納部１２２内のデータ保有者ＩＤ１２２０をチェックし、データ保有者ＩＤ４２３０を有する共有データが存在するか否か確認する。
【０１０２】
Ｓ７０３で当該共有データが存在しない場合、Ｓ７０４において、データサーバ１は、共有データが存在しない旨を端末２に通知し、データ読出処理を終了する。
Ｓ７０３で共有データが存在する場合、Ｓ７０５において、データサーバ１は、データリスト１２２３内のデータ種別ＩＤ１２３５をチェックし、当該データ種別ＩＤを有するデータのデータＩＤ、データ種別ＩＤ、データ（暗号化）および署名を端末２に送信する。なお、本動作において、これらのデータＩＤ、データ種別ＩＤ、データ（暗号化）および署名のひとまとまりを、読出データと呼ぶ。
【０１０３】
Ｓ７０６において、端末２は、受信した読出データをデータ共有者デバイス３に転送する。
Ｓ７０７において、データ共有者デバイス３は、受信した読出データの正当性を、読出データのうちの署名および署名検証用公開鍵４２３５を用いて検証する。これにより、たとえば、Ｓ７０６などで読出データが改ざんされていたとしても、発見することができる。
【０１０４】
Ｓ７０７で読出データが正当でないと判断された場合、Ｓ７０８において、データ共有者デバイス３は、読出データが正当でない旨を端末２に通知し、データ読出処理を終了する。
Ｓ７０７で読出データが正当であると判断された場合、Ｓ７０９において、データ共有者デバイス３は、データ種別ＩＤリスト３２２０にＳ７０７の直前に受信した読出データのデータ種別ＩＤが含まれるか、つまり受信したデータ種別ＩＤがデータへのアクセス権限を有するか否かを判断する。
【０１０５】
Ｓ７０９でデータ種別ＩＤが含まれない、つまりアクセス権限がないと判断された場合、Ｓ７１０において、データ共有者デバイス３は、その旨を端末２に通知し、データ読出処理を終了する。これにより、たとえば、外科の医者であるデータ共有者が、患者であるデータ保有者のデータのうち、自分の担当外の内科のデータを見ることなどを防止することができる。
Ｓ７０９でデータ種別ＩＤが含まれる、つまりアクセス権限があると判断された場合、Ｓ７１１において、データ共有者デバイス３は、読出データのうちのデータ（暗号化）を、データ暗復号鍵４２３３を用いて復号化する。
【０１０６】
Ｓ７１２において、データ共有者デバイス３は、データ（平文）を端末２に返信する。
その後、端末２でデータ（平文）を表示などすることにより、データ共有者がそのデータ（平文）を見たり操作したりすることができる。
【０１０７】
なお、本動作では、データサーバ１から読み出される読出データは１つであるが、複数のデータを読み出すようにしてもよい。その場合、Ｓ７０７からＳ７１２までの処理を、読み出された個々の読出データに対して適用すればよい。
【０１０８】
このように、本実施形態に係るデータ共有システムによれば、データ保有者デバイス４で書込データの暗号化を行い、データサーバ１に追記することで、データサーバ１から書込データが漏洩しても内容が解読されることがないというだけでなく、システムの管理者によっても書込データの内容を覗き見ることはできない。また、書込データは、修正や削除は不可で追記のみを可能とし、さらに、書込データに通し番号であるデータＩＤを付与することで、書込データの消去を容易に発見することができる。また、各種データの送信の際に署名を生成および付与し、受信側で検証することで、各種データの改ざんを防止または発見することができる。
【０１０９】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。本発明は、たとえば、医療機関でなくても、システム管理者などによる個人情報への不正アクセスを防止するべきデータ共有システムを使用する機関であれば、企業、行政機関などへも広く適用することができる。その他、具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【図面の簡単な説明】
【０１１０】
【図１】本実施形態に係るデータ共有システムの全体構成図である。
【図２】データサーバのデータ格納部に格納されるデータ項目である。
【図３】データ共有者デバイスのデータ格納部に格納されるデータ項目である。
【図４】データ保有者デバイスのデータ格納部に格納されるデータ項目である。
【図５】データ保有者デバイスとデータ共有者デバイスを用いたデータ書込方法に関するフローチャートである。
【図６】データ保有者デバイスのみを用いたデータ書込方法に関するフローチャートである。
【図７】データ保有者デバイスとデータ共有者デバイスを用いたデータ読出方法に関するフローチャートである。
【図８】データ共有者デバイスのみを用いたデータ読出方法に関するフローチャートである。
【図９】データ保有者デバイスのデータ暗復号鍵をデータサーバに書き込む方法に関するフローチャートである。
【図１０】データ共有者デバイスがデータ保有者デバイスのデータ暗復号鍵を取得する方法に関するフローチャートである。
【図１１】データ保有者デバイスのみを用いたデータ読出方法に関するフローチャートである。
【符号の説明】
【０１１１】
１      データサーバ
１０    ＣＰＵ
１１    メモリ
１２    記憶部
１３    通信部
２      端末
２０    ＣＰＵ
２１    メモリ
２２    記憶部
２３、２４、２５  通信部
２６    入力部
２７    表示部
３      データ共有者デバイス
３０    ＣＰＵ
３１    メモリ
３２    記憶部
３３    通信部
４      データ保有者デバイス
４０    ＣＰＵ
４１    メモリ
４２    記憶部
４３    通信部
【図１】
2006099548.tif 000003
【図２】
2006099548.tif 000004
【図３】
2006099548.tif 000005
【図４】
2006099548.tif 000006
【図５】
2006099548.tif 000007
【図６】
2006099548.tif 000008
【図７】
2006099548.tif 000009
【図８】
2006099548.tif 000010
【図９】
2006099548.tif 000011
【図１０】
2006099548.tif 000012
【図１１】
2006099548.tif 000013