説明

リンク・アクセスの制御方法、プログラム及びシステム

【課題】文書に挿入されるリンクによる他文書へのアクセス制御を、各コンテンツのオーナーの間の通信なく達成できる方法を提供する。
【解決手段】リンクの始点であるユーザAと、リンクの終点であるユーザBと、ビューワのユーザCからなる。各ユーザは秘密鍵と公開鍵をもち、公開鍵はユーザ間で共有されている。ユーザBは、ビューワとなるユーザCを選ぶ。ユーザBは、ユーザCの公開鍵と自分の秘密鍵を基に生成したプロキシー型署名付き暗号の鍵をユーザAの公開鍵で暗号化してユーザAに配布する。ユーザAは秘密鍵で復号し、プロキシー型署名付き暗号に基づく関数が利用可能になる。ユーザAはこの関数を用いリンクの情報を変換し、秘密鍵で署名してユーザCに送る。ユーザCは、ユーザAの公開鍵とユーザBの公開鍵を用いて署名を認証し、ユーザAが生成したリンクの情報を取り出し、秘密鍵で復号することによりリンク情報を得る。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、コンピュータ上で作成された文書のアクセス制御に関し、より詳しくは、文書に挿入されるリンクによる他文書へのアクセス制御に関する。
【背景技術】
【0002】
CADや部品表(BOM)等を含む、プロダクト・ライフサイフル・マネジメント(PLM)、アプリケーション・ライフサイフル・マネジメント(ALM)の分野で、関連するデータ(コンテンツ)同士でリンクを張ったり、参照したりすることが頻繁に行われる。
【0003】
その際、共同開発先や競合会社など、様々なベンダが入り組むので、リンクによる他文書へのアクセスを制御する必要か生じる場合がある。これに関して、以下のような従来技術が知られている。
【0004】
特開平4−326136号公報は、対話式データ処理システムで使用されるハイパーテキスト・ネットワークに、ユーザが選択可能な情報モジュールを表示することに関するものであり、ハイパーテキスト・ネットワークは複数のユーザ選択可能情報モジュールを含んでいる。モジュールのうち少なくともいくつかは、他のユーザ選択可能目標モジュールに対するリンク参照句を含んでいる。ユーザの選択入力に応じて、他のユーザ選択可能目標モジュールに対するリンク参照句が、選択された情報モジュール内で識別される。識別されたリンク参照句に対応した他のユーザ選択可能目標モジュールの利用可能性が決定され、識別されたリンク参照句が他のユーザ選択可能目標モジュールの決定された利用可能性に応じて、選択的に活動化または非活動化される。識別されたリンク参照句をユーザのクラスまたはユーザの権限に基づいて、選択的に活動化または非活動化することができる。そして、対応する目標モジュールを、識別されたユーザ・クラスに応じて選択することができる。
【0005】
特開2008−287447号公報は、インターネットに接続可能であり当該インターネットを介して電子メールを送受信する端末装置において、受信した前記電子メールを表示する際に、受信した前記電子メールに含まれるリンク文字列からのリンクを有効にするか又は無効にするかを判別する判別手段と、前記リンク文字列からのリンクを有効にすると判別された場合に、受信した前記電子メールに含まれるリンク文字列を抽出する抽出手段と、前記抽出手段により抽出されたリンク文字列をリンク対象として識別表示する識別表示手段と、前記識別表示手段により識別表示されたリンク文字列からリンク先への前記インターネットを介したアクセスを有効とし、前記識別表示手段により識別表示されない文字列からの前記インターネットを介したアクセスを無効とする制御手段を設けることを開示する。
【0006】
一方、PLM/ALMなどの分野では、以下のような機能が要望される。
まず、他人のコンテンツから自分のコンテンツに勝手にリンクを張られたとき、それが第三者に勝手に張られたことが分かるようにしたい。
またそのとき、第三者がリンクを辿って、オーナーにコンテンツを要求したとき、オーナーが第三者のアクセス権限を確認して、アクセス権限ありと判別したときに第三者にコンテンツの参照を許すようにしたい。
これは例えば、ある部品のブランドを守りたい場合、部品の出所を特定したい場合、評判がよくない企業の特定の部品から参照されたくない場合などがある。
【0007】
それ以外に、他人のコンテンツにある自分のコンテンツへのリンクを見せる相手を自分が制御したいという場合がある。その際、自分のコンテンツへのリンクを含むコンテンツのオーナーがさらにアクセス制御も加えることも可能としたい。すなわち、自分とコンテンツのオーナーの両方が許可した場合のみ、リンクを見せる相手がリンクされたコンテンツを眺めることができる。
これは例えば、ある企業に対して、リンクの形で複数の部品の存在は示したいが、その部品がどの下請け企業で作られているかを示すリンク先の参照は秘密にしておくということである。
【0008】
上記従来技術は、このような要望を満たす機能を提供することができるものではない。そこで本願発明者らは、特開2011−97453号公報、あるいはSatoshi Hada, "Secure Obfuscation for Encrypted Signature", Advances in Cryptology EUROCRYPT 2010に記述されているような、いわゆるプロキシ型署名付き暗号方式に着目し、文書に挿入されるリンクによる他文書へのアクセス制御にプロキシ型署名付き暗号方式を適用する技術を研究した。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開平4−326136号公報
【特許文献2】特開2008−287447号公報
【特許文献3】特開2011−97453号公報
【非特許文献】
【0010】
【非特許文献1】Satoshi Hada, "Secure Obfuscation for Encrypted Signature", Advances in Cryptology EUROCRYPT 2010
【発明の概要】
【発明が解決しようとする課題】
【0011】
この発明の目的は、文書に挿入されるリンクによる他文書へのアクセス制御を、リンクされるコンテンツのオーナーとリンクを挿入されるコンテンツのオーナーの間の通信なく、達成することを可能ならしめる技法を提供することにある。
【課題を解決するための手段】
【0012】
この発明は、上記課題を解決するためになされたものであり、この発明においては先ず、秘密鍵と公開鍵を個々のコンピュータに保持するユーザが想定される。秘密鍵はそのユーザだけが保持しているが、公開鍵は他のユーザにも公開される。すなわち、各々のユーザの公開鍵は、各コンピュータに保存されている。
【0013】
以下、上記ユーザのうち、A,Bは各々リンクの始点および終点となるコンテンツオーナの集合、Cはビューアの集合、SKa, PKaは各々ユーザaの秘密鍵と公開鍵、Sign(X,Y)はYを鍵Xで署名したもの、E(X,Y)はYを鍵Xで暗号化したものとする。
【0014】
bj(∈B)は予め、自分の作成するコンテンツに向けてリンクをつけることを許す人の集合A'(⊆A),そのリンクを見ることを許す人の集合C'(⊆C)を選ぶ。そして、全ての{ai(∈A'),ck(∈C')}の組み合わせに対して、Kaibjck=E(PKai,Kbjck)を作成し、事前にA'に含まれる人全員に配布する。なお、Kbjckはプロキシー型署名付き暗号F(X)の鍵とする。なお、F(X)は例えば、特開2011−97453号公報に記載されているような関数である。
【0015】
ai(∈A)はbjから受け取ったKaibjckをSKaiで復号しKbjckを取得し、F(X)=E(PKck,Sign(SKbj,X))の計算が可能となる(プロキシ型署名付き暗号においては、鍵Kbckより、上記のF(X)の計算が可能)。aiは、コンテンツx.docを作成し、x.doc内のリンクの始点xから、bjの作成したコンテンツy.doc内のリンクの終点yへのリンクx→yを見ることを許すビューアC''(⊆C')を選ぶ。そして、全てのcn(∈C'')に対し、σ=F(x→y)=E(PKcn,Sign(SKbj,x→y)),σ'=Sign(SKai,σ)を計算し、σ'をx.docに添付する。
【0016】
cnはx.docを受け取り、σ'をPKaiを用いてaiの署名を認証しつつ、σを得る。そして、σをSKcnで復号しσ''=Sign(SKbj, x→y)を得、PKbjでbjの署名を認証しつつx→yを取得する。
【0017】
cnはy.docのリクエストをσ''と共にbjに送る。bjは、σ''をPKbjを用いてx→yとその署名を確認後、yをcnに送信する。yを受け取ったcnは、x.doc中のリンク先のオブジェクトとしてyを埋め込む。
【発明の効果】
【0018】
この発明によれば、リンクされる文書のオーナーと、その文書をリンクとして挿入する文書のオーナーの間で直接の通信なく、リンクのアクセスの制御を行うことが可能となり、また、リンクとして挿入する文書のオーナーも、独自の判断で、追加でリンクのアクセスの制御を与えることができる。
【図面の簡単な説明】
【0019】
【図1】異なるドメイン間の連携の例を示す図である。
【図2】ドメイン間連携を実装するハードウェア構成を模式的に示す図である。
【図3】ユーザの役割によるグループ分けを示す図である。
【図4】クライアント・コンピュータのハードウェアのブロック図を示す図である。
【図5】クライアント・コンピュータにおける機能論理ブロック図を示す図である。
【図6】暗号/復号モジュールのサブモジュールを示す図である。
【図7】リンクで参照される文書を作成するユーザのクライアント・コンピュータにおける処理のフローチャートを示す図である。
【図8】リンクを挿入する文書を作成するユーザのクライアント・コンピュータにおける処理のフローチャートを示す図である。
【図9】リンクで参照される文書を参照するユーザのクライアント・コンピュータにおける処理のフローチャートを示す図である。
【図10】処理の具体例を模式的に示す図である。
【発明を実施するための形態】
【0020】
以下、図面に基づき、この発明の実施例を説明する。特に断わらない限り、同一の参照番号は、図面を通して、同一の対象を指すものとする。尚、以下で説明するのは、本発明の一実施形態であり、この発明を、この実施例で説明する内容に限定する意図はないことを理解されたい。
【0021】
先ず改めて、本発明の背景から説明する。自動車、電機、航空宇宙防衛などの分野では、製品が複雑で、多数の部品からなるので、1つの製品を設計するために、機械、電気、システム設計、ソフトウェア、試験などの多くのドメイン(部門)が関与する。このように多くの部門に分かれていても、結局は統合された製品に集約する必要があるので、ドメインにまたがるデータの交換を行う必要がある。
【0022】
図1は、自動車メーカーにおける異なるドメイン間の連携の例を示す図である。図1からは、システム・モデル、要求管理、制御解析、CAD、電気/電子回路、部品構成管理、及び組み込みソフトウェアという異なるドメインの間で、データの交換が行われることが見て取れる。
【0023】
図2は、図1のドメイン間連携を実装するハードウェア構成を模式的に示す図である。図2において、サーバ202は、ドメインで共通に使用されるデータを格納したり、ドメイン間でデータを交換したりする機能を提供する。
【0024】
インターネット204を介してサーバ202に接続されたクライアント・コンピュータ206a、206b、・・・206zは、好適には図1の各ドメインに対応するデータを格納する。各クライアント・コンピュータ206a、206b、・・・206zは個別に、固有の秘密鍵と、その秘密鍵に対応する公開鍵を保持する。各クライアント・コンピュータ206a、206b、・・・206zの公開鍵は公開しても構わないので、好適にはどのクライアント・コンピュータ206a、206b、・・・206zからもアクセスさけるように、サーバ202に保存される。
【0025】
なお、図2に示すようなクライアント・サーバの構成でなく、クライアント・コンピュータ206a、206b、・・・206zがピア・ツー・ピアで接続された構成でも本発明の処理を実装することができる。その場合は好適には、クライアント・コンピュータ206a、206b、・・・206zの公開鍵の全てを各クライアント・コンピュータ206a、206b、・・・206zに保存するようにしてもよい。
【0026】
図3は、本発明の文脈におけるクライアント・コンピュータ206a、206b、・・・206zの役割分担を示す図である。すなわち、次のような文書があったとする。
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<a href="y.doc">XXX</a>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
【0027】
これをx.docと呼ぶことにすると、このようなx.docを作成するユーザ、あるいはx.docのオーナーが使用するクライアント・コンピュータ206a、206c、206e・・・が属するグループをグループAと呼ぶことにする。グループAのユーザは、必要に応じてx.doc中に<a href="y.doc">XXX</a>のようなリンクを埋め込む。なお、これらのリンク情報は、x.doc中に埋め込まれずに、リンク情報を持つ別ファイルに保持してもよい。その場合、ビューアは、最終的にy.docを取得してから、x.docにリンクを埋め込むことになる。
【0028】
一方、x.docに埋め込まれたリンクで参照される、あるいは別ファイルにリンク情報をもつy.docを作成するユーザ、あるいはx.docのオーナーが使用するクライアント・コンピュータ206b、206h、206k・・・が属するグループをグループBと呼ぶことにする。
【0029】
また、x.docを閲覧して、そこに埋め込まれているリンクの、あるいは別ファイルにリンク情報をもつ文書を必要に応じてグループBのユーザに要求するユーザ使用するクライアント・コンピュータ206f、206t、・・・が属するグループをグループCと呼ぶことにする。
【0030】
図2に示すクライアント・コンピュータ206a、206b、・・・206zのハードウェア構成は便宜上同一とし、図4にその構成のブロック図を示す。
【0031】
図4を参照すると、本発明の一実施例に係るシステム構成及び処理を実現するためのコンピュータ・ハードウェアのブロック図が示されている。図4において、システム・パス402には、CPU404と、主記憶(RAM)406と、ハードディスク・ドライブ(HDD)408と、キーボード410と、マウス412と、ディスプレイ414が接続されている。CPU404は、好適には、32ビットまたは64ビットのアーキテクチャに基づくものであり、例えば、インテル社のPentium(商標) 4、Core(商標)2 Duo、Xeon(商標)、AMD社のAthlon(商標)などを使用することができる。主記憶406は、好適には、4GB以上の容量をもつものである。ハードディスク・ドライブ408は、好適には例えば、500GB以上の容量をもつものである。
【0032】
ハードディスク・ドライブ408には、個々に図示しないが、オペレーティング・システムが、予め格納されている。オペレーティング・システムは、Linux(商標)、マイクロソフト社のWindows(商標)7、Windows XP(商標)、アップルコンピュータのMac OS(商標)などの、CPU404に適合する任意のものでよい。
【0033】
ハードディスク・ドライブ408にはさらに、文書作成・編集プログラム502、文書表示プログラム504、作成された文書506、暗号/復号モジュール508、当該ユーザ固有の秘密鍵510、各ユーザの公開鍵512a、512b、・・・512z、及び通信モジュール514が格納されている。これらの機能構成については、図5のブロック図を参照して、後でより詳細に説明する。なお、公開鍵512a、512b、・・・512zは、ハードディスク・ドライブ408にローカルに保存するのでなく、サーバ202に置いて、通信インターフェース416を介してアクセスしてもよい。
【0034】
キーボード410及びマウス412は、所定のGUI画面(図示しない)を操作して、文書作成・編集プログラム502などを起動したり、文字を打ち込んだりするために使用される。
【0035】
ディスプレイ414は、好適には、液晶ディスプレイであり、例えば、XGA(1024×768の解像度)、またはUXGA(1600×1200の解像度)などの任意の解像度のものを使用することができる。ディスプレイ114は、生成された結果のワークフローを表示するために使用される。
【0036】
図4のシステムは更に、バス402に接続された通信インターフェース416を介して、LAN、WANなどの外部ネットワークに接続されている。通信インターフェース416は、イーサネット(商標)などの仕組みにより、外部ネットワーク上にあるサーバやクライアント・コンピュータなどのシステムとデータのやりとりを行う。
【0037】
次に、図5の機能ブロック図を参照して、本発明の実施例の機能構成について説明する。文書作成・編集プログラム502と文書表示プログラム504は、単一のプログラムがその両方の機能を提供するようにしてもよい。文書作成・編集プログラム502は例えば、Mirosoft(R) WORD、一般的なテキスト・エディタなど任意の文書作成・編集プログラムを使用することができる。
【0038】
文書作成・編集プログラム502が生成する文書506は、リンクを埋め込み可能な、MS-WORD形式、HTML形式、XML形式などの任意の文書形式でよい。また、文書表示プログラム504は、埋め込まれたリンクにハイパーリンクしたり、リンク先の内容を表示したりする機能をもつ任意のプログラムでよく、典型的には通常のWebブラウザでよい。
【0039】
暗号/復号モジュール508は、図6に示すように、暗号化サブモジュール602、復号サブモジュール604、署名サブモジュール606、署名認証サブモジュール608、プロキシ型署名付き暗号鍵生成サブモジュール610、F(X)生成サブモジュール612、及びF(X)計算サブモジュール614を含む。
【0040】
暗号化サブモジュール602は例えば、公開鍵をPKaiとすると、E(PKai,X)により、Xを公開鍵PKaiで暗号化する機能をもつ。例えば、E(X,Y) ≡ X^Y、すなわちあるmodでのXのY乗である。
【0041】
復号サブモジュール604は、暗号化サブモジュール602で暗号化したデータを、公開鍵PKaiに対応する秘密鍵SKaiで復号する機能をもつ。
【0042】
署名サブモジュール606は、秘密鍵をSKaiとすると、Sign(SKai,X)で、Xに署名をつける。
【0043】
プロキシ型署名付き暗号鍵生成サブモジュール610は例えば、Kbjck = R||S'Kbjの式により、プロキシ型署名付き暗号鍵Kbjckを生成する。但し、R=E(PKck, 1/r), S'Kbj=r * SKbj、 rはbj∈Bのユーザのクライアント・コンピュータで生成された乱数、||は結合、 *は乗算である。
【0044】
F(X)生成サブモジュール612は、F(X) = Sign(S'Kbj, X)||Rという式で、F(X)を与える。
【0045】
F(X)計算サブモジュール614は、X=aとすると、生成されたF(X)を用いてF(a)を計算し、Rを復号して1/rを取得後、PKbj/rを用いて署名の認証を行う。
【0046】
これらのサブモジュールがどのように使用されるかは、図7〜図9のフローチャートを参照して、より詳細に説明する。
【0047】
通信モジュール514は、通信インターフェース416とサーバ202を介して、他のクライアント・コンピュータとデータをやり取りする機能をもつ。その場合、文書506が直接、通信モジュール514に送られることがあるし、文書506、秘密鍵510、各公開鍵512a、512b、・・・512zなどを暗号/復号モジュール508によって処理したデータが通信モジュール514に送られることもある。
【0048】
一方で通信モジュール514は、通信インターフェース416とサーバ202を介して、他のクライアント・コンピュータから直接、文書506を受け取ったり、一旦暗号/復号モジュール508で処理した結果を、文書506として保存したりする。
【0049】
次に図7のフローチャートを参照して、グループBのクライアント・コンピュータにおける処理を説明する。ステップ702において、クライアント・コンピュータにおいて、ユーザは、操作により自分の作成するコンテンツに向けてリンクをつけることを許す人の集合A'(⊆A),そのリンクを見ることを許す人の集合C'(⊆C)を選ぶ。すると、クライアント・コンピュータは、プロキシ型署名付き暗号作成サブモジュール610を呼び出して、全ての{ai(∈A'),ck(∈C')}の組み合わせに対して、Kaibjck= E(PKai,Kbjck) を作成する。但し、Kbjckはプロキシ型署名付き暗号F(X)の鍵である。
【0050】
ステップ704で、クライアント・コンピュータは、各aiのクライアント・コンピュータに対して、{Kaibjck}を配布する。
【0051】
ステップ706では、クライアント・コンピュータは、改めて作成した、あるいは既存の文書506であるy.docを作成し、グループAのクライアント・コンピュータに送付する。
【0052】
その後、クライアント・コンピュータは、グループCのユーザcnのクライアント・コンピュータから、σ''=Sign(SKbj, x→y)を受信する。ここで、x→yは、<a href="y.doc">XXX</a>のような文書x.docに埋め込まれた、あるいは別ファイルにリンク情報をもつ情報である。
【0053】
クライアント・コンピュータは、ステップ710で、署名認証サブモジュール608により、自身の公開鍵PKbjでのσ''の認証を試み、認証が成功すると、ステップ712で、ユーザにx→yを承認するかどうかを聞くメニューをディスプレイ414に提示し、ユーザの承認するとの応答に対して、ステップ714で、y.docをユーザcnのクライアント・コンピュータに送信する。
【0054】
一方、ステップ710での認証が失敗した場合、あるいは、ステップ712でユーザがx→yを承認しないとの応答があった場合は、y,docをユーザcnのクライアント・コンピュータに送信することなく、処理を終える。
【0055】
次に、図8のフローチャートを参照して、グループAのクライアント・コンピュータにおける処理を説明する。
【0056】
ステップ802で、グループAのクライアント・コンピュータは、ユーザbj ∈ Bのクライアント・コンピュータから、複数のkに対する{Kaibjck}を受信する。
【0057】
ステップ804で、グループAのクライアント・コンピュータは、復号サブモジュール604を呼び出して、Kaibjckを、自身の秘密鍵であるSKaiで復号を試み、もし復号できたならステップ806で、復号して得られたKbjckを保持する。
【0058】
ステップ808で、グループAのクライアント・コンピュータは、全てのkに対して復号完了かどうか判断し、そうでないなら次のkの値に対してステップ804での処理を試みる。
【0059】
こうして全てのkについて復号完了すると、ステップ810で、グループAのクライアント・コンピュータは、復号できたcnの集合をC'とする。
【0060】
ステップ812で、グループAのクライアント・コンピュータは、グループBのクライアント・コンピュータから、y.docを受信する。
【0061】
ステップ814で、グループAのクライアント・コンピュータのユーザは、文書作成・編集プログラム502を用いて文書x.docを作成する。その際、文書x.docには、<a href="y.doc">XXX</a>のように、文書y.docに対するリンクが配置される。
【0062】
ステップ816で、グループAのクライアント・コンピュータのユーザは、x.docのリンクの始点xからy.doc内のリンクの終点yへのリンクx→yを見ることを許すユーザであるビューワの集合C''⊆ C'を選ぶ。
【0063】
ステップ818で、グループAのクライアント・コンピュータのユーザは、全てのcn ∈ C''に対して、F(X)生成サブモジュール612でF(X)を生成し、次に、その生成したF(X)でF(X)計算サブモジュール614を呼び出すことにより、σ=F(x→y)=E(PKcn,Sign(SKbj,x→y))を計算する。次にグループAのクライアント・コンピュータは、署名サブモジュール606を呼び出すことにより、σ' = Sign(SKai,σ)を計算し、σ'をx.docに添付する。
【0064】
ステップ820で、グループAのクライアント・コンピュータのユーザは、C''に含まれるクライアントにx.docを配布して、処理を終了する。
【0065】
次に、図9のフローチャートを参照して、グループCのクライアント・コンピュータにおける処理を説明する。
【0066】
ステップ902で、グループCのクライアント・コンピュータは、グループAのクライアント・コンピュータから、x.docを受信する。このとき、ステップ818に関連して説明したように、σ'も添付して送られてくる。
【0067】
ステップ904で、グループCのクライアント・コンピュータは、署名認証サブモジュール608を呼び出して、σ'をPKaiで認証することを試みる。そして、認証が失敗したら、処理を終了する。
【0068】
ステップ904で認証が成功すると、グループCのクライアント・コンピュータは、ステップ906で、自身の秘密鍵SKcnで、復号サブモジュール604を呼び出して、σの復号を試みる。そして、復号が失敗したら、処理を終了する。
【0069】
ステップ906で復号が成功すると、グループCのクライアント・コンピュータは、σ''=Sign(SKbj, x→y)を抽出し、ステップ908で、署名認証サブモジュール608を呼び出して、σ''をPKbjで認証することを試みる。そして、認証が失敗したら、処理を終了する。
【0070】
ステップ908で認証が成功すると、グループCのクライアント・コンピュータは、ステップ910で、ユーザbjのクライアント・コンピュータにσ''を送付して、y.docをリクエストする。
【0071】
σ''を受け取ったユーザbjのクライアント・コンピュータは、ステップ710での認証が成功したことに応答して、y.docをグループCのクライアント・コンピュータに送ってくる。すると、ステップ912での判断が肯定的になるので、グループCのクライアント・コンピュータは、ステップ914で、y.docへのリンク、もしくは参照先を、x.docのリンク先オブジェクトとして埋め込む。一方、ステップ710での認証が失敗すると、y.docが送られてこないので、直ちに処理は終了する。
【0072】
次に図10を参照して、本発明におけるプロキシ型署名付き暗号化の処理について説明する。これは、ある人(Bとする)の署名を、代理人(Aとする)に頼んで安全につけてもらうことを実現するものである。その際、その署名を見られる人(Cとする)は、Bによって特定される。このとき、Bの秘密鍵を他人に漏らさないで、代理人(A)にBの署名をしてもらえる、ということが肝要である。
【0073】
次に図10の例を参照して、本発明の具体的動作について説明する。図10では、グループBからbj、グループAからai、グループCからcnがそれぞれ選ばれているとする。
【0074】
bjは、ステップ702で示すように、{Kaibjck}1004を作成し、ステップ704で示すように、それをaiに送っておく。次にbjは、リンクで参照される文書y.doc1002を作成し、そのクライアント・コンピュータのハードディスク・ドライブに保存する。
【0075】
aiは、ステップ802で{Kaibjck}1004を受信し、ステップ812でコンテンツy.doc1002をbjから受信し、ステップ814でコンテンツx.doc1006を作成し、ステップ816でσ'1008を作成してx.docに添付し、ステップ820でσ'付きのx.docをcnに送る。
【0076】
cnは、ステップ902でσ'付きのx.docを受信し、ステップ904〜908で、σ'からσ''1010を抽出し、ステップ910で、σ''1010をbjに送る。
【0077】
σ''1010を受け取ったbjは、ステップ710でσ''を認証すると、ステップ714でy.doc1002をcnに送る。
【0078】
cnは、y.doc1002へのリンク、もしくは参照先をx.doc1006のリンクの箇所に挿入する。あるいは、y.doc1002をx.doc1006と同じフォルダに保存して、x.doc1006のリンクの箇所から、y.doc1002にハイパーリンクできるようにしてもよい。
【0079】
以上のように本発明を特定の実施例に基づき説明したが、本発明は使用するコンピュータ・システムのハードウェア、ソフトウェアなどの特定の組み合わせに依存せず、任意のプラットフォームや形態で実装可能である。
【0080】
また、ここで、使用される暗号化方式は、典型的にはRSA暗号方式であるが、これには限定されず、楕円曲線暗号方式、ECDSAなど任意の公開鍵暗号方式を利用することが可能である。
【符号の説明】
【0081】
404 CPU
406 主記憶
408 ハードディスク・ドライブ
502 文書作成・編集プログラム
504 文書表示プログラム
506 文書
508 暗号/復号モジュール
510 秘密鍵
512a、512b、・・・512z 公開鍵
602 暗号化サブモジュール
604 復号サブモジュール
606 署名サブモジュール
608 署名認証サブモジュール
610 F(x)生成サブモジュール
612 F(x)計算サブモジュール

【特許請求の範囲】
【請求項1】
文書のリンクで参照される第1の文書のオーナーである第1のユーザと、前記第1の文書をリンクとして埋め込む第2の文書のオーナーである第2のユーザと、前記第2の文書に埋め込まれた、もしくは埋め込まれる前記第1の文書を閲覧可能とされる第3のユーザの各々が、コンピュータに秘密鍵と公開鍵をもち、それぞれのユーザの公開鍵がそれぞれのユーザに共有されているシステムにおいて、
前記第1のユーザのコンピュータにおいて、前記第1のユーザの秘密鍵と前記第3のユーザの公開鍵を用いてプロキシ型署名付き暗号の鍵を生成するステップと、
前記第1の鍵を、前記第2のユーザの公開鍵で暗号化して第1の値を得るステップと、
値Xに前記第1のユーザの秘密鍵で署名をつけ、それをさらに前記第3のユーザの公開鍵で暗号化する関数F(X)を、前記プロキシ型署名付き暗号の鍵を用いて生成するステップと、
前記第2の文書に前記第1の文書へのリンクをつける情報に前記F()をほどこした値に、前記第2のユーザの秘密鍵で署名した情報を前記第2の文書とともに、前記第3のユーザのコンピュータに送信するステップと、
前記第3のユーザのコンピュータにおいて、前記第2のユーザの秘密鍵で署名した情報を前記第2の文書を受け取るとともに、前記第1のユーザの秘密鍵で署名した情報を前記第2のユーザの公開鍵で署名を認証しつつ、前記F()をほどこした値を得て、その値を前記第3のユーザの秘密鍵で復号し、その復号した値を前記第1のユーザの公開鍵で認証して前記第2の文書に前記第1の文書へのリンクをつける情報を取得するステップを有する、
リンク・アクセス制御方法。
【請求項2】
前記第3のユーザのコンピュータから、前記第1のユーザの秘密鍵で署名した情報を受け取ることに応答して、前記第1のユーザのコンピュータが、前記第1のユーザの秘密鍵で署名した情報を前記第1のユーザの公開鍵で確認し、その確認に応じて、前記第1の文書を前記第3のユーザのコンピュータに送るステップをさらに有する、請求項1に記載のリンク・アクセス制御方法。
【請求項3】
前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータが、サーバ・システムに接続され、前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータは、該サーバ・システムを介して通信する、請求項1に記載のリンク・アクセス制御方法。
【請求項4】
前記それぞれのユーザの公開鍵は、該サーバ・システムに保存される、請求項3に記載のリンク・アクセス制御方法。
【請求項5】
前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータは、ピア・ツー・ピアで接続される、請求項1に記載のリンク・アクセス制御方法。
【請求項6】
文書のリンクで参照される第1の文書のオーナーである第1のユーザと、前記第1の文書をリンクとして埋め込む第2の文書のオーナーである第2のユーザと、前記第2の文書に埋め込まれた、もしくは埋め込まれる前記第1の文書を閲覧可能とされる第3のユーザの各々が、コンピュータに秘密鍵と公開鍵をもち、それぞれのユーザの公開鍵がそれぞれのユーザに共有されているシステムにおいて、
前記システムに、
前記第1のユーザのコンピュータにおいて、前記第1のユーザの秘密鍵と前記第3のユーザの公開鍵を用いてプロキシ型署名付き暗号の鍵を生成するステップと、
前記第1の鍵を、前記第2のユーザの公開鍵で暗号化して第1の値を得るステップと、
値Xに前記第1のユーザの秘密鍵で署名をつけ、それをさらに前記第3のユーザの公開鍵で暗号化する関数F(X)を、前記プロキシ型署名付き暗号の鍵を用いて生成するステップと、
前記第2の文書に前記第1の文書へのリンクをつける情報に前記F()をほどこした値に、前記第2のユーザの秘密鍵で署名した情報を前記第2の文書とともに、前記第3のユーザのコンピュータに送信するステップと、
前記第3のユーザのコンピュータにおいて、前記第2のユーザの秘密鍵で署名した情報を前記第2の文書を受け取るとともに、前記第1のユーザの秘密鍵で署名した情報を前記第2のユーザの公開鍵で署名を認証しつつ、前記F()をほどこした値を得て、その値を前記第3のユーザの秘密鍵で復号し、その復号した値を前記第1のユーザの公開鍵で認証して前記第2の文書に前記第1の文書へのリンクをつける情報を取得するステップを実行させる、
リンク・アクセス制御プログラム。
【請求項7】
前記第3のユーザのコンピュータから、前記第1のユーザの秘密鍵で署名した情報を受け取ることに応答して、前記第1のユーザのコンピュータが、前記第1のユーザの秘密鍵で署名した情報を前記第1のユーザの公開鍵で確認し、その確認に応じて、前記第1の文書を前記第3のユーザのコンピュータに送るステップをさらに有する、請求項6に記載のリンク・アクセス制御プログラム。
【請求項8】
前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータが、サーバ・システムに接続され、前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータは、該サーバ・システムを介して通信する、請求項6に記載のリンク・アクセス制御プログラム。
【請求項9】
前記それぞれのユーザの公開鍵は、該サーバ・システムに保存される、請求項8に記載のリンク・アクセス制御プログラム。
【請求項10】
前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータは、ピア・ツー・ピアで接続される、請求項6に記載のリンク・アクセス制御プログラム。
【請求項11】
文書のリンクで参照される第1の文書のオーナーである第1のユーザと、前記第1の文書をリンクとして埋め込む第2の文書のオーナーである第2のユーザと、前記第2の文書に埋め込まれた、もしくは埋め込まれる前記第1の文書を閲覧可能とされる第3のユーザの各々が、コンピュータに秘密鍵と公開鍵をもち、それぞれのユーザの公開鍵がそれぞれのユーザに共有されているシステムにおいて、
前記第1のユーザのコンピュータにおいて、前記第1のユーザの秘密鍵と前記第3のユーザの公開鍵を用いてプロキシ型署名付き暗号の鍵を生成する手段と、
前記第1の鍵を、前記第2のユーザの公開鍵で暗号化して第1の値を得る手段と、
値Xに前記第1のユーザの秘密鍵で署名をつけ、それをさらに前記第3のユーザの公開鍵で暗号化する関数F(X)を、前記プロキシ型署名付き暗号の鍵を用いて生成する手段と、
前記第2の文書に前記第1の文書へのリンクをつける情報に前記F()をほどこした値に、前記第2のユーザの秘密鍵で署名した情報を前記第2の文書とともに、前記第3のユーザのコンピュータに送信する手段と、
前記第3のユーザのコンピュータにおいて、前記第2のユーザの秘密鍵で署名した情報を前記第2の文書を受け取るとともに、前記第1のユーザの秘密鍵で署名した情報を前記第2のユーザの公開鍵で署名を認証しつつ、前記F()をほどこした値を得て、その値を前記第3のユーザの秘密鍵で復号し、その復号した値を前記第1のユーザの公開鍵で認証して前記第2の文書に前記第1の文書へのリンクをつける情報を取得する手段を有する、
リンク・アクセス制御システム。
【請求項12】
前記第3のユーザのコンピュータから、前記第1のユーザの秘密鍵で署名した情報を受け取ることに応答して、前記第1のユーザのコンピュータが、前記第1のユーザの秘密鍵で署名した情報を前記第1のユーザの公開鍵で確認し、その確認に応じて、前記第1の文書を前記第3のユーザのコンピュータに送る手段をさらに有する、請求項11に記載のリンク・アクセス制御システム。
【請求項13】
前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータが、サーバ・システムに接続され、前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータは、該サーバ・システムを介して通信する、請求項11に記載のリンク・アクセス制御システム。
【請求項14】
前記それぞれのユーザの公開鍵は、該サーバ・システムに保存される、請求項13に記載のリンク・アクセス制御システム。
【請求項15】
前記第1のユーザのコンピュータと、前記第2のユーザのコンピュータと、前記第3のユーザのコンピュータは、ピア・ツー・ピアで接続される、請求項11に記載のリンク・アクセス制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−115522(P2013−115522A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−258300(P2011−258300)
【出願日】平成23年11月25日(2011.11.25)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【Fターム(参考)】