(57)【特許請求の範囲】
【請求項１】
メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なう電子署名装置であって、
２つのＬビット（Ｌ＜Ｎ）の乱数ｒ１、ｒ２を生成する乱数生成手段と、
秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理手段と、
前記メッセージＭを用いて署名データＳを求めるアンブラインド処理手段とを備え、
前記ブラインド処理手段は、
前記の２つの乱数ｒ１、ｒ２のそれぞれの逆元ｖ１、ｖ２を、ｖ１＝ｒ１−１ｍｏｄｎ、ｖ２＝ｒ２−１ｍｏｄｎを演算することによって求める逆元演算手段と、
鍵パターンｕをｕ＝（ｒ１・ｖ２）ｄｍｏｄｎを演算することによって求める鍵パターン演算手段と、
逆元パターンｖをｖ＝ｒ２・ｖ１ｍｏｄｎを演算することによって求める逆元パターン演算手段とを備え、
前記アンブラインド処理手段は、
ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算手段と、
ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算手段と、
署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算手段とを備えたことを特徴とする電子署名装置。
【請求項２】
メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なう電子署名装置であって、
ｋ個（ｋ≧２）のＬビット（ｋ・Ｌ＜Ｎ）の乱数を生成する乱数生成手段と、
秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理手段と、
前記メッセージＭを用いて署名データＳを求めるアンブラインド処理手段とを備え、
前記ブラインド処理手段は、
前記ｋ個の乱数ｒｉ（１≦ｉ≦ｋ）に対応する逆元ｖｉをｖｉ＝ｒｉ−１ｍｏｄｎを演算することによって求める逆元演算手段と、
鍵パターンｕを
【数１】
0003676280.tif 000006
を演算することによって求める鍵パターン演算手段と、
逆元パターンｖを
【数２】
0003676280.tif 000007
を演算することによって求める逆元パターン演算手段とを備え、
前記アンブラインド処理手段は、
ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算手段と、
ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算手段と、
署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算手段とを備えたことを特徴とする電子署名装置。
【請求項３】
メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なうＩＣカードであって、
２つのＬビット（Ｌ＜Ｎ）の乱数ｒ１、ｒ２を生成する乱数生成手段と、
秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理手段と、
前記メッセージＭを用いて署名データＳを求めるアンブラインド処理手段とを備え、
前記ブラインド処理手段は、
前記の２つの乱数ｒ１、ｒ２のそれぞれの逆元ｖ１、ｖ２を、ｖ１＝ｒ１−１ｍｏｄｎ、ｖ２＝ｒ２−１ｍｏｄｎを演算することによって求める逆元演算手段と、
鍵パターンｕをｕ＝（ｒ１・ｖ２）ｄｍｏｄｎを演算することによって求める鍵パターン演算手段と、
逆元パターンｖをｖ＝ｒ２・ｖ１ｍｏｄｎを演算することによって求める逆元パターン演算手段とを備え、
前記アンブラインド処理手段は、
ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算手段と、
ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算手段と、
署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算手段とを備えたことを特徴とするＩＣカード。
【請求項４】
メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なうＩＣカードを含む電子署名装置に用いられる電子署名プログラムであって、
２つのＬビット（Ｌ＜Ｎ）の乱数ｒ１、ｒ２を生成する乱数生成ステップと、
秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理ステップと、
前記メッセージＭを用いて署名データＳを求めるアンブラインド処理ステップと、
当該署名データＳを外部へ出力する署名データ出力ステップとを電子署名装置に実行させ、
前記ブラインド処理ステップは、
前記の２つの乱数ｒ１、ｒ２のそれぞれの逆元ｖ１、ｖ２を、ｖ１＝ｒ１−１ｍｏｄｎ、ｖ２＝ｒ２−１ｍｏｄｎを演算することによって求める逆元演算ステップと、
鍵パターンｕをｕ＝（ｒ１・ｖ２）ｄｍｏｄｎを演算することによって求める鍵パターン演算ステップと、
逆元パターンｖをｖ＝ｒ２・ｖ１ｍｏｄｎを演算することによって求める逆元パターン演算ステップとを有し、
前記アンブラインド処理ステップは、
ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算ステップと、
ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算ステップと、
署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算ステップとを有することを特徴とする電子署名プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、メッセージに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なう、電子署名装置およびＩＣカード、ならびにその電子署名プログラムに関する。
【０００２】
【従来の技術】
電子署名は、メッセージに改竄がないことや発信者が本人であることを確認するための技術として定着している。送信者が送信するメッセージに対しハッシュ関数による演算を施してダイジェストを作成し、このダイジェストを自分の持つ秘密鍵で暗号化したものが電子署名である。
ところで、ＲＳＡ暗号のような公開鍵方式を実装した、例えば、ＩＣカードのような耐タンパー装置では、特定のメッセージの秘密鍵による署名処理、すなわち、Ｓ＝Ｍd ｍｏｄ ｎ（但し、Ｓは署名データ、Ｍは入力メッセージ、ｄおよびｎは秘密鍵情報）の演算時における電圧変動、あるいは、例えばオール０等、ｄおよびｎの情報が電圧変化として出現しやすい特定のパターンを有するメッセージを入力して分析することにより、秘密鍵漏洩の危険性があることが一般に知られている。
【０００３】
従来、このための対策の一つとして、メッセージをスクランブルする方法があった。メッセージをスクランブルするためには、ブラインド署名（メッセージの内容を秘密にしたまま署名を付してもらう、Ｄ．Ｃｈａｕｍが提案した概念）として知られている処理を、ブラインド、アンブラインド処理も含めてＩＣカード内部で行なう必要がある。
図３に、従来のブラインド署名処理の流れがフローチャートで、また、そのブロック中に、各ステップにおいて計算される演算式が示されている。
【０００４】
【発明が解決しようとする課題】
図３のフローチャートのステップＳ３０２に示されるように、ブラインド処理では、乱数から逆元（inverse  element）パターンｖ（＝ｒ-1 ｍｏｄ ｎ）を生成するための逆元演算処理を要す。逆元演算処理自体の高速化の手法は従来からいくつか知られているが、この逆元演算演算は、乱数のビット長に比例した時間だけ処理時間を要する。
従って、データ量が大きな場合は計算量も多く、ＰＣ等のように比較的処理能力の高いＣＰＵを内蔵する場合は特に問題とはならないが、ＩＣカードのように比較的処理能力が低いＣＰＵを内蔵した場合、例えば、１２８バイト（１０２４ビット）の乱数データを扱うのに逆元演算処理のために１秒以上の演算処理時間を要し、従って、適用は不向きであった。
【０００５】
本発明は上記事情に鑑みてなされたものであり、逆元の処理量はｒとｎのビット長の短い方に比例することに着目し、乱数を分割することにより、比較的小さなビット数で構成されるそれぞれの乱数から少なくとも２つの逆元を求め、当該逆元を相互に相殺する組み合わせになるように鍵パターンと逆元パターンを求め、ブラインド処理を行なうことによって、逆元のための処理量を削減してＣＰＵの負担を軽減し、かつ、電圧変化等のデータの収集分析による秘密鍵情報の漏洩を防止することのできる、電子署名装置およびＩＣカード、ならびにその電子署名プログラムを提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記した課題を解決するために本発明は、メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なう電子署名装置であって、２つのＬビット（Ｌ＜Ｎ）の乱数ｒ１、ｒ２を生成する乱数生成手段と、秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理手段と、前記メッセージＭを用いて署名データＳを求めるアンブラインド処理手段とを備え、前記ブラインド処理手段は、前記の２つの乱数ｒ１、ｒ２のそれぞれの逆元ｖ１、ｖ２を、ｖ１＝ｒ１−１ｍｏｄｎ、ｖ２＝ｒ２−１ｍｏｄｎを演算することによって求める逆元演算手段と、鍵パターンｕをｕ＝（ｒ１・ｖ２）ｄｍｏｄｎを演算することによって求める鍵パターン演算手段と、逆元パターンｖをｖ＝ｒ２・ｖ１ｍｏｄｎを演算することによって求める逆元パターン演算手段とを備え、前記アンブラインド処理手段は、ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算手段と、ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算手段と、署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算手段とを備えたことを特徴とする。
【０００７】
上記した課題を解決するために本発明は、メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なう電子署名装置であって、ｋ個（ｋ≧２）のＬビット（ｋ・Ｌ＜Ｎ）の乱数を生成する乱数生成手段と、秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理手段と、前記メッセージＭを用いて署名データＳを求めるアンブラインド処理手段とを備え、前記ブラインド処理手段は、前記ｋ個の乱数ｒｉ（１≦ｉ≦ｋ）に対応する逆元ｖｉをｖｉ＝ｒｉ−１ｍｏｄｎを演算することによって求める逆元演算手段と、鍵パターンｕを
【数３】
0003676280.tif 000002
を演算することによって求める鍵パターン演算手段と、逆元パターンｖを
【数４】
0003676280.tif 000003
を演算することによって求める逆元パターン演算手段とを備え、
前記アンブラインド処理手段は、ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算手段と、ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算手段と、署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算手段とを備えたことを特徴とする。
【０００９】
上記した課題を解決するために本発明は、メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なうＩＣカードであって、２つのＬビット（Ｌ＜Ｎ）の乱数ｒ１、ｒ２を生成する乱数生成手段と、秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理手段と、前記メッセージＭを用いて署名データＳを求めるアンブラインド処理手段とを備え、前記ブラインド処理手段は、前記の２つの乱数ｒ１、ｒ２のそれぞれの逆元ｖ１、ｖ２を、ｖ１＝ｒ１−１ｍｏｄｎ、ｖ２＝ｒ２−１ｍｏｄｎを演算することによって求める逆元演算手段と、鍵パターンｕをｕ＝（ｒ１・ｖ２）ｄｍｏｄｎを演算することによって求める鍵パターン演算手段と、逆元パターンｖをｖ＝ｒ２・ｖ１ｍｏｄｎを演算することによって求める逆元パターン演算手段とを備え、前記アンブラインド処理手段は、ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算手段と、ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算手段と、署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算手段とを備えたことを特徴とする。
【００１０】
上記した課題を解決するために本発明は、メッセージＭに対する署名処理の前後にＮビットの乱数によるブラインド処理、アンブラインド処理を行なうＩＣカードを含む電子署名装置に用いられる電子署名プログラムであって、２つのＬビット（Ｌ＜Ｎ）の乱数ｒ１、ｒ２を生成する乱数生成ステップと、秘密鍵ｄおよびｎを用いることによって、ブラインド処理を行なうブラインド処理ステップと、前記メッセージＭを用いて署名データＳを求めるアンブラインド処理ステップと、当該署名データＳを外部へ出力する署名データ出力ステップとを電子署名装置に実行させ、前記ブラインド処理ステップは、前記の２つの乱数ｒ１、ｒ２のそれぞれの逆元ｖ１、ｖ２を、ｖ１＝ｒ１−１ｍｏｄｎ、ｖ２＝ｒ２−１ｍｏｄｎを演算することによって求める逆元演算ステップと、鍵パターンｕをｕ＝（ｒ１・ｖ２）ｄｍｏｄｎを演算することによって求める鍵パターン演算ステップと、逆元パターンｖをｖ＝ｒ２・ｖ１ｍｏｄｎを演算することによって求める逆元パターン演算ステップとを有し、前記アンブラインド処理ステップは、ブラインド処理データｍを前記メッセージＭを用いてｍ＝（ｖ・Ｍ）ｍｏｄｎを演算することによって求めるブラインド処理データ演算ステップと、ブラインド署名データｓをｓ＝ｍｄｍｏｄｎを演算することによって求めるブラインド署名データ演算ステップと、署名データＳをＳ＝ｕ・ｓｍｏｄｎを演算することによって求めるアンブラインド演算ステップとを有することを特徴とする。
【００１１】
【発明の実施の形態】
図１は、本発明実施形態の内部構成を示すブロック図である。ここでは、電子署名装置としてＩＣカードが例示されている。
ＩＣカードは、ＣＰＵ１１を制御中枢とし、ＩＣカードリーダライタを持つ情報端末機器（図示せず）との接続インタフェースとなるＩ／Ｏインタフェース部１２と、ＲＯＭで構成されるプログラムメモリ１３と、Ｅ2ＰＲＯＭで構成されるワーキングメモリ１４と、ＲＡＭで構成されるデータメモリ１５とが１チップ実装され、これら各ブロック１１〜１５は、内部バス１６に共通接続されている。
ＣＰＵ１１は、プログラムメモリ１３に記録された本発明の電子署名プログラムを読み出し、データメモリ１５を使用して、Ｉ／Ｏインタフェース回路１２を介して到来するメッセージのブラインド処理、署名処理、そしてアンブラインド処理他を実行する。なお、ワーキングメモリ１４に記録されるデータは、アプリケーションで用いられる、例えば、ＩＤ等の個人情報等であり、電源が遮断されても記憶内容を残す必要の有るデータが記録されるものとする。
【００１２】
１７は、電子署名制御部であり、その内部構成が機能展開して示されている。以下に示す各ブロックは、具体的には、いずれもＣＰＵ１１ならびにメモリ１３、１４、１５を含む周辺回路１２で構成されるものであり、ＣＰＵ１１がメモリに記録されたプログラムを読み出し実行することにより、それらブロックが持つ機能が実現されるものである。
電子署名制御部１７は、メッセージ入力受信部１７１と、乱数生成部１７２と、ブラインド処理部１７３と、署名処理部１７４と、アンブラインド処理部１７５と、署名データ出力部１７６で構成される。
【００１３】
メッセージ入力受信部１７１は、Ｉ／Ｏインターフェース回路１２を介して到来するメッセージＭを受信する機能を持つ。乱数生成部１７２は、鍵データとして生成される乱数ｒ1、ｒ2を、ＩＣカードが内蔵する８ビットＣＰＵでも演算のために負担とならない、例えば、８バイト（６４ビット）から１６バイト（１２８ビット）程度の小さな、少なくとも２つの乱数に分割生成する機能を持つ。また、ブラインド処理部１７３は、乱数ｒ1、ｒ2によるそれぞれの逆元パターンｖ1、ｖ2を求めると共に、当該逆元を相互に相殺する組み合わせになるような鍵パターンｕと逆元パターンｖを求め、それに基づいてブラインド処理を行なう機能を持つ。
【００１４】
署名処理部１７４は、ブラインド処理部１７４によってブラインド処理されたメッセージｍへの署名処理を行なう機能を持ち、アンブラインド処理部１７５は、署名処理されたメッセージｍをアンブラインド処理して署名データＳを復元する機能を持つ。署名データ出力部１７６は、アンブラインド処理部１７５によって得られた署名データＳをＩ／Ｏインターフェース回路１２を介して、図示せぬＩＣカードリーダライタ経由、情報端末機器へ出力する機能を持つ。
【００１５】
図２は、図１に示す電子署名制御部の動作を説明するために引用したフローチャートであり、具体的には、本発明の電子署名プログラムの処理手順を示す図である。
以下、図２に示すフローチャートを参照しながら、図１に示す本発明実施形態の動作について詳細に説明する。
【００１６】
まず、電子署名制御部１７は、Ｉ／Ｏインターフェース回路１２経由、メッセージ入力受信部１７１で外部からメッセージ入力Ｍを受信する（ステップＳ２０１）。このとき、乱数生成部１７２では、２つの８バイト（６４ビット）程度の小さな乱数ｒ1、ｒ2を生成し、ブラインド処理部１７３に出力する（ステップＳ２０２）。
これを受けたブラインド処理部１７３では、受信した乱数ｒ1、ｒ2に基づくそれぞれの逆元パターンｖ1、ｖ2を以下の演算式（１）、（２）により求める（ステップＳ２０３）。
（１）ｖ1＝ｒ1-1 ｍｏｄ ｎ
（２）ｖ2＝ｒ2-1 ｍｏｄ ｎ
【００１７】
ブラインド処理部１７３では、更に、上記のようにして求められた逆元が相互に相殺する組み合わせになるように、鍵パターンｕおよび逆元パターンｖを以下の演算式（３）（４）により求める（ステップＳ２０４）。
（３）ｕ＝（ｒ1・ｖ2）d  ｍｏｄ ｎ
（４）ｖ＝ｒ2・ｖ1  ｍｏｄ ｎ
そして、メッセージＭを以下の演算式（５）によりブラインド処理し、その結果を署名処理部１７４に出力する（ステップＳ２０５）。
（５）ｍ＝（ｖ・Ｍ）ｍｏｄ ｎ
【００１８】
次に、署名処理部１７４では、以下の演算式（６）を実行することによりブラインド署名を行い、アンブラインド処理部１７５へ出力する（ステップＳ２０６）。
（６）ｓ＝ｍｄｍｏｄｎ
そして、アンブラインド処理部１７５では、以下の演算式（７）を実行することによりアンブラインド処理を行い、署名データＳを求める（ステップＳ２０７）。
（７）Ｓ＝ｕ・ｓｍｏｄｎ
但し、ブラインド署名データｓと、メッセージＭのブラインド処理データｍは、それぞれ、上記した演算式（５）（６）により求められたものを使用する。
【００１９】
なお、ステップＳ２０７のアンブラインド処理において、署名データ（Ｍd ｍｏｄ  ｎ）が求められる根拠は以下の展開式（８）による。
（８）Ｓ＝ｕ・sｍｏｄｎ＝（ｒ１・ｖ２）ｄ・（ｍｄ）ｍｏｄｎ
＝（ｒ１・ｖ２）ｄ・（ｖ・Ｍ）ｄｍｏｄｎ
＝（ｒ１・ｖ２）ｄ・ｖｄ・Ｍｄｍｏｄｎ
＝（ｒ１・ｖ２）ｄ・（ｒ２・ｖ１）ｄ・Ｍｄｍｏｄｎ
＝ｒ１ｄ・ｖ１ｄ・ｒ２ｄ・ｖ２ｄ・Ｍｄｍｏｄｎ
＝Ｍｄｍｏｄｎ
但し、ｒ１ｄ・ｖ１ｄｍｏｄｎ＝１、ｒ２ｄ・ｖ２ｄｍｏｄｎ＝１
そして、この署名データＳは、署名データ出力部１７６により、Ｉ／Ｏインターフェース回路１２を介し、図示せぬリーダライタ経由で情報端末機器へ供給される（ステップＳ２０８）。ここで、メッセージに改竄がないことや発信者が間違いなく本人であることの確認がなされる。
【００２０】
以上説明のように本発明は、鍵となる乱数を分割して比較的小さなビット数で構成される乱数から少なくとも２つの逆元を求め、当該逆元を相互に相殺する組み合わせになるように鍵パターンと逆元パターンを求め、ブラインド処理を行なうものであり、このことにより逆元のための演算量を削減してＣＰＵの負担を軽減し、かつ、電圧変化等のデータの収集分析による秘密鍵情報の漏洩を防止することができる。
なお、上記した本発明実施形態において、乱数ｒ1、ｒ2のサイズ８バイト（６４ビット）は一例であり、直接、乱数ｒの逆元を求めるよりも演算処理時間が短く、かつ、ブラインド処理を十分に行うためのセキュリティパラメータとして必要なサイズを選択する必要がある。
【００２１】
なお、上では、２つの乱数ｒ1、ｒ2を用いてブラインド処理およびアンブラインド処理を行なう場合について説明したが、より一般的には、ｋ個（ただし、ｋ≧２）のＬビット（ただし、ｋ・Ｌ≦Ｎ）の乱数ｒi（１≦ｉ≦ｋ）を生成し、これらｋ個の乱数を用いてブラインド処理を行なうようにしても良い。なお、この場合もｎは公開鍵であり、Ｎは公開鍵ｎのビット長である。
ｋ個の乱数を用いる場合には、まずブラインド処理部１７３は、次の式により、それぞれの乱数ｒiの逆元ｖiを求める。
ｖi＝ｒi-1 ｍｏｄ ｎ
更に、ブラインド処理部１７３は、次の式により、鍵パターンｕおよび逆元パターンｖをそれぞれ求める。
【００２２】
【数５】
0003676280.tif 000004
【００２３】
【数６】
0003676280.tif 000005
【００２４】
上記のようにｕおよびｖが求められた後の処理は、前述の２個の乱数を用いる場合と同様である。
【００２５】
また、上記した本発明実施形態においては、電子署名制御部１７を構成するメッセージ入力受信部１７１と、乱数生成部１７２と、ブラインド処理部１７３と、署名処理部１７４と、アンブラインド処理部１７５と、署名データ出力部１７６のそれぞれで実行される手順をコンピュータ読取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の電子認証装置あるいはＩＣカードが実現されるものとする。ここでいうコンピュータシステムとは、ＯＳや周辺機器等のハードウアを含むものである。
【００２６】
更に、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読取り可能な記録媒体」とは、ＲＯＭの他に、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のシステムやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００２７】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００２８】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００２９】
【発明の効果】
請求項１および請求項２に記載の発明によれば、署名処理の前後にブラインド、アンブラインド処理を行なう際、乱数を分割して比較的小さなビット数で構成される乱数を乱数生成手段によって生成し、ブラインド処理手段が、その乱数から少なくとも２つの逆元を求め、当該逆元を相互に相殺する組み合わせになるように鍵パターンと逆元パターンを求め、ブラインド処理を行なうことにより、逆元のための演算量を削減してＣＰＵの負担を軽減し、かつ、電圧変化等のデータの収集分析による秘密鍵情報の漏洩を防止した電子署名装置を提供することができる。
【００３０】
また、請求項１に記載の発明によれば、ブラインド処理手段が、署名処理前にブラインド処理を実行する際、例えば、２つの８バイト程度の小さな乱数を元に逆元を求め、この２つの逆元を相互に相殺する組み合わせになるように、鍵、逆元を求めることにより、直接１２８バイトもの乱数の逆元を求めるよりも演算時間が短くなり、結果的にブラインド処理時間の短縮がはかれる。また、メッセージをスクランブルするため、電圧変化等のデータの収集分析による攻撃から秘密鍵の漏洩を防止することもできる。
【００３１】
また、請求項１に記載の発明によれば、署名処理後、アンブラインド処理手段によって先の署名をアンブラインドし、当該署名データを外部出力することにより、メッセージに改竄がないことや発信者が間違いなく本人であることの確認が可能となる。
【００３２】
請求項３に記載の発明によれば、鍵となる乱数を分割して比較的小さなビット数で構成される乱数から少なくとも２つの逆元を求め、当該逆元を相互に相殺する組み合わせになるように鍵パターンと逆元パターンを求め、ブラインド処理を行なうことにより、逆元のための演算量を削減してＣＰＵの負担を軽減し、かつ、電圧変化等のデータの収集分析による秘密鍵情報の漏洩を防止したＩＣカードを提供することができる。
【００３３】
請求項４に記載の発明によれば、本発明の電子署名プログラムを、電子署名装置、もしくはＩＣカードに内蔵されたコンピュータ（ＣＰＵ）に実行させることにより、署名処理前にブラインド処理を実行する際、例えば、２つの８バイト程度の小さな乱数を元に逆元を求め、この２つの逆元を相互に相殺する組み合わせになるように、鍵、逆元を求めることで、直接１２８バイトもの乱数の逆元を求めるよりも演算時間が短くなり、結果的にブラインド時間の短縮がはかれる。また、メッセージをスクランブルするため、電圧変化等のデータの収集分析による攻撃から秘密鍵の漏洩を防止することもできる。
【図面の簡単な説明】
【図１】  本発明実施形態の内部構成を示すブロック図である。
【図２】  図１に示す電子署名制御部の動作を説明するために引用した図であり、本発明の電子署名プログラムの処理手順を示す。
【図３】  従来のブラインド署名処理の動作手順を示すフローチャートである。
【符号の説明】
１１…ＣＰＵ、１２…Ｉ／Ｏインターフェース回路、１３…プログラムメモリ（ＲＯＭ）、１４…ワーキングメモリ（Ｅ2ＰＲＯＭ）、１５…データメモリ（ＲＡＭ）、１６…内部バス、１７…電子署名制御部、１７１…メッセージ入力受信部、１７２…乱数生成部、１７３…ブラインド処理部、１７４…署名処理部、１７５…アンブラインド処理部、１７６…署名データ出力部
【図１】
0003676280.tif 000008
【図２】
0003676280.tif 000009
【図３】
0003676280.tif 000010