説明

本人確認システム

【課題】秘密情報の漏洩の可能性が低く、低資源装置に好適な、有限回数の本人確認処理を実現する、本人確認システムを提供する。
【解決手段】GPS方式の演算の方式を踏襲しつつ、GPS方式よりも演算の数値のビット数を少なくするために、証明者装置内の演算の数値の一つである応答定数Aを、gのオーダー(位数)の倍数に設定した。応答定数Aをgの自然数倍に設定すると、群の性質により、証明者装置の演算結果であるy=cs+rからAを減算しても、検証者装置側で同じ値を得ることができる。証明者装置では、yの値の正負に応じてyからAを減算するか否かを選択する。この際に、yの値の如何にかかわらず、yからAを減算する処理手順を二重に実行することで、サイドチャネル攻撃に対する耐性を備えることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、本人確認システムに適用して好適な技術に関する。
より詳細には、RFIDに代表される、演算能力及び記憶容量が限られるデバイスで、有限回数の本人確認動作を実現する技術に関する。
【背景技術】
【0002】
現在、市場ではICカードやRFID(Radio Frequency IDentification)等の、超小型の認証機能を備える装置が広く使われている。これらの装置はその認証機能によって、本人であることを確認した上で、次の動作へ移行する。ICカードであれば、それは金銭の入出金であり、RFIDであれば、貼付されている商品の流通の許可等である。
なお、これ以降、ICカードやRFID等の、演算能力と記憶容量が限られている装置を「低資源装置」と呼ぶ。
【0003】
情報技術の進歩により、これら電子的な認証機能を備える装置が広く流通していると共に、逆にその認証機能を破ろうとする、悪意ある者の脅威も増大しつつある。認証機能の根幹は暗号であり、コンピュータ等の情報処理装置の演算能力の進歩が、暗号を破る技術としても利用されるからである。
【0004】
本発明に関連する先行技術文献を、非特許文献1、非特許文献2、非特許文献3及び非特許文献4に示す。
【非特許文献1】Schnorr, C.-P. Efficient Identification and Signatures for Smart Cards. In CRYPTO ’89 (1990), vol. 435 of Lecture Notes in Computer Science, Springer, pp. 235.251.
【非特許文献2】Girault, M. Self-certified public keys. In EUROCRYPT ’91 (1992), vol. 4547 of Lecture Notes on Computer Science, Springer, pp. 490.497.
【非特許文献3】Girault, M., Poupard, G., and Stern, J. On the Fly Authentication and Signature Schemes Based on Groups of Unknown Order. Journal of Cryptology 19, 4 (October 2006), 463.487.
【非特許文献4】K.W.Campbell, M.J.Wiener, "DES is not a group", CRYPTO'92.
【非特許文献5】科学 第78巻 第10号『暗号への脅威「サイドチャネル攻撃」とその対策』崎山一男、太田和夫、pp.1080-1083(2008/10/1)
【非特許文献6】現代暗号 (シリーズ・情報科学の数学) 、岡本龍明、山本博資、pp.119-122(1997/6/30)
【発明の開示】
【発明が解決しようとする課題】
【0005】
ICカードの認証機能で使われる暗号は、非特許文献4で開示される、トリプルDESと呼ばれる共通鍵暗号が広く使われている。
一般に、共通鍵暗号方式は、秘密鍵を通信者同士(証明者装置と検証者装置)が保管しなければならず、通信者同士の通信から秘密鍵の漏洩を防ぐために、通信者同士の通信路に秘匿性を確保する必要がある。また、検証者装置の秘密鍵の管理を厳重にする必要がある。
そこで、通信路の秘匿性をなくしてもよく、検証者装置側の秘密鍵の管理が不要である公開鍵暗号方式を、ICカードやRFIDに採用しようとする議論が、暗号の関係者で活発に行われている。
【0006】
非特許文献1に開示される「Schnorr方式」は、証明者装置と検証者装置との間の通信路から、秘密情報(秘密鍵s及び乱数r)が漏洩する可能性は完全にない。しかしながら、装置の電流変化や演算時間の相違等から秘密鍵を類推するサイドチャネル攻撃に対抗するために、証明者装置で剰余演算と位数算出(オーダー関数)を実行する必要がある。つまり、証明者装置に対して高い演算能力を要求する。
したがって、証明者装置に要求されるハードウェア資源が極めて厳しいので、RFID等の低資源装置に適さない。
なお、サイドチャネル攻撃については例えば非特許文献5にその詳細が記されている。
【0007】
非特許文献2及び非特許文献3に開示される「GPS方式」は、Schnorr方式と比べると、証明者装置では剰余演算や位数算出を実行する必要がない。つまり、証明者装置に対して高い演算能力を要求しないので、演算能力の点ではSchnorr方式より有利である。
しかし、証明者装置と検証者装置との間の通信路から、秘密情報が漏洩する可能性が完全にない、とは言い切れない。また、証明者装置の内部の演算処理から秘密情報の漏洩の可能性を払拭するために、証明者装置の内部に保持する情報のビット数を大きくせざるを得ず、証明者装置に要求される記憶容量が大きくなってしまう。
したがって、証明者装置に要求されるハードウェア資源が極めて厳しいので、RFID等の低資源装置に適さない。
【0008】
本発明はかかる点に鑑みてなされたものであり、秘密情報の漏洩の可能性が低く、低資源装置に好適な、有限回数の本人確認処理を実現する、本人確認システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の本人確認システムは、秘密鍵sと秘密鍵に対応する公開鍵Iと定数A及び定数Bとを生成すると共に、ハッシュ関数を利用してコミットメント値xと乱数rの組よりなるコミットメント数列を生成するセンターと、生成された公開鍵Iと定数Bとセンターで利用されるハッシュ関数とを利用して証明処理を実行する検証者装置と、生成された秘密鍵sと定数Aとコミットメント数列とを記憶する記憶部と、検証者装置にコミットメント値xを送信し、検証者装置からチャレンジ数cを受信し、検証者装置にレスポンス値yを送信する入出力制御部と、秘密鍵sと定数Aと乱数rと、受信したチャレンジ数cとを用いて、r+cs<Aであるときはr+csを、そうでないときはr+cs−Aをレスポンス値yとして出力する演算処理部と、を有する証明者装置と、よりなるものである。
【0010】
サイドチャネル攻撃を防ぐために、Schnorr方式では証明者装置で剰余演算と位数算出(オーダー関数)を実行することで対応していた。一方で、GPS方式では証明者装置で演算する数値のビット数を多く取ることで対応していた。
本発明では、GPS方式の演算の方式を踏襲しつつ、GPS方式よりも演算の数値のビット数を少なくするために、証明者装置内の演算の数値の一つである応答定数Aを、群Gの元gのオーダー(位数)の倍数に設定した。
応答定数Aをgの自然数倍に設定すると、群の性質により、証明者装置の演算結果であるy=cs+rからAを減算しても、検証者装置側で同じ値を得ることができる。
証明者装置では、yの値の正負に応じてyからAを減算するか否かを選択する。この際に、yの値の如何にかかわらず、yからAを減算する処理手順を二重に実行することで、サイドチャネル攻撃に対する耐性を備えることができる。
【発明の効果】
【0011】
本発明により、秘密情報の漏洩の可能性が低く、低資源装置に好適な、有限回数の本人確認処理を実現する、本人確認システムを提供できる。
【発明を実施するための最良の形態】
【0012】
本実施形態を説明する前に、本実施形態で説明する本人確認システムと、これに用いるRFID(Radio Frequency IDentification)の概略を説明する。
RFIDは、その名の通り、電波を用いて本人識別を実行する装置である。およそ数mm乃至数cm程度の極小型にて形成され、電波そのものを駆動電源として利用する。また、大量生産され、使い捨てを容認する程度の低コストで作られる。このため、内部に形成される集積回路は、低コスト且つ超低消費電力を実現する必要があるため、その演算能力及び記憶容量は低く抑えられている。これ以降、本実施形態では、このように演算能力と記憶容量が限られている装置を「低資源装置」と呼ぶ。
本実施形態に係る本人確認システムは、RFIDに代表される低資源装置に対し、実施回数を限定した(有限回数の)本人確認動作を実現する。
【0013】
無線タグとも呼ばれるRFIDは、主に物流の現場で、商品に貼付されて利用される。物流の要所で、正規の物品であることを証明するための「本人確認動作」を実行するために利用される。このような利用状況から、本実施形態の本人確認システムでは、低資源装置に有限回数の本人確認動作を実現することを目的として構築されている。
【0014】
前述の「有限回数」については、物流の現場の状況に応じて変化する。
例えば、ある物流システムでは、商品が生産拠点から三箇所の問屋を経て商店に到達するので、最低五回以上は証明処理ができなければならない。
しかし、別の物流システムでは、生産拠点から産地直送で商店に到達するので、最低二回の証明処理ができれば足りる、と考えることができる。
本実施形態では、このような現場の状況に柔軟に対応できる、有限回数の本人確認動作を実現する仕組みを提供する。
【0015】
以下、本発明の実施の形態を、図1〜図17を参照して説明する。なお、本実施形態の説明は、図面毎に以下の構成を採る。
[システム全体構成]図1
[システム全体の処理の流れ]図2、図3
[センター]図4
[センター:定数演算部]図5、図6
[センター:群生成器]図7、図8
[センター:応答定数生成器]図9、図10
[センター:コミットメント数列生成部]図11、図12
[証明者装置]図13
[証明者装置:演算処理部]図14、図15
[検証者装置]図16、図17
[証明処理]
[サイドチャネル攻撃に対する耐性]
[従来技術との比較]
【0016】
[システム全体構成]
図1は、本発明の一実施形態の例である、本人確認システム101の概略図である。この本人確認システム101は、RFIDを量産する図示しない工場と、工場で生産されたRFID(証明者装置)102と、生産されたRFIDが正しく製造された装置であるか否かを検証する、検証者装置103とで構成される。更に、工場内には、証明者装置102を生産する段階の途中で、発明者が発明した本人確認方式を実践するために必要な「定数」を生成し、記録する装置として、センター104が設けられている。
つまり、本人確認システム101は、センター104と、証明者装置102と、検証者装置103の三者で構成されている。
【0017】
センター104は、最初に幾つかの定数を算出して、検証者装置103に送信する。図1では、「I」、「B」、「g」、「p」「Hash()」という定数と関数名が、センター104から検証者装置103に送られている。これら変数及び関数名の詳細は後述する。
検証者装置103は、センター104から受信した定数等を記憶する。
以上が、証明者装置102を生産する前の準備段階である。この段階は、後述する図2(a)に相当する。
【0018】
次に、センター104は証明者装置102の生産処理を行う。この生産処理は、最初の段階で算出した幾つかの定数と、証明者装置102毎にユニークな数列を、入出力インターフェース105を通じて証明者装置102に記録する。図1では、生産工程の端的な表現として、センター104は、ベルトコンベア106上に並べられて移動する証明者装置102(RFID)に対し、「A」、「s」という定数と、「{(x,r),...(x,r)}」という数列を記録する。これら変数及び数列の詳細は後述する。
以上が、証明者装置102の生産段階である。この段階は、後述する図2(b)に相当する。
【0019】
工場で生産された後の証明者装置102は、検証者装置103によって「本人確認処理」が行われる。例えば、証明者装置102がRFIDの場合は、当該RFIDが貼付された商品が、物流の途中で検証者装置103による検証が行われる。
検証者装置103は、入出力インターフェース107を介して証明者装置102にアクセスし、証明者装置102が正しく工場で生産されたものなのか、つまり、悪意の第三者による改竄なく、センター104が生成した所定の定数が記憶されている、正規の物品であるか否かを検証する。検証の結果、正規の物品である、つまり「本人である」ことが確認できたら、検証者装置103は「本人である」旨の判定結果を出力する。逆に、検証の結果、正規の物品でない、つまり「本人でない」ことが確認できたら、検証者装置103は「本人でない」旨の判定結果を出力する。
以上が、検証者装置103による証明者装置102の本人確認段階である。この段階は、後述する図3に相当する。
【0020】
[システム全体の処理の流れ]
図2(a)及び(b)は、センター104と検証者装置103と証明者装置102との処理の大まかな流れを示すシーケンス図である。説明の便宜のため、図4を参照しつつ説明する。
図2(a)は、証明者装置102を生産する前の準備段階の流れを示すシーケンス図である。
先ず、センター104は、図4にて後述する定数演算部402を稼動して、定数演算処理を行う(S201)。
定数演算処理によって生成された定数I、B、g、pは、検証者装置103に送信される(S202)。検証者装置103は、定数I、B、g、pを受信すると、これを記憶する(S203)。
【0021】
次に、センター104は、図4にて後述する検証仕様決定部403を稼動して、検証仕様決定処理を行う(S204)。
検証仕様決定処理によって決定されたハッシュ関数Hashの仕様(種類)は、検証者装置103に送信される(S205)。検証者装置103は、受信したハッシュ関数Hashの種類を内部に設定する(S206)。
【0022】
周知のように、ハッシュ関数は任意長のデータ入力を受けて、固定長のデータを出力する関数である。現代の暗号技術は膨大なデータ量を扱うことが多いので、主にそのデータ量を削減しつつ、セキュリティを維持するために用いられる。データ量の削減は、暗号を扱う装置の記憶容量を削減するだけでなく、演算ステップ数を削減する効果がある。
多くの場合、ハッシュ関数はプログラムで実現される。特に、本実施形態のように、センター104と検証者装置103がハッシュ関数を交換可能な装置として構成するならば、殆どの場合、パソコンやワークステーション等の計算機に、所定のプログラムを実行させることで構築することが多い。したがって、センター104で選択したハッシュ関数Hashは、そのプログラムをモジュールとして検証者装置103に転送してもよい。
【0023】
センター104と検証者装置103で利用されるハッシュ関数は、以下の条件を満たす必要がある。
(1)ハッシュ値が与えられたときにその入力を求めるのが困難であること。
(2)ある入力に対する出力と同じ値を出力するような異なる入力を求めるのが困難であること。
(3)同じ値を出力するような異なる入力の組を求めるのが困難であること。
以上の条件を満たす必要があるため、例えばハッシュ関数の入力を推測可能なMD5等は、本実施形態における実装にはそぐわないといえる。
上記条件を満たすハッシュ関数は、例えば周知のSHA−1や、特開2008−233661号公報に開示されているもの等が挙げられる。
【0024】
なお、「ハッシュ関数を決定する」という行為は、必ずしも複数のハッシュ関数から一つを選択する、という動作を必要とする訳ではない。本人確認システム101の全体の仕様として、使用するハッシュ関数を最初から一つだけに固定化してしまっても一向に構わない。大事なことは、センター104の中(図4及び図11にて後述するコミットメント数列生成部404)及び検証者装置103の中で使用するハッシュ関数器は、同じものでなければならない、ということである。
【0025】
次に、図2(b)は、証明者装置102の生産段階の流れを示すシーケンス図である。
センター104は、図4にて後述するコミットメント数列生成部404を稼動して、証明者装置102に記録させるためのコミットメント数列を生成する(S207)。その際、先の定数演算処理にて生成された定数A、g、pと、準備段階で実行した検証仕様決定処理(S204)にて決定されたハッシュ関数Hashと、コミットメント数列レコード数tを受け取り、これら定数等を用いてコミットメント数列を生成する。
コミットメント数列とは、乱数rとこれに対応するコミットメント値xの組(x,r)よりなるレコードがt個あるテーブル{(x,r),(x,r),...(x,r)}である。
【0026】
次に、センター104は、コミットメント数列生成部404によって生成されたコミットメント数列と、先の定数演算処理(S201)にて生成された定数A、sとを、図4にて後述する定数記録部405を通じて、証明者装置102に記録する(S208)。一方、証明者装置102は、センター104から定数A、sとコミットメント数列を受信すると、これを内部の後述するROMに記憶する(S209)。
上述のステップS207、S208及びS209の処理は、証明者装置102を一個生産する毎に繰り返される(S210、S211、S212)。
【0027】
生産段階において、センター104から証明者装置102に転送される情報のうち、秘密鍵sとコミットメント数列{(x,r),(x,r),...(x,r)}は、秘密情報である。これら情報は、外部に漏れてはならない。
一方、生産段階において、センター104から証明者装置102に転送される情報のうち、応答定数Aは、公開情報である。つまり、外部に漏れても問題ない。
また、準備段階においてセンター104で生成される情報のうち、B、g、p、Iも公開情報である。
したがって、証明処理の段階では、秘密情報は証明者装置102の内部にのみ存在し、検証者装置103には存在しない。
【0028】
図3は証明者装置102と検証者装置103との間で行われる、検証処理の流れを示すシーケンス図である。
検証者装置103は、証明者装置102に対してコミットメント値xを要求する(S301)。証明者装置102は、検証者装置103から送られたコミットメント要求に呼応して、コミットメント値xを送信する(S302)。検証者装置103は、コミットメント値xを受信すると、これを一旦内部に記憶する(S303)。
次に、検証者装置103はチャレンジ数cを生成し、これを証明者装置102に送信する(S304)。証明者装置102は、チャレンジ数cを受信すると、これを基に応答値yを生成し、検証者装置103に送信する(S305)。検証者装置103は受信した応答値yと、先に記憶していたコミットメント値x、先に送信したチャレンジ数c等を用いて、証明者装置102が正規の装置であるのかを検証する。検証した結果は、所定の処理機構等に出力する(S306)。
【0029】
前述の「所定の処理機構」は、様々な態様が考えられる。
例えば、商品流通の仕組みにおいては、本実施形態に係るRFIDを貼付した商品をチェックしていて、もし当該RFIDの改竄が認められた場合、当該商品の流通を緊急的に停止させ、悪意ある改竄がどこで行われたかを調査することが考えられる。単に対象品を除外する等の物理的な処理に留まらず、追跡調査を行う等の人間社会行動的な処理も含む。
つまり、検証者装置103の検証結果は、最低限アラームとして表示するか、何らかの稼動状態を停止させる等の処理のいずれかを実行し得るトリガとなる。
【0030】
[センター104]
図4はセンター104のブロック図である。
定数演算部402は、図2(a)の準備段階で稼動する機能ブロックである。所定の演算処理を実行して、A、B、g、s、p、Iを出力する。
検証仕様決定部403は、図2(a)の準備段階で稼動する機能ブロックである。後述のコミットメント数列生成部404と検証者装置103で共通に使用するハッシュ関数の種類を決定すると共に、コミットメント数列生成部404で生成するコミットメント数列のレコード数tを決定する。
コミットメント数列生成部404は、図2(b)の生産段階で稼動する機能ブロックである。定数演算部402からA、g、pを受け取り、検証仕様決定部403にて決定されたハッシュ関数を用いて、t個のレコード数のコミットメント数列を生成する。
定数記録部405は、図2(b)の生産段階で稼動する機能ブロックである。定数演算部402からA、sを受け取り、コミットメント数列生成部404が生成したコミットメント数列を、証明者装置102に送信して、記録させる。
【0031】
[センター104:定数演算部402]
図5はセンター104内部の定数演算部402のブロック図であり、図6は定数演算部402の処理の流れを説明するフローチャートである。
処理を開始すると(S601)、先ず、基礎定数生成器502は、初期基本定数qと、秘密鍵範囲Sと、チャレンジ数範囲Bを、以下の条件で作成する。
【0032】
S<q≦BS 但し、q,S:160ビット以上、B:35ビット以上
【0033】
作成されたq、S、Bは、それぞれq記憶部503、S記憶部504、B記憶部505に一時的に記憶される。各々の記憶部はRAMやレジスタで構成される。
【0034】
秘密鍵範囲Sは、後述する秘密鍵sを乱数で生成する際の最大値を規定するので、なるべく大きな値であることが望ましい。
【0035】
次に、初期基本定数qを基に、群生成器506にて群Gの元g及び剰余演算の法pを生成する(S603)。なお、ステップS603のg,p生成処理は、群Gの全ての元を算出することなく、効率よくgを算出する処理である。
次に、q、S及びBを基に、応答定数生成器507にて応答定数Aを生成する(S604)。
次に、秘密鍵範囲Sを基に、秘密鍵生成器508にて秘密鍵sを生成する(S605)。秘密鍵生成器508の実体は乱数発生器であり、0〜S−1の範囲の乱数を指定する。
なお、ステップS603、S604及びS605は、順番を問わない。
【0036】
作成されたp、g、s、Aは、それぞれp記憶部514、g記憶部509、s記憶部510、A記憶部511に一時的に記憶される。各々の記憶部はRAMやレジスタで構成される。
【0037】
次に、g、pとsを基に、公開鍵生成器512にて公開鍵Iを生成する(S606)。公開鍵Iは、以下の式で算出する。
【0038】
I=g−smod p
【0039】
なお、「mod」は剰余演算を意味する。この、公開鍵Iの演算は、g−sの値に対し、更に群演算を実行した結果である。本実施形態における群演算は、法pを用いた剰余演算である。
作成されたIは、I記憶部513に一時的に記憶される。I記憶部513もRAMやレジスタで構成される。
【0040】
以上、作成された各定数は、それぞれ以下の三箇所に出力される。
先ず、g、I、B、pは、検証者装置103に出力される(S607)。
次に、A、g、pが、コミットメント数列生成部404に出力される(S608)。
最後に、Aとsが、定数記録部405へ出力される(S609)。
これら出力処理が終わると、定数演算部402の処理が終了する(S610)。
【0041】
[センター104:群生成器506]
図7は定数演算部402内の群生成器506のブロック図であり、図8は群生成器506の処理の流れを示すフローチャートである。
処理を開始すると(S801)、先ず、乱数発生器702は乱数ωを生成する。
次に、乱数ωは素数判定器703によって素数であるか否かが判定される(S803)。素数でなければ、素数判定器703は再度乱数発生器702を起動させ、新たな乱数ωを生成させる。つまり、任意の素数を素数判定器703というフィルタを通じて出力する。
素数である乱数ωは、数値「2」704と、q記憶部503内のqと共に、乗算器705で乗算される。その後、加算器706で数値「1」707が加算される。つまり、以下の式を実行する(S804):
【0042】
p=2qω+1
【0043】
算出した値pは、素数判定器708で素数か否かが判定される(S805)。素数でなければ(S805のNO)、再度ステップS802に戻り、乱数発生器702から処理のやり直しが行われる。素数であれば、一旦p記憶部514に記憶される。
【0044】
次に、数値「2」709とω記憶部710に記憶されているωを乗算器711で乗算した値で、数値「2」712をべき乗器713にてべき乗する。この値を、ステップS805で得たpをp記憶部514から読み出して、剰余演算器715にて剰余を算出する。つまり、以下の式を実行する(S806):
【0045】
g=22ωmod p
【0046】
上述の式で算出した値が、群Gの元gと、本実施形態の群演算として用いる剰余演算の法pである。このg及びpを出力して(S807)、処理を終了する(S808)。
【0047】
なお、乱数発生器702は、任意の整数の乱数を作成すればよい。後述する他の乱数発生器(図11の乱数発生器1103及び図16の乱数発生器1604)とは異なり、乱数発生範囲は限定されない。
【0048】
なお、群生成器506の演算処理により、gmod p=1が必ず成立する。qは「gの位数」と呼ばれており、「ord(g)」と記す。
【0049】
[センター104:応答定数生成器507]
図9は定数演算部402内の応答定数生成器507のブロック図であり、図10は応答定数生成器507の処理の流れを示すフローチャートである。
処理を開始すると(S1001)、先ず、B記憶部505に格納されているBと、S記憶部504に格納されているSを、乗算器902で乗算する(S1002)。この値をuとする。
次に、カウンタ変数m903を初期値「0」904で初期化する(S1003)。
これ以降はループ処理である。
先ず、数値「2」905をべき乗器906により、カウンタ変数m903から得られる変数mでべき乗し、乗算器907にてq記憶部503から得られるqと乗算する。つまり、以下の式を実行する(S1004):
【0050】
A=2
【0051】
算出した値Aを、比較器908で先のステップS1002にて算出した値uと比較する(S1005)。比較の結果、Aがu以上でない、つまりAがuよりも小さい場合は(S1005のNO)、カウンタ変数m903をインクリメントし(S1006)、再度ステップS1004の式を演算する。
ステップS1005でAがu以上であれば(S1005のYES)、この値を応答定数Aとして出力し(S1007)、処理を終了する(S1008)。
【0052】
図9の比較器908の出力は、真のときにカウンタ変数m903をインクリメントする。これがステップS1005のNからステップS1006に相当する。
比較器908の出力が偽のときには、NOTゲート909で反転され、スイッチ910をオン制御する。これがステップS1005のYからステップS1007に相当する。
【0053】
以上のような手順にて、応答定数生成器507で算出した応答定数Aは、qに2を乗算した数であるので、Aはqで割り切れる。また、BとSとの乗算値uと比較しているため、A≧BSが保障される。
前述のように、qはgの位数(オーダー)であるので、Aはord(g)で割り切れる。
【0054】
[センター104:コミットメント数列生成部404]
図11はセンター104内のコミットメント数列生成部404のブロック図であり、図12はコミットメント数列生成部404の処理の流れを示すフローチャートである。
処理を開始すると(S1201)、先ず制御部1102内の図示しないカウンタ変数iを1に初期化する(S1202)。
次に、制御部1102によって乱数発生器1103が起動されると、乱数発生器1103は0〜A−1の範囲内で乱数を生成する(S1203)。この乱数をr(i番目のr)とする。
次に、重複確認部1104は、乱数発生器1103が出力した乱数rが、既に乱数使用リスト1105に登録されているか否かを確認する(S1204)。もし既に登録済みであれば(S1204のNO)、重複確認部1104は再度乱数発生器1103を起動させて(S1203)、乱数使用リスト1105内の乱数との重複のない乱数rを得る(S1204のYES)。
重複確認部1104は、乱数使用リスト1105内の乱数との重複のない乱数rを得たら、これを乱数使用リスト1105に登録する(S1205)。
【0055】
乱数rはgと共にべき乗器1106に与えられる。べき乗器1106はgをrでべき乗する。べき乗した値は更に、本実施形態の群演算とも言える剰余演算器1110によってp記憶部514の法pを用いた剰余演算が行われる。そして、この値はハッシュ関数器1107に与えられ、ハッシュ値xを得る。つまり、以下の式を実行する(S1206):
【0056】
【数1】

【0057】
この時点で得られた(x,r)の組を、一旦一時リスト1108に出力し、保持する(S1207)。
次に、制御部1102は内部に保持しているカウンタ変数iがレコード数t1109以上か否かを確認する(S1208)。もしt以上でなければ、カウンタ変数iをインクリメントし(S1209)、再度乱数発生器1103から一連の処理を繰り返す(S1203)。
カウンタ変数iがレコード数t1109と等しくなれば、必要なレコード数t1109だけ、コミットメント値xと乱数rの組が、一時リスト1108に保持されたこととなる。そこで、一時リスト1108の内容を定数記録部405に出力し(S1210)、一連の処理を終了する(S1211)。
【0058】
[証明者装置102]
図13は、証明者装置102のブロック図である。
入出力制御部1302は、センター104や検証者装置103とのデータの送受信と、証明者装置102全体の制御を行う。
入出力制御部1302には、EEPROMよりなるカウンタ変数格納部1303と、ROM1304と、演算処理部1305が接続されている。
カウンタ変数格納部1303は、カウンタ変数iを格納している。iの初期値は「1」であり、最終値は「t」である。カウンタ変数iは、ROM1304内に格納されているコミットメント数列1306のレコード番号を指し示すポインタである。
また、ROM1304にはセンター104から受け取った秘密鍵sと応答定数Aが、それぞれROM1304内の所定の領域に、s記憶部1307及びA記憶部1308として格納されている。
【0059】
演算処理部1305は、入出力制御部1302とROM1304から演算処理に必要な値を受け取り、レスポンス値yを出力する。
【0060】
以下、図3を参照して、入出力制御部1302を中心とする証明者装置102の全体の動作を説明する。
入出力制御部1302は、検証者装置103からコミットメント要求を受信すると(S301)、カウンタ変数格納部1303内のカウンタ変数iを読み込む。そして、ROM1304内に格納されているコミットメント数列1306のi番目のレコードのコミットメント値xを読み込み、これを検証者装置103に出力する(S302)。
この後、入出力制御部1302は、検証者装置103からチャレンジ数cが送信されるのを待つ。つまり、受信待ちである。
入出力制御部1302は、検証者装置103から送信された(S304)チャレンジ数cを受信すると、コミットメント数列1306のi番目のレコードの乱数rと、受信したチャレンジ数cを演算処理部1305に渡す。
演算処理部1305は、ROM1304内に格納されている秘密鍵sと応答定数Aを読み出し、チャレンジ数cと乱数rと共に、後述する演算処理を行い、レスポンス値yを算出する。
レスポンス値yは、入出力制御部1302によって検証者装置103に送信される(S305)。
【0061】
[証明者装置102:演算処理部1305]
図14は証明者装置102内の演算処理部1305のブロック図であり、図15は演算処理部1305の処理の流れを示すフローチャートである。
処理を開始すると(S1501)、先ずコミットメント数列1306から読み出した乱数rから減算器1403でAを引いて、一時変数r’を算出する(S1502)。なお、図14では説明の便宜のため、コミットメント数列1306から読み出したrをr記憶部1402に一旦格納している
と共に、一時変数r’をr’記憶部1404に一旦格納している。
次に、cとsを乗算器1405で乗算し、一時変数y’を算出する(S1503)。なお、図14では説明の便宜のため、検証者装置103から送信されたチャレンジ数cをc記憶部1406に一旦格納していると共に、一時変数y’をy’記憶部1407に一旦格納している。
次に、rとy’を加算器1408で加算し、一時変数yを算出する(S1504)。
次に、r’とy’を加算器1409で加算し、一時変数yを算出する(S1505)。
【0062】
次に、比較器1410で一時変数yと数値「0」1411を比較し、一時変数yが0未満、つまり負の値であるか確認する(S1506)。もし負の値ならば(S1506のYES)、比較器1410の判定出力によって、スイッチ1412はyとしてyを選択する(S1507)。もし正の値ならば(S1506のNO)、スイッチ1412はyとしてyを選択する(S1508)。
そして、yを出力し(S1509)、一連の処理を終了する(S1510)。
【0063】
[検証者装置103]
図16は検証者装置103のブロック図であり、図17は検証者装置103の検証処理の流れを示すフローチャートである。
入出力制御部1602は、証明者装置102とのデータの送受信と、検証者装置103全体の制御を行う。
入出力制御部1602には、証明者装置102から受信するコミットメント値xを一時的に格納するx記憶部1603と、乱数発生器1604と、乱数発生器1604が生成したチャレンジ数cを記憶するc記憶部1605と、証明者装置102から受信するレスポンス値yを一時的に格納するy記憶部1606が接続されている。
【0064】
乱数発生器1604は、チャレンジ数範囲Bを記憶するB記憶部1607からチャレンジ数範囲Bを得て、0〜B−1の範囲の乱数を生成する。これはチャレンジ数cとして証明者装置102に送信される。
cはI記憶部1608に格納されているIと共にべき乗器1609にてべき乗が算出される。べき乗器1609の出力は、本実施形態の群演算とも言える剰余演算器1615にて、p記憶部1617から供給される法pで剰余演算が行われる。
一方、yはg記憶部1610から得られるgと共にべき乗器1611にてべき乗が算出される。べき乗器1611の出力は、本実施形態の群演算とも言える剰余演算器1616にて、p記憶部1617から供給される法pで剰余演算が行われる。
この、それぞれの剰余演算器1615及び1616の出力が共に乗算器1612に供給され、乗算される。
乗算器1612の出力はハッシュ関数器1613に入力され、ハッシュ値が出力される。
このハッシュ値が、コミットメント値xと比較される。
一致検出器1614はコミットメント値xとハッシュ値との一致を検証し、一致していれば「1」を、一致していなければ「0」を出力する。これが判定出力となる。
【0065】
以下、図3を参照して、入出力制御部1602を中心とする検証者装置103の全体の動作を説明する。
最初に、入出力制御部1602は証明者装置102に対しコミットメント要求を送信する(S301)。
そして、入出力制御部1602は、証明者装置102からコミットメント値xが送信されるのを待つ。
入出力制御部1602は、証明者装置102からコミットメント値xを受信したら、これを一旦x記憶部1603に保持する(S303)。この後、乱数発生器1604を稼動させ、チャレンジ数cを証明者装置102へ送信する(S304)。
そして、入出力制御部1602は、証明者装置102からレスポンス値yが送信されるのを待つ。
入出力制御部1602は、証明者装置102からレスポンス値yを受信すると、検証処理を行い、得られた値とコミットメント値xとの一致を確認し、一致/不一致を出力する(S306)。
【0066】
図16と図17を参照して、検証処理を説明する。
証明者装置102からレスポンス値yを受信すると(S1701)、べき乗器1609、べき乗器1611、剰余演算器1615、剰余演算器1616、乗算器1612及びハッシュ関数器1613を稼動させ、以下の式に記す演算処理を行う(S1702):
【0067】
Z=Hash((gmod p)(Imod p))
【0068】
次に、先に受信して保持してあるコミットメント値xと、算出したZとを比較器908で比較する(S1703)。
値が一致していれば、証明者装置102は正当なものであると判断し、「1」を出力する(S1704)。
値が一致していなければ、証明者装置102は不正なものであると判断し、「0」を出力する(S1705)。
そして、一連の処理を終了する(S1706)。
【0069】
[証明処理]
検証者装置103と証明者装置102が実行する証明処理について、以下、簡単に説明する。
コミットメント値xは、図11にて説明したコミットメント数列生成部404によって、乱数rから以下の数式で生成される:
【0070】
x=Hash(gmod p)
【0071】
一方、証明者装置102は、検証者装置103が乱数発生器1604で作成して送信したチャレンジ数cを受信すると、演算処理部1305で以下の数式でyを算出する:
【0072】
y=r+cs
【0073】
更に、センター104の定数演算部402内の公開鍵生成器512では、秘密鍵sと群Gの元gから、公開鍵Iを以下の数式で算出する:
【0074】
I=g−smod p
【0075】
以上より、以下のように算出できる:
【0076】
mod pImod p=gr+csmod p(g−smod p
=gr+csmod pg−csmod p
=gr+cs−csmod p=gmod p
∴gmod pImod p=gmod p
∴Hash(gmod p)=Hash((gmod p)(Imod p))
【0077】
次に、本実施形態で利用している「y’−A」という数式の意味を説明する。
【0078】
【数2】

【0079】
[サイドチャネル攻撃に対する耐性]
本来なら、証明者装置102は単純に内部の演算処理部で「y=r+cs」という演算処理を行えば、容易にレスポンス値yを算出できる。
しかし、この計算ステップでは、サイドチャネル攻撃の一種である、タイミング解析攻撃ならびに単純電力解析攻撃に対して脆弱である。そこで、この演算処理をマスキングするために、応答定数Aという要素を加え、演算処理をやや複雑にすることで、タイミング解析攻撃ならびに単純電力解析攻撃を回避する。
ところが、もし、証明者装置102が以下に記すプログラムの処理を行うと、サイドチャネル攻撃の一種である、タイミング解析攻撃ならびに単純電力解析攻撃に対して脆弱である:
【0080】
y’=r+cs #変数y’にr+csを代入する。
if(y’<A){ #y’がAより小さければ、
y=y’ #yはy’を出力する。
}else{ #さもなくば、
y=y’−A #yはy’−Aを出力する。

【0081】
なお、上述のプログラムの「#(井桁)」以降は、コメントである。
上述のプログラムでは、y’がAとの大小関係に応じて、y’−Aという演算を行う場合と行わない場合とで、演算処理ステップ数の差が生じる。
タイミング解析攻撃ならびに単純電力解析攻撃とは、暗号鍵などのセキュリティパラメータ値によって暗号の演算時間が異なるような実装が行われた場合に、この演算時間を観測することによって、セキュリティパラメータの値を逆算する攻撃法である。この攻撃法に対処するには、どのようなセキュリティパラメータの値であっても、常に同じ時間で暗号化や復号化等の演算処理が完了するように実装する必要がある。
【0082】
そこで、本実施形態の証明者装置102では、以下のプログラムで示される演算手順を行う:
【0083】
r’=r−A #図15のステップS1502
y’=cs #S1503
=r+y’ #S1504
=r’+y’ #S1505
if(y<0){ #S1506:y1が0より小さければ、
y=y #S1507:yはy0を出力する。
}else{ #さもなくば、
y=y #S1508:yはy1を出力する。

【0084】
以上の処理手順により、yの値の如何にかかわらず、証明者装置102の演算処理部は常に同じ演算ステップ数を実行することとなるので、タイミング解析攻撃ならびに単純電力解析攻撃に対する脆弱性は十分に低減できる。
【0085】
[従来技術との比較]
本実施形態の本人確認システムと、従来技術の本人確認システムとを比較する。
「Schnorr方式」(非特許文献1参照)と呼ばれる、公開鍵暗号を用いた本人確認方法は、証明者装置と検証者装置との間の通信路から、秘密情報(秘密鍵s及び乱数r)が漏洩する可能性は完全にない。しかしながら、サイドチャネル攻撃に対抗するために、証明者装置で剰余演算と位数算出(オーダー関数)を実行する必要がある。つまり、証明者装置に対して高い演算能力を要求する。
したがって、証明者装置に要求されるハードウェア資源が極めて厳しいので、RFID等の低資源装置に適さない。
【0086】
「GPS方式」(非特許文献2及び非特許文献3参照)と呼ばれる、公開鍵暗号を用いた本人確認方法は、Schnorr方式と比べると、証明者装置では剰余演算や位数算出を実行する必要がない。つまり、証明者装置に対して高い演算能力を要求しないので、演算能力の点ではSchnorr方式より有利である。
しかし、証明者装置と検証者装置との間の通信路から、秘密情報(秘密鍵s及び乱数r)が漏洩する可能性が完全にない、とは言い切れない。また、証明者装置の内部の演算処理で、レスポンス値yを算出する「y=r+cs」という演算がそのまま外部から見えてしまう。そこで、乱数rを生成する範囲を示す応答定数Aを、csの値の範囲であるBSよりも大幅に大きくしなければならない。このため、必然的にコミットメント数列の一部を構成する乱数rのビット数を大きくせざるを得ず、証明者装置に要求される記憶容量が大きくなってしまう。
したがって、証明者装置に要求されるハードウェア資源が極めて厳しいので、RFID等の低資源装置に適さない。
【0087】
本実施形態の本人確認システムでは、上述のSchnorr方式とGPS方式がそれぞれ抱える欠点を、両方共解決している。
本実施形態の本人確認システムは、Schnorr方式と同様に、サイドチャネル攻撃に対して堅牢である。
証明者装置に要求される記憶容量は、Schnorr方式と比べると、およそ11%程度の増加で済む。
証明者装置が必要とする演算手段は、GPS方式と同様、加算器と乗算器だけで済む。
したがって、証明者装置に要求されるハードウェア資源が極めて軽く、RFID等の低資源装置に適する。
【0088】
本実施形態には、以下のような応用例が考えられる。
(1)証明者装置102内のコミットメント数列のポインタである、カウンタ変数格納部1303内のカウンタ変数iを強制的に動かして、コミットメント数列を使用不能にすると、証明者装置102の再利用を防止できる。
このことを実現させるために、証明者装置102の入出力制御部1302に、検証者装置103から発行された特定のコマンドを受信すると、カウンタ変数格納部1303内のカウンタ変数iを、コミットメント数列1306のレコード数tを超える数、或は「0」等の、コミットメント数列1306のレコード番号を指し示さない値に書き換える処理を追加する。
【0089】
(2)センター104内の定数演算部402が生成した各種定数はそのままに、検証仕様決定部403でハッシュ関数だけを異ならせると、コミットメント数列生成部404からは全く異なるコミットメント数列を出力することができるので、定数演算部402が生成した各種定数をハッシュ関数の種類毎に使い回すことができる。
【0090】
(3)実施形態では低資源装置の代表的なものとして、RFIDを例に挙げて説明したが、低資源装置はこれに限られない。電気的に直接接続可能な電極を備えるICカード等も、本実施形態で用いる低資源装置として適用可能である。
【0091】
(4)図2(b)に示した生産段階では、証明者装置102を一個作る度に、コミットメント数列生成処理(S207、S210)を実施していた。つまり、コミットメント数列生成部404を、証明者装置102を一個作る度に動作させていた。しかし、コミットメント数列{(x,r),(x,r),...(x,r)}は、乱数rと、これに対応する値xとの組み合わせであるので、証明者装置102の生産段階の前に、予め生産数とtを乗じたレコード数だけ「作り置き」してもよい。
【0092】
(5)本実施形態では、証明者装置の演算処理におけるサイドチャネル攻撃の脅威から秘密鍵の漏洩を防ぐために、群の性質を利用して、演算ステップを隠蔽するための応答定数Aを採用している。
ここで、本実施形態では、群演算に素数pを法とする剰余演算を採用した。
群演算は、本実施形態で開示した剰余演算に限られない。
周知のように、暗号の世界では、群(有限体或は有限群とも呼ぶ)における離散対数問題の解の困難さを利用するアルゴリズムが多く利用される。したがって、本実施形態で採用した剰余演算に代えて、このようなアルゴリズムに基づく群演算を採用することができる。
一例としては、楕円曲線暗号が挙げられる。多種多様な楕円曲線暗号のアルゴリズムのうちの一例としては、楕円ElGamal暗号で用いられる次の楕円曲線上の有理点を,群演算として採用することができる:
【0093】
(a,b):y=x+ax+b
【0094】
また、この際、群生成器506の仕様も併せて変更する必要が生じる。つまり、剰余演算の法pを決定することと同様に、楕円曲線暗号では、適切な楕円曲線を選ぶ演算処理が必要になる。これは、非特許文献6に開示されているように、ランダムに曲線を定めた後、曲線の位数(オーダー)、すなわち曲線状の点の数を計算する。この計算処理は、現状ではSchoofのアルゴリズム及びその変形を利用することとなる。
【0095】
本実施形態においては、本人確認システムを開示した。
サイドチャネル攻撃を防ぐために、Schnorr方式では証明者装置で剰余演算と位数算出(オーダー関数)を実行することで対応していた。一方で、GPS方式では証明者装置で演算する数値のビット数を多く取ることで対応していた。
本実施形態では、GPS方式の演算の方式を踏襲しつつ、GPS方式よりも演算の数値のビット数を少なくするために、証明者装置内の演算の数値の一つである応答定数Aを、群Gの元gのオーダー(位数)の倍数に設定した。
応答定数Aをgの自然数倍に設定すると、群の性質により、証明者装置の演算結果であるy=cs+rからAを減算しても、検証者装置側で同じ値を得ることができる。
証明者装置では、yの値の正負に応じてyからAを減算するか否かを選択する。この際に、yの値の如何にかかわらず、yからAを減算する処理手順を二重に実行することで、サイドチャネル攻撃に対する耐性を備えることができる。
【0096】
RFID等の低資源装置を用いる、有限回数の本人確認処理を行うシステムで、本実施形態は、低資源装置に対して極めて少ない演算能力と、従来技術と同等の記憶容量で、実用的な本人確認処理を実現できる。
更に、本実施形態の本人確認システムは、サイドチャネル攻撃に対しても強いので、セキュリティ面で堅牢な本人確認処理を実現できる。
【0097】
以上、本発明の実施形態例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
【図面の簡単な説明】
【0098】
【図1】本発明の一実施形態の例である、本人確認システムの概略図である。
【図2】センターと検証者装置と証明者装置との処理の大まかな流れを示すシーケンス図である。
【図3】証明者装置と検証者装置との間で行われる、検証処理の流れを示すシーケンス図である。
【図4】センターのブロック図である。
【図5】センター内部の定数演算部のブロック図である。
【図6】定数演算部の処理の流れを説明するフローチャートである。
【図7】定数演算部内の群生成器のブロック図である。
【図8】群生成器の処理の流れを示すフローチャートである。
【図9】定数演算部内の応答定数生成器のブロック図である。
【図10】応答定数生成器の処理の流れを示すフローチャートである。
【図11】センター内のコミットメント数列生成部のブロック図である。
【図12】コミットメント数列生成部の処理の流れを示すフローチャートである。
【図13】証明者装置のブロック図である。
【図14】証明者装置内の演算処理部のブロック図である。
【図15】演算処理部の処理の流れを示すフローチャートである。
【図16】検証者装置のブロック図である。
【図17】検証者装置の検証処理の流れを示すフローチャートである。
【符号の説明】
【0099】
101…本人確認システム、102…証明者装置、103…検証者装置、104…センター、105…入出力インターフェース、106…ベルトコンベア、107…入出力インターフェース、402…定数演算部、403…検証仕様決定部、404…コミットメント数列生成部、405…定数記録部、502…基礎定数生成器、503…q記憶部、504…S記憶部、505…B記憶部、506…群生成器、507…応答定数生成器、508…秘密鍵生成器、509…g記憶部、510…s記憶部、511…A記憶部、512…公開鍵生成器、513…I記憶部、514…p記憶部、702…乱数発生器、703…素数判定器、704…数値「2」、705…乗算器、706…加算器、707…数値「1」、708…素数判定器、709…数値「2」、710…ω記憶部、711…乗算器、712…数値「2」、713…べき乗器、715…剰余演算器、902…乗算器、903…カウンタ変数m、904…初期値「0」、905…数値「2」、906…べき乗器、907…乗算器、908…比較器、1102…制御部、1103…乱数発生器、1104…重複確認部、1105…乱数使用リスト、1106…べき乗器、1107…ハッシュ関数器、1108…一時リスト、1109…レコード数t、1302…入出力制御部、1303…カウンタ変数格納部、1304…ROM、1305…演算処理部、1306…コミットメント数列、1307…s記憶部、1308…A記憶部、1402…r記憶部、1403…減算器、1404…r’記憶部、1405…乗算器、1406…c記憶部、1407…y’記憶部、1408…加算器、1409…加算器、1410…比較器、1411…数値「0」、1412…スイッチ、1602…入出力制御部、1603…x記憶部、1604…乱数発生器、1605…c記憶部、1606…y記憶部、1607…B記憶部、1608…I記憶部、1609…べき乗器、1610…g記憶部、1611…べき乗器、1612…乗算器、1613…ハッシュ関数器、1614…一致検出器、1615、1616…剰余演算器、1617…p記憶部

【特許請求の範囲】
【請求項1】
秘密鍵sと前記秘密鍵に対応する公開鍵Iと定数A及び定数Bとを生成すると共に、ハッシュ関数を利用してコミットメント値xと乱数rの組よりなるコミットメント数列を生成するセンターと、
生成された前記公開鍵Iと前記定数Bと前記センターで利用される前記ハッシュ関数とを利用して証明処理を実行する検証者装置と、
生成された前記秘密鍵sと前記定数Aと前記コミットメント数列とを記憶する記憶部と、前記検証者装置に前記コミットメント値xを送信し、前記検証者装置からチャレンジ数cを受信し、前記検証者装置にレスポンス値yを送信する入出力制御部と、前記秘密鍵sと前記定数Aと前記乱数rと、受信した前記チャレンジ数cとを用いて、r+cs<Aであるときはr+csを、そうでないときはr+cs−Aを前記レスポンス値yとして出力する演算処理部と、を有する証明者装置と、
よりなる本人確認システム。
【請求項2】
前記演算処理部は、
r−Aを演算してr’を得る第一の演算手順と、
r+csを演算してyを得る第二の演算手順と、
r’+csを演算してyを得る第三の演算手順と、
前記yの正負を判定し、負であるときは前記yを、そうでないときは前記yを前記レスポンス値yとして出力する第四の演算手順と、
を実行するものである、請求項1記載の本人確認システム。
【請求項3】
群Gの元gを算出し、前記元gの位数の自然数倍である応答定数Aを算出し、秘密鍵sから群演算にて公開鍵Iを算出し、ハッシュ関数を決定し、前記応答定数Aと前記群gから前記群演算及び前記ハッシュ関数にてコミットメント値xと乱数rの組よりなるコミットメント数列を算出するセンターと、
前記公開鍵Iと前記群演算と前記ハッシュ関数とを利用して証明処理を実行する検証者装置と、
前記秘密鍵sと前記応答定数Aと前記コミットメント数列とを記憶する記憶部と、前記検証者装置に前記コミットメント値xを送信し、前記検証者装置からチャレンジ数cを受信し、前記検証者装置にレスポンス値yを送信する入出力制御部と、前記秘密鍵sと前記定数Aと前記乱数rと、受信した前記チャレンジ数cとを用いて、r+cs<Aであるときはr+csを、そうでないときはr+cs−Aを前記レスポンス値yとして出力する演算処理部と、を有する証明者装置と、
よりなる本人確認システム。
【請求項4】
前記演算処理部は、
r−Aを演算してr’を得る第一の演算手順と、
r+csを演算してyを得る第二の演算手順と、
r’+csを演算してyを得る第三の演算手順と、
前記yの正負を判定し、負であるときは前記yを、そうでないときは前記yを前記レスポンス値yとして出力する第四の演算手順と、
を実行するものである、請求項3記載の本人確認システム。

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

【図17】
image rotate


【公開番号】特開2010−118796(P2010−118796A)
【公開日】平成22年5月27日(2010.5.27)
【国際特許分類】
【出願番号】特願2008−289266(P2008−289266)
【出願日】平成20年11月11日(2008.11.11)
【出願人】(504133110)国立大学法人電気通信大学 (383)
【Fターム(参考)】