(57)【要約】【課題】疑似乱数生成器のサイドチャネル攻撃耐性を向上する。【解決手段】疑似乱数生成器の暗号回路であって、疑似乱数生成器の１ラウンド分の処理回路と、マスク保持回路と、マスク生成回路とを含み、疑似乱数生成器の１ラウンド分の処理回路を流れるデータにマスクをかけたまま計算する。具体的には、マスク保持回路は、疑似乱数生成器の１ラウンド分の処理回路と同一の線形変換回路を含み、同回路と同期して動作し、マスク生成回路の出力データをマスク保持回路へ入力する。マスク生成回路は、疑似乱数生成器の１ラウンド分の処理回路が含む非線形変換回路の計算過程のデータ、及び、計算結果をマスクする乱数を生成する。【選択図】  図１
2012230276.tif 000002
【特許請求の範囲】
【請求項１】
疑似乱数生成器Ｅｎｏｃｏｒｏの回路であって、
線形変換回路１と第一の非線形変換回路とを含む疑似乱数生成器の１ラウンド分の処理回路と、マスク保持回路と、マスク生成回路とを含み、
前記マスク生成回路の出力は、前記疑似乱数生成器の１ラウンド分の処理回路と前記マスク保持ユニットへの入力であり、
前記マスク保持回路の出力は、前記疑似乱数生成器の１ラウンド分の処理回路への入力であり、
前記疑似乱数生成器の１ラウンド分の処理回路は、前記マスク保持ユニットが出力するマスクと前記マスク生成ユニットが出力するマスクとを入力とし、前記疑似乱数生成器の１ラウンド分の処理回路の処理対象データをマスクして変換処理を行う
ことを特徴とする暗号処理装置。
【請求項２】
請求項１に記載の暗号処理装置であって、
前記マスク保持回路は、前記第１の線形変換回路と同一の第２の線形変換回路を含み、前記疑似乱数生成器の１ラウンド分の処理回路と同期して動作する
ことを特徴とする暗号処理装置。
【請求項３】
請求項１または２に記載の暗号処理装置であって、
前記マスク保持回路は、前記マスク生成回路の出力データを、前記マスク保持回路において前記非線形変換回路の出力箇所と一致する箇所へ入力する
ことを特徴とする暗号処理装置。
【請求項４】
請求項１から３のいずれか一に記載の暗号処理装置であって、
前記マスク生成回路は、前記疑似乱数生成器の１ラウンド分の処理回路が含む非線形変換回路の計算過程のデータ、及び、計算結果をマスクする乱数を生成する
ことを特徴とする暗号処理装置。
【請求項５】
請求項１から４のいずれか一に記載の暗号処理装置であって、
前記マスク生成回路は、疑似乱数生成装置を用いてマスクを生成する
ことを特徴とする暗号処理装置。
【請求項６】
請求項５に記載の暗号処理装置であって、
前記マスク生成回路は、真性乱数生成装置を用いてマスクを生成する
ことを特徴とする号処理装置。
【請求項７】
請求項１から６のいずれか一に記載の暗号処理装置であって、
前記疑似乱数生成器の１ラウンド分の処理回路が含む非線形変換回路は、前記疑似乱数生成器の１ラウンド分の処理回路のデータと、前記マスク保持回路のデータと、前記マスク生成回路が出力するマスクとを入力とし、マスクをはずすことなく、かつマスクを更新しつつ、計算を行い、マスクされた出力データを出力する
ことを特徴とする暗号処理装置。
【請求項８】
請求項１から７のいずれか一に記載の暗号処理装置であって、
前記疑似乱数生成器の１ラウンド分の処理回路が含む非線形変換回路は、マスクを用いて演算処理を行う
ことを特徴とする暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示される主題は、暗号アルゴリズムをハードウェア処理する技術に関する。
【背景技術】
【０００２】
情報の秘匿を目的として、平文データから推測が困難な暗号文データを生成する暗号アルゴリズムが用いられる。暗号アルゴリズムには、米国標準暗号ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）や特許文献１に示す疑似乱数生成器Ｅｎｏｃｏｒｏなどがある。
【０００３】
暗号アルゴリズムの実装は各種の形態で実現されるが、ハードウェアを用いた暗号機能の実現に着目すると、通常、専用の暗号回路を組み込んだ暗号装置として実現される。暗号装置はＩＣカードや携帯電話といった小型の機器にも広く利用されている。
【０００４】
しかし、近年、暗号装置を攻撃対象としたサイドチャネル攻撃が発案された。サイドチャネル攻撃とは、暗号装置に入力される平文データや暗号装置から出力される暗号文データに加え、暗号装置が暗号化処理中に発生させる消費電力や漏洩電磁波、あるいは暗号化処理時間などの漏洩情報も利用して、暗号装置に組み込まれた秘密鍵などの秘密情報を特定する攻撃である。
【０００５】
従来の暗号アルゴリズムに対する攻撃方法である差分解析攻撃や線形解析攻撃は、数万台のＰＣと数年の時間が必要である。一方で、サイドチャネル攻撃は、暗号装置とＰＣ１台、オシロスコープなどの測定機器と数日程度の時間でよい。そのため、サイドチャネル攻撃は従来の攻撃方法と比較して、費用や時間などのコストが小さいため、強力な攻撃として知られている。
【０００６】
ＡＥＳを対象としたサイドチャネル攻撃対策技術としては、例えば、乱数を用いて暗号処理途中の値を隠す（マスクするという）方法が知られている（非特許文献１）。非特許文献１では、ＡＥＳ暗号回路の非線形変換をマスクする方法が示されている。非特許文献１で示されている方法では、乱数などの、隠すための情報（マスクデータ、または、単にマスクという）を、非線形変換を行うたびに新しくする必要がある。ＡＥＳアルゴリズムは、内部状態のすべてのビットに非線形変換を適用し同じ内部状態を保持しない。従って、一度使用したマスクは保存する必要が無く、マスクは毎ラウンドですべて更新すればよい。
【０００７】
一方で、疑似乱数生成器Ｅｎｏｃｏｒｏに着目すると、疑似乱数生成器Ｅｎｏｃｏｒｏは、秘密鍵１２８ビット、初期ベクトル６４ビットと定数８０ビットを入力とし、所定の初期化処理を行った後、８ビットずつ疑似乱数列を出力する疑似乱数生成器である。疑似乱数生成器Ｅｎｏｃｏｒｏは、２７２ビットの内部状態を備え、内部状態の一部のビットに対してのみ非線形変換を行い、他のビットは保持しつつ内部状態の撹拌を行い、内部状態の一部のビットを疑似乱数として出力する。疑似乱数生成器ＥｎｏｃｏｒｏはＡＥＳと同様に非線形変換を含むが、非線形変換を内部状態の一部のビットに適用し他のビットには適用しない点が異なる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2008-276728号公報
【非特許文献】
【０００９】
【非特許文献１】E.Trichina, “Logic Design for AES SubByte Transformation On masked Data”, [online], 2003年11月, Cryptology ePrint Archive, [2011年3月25日検索], インターネット  ＜URL :  http://eprint.iacr.org/2003/236.pdf ＞
【発明の概要】
【発明が解決しようとする課題】
【００１０】
非特許文献１の技術を適用することで、ＡＥＳ暗号回路のサイドチャネル攻撃耐性の向上が見込まれる。
【００１１】
しかし、非特許文献１では、ＡＥＳアルゴリズムへの適用を前提としており、疑似乱数生成器ＥｎｏｃｏｒｏのようにＡＥＳと異なるアルゴリズムに適用する手順については言及していない。
【００１２】
更に、ＡＥＳに対するサイドチャネル攻撃対策技術は非特許文献１などで報告されているが、疑似乱数生成器Ｅｎｏｃｏｒｏに対するサイドチャネル攻撃対策技術は知られていない。疑似乱数生成器Ｅｎｏｃｏｒｏをより安全に利用するためにも、サイドチャネル攻撃対策が望ましい。
【課題を解決するための手段】
【００１３】
本明細書では、上記の課題に鑑みて、上記課題を解決する構成が複数開示される。
【００１４】
その一例を挙げるならば、マスク生成ユニット、マスク保持ユニット、及び、ラウンド処理ユニットを用いて疑似乱数生成器Ｅｎｏｃｏｒｏ回路を構成する。ラウンド処理ユニットは、線形変換回路と非線形変換回路とを含む疑似乱数生成器Ｅｎｏｃｏｒｏの１ラウンド分の処理回路である。マスク生成ユニットは、ラウンド処理ユニットに含まれる非線形変換回路で使用するための新たなマスクを生成する回路である。マスク保持ユニットは、ラウンド処理ユニットが含む線形変換回路と同一の線形変換回路を含み、ラウンド処理ユニットと同期して動作する。マスク保持ユニットへはマスク生成ユニットの出力値を入力し、また、マスク保持ユニットの値をラウンド処理ユニットの非線形変換回路へ出力する。
【００１５】
このように疑似乱数生成器Ｅｎｏｃｏｒｏ回路を構成することで、疑似乱数生成器Ｅｎｏｃｏｒｏ回路の内部状態レジスタに格納される値にマスクをかけ、非線形変換において使用する新たなマスクをマスク生成ユニットで生成しつつ、内部状態レジスタに格納される値に使用しているマスクをマスク保持ユニットで保存することができる。これらの処理によって、疑似乱数生成器Ｅｎｏｃｏｒｏ回路の内部状態をマスクし、非線形変換にもマスクを適用できるようになるため、疑似乱数生成器Ｅｎｏｃｏｒｏ回路のサイドチャネル攻撃耐性を向上させることができる。
【発明の効果】
【００１６】
開示によれば、乱数を用いてサイドチャネル攻撃耐性の向上が可能な疑似乱数生成器Ｅｎｏｃｏｒｏ回路を実現できる。
【図面の簡単な説明】
【００１７】
【図１】実施例１の疑似乱数生成器Ｅｎｏｃｏｒｏ回路の構成を例示する図である。
【図２】実施例１のマスク生成ユニットの構成を例示する図である。
【図３】実施例１のマスク保持ユニットの構成を例示する図である。
【図４】実施例１のラウンド処理ユニットの構成を例示する図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について図面を参照して説明する。各図中の六角形は、データを示す。
【実施例１】
【００１９】
図１は、乱数を用いてサイドチャネル攻撃対策を施した、疑似乱数生成器Ｅｎｏｃｏｒｏの回路図である。疑似乱数生成器Ｅｎｏｃｏｒｏ１０１は、２７２ビットのＳ入力シード１０２、１２８ビットのＳ出力シード１０３、及び、秘密鍵１２８ビットと初期ベクトル６４ビットと定数８０ビットを同順に結合した２７２ビットの初期値１０４とを入力する。疑似乱数列１１４は、疑似乱数生成器Ｅｎｏｃｏｒｏ１０１の出力データである疑似乱数列である。図示を省略するが疑似乱数生成器Ｅｎｏｃｏｒｏ１０１は、入力されるタイミング信号（クロック）に応じて、以下に説明する各レジスタと各処理ユニットが各々の動作を進める。
【００２０】
セレクタ１０５は、疑似乱数生成器Ｅｎｏｃｏｒｏ１０１へＳ入力シード１０２が入力された場合はＳ入力シード１０２を選択し、それ以外の場合は２７２ビットのＳ入力マスクレジスタ入力値１１６を選択する。この選択結果を２７２ビットの中間データ１１５として出力する。
【００２１】
セレクタ１０６も同様に、疑似乱数生成器Ｅｎｏｃｏｒｏ１０１へＳ出力シード１０３が入力された場合はＳ出力シード１０３を選択し、それ以外の場合は１２８ビットのＳ出力マスクレジスタ入力値１２０を選択する。この選択結果を１２８ビットの中間データ１１９として出力する。
【００２２】
セレクタ１０７も同様に、疑似乱数生成器Ｅｎｏｃｏｒｏ１０１へＳ入力シード１０２及び初期値１０４が入力された場合はＳ入力シード１０２及び初期値１０４のＸＯＲ（排他的論理和）値を選択し、それ以外の場合は２７２ビットの内部状態レジスタ入力値１２４を選択する。この選択結果を２７２ビットの中間データ１２３として出力する。
【００２３】
Ｓ入力マスクレジスタ１０８は、２７２ビットの中間データ１１５を入力とし、その値を保存し、更にその値を２７２ビットのＳ入力マスクレジスタ格納値１２６として出力する。
【００２４】
Ｓ出力マスクレジスタ１０９は、１２８ビットの中間データ１１９を入力とし、その値を保存し、更にその値を１２８ビットのＳ出力マスクレジスタ格納値１２７として出力する。
【００２５】
内部状態レジスタ１１０は、２７２ビットの中間データ１２３を入力とし、その値を保存し、更にその値を２７２ビットの内部状態レジスタ格納値１２８として出力する。
【００２６】
マスク生成ユニット１１１は、１２８ビットのＳ出力マスクレジスタ格納値１２７を入力とし、所定のマスク生成処理を実行し、その結果を、１２８ビットのＳ出力マスクレジスタ入力値１２０、３２ビットのＳ出力マスク１２１、及び、３２ビットのＳ処理マスク１２２として出力する。
【００２７】
マスク保持ユニット１１２は、２７２ビットのＳ入力マスクレジスタ格納値１２６と３２ビットのＳ出力マスク１２１とを入力とし、所定の線形変換を行い、その結果を、２７２ビットのＳ入力マスクレジスタ入力値１１６、３２ビットのＳ入力マスク１１７、及び、８ビットの最終マスク１１８として出力する。
【００２８】
ラウンド処理ユニット１１３は、２７２ビットの内部状態レジスタ格納値１２８と３２ビットのＳ処理マスク１２２と、３２ビットのＳ入力マスク１１７とを入力とし、所定の撹拌処理を行い、その結果を内部状態レジスタ入力値１２４、及び、８ビットの最終データ１２５として出力する。
【００２９】
８ビットの最終マスク１１８と８ビットの最終データ１２５との排他的論理和を計算した結果を８ビットの疑似乱数列１１４として出力する。尚、疑似乱数生成器Ｅｎｏｃｏｒｏ１０１は、Ｓ入力シード１０２、Ｓ出力シード１０３と初期値１０４とを入力した後、９６ラウンドの初期化を行う。この初期化中は、疑似乱数列１１４を出力しない。
【００３０】
また、Ｓ出力シード１０３、Ｓ出力マスクレジスタ１０９、中間データ１１９、Ｓ出力マスクレジスタ入力値１２０、Ｓ処理マスク１２２、及び、Ｓ出力マスクレジスタ格納値１２７のビット長は非線形変換の実装方法に依存するものであり、任意でよい。
【００３１】
次に、マスク生成ユニット１１１、マスク保持ユニット１１２、ラウンド処理ユニット１１３の詳細構成について説明する。
【００３２】
マスク生成ユニット１１１の構成を図２に示す。マスク生成ユニット１１１の入力は１２８ビットのＳ出力マスクレジスタ格納値１２７である。マスク生成ユニット１１１の出力は１２８ビットのＳ出力マスクレジスタ入力値１２０、３２ビットのＳ出力マスク１２１、及び、３２ビットのＳ処理マスク１２２である。マスク生成ユニット１１１は、小乱数生成ユニット２０１によって１２８ビットの新たなマスクを生成する。この小乱数生成ユニット２０１は、疑似乱数生成器を用いて実現してもよいし、真性乱数の発生源を用いて実現してもよい。
【００３３】
小乱数生成ユニット２０１に用いる疑似乱数生成器の例としては、線形フィードバックシフトレジスタがある。
【００３４】
小乱数生成ユニット２０１に真性乱数の発生源を用いる場合、入力のＳ出力マスクレジスタ格納値１２７は無くてもよい。
【００３５】
小乱数生成ユニット２０１の出力を、Ｓ出力マスクレジスタ入力値１２０として出力し、更に、小乱数生成ユニット２０１の出力の内３２ビットをＳ出力マスク１２１として出力し、同様にＳ処理マスク１２２を出力する。
【００３６】
マスク保持ユニット１１２の構成を図３に示す。マスク保持ユニット１１２の入力は２７２ビットのＳ入力マスクレジスタ格納値１２６と３２ビットのＳ出力マスク１２１である。マスク保持ユニット１１２の出力は、２７２ビットのＳ入力マスクレジスタ入力値１１６、３２ビットのＳ入力マスク１１７、及び、８ビットの最終マスク１１８である。図中、Ｌ（３０１）は１６ビット入出力の線形変換である。
【００３７】
マスク保持ユニット１１２は、Ｓ入力マスクレジスタ格納値１２６とＳ出力マスク１２１に対して、図に示す結線に従うデータシフトを行った後、その結果をＳ入力マスクレジスタ入力値１１６、Ｓ入力マスク１１７、及び、最終マスク１１８として出力する。
【００３８】
本構成では、マスク保持ユニット１１２でマスクを保存しつつ、マスク保持ユニット１１２の出力であるＳ入力マスク１１７をラウンド処理ユニット１１３へ入力することを特徴としている。更に、マスク保持ユニット１１２の出力であるＳ入力マスクレジスタ値１１６をＳ入力マスクレジスタ１０８へ格納することで、マスク値を保持することができる。
【００３９】
ラウンド処理ユニット１１３の構成を図４に示す。ラウンド処理ユニット１１３の入力は、２７２ビットの内部状態レジスタ格納値１２８、３２ビットのＳ入力マスク１１７、及び３２ビットのＳ処理マスク１２２である。ラウンド処理ユニット１１３の出力は、２７２ビットの内部状態レジスタ入力値１２４、及び、８ビットの最終データ１２５である。図中、Ｓ（４０１〜４０４）は８ビット入出力の非線形変換処理を表しており、４０１〜４０４の処理は同一である。また、図中Ｌ（４０５）は１６ビット入出力の線形変換である。
【００４０】
Ｓ（４０１〜４０４）は、いずれも、内部状態レジスタ格納値１２８と、その値に使用しているマスク（図中、Ｓ入力マスク１１７）と、Ｓの処理途中の値及び出力値をマスクするために用いる新たなマスク（図中、Ｓ処理マスク１２２）を入力とし、変換処理を行った後、マスクされた値を出力する。Ｓ（４０１〜４０４）はその変換途中で、マスクをといた値、すなわち、データとそのデータに使用しているマスクとのＸＯＲ結果が出現しないように変換を行う。例えば、データと新たなマスクとをＸＯＲした後、データに使用していたマスクとＸＯＲすることで実現可能である。
【００４１】
尚、Ｓ（４０１〜４０４）の実装方法の例としては、非特許文献１が示す技術を用いて実装してもよいし、ＷＤＤＬなどの回路を二重化する技術を用いて実装してもよいし、ＩＣカード、ＲＯＭ、ＲＡＭやＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を用いた表参照で実装してもよい。
【００４２】
ラウンド処理ユニット１１３は、２７２ビットの内部状態レジスタ格納値１２８、３２ビットのＳ入力マスク１１７、及び３２ビットのＳ処理マスク１２２を入力とし、図に示す結線に従う変換処理を行った後、２７２ビットの内部状態レジスタ入力値１２４、及び、８ビットの最終データ１２５を出力する。尚、図示を省略するが、疑似乱数生成器Ｅｎｏｃｏｒｏ１０１の初期化時には、８ビットのカウンタ値と内部状態レジスタ格納値とのＸＯＲが行われる。
【００４３】
以上で、マスク生成ユニット１１１、マスク保持ユニット１１２、ラウンド処理ユニット１１３の詳細構成の説明を終える。
【００４４】
図１において、Ｓ入力シード１０２をＳ入力マスクレジスタ１０８へ入力するビット順と、Ｓ入力シード１０２と初期値１０４とのＸＯＲ結果を内部状態レジスタ１１０へ入力するビット順とを同一にすると、図３、図４に示すように、マスク保持ユニット１１２の処理はラウンド処理ユニット１１３から非線形変換Ｓ（４０１〜４０４）を除いた処理と同一であるため、Ｓ入力マスクレジスタ１０８におけるマスクの格納箇所と、内部状態レジスタ１１０で使用中のマスクの格納箇所は同一にできる。
【００４５】
従って、内部状態レジスタ１１０に格納されている値が非線形変換Ｓ（例えば４０１）へ入力される場合は、内部状態レジスタ１１０における格納箇所と一致する箇所に格納されているＳ入力マスクレジスタ１０８の値を非線形変換Ｓに入力することで、正しくマスクを解くことが可能となる。
【００４６】
更に、ラウンド処理ユニット１１３で、非線形変換Ｓ（例えば４０１）の出力が所定の箇所へ入力されるのと同様に、非線形変換Ｓの出力に使用したＳ出力マスク１２１はマスク保持ユニット１１２において、ラウンド処理ユニット１１３で非線形変換Ｓの出力が入力されたのと同一の箇所に入力される。
【００４７】
以上のように、Ｓ入力マスクレジスタ１０８に格納されるマスクは、内部状態レジスタ１１０に格納される同マスクを用いた値と同期して保存することができる。
【００４８】
以上、本実施例では、マスク生成ユニット１１１、マスク保持ユニット１１２、及び、ラウンド処理ユニット１１３を用いて疑似乱数生成器Ｅｎｏｃｏｒｏ回路１０１を構成した。
【００４９】
本実施例の構成では、疑似乱数生成器Ｅｎｏｃｏｒｏ回路１０１の内部状態レジスタ１１０に格納される値にマスクをかけ、非線形変換Ｓにおいて使用する新たなマスクをマスク生成ユニット１１１で生成しつつ、内部状態レジスタ１１０に格納される値に使用しているマスクをマスク保持ユニット１１２で保存することができる。これらの処理によって、疑似乱数生成器Ｅｎｏｃｏｒｏ回路１０１の内部状態をマスクし、非線形変換にもマスクを適用できるようになるため、疑似乱数生成器Ｅｎｏｃｏｒｏ回路１０１のサイドチャネル攻撃耐性を向上させることができる。
【００５０】
更に、本実施例では、ＡＥＳに対するサイドチャネル攻撃対策技術をそのまま疑似乱数生成器Ｅｎｏｃｏｒｏに適用する場合と比較して、毎ラウンドで内部状態の全ビットに新たなマスクをＸＯＲしなくてもよいため、１ラウンド当たり疑似乱数生成器Ｅｎｏｃｏｒｏが新たに必要とするマスクのビット数を少なくできている。
【００５１】
更に、ＡＥＳに対するサイドチャネル攻撃対策技術をそのまま疑似乱数生成器Ｅｎｏｃｏｒｏに適用する場合と比較して、内部状態の全ビットとマスクとのＸＯＲ処理を省略できるため、疑似乱数生成器Ｅｎｏｃｏｒｏの回路規模を小さくできている。
【００５２】
尚、この実施例において、ラウンド処理ユニット１１３は、まず新たなマスクと内部状態のすべてのビットをＸＯＲした後、現在使用しているマスクとＸＯＲを行い、その後、図４掲載のラウンド処理を実施するように構成してもよい。
【００５３】
上記新たなマスクとは、Ｓ処理マスク１２２のビット幅を２７２ビット以上に拡張したものである。また現在使用しているマスクとは、Ｓ入力マスクレジスタ格納値１２６である。マスク生成ユニット１１１の構成は変わらないが、出力であるＳ処理マスク１２２のビット数が上記のように拡張される。マスク保持ユニット１１２の構成は変わらないが、入力はビット幅が拡張されたＳ処理マスク１２２のみとなり、出力のＳ入力マスク１１７はなくてもよい。
【符号の説明】
【００５４】
１０１：疑似乱数生成器Ｅｎｏｃｏｒｏ回路、１０５，１０６，１０７：セレクタ、１０８：Ｓ入力マスクレジスタ、１０９：Ｓ出力マスクレジスタ、１１０：内部状態レジスタ、１１１：マスク生成ユニット、１１２：マスク保持ユニット、１１３：ラウンド処理ユニット、１１６：Ｓ入力マスクレジスタ入力値、１１７：Ｓ入力マスク、１１８：最終マスク、１２０：Ｓ出力マスクレジスタ入力値、１２１：Ｓ出力マスク、１２２：Ｓ処理マスク、１２４：内部状態レジスタ入力値、１２５：最終データ、１２６：Ｓ入力マスクレジスタ格納値、１２７：Ｓ出力マスクレジスタ格納値、１２８：内部状態レジスタ格納値、２０１：小乱数生成ユニット、４０１、４０２、４０３、４０４：非線形変換Ｓ
【図１】
2012230276.tif 000003
【図２】
2012230276.tif 000004
【図３】
2012230276.tif 000005
【図４】
2012230276.tif 000006