(57)【要約】  データベースシステムは、データベースに登録しようとする情報を秘匿にするかどうかを判定する判定部１３と、判定部１３において秘匿にすると判定された場合には、Ｎを所定の正の整数として、情報を秘密分散することによりＮ個の断片情報を生成しシステム管理装置２に送信する端末装置１と、端末装置１から受信したＮ個の断片情報をそれぞれＮ個のデータベース装置３に送信するシステム管理装置２と、システム管理装置２から受信したＮ個の断片情報をそれぞれ格納するＮ個のデータベース装置３と、を備えている。
2016181904.tif 000002
【特許請求の範囲】
【請求項１】
データベースに登録しようとする情報を秘匿にするかどうかを判定する判定部と、
上記判定部において秘匿にすると判定された場合には、Ｎを所定の正の整数として、上記情報を秘密分散することによりＮ個の断片情報を生成しシステム管理装置に送信する端末装置と、
上記端末装置から受信したＮ個の断片情報をそれぞれＮ個のデータベース装置に送信する上記システム管理装置と、
上記システム管理装置から受信したＮ個の断片情報をそれぞれ格納するＮ個のデータベース装置と、
を含むデータベースシステム。
【請求項２】
請求項１のデータベースシステムにおいて、
上記判定部は、データベースから参照しようとする情報が秘匿にされているかどうかを判定し、
ＫをＮ以下の所定の正の整数として、上記判定部において秘匿にされていると判定された場合には、上記システム管理装置は、上記Ｎ個のデータベース装置の中のＫ個のデータベース装置にそれぞれ格納されたＫ個の断片情報を読み込み上記端末装置に送信し、
上記端末装置は、上記システム管理装置から受信したＫ個の断片情報に基づいて元の情報を復元する、
データベースシステム。
【請求項３】
請求項１又は２のデータベースシステムにおいて、
上記判定部は、データベースを参照するための検索条件の全部又は一部を秘匿にするかどうかを判定し、
ＣをＫ以上Ｎ以下の正の整数として、上記判定部において上記検索条件の全部又は一部を秘匿にすると判定された場合には、上記端末装置は、上記検索条件の全部又は一部を秘密分散することによりＣ個の断片検索情報を生成し上記システム管理装置に送信し、
上記システム管理装置は、上記端末装置から受信したＣ個の断片検索情報をそれぞれＣ個のデータベース装置に送信し、
上記Ｃ個のデータベース装置が、上記Ｃ個の断片検索情報に対応するＣ個の断片情報を秘密計算により見つけ、
上記システム管理装置は、上記Ｃ個の断片情報の中のＫ個の断片情報を上記端末装置に送信し、
上記端末装置は、受信したＫ個の断片情報に基づいて元の情報を復元する、
データベースシステム。
【請求項４】
判定部が、データベースに登録しようとする情報を秘匿にするかどうかを判定する判定ステップと、
端末装置が、上記判定ステップにおいて秘匿にすると判定された場合には、Ｎを所定の正の整数として、上記情報を秘密分散することによりＮ個の断片情報を生成しシステム管理装置に送信するステップと、
システム管理装置が、上記端末装置から受信したＮ個の断片情報をそれぞれＮ個のデータベース装置に送信するステップと、
Ｎ個のデータベース装置が、上記システム管理装置から受信したＮ個の断片情報をそれぞれ格納するステップと、
を含むデータベース処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、暗号応用技術に関し、特にデータベースに格納するデータを明かすことなく情報処理を行う秘密計算の技術に関する。
【背景技術】
【０００２】
データベースに格納されるデータを秘匿する手法として、主に（１）透過的暗号化による暗号化、（２）検索可能暗号などによる暗号化、（３）完全準同型暗号による暗号化の３種類の手法が知られている。
（１）透過的暗号化は、データを暗号化してからデータベースに格納することでデータベースに格納されたデータを秘匿するものである（例えば、非特許文献１参照。）。
（２）検索可能暗号などによる暗号化は、暗号文の状態で特定の処理を行うことで、データを秘匿した状態での検索や、暗号方式に応じた操作を可能にするものである（例えば、非特許文献１参照。）。
（３）完全準同型暗号化による暗号化は、暗号文の状態で任意の処理を行うことにより、データを秘匿した状態での操作が可能にするものである（例えば、非特許文献１参照。）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Oracle Advanced Security, ［online］,［平成 27 年 5 月 1日検索］, インターネット〈URL：http://www.oracle.com/jp/products/database/options/advanced-security/overview/index.html〉
【非特許文献２】D.X. Song, D. Wagner, and A. Perring, “Practical Techniques for Searches on Encrypted Data,” in IEEE Symposium on Security and Privacy, pages 44-55, 2000.
【非特許文献３】C. Gentry, “Fully Homomorphic Encryption Using Ideal Lattices,” in STOC ‘09, pages 169-178, 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の（１）から（３）の手法は、いずれも暗号鍵を用いた方式であるため、暗号鍵が漏洩するリスクが存在する。【０００５】
この発明の目的は、暗号鍵が漏洩するリスクがないデータベースシステム、データベース処理方法を提供することである。
【課題を解決するための手段】
【０００６】
この発明の一態様によるデータベースシステムは、データベースに登録しようとする情報を秘匿にするかどうかを判定する判定部と、判定部において秘匿にすると判定された場合には、Ｎを所定の正の整数として、情報を秘密分散することによりＮ個の断片情報を生成しシステム管理装置に送信する端末装置と、端末装置から受信したＮ個の断片情報をそれぞれＮ個のデータベース装置に送信するシステム管理装置と、システム管理装置から受信したＮ個の断片情報をそれぞれ格納するＮ個のデータベース装置と、を備えている。
【発明の効果】
【０００７】
暗号鍵を用いないため、暗号鍵が漏洩するリスクがなくなる。
【図面の簡単な説明】
【０００８】
【図１】データベースシステムの例を説明するためのブロック図。
【図２】データ登録の処理の例を説明するための流れ図。
【図３】データ検索の処理の例を説明するための流れ図。
【発明を実施するための形態】
【０００９】
データベースシステムは、図１に示すように、端末装置１と、システム管理装置２と、Ｎ個のデータベース装置３を例えば備えている。
【００１０】
端末装置１は、携帯電話、スマートフォン、ＰＣ等の情報端末である。端末装置１は、クエリ解釈部１１、秘匿部１２、判定部１３及び復元部１４を例えば備えている。図１の例では、端末装置１は１個だけ描かれているが、異なる複数の端末装置１がシステム管理装置２に互いに通信可能な状態で接続されていてもよい。
【００１１】
システム管理装置２は、後述するようにデータベースシステムを管理するためのサーバである。システム管理装置２は、データベース制御部２１を例えば備えている。
【００１２】
データベース装置３は、後述するように秘密分散された断片が格納され、必要に応じて秘密計算により情報を復元する装置である。データベース装置３は、記録部３１及び秘密計算処理部３２を例えば備えている。
【００１３】
秘密分散とは、入力されたデータを複数（N個）の断片に変換し、隔離することによって秘匿する技術である。Nは、所定の正の整数である。K個（KはN以下の正の整数。）の断片を集めることによってのみ元のデータを知ることができ、暗号鍵を用いないため危殆化による情報漏洩リスクがなくなる（例えば、参考文献１参照。）。
〔参考文献１〕A. Shamir, “How to Share a Secret,” Communications of the ACM 22, pages 612-613, 1979.
【００１４】
秘密計算とは、秘密分散によって秘匿化されたC個（CはK以上N以下の正の整数。）の断片を用いて、元のデータを明かさずに処理を行う技術である。理論上は任意の関数の計算が実行できることが知られている。下記の参考文献２では基本演算となる乗算の方法が示されている。
〔参考文献２〕R. Gennaro, M.O. Rabin, and T. Rabin, “Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography,” 17th annual ACM symposium on Principles of distributed computing, ACM, 1998.
【００１５】
データベースの操作は、端末装置１から入力され、システム管理装置２を介して各データベース装置３で実行される。データベースのデータ処理は、一般のデータベースと同様に主に６個の処理で構成される。６個の処理は、1. テーブル定義、２．データ登録、３．データ検索、４．データ更新、５．データ削除、６．テーブル削除である。以降、各処理について説明する。
【００１６】
［テーブル定義］
テーブル定義は、データを格納する表を定義する操作である。
【００１７】
端末装置１に入力されたクエリ（例えばSQL文）が、クエリ解釈部１１によって「テーブル定義」処理と判定された場合には、テーブル名、テーブルの各列の属性などの作成するテーブルに関する情報をシステム管理装置２に送信する。
【００１８】
システム管理装置２は、データベース制御部２１によりＮ個のデータベース装置に作成するテーブルに関する情報を送信する。
【００１９】
データベース装置３は、作成するテーブルに関する情報を記録部３１に記録し、完了通知をシステム管理装置２に返却する。
【００２０】
システム管理装置２は、Ｎ個のデータベース装置から正常に完了通知を受信したことを確認し、端末装置１に「テーブル定義」処理が正常に完了したことを知らせる。
【００２１】
端末装置１は、クエリ解釈部１１により、入力されたクエリに対応した応答をユーザに通知する。
【００２２】
［データ登録］
データ登録は、データを格納する操作である。
【００２３】
端末装置１に入力されたクエリ（例えばSQL文）が、クエリ解釈部１１によって「データ登録」処理と判定された場合には、データを登録するテーブル名をシステム管理装置２に送信する。
【００２４】
システム管理装置１は、少なくとも1個のデータベース装置３から対象のテーブルに関する情報であるテーブル情報を取得し、その情報を端末装置１に返却する。
【００２５】
端末装置１の判定部１３は、返却された情報から秘匿する列を判定する。すなわち、判定部１３は、データベースに登録しようとする情報を秘匿にするかどうかを判定する（ステップＡ１，図２）。
【００２６】
秘匿にすると判定された情報、言い換えれば秘匿する列に格納する情報は、端末装置１の秘匿部１２において秘密分散される。端末装置１は、秘密分散により断片に変換された情報と、秘匿にすると判定されなかった情報である、秘匿しない列に格納する平文の情報とを併せてシステム管理装置２に送信する。
【００２７】
このようにして、判定部１３において秘匿にすると判定された場合には、端末装置１の秘匿部１２は、その秘匿にする情報を秘密分散することによりＮ個の断片情報を生成しシステム管理装置に送信する（ステップＡ２，図２）。Ｎ個の断片情報は、それぞれＮ個のデータベース装置３に対応付けされている。
【００２８】
システム管理装置２は、端末装置１から受信したＮ個の断片情報をそれぞれＮ個のデータベース装置３に送信する（ステップＡ３，図２）。具体的には、システム管理装置２は、データベース制御部２１によりＮ個のデータベース装置３に「データ登録」処理に必要なテーブル名、登録する平文/断片データなどの情報を送信する。
【００２９】
データベース装置３は、システム管理装置２から受信したＮ個の断片情報をそれぞれ格納する（ステップＡ４，図２）。すなわち、各データベース装置３は、登録する断片情報を記録部３１に記録し、完了通知をシステム管理装置に返却する。
【００３０】
システム管理装置２は、Ｎ個のデータベース装置３から正常に完了通知を受信したことを確認し、端末装置１に「データ登録」処理が正常に完了したことを知らせる。
【００３１】
端末装置１は、クエリ解釈部１１により、入力されたクエリに対応した応答をユーザに通知する。
【００３２】
［データ検索］
データ検索は、格納されたデータから対象のデータを参照する操作である。
【００３３】
端末装置１に入力されたクエリ（例えばSQL文）が、クエリ解釈部１１によって「データ検索」処理と判定された場合には、データを検索するテーブル名をシステム管理装置２に送信する。
【００３４】
システム管理装置２は、少なくとも１個のデータベース装置３からデータ検索の対象となるテーブルに関する情報を取得し、その情報を端末装置１に返却する。
【００３５】
端末装置１の判定部１３は、データベースを参照するための検索条件の全部又は一部を秘匿にするかどうかを判定する（ステップＢ１）。すなわち、判定部１３は、返却された情報から実行する「データ検索」処理に秘密計算処理が含まれるかどうかを判定する。例えばある年齢以上の人のidを検索する場合には、その年齢が秘匿にされる。
【００３６】
また、判定部１３は、データベースから参照しようとする情報が秘匿にされているかどうかを判定する（ステップＢ２）。例えば、判定部１３は、検索対象の列に断片が含まれている場合には、データベースから参照しようとする情報が秘匿にされていると判定する。
【００３７】
判定部１３において検索条件の全部又は一部を秘匿にすると判定された場合には、端末装置１の秘匿部１２は、検索条件の全部又は一部を秘密分散することにより断片検索情報を生成しシステム管理装置２に送信する（ステップＢ３）。その際、判定部１３は、データベースを参照するための検索条件の全部又は一部を秘匿にするかどうかの判定結果と、データベースから参照しようとする情報が秘匿にされているかどうかの判定結果とについての情報をシステム管理装置２に送信してもよい。断片検索情報は、ＣをＫ以上Ｎ以下の正の整数として、Ｃ個生成される。各断片検索情報は、データベース装置３の何れかに対応付けされている。
【００３８】
（１）データベースを参照するための検索条件の全部又は一部を秘匿にすると判定されている場合、すなわち検索条件の全部又は一部を秘密分散することにより断片検索情報が生成されている場合には、システム管理装置２は、Ｃ個の断片検索情報のそれぞれを、対応するデータベース装置３に送信する（ステップＢ４）。
【００３９】
この場合、Ｃ個の断片検索情報をそれぞれ受信したＣ個のデータベース装置３は、上記Ｃ個の断片検索情報に対応するＣ個の断片情報を秘密計算により見つける（ステップＢ５）。
【００４０】
システム管理装置２は、見つかったＣ個の断片情報の中のＫ個の断片情報を端末装置１に送信する（ステップＢ６）。例えば、システム管理装置２は、Ｃ個の断片情報をそれぞれＣ個のデータベース装置３から受信して、受信したＣ個の断片情報の中のＫ個の断片情報を端末装置１に送信する。また、システム管理装置２は、見つかったＣ個の断片情報がそれぞれ格納されているＣ個のデータベース装置３の中のＫ個のデータベース装置を選択し、選択されたＫ個のデータベース装置３からそれぞれＫ個の断片情報を受信し、受信したＫ個の断片情報を端末装置１に送信してもよい。
【００４１】
端末装置１の復元部１４は、受信したＫ個の断片情報に基づいて元の情報を復元する（ステップＢ７）。その後、端末装置１のクエリ解釈部１１により、入力されたクエリに対応した応答がユーザに通知される。
【００４２】
（２）データベースを参照するための検索条件の全部又は一部を秘匿にすると判定されていない場合、かつ、データベースから参照しようとする情報が秘匿にされていると判定されている場合には、システム管理装置２は、Ｎ個のデータベース装置３の中のＫ個のデータベース装置３にそれぞれ格納されたＫ個の断片情報を読み込み端末装置１に送信する（ステップＢ６）。例えば、システム管理装置２は、Ｎ個の断片情報をそれぞれＮ個のデータベース装置３から受信して、受信したＮ個の断片情報の中のＫ個の断片情報を端末装置１に送信する。また、システム管理装置２は、Ｎ個のデータベース装置３の中のＫ個のデータベース装置３を選択し、選択されたＫ個のデータベース装置３からそれぞれＫ個の断片情報を受信し、受信したＫ個の断片情報を端末装置１に送信してもよい。
【００４３】
端末装置１の復元部１４は、受信したＫ個の断片情報に基づいて元の情報を復元する（ステップＢ７）。その後、端末装置１のクエリ解釈部１１により、入力されたクエリに対応した応答がユーザに通知される。
【００４４】
この（２）の場合には、図３のステップＢ３からステップＢ５の処理は行われない。
【００４５】
（３）データベースを参照するための検索条件の全部又は一部を秘匿にすると判定されていない場合、かつ、データベースから参照しようとする情報が秘匿にされていると判定されていない場合には、システム管理装置２は、少なくとも１個のデータベース装置３に検索命令を送信する。
【００４６】
検索命令を受けたデータベース装置３は、記録部３１から検索対象情報を取得し、検索結果をシステム管理装置２に返却する。
【００４７】
システム管理装置２は、データベース装置３からの結果を端末装置１に返却する。
【００４８】
その後、端末装置１のクエリ解釈部１１により、入力されたクエリに対応した応答がユーザに通知される。
【００４９】
この（３）の場合には、図３のステップＢ３からステップＢ７の処理は行われない。
【００５０】
［データ更新］
データ更新は、格納された対象のデータを更新する操作である。
【００５１】
端末装置１に入力されたクエリ（例えばSQL文）が、クエリ解釈部１１によって「データ更新」処理と判定された場合には、データを更新するテーブル名をシステム管理装置２に送信する。
【００５２】
システム管理装置２は、少なくとも1個のデータベース装置３から対象のテーブルに関する情報を取得し、その情報を端末装置１に返却する。
【００５３】
端末装置１は、返却された情報から秘匿する列および実行する「データ更新」処理に秘密計算処理が含まれるかを判定する。秘匿する列に格納する情報は、端末装置１の秘匿部１２により秘密分散される。秘密分散により断片に変換された情報と、秘匿しない列に格納する平文の情報および秘密計算処理の有無はシステム管理装置２に送信される。例えば住所、電話番号等の秘匿にすべきプライベートな情報を秘匿にしたまま更新する場合に、「データ更新」処理に秘密計算が行われる。
【００５４】
システム管理装置２は、データベース制御部２１によりＮ個のデータベース装置３に「データ更新」処理に必要なテーブル名、更新する平文/秘匿データなどの情報を送信する。
【００５５】
データベース装置３は、秘密計算処理が含まれる場合のみ秘密計算処理部３２による秘密計算処理を実施し、更新する情報を記録部３１に記録し、完了通知をシステム管理装置２に返却する。
【００５６】
システム管理装置２は、Ｎ個のデータベース装置から正常に完了通知を受信したことを確認し、端末装置１に「テーブル更新」処理が正常に完了したことを知らせる。
【００５７】
端末装置１は、クエリ解釈部１１により、入力されたクエリに対応した応答をユーザに通知する。
【００５８】
［データ削除］
データ削除は、格納された対象のデータを削除する操作である。
【００５９】
端末装置１に入力されたクエリ（例えばSQL文）が、クエリ解釈部１１によって「データ削除」処理と判定された場合には、データを削除するテーブル名をシステム管理装置２に送信する。
【００６０】
システム管理装置２は、少なくとも1個のデータベース装置３から対象のテーブルに関する情報を取得し、その情報を端末装置１に返却する。
【００６１】
端末装置１の判定部１３は、返却された情報から「データ削除」処理に秘密計算処理が含まれるか判定し、システム管理装置２のデータベース制御部２１によりＮ個のデータベース装置３に「データ削除」処理に必要なテーブル名、削除条件などの情報を送信する。例えば秘匿にされたid等の情報を秘匿にされた状態のまま削除する場合に、「データ削除」処理に秘密計算処理が行われる。
【００６２】
データベース装置３は、秘密計算処理が含まれる場合のみ秘密計算処理部３２による秘密計算処理を実施し、削除する情報を記録部３１から削除し、完了通知をシステム管理装置２に返却する。
【００６３】
システム管理装置２は、Ｎ個のデータベース装置から正常に完了通知を受信したことを確認し端末装置１に「データ削除」処理が正常に完了したことを知らせる。
【００６４】
端末装置１は、クエリ解釈部１１により、入力されたクエリに対応した応答をユーザに通知する。
【００６５】
［テーブル削除］
テーブル削除は、定義された対象の表を削除する操作である。
【００６６】
端末装置１に入力されたクエリ（例えばSQL文）は、クエリ解釈部１１によって「テーブル削除」処理と判定され、削除するテーブル名をシステム管理装置２に送信する。
【００６７】
システム管理装置２は、データベース制御部２１によりＮ個のデータベース装置３に「テーブル削除」処理に必要なテーブル名などの情報を送信する。
【００６８】
データベース装置３は、削除する情報を記録部から削除し、完了通知をシステム管理装置２に返却する。
【００６９】
システム管理装置２は、Ｎ個のデータベース装置３から正常に完了通知を受信したことを確認し、端末装置１に「テーブル削除」処理が正常に完了したことを知らせる。
【００７０】
端末装置１は、クエリ解釈部１１により、入力されたクエリに対応した応答をユーザに通知する。
【００７１】
［変形例等］
端末装置１のクエリ解釈部１１は、一般的なデータベース操作命令（例えば、SQL文）に対応していてもよい。これにより、データベースを利用する外部プログラムを改造せずにセキュアなデータベースを利用することができる。
【００７２】
例えば、外部プログラムが一般的なWeb三層モデルのシステム上に存在する場合、データベースに対する操作命令はアプリケーション・サーバからデータベース・サーバに送信されるため、アプリケーション・サーバからのデータベース操作命令を端末装置１に送信することで、アプリケーション・サーバ上の外部プログラムを改造することなくセキュアなデータベースを利用できる。
【００７３】
また、データベース装置３として、既存のデータベース装置を用いてもよい。これにより、コストの削減を行うことができる。
【００７４】
データベースの機能は、秘密計算を含む操作と秘密計算を含まない操作に分けられる。例えば、秘匿した年齢に対する検索には秘密計算が含まれるが、条件の指定されていない検索には秘密計算が含まれない。秘密計算が含まれない操作は、一般のデータベースの操作と同等であるため、既存のデータベースの該当機能をそのまま利用することで処理可能である。秘密計算が含まれる場合にのみ、秘密計算処理部３２が処理を行えばよい。例えば、既存のデータベースに備えられた外部機能呼出部により呼び出されれることにより、秘密計算処理部３２が処理を行う。
【００７５】
これにより、秘密計算が含まれない操作についてのプログラムが、既存データベースで代用されるため、不要となり、発明全体のプログラムの量を削減することができる。
【００７６】
上記の例では、判定部１３は、端末装置１に備えられているが、判定部１３は端末装置１の外部に備えられていてもよい。例えば、判定部１３は、システム管理装置２に備えられていてもよい。
【００７７】
[プログラム及び記録媒体]
データベースシステム、データベース処理方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００７８】
また、データベースシステムを構成する各装置又は各部における各処理をコンピュータによって実現する場合、その各装置又は各部が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、その各処理がコンピュータ上で実現される。
【００７９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００８０】
また、各装置又は各部は、上記の通り、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【００８１】
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【図１】
2016181904.tif 000003
【図２】
2016181904.tif 000004
【図３】
2016181904.tif 000005
【手続補正書】
【提出日】平成29年10月30日(2017.10.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００２
【補正方法】変更
【補正の内容】
【０００２】
データベースに格納されるデータを秘匿する手法として、主に（１）透過的暗号化による暗号化、（２）検索可能暗号などによる暗号化、（３）完全準同型暗号による暗号化の３種類の手法が知られている。
（１）透過的暗号化は、データを暗号化してからデータベースに格納することでデータベースに格納されたデータを秘匿するものである（例えば、非特許文献１参照。）。
（２）検索可能暗号などによる暗号化は、暗号文の状態で特定の処理を行うことで、データを秘匿した状態での検索や、暗号方式に応じた操作を可能にするものである（例えば、非特許文献２参照。）。
（３）完全準同型暗号化による暗号化は、暗号文の状態で任意の処理を行うことにより、データを秘匿した状態での操作が可能にするものである（例えば、非特許文献３参照。）。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２４
【補正方法】変更
【補正の内容】
【００２４】
システム管理装置２は、少なくとも1個のデータベース装置３から対象のテーブルに関する情報であるテーブル情報を取得し、その情報を端末装置１に返却する。
【国際調査報告】
2016181904.tif 000006
2016181904.tif 000007
2016181904.tif 000008
2016181904.tif 000009