説明

理想機能実現装置、方法、プログラム

【課題】合成可能な理想機能実現装置を提供する。
【解決手段】理想機能実現装置F10であって、sup(h,x)とAを入力としleak(A,sup(h,x))を出力するleakメッセージ作成部11と、hとxを入力としsup(h,x)を出力するsuppress関数計算部12と、input(A,x)が入力された場合にhとAとxを出力し、攻撃者からinf(B,z)が入力された場合にhとBを出力し、int_comp(h)が入力された場合にhを出力するヒストリー記録部13と、hを入力としint_comp(h)を出力するint_comp関数計算部14と、hを入力としck(h)を出力するck(h)判定部15と、ck(h)とhを入力としout_comp(h)を出力するout_comp関数計算部16と、out_comp(h)とBを入力としoutput(B,w)を出力するoutputメッセージ作成部17を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は合成可能な理想機能実現装置、方法、プログラムに関する。
【背景技術】
【0002】
従来のセキュリティ要求仕様の主な記述方法では、プロトコルの実行にあるアクセスを持つ攻撃者と、その攻撃者に対してプロトコルの安全性が破られないことを証明するチャレンジャーとの間でのゲームという形で表現されていた。そして、攻撃者がそのゲームに勝つ確率がごくわずかである場合に、そのプロトコルは安全であるとしていた。これに対して、安全なプロトコルの理想的な振る舞いを理想機能として表現して、プロトコルのセキュリティ要求仕様を記述する方法がある。そこでは、攻撃者がプロトコルにアクセスして導く振る舞いと、理想的に安全な機能にアクセスして導く振る舞いに変わりがない場合に、そのプロトコルは安全であるとしている。理想機能による安全性の定義は、ゲームに基づく安全性よりも強い安全性が定義でき、特にインターネットのような攻撃者がさまざまな攻撃手法を利用できる状況で、その安全性定義の重要性が増している。
【発明の概要】
【発明が解決しようとする課題】
【0003】
ゲーム形式による安全性の記述は、プロトコル設計者の念頭にあるセキュリティ要件を表現しやすく、いくつかの要求仕様の連言も、そのゲームを並べて書くだけで表現される。しかし、あるセキュリティ要求使用を満たすプロトコルをサブルーチンとして利用するプロトコルがあるセキュリティ要求仕様を満たすことを証明する場合、ゲーム形式ではreductionとよばれる複雑な議論が必要で、その安全性証明が難しいという課題がある。一方、理想機能による安全性の証明では、そのような場合、サブルーチンを理想機能で置き換えるだけでよく、安全性証明が簡単になる。したがって、サブルーチンを組み合わせて達成されるような複雑なセキュリティ要求仕様では、理想機能での表現が重要である。しかし、複雑な複合的セキュリティ要求仕様を正しく理想機能で表現することは非常に難しいという課題があった。本発明では、この複合的な理想機能をより簡単に生成することができる理想機能実現装置が提供される。
【課題を解決するための手段】
【0004】
本発明の理想機能実現装置は、leakメッセージ作成部と、suppress関数計算部と、ヒストリー記録部と、int_comp関数計算部と、ck(h)判定部と、out_comp関数計算部と、outputメッセージ作成部とを備える。
【0005】
理想機能実現装置にinput(A,x)が入力された場合に、ヒストリー記録部は、input(A,x)を入力とし、hが空であれば、当該空であるhをh=input(A,x)に更新し、hが空でなく、h=Pであれば、当該空でないhをh=P.input(A,x)に更新して、当該更新されたhと、Aと、xとを出力する。suppress関数計算部は、h=input(A,x)、もしくはh=P.input(A,x)に更新されたhと、xとを入力とし、sup(h,x)を計算して、当該sup(h,x)を出力する。leakメッセージ作成部は、sup(h,x)とAとを入力とし、leak(A,sup(h,x))を作成して、当該leak(A,sup(h,x))を任意の攻撃者に出力する。
【0006】
任意の攻撃者から理想機能実現装置にinf(B,z)が入力された場合に、ヒストリー記録部は、inf(B,z)を入力とし、hが空であれば、当該空であるhをh=inf(B,z)に更新し、hが空でなく、h=Qであれば、当該空でないhをh=Q.inf(B,z)に更新して、当該更新されたhと、Bとを出力する。int_comp関数計算部は、h=inf(B,z)、もしくはh=Q.inf(B,z)に更新されたhを入力とし、int_comp(h)を計算して、当該int_comp(h)を出力する。ヒストリー記録部は、int_comp(h)を入力とし、hがh=Rであれば、当該hをh=R.int_comp(h)に更新して、当該更新されたhを出力する。ck(h)判定部は、h=R.int_comp(h)に更新されたhを入力とし、ck(h)を計算し、当該計算結果であるck(h)=trueもしくはck(h)=falseのいずれかを出力する。out_comp関数計算部は、ck(h)判定部により出力されたck(h)と、ヒストリー記録部によりh=R.int_comp(h)に更新されたhとを入力とし、ck(h)=trueである場合に、out_comp(h)を計算し、当該out_comp(h)を出力する。outputメッセージ作成部は、out_comp(h)と、Bとを入力とし、wにw=out_comp(h)を代入して、output(B,w)を作成し、当該output(B,w)を出力する。ヒストリー記録部は、output(B,w)を入力とし、hがh=Sであれば、当該hをh=S.output(B,w)に更新する。
【発明の効果】
【0007】
本発明の理想機能実現装置が上記の構成を備えることにより、理想機能実現装置同士が互いに合成可能となる。このことはすなわち理想機能が互いに合成可能であることを意味する。このため、ゲーム形式のセキュリティ要求仕様表現の利点である要求の連言の記述が理想機能においても可能となる。従って、いくつかの基本的なセキュリティ要求仕様に対応する理想機能から、それら要求仕様を組み合わせた複雑な要求仕様に対応する理想機能を簡単に生成することができる。これにより、設計が難しかった理想機能の設計が簡単になり、あるセキュリティ要求仕様にもとづくプロトコルの安全性証明も、より容易になる。
【図面の簡単な説明】
【0008】
【図1】実施例1の理想機能実現装置Fの構成を示すブロック図。
【図2】実施例1の理想機能実現装置Fの動作を示すフローチャート。
【図3】実施例1の理想機能実現装置Fのsup(h,x)の計算例を示す図。
【図4】実施例1の理想機能実現装置Fのヒストリー記録部が備えるhを示す図。
【図5】変形例1の理想機能実現装置F1の構成を示すブロック図。
【図6】変形例1の理想機能実現装置F1の動作を示すフローチャート。
【図7】変形例1の理想機能実現装置F2の構成を示すブロック図。
【図8】変形例1の理想機能実現装置F2の構成を示すブロック図。
【図9】変形例1の理想機能実現装置F2の動作を示すフローチャート。
【図10】変形例2の理想機能実現装置F3の構成を示すブロック図。
【図11】変形例2の理想機能実現装置F3の動作を示すフローチャート。
【図12】変形例2の理想機能実現装置F4の構成を示すブロック図。
【図13】変形例2の理想機能実現装置F4の動作を示すフローチャート。
【図14】変形例2の理想機能実現装置F5の構成を示すブロック図。
【図15】変形例2の理想機能実現装置F5の構成を示すブロック図。
【図16】変形例2の理想機能実現装置F5の動作を示すフローチャート。
【発明を実施するための形態】
【0009】
以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付す。
【実施例1】
【0010】
まず、本発明の理想機能実現装置で用いられるメッセージ、および関数について説明する。なお、下記のメッセージ、および関数の理想機能実現装置内での具体的な動作については後述するものとする。本発明の理想機能実現装置では、inputメッセージ、infメッセージ、leakメッセージ、outputメッセージ、suppress関数、int_comp関数、ck関数、out_comp関数が用いられる。inputメッセージは、二つの引数を持ち、理想機能実現装置への入力の際に作成されるメッセージである。infメッセージは、二つの引数を持ち、攻撃者から理想機能実現装置への入力の際に作成されるメッセージである。input、infメッセージは、理想機能実現装置への2種類の入力(input,inf)を区別するためのラベルを意味する。leakメッセージは、二つの引数を持ち、理想機能実現装置から攻撃者への出力の際に作成されるメッセージである。outputメッセージは、二つの引数を持ち、理想機能実現装置からの出力の際に作成されるメッセージである。leak、outputメッセージは、理想機能実現装置からの2種類の出力(leak,output)を区別するためのラベルを意味する。
【0011】
suppress関数は、二つの引数を持ち、一方の引数に依存して他方の引数の一部または全部を隠蔽することを特徴とする多項式時間関数である。多項式時間関数とは、ある多項式f(x)があって、入力データの長さをnとしたとき、f(n)ステップ内で、答えを出力するアルゴリズムである。int_comp関数は、一つの引数を持ち、理想機能実現装置の種類によって入出力が異なる確率的多項式時間関数である。確率的多項式時間関数とは、ある多項式f(x)があって、入力データの長さをnとしたとき、f(n)ステップ内で、答えを出力するアルゴリズムであり、計算途中で乱数を発生させることで、その結果が確率的に決まるという性質をもつ。ck関数(以下、check述語とも書く)は、一つの引数を持ち、入力された引数の値に応じてtrueもしくはfalseのいずれかの計算結果を出力する関数であって、予め定められた多項式時間述語である。多項式時間述語とは、ある多項式f(x)があって、入力データの長さをnとしたとき、f(n)ステップ内で真偽を判定するアルゴリズムである。out_comp関数は、一つの引数を持ち、理想機能実現装置の種類によって入出力が異なる確率的多項式時間関数である。 また、inputメッセージをinput(引数,引数)と、infメッセージをinf(引数,引数)と、leakメッセージをleak(引数,引数)と、outputメッセージをoutput(引数,引数)と、suppress関数をsup(引数,引数)と、int_comp関数をint_comp(引数)と、ck関数をck(引数)と、out_comp関数をout_comp(引数)とそれぞれ表すものとする。また、本発明の実施例1にかかる理想機能実現装置F(10)では任意の記号列A,B,x,z,w,h,P,Q,R,Sが用いられるものとする。
【0012】
図1、2を参照して、本発明の理想機能実現装置F(10)の動作について詳細に説明する。図1は理想機能実現装置F(10)の構成を示すブロック図である。図2は理想機能実現装置F(10)の動作を示すフローチャートである。本発明の理想機能実現装置F(10)は、leakメッセージ作成部11と、suppress関数計算部12と、ヒストリー記録部13と、int_comp関数計算部14と、ck(h)判定部15と、out_comp関数計算部16と、outputメッセージ作成部17とを備える。また理想機能実現装置F(10)への入出力の種別を表すaction nameと呼ばれるシンボルが有限個与えられている。入力させるaction nameの集合を集合I(F)92、出力させるaction nameの集合を集合O(F)93として与えられている。また記号列x(94)が与えられている。Aは集合I(F)92の元であり、Bは集合O(F)93の元であるものとする。理想機能実現装置F(10)にaction nameAを入力するとき、inputメッセージである、input(A,x)が作成される。ここで、記号列xはセッションIDと入力値との対とする。
【0013】
理想機能実現装置F(10)にinput(A,x)が入力された場合に、ヒストリー記録部13は、このinput(A,x)を入力とし(S101)、hが空であれば、当該空であるhをh=input(A,x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(A,x)に更新して(S102)、当該更新されたhと、Aと、xとを出力する。suppress関数計算部12は、h=input(A,x)、もしくはh=P.input(A,x)に更新されたhと、xとを入力とし、sup(h,x)を計算して(S103)、当該sup(h,x)を出力する。leakメッセージ作成部11は、sup(h,x)とAとを入力とし、leak(A,sup(h,x))を作成して(S104)、当該leak(A,sup(h,x))を攻撃者91に出力する(S105)。ここでleakメッセージについて説明を補足する。理想機能実現装置F(10)になんらかの入力があった場合(本実施例ではinput(A,x))、そのイベントの発生が攻撃者91に知らされ、一部の情報が漏れることがある。この情報の流れを理想機能実現装置F(10)から攻撃者91への出力として、leakメッセージでラベル付けし、この情報を他の出力(output)と区別する。本実施例では、理想機能実現装置F(10)への入力input(A,x)に対して、攻撃者91にleak(A,sup(h,x))が出力(リーク)される。
【0014】
攻撃者91から理想機能実現装置F(10)にinf(B,z)が入力された場合に、ヒストリー記録部13は、inf(B,z)を入力とし(S106)、hが空であれば、当該空であるhをh=inf(B,z)に更新し、hが空でなく、hが任意の記号列Qであれば、当該空でないhをh=Q.inf(B,z)に更新して(S107)、当該更新されたhと、Bとを出力する。ここで、inf(B,z)は後述するoutput(B,w)の出力を促す攻撃者91からのメッセージ入力を意味している。ここで、引数zは理想機能実現装置F(10)に与える影響を表す。int_comp関数計算部14は、h=inf(B,z)、もしくはh=Q.inf(B,z)に更新されたhを入力とし、int_comp(h)を計算して(S108)、当該int_comp(h)を出力する。ヒストリー記録部13は、int_comp(h)を入力とし、hが任意の記号列Rであれば、当該hをh=R.int_comp(h)に更新して(S109)、当該更新されたhを出力する。ck(h)判定部15は、h=R.int_comp(h)に更新されたhを入力とし、ck(h)を計算し(S110)、当該計算結果であるck(h)=trueもしくはck(h)=falseのいずれかを出力する。out_comp関数計算部16は、ck(h)判定部15により出力されたck(h)と、ヒストリー記録部13によりh=R.int_comp(h)に更新されたhとを入力とし、ck(h)=trueである場合に(S111)、out_comp(h)を計算し(S112)、当該out_comp(h)を出力する。outputメッセージ作成部17は、out_comp(h)と、Bとを入力とし、wにw=out_comp(h)を代入して、output(B,w)を作成し(S113)、当該output(B,w)を理想機能実現装置F(10)の外部に出力する(S114)。ヒストリー記録部13は、output(B,w)を入力とし、hが任意の記号列Sであれば、当該hをh=S.output(B,w)に更新する(S115)。
【0015】
次に、図3を参照してsuppress関数計算部12の動作についてさらに詳細に説明する。図3は理想機能実現装置Fのsup(h,x)の計算例を示す図である。suppress関数計算部12は、入力された二つの引数に対してsup(引数,引数)を計算する。前述のとおり、suppress関数は一方の引数に依存して他方の引数の一部または全部を隠蔽することを特徴とする多項式時間関数である。図3の例では引数hの状況によって、引数x(記号列)の一部を文字”‐”で置き換えることにより、隠蔽する。例えば引数h=h、x=xであるとき、sup(h,x)の計算結果はxを文字”‐”で置き換えた‐‐‐‐xとなる。従って、記号列xの一部であるxは隠蔽され、xはリークされる。記号列xの隠蔽/リーク結果は引数hの状況によって異なるので、例えば引数h=hであるとき、sup(h,x)=x‐‐‐‐となり、引数h=hであるとき、sup(h,x)=x‐‐‐‐‐‐xとなる。
【0016】
次に、図4を参照して、ヒストリー記録部13の動作についてさらに詳細に説明する。図4は理想機能実現装置Fのヒストリー記録部が備えるhを示す図である。ヒストリー記録部13は入力列の発生を発生順に記録する変数h(ヒストリー)を備えている。前述のとおり、理想機能実現装置F(10)にinput(A,x)が入力された場合に、ヒストリー記録部13は、このinput(A,x)を入力とし(S101)、hが空であれば、当該空であるhをh=input(A,x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(A,x)に更新する(S102)。図4の例では、ヒストリー記録部13にinput(A,x)が入力されたとき、hが空であったものとし、この場合hがh=input(A,x)に更新されることを示している。続いてこの例では、攻撃者91から理想機能実現装置F(10)にinf(B,z)が入力される。この場合、前述の通りヒストリー記録部13は、inf(B,z)を入力とし(S106)、hが空であれば、当該空であるhをh=inf(B,z)に更新し、hが空でなく、hが任意の記号列Qであれば、当該空でないhをh=Q.inf(B,z)に更新する(S107)。この例では、inf(B,z)が入力されたとき、h=input(A,x)であるので、hは空でなく、input(A,x)は任意の記号列Qに該当する。従ってhはh=input(A,x).inf(B,z)に更新される。このようにしてステップ109ではあらたにint_comp(h)がhに記録され、h=input(A,x).inf(B,z).int_comp(h)となり、ステップ115ではあらたにoutput(B,w)がhに記録され、h=input(A,x).inf(B,z).int_comp(h).output(B,w)となる。このようにしてヒストリー記録部13への入力については時系列順に、直前の入力列の末尾に記号”.”を介して結合されhに記録されるものとする。
【0017】
以上のように理想機能実現装置の構成を定めることにより、理想機能実現装置は互いに合成することが可能となる。以下に2つの理想機能実現装置F11、F12の合成方法を示す。理想機能実現装置F11、F12のsuppress関数を各々sup11、sup12、int_comp関数を各々int_comp11、int_comp12、out_comp関数を各々out_comp11、out_comp12、check述語(ck関数)を各々ck11、ck12とする。また、h(ヒストリー)の、I(F)、O(F)に関する入力以外の入力をすべて消去し、int_comp関数の計算結果の入力について、理想機能実現装置Fに関する値のみを残した後のリストをh↓Fと書くことにする。この時、理想機能実現装置F11、F12を合成した理想機能実現装置F11∧F12は次のように定まる。
【0018】
F11∧F12に入力されるaction nameの集合を集合I(F11∧F12)とすれば、I(F11∧F12):=I(F11)∪I(F12)となる。同様に、F11∧F12から出力するaction nameの集合を集合O(F11∧F12)とすると、O(F11∧F12):=O(F11)∪O(F12)となる。F11∧F12のsuppress関数はsup11(h,sup12(h,x))とする。F11∧F12のint_comp関数はint_comp11∪int_comp12とする。すなわち、入力hに対し、{(int_comp11(h),F11),(int_comp12(h),F12)}を戻値とする。F11∧F12のout_comp関数は、out_comp11(h)=out_comp12(h)のとき、この値とする。out_comp11(h)≠out_comp12(h)のときは、値を出力しない。F11∧F12のcheck述語はck11(h↓F11)∧ck12(h↓F12)とする。
【0019】
このようにして二つの理想機能実現装置F11、F12の合成が実現する。すなわち、理想機能実現装置F11で実現される理想機能と、理想機能実現装置F12で実現される理想機能との合成が実現することを意味する。理想機能実現装置F11、F12の合成により生成した理想機能実現装置F11∧F12は、次のような性質を持つ。「プロトコルπがF11およびF12を満たす」ことと「プロトコルπがF11∧F12を満たす」ことは同値である。これにより、ゲーム形式のセキュリティ要求仕様表現の利点である要求の連言の記述が理想機能においても可能となる。
【0020】
[変形例1]
以下に理想機能実現装置の合成の例として、一般に知られている理想機能commitmentを二つの理想機能実現装置の合成により実現する例(変形例1)について述べる。具体的には、理想機能実現装置F1(理想機能commitmentのhidingを実現する理想機能実現装置)と、理想機能実現装置F2(理想機能commitmentのcompletenessかつsoundnessを実現する理想機能実現装置)を用いて、理想機能commitmentを実現する理想機能実現装置F1∧F2を合成する。
【0021】
図5、6を参照して理想機能commitmentのhidingを実現する理想機能実現装置F1(10−1)の動作を説明する。図5は理想機能実現装置F1(10−1)の構成を示すブロック図である。図6は理想機能実現装置F1(10−1)の動作を示すフローチャートである。集合I(F1)92−1の元としてcommitが与えられている。集合O(F1)93−1は空集合である。従って、理想機能実現装置F1(10−1)においては攻撃者91からのinfメッセージの入力とそれ以降の動作は行われない。また、記号列x(94−1)はsid.xである。この理想機能実現装置F1(10−1)においては、suppress関数をsup1(引数、引数)と表すこととし、sup1(h,sid.x)の計算結果がsup1(h,sid.x)=sidとなることが予め定められている。従って、理想機能実現装置F1(10−1)の動作は以下のようになる。
【0022】
理想機能実現装置F1(10−1)にinput(commit,sid.x)が入力された場合に、ヒストリー記録部13は、このinput(comit,sid.x)を入力とし(S101−1)、hが空であれば、当該空であるhをh=input(commit,sid.x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(commit,sid.x)に更新して(S102−1)、当該更新されたhと、commitと、sid.xとを出力する。suppress関数計算部12は、h=input(commit,sid.x)、もしくはh=P.input(commit,sid.x)に更新されたhと、sid.xとを入力とし、sup1(h,sid.x)を計算して(S103−1)、当該sup1(h,sid.x)を出力する。leakメッセージ作成部11は、sup1(h,sid.x)=sidとcommitとを入力とし、leak(commit,sid)を作成して(S104−1)、当該leak(commit,sid)を攻撃者91に出力する(S105−1)。
【0023】
次に、図7、8、9を参照して理想機能commitmentのcompletenessかつsoundnessを実現する理想機能実現装置F2(10−2)の動作を説明する。図7、8は理想機能実現装置F2(10−2)の構成を示すブロック図である。図9は理想機能実現装置F2(10−2)の動作を示すフローチャートである。集合I(F2)92−2の元としてcommit、openが与えられている。集合O(F2)93−2の元としてaccept、outが与えられている。また、記号列x(94−2)には変更はなく、記号列xのままである。この理想機能実現装置F2(10−2)においては、suppress関数、int_comp関数、ck関数、out_comp関数をそれぞれsup2(引数、引数)、int_comp2(引数)、ck2(引数)、out_comp2(引数)と表すこととし、sup2(h,x)の計算結果がsup2(h,x)=x、int_comp2(h)の計算結果がint_comp2(h)=sidとなることが予め定められている。ck2(引数)、out_comp2(引数)のふるまいについては後述する。従って、理想機能実現装置F2(10−2)の動作は以下のようになる。
【0024】
理想機能実現装置F2(10−2)にinput(commit,x)もしくはinput(open,x)が入力された場合に、ヒストリー記録部13は、このinput(comit,x)もしくはinput(open,x)を入力とし(S101−2)、hが空であれば、当該空であるhをh=input(commit,x)もしくはh=input(open,x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(commit,x)もしくはh=P.input(open,x)に更新して(S102−2)、当該更新されたhと、commitもしくはopenと、xとを出力する。suppress関数計算部12は、h=input(commit,x)もしくはh=input(open,x)、もしくはh=P.input(commit,x)もしくはh=P.input(open,x)に更新されたhと、xとを入力とし、sup2(h,x)を計算して(S103−2)、当該sup2(h,x)を出力する。leakメッセージ作成部11は、sup2(h,x)=xとcommitもしくはopenとを入力とし、leak(commit,x)もしくはleak(open,x)を作成して(S104−2)、当該leak(commit,x)もしくはleak(open,x)を攻撃者91に出力する(S105−2)。
【0025】
攻撃者91から理想機能実現装置F2(10−2)にinf(accept,sid.x)もしくはinf(out,sid.x)が入力された場合に、ヒストリー記録部13は、inf(accept,sid.x)もしくはinf(out,sid.x)を入力とし(S106−2)、hが空であれば、当該空であるhをh=inf(accept,sid.x)もしくはh=inf(out,sid.x)に更新し、hが空でなく、hが任意の記号列Qであれば、当該空でないhをh=Q.inf(accept,sid.x)もしくはh=Q.inf(out,sid.x)に更新して(S107−2)、当該更新されたhと、acceptもしくはoutを出力する。int_comp関数計算部14は、h=inf(accept,sid.x)もしくはh=inf(out,sid.x)、もしくはh=Q.inf(accept,sid.x)もしくはh=Q.inf(out,sid.x)に更新されたhを入力とし、int_comp2(h)を計算して(S108−2)、当該int_comp2(h)を出力する。ヒストリー記録部13は、int_comp2(h)=sidを入力とし、hが任意の記号列Rであれば、当該hをh=R.sidに更新して(S109−2)、当該更新されたhを出力する。ck(h)判定部15は、h=R.sidに更新されたhを入力とし、ck2(h)を計算し(S110−2)、当該計算結果であるck2(h)=trueもしくはck2(h)=falseのいずれかを出力する。ここで、hの末尾がinf(accept,sid.x).sidであって、hの一部にinput(commit,sid.x)がある場合にはck2(h)=trueと判定する。また、hの末尾がinf(out,sid.x).sidであって、hの一部にinput(commit,sid.x)があり、その後にinput(open,sid.x)がある場合にもck(h)=trueと判定する。次に、out_comp関数計算部16は、ck(h)判定部15により出力されたck2(h)と、ヒストリー記録部13によりh=R.sidに更新されたhとを入力とし、ck2(h)=trueである場合に(S111−2)、out_comp2(h)を計算し(S112−2)、当該out_comp2(h)を出力する。ここで、hの末尾がinf(accept,sid.x).sidである場合にはout_comp2(h)=sidとなり、hの末尾がinf(out,sid.x).sidである場合にはout_comp2(h)=sid.xとなる。outputメッセージ作成部17は、out_comp2(h)と、acceptもしくはoutを入力とし、wにw=out_comp2(h)を代入して、output(accept,w)もしくはoutput(out,w)を作成し(S113−2)、output(accept,w)もしくはoutput(out,w)を理想機能実現装置F2(10−2)の外部に出力する(S114−2)。ヒストリー記録部13は、output(accept,w)もしくはoutput(out,w)を入力とし、hが任意の記号列Sであれば、当該hをh=S.output(accept,w)もしくはh=S.output(out,w)に更新する(S115−2)。このように構成された理想機能実現装置F1と理想機能実現装置F2とを合成して得られる理想機能実現装置F1∧F2は一般に知られている理想機能commitmentを実現する。
【0026】
[変形例2]
以下に理想機能実現装置の合成の例として、一般に知られている理想機能oblivious transferを二つの理想機能実現装置の合成により実現する例(変形例2)について述べる。具体的には、理想機能実現装置F3(理想機能oblivious transferのsender hidingを実現する理想機能実現装置)と、理想機能実現装置F4(理想機能oblivious transferのreceiver hidingを実現する理想機能実現装置)と、理想機能実現装置F5(理想機能oblivious transferのcompletenessを実現する理想機能実現装置)を用いて、理想機能oblivious transferを実現する理想機能実現装置F3∧F4∧F5を合成する。
【0027】
図10、11を参照して理想機能oblivious transferのsender hidingを実現する理想機能実現装置F3(10−3)の動作を説明する。図10は理想機能実現装置F3(10−3)の構成を示すブロック図である。図11は理想機能実現装置F3(10−3)の動作を示すフローチャートである。集合I(F3)92−3の元としてsender_inputが与えられている。集合O(F3)93−3は空集合である。従って、理想機能実現装置F3(10−3)においては攻撃者91からのinfメッセージの入力とそれ以降の動作は行われない。また、記号列x(94−3)はsid.xである。この理想機能実現装置F3(10−3)においては、suppress関数をsup3(引数、引数)と表すこととし、sup3(h,sid.x)の計算結果がsup3(h,sid.x)=sidとなることが予め定められている。従って、理想機能実現装置F3(10−3)の動作は以下のようになる。
【0028】
理想機能実現装置F3(10−3)にinput(sender_input,sid.x)が入力された場合に、ヒストリー記録部13は、このinput(sender_input,sid.x)を入力とし(S101−3)、hが空であれば、当該空であるhをh=input(sender_input,sid.x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(sender_input,sid.x)に更新して(S102−3)、当該更新されたhと、sender_inputと、sid.xとを出力する。suppress関数計算部12は、h=input(sender_input,sid.x)、もしくはh=P.input(sender_input,sid.x)に更新されたhと、sid.xとを入力とし、sup3(h,sid.x)を計算して(S103−3)、当該sup3(h,sid.x)を出力する。leakメッセージ作成部11は、sup3(h,sid.x)=sidとsender_inputとを入力とし、leak(sender_input,sid)を作成して(S104−3)、当該leak(sender_input,sid)を攻撃者91に出力する(S105−3)。
【0029】
次に、図12、13を参照して理想機能oblivious transferのreceiver hidingを実現する理想機能実現装置F4(10−4)の動作を説明する。図12は理想機能実現装置F4(10−4)の構成を示すブロック図である。図13は理想機能実現装置F4(10−4)の動作を示すフローチャートである。集合I(F4)92−4の元としてreceiver_inputが与えられている。集合O(F4)93−4は空集合である。従って、理想機能実現装置F4(10−4)においては攻撃者91からのinfメッセージの入力とそれ以降の動作は行われない。また、記号列x(94−4)はsid.xである。この理想機能実現装置F4(10−4)においては、suppress関数をsup4(引数、引数)と表すこととし、sup4(h,sid.x)の計算結果がsup4(h,sid.x)=sidとなることが予め定められている。従って、理想機能実現装置F4(10−4)の動作は以下のようになる。
【0030】
理想機能実現装置F4(10−4)にinput(receiver_input,sid.x)が入力された場合に、ヒストリー記録部13は、このinput(receiver_input,sid.x)を入力とし(S101−4)、hが空であれば、当該空であるhをh=input(receiver_input,sid.x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(receiver_input,sid.x)に更新して(S102−4)、当該更新されたhと、receiver_inputと、sid.xとを出力する。suppress関数計算部12は、h=input(receiver_input,sid.x)、もしくはh=P.input(receiver_input,sid.x)に更新されたhと、sid.xとを入力とし、sup4(h,sid.x)を計算して(S103−4)、当該sup4(h,sid.x)を出力する。leakメッセージ作成部11は、sup4(h,sid.x)=sidとreceiver_inputとを入力とし、leak(receiver_input,sid)を作成して(S104−4)、当該leak(receiver_input,sid)を攻撃者91に出力する(S105−4)。
【0031】
次に、図14、15、16を参照して理想機能oblivious transferのcompletenessを実現する理想機能実現装置F5(10−5)の動作を説明する。図14、15は理想機能実現装置F5(10−5)の構成を示すブロック図である。図16は理想機能実現装置F5(10−5)の動作を示すフローチャートである。集合I(F5)92−5の元としてsender_input、receiver_inputが与えられている。集合O(F5)93−5の元としてoutが与えられている。また、記号列x(94−5)には変更はなく、記号列xのままである。この理想機能実現装置F5(10−5)においては、suppress関数、int_comp関数、ck関数、out_comp関数をそれぞれsup5(引数、引数)、int_comp5(引数)、ck5(引数)、out_comp5(引数)と表すこととし、sup5(h,x)の計算結果がsup5(h,x)=x、int_comp5(h)の計算結果がint_comp5(h)=sidとなることが予め定められている。ck5(引数)、out_comp5(引数)のふるまいについては後述する。従って、理想機能実現装置F5(10−5)の動作は以下のようになる。
【0032】
理想機能実現装置F5(10−5)にinput(sender_input,x)もしくはinput(receiver_input,x)が入力された場合に、ヒストリー記録部13は、このinput(sender_input,x)もしくはinput(receiver_input,x)を入力とし(S101−5)、hが空であれば、当該空であるhをh=input(sender_input,x)もしくはh=input(receiver_input,x)に更新し、hが空でなく、hが任意の記号列Pであれば、当該空でないhをh=P.input(sender_input,x)もしくはh=P.input(receiver_input,x)に更新して(S102−5)、当該更新されたhと、sender_inputもしくはreceiver_inputと、xとを出力する。suppress関数計算部12は、h=input(sender_input,x)もしくはh=input(receiver_input,x)、もしくはh=P.input(sender_input,x)もしくはh=P.input(receiver_input,x)に更新されたhと、xとを入力とし、sup5(h,x)を計算して(S103−5)、当該sup5(h,x)を出力する。leakメッセージ作成部11は、sup5(h,x)=xとsender_inputもしくはreceiver_inputとを入力とし、leak(sender_input,x)もしくはleak(receiver_input,x)を作成して(S104−5)、当該leak(sender_input,x)もしくはleak(receiver_input,x)を攻撃者91に出力する(S105−5)。
【0033】
攻撃者91から理想機能実現装置F5(10−5)にinf(out,sid)が入力された場合に、ヒストリー記録部13は、inf(out,sid)を入力とし(S106−5)、hが空であれば、当該空であるhをh=inf(out,sid)に更新し、hが空でなく、hが任意の記号列Qであれば、当該空でないhをh=Q.inf(out,sid)に更新して(S107−5)、当該更新されたhと、outを出力する。int_comp関数計算部14は、h=inf(out,sid)、もしくはh=Q.inf(out,sid)に更新されたhを入力とし、int_comp5(h)を計算して(S108−5)、当該int_comp5(h)を出力する。ヒストリー記録部13は、int_comp5(h)=sidを入力とし、hが任意の記号列Rであれば、当該hをh=R.sidに更新して(S109−5)、当該更新されたhを出力する。ck(h)判定部15は、h=R.sidに更新されたhを入力とし、ck5(h)を計算し(S110−5)、当該計算結果であるck5(h)=trueもしくはck5(h)=falseのいずれかを出力する。ここで、hの末尾がinf(out,sid).sidであって、hの一部にinput(sender_input,sid.(x1,x2))およびinput(receiver_input,sid.i)がある場合にはck5(h)=trueと判定する。次に、out_comp関数計算部16は、ck(h)判定部15により出力されたck5(h)と、ヒストリー記録部13によりh=R.sidに更新されたhとを入力とし、ck5(h)=trueである場合に(S111−5)、out_comp5(h)を計算し(S112−5)、当該out_comp5(h)を出力する。ここで、hの末尾がinf(out,sid).sidであって、hの一部にinput(sender_input,sid.(x1,x2))およびinput(receiver_input,sid.i)がある場合にはout_comp5(h)=xiとなる。outputメッセージ作成部17は、out_comp5(h)と、outを入力とし、wにw=out_comp5(h)を代入して、output(out,w)を作成し(S113−5)、output(out,w)を理想機能実現装置F5(10−5)の外部に出力する(S114−5)。ヒストリー記録部13は、output(out,w)を入力とし、hが任意の記号列Sであれば、当該hをh=S.output(out,w)に更新する(S115−5)。このように構成された理想機能実現装置F3、F4、F5を合成して得られる理想機能実現装置F3∧F4∧F5は一般に知られている理想機能oblivious transferを実現する。
【0034】
以上のように、本発明の理想機能実現装置によれば、理想機能実現装置同士が互いに合成可能となるため、ゲーム形式のセキュリティ要求仕様表現の利点である要求の連言の記述が理想機能においても可能となる。従って、いくつかの基本的なセキュリティ要求仕様に対応する理想機能から、それら要求仕様を組み合わせた複雑な要求仕様に対応する理想機能を簡単に生成することができる。これにより、設計が難しかった理想機能の設計が簡単になり、あるセキュリティ要求仕様にもとづくプロトコルの安全性証明も、より容易になる。
【0035】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0036】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
【0037】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0038】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0039】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0040】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

【特許請求の範囲】
【請求項1】
leakメッセージ作成部と、suppress関数計算部と、ヒストリー記録部と、int_comp関数計算部と、ck(h)判定部と、out_comp関数計算部と、outputメッセージ作成部とを備える理想機能実現装置であって、
inputメッセージは、二つの引数を持ち、理想機能実現装置への入力の際に作成されるメッセージであるものとし、
infメッセージは、二つの引数を持ち、攻撃者から理想機能実現装置への入力の際に作成されるメッセージであるものとし、
leakメッセージは、二つの引数を持ち、理想機能実現装置から攻撃者への出力の際に作成されるメッセージであるものとし、
outputメッセージは、二つの引数を持ち、理想機能実現装置からの出力の際に作成されるメッセージであるものとし、
suppress関数は、二つの引数を持ち、一方の引数に依存して他方の引数の一部または全部を隠蔽することを特徴とする多項式時間関数であるものとし、
int_comp関数は、一つの引数を持ち、理想機能実現装置の種類によって入出力が異なる確率的多項式時間関数であるものとし、
ck関数は、一つの引数を持ち、入力された引数の値に応じてtrueもしくはfalseのいずれかの計算結果を出力する関数であって、予め定められた多項式時間述語であるものとし、
out_comp関数は、一つの引数を持ち、理想機能実現装置の種類によって入出力が異なる確率的多項式時間関数であるものとし、
inputメッセージをinput(引数,引数)と、infメッセージをinf(引数,引数)と、leakメッセージをleak(引数,引数)と、outputメッセージをoutput(引数,引数)と、suppress関数をsup(引数,引数)と、int_comp関数をint_comp(引数)と、ck関数をck(引数)と、out_comp関数をout_comp(引数)とそれぞれ表すものとし、
A,B,x,z,w,h,P,Q,R,Sを任意の記号列とし、
前記理想機能実現装置にinput(A,x)が入力された場合に、
前記ヒストリー記録部は、前記input(A,x)を入力とし、前記hが空であれば、当該空であるhをh=input(A,x)に更新し、前記hが空でなく、h=Pであれば、当該空でないhをh=P.input(A,x)に更新して、当該更新されたhと、前記Aと、前記xとを出力し、
前記suppress関数計算部は、h=input(A,x)、もしくはh=P.input(A,x)に更新されたhと、前記xとを入力とし、sup(h,x)を計算して、当該sup(h,x)を出力し、
前記leakメッセージ作成部は、前記sup(h,x)と前記Aとを入力とし、leak(A,sup(h,x))を作成して、当該leak(A,sup(h,x))を任意の攻撃者に出力し、
任意の攻撃者から前記理想機能実現装置にinf(B,z)が入力された場合に、
前記ヒストリー記録部は、前記inf(B,z)を入力とし、前記hが空であれば、当該空であるhをh=inf(B,z)に更新し、前記hが空でなく、h=Qであれば、当該空でないhをh=Q.inf(B,z)に更新して、当該更新されたhと、前記Bとを出力し、
前記int_comp関数計算部は、h=inf(B,z)、もしくはh=Q.inf(B,z)に更新されたhを入力とし、int_comp(h)を計算して、当該int_comp(h)を出力し、
前記ヒストリー記録部は、前記int_comp(h)を入力とし、前記hがh=Rであれば、当該hをh=R.int_comp(h)に更新して、当該更新されたhを出力し、
前記ck(h)判定部は、h=R.int_comp(h)に更新されたhを入力とし、ck(h)を計算し、当該計算結果であるck(h)=trueもしくはck(h)=falseのいずれかを出力し、
前記out_comp関数計算部は、前記ck(h)判定部により出力されたck(h)と、前記ヒストリー記録部によりh=R.int_comp(h)に更新されたhとを入力とし、ck(h)=trueである場合に、out_comp(h)を計算し、当該out_comp(h)を出力し、
前記outputメッセージ作成部は、前記out_comp(h)と、前記Bとを入力とし、前記wにw=out_comp(h)を代入して、output(B,w)を作成し、当該output(B,w)を出力し、
前記ヒストリー記録部は、前記output(B,w)を入力とし、前記hがh=Sであれば、当該hをh=S.output(B,w)に更新すること
を特徴とする理想機能実現装置。
【請求項2】
請求項1に記載の理想機能実現装置であって、
commit,sid.xを任意の記号列とし、
前記AがA=commit,前記xがx=sid.xであるものとし、
前記suppress関数計算部のsup(h,sid.x)の計算結果がsup(h,sid.x)=sidとなること
を特徴とする理想機能commitmentのhidingに相当する理想機能実現装置。
【請求項3】
請求項1に記載の理想機能実現装置であって、
commit,open,accept,out,sid.xを任意の記号列とし、
前記AがA=commit,openのいずれかであり、前記BがB=accept,outのいずれかであり、前記zがz=sid.xであるものとし、
前記suppress関数計算部のsup(h,x)の計算結果がsup(h,x)=xとなり、
前記int_comp関数計算部のint_comp(h)の計算結果がint_comp(h)=sidとなり、
前記ck(h)判定部のck(h)の計算結果が、hの末尾がinf(accept,sid.x).sidであって、hの一部にinput(commit,sid.x)がある場合にはck(h)=trueとなり、
hの末尾がinf(out,sid.x).sidであって、hの一部にinput(commit,sid.x)があり、その後にinput(open,sid.x)がある場合にはck(h)=trueとなり、
前記out_comp関数計算部のout_comp(h)の計算結果が、hの末尾がinf(accept,sid.x).sidである場合にはout_comp(h)=sidとなり、
hの末尾がinf(out,sid.x).sidである場合にはout_comp(h)=sid.xとなること
を特徴とする理想機能commitmentのcompletenessかつsoundnessに相当する理想機能実現装置。
【請求項4】
請求項2、3の理想機能実現装置を合成することを特徴とする理想機能commitmentに相当する理想機能実現装置。
【請求項5】
請求項1に記載の理想機能実現装置であって、
sender_input,sid.xを任意の記号列とし、
前記AがA=sender_input,前記xがx=sid.xであるものとし、
前記suppress関数計算部のsup(h,sid.x)の計算結果がsup(h,sid.x)=sidとなること
を特徴とする理想機能oblivious transferのsender hidingに相当する理想機能実現装置。
【請求項6】
請求項1に記載の理想機能実現装置であって、
receiver_input,sid.xを任意の記号列とし、
前記AがA=receiver_input,前記xがx=sid.xであるものとし、
前記suppress関数計算部のsup(h,sid.x)の計算結果がsup(h,sid.x)=sidとなること
を特徴とする理想機能oblivious transferのreceiver hidingに相当する理想機能実現装置。
【請求項7】
請求項1に記載の理想機能実現装置であって、
sender_input,receiver_input,out,sidを任意の記号列とし、
前記AがA=sender_input,receiver_inputのいずれかであり、前記BがB=outであり、前記zがz=sidであるものとし、
前記suppress関数計算部のsup(h,x)の計算結果がsup(h,x)=xとなり、
前記int_comp関数計算部のint_comp(h)の計算結果がint_comp(h)=sidとなり、
前記ck(h)判定部のck(h)の計算結果が、hの末尾がinf(out,sid).sidであって、hの一部にinput(sender_input,sid.(x1,x2))およびinput(receiver_input,sid.i)がある場合にはck(h)=trueとなり、
前記out_comp関数計算部のout_comp(h)の計算結果が、hの末尾がinf(out,sid).sidであって、hの一部にinput(sender_input,sid.(x1,x2))およびinput(receiver_input,sid.i)がある場合にはout_comp(h)=xiとなること
を特徴とする理想機能oblivious transferのcompletenessに相当する理想機能実現装置。
【請求項8】
請求項5、6、7の理想機能実現装置を合成することを特徴とする理想機能oblivious transferに相当する理想機能実現装置。
【請求項9】
leakメッセージ作成部と、suppress関数計算部と、ヒストリー記録部と、int_comp関数計算部と、ck(h)判定部と、out_comp関数計算部と、outputメッセージ作成部とを備える理想機能実現装置を制御する理想機能実現方法であって、
inputメッセージは、二つの引数を持ち、理想機能実現装置への入力の際に計算される関数であるものとし、
infメッセージは、二つの引数を持ち、攻撃者から理想機能実現装置への入力の際に計算される関数であるものとし、
leakメッセージは、二つの引数を持ち、理想機能実現装置から攻撃者への出力の際に計算される関数であるものとし、
outputメッセージは、二つの引数を持ち、理想機能実現装置からの出力の際に計算される関数であるものとし、
suppress関数は、二つの引数を持ち、一方の引数に依存して他方の引数の一部または全部を隠蔽することを特徴とする多項式時間関数であるものとし、
int_comp関数は、一つの引数を持ち、理想機能実現装置の種類によって入出力が異なる確率的多項式時間関数であるものとし、
ck関数は、一つの引数を持ち、入力された引数の値に応じてtrueもしくはfalseのいずれかの計算結果を出力する関数であって、予め定められた多項式時間述語であるものとし、
out_comp関数は、一つの引数を持ち、理想機能実現装置の種類によって入出力が異なる確率的多項式時間関数であるものとし、
inputメッセージをinput(引数,引数)と、infメッセージをinf(引数,引数)と、leakメッセージをleak(引数,引数)と、outputメッセージをoutput(引数,引数)と、suppress関数をsup(引数,引数)と、int_comp関数をint_comp(引数)と、ck関数をck(引数)と、out_comp関数をout_comp(引数)とそれぞれ表すものとし、
A,B,x,z,w,h,P,Q,R,Sを任意の記号列とし、
前記理想機能実現装置にinput(A,x)が入力された場合に、
前記ヒストリー記録部が、前記input(A,x)を入力とし、前記hが空であれば、当該空であるhをh=input(A,x)に更新し、前記hが空でなく、h=Pであれば、当該空でないhをh=P.input(A,x)に更新して、当該更新されたhと、前記Aと、前記xとを出力し、
前記suppress関数計算部が、h=input(A,x)、もしくはh=P.input(A,x)に更新されたhと、前記xとを入力とし、sup(h,x)を計算して、当該sup(h,x)を出力し、
前記leakメッセージ作成部が、前記sup(h,x)と前記Aとを入力とし、leak(A,sup(h,x))を作成して、当該leak(A,sup(h,x))を任意の攻撃者に出力し、
任意の攻撃者から前記理想機能実現装置にinf(B,z)が入力された場合に、
前記ヒストリー記録部が、前記inf(B,z)を入力とし、前記hが空であれば、当該空であるhをh=inf(B,z)に更新し、前記hが空でなく、h=Qであれば、当該空でないhをh=Q.inf(B,z)に更新して、当該更新されたhと、前記Bとを出力し、
前記int_comp関数計算部が、h=inf(B,z)、もしくはh=Q.inf(B,z)に更新されたhを入力とし、int_comp(h)を計算して、当該int_comp(h)を出力し、
前記ヒストリー記録部が、前記int_comp(h)を入力とし、前記hがh=Rであれば、当該hをh=R.int_comp(h)に更新して、当該更新されたhを出力し、
前記ck(h)判定部が、h=R.int_comp(h)に更新されたhを入力とし、ck(h)を計算し、当該計算結果であるck(h)=trueもしくはck(h)=falseのいずれかを出力し、
前記out_comp関数計算部が、前記ck(h)判定部により出力されたck(h)と、前記ヒストリー記録部によりh=R.int_comp(h)に更新されたhとを入力とし、ck(h)=trueである場合に、out_comp(h)を計算し、当該out_comp(h)を出力し、
前記outputメッセージ作成部が、前記out_comp(h)と、前記Bとを入力とし、前記wにw=out_comp(h)を代入して、output(B,w)を作成し、当該output(B,w)を出力し、
前記ヒストリー記録部が、前記output(B,w)を入力とし、前記hがh=Sであれば、当該hをh=S.output(B,w)に更新すること
を特徴とする理想機能実現方法。
【請求項10】
コンピュータを請求項1から8のいずれかに記載の理想機能実現装置として機能させるためのプログラム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2012−78456(P2012−78456A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−221865(P2010−221865)
【出願日】平成22年9月30日(2010.9.30)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(504145342)国立大学法人九州大学 (960)
【Fターム(参考)】