(57)【要約】【課題】電子文書の改ざんが検知された際に、電子文書内のどの重要情報が改ざんされたのか、もしくはデータ処理ミスによって単に非重要情報にデータ変更がされただけなのかを検知可能とする。【解決手段】重要情報取得部１０３は、電子文書内の重要情報（日付、金額、発行先など）を取得する。電子署名生成部１０４は、各重要情報に対する電子署名データ（署名値、領域の属性情報など）を生成し、さらに、電子文書全体に対する電子署名データも生成する。生成した全ての電子署名データを画像データと関連付けてデータ保存部１０６に保存する。【選択図】図１
2009088964.tif 000002
【特許請求の範囲】
【請求項１】
署名対象の電子文書から重要情報を取得する手段と、取得した各重要情報に対する電子署名を生成する手段と、電子文書全体に対する電子署名を生成する手段とを備えたことを特徴とする電子署名装置。
【請求項２】
前記重要情報を取得する手段は、署名対象の電子文書に含まれる手書き情報を取得することを特徴とする請求項１記載の電子署名装置。
【請求項３】
前記重要情報を取得する手段は、署名対象の電子文書に含まれる数値情報を取得することを特徴とする請求項１記載の電子署名装置。
【請求項４】
前記重要情報を取得する手段は、署名対象の電子文書の定型フォーム情報から重要情報を特定して取得することを特徴とする請求項１記載の電子署名装置。
【請求項５】
前記重要情報を取得する手段は、重要情報の指定をするよう署名者に促し、その結果得られる重要情報指定情報から重要情報を特定して取得することを特徴とする請求項１記載の電子署名装置。
【請求項６】
請求項１乃至５のいずれか１項に記載の電子署名装置により生成された電子署名を検証する電子署名検証装置であって、電子文書全体に対する電子署名を検証する手段と、前記電子文書全体に対する電子署名を検証する手段によって、電子文書に改ざんがあると判定された場合に各重要情報に対する電子署名を検証する手段を備えたことを特徴とする電子署名検証装置。
【請求項７】
前記各重要情報に対する電子署名を検証する手段は、文書全体に対する署名者と各重要情報に対する署名者が同じであるか否かを確認する手段と、前記各重要情報に対するデータ変更がなされたか否かを確認する手段からなることを特徴とする請求項６記載の電子署名検証装置。
【請求項８】
署名対象の電子文書から重要情報を取得するステップと、取得した各重要情報に対する電子署名を生成するステップと、電子文書全体に対する電子署名を生成するステップとを実行することを特徴とする電子署名方法。
【請求項９】
請求項１乃至５のいずれか１項に記載の電子署名装置の各手段として、コンピュータを機能させるためのプログラム。
【請求項１０】
請求項６または７記載の電子署名検証装置の各手段として、コンピュータを機能させるためのプログラム。
【請求項１１】
請求項１乃至５のいずれか１項に記載の電子署名装置の各手段として、コンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１２】
請求項６または７記載の電子署名検証装置の各手段として、コンピュータを機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子文書の改ざんを検知する電子署名装置、電子署名検証装置、電子署名方法、プログラムおよび記録媒体に関する。
【背景技術】
【０００２】
２００５年４月１日から施行された、通称ｅ−文書法は、これまで紙での保存が義務付けられていた書類を電子データとして保存することを容認する法律である。ただし書類の種類によっては電子保存するに当たっての満たすべき要件が各書類の管轄省庁により定められている。例えば税務関係書類・医療関係書類には、書類を電子化したデータが改ざんされていない事を後で保証できる形で保存しておく要件が課されている。
【０００３】
電子文書の改ざんを検知する技術としては、従来から電子署名がよく知られており、以上の背景を受けてその重要性が益々認識されるようになってきている。
【０００４】
例えば、書類をスキャンして生成した画像データに対して電子署名を付与し、データの改ざんを検知する技術として、特許文献１がある。特許文献１では、紙文書をスキャンして生成した電子文書に対して２種類の電子署名（スキャナ装置に固有の秘密鍵を用いて生成する電子署名と、スキャン作業者に固有の秘密鍵（ＩＣカードに格納）を用いて生成する電子署名）を付与する。特許文献１により、画像データが改ざんされたか否かを検知をすることが可能となるが、画像データのどの部分が改ざんされたかを検知することは出来ない。
【０００５】
【特許文献１】特開２００６−３３７２８号公報
【特許文献２】特開平１１−８８３２３号公報
【特許文献３】特開２００１−１６７０８６号公報
【特許文献４】特開２００４−３６４０７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、画像データには、ユーザにとって重要な情報と全く重要でない情報が同時に含まれており、該画像データが改ざんされたことを検知できた後には、画像データのどの部分が改ざんされたかに検知の対象が移る。
【０００７】
領収書の画像を例に取ると、日付・金額・氏名などは重要情報であり、単なる空白部分や定型フォームのテキスト部分は全く重要でない情報である（図１３を参照）。また、電子文書のどの部分が改ざんされたかを検知する技術としては、特許文献２がある。特許文献２では、テキストデータからなる電子文書を部分文書に分解し、それぞれの部分文書に対する電子署名を作成する。これにより電子文書が改ざんされた場合に、電子文書のどの部分が改ざんされたのかを検知することが出来る。電子文書の部分文書への分解は、テキストデータ中の特定記号（改行コード、改頁コード、句読点など）を区切り文字として規定し、使用することで行う。しかし、特許文献２は、テキストデータのみからなる電子文書に限って適用可能であり、画像データを含む電子文書に適用することは出来ない。さらに特許文献２は、電子文書の分割を情報の重要度に基づいて行っていないため、分割した結果得られる部分文書内に重要情報が複数含まれる場合があり得る。その場合、どの重要情報が改ざんされたのか、もしくはデータ処理ミスにより非重要情報のどこかにデータ変更があったのかを判別できない問題がある。
【０００８】
ＸＭＬ，ＳＧＭＬなどの構造化文書を構成する部分文書ごとに電子署名を作成し、部分文書とそれに対応する電子署名を対応付けて管理することにより、部分文書ごとの改ざん検知を実現する特許文献３、部分文書に対する電子署名をひとまとめにしたデータに対する電子署名も生成することで、部分文書のすりかえ攻撃に対する脆弱性を克服した特許文献４も、特許文献２と同様の問題がある。
【０００９】
本発明は上記した課題に鑑みてなされたもので、
本発明の目的は、電子文書の改ざんが検知された際に、電子文書内のどの重要情報が改ざんされたのか、もしくはデータ処理ミスによって単に非重要情報にデータ変更がされただけなのかを検知可能な電子署名装置、電子署名検証装置、電子署名方法、プログラムおよび記録媒体を提供することにある。
【課題を解決するための手段】
【００１０】
まず、文書に応じた重要情報が何かを規定しておく。その上で本発明による電子署名装置／方法は、重要情報の性質に応じた方法で電子文書内の重要情報を取得し、各重要情報に対する電子署名を生成する。また電子文書全体に対する電子署名も生成する。
【発明の効果】
【００１１】
本発明によれば、電子文書全体に対する電子署名を検証することで、電子文書が改ざんされたか否かを検知することが出来る。また、電子文書の改ざんを検知したら、その次に各重要情報に対する電子署名をおのおの検証することで、どの重要情報が改ざんされたのか、もしくはデータ処理ミスによって単に非重要情報にデータ変更があっただけなのかを検知することが出来る。
【発明を実施するための最良の形態】
【００１２】
以下、発明の実施の形態について図面により詳細に説明する。
【００１３】
図１は、本発明の電子署名装置の構成を示す。図１において、１０１は装置全体を制御する制御部、１０２は表示部、１０３は重要情報取得部、１０４は電子署名生成部、１０５は電子署名検証部、１０６はデータ保存部である。
【００１４】
署名生成：図２は、重要情報が手書き情報の場合の署名対象の電子文書と電子署名の関係を示す。図２に示す署名対象の電子文書は、領収書の画像データである。図３は、本発明の署名付与処理のフローチャートである。
【００１５】
図１〜３を用いて本発明の電子署名方法を説明する。まず、重要情報取得部１０３は、電子文書内の重要情報を特定する（ステップ１）。一般に領収書にとっての重要情報とは日付、金額、発行先、代金名であり、図２の場合はそれらの情報が全て手書きで入力される運用と仮定する。すなわち、図２では、手書き情報が重要情報である。従って、最初に画像データから、手書き領域抽出技術により手書き領域を抽出する。その結果として６つの領域が抽出される。それらを抽出された順に領域Ａ、領域Ｂ、・・・、領域Ｆと名付ける。次に、電子署名生成部１０４は、抽出された領域（画像データ）に対する電子署名データを生成する（ステップ２）。電子署名データは署名値、領域の属性情報（詳細は後述）、署名属性情報（詳細は後述）からなる。さらに、電子署名生成部１０４は、画像データ全体に対する電子署名データも生成する（ステップ３）。そして、生成した全ての電子署名データを画像データと関連付けてデータ保存部１０６に保存する（ステップ４）。
【００１６】
以上説明した、本発明の電子署名方法の特徴は、重要情報を抽出し、抽出した重要情報ごとに電子署名を生成する点である。
【００１７】
図２は、署名対象の電子文書が画像データのみからなるが、署名対象の電子文書はテキストデータのみでもよく、もちろん画像データとテキストデータが混在したものでも良い。
【００１８】
図４は、署名対象の電子文書の構造を示す。つまり、電子文書は画像データとテキストデータを任意の割合で含んでいる。さらに、図４は電子文書を扱う署名機能付きアプリケーションの外観を示す。該アプリケーションは中央に電子文書の表示領域を持っており、画像データ、テキストデータ、およびその混在データを表示部１０２に表示することが出来る。図４では画像データを含む電子ファイル内に署名データを全て埋め込むことによって、画像データと署名データを関連付けている。署名データを別ファイルとして、画像データとの対応関係を、画像データを含む電子ファイル内、もしくは署名データファイル内に記述することで関連付けるのものでも良い（ＸＭＬ署名を意識した記述）。
【００１９】
図５は、図４のアプリケーションが持つ機能の一覧を示す。図５の重要情報取得機能／部は、署名対象とする電子文書の性質によって機能の実現方法が異なる。
【００２０】
署名対象の電子文書（画像データ）が数値情報を含む場合、重要情報取得機能／部１０３は数値領域抽出技術により数値領域を抽出し、また、署名対象の電子文書（テキストデータ）が数値情報を含む場合、重要情報取得機能／部１０３はＯＣＲ技術により数値データを抽出する。さらに、署名対象の電子文書が定型フォームである場合には、重要情報取得機能／部１０３はフォーム情報を作成・入力することで重要情報を認識し、署名対象の電子文書が非定型フォームであり、手書き・数値情報以外に重要情報を持つ場合には、重要情報取得機能／部１０３は署名時にユーザへ重要情報を指定させ、その結果得られる重要情報指定情報から重要情報を特定して取得する。
【００２１】
署名対象の電子文書が上記した情報や性質を任意の組み合わせで複数備えている場合は、重要情報取得機能／部１０３は上記した機能を適宜組み合わせて機能を実現する。
【００２２】
署名検証：上記した方法で付与した電子署名の検証方法を説明する。図６は、署名検証処理のフローチャートを示す。図７は、文書全体に対する署名検証処理のフローチャートを示し、図８は、各重要情報に対する署名検証処理のフローチャートを示す。
【００２３】
図６の署名検証処理を説明する。制御部１０１から署名検証処理が要求されると、電子署名検証部１０５は文書全体に対する署名を検証する（ステップ１０）。その結果、署名が有効でないと判定した場合には（ステップ１１でＮｏ）、その旨をユーザに通知して処理を終了する（ステップ１２）。また、署名が有効で（ステップ１１でＹｅｓ）、文書に改ざんがないと判定した場合にも（ステップ１３でＮｏ）、その旨をユーザに通知して処理を終了する（ステップ１４）。文書に改ざんがあると判定した場合には（ステップ１３でＹｅｓ）、各重要情報に対して生成した署名の検証を順次行っていく（ステップ１５）。各重要情報が改ざんされたか否かをユーザに通知し（ステップ１７、１８）、未検証の署名がなくなった時点で（ステップ１９）、署名検証処理を終了する。
【００２４】
次に、図７の文書全体に対する署名検証処理を説明する。まず、署名に使用した署名鍵が有効期限内であるかどうか、また署名鍵が失効されていないかどうかをチェックして署名鍵の有効性を判定する（ステップ２１）。署名鍵の有効期限は、署名鍵と対となる公開鍵を含んだ公開鍵証明書に記載してある。公開鍵証明書は図２の署名属性情報に含まれている。また失効の有無のチェックはＣＲＬ（失効証明書リスト）に該公開鍵証明書のＩＤが含まれていないかを見ることでチェックできる。ＣＲＬも通常、署名属性情報に含まれている。含まれていない場合には、署名検証時にＣＡ（認証局）よりダウンロードする。この場合、ダウンロード先は公開鍵証明書に記載してある。署名鍵が有効でない場合には（ステップ２１でＮｏ）、署名が有効でないと判定して（ステップ２２）、処理を終える。
【００２５】
署名鍵が有効な場合（ステップ２１でＹｅｓ）、文書の内容が変更されているか否かを判定する（ステップ２３）。すなわち、文書全体のハッシュ値を取り、それと図２の署名値を公開鍵で復号して得られるハッシュ値を比較する。比較した結果、２つのデータが全く同じであれば文書の内容は変更されていないので文書は改ざんされていないと判定し（ステップ２５）、そうでなければ文書は改ざんされたと判定して（ステップ２４）、処理を終える。
【００２６】
図８の各重要情報に対する署名検証処理を説明する。まず、重要情報に対する署名者と文書全体に対する署名者が同じかどうかをチェックする（ステップ３１）。これは各署名の署名属性情報に含まれる公開鍵証明書のサブジェクトを比較することでチェックできる。同じでない場合（ステップ３１でＮｏ）、重要情報とそれに対応する署名が偽のものとすり替えられたと考えることが出来るため、重要情報は改ざんされたと判定する（ステップ３２）。署名者が同じである場合には（ステップ３１でＹｅｓ）、重要情報の内容が変更されていないかを図７の場合と同様にしてチェックする（ステップ３３）。内容が変更されている場合には重要情報が改ざんされたと判定し（ステップ３４）、そうでなければ改ざんされていないと判定して（ステップ３５）、処理を終了する。署名鍵の有効性は、各重要情報に対する署名検証処理を実行する前の、文書全体に対する署名検証時点で有効であることが確認されているので、改めて確認する必要はない。
【００２７】
図４のアプリケーションが署名の検証結果をどのように表示するかを例示する。図９は、文書に改ざんが無い場合の結果表示である。画像データの表示領域の左上隅に改ざんが無い旨を表示している。図１０は、金額情報が改ざんされた場合の結果表示である。画像データの表示領域の左上隅に改ざんが有る旨を表示し、さらにどの重要情報が改ざんされたのかが一目でわかるよう、重要情報ごとに改ざんされたか否かを表示（ＯＫ！、ＮＧ！）している。図１１は、非重要情報にデータの不整合が発生した場合の結果表示である。この場合、攻撃者がわざわざ非重要情報を改ざんするとは考えにくいので、システムのデータ処理に問題があり、どこかのデータが意図せずに変更されたと考えられる。従って、この場合にはシステムのデータ処理に問題がないかを確認した方がよい。
【００２８】
図２の署名対象の電子文書と電子署名の関係に示す、領域の属性情報の例を図１２に示す。手書き領域情報、数値領域情報、定型フォーム情報、ユーザ入力情報のいずれか、もしくはそれらの組み合わせで重要情報を含む領域（重要領域）が特定されると、該領域の属性情報をそれぞれの署名データ内に含める。
【００２９】
属性情報は、大きく分けると「画像データ内の領域情報」と「アプリケーションの表示領域上の領域情報」の２つによって構成されている。画像データ内の領域情報は、重要領域の画像データ上での位置情報と大きさ情報からなる。位置情報は左上隅のピクセルの座標であり、大きさ情報は幅と高さからなる（単位：ピクセル）。アプリケーションの表示領域上の領域情報は、重要領域のアプリケーション表示領域上での位置情報と大きさ情報からなる。位置情報は左上隅のピクセルの座標であり、大きさ情報は幅と高さからなる（単位：ｃｍ、インチなど）。
【００３０】
領域の属性情報は署名生成時に作成され、検証時に利用される。この属性情報により、重要領域の画像データ上での位置とアプリケーション表示上での位置の対応付けを取ることが出来、その結果として図１０、１１のような重要領域毎の検証結果の表示が可能となる。
【００３１】
本発明は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施例の機能を実現することになる。
【００３２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。また、コンピュータが読出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００３３】
【図１】本発明の電子署名装置の構成を示す。
【図２】重要情報が手書き情報の場合の署名対象の電子文書と電子署名の関係を示す。
【図３】本発明の署名付与処理のフローチャートである。
【図４】電子文書とアプリケーションの関係を示す。
【図５】アプリケーションが持つ機能の一覧を示す。
【図６】署名検証処理の処理フローチャートを示す。
【図７】文書全体に対する署名検証処理のフローチャートを示す。
【図８】各重要情報に対する署名検証処理のフローチャートを示す。
【図９】文書に改ざんが無い場合の署名検証結果の表示例を示す。
【図１０】金額情報に改ざんがある場合の署名検証結果の表示例を示す。
【図１１】重要情報に改ざんが無い場合の署名検証結果の表示例を示す。
【図１２】領域の属性情報の例を示す。
【図１３】重要情報と非重要情報の例を示す。
【符号の説明】
【００３４】
１０１  制御部
１０２  表示部
１０３  重要情報取得部
１０４  電子署名生成部
１０５  電子署名検証部
１０６  データ保存部
【図１】
2009088964.tif 000003
【図２】
2009088964.tif 000004
【図３】
2009088964.tif 000005
【図４】
2009088964.tif 000006
【図５】
2009088964.tif 000007
【図６】
2009088964.tif 000008
【図７】
2009088964.tif 000009
【図８】
2009088964.tif 000010
【図９】
2009088964.tif 000011
【図１０】
2009088964.tif 000012
【図１１】
2009088964.tif 000013
【図１２】
2009088964.tif 000014
【図１３】
2009088964.tif 000015