(57)【要約】【課題】  従来技術における課題は、偽造困難な印刷物を発行する為には、特殊な用紙や特殊なインクが必要であった為、印刷場所や印刷装置を制限する必要があった。また、検証者端末は元本データを管理するデータベースに問い合わせる必要があるため、オンライン接続が必須であった。【解決手段】  台紙発行／管理者システムに、台紙の識別番号を管理する手段と、台紙データにコード化した識別番号を書き込む手段を設けた。さらに、証明書発行者システムに、台紙データに上書きする個別データに対して証明書発行者の電子署名を付与する手段と、暗号化した個別データを情報処理装置で読み取り可能なコード情報に置き換える手段と、個別データに画像データが含まれる場合は台紙の識別番号を電子透かしとして挿入する手段と、台紙データ上に前記処理を行なったコード情報と画像データ及び個別データとを重ならないように配置する手段とを設けた。【選択図】  図２
2005225072.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを使用して証明書を発行する方法であって，
証明書発行依頼者の個別情報を入力し，
証明書毎に異なる背景パターンを部分的にもつ台紙の電子データを作成し，
前記台紙の電子データの背景パターン上に個別情報を文字で上書きし，背景パターンと上書き文字との関係を台紙上に記入し，
前記電子データを証明書としてプリントする，
ステップを含む。
【請求項２】
請求項１に記載の証明書発行方法であって，
前記証明書台紙の背景パターンは，証明書毎に異なる情報をコード化し，ドットで表現したパターンである。
【請求項３】
請求項２に記載の証明書発行方法であって，
前記背景パターンと上書き文字との関係は，文字上書き前の背景パターンの総ドット数，文字によって上書きされたドット数を含む。
【請求項４】
請求項３に記載の証明書発行方法であって，
前記背景パターンと上書き文字との関係は，更に，文字によって上書きされたドットの座標情報を含む。
【請求項５】
請求項２に記載の証明書発行方法であって，
前記背景パターンと上書き文字との関係をコード化して，台紙上に記入する。
【請求項６】
請求項１に記載の証明書発行方法であって，更に，
台紙作成時情報と台紙作成時情報を保証する電子署名を台紙上に記入し，
前記個別情報を保証する電子署名を台紙上に記入する，
ステップを含む。
【請求項７】
証明書であって，
台紙に該証明書にユニークな背景パターンが部分的に印刷され，
該背景パターン上に個別情報が文字で上書きされ，
背景パターンと上書き文字との関係が台紙上に記入されている，
証明書。
【請求項８】
請求項１の方法で発行された証明書を検証する方法であって，
証明書を電子データに変換し，
証明書から背景パターン上に個別情報が文字で上書きされている領域を抽出し，
証明書に記入されている背景パターンと上書き文字との関係を読み出し，
該領域の背景パターンと文字が，前記読み出した関係を満足しているか否かをチェックし，
満足していないときに，証明書は無効であると判断する，
ステップを含む。
【請求項９】
証明書の発行システムであって，
証明書発行依頼者の個別情報を入力する依頼者端末と，
証明書毎に異なる背景パターンを部分的にもつ台紙の電子データを作成する台紙発行装置と，
前記台紙の電子データを前記台紙発行装置から受信し，背景パターン上に前記依頼者端末から受信した個別情報を文字で上書きし，背景パターンと上書き文字との関係を台紙上に記入する証明書発行装置と，
を含み，  
前記依頼者端末は，前記証明書発行装置から受信した電子データを証明書としてプリントする。
【請求項１０】
請求項９のシステムで発行された証明書を検証する装置であって，
証明書を電子データに変換する入力装置と，
証明書の背景パターンと上書き文字との関係を読み出す関係読み出し手段と，
証明書から背景パターン上に個別情報が文字で上書きされている領域を抽出する領域抽出手段と，
該領域の背景パターンと文字が，前記読み出した関係を満足しているか否かをチェックするチェック手段と，
満足していないときに，証明書は無効であると判断する判断手段，
とを含む。
【請求項１１】
コンピュータを使用して証明書を発行する方法であって，
証明書発行依頼者の個別情報を入力し，
台紙の電子データに個別情報を文字で書き，
予め決められた第1のルールに従って，文字で書かれた個別情報の背景部分を複数の色で塗りつぶし，
証明書毎に異なる情報を利用して，予め決められた第２のルールに従って，文字で書かれた個別情報の背景部分を更に塗り替え，
証明書識別番号と前記証明書毎に異なる情報を記憶し，
証明書識別番号を台紙の電子データに記入し，
前記電子データを証明書としてプリントする，
ステップを含む。
【請求項１２】
請求項１１に記載の証明書発行方法であって，
前記予め決められた第1のルールは，背景部分を等面積の矩形に分割し，矩形内の塗り潰された部分の位置と塗り潰されていない部分の色の対応を規定する。
【請求項１３】
請求項１２に記載の証明書発行方法であって，
前記証明書毎に異なる情報は，コード化されドットで表現したパターンに変換され，
前記予め決められた第２のルールは，第1のルールに従って塗った背景部分と該パターンの重なるドットの位置と色を抽出し，該ドットの位置を使用してボロノイ図を作成し，該色でボロノイ図の各領域を規定する。
【請求項１４】
請求項１１に記載の証明書発行方法であって，更に，
台紙作成時情報と台紙作成時情報を保証する電子署名を台紙上に記入し，
前記個別情報を保証する電子署名を台紙上に記入する，
ステップを含む。
【請求項１５】
証明書であって，
台紙に証明書識別番号が印刷され，
台紙に該証明書にユニークな背景パターンが部分的に複数の色を使用して印刷され，
該背景パターン上に個別情報が文字で上書きされている，
証明書。
【請求項１６】
クレーム１１の方法で発行された証明書を検証する方法であって，
(a) 証明書を電子データに変換し，
(b) 証明書上の証明書識別番号を読み出し，
(c) 証明書上に記入されている個別情報の文字を読み出し，
(d) 予め決められた第1のルールに従って，個別情報の背景部分を複数の色で塗りつぶし，
(e) 読み出した証明書識別番号から，証明書毎に異なる情報を入手し，予め決められた第２のルールに従って，前記個別情報の背景部分を更に塗り替え，
(f) 証明書の個別情報の背景部分と，ステップ（ｄ）と（e)で作成した背景部分を比較し， 
(g)両者が一致していないときに，証明書は無効であると判断する，
ステップを含む。
【請求項１７】
証明書の発行システムであって，
証明書発行依頼者の個別情報を入力する依頼者端末と，
台紙の電子データに個別情報を文字で書き，予め決められた第1のルールに従って，文字で書かれた個別情報の背景部分を複数の色で塗りつぶし，証明書毎に異なる情報を利用して，予め決められた第２のルールに従って，文字で書かれた個別情報の背景部分を更に塗り替え，証明書識別番号と前記証明書毎に異なる情報を記憶し，証明書識別番号を台紙の電子データに記入する証明書発行装置と，
を含み，  
前記依頼者端末は，前記証明書発行装置から受信した電子データを証明書としてプリントする。
【請求項１８】
請求項１７のシステムで発行された証明書を検証する装置であって，
証明書を電子データに変換する入力装置と，
証明書上の証明書識別番号を読み出す識別番号読み出し手段と，
証明書上の個別情報の文字を読み出す文字読み出し手段と，
予め決められた第1のルールに従って，個別情報の背景部分を複数の色で塗りつぶす第1背景塗りつぶし手段と，
証明書識別番号から，証明書毎に異なる情報を入手し，予め決められた第２のルールに従って，文字で書かれた個別情報の背景部分を更に塗り替える第2背景塗りつぶし手段と，
第2背景塗りつぶし手段で作成した背景部分を含む領域をプリントする出力手段，
を含む。
【請求項１９】
請求項１８の証明書を検証する装置であって，更に，
証明書上の個別情報の背景部分と，第2背景塗りつぶし手段で作成した背景部分を含む領域を比較する比較手段と， 
両者が一致していないときに，証明書は無効であると判断する判断手段，
を含む。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、証明書(certificate)を作成する技術および証明書を検証(verify)する技術に関する。特に、オンラインで交付された証明書データを利用者のプリンタで印刷することを可能とする証明書発行方法と、検証者が証明書発行者に問い合わせをすることなく印刷物の真贋を検証することを可能とする証明書検証方法に関する。  本発明は、ソフトウエアを含む製品の取引を、ネットワークを利用して仲介するための技術に関する。その中でも特に、取引において、製品を供給する者（組織）もしくはこの製品を特定するための技術に関する。
【背景技術】
【０００２】
電子証明書に関する従来技術には、以下のものがある。例えば、特許文献１のように，印刷物の真贋や有効性確認をオフラインで行なうものがある。また、特許文献２のように，証明を求める申請者側でプリントした印刷物を公的証明書として使用するものがある。さらに、特許文献３のように，個人を特定することができる情報と証明書データを関連付けて管理するデータベースと、キー情報をもとにして証明書データを検索する技術もある。
【０００３】
【特許文献１】特開2001-134672号公報
【０００４】
【特許文献２】特開2001-357154号公報
【特許文献３】特開2002-279099号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の第1の目的は、特殊な用紙や特殊な印刷装置を使うことなく、一定の機能を満たすプリンタであれば、該プリンタからオンラインで証明書を発行できるシステムや方法を提供することである。
【０００６】
本発明の第2の目的は、検証者が簡単に証明書の有効性を検証できるシステムや方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明は、これらの目的を達成するための証明書を発行する方法であって，証明書発行依頼者の個別情報(individual information)を入力し，証明書毎に異なる背景パターンを部分的にもつ台紙(board)の電子データを作成し，前記台紙の電子データの背景パターン上に個別情報を文字で上書きし，背景パターンと上書き文字との関係を台紙上に記入し，前記電子データを証明書としてプリントするステップを含む。
【０００８】
また，証明書の検証する方法であって，証明書を電子データに変換し，証明書上の背景パターンと上書き文字との関係を読み出し，証明書から背景パターン上に個別情報が文字で上書きされている領域を抽出し，該領域の背景パターンと文字が前記読み出した関係を満足しているか否かをチェックし，満足していないときに証明書は無効であると判断するステップを含む。
【発明の効果】
【０００９】
本発明によれば、特殊なプリンタ、用紙を使用しなくとも、証明書を発行可能とできる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施例を詳細に説明する。まず、第１の実施例について、説明する。
【００１１】
(1) システム構成
図2は、証明書発行および検証システムの接続関係を示すシステム構成図であり，証明書を発行する証明書発行システム２００，証明書の台紙を作成する台紙発行システム２１０，証明書の発行を依頼する依頼者システム２２０，証明書の有効性を検証する検証者システム２３０を含む。図２に示す各システムは、コンピュータであり、記憶媒体に格納されるプログラムをメモリに読み出し、プロセッサでプログラムに従った処理を実行する。
【００１２】
証明書発行システム２００と台紙発行システム２１０と依頼者システム２２０とはネットワーク２４０で繋がっている。検証者システム２３０はネットワーク２４０と常時接続している必要はないが，検証のレベルにより接続できる事が望ましい。
【００１３】
これらのシステムは，論理的な装置であり，証明書発行システム２００と台紙発行システム２１０は，同じコンピュータで実現されても良い。さらに，証明書発行システム２００が依頼者システム２２０を含んでも良い。
【００１４】
図１０は証明書発行システム２００の構成図である。証明書発行システム２００は，ＣＰＵ１０００，通信制御装置１０１０，メインメモリ１０２０，ディスク装置１０３０，バス１０４０を含む。ディスク装置１０３０は，個々の証明書発行のためのデータ１０３１−１０３７をテーブルの形で記憶し，証明書発行プログラムを記憶する。証明書発行プログラムは、メインメモリ１０２０にロードされ，ＣＰＵ１０００によって実行される。
【００１５】
図９は台紙発行システム２１０の構成図である。台紙発行システム２１０は，ＣＰＵ９００，通信制御装置９１０，メインメモリ９２０，ディスク装置９３０，バス９４０を含む。ディスク装置９３０は，個々の台紙発行のためのデータ９３１−９３６をテーブルの形で記憶し，台紙発行プログラムを記憶する。台紙発行プログラムは、メインメモリ９２０にロードされ，ＣＰＵ９００によって実行される。
【００１６】
図１２は依頼者システム２２０の構成図である。依頼者システム２２０は，ＣＰＵ１２００，通信制御装置１２１０，メインメモリ１２２０，キーボードやスキャナなどの入力装置１２４０，表示装置１２５０，プリンタなどの出力装置１２６０，バス１２３０を含む。
【００１７】
図１１は検証者システム２３０の構成図である。検証者システム２３０は，ＣＰＵ１１００，通信制御装置１１１０，メインメモリ１１２０，ディスク装置１１３０，バス１１４０，スキャナなどの入力装置１１５０を含む。ディスク装置１０３０は，証明書検証のためのデータ１１３１−１１３４をテーブルの形で記憶してもよく，さらに検証プログラムを記憶する。検証プログラムは、メインメモリ１１２０にロードされ，ＣＰＵ１１００によって実行される。
【００１８】
（２）証明書
図１は、オンライン発行される証明書の例を示した説明図である。図1の証明書１００は、免許証（driving license）を例にしたものである。通常、証明書100には、顔写真を貼る領域１１０、住所などの個人に関係したデータを記載する領域１２０、許可証の種類や有効期限を記載する領域１３０、それ以外の部分に発行部署の代表者の署名や印が記載されている。その他の証明書の例として，営業許可証，身分証明書，パスポートがあり，証明書により，記載されるデータは異なる。
【００１９】
図3及び図4は、図１に偽造防止のために加えるデータを示した説明図である。
【００２０】
図3について説明する。図3では、図１で示したデータ領域以外の領域に、文字情報を記載する領域３００とコード情報を書き込む領域３３０を設けている。ここで、文字情報とは英数・かな・漢字等の文字で表現された情報であり、人間が直接に読み取ることができるが、コード情報とはバーコードや2次元コードのような情報処理装置を使って読み取ることができる情報を指す。
【００２１】
なお、2次元コードとは、バーコードを積み重ねたスタック型と、同じ大きさの
セルを黒白で縦横に配置したマトリックス型がある。これら以外の２次元バーコードおよびそれと同様に情報を記録するコードであっても良い。さらに、電子透かしのように紙面全体に目立たないように情報を記録しても良い。
【００２２】
また、文字情報を記載する領域３００とコード情報を書き込む領域３３０は、それぞれ２つの領域に分けられている。１つの領域３１０と３４０には、台紙を管理する為の台紙ＩＤ、台紙発行時刻及び台紙発行時の署名等のデータが台紙発行システム２１０によって文字とコードでそれぞれ記載される。もう１つの領域３２０と３５０には、個別情報書き込み時の署名，検証のためのデータ等のデータが証明書発行システム２００によって文字とコードでそれぞれ記載される。
【００２３】
図4は、図1の領域１２０と領域１３０に台紙発行システム２１０によって施される処理を示した説明図である。台紙発行システム２１０において、台紙ＩＤ，台紙発行時刻及び台紙発行時の署名データ等のデータ４００をコード化し、領域１２０に書き込んだ時のイメージを示すものである。このイメージを背景として，文字情報が上書きされる。
【００２４】
領域１２０の一部領域４１０を拡大すると、黒いドットとして表示される画素４２０と、空白として表現される画素４３０とがある。例えば、文字が８ビットで表現されるとしたとき、このデータを１６進数で表現すると２桁になる。１６進数１桁を４ドット×４ドットの四角で表現し，四角内に１つの黒ドットの位置で０から１５の値を表す。したがって，四角２つ（32ドット）で１文字を表現することができる。データ４００は、複数の文字列で構成されるので、上記の方法でコード化すると領域１２０は４１０に示すパターンで塗潰される。ここでは、データ４００を単純にコード化する例を述べたが、データの偽造を防ぐため、データ４００を暗号化した上で、コード化しても良い。また、領域全体をパターンで埋めるためにデータを繰り返し記載しても良い。ちなみに上書きされる文字の大きさは，1文字120ドット×120ドットであるが，他の大きさの文字であってもよい。
【００２５】
図8は、領域１２０,１３０の背景パターンの他の例の説明図である。図８では、塗潰し領域を５ドット×５ドットの四角８００に分割し、そのマトリックスの左上の画素（８１０，８３０，８４０，８５０）が16進コードの分割基準点として必ず塗潰されるものとする。そして，四角８００内の右下の１６ドットを前述の４×４の四角に対応させる。このようにすると、文字列の情報は画素８２０，８６０，８７０，８８０のように無秩序に分布することになるが、基準点である画素８１０，８３０，８４０，８５０は規則的に配列される為、データの検出が容易になる。
【００２６】
図5は、コード化したパターンで領域を塗潰す方法について示した例の説明図である。データ５１０の内容をコード化して，繰り返し領域１２０を塗潰す場合、同じパターンを何度も繰り返し使うことになる。例えば、パターン５２０とパターン５３０が同じだと分かってしまうと、パターン５２０の一部が上書き文字によって消されたとしても、パターン５３０を使って上書き文字を消し去ることが可能になる。これを防止する方法として、内容５１０を暗号化する為に台紙発行システム２１０が数種類の秘密鍵を用意し、秘密鍵１（５５０）で暗号化した暗号データ１を作成し、これをコード化したパターンを領域５２０に描く。さらに、暗号データ１を秘密鍵２（５６０）で暗号化した暗号データ２を作成し、これをコード化したパターンを領域５３０に描く。このような処理を繰り返すことによって領域１２０を塗潰す。このようにすると、領域５２０を塗潰したパターンと領域５３０を塗潰したパターンは異なることになるので、前記のような不正はできなくなる。図５では，秘密鍵ｋ＋１の代わりに埋め込みID  ５８０を使用した演算処理を行っているが，この埋め込みIDは一種の乱数である。
【００２７】
秘密鍵は１つであっても良いし，２つの秘密鍵を交代に使用しても良い。埋め込みIDは使用しなくても良い。
【００２８】
（３）証明書の発行
図６は、証明書をオンラインで発行するプロセスを示す基本的な処理フローである。
【００２９】
依頼者システム２２０は，証明書の要求者から，住所，氏名，写真などの個人情報を受け付ける。依頼者システム２２０は，個人認証を行う装置を持っていても良い。依頼者システム２２０は，受け付けた個人情報と証明書の種類と有効期限などのデータを含む，個別情報を電子データの形で証明書発行システム２００に送信する。
【００３０】
証明書発行システム２００は、図6のステップ６００において、依頼者システム２２０から証明書発行依頼を受け付ける。そして、証明書発行システム２００は、ステップ６１０において、台紙発行システム２１０に対して証明書の種類を特定して，台紙の発行を依頼する。
【００３１】
ステップ６１０の依頼に対し、台紙発行システム２１０は、台紙を発行するだびに，システムでユニークな台紙ＩＤを生成する。例えば、台紙ＩＤは証明書の種類を示すコードとその証明書種類のもとでの員数（sequential number）の連結(concatenation)である。さらに台紙ＩＤは，乱数などを含んでもよい。
【００３２】
台紙発行システム２１０は、ステップ６２０において、台紙の作成を行なう。すなわち、図１に示した台紙データを電子的に作成する。さらに、図3における領域３１０及び領域３４０に台紙ＩＤや台紙の発行時刻及び台紙発行時の署名データを文字とコードでそれぞれ記入する。台紙発行時の署名データとは，典型的には，台紙ＩＤと台紙の発行時刻の連結データのハッシュ値を台紙発行システム２１０の秘密鍵で暗号化したデータである。また、前述の方式で領域１２０及び領域１３０の背景パターンを記入する。
【００３３】
台紙発行システム２１０は，図9に示すディスク装置９３０に台紙発行時の情報を台紙ＩＤ毎に記憶する。ディスク装置９３０には台紙ＩＤ９３１，台紙の発行時刻９３２、台紙発行時の署名データ９３３が格納される。また、台紙に付いている属性情報も、有効期限データ９３４、用途の識別データ９３５として記憶される。さらに、図4あるいは図5において説明した背景データ作成に使用する暗号鍵も領域９３６に記憶されても良い。
【００３４】
次に、台紙発行システム２１０は、ステップ６３０（図６）において、員数の更新を行なう。
【００３５】
台紙発行システム２１０は、ステップ６４０において、発行した台紙データ（電子データ）を、通信制御装置９１０を使って証明書発行システム２００に送信する。
【００３６】
証明書発行システム２００は、ステップ６５０において通信制御装置１０１０経由で台紙データを受け取り、該台紙データに個別情報を記入する。すなわち，領域１１０に画像を添付、領域１２０及び領域１３０に個別情報（住所,氏名，有効期限など）を文字で上書きする。画像１１０には、台紙ＩＤ等の情報を電子透かし技術を用いて挿入する。  また，領域１２０及び領域１３０上の(文字上書き前の)黒ドットの総数，および同領域への文字上書きの際に文字によってつぶされた黒ドットの総数，およびその座標を検証のためのデータとして記録しておく。 
さらに，図3における領域３２０及び領域３５０に個別情報の署名データと前記検証のためのデータを文字とコードでそれぞれ記入する。個別情報の署名データとは，典型的には，個別情報のハッシュ値を証明書発行システム２００の秘密鍵で暗号化したデータである。検証のためのデータは，コードでのみ記入された方が良い。
【００３７】
証明書発行システム２００は，図１０に示すディスク装置１０３０に証明書発行時の情報を証明書毎に記憶する。ディスク装置１０３０には証明書発行時刻１０３１，個別情報１０３２、個別情報のハッシュ値１０３３，個別情報の署名データ１０３４が格納される。また、ディスク装置１０３０には、台紙の情報を管理する領域もあり、台紙ＩＤ１０３６、台紙発行システムから送られてきた台紙データ１０３７が記録されている。さらに，図５の背景パターン作成時に使用した埋め込みIDを台紙発行システムから受け取って，領域１０３５に記憶しても良い。
【００３８】
依頼者システム２２０は、ステップ６６０（図６）において、通信制御装置１２１０を用いて証明書データ(電子データ)を入手し、表示装置１２５０に表示することができる。また、ステップ６７０において、証明書データを出力装置１２６０に送り、紙に印刷する。
【００３９】
ところで、台紙発行システム２１０はステップ６２０において、図４あるいは図５のイメージの台紙を作成するが、台紙発行時には領域３１０及び領域３４０にも台紙ＩＤ等の情報が記録される。すなわち、領域３１０及び領域３４０に記録された情報によって、領域１２０や領域１３０のドットパターンが生成されるのであれば、ドットパターンを印刷しなくても上書きした文字との重なりを検出することができる。したがって、ステップ６２０の台紙作成処理は、個別情報を上書きする領域１２０や領域１３０に対して、実際にドットパターンを印刷する処理を含まなくても良い。
【００４０】
（４）証明書の検証
図7は証明書の真贋を検証するプロセスを示すものである。検証者システム２３０は、ステップ７００において、スキャナ１１５０を用いて印刷物である証明書の読み込みを行なう。そして、ステップ７１０において、検証者システム内でのローカルな検証（検証（１））を行なう。
【００４１】
証明書を偽造する場合によく行われる方法として,（a）現在書かれている文字（個別情報）を消して別の文字を書く，（ｂ）現在書かれている文字に加筆して別の文字にする，がある。証明書には，検証のためのデータとして，領域１２０及び領域１３０上の(文字上書き前の)黒ドットの総数，および同領域への文字上書きの際に文字によってつぶされた黒ドットの総数，およびその座標が，領域３５０にコードで記入されている。
【００４２】
ステップ７００で，検証者システム２３０は、読みこんだ証明書の領域１２０及び領域１３０の背景パターンの黒ドットの数を数え，領域３５０上の検証のためのデータと比較する。比較の結果両者が不一致ならば，検証者システム２３０は証明書を無効と判断する。この処理により，上述の偽造をかなりの確率で検出できる。さらに，検証者システム２３０は、検証のためのデータ内の文字によってつぶされた黒ドットの座標と，読みこんだ証明書の領域１２０及び領域１３０の文字位置を比較する事により, さらに高い確率で偽造を検出できる。
【００４３】
さらに,高いレベルの検証が必要とされる場合（７２０），検証者システム２３０はネットワーク２４０に接続して，以下の検証(検証（２）)のいずれか，いくつか，または全部を行う。
【００４４】
ケース１：検証者システム２３０は，読みこんだ証明書の領域３１０から台紙ＩＤを抽出し，台紙発行システム２１０に台紙ＩＤを送付して，台紙検証依頼をする(ステップ７３０)。台紙発行システム２１０は，記憶しているデータから背景パターンを復元して，検証者システム２３０に送付する（ステップ７３０）。検証者システム２３０は，読みこんだ証明書の背景パターンと台紙発行システムから送られてきた背景パターンが文字以外の部分で一致する事を確認する(ステップ７６０)。これにより，背景パターンが偽造された場合を検出できる。
【００４５】
ケース２：検証者システム２３０は，読みこんだ証明書の領域３００または３３０から署名データを抽出し，台紙発行システム２１０および証明書発行システム２００の公開鍵を入手して，署名データを検証する。これは，良く知られた電子署名の検証方法である。公開鍵を検証者システム２３０のディスク装置１１３０に記憶して置いても良い。この検証は上述の検証（１）とともに行われても良い。
【００４６】
ケース３：これは，領域１２０，１３０の背景パターンが図５による同じ1セットのデータを繰り返し使用したパターンで作成されており，あらかじめ定められた領域の１セットのデータ分のパターンには，文字が上書きされていない場合にのみ適応できる。検証者システム２３０は，読みこんだ証明書の領域１２０および１３０からあらかじめ定められた領域の１セットのデータ分のパターンを抽出する。図５で使用した埋め込みIDおよび図５で使用した秘密鍵に対応する公開鍵と抽出したパターンを使用して，図５の方法とは逆の方法で，領域１２０と１３０の背景パターンを復元できる。読みこんだ背景パターンと復元した背景パターンを比較する事により，背景パターンの偽造を検出できる。このときに使用する復号鍵を検証者システム２３０のディスク装置１１３０に記憶して置いても良い。
【００４７】
次に、第2の実施例について説明する。
【００４８】
(1)  証明書の発行
この実施例は，台紙発行システムと証明書発行システムが，同じ１つのシステム（台紙・証明書発行システムとする）として実現される。また，証明書の領域１２０及び領域１３０の背景パターンの作成方法が実施例１とは異なる。背景パターンに複数の色を使用することに加え，背景パターンが個別情報により変わる。その他の部分は，実施例１と同じである。
【００４９】
図１３及び図１４は、領域１２０及び領域１３０を塗潰すパターンの生成方法に関するフローチャートである。最初に基本となるパターンの生成方法について簡単に述べる。基本パターンとして、領域内にある画素を3色（色１，色２，色３）で塗り分けたものを作成する。このとき、上・下・左・右で隣り合う画素が必ず異なる色となるように塗り分ける。最も簡単な塗り方は、色１及び色２及び色３を順番に繰り返し塗っていくことであり、最上段を横一列に塗り分ける。次に、一つ下の列について、色２を最左端として、色２，色３，色１の順に繰り返し塗潰す。さらに、その下の列については、色３を最左端として、色３，色１，色２の順に繰り返し塗潰す。これを最下列まで繰り返せば、領域１２０及び領域１３０を３色で塗潰すことができる。これを基本パターンと呼ぶ。なお、この色は、プリンタで用いられる原色をそれぞれ用いてもよい。例えば、シアン、マゼンダ、イエロー、ブラックから３色を選択してもよいし、３色に限定せず４色を用いてもよい。
【００５０】
次に、基本パターンに台紙ＩＤや個別情報等を埋め込む処理を行なう。この処理を示すのが図１３である。
【００５１】
台紙・証明書発行システムは、ステップ１３００において領域１２０あるいは領域１３０をスキャンするための初期値設定を行なう。例えば、左上の画素を初期値と設定する。ステップ１３１０において、対象画素の左に位置する画素と真上に位置する画素に関して画素色を調べる。この２つの画素の色が同じであればステップ１３１５に処理を進め、異なる場合はステップ１３５０に処理を進める。
【００５２】
ステップ１３１５では，台紙・証明書発行システムは、画素に対して情報を埋め込むかどうかを判定する。例えば、台紙ＩＤが“１１”であり、この台紙ＩＤを画像中に埋め込むこととする。ところで、“１１”は１０進法で表現されたものであるが、これを２進数で表現すると“１０１１”となる。したがって、“１１”という値を画素に埋め込むためには少なくとも４つの画素が必要となり、４つの画素にそれぞれ“１”，“０”，“１”，“１”を埋め込む。ステップ１３１５に戻り、対象となっている画素に埋め込もうとしている値が“１”であるか“０”であるかを調べ、“１”であった場合はステップ１３２０に進み、“０”であった場合はステップ１３５０に進む。ステップ１３２０では、対象となっている画素の左側の画素及び真上の画素の色を調べその色が色３であったなら、ステップ１３２５において対象画素を色２で塗潰す。
【００５３】
色３でなく、色１であった場合はステップ１３３０で判定し、ステップ１３３５において対象画素を色３で塗潰す。色３でも色１でもない場合は、必然的に色２であるから、ステップ１３４０において対象画素を色１で塗潰す。ステップ１３５０は、情報を埋め込むことができない画素の色決めに関する処理であり、図１４において説明する。
【００５４】
そして、対象画素の色が決まったならば、ステップ１３６０においてスキャンする画素を一つだけ右に移動する。ただし、最右端であればステップ１３６５において、ステップ１３７０に進み、それ以外の時はステップ１３０５に戻る。同様に、ステップ１３７０では、スキャンする画素を一列だけ下段に移動し、ステップ１３７５において最下段であれば処理を終了するが、それ以外のときはステップ１３０５に戻って処理を継続する。
【００５５】
図１４は、ステップ１３５０について詳細に示したフローである。台紙・証明書発行システムは、ステップ１４１０において、対象画素の塗潰し色を色１に仮設定する。ステップ１４１５において、対象画素の左側と真上の画素に関して色を調べ、その両方ともが色１でなければ（すなわち、両方とも色２、両方とも色３、１つが色２でもう１つが色３）、対象画素を色１で塗潰す。ステップ１４１５において少なくとも１つが色１であった場合は、ステップ１４２５において塗潰し色を色２に仮設定する。そして、ステップ１４３０において前述と同様に色を調べ、対象画素の左側と真上の画素が色２でなければ、ステップ１４３５において対象画素を色２で塗潰す。ステップ１４３０において色２が含まれる場合は、対象画素の左側と真上の画素のどちらかが色１であり、残りが色２ということであるから、ステップ１４４０において対象画素を色３で塗潰す。このような処理を行なうことで、隣り合う画素は必ず異なる色で塗潰すというルールを守った上で、基本パターンに個別の情報を埋め込むことができる。
【００５６】
図１５は、このようにして作成した台紙のパターン例である。この台紙パターンの上に個別情報を文字で上書きし，さらにそのコードまたはハッシュ値を背景パターンに埋め込む。図２６はこの台紙の上に日本文字「う」という字を上書きし、さらに「う」のコードまたはハッシュ値を台紙に埋め込んだ例を示す図である。
【００５７】
図１５において、領域１５００の画素１５１０は色１、画素１５２０は色２、画素１５３０は色３で塗られており、隣り合う画素は異なる色で塗潰されている。図２６において、画素１５６０には文字が重なっている。さらに，図１５において色１に塗られた部分１５８０に「う」という文字のコード情報を埋め込んだ例である。
【００５８】
図１６に、台紙の背景パターンに対してさらにコード情報を埋め込む処理のフローを示す。ステップ１６００において、台紙データを読み込み、台紙上に個別データの文字等を上書きする（ステップ１６１０）。この時点で、画素１５６０のような文字と重なった画素は文字の色（たとえば黒）で塗潰す。
【００５９】
ステップ１６２０において、例えば領域の最左上の画素を初期値として設定し
、ステップ１６４０において、その対象画素が色１（ここでは色１を空白と表現
）であるかどうかを判定する。色１であった場合は、埋め込もうとしている個別データを図１３の説明で述べたのと同じ方法で埋め込む。すなわち、ステップ１６５０において、埋め込む値が０であれば塗潰し色はそのままとし、埋め込む値が１であれば塗潰し色を色４とする。
【００６０】
そして、対象画素の色が決まったならば、ステップ１６６０においてスキャンする画素を一つだけ右に移動する。ただし、最右端であればステップ１６７０において、ステップ１６８０に進み、それ以外の時はステップ１６３０に戻る。同様に、ステップ１６８０では、スキャンする画素を一列だけ下段に移動し、ステップ１６９０において最下段であれば処理を終了するが、それ以外のときはステップ１６３０に戻って処理を継続する。
【００６１】
この例では，1文字上書きして，1文字分のコード情報を背景パターンに埋め込んだが，すべての文字情報を上書きした後に，そのハッシュ値を繰り返し，背景パターンに埋め込んでも良い。
【００６２】
この例は，実施例１で作成した検証のためのデータの作成や証明書への該データの記載を行わない。
【００６３】
（２）証明書の検証
検証者システム２３０では，以下のような検証を行う。電子署名の検証は，本実施例でも同様に行う事ができる。検証者システム２３０は，読みこんだ証明書を抽出して台紙・証明書発行システムへ送信し，検証を依頼する。台紙・証明書発行システムは，台紙ＩＤ毎に保存してある領域１２０，１３０のパターンと文字情報を，送信されてきた証明書と比較し，一致するか否かを調べ，検証者システムに結果を送信する。
【００６４】
次に、第3の実施例について、説明する。
【００６５】
（１）証明書の発行
この実施例は，台紙発行システムと証明書発行システムが，同じ１つのシステム（台紙・証明書発行システムとする）として実現される。また，領域１２０及び領域１３０の背景パターンの作成方法が実施例１とは異なる。背景パターンに複数の色を使用することに加え，背景パターンが個別情報により変わる。
【００６６】
この実施例では，証明書の領域１２０，１３０の上に，最初に文字を書き，その後背景を複数の色で塗りつぶしていく。
【００６７】
図１８は、最初に書かれた文字の局所的な形状から周囲の塗潰し色を決めるためのルールを示した図である。最初に，文字の書かれた領域１２０，１３０を２×２の画素からなる矩形に分割する。
【００６８】
図１８は、文字部分を含む２×２の画素からパターン１８１０，とそのパターン内のまだ塗られていない画素の塗潰し色番号１８００の関係を示した表である。２×２の画素からなる矩形を単位とした場合、矩形が文字によって塗潰されるパターンは１４通りとなる。このなかで、４つの画素すべてが塗潰された場合と、一つも塗潰されていない場合を除いた１２通りを４つに分類する。例えば、パターン１８２１、パターン１８２２、パターン１８２３に対応する色を１８２０とし、パターン１８３１、パターン１８３２、パターン１８３３に対応する色を１８３０とし、パターン１８４１、パターン１８４２、パターン１８４３に対応する色を１８４０とし、パターン１８５１、パターン１８５２、パターン１８５３に対応する色を１８５０とする。
【００６９】
このルールを日本文字「の」という文字に適用した例を図１９に示す。このとき、図１９の矩形１９１０はパターン１８２１と同じであるから、空白部を色１８２０で塗潰す。また、矩形１９２０はパターン１８５２と同じであるから、空白部を色１８５０で塗潰す。さらに、矩形１９３０はパターン１８４２と同じであるから、空白部を色１８４０で塗潰す。このようにして文字「の」の周辺を塗潰すと図１９となる。
【００７０】
図２０は、さらに塗潰されていない部分の色を決めるために、領域を４×４の画素の矩形で分割し、前記と同じルールで塗潰す色をきめたものである。例えば、矩形２０１０はパターン１８２２と同じになるから、色１８２０で塗潰し、矩形２０２０はパターン１８２１と同じになるから色１８２０で塗潰す。
【００７１】
もし，全領域が塗りつぶされていない場合は，同様に，領域を８×８の画素の矩形に分割・塗りつぶし，領域を１６×１６の画素の矩形に分割・塗りつぶしと繰り返す。
【００７２】
次に，前述の方法で塗りつぶした領域に更に，台紙ＩＤなどの情報を埋め込む。ここでは，実施例１の図４に示したコード化情報を埋め込むと仮定する。
【００７３】
図４におけるドットパターンが図１７の画素１７１０や画素１７２０に相当する。これらの画素１７１０や画素１７２０を用いてボロノイ図を作成する。
ボロノイ図は良く知られた領域の分割方法であって，以下の様に作成する。領域上の隣接する2つの点を線でむすび，その線を2分する点でその線に直交する直線を引く。すべての点について，この操作を繰り返すと，図１７のように,領域が分割される。ボロノイ図を作成すると、パターンに含まれる各ドットについて、１つのドットを含む閉領域を定義することができる。
【００７４】
図１７と図２０を重ね合わせると図２１になる。
【００７５】
さらに，図２１の閉領域内を閉領域内のドットの色で塗りつぶす。もし，画素２２６０のように対象画素と文字が重なっている場合は，対象画素から最も近い距離にある画素の色で塗り潰す。図２２は、このようにして文字以外の領域を塗潰したものである。このように、文字の周囲が４色の色で塗り分けられる。
【００７６】
このようにして，台紙・証明書発行システムは証明書の領域１２０，１３０を作成する。
【００７７】
図１８の塗りつぶしルールに変わる別のルールを図２５に示す。図２５では，対象画素の周囲のどの程度が文字によって塗潰されているかで色を決める。対象画素２５００の周囲２５１０において、３０％未満であれば色２５２０、３０％以上６０％未満であれば色２５３０、６０％以上であれば色２５４０を塗潰し色とする。後は，図２１，２２に説明した方法で証明書の領域１２０，１３０を作成する。
【００７８】
（２）証明書の検証
検証者システム２３０では，以下のような検証を行う。電子署名の検証は，本実施例でも同様に行う事ができる。検証者システム２３０は，読みこんだ証明書の領域１２０，１３０の文字を抽出して，図１８，１９，２０（あるいは，図２５）で説明した方法で背景を塗りつぶす。次に，検証者システム２３０は，台紙ＩＤを台紙・証明書発行システムへ送信し，図４のドットパターンを台紙・証明書発行システムから入手する。検証者システム２３０は，入手したドットパターンを使用して，図２１，２２に説明した方法で背景を塗り替え，プリンタに出力する。証明書の領域１２０，１３０の色パターンとプリンタから出力された色パターンを目視で比べる事により，証明書の偽造を検出できる。検証者システム２３０が両色パターンの比較を行い，一致・不一致のみを出力しても良い。
【００７９】
本実施例の変形例として，証明書作成時に図４のドットパターンの座標情報をコード化して，証明書の領域３３０に記載しておいても良い。この場合，証明書の検証時に，検証者システムは，台紙・証明書発行システムに接続することなく，証明書上の情報から，上述の検証を行う事ができる。
【００８０】
偽造の一例を示す。図２３は文字「の」の一部を改竄したものであり、例えば領域２３００を塗潰して、文字を偽造している。この文字に関して図１８のルールを適用すると、ドット２３１０は色１８４０で塗潰される。そして、ボロノイ図で表現された領域の塗りわけを行なったものが図２４である。図２２では、ドット２２３０とドット２２５０は同じ色であり、境界線２２７０の両側が同じ色１８５０で塗潰される。一方，図２４では、ドット２４３０とドット２４５０が異なるから、境界線の左側が色１８４０、右側が色１８５０となる。したがって、図２２と図２４の違いが目視でも判別できる。このような色の変化は、文字の形の一部を改竄した場合だけでなく、位置を少しずらしただけでも起こりうる。
【産業上の利用可能性】
【００８１】
本発明は、証明書の発行を、コンピュータを用いて実現することが可能になる。
【図面の簡単な説明】
【００８２】
【図１】本発明によってオンライン発行される証明書の例を示した説明図である。
【図２】本発明によるシステムの接続関係例を示すシステム構成図である。
【図３】図1に示す証明書に、印刷された証明書の真贋を検証するために付与された情報を記した説明図である。
【図４】図1の領域１２０と領域１３０に対して施される処理を示した説明図である。
【図５】図４における領域の塗り潰し(paint out)方法について示した説明図である。
【図６】証明書をオンラインで発行する処理に関する基本的な処理フローである。
【図７】印刷した証明書の真贋を検証する処理について示す基本的な処理フローである。
【図８】図４とは異なるドットパターンの例を示す説明図である。
【図９】台紙発行システムのシステム構成図である。
【図１０】証明書発行システムのシステム構成図である。
【図１１】検証者システムのシステム構成図である。
【図１２】依頼者システムのシステム構成図である。
【図１３】第２実施例による個別データが記載される領域の塗潰しパターンの生成方法に関するフローチャートである。
【図１４】図１３におけるステップ１３５０について詳細に示したフローチャートである。
【図１５】図１３に示す処理によって作成されるパターンの例を示した説明図である。
【図１６】第２実施例による台紙のパターンに個別データを上書きするための処理フローである。
【図１７】第３実施例による台紙パターン塗り潰しのためにボロノイ図（Voronoi diagram）を適用した例を示す説明図である。
【図１８】２×２の画素に対する塗潰しパターンとそれに対応する塗潰し色の関係を示した対応表である。
【図１９】図18の塗潰し対応表を、上書き文字の周囲に適用した例である。
【図２０】図１９に対し，さらに塗潰し処理を行なった結果を示す説明図である。
【図２１】ボロノイ図の各領域の塗潰し色を決めるために、図２０と図１７を重ねてドット位置にある色を抽出した図である。
【図２２】証明書の個別データを記載する領域に書き込まれた文字及び文字周囲の塗り潰し例を示す説明図である。
【図２３】文字「の」の一部に手を加え、加筆後の文字に対して図１８の対応表を適用した例を示す説明図である。
【図２４】加筆後の文字に対して文字周囲の塗り潰し例を示す説明図である。
【図２５】局所的な形状を色で表現する方法の別の方法を説明する図である。
【図２６】図１５に示したパターンに文字の上書きとコード情報の埋め込みを行った例を示した説明図である。
【符号の説明】
【００８３】
２００…証明書発行者システム、２１０…台紙発行者／管理者システム、２２０…依頼者システム、２３０…検証者システム、９００…制御手段、９１０…通信手段、９２０…一時記憶手段（メモリ）、９３０…蓄積手段、９３１…電子台紙ＩＤ、９３２…台紙発行時刻データ、９３３…台紙発行時署名データ、９３４…有効期限データ、９３５…用途識別データ、９３６…暗号鍵、１０００…制御手段、１０１０…通信手段、１０２０…一時記憶装置（メモリ）、１０３１…証明内容記入時刻データ、１０３２…証明内容データ、１０３３…証明内容特徴量、１０３４…証明内容記入時署名データ、１０３６…電子台紙ＩＤ、１０３７…台紙データ、１１００…制御手段、１１１０…通信装置、１１２０…一時記憶装置、１１３０…蓄積手段、１１３１…電子台紙ＩＤ、１１３２…台紙発行者の塗潰しパターン、１１３３…証明書発行者の塗潰しルール、１１３４…復号鍵、１１５０…入力手段（スキャナ）、１２００…制御手段、１２１０…通信手段、１２２０…一時記憶手段、１２４０…入力手段（キーボード）、１２５０…表示手段（ディスプレイ）、１２６０…出力手段（プリンタ）
【図１】
2005225072.tif 000003
【図２】
2005225072.tif 000004
【図３】
2005225072.tif 000005
【図４】
2005225072.tif 000006
【図５】
2005225072.tif 000007
【図６】
2005225072.tif 000008
【図７】
2005225072.tif 000009
【図８】
2005225072.tif 000010
【図９】
2005225072.tif 000011
【図１０】
2005225072.tif 000012
【図１１】
2005225072.tif 000013
【図１２】
2005225072.tif 000014
【図１３】
2005225072.tif 000015
【図１４】
2005225072.tif 000016
【図１５】
2005225072.tif 000017
【図１６】
2005225072.tif 000018
【図１７】
2005225072.tif 000019
【図１８】
2005225072.tif 000020
【図１９】
2005225072.tif 000021
【図２０】
2005225072.tif 000022
【図２１】
2005225072.tif 000023
【図２２】
2005225072.tif 000024
【図２３】
2005225072.tif 000025
【図２４】
2005225072.tif 000026
【図２５】
2005225072.tif 000027
【図２６】
2005225072.tif 000028