(57)【要約】【課題】セキュリティを維持しつつ、処理時間を短縮する。【解決手段】情報処理装置は、過去に生成された第１の乱数と当該第１の乱数の逆元を示す第１の逆元とを関連付けて記憶する乱数記憶部と、第２の乱数を生成する乱数生成部と、第２の乱数の逆元を示す第２の逆元を生成する逆元生成部と、第１の乱数及び第１の逆元のうちのいずれか一方を示す第１マスク情報と、第２の乱数及び第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づくマスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理部と、第１の乱数及び第１の逆元のうちの第１マスク情報と異なる一方を示す第１解除情報と、第２の乱数及び第２の逆元のうちの第２マスク情報と異なる一方を示す第２解除情報とに基づくマスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされたブラインドデータのマスクを解除するブラインド解除処理部とを備える。【選択図】図１
2015102812.tif 000002
【特許請求の範囲】
【請求項１】
過去に生成された第１の乱数と、（ｍｏｄ  ｎ）における当該第１の乱数の逆元を示す第１の逆元とを関連付けた第１組情報を記憶する乱数記憶部と、
第２の乱数を生成する乱数生成部と、
（ｍｏｄ  ｎ）における前記第２の乱数の逆元を示す第２の逆元を生成する逆元生成部と、
前記乱数記憶部が関連付けて記憶する前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちのいずれか一方を示す第１マスク情報と、前記第２の乱数及び前記第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づいてマスク情報を生成し、生成した前記マスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理部と、
前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちの前記第１マスク情報と異なる一方を示す第１解除情報と、前記第２の乱数及び前記第２の逆元のうちの前記第２マスク情報と異なる一方を示す第２解除情報とに基づいてマスク解除情報を生成し、生成した前記マスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされた前記ブラインドデータのマスクを解除するブラインド解除処理部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第２の乱数と前記第２の逆元とを関連づけた第２組情報を前記第１組情報として前記乱数記憶部に記憶させる記憶処理部を備える
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の乱数及び前記第２の乱数は、前記マスク情報のビット長をＮ分割した所定のビット長の乱数であり（Ｎは、２以上の整数）、
前記乱数生成部は、Ｍ個の前記第２の乱数を生成し（Ｍは、１以上（Ｎ−１）以下の整数）、
前記逆元生成部は、前記Ｍ個の第２の乱数それぞれに対応するＭ個の前記第２の逆元を生成し、
前記乱数記憶部は、少なくとも（Ｎ−Ｍ）個の前記第１組情報を記憶し、
前記ブラインド処理部は、
前記乱数記憶部が記憶する前記（Ｎ−Ｍ）個の第１組情報に基づく（Ｎ−Ｍ）個の前記第１マスク情報と、前記第２の乱数及び前記第２の逆元を関連付けたＭ個の第２組情報に基づくＭ個の前記第２マスク情報とに基づいて、前記マスク情報を生成し、
前記ブラインド解除処理部は、
前記（Ｎ−Ｍ）個の第１組情報に基づく（Ｎ−Ｍ）個の前記第１解除情報と、前記Ｍ個の第２組情報に基づくＭ個の第２解除情報とに基づいて、前記マスク情報と等しいビット長の前記マスク解除情報を生成する
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
分割数Ｎの増加に応じて、前記マスク情報のビット長を増加させる
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１マスク情報及び第２マスク情報うちのいずれか一方が乱数であり、他方が乱数の逆元である
ことを特徴とする請求項１から請求項４のいずれか一項に記載の情報処理装置。
【請求項６】
前記乱数生成部は、前記第２の乱数を生成するとともに、第３の乱数を生成し、
前記ブラインド処理部は、
前記（Ｎ−Ｍ）個の第１組情報と前記Ｍ個の第２組情報とを含むＮ個の組情報それぞれの乱数と当該乱数の逆元とのいずれかを選択する２のＮ乗通りの組み合わせのうちから、前記第３の乱数に応じて、１つの組み合わせを選択して、前記第１マスク情報及び前記第２マスク情報を生成する
ことを特徴とする請求項３又は請求項４に記載の情報処理装置。
【請求項７】
前記ブラインド処理部は、
前記ブラインドデータに、前記少なくとも（ｍｏｄ  ｎ）を含む処理として実行される暗号処理に用いる鍵長に応じて、前記マスク情報のビット長を前記第２の乱数のビット長単位で変更する
ことを特徴とする請求項１から請求項６のいずれか一項に記載の情報処理装置。
【請求項８】
過去に生成された第１の乱数と、（ｍｏｄ  ｎ）における当該第１の乱数の逆元を示す第１の逆元とを関連付けた第１組情報を記憶する乱数記憶部を備える情報処理装置の情報処理方法であって、
乱数生成部が、第２の乱数を生成する乱数生成ステップと、
逆元生成部が、（ｍｏｄ  ｎ）における前記第２の乱数の逆元を示す第２の逆元を生成する逆元生成ステップと、
ブラインド処理部が、前記乱数記憶部が関連付けて記憶する前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちのいずれか一方を示す第１マスク情報と、前記第２の乱数及び前記第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づいてマスク情報を生成し、生成した前記マスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理ステップと、
ブラインド解除処理部が、前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちの前記第１マスク情報と異なる一方を示す第１解除情報と、前記第２の乱数及び前記第２の逆元のうちの前記第２マスク情報と異なる一方を示す第２解除情報とに基づいてマスク解除情報を生成し、生成した前記マスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされた前記ブラインドデータのマスクを解除するブラインド解除処理ステップと
を含むことを特徴とする情報処理方法。
【請求項９】
過去に生成された第１の乱数と、（ｍｏｄ  ｎ）における当該第１の乱数の逆元を示す第１の逆元とを関連付けた第１組情報を記憶する乱数記憶部を備える情報処理装置のコンピュータに、
第２の乱数を生成する乱数生成ステップと、
（ｍｏｄ  ｎ）における前記第２の乱数の逆元を示す第２の逆元を生成する逆元生成ステップと、
前記乱数記憶部が関連付けて記憶する前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちのいずれか一方を示す第１マスク情報と、前記第２の乱数及び前記第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づいてマスク情報を生成し、生成した前記マスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理ステップと、
前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちの前記第１マスク情報と異なる一方を示す第１解除情報と、前記第２の乱数及び前記第２の逆元のうちの前記第２マスク情報と異なる一方を示す第２解除情報とに基づいてマスク解除情報を生成し、生成した前記マスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされた前記ブラインドデータのマスクを解除するブラインド解除処理ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
ＩＣカードなどの情報処理装置の暗号化処理や署名処理などを行う際に、演算処理中の消費電力を外部から計測することにより、暗号化処理や署名処理などを行うための秘密鍵を推定するＳＰＡ（Single Power Analysis）やＤＰＡ（Differential Power Analysis）などのサイドチャネル攻撃がある。近年、このようなサイドチャネル攻撃に対応する技術が知られている（例えば、特許文献１を参照）。
【０００３】
特許文献１に記載の技術では、複数の乱数と乱数の逆元とを生成し、例えば、ＲＳＡ暗号によりデータを署名処理する際に、生成した複数の乱数及び乱数の逆元に基づいてメッセージをマスクすることにより、攻撃者による秘密鍵の特定を困難にさせている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１２４９２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、乱数の生成や乱数の逆元を生成する処理に、時間がかかるという課題があった。
【０００６】
本発明は、上記課題を解決すべくなされたもので、その目的は、セキュリティを維持しつつ、処理時間を短縮することができる情報処理装置、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の一態様は、  過去に生成された第１の乱数と、（ｍｏｄ  ｎ）における当該第１の乱数の逆元を示す第１の逆元とを関連付けた第１組情報を記憶する乱数記憶部と、第２の乱数を生成する乱数生成部と、（ｍｏｄ  ｎ）における前記第２の乱数の逆元を示す第２の逆元を生成する逆元生成部と、前記乱数記憶部が関連付けて記憶する前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちのいずれか一方を示す第１マスク情報と、前記第２の乱数及び前記第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づいてマスク情報を生成し、生成した前記マスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理部と、前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちの前記第１マスク情報と異なる一方を示す第１解除情報と、前記第２の乱数及び前記第２の逆元のうちの前記第２マスク情報と異なる一方を示す第２解除情報とに基づいてマスク解除情報を生成し、生成した前記マスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされた前記ブラインドデータのマスクを解除するブラインド解除処理部とを備えることを特徴とする情報処理装置である。
【０００８】
また、本発明の一態様は、上記の情報処理装置において、前記第２の乱数と前記第２の逆元とを関連づけた第２組情報を前記第１組情報として前記乱数記憶部に記憶させる記憶処理部を備えることを特徴とする。
【０００９】
また、本発明の一態様は、上記の情報処理装置において、前記第１の乱数及び前記第２の乱数は、前記マスク情報のビット長をＮ分割した所定のビット長の乱数であり（Ｎは、２以上の整数）、前記乱数生成部は、Ｍ個の前記第２の乱数を生成し（Ｍは、１以上（Ｎ−１）以下の整数）、前記逆元生成部は、前記Ｍ個の第２の乱数それぞれに対応するＭ個の前記第２の逆元を生成し、前記乱数記憶部は、少なくとも（Ｎ−Ｍ）個の前記第１組情報を記憶し、前記ブラインド処理部は、前記乱数記憶部が記憶する前記（Ｎ−Ｍ）個の第１組情報に基づく（Ｎ−Ｍ）個の前記第１マスク情報と、前記第２の乱数及び前記第２の逆元を関連付けたＭ個の第２組情報に基づくＭ個の前記第２マスク情報とに基づいて、前記マスク情報を生成し、前記ブラインド解除処理部は、前記（Ｎ−Ｍ）個の第１組情報に基づく（Ｎ−Ｍ）個の前記第１解除情報と、前記Ｍ個の第２組情報に基づくＭ個の第２解除情報とに基づいて、前記マスク情報と等しいビット長の前記マスク解除情報を生成することを特徴とする。
【００１０】
また、本発明の一態様は、上記の情報処理装置において、分割数Ｎの増加に応じて、前記マスク情報のビット長を増加させることを特徴とする。
【００１１】
また、本発明の一態様は、上記の情報処理装置において、前記第１マスク情報及び第２マスク情報うちのいずれか一方が乱数であり、他方が乱数の逆元であることを特徴とする。
【００１２】
また、本発明の一態様は、上記の情報処理装置において、前記乱数生成部は、前記第２の乱数を生成するとともに、第３の乱数を生成し、前記ブラインド処理部は、前記（Ｎ−Ｍ）個の第１組情報と前記Ｍ個の第２組情報とを含むＮ個の組情報それぞれの乱数と当該乱数の逆元とのいずれかを選択する２のＮ乗通りの組み合わせのうちから、前記第３の乱数に応じて、１つの組み合わせを選択して、前記第１マスク情報及び前記第２マスク情報を生成することを特徴とする。
【００１３】
また、本発明の一態様は、上記の情報処理装置において、前記ブラインド処理部は、前記ブラインドデータに、前記少なくとも（ｍｏｄ  ｎ）を含む処理として実行される暗号処理に用いる鍵長に応じて、前記マスク情報のビット長を前記第２の乱数のビット長単位で変更することを特徴とする。
【００１４】
また、本発明の一態様は、過去に生成された第１の乱数と、（ｍｏｄ  ｎ）における当該第１の乱数の逆元を示す第１の逆元とを関連付けた第１組情報を記憶する乱数記憶部を備える情報処理装置の情報処理方法であって、乱数生成部が、第２の乱数を生成する乱数生成ステップと、逆元生成部が、（ｍｏｄ  ｎ）における前記第２の乱数の逆元を示す第２の逆元を生成する逆元生成ステップと、ブラインド処理部が、前記乱数記憶部が関連付けて記憶する前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちのいずれか一方を示す第１マスク情報と、前記第２の乱数及び前記第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づいてマスク情報を生成し、生成した前記マスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理ステップと、ブラインド解除処理部が、前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちの前記第１マスク情報と異なる一方を示す第１解除情報と、前記第２の乱数及び前記第２の逆元のうちの前記第２マスク情報と異なる一方を示す第２解除情報とに基づいてマスク解除情報を生成し、生成した前記マスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされた前記ブラインドデータのマスクを解除するブラインド解除処理ステップとを含むことを特徴とする情報処理方法である。
【００１５】
また、本発明の一態様は、過去に生成された第１の乱数と、（ｍｏｄ  ｎ）における当該第１の乱数の逆元を示す第１の逆元とを関連付けた第１組情報を記憶する乱数記憶部を備える情報処理装置のコンピュータに、第２の乱数を生成する乱数生成ステップと、（ｍｏｄ  ｎ）における前記第２の乱数の逆元を示す第２の逆元を生成する逆元生成ステップと、前記乱数記憶部が関連付けて記憶する前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちのいずれか一方を示す第１マスク情報と、前記第２の乱数及び前記第２の逆元のうちのいずれか一方を示す第２マスク情報とに基づいてマスク情報を生成し、生成した前記マスク情報に基づいて、データをマスクしたブラインドデータを生成するブラインド処理ステップと、前記第１組情報に含まれる前記第１の乱数及び前記第１の逆元のうちの前記第１マスク情報と異なる一方を示す第１解除情報と、前記第２の乱数及び前記第２の逆元のうちの前記第２マスク情報と異なる一方を示す第２解除情報とに基づいてマスク解除情報を生成し、生成した前記マスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされた前記ブラインドデータのマスクを解除するブラインド解除処理ステップとを実行させるためのプログラムである。
【発明の効果】
【００１６】
本発明によれば、セキュリティを維持しつつ、処理時間を短縮することができる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態によるＩＣカードの機能構成の一例を示すブロック図である。
【図２】第１の実施形態における乱数記憶部の記憶例を示す図である。
【図３】第１の実施形態における署名処理の概要を示す図である。
【図４】第１の実施形態における署名処理の一例を示すフローチャートである。
【図５】第２の実施形態における乱数記憶部の記憶例を示す図である。
【図６】第２の実施形態における署名処理の一例を示すフローチャートである。
【図７】第３の実施形態における乱数と逆元との組み合わせの一例を示す図である。
【図８】第３の実施形態における署名処理の一例を示すフローチャートである。
【図９】第４の実施形態における乱数と逆元との組み合わせの一例を示す図である。
【図１０】第４の実施形態における署名処理の一例を示すフローチャートである。
【図１１】第５の実施形態におけるアルゴリズムＩＤと乱数の個数との組み合わせの一例を示す図である。
【図１２】第５の実施形態におけるアルゴリズムＩＤとマスク情報のビット長との設定例を示す図である。
【図１３】第５の実施形態における署名処理の一例を示すフローチャートである。
【図１４】第６の実施形態における署名処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態による情報処理装置について、図面を参照して説明する。
［第１の実施形態］
本実施形態では、情報処理装置の一例として、ＩＣカード１である場合について説明する。
図１は、本実施形態によるＩＣカード１の機能構成の一例を示すブロック図である。
【００１９】
ＩＣカード１は、例えば、ＲＳＡ暗号を使用して、暗号化処理、復号処理、メッセージの署名処理などの暗号処理（ＲＳＡ暗号処理）を実行する情報処理装置である。本実施形態では、一例として、ＲＳＡ暗号処理による署名処理を実行する場合について説明する。
本実施形態によるＩＣカード１は、ＲＳＡ暗号処理による署名処理を行う際に、ＲＳＡ暗号処理の対象データ（例えば、メッセージデータＣＭ）に乱数を利用してマスクするブラインド処理を実行する。また、ＩＣカード１は、メッセージデータＣＭをブラインド処理したブラインドデータＢＣＭをＲＳＡ暗号処理して、ブラインド署名データＢＥＭを生成する。そして、ＩＣカード１は、生成したブラインド署名データＢＥＭにブラインド解除処理を実行し、メッセージデータＣＭをＲＳＡ暗号した署名データＥＭを生成する。
また、図１に示すように、ＩＣカード１は、インタフェース部１０、ＲＯＭ２０、ＲＡＭ３０、ＥＥＰＲＯＭ４０、乱数生成部５０、及び制御部６０を備えている。
【００２０】
インタフェース部１０は、ＩＣカード１とＩＣカードリーダライタを備える情報端末装置（不図示）との間で情報通信を行う。
ＲＯＭ（Read Only Memory）２０は、ＩＣカード１に各種処理を実行させるためのプログラムや各種設定情報などを記憶する不揮発性メモリである。
ＲＡＭ（Random Access Memory）３０は、ＩＣカード１の各種処理に用いるデータを一時記憶する揮発性メモリである。
【００２１】
ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）４０は、ＩＣカード１の各種処理に用いられるワーキングデータを記憶する電気的に書き換え可能な不揮発性メモリである。ＥＥＰＲＯＭ４０は、例えば、ＩＤ等の個人情報、パスワード、暗号鍵（公開鍵、及び秘密鍵）などの電源が遮断されても記憶内容を残す必要のあるデータを記憶する。また、ＥＥＰＲＯＭ４０は、乱数記憶部４１を備えている。
【００２２】
乱数記憶部４１は、過去に生成された乱数（第１の乱数）と、当該乱数の逆元（第１の逆元）とを関連付けた組情報（第１組情報）を記憶する。ここで、乱数の逆元とは、（ｍｏｄ  ｎ）における乱数の逆元を示す。また、“ｎ”は、ＩＣカード１で用いるＲＳＡ暗号における剰余算の法ｎを示す。また、（ｍｏｄ  ｎ）とは、法ｎによる剰余演算を示す。逆元の詳細については、後述する。乱数記憶部４１は、例えば、図２に示すように、後述する乱数生成部５０が前回（１回前）に生成した乱数（ｒｉ−１）とその逆元（ｖｉ−１）とを関連付けて記憶する。
【００２３】
図２は、本実施形態における乱数記憶部４１の記憶例を示す図である。
図２に示す例では、１回前の署名処理を（ｉ−１）回目の署名処理とし、（ｉ−１）回目の署名処理において生成した乱数を乱数ｒｉ−１としている。また、（ｉ−１）回目の署名処理において生成した乱数の逆元を、逆元ｖｉ−１としている。すなわち、この例において、乱数記憶部４１は、乱数ｒｉ−１と逆元ｖｉ−１とを関連付けて記憶している。なお、乱数記憶部４１が記憶する乱数ｒｉ−１と逆元ｖｉ−１との組情報は、上述した署名処理などの暗号処理が実行された後に、新しく生成された乱数と逆元との組情報に書き換えられる。
なお、本実施形態では、以下の説明において、乱数記憶部４１に記憶されている乱数を乱数ｒｉ−１又は乱数ｒｓとし、乱数記憶部４１に記憶されている逆元を逆元ｖｉ−１又は逆元ｖｓとして説明する。
【００２４】
図１に戻り、乱数生成部５０は、所定のビット長の乱数（第２の乱数）を生成する。本実施形態では、乱数生成部５０は、例えば、６５ビット長の乱数を生成する。なお、乱数生成部５０は、所定のビット長より短いビット長の乱数を複数回生成し、生成した複数の乱数を直列に接続することにより、所定のビット長の乱数を生成してもよい。例えば、乱数生成部５０は、１３ビット長の乱数を５回生成して、６５ビット長の乱数を生成してもよい。
なお、本実施形態では、以下の説明において、乱数生成部５０が生成した所定のビット長の乱数を乱数ｒｉ又は乱数ｒｇとし、乱数ｒｉ又は乱数ｒｇの逆元を逆元ｖｉ又は逆元ｖｇとして説明する。
【００２５】
制御部６０は、例えば、ＣＰＵ（Central Processing Unit）などを含むプロセッサであり、ＩＣカード１を統括的に制御する。制御部６０は、例えば、ＲＯＭ２０に記憶されているプログラムを読み出し、ＲＡＭ３０を使用して各種処理を実行する。制御部６０は、例えば、ＲＳＡ暗号処理を実行する際に、乱数生成部５０が生成した乱数ｒｇを取得して、乱数ｒｇの逆元ｖｇを生成する。制御部６０は、取得した乱数ｒｇ及び逆元ｖｇと、乱数記憶部４１が記憶する乱数ｒｓ及び逆元ｖｓとを利用して、メッセージデータＣＭをブラインド処理した後に、ＲＳＡ暗号処理を実行するとともに、ブラインド解除処理を実行して、署名データを生成する。また、制御部６０は、ＲＳＡ暗号処理を実行した後に、取得した乱数ｒｇ及び逆元ｖｇを、新しい乱数ｒｓ及び逆元ｖｇとして、乱数記憶部４１に記憶させる。
【００２６】
なお、制御部６０は、取得した乱数ｒｇが“０”（全ビット“０”）である場合に、取得した乱数ｒｇを破棄し、乱数生成部５０から再度、乱数ｒｇを取得する。制御部６０は、例えば、取得した乱数ｒｇの全ビットが“０”であるか否かを判定し、全ビットが“０”であると判定した場合には、乱数生成部５０から再度、乱数ｒｇを取得する。また、制御部６０は、全ビットが“０”でないと判定した場合には、乱数生成部５０から取得済みの乱数ｒｇの逆元ｖｇを生成する。
また、制御部６０は、逆元生成部６１、ブラインド処理部６２、署名処理部６３、ブラインド解除処理部６４、及び記憶処理部６５を備えている。
【００２７】
逆元生成部６１は、取得した乱数ｒｓ（第２の乱数）に対して逆元ｖｇ（第２の逆元）を生成する。つまり、逆元生成部６１は、（ｍｏｄ  ｎ）における乱数ｒｓの逆元ｖｇを生成する。具体的に、逆元生成部６１は、下記の式（１）に基づいて、逆元ｖｇを生成する。
【００２８】
【数１】
2015102812.tif 000003
【００２９】
なお、式（１）をｉ回目の乱数ｒｉとした場合の逆元ｖｉは、下記の式（２）により表される。
【００３０】
【数２】
2015102812.tif 000004
【００３１】
ブラインド処理部６２は、乱数記憶部４１が関連付けて記憶する組情報に含まれる乱数ｒｓ及び逆元ｖｓのうちのいずれか一方を示す第１マスク情報（ストアマスク情報）と、上述した乱数ｒｇ及び逆元ｖｇのうちのいずれか一方を示す第２マスク情報（生成マスク情報）とに基づいてマスク情報Ｖを生成する。本実施形態では、ブラインド処理部６２は、一例として、乱数ｒｓを第１マスク情報とし、乱数ｒｇを第２マスク情報としてマスク情報Ｖを生成する場合について説明する。具体的に、ブラインド処理部６２は、下記の式（３）に基づいて、マスク情報Ｖを生成する。
【００３２】
【数３】
2015102812.tif 000005
【００３３】
このように、ブラインド処理部６２は、第１マスク情報と第２マスク情報とを積算した上で、法ｎにより剰余演算することにより、マスク情報Ｖを生成する。
なお、式（３）をｉ回目のブラインド処理におけるマスク情報Ｖｉとした場合のマスク情報は、下記の式（４）により表される。
【００３４】
【数４】
2015102812.tif 000006
【００３５】
また、ＩＣカード１が公開鍵ｅ（検証鍵ｅ）を、例えば、ＥＥＰＲＯＭ４０などに保有している場合には、ブラインド処理部６２は、下記の式（５）に基づいて、マスク情報Ｖを生成してもよい。
【００３６】
【数５】
2015102812.tif 000007
【００３７】
ブラインド処理部６２は、生成したマスク情報Ｖに基づいて、メッセージデータＣＭをマスクするブラインド処理を実行する。ブラインド処理部６２は、例えば、下記の式（６）に基づいて、ブラインド処理を実行し、ブラインドデータＢＣＭを生成する。
【００３８】
【数６】
2015102812.tif 000008
【００３９】
このように、ブラインド処理部６２は、マスク情報ＶとメッセージデータＣＭとを積算した上で、法ｎにより剰余演算することにより、ブラインドデータＢＣＭを生成する。
【００４０】
署名処理部６３（暗号処理部の一例）は、ブラインド処理部６２がブラインド処理したブラインドデータＢＣＭに、（ｍｏｄ  ｎ）に基づく署名処理（例えば、ＲＳＡ暗号処理）を実行する。署名処理部６３は、例えば、秘密鍵（ｄ、ｎ）に基づいて、下記の式（７）により、ＲＳＡ暗号処理を実行し、ブラインド署名データＢＥＭを生成する。
【００４１】
【数７】
2015102812.tif 000009
【００４２】
このように、署名処理部６３は、秘密鍵（ｄ、ｎ）に基づいて、署名処理する場合に、ブラインドデータＢＣＭを秘密鍵（ｄ、ｎ）により冪乗剰余演算処理することにより、ブラインド署名データＢＥＭを生成する。
【００４３】
ブラインド解除処理部６４は、第１解除情報（ストアマスク解除情報）と、第２解除情報（生成マスク解除情報）とに基づいてマスク解除情報Ｕを生成する。ここで、第１解除情報は、乱数記憶部４１が関連付けて記憶する組情報に含まれる乱数ｒｓ及び逆元ｖｓのうちの第１マスク情報と異なる一方を示し、第２解除情報は、上述した乱数ｒｇ及び逆元ｖｇのうちの第２マスク情報と異なる一方を示す。例えば、上述した乱数ｒｓを第１マスク情報とし、乱数ｒｇを第２マスク情報とした場合には、第１解除情報は、逆元ｖｓであり、第２解除情報は、逆元ｖｇである。具体的に、ブラインド解除処理部６４は、下記の式（８）に基づいて、マスク解除情報Ｕを生成する。
【００４４】
【数８】
2015102812.tif 000010
【００４５】
このように、ブラインド解除処理部６４は、第１解除情報と第２解除情報とを積算した上で、ＲＳＡ暗号処理の秘密鍵ｄにより冪乗演算することにより、マスク解除情報Ｕを生成する。なお、この式（８）の処理において、法ｎにより剰余演算を行ってもよい。
なお、式（８）をｉ回目のブラインド解除処理におけるマスク解除情報Ｕｉとした場合のマスク解除情報は、下記の式（９）により表される。
【００４６】
【数９】
2015102812.tif 000011
【００４７】
また、ＩＣカード１が検証鍵ｅを、例えば、ＥＥＰＲＯＭ４０などに保有している場合には、ブラインド解除処理部６４は、下記の式（１０）に基づいて、マスク解除情報Ｕを生成してもよい。
【００４８】
【数１０】
2015102812.tif 000012
【００４９】
ブラインド解除処理部６４は、生成したマスク解除情報Ｕに基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされたブラインドデータのマスクを解除する。すなわち、ブラインド解除処理部６４は、署名処理部６３が署名処理したブラインドデータ（ブラインド署名データＢＥＭ）のマスクを解除し、署名処理されたデータ（署名データＥＭ）を生成する。ブラインド解除処理部６４は、例えば、下記の式（１１）に基づいて、ブラインド解除処理を実行し、署名データＥＭを生成する。
【００５０】
【数１１】
2015102812.tif 000013
【００５１】
このように、ブラインド解除処理部６４は、マスク解除情報Ｕとブラインド署名データＢＥＭとを積算した上で、法ｎにより剰余演算することにより、署名データＥＭを生成する。
なお、上述のブラインド解除処理により署名データＥＭが求められる根拠は、下記の式（１２）による。
【００５２】
【数１２】
2015102812.tif 000014
【００５３】
記憶処理部６５は、今回の署名処理の際に生成した乱数ｒｇと逆元ｖｇとを関連づけた組情報（第２組情報）を上述した第１組情報として乱数記憶部４１に記憶させる。なお、本実施形態では、記憶処理部６５は、既に記憶されている乱数ｒｓと逆元ｖｓとの組情報（第１組情報）に、今回の署名処理の際に生成した乱数ｒｇと逆元ｖｇとの組情報（第２組情報）を上書きして、乱数ｒｇ及び逆元ｖｇを次回の乱数ｒｓ及び逆元ｖｓとして乱数記憶部４１に記憶させる。
【００５４】
次に、本実施形態によるＩＣカード１の動作について、図面を参照して説明する。
図３は、本実施形態によるＩＣカード１の署名処理の概要の一例を示す図である。
また、図４は、本実施形態における署名処理の一例を示すフローチャートである。
この図３及び図４に示すように、まず、乱数生成部５０が乱数ｒｉ（例えば、６５ビット）を生成する（ステップＳ１０１）。乱数生成部５０は、生成した乱数ｒｉを制御部６０に出力する。
【００５５】
次に、制御部６０の逆元生成部６１が、乱数生成部５０によって生成された乱数ｒｉの逆元ｖｉを生成する（ステップＳ１０２）。逆元生成部６１は、乱数生成部５０が生成した乱数ｒｉを取得し、上述した式（２）に基づいて、逆元ｖｉを生成する。
【００５６】
次に、ブラインド処理部６２が、乱数記憶部４１が記憶する１回前の乱数ｒｉ−１と、乱数生成部５０が生成した乱数ｒｉとを積算処理し、マスク情報Ｖ（例えば、１３０ビット）を生成する（ステップＳ１０３）。すなわち、ブラインド処理部６２は、乱数記憶部４１が記憶する１回前の乱数ｒｉ−１を第１マスク情報として取得するとともに、乱数生成部５０が生成した乱数ｒｉを第２マスク情報として取得する。そして、ブラインド処理部６２は、取得した第１マスク情報と、第２マスク情報とを上述した式（４）により積算処理して、マスク情報Ｖを生成する。
【００５７】
次に、ブラインド処理部６２は、生成したマスク情報Ｖに基づいて、メッセージデータＣＭをブラインド処理して、ブラインドデータＢＣＭを生成する（ステップＳ１０４）。ブラインド処理部６２は、上述した式（６）によりブラインドデータＢＣＭを生成する。
【００５８】
次に、署名処理部６３が、ブラインドデータＢＣＭをＲＳＡ暗号処理してブラインド署名データＢＥＭを生成する（ステップＳ１０５）。署名処理部６３は、上述した式（７）により、ブラインド署名データＢＥＭを生成する。
【００５９】
次に、ブラインド解除処理部６４が、乱数記憶部４１が記憶する１回前の逆元ｖｉ−１と、逆元生成部６１が生成した逆元ｖｉとを積算処理し、マスク解除情報Ｕ（例えば、１３０ビット）を生成する（ステップＳ１０６）。すなわち、ブラインド解除処理部６４は、乱数記憶部４１が記憶する１回前の逆元ｖｉ−１を第１解除情報として取得するとともに、逆元生成部６１が生成した逆元ｖｉを第２解除情報として取得する。そして、ブラインド解除処理部６４は、取得した第１解除情報と、第２解除情報とを上述した式（９）により積算処理して、マスク解除情報Ｕを生成する。
【００６０】
次に、ブラインド解除処理部６４は、生成したマスク解除情報Ｕに基づいて、ブラインド署名データＢＥＭをブラインド解除処理して、署名データＥＭを生成する（ステップＳ１０７）。ブラインド処理部６２は、上述した式（１１）により署名データＥＭを生成する。
【００６１】
次に、図４に示すように、記憶処理部６５は、今回の署名処理の際に生成した乱数ｒｇと逆元ｖｇとを関連づけた組情報（第２組情報）を上述した第１組情報として乱数記憶部４１に記憶させて（ステップＳ１０８）、処理を終了する。
【００６２】
このように、本実施形態によるＩＣカード１は、乱数記憶部４１に記憶されている過去に生成された乱数ｒｉ−１又は逆元ｖｉ−１と、今回生成した乱数ｒｉ又は逆元ｖｉとに基づいて、ブラインド処理及びブラインド解除処理を実行する。本実施形態によるＩＣカード１は、ブラインド処理を行うことにより、同一のメッセージデータＣＭであっても、署名処理部６３が署名処理するデータを、処理を行うごとにランダムに異ならせることができる。そのため、本実施形態によるＩＣカード１は、サイドチャネル攻撃による署名鍵ｄの漏えいするリスクを低減することができる。
【００６３】
なお、上述した本実施形態の一例では、マスク情報Ｖを、乱数ｒｉ（乱数ｒｇ）と乱数ｒｉ−１（乱数ｒｓ）とに基づいて生成し、マスク解除情報Ｕを、逆元ｖｉ（逆元ｖｇ）と逆元ｖｉ−１（逆元ｖｓ）とに基づいて生成する場合について説明したが、これに限定されるものではない。例えば、ブラインド処理部６２及びブラインド解除処理部６４は、以下の組み合わせにより、マスク情報Ｖ及びマスク解除情報Ｕを生成してもよい。
【００６４】
（組み合わせ例１）ブラインド処理部６２が、乱数ｒｉ（乱数ｒｇ）と逆元ｖｉ−１（逆元ｖｓ）とに基づいてマスク情報Ｖを生成し、ブラインド解除処理部６４が、逆元ｖｉ（逆元ｖｇ）と乱数ｒｉ−１（乱数ｒｓ）とに基づいてマスク解除情報Ｕを生成する。
（組み合わせ例２）ブラインド処理部６２が、逆元ｖｉ（逆元ｖｇ）と乱数ｒｉ−１（乱数ｒｓ）とに基づいてマスク情報Ｖを生成し、ブラインド解除処理部６４が、乱数ｒｉ（乱数ｒｇ）と逆元ｖｉ−１（逆元ｖｓ）とに基づいてマスク解除情報Ｕを生成する。
（組み合わせ例３）ブラインド処理部６２が、逆元ｖｉ（逆元ｖｇ）と逆元ｖｉ−１（逆元ｖｓ）とに基づいてマスク情報Ｖを生成し、ブラインド解除処理部６４が、乱数ｒｉ（乱数ｒｇ）と乱数ｒｉ−１（乱数ｒｓ）とに基づいてマスク解除情報Ｕを生成する。
【００６５】
以上説明したように、本実施形態によるＩＣカード１（情報処理装置の一例）は、乱数記憶部４１と、逆元生成部６１と、ブラインド処理部６２と、ブラインド解除処理部６４とを備えている。乱数記憶部４１は、過去に生成された乱数ｒｓ（第１の乱数）と、（ｍｏｄ  ｎ）における当該乱数ｒｓの逆元を示す逆元ｖｓ（第１の逆元）とを関連付けた第１組情報を記憶する。乱数生成部５０は、乱数ｒｇ（第２の乱数）を生成する。逆元生成部６１は、（ｍｏｄ  ｎ）における乱数ｒｇの逆元を示す逆元ｖｇ（第２の逆元）を生成する。
ブラインド処理部６２は、乱数記憶部４１が関連付けて記憶する第１組情報に含まれる乱数ｒｓ及び逆元ｖｓのうちのいずれか一方を示す第１マスク情報を取得する。また、ブラインド処理部６２は、乱数ｒｇ及び逆元ｖｇのうちのいずれか一方を示す第２マスク情報を取得する。ブラインド処理部６２は、第１マスク情報と第２マスク情報とに基づいてマスク情報Ｖを生成し、生成したマスク情報Ｖに基づいて、データ（例えば、メッセージデータＣＭ）をマスクしたブラインドデータを生成する。
【００６６】
また、ブラインド解除処理部６４は、第１組情報に含まれる乱数ｒｓ及び逆元ｖｓのうちの第１マスク情報と異なる一方を示す第１解除情報を取得する。また、ブラインド解除処理部６４は、乱数ｒｇ及び逆元ｖｇのうちの第２マスク情報と異なる一方を示す第２解除情報を取得する。ブラインド解除処理部６４は、第１解除情報と第２解除情報とに基づいてマスク解除情報を生成し、生成したマスク解除情報に基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされたブラインドデータのマスクを解除し、署名処理されたデータ（例えば、署名データＥＭ）を生成する。
【００６７】
これにより、本実施形態によるＩＣカード１は、マスク情報Ｖ及びマスク解除情報Ｕを生成するための乱数及び逆元の一部を乱数記憶部４１に記憶されている過去に生成された乱数及び逆元を利用する。そのため、本実施形態によるＩＣカード１は、毎回全ての乱数及び逆元を生成する場合に比べて、演算処理量を低減することができる。すなわち、本実施形態によるＩＣカード１は、セキュリティを維持しつつ、時間がかかる乱数の生成や乱数の逆元を生成する処理を軽減することができる。よって、本実施形態によるＩＣカード１は、セキュリティを維持しつつ、処理時間を短縮することができる。
【００６８】
また、本実施形態によるＩＣカード１は、乱数ｒｇと逆元ｖｇとを関連づけた第２組情報を第１組情報として乱数記憶部４１に記憶させる記憶処理部６５を備えている。
これにより、本実施形態によるＩＣカード１は、生成した乱数ｒｇ及び逆元ｖｇを記憶して、次回以降に使用することができる。
【００６９】
また、本実施形態では、第１マスク情報及び第２マスク情報うちのいずれか一方が乱数であり、他方が乱数の逆元であってもよい。
本実施形態によるＩＣカード１は、この場合であっても上述した第１マスク情報及び第２マスク情報に乱数を使用する場合と同様に、セキュリティを維持しつつ、処理時間を短縮することができる。
【００７０】
また、本実施形態による情報処理方法は、上述した乱数記憶部４１を備える情報処理装置（例えば、ＩＣカード１）の情報処理方法であって、乱数生成ステップと、逆元生成ステップと、ブラインド処理ステップと、ブラインド解除処理ステップとを含んでいる。
乱数生成ステップにおいて、乱数生成部５０が、乱数ｒｇを生成し、逆元生成ステップにおいて、逆元生成部６１が、（ｍｏｄ  ｎ）における乱数ｒｇの逆元を示す逆元ｖｇを生成する。ブラインド処理ステップにおいて、上述したように、ブラインド処理部６２が、第１マスク情報と第２マスク情報とに基づいてマスク情報Ｖを生成し、生成したマスク情報Ｖに基づいて、データをマスクしたブラインドデータを生成する。そして、ブラインド解除処理ステップにおいて、ブラインド解除処理部６４が、第１解除情報と第２解除情報とに基づいてマスク解除情報Ｕを生成し、生成したマスク解除情報Ｕに基づいて、少なくとも（ｍｏｄ  ｎ）を含む処理がされたブラインドデータのマスクを解除し、署名処理されたデータを生成する。
これにより、本実施形態による情報処理方法は、上述したＩＣカード１と同様に、セキュリティを維持しつつ、処理時間を短縮することができるという効果を奏する。
【００７１】
［第２の実施形態］
次に、第２の実施形態によるＩＣカード１について、図面を参照して説明する。
上述した第１の実施形態では、ＩＣカード１が、１３０ビット長のマスク情報Ｖ及びマスク解除情報Ｕを、乱数又は逆元における２つの６５ビット長の情報に基づいて生成する場合について説明した。これに対して、本実施形態では、所定のビット長の２つ以上の情報に基づいて、マスク情報Ｖ及びマスク解除情報Ｕを生成する場合について説明する。
【００７２】
なお、本実施形態におけるＩＣカード１の構成は、図１に示す第１の実施形態と同様であるので、ここでは説明を省略する。
本実施形態では、乱数記憶部４１が複数の組情報を記憶する点と、ブラインド処理部６２及びブラインド解除処理部６４によるマスク情報Ｖ及びマスク解除情報Ｕの生成処理が異なる点が、第１の実施形態と異なる。
【００７３】
本実施形態において、例えば、乱数記憶部４１が記憶する乱数（第１の乱数）、及び乱数生成部５０が生成する乱数（第２の乱数）は、マスク情報Ｖのビット長をＮ分割した所定のビット長の乱数である。ただし、ここでの分割数Ｎは、２以上の整数である。
また、本実施形態における乱数生成部５０は、Ｍ個の乱数ｒｇを生成する。ここで、Ｍは、１以上（Ｎ−１）以下の整数である。乱数生成部５０は、署名処理を行う際に、例えば、乱数ｒｉ〜乱数ｒｉ−（Ｍ−１）のＭ個の乱数ｒｇを生成する。
また、本実施形態における逆元生成部６１は、Ｍ個の乱数ｒｇそれぞれに対応するＭ個の逆元ｖｇ（第２の逆元）を生成する。逆元生成部６１は、例えば、逆元ｖｉ〜逆元ｖｉ−（Ｍ−１）のＭ個の逆元ｖｇを生成する。
【００７４】
また、乱数記憶部４１は、少なくとも（Ｎ−Ｍ）個の組情報を記憶している。乱数記憶部４１は、例えば、図５に示すように、（ｉ−Ｍ）回目から（ｉ−（Ｎ−Ｍ））回目までの過去の組情報を記憶している。
図５は、本実施形態における乱数記憶部４１の記憶例を示す図である。
この図に示す例では、乱数記憶部４１は、例えば、（ｉ−Ｍ）回目に生成した組情報を示す乱数ｒｉ−Ｍと逆元ｖｉ−Ｍとを関連付けた組情報を記憶している。乱数記憶部４１は、同様の組情報を（ｉ−（Ｎ−Ｍ））回目に生成した組情報まで記憶する。このように、乱数記憶部４１は、（Ｎ−Ｍ）個の組情報を記憶している。なお、各組情報は、署名処理が行われた後に、記憶処理部６５が、例えば、古い組情報から順に、新しく生成された組情報に置き換えられて変更される。
【００７５】
本実施形態におけるブラインド処理部６２は、（Ｎ−Ｍ）個の第１マスク情報と、Ｍ個の第２マスク情報とに基づいて、マスク情報Ｖを生成する。ここで、（Ｎ−Ｍ）個の第１マスク情報は、乱数記憶部４１が記憶する（Ｎ−Ｍ）個の組情報（第１組情報）に基づく情報であり、Ｍ個の第２マスク情報は、乱数ｒｇ及び逆元ｖｇのＭ個の組情報（第２組情報）に基づく情報である。なお、本実施形態では、（Ｎ−Ｍ）個の第１マスク情報は、（Ｎ−Ｍ）個の乱数ｒｓ（例えば、乱数ｒｉ−Ｍ〜乱数ｒｉ−（Ｎ−Ｍ））であり、Ｍ個の第２マスク情報は、Ｍ個の乱数ｒｓ（例えば、乱数ｒｉ〜乱数ｒｉ−（Ｍ−１））である場合の一例について説明する。
なお、本実施形態におけるマスク情報Ｖのビット長（サイズ）、分割数Ｎ、及び１回の処理に生成する乱数の数Ｍは、例えば、ＩＣカード１が有するハード構成の制限、想定されるセキュリティレベル、要求される処理時間などに基づいて定められている。
【００７６】
具体的に、ブラインド処理部６２は、下記の式（１３）に基づいて、マスク情報Ｖを生成する。
【００７７】
【数１３】
2015102812.tif 000015
【００７８】
なお、式（１３）をｉ回目の乱数までを利用したブラインド処理におけるマスク情報Ｖｉとした場合のマスク情報は、下記の式（１４）により表される。
【００７９】
【数１４】
2015102812.tif 000016
【００８０】
本実施形態におけるブラインド解除処理部６４は、（Ｎ−Ｍ）個の第１解除情報と、Ｍ個の第２解除情報とに基づいて、マスク解除情報Ｕを生成する。ここで、（Ｎ−Ｍ）個の第１解除情報は、乱数記憶部４１が記憶する（Ｎ−Ｍ）個の組情報（第１組情報）に基づく情報であり、Ｍ個の第２解除情報は、乱数ｒｇ及び逆元ｖｇのＭ個の組情報（第２組情報）に基づく情報である。なお、本実施形態では、（Ｎ−Ｍ）個の第１解除情報は、（Ｎ−Ｍ）個の逆元ｖｓ（例えば、逆元ｖｉ−Ｍ〜逆元ｖｉ−（Ｎ−Ｍ））であり、Ｍ個の第２解除情報は、Ｍ個の逆元ｖｓ（例えば、逆元ｖｉ〜逆元ｖｉ−（Ｍ−１））である。
具体的に、ブラインド解除処理部６４は、下記の式（１５）に基づいて、マスク解除情報Ｕを生成する。
【００８１】
【数１５】
2015102812.tif 000017
【００８２】
なお、式（１５）をｉ回目の逆元までを利用したブラインド解除処理におけるマスク解除情報Ｕｉとした場合のマスク解除情報は、下記の式（１６）により表される。
【００８３】
【数１６】
2015102812.tif 000018
【００８４】
また、例えば、上述のＭが“１”である場合（Ｍ＝１）には、マスク情報Ｖは、下記の式（１７）によって表される。すなわち、この場合、ブラインド処理部６２は、式（１７）により、マスク情報Ｖを生成する。
【００８５】
【数１７】
2015102812.tif 000019
【００８６】
なお、この式（１７）をｉ回目の逆元までを利用したブラインド処理におけるマスク情報Ｖｉとした場合のマスク解除情報は、下記の式（１８）により表される。
【００８７】
【数１８】
2015102812.tif 000020
【００８８】
また、同様に、上述のＭが“１”である場合（Ｍ＝１）には、マスク解除情報Ｕは、下記の式（１９）によって表される。すなわち、この場合、ブラインド処理部６２は、式（１９）により、マスク解除情報Ｕを生成する。
【００８９】
【数１９】
2015102812.tif 000021
【００９０】
なお、この式（１９）をｉ回目の逆元までを利用したブラインド解除処理におけるマスク解除情報Ｕｉとした場合のマスク解除情報は、下記の式（２０）により表される。
【００９１】
【数２０】
2015102812.tif 000022
【００９２】
また、上述のＮが偶数であり、Ｍが（Ｎ／２）である場合（Ｍ＝Ｎ／２）には、マスク情報Ｖは、下記の式（２１）によって表され、マスク解除情報Ｕは、下記の式（２２）によって表される。
【００９３】
【数２１】
2015102812.tif 000023
【００９４】
【数２２】
2015102812.tif 000024
【００９５】
次に、本実施形態によるＩＣカード１の動作について、図面を参照して説明する。
図６は、本実施形態における署名処理の一例を示すフローチャートである。
なお、図６に示す例は、上述したＭが“１”である場合（Ｍ＝１）の一例である。
図６において、まず、乱数生成部５０が乱数ｒｉを生成する（ステップＳ２０１）。乱数生成部５０は、生成した乱数ｒｉを制御部６０に出力する。
【００９６】
次に、制御部６０の逆元生成部６１が、乱数生成部５０によって生成された乱数ｒｉの逆元ｖｉを生成する（ステップＳ２０２）。逆元生成部６１は、乱数生成部５０が生成した乱数ｒｉを取得し、上述した式（２）に基づいて、逆元ｖｉを生成する。
【００９７】
次に、ブラインド処理部６２が、乱数記憶部４１が記憶する（ｉ−１）回目から（ｉ−（Ｎ−１））回目までの乱数ｒｉ−１〜乱数ｒｉ−（Ｎ−１）と、乱数生成部５０が生成した乱数ｒｉとを積算処理し、マスク情報Ｖを生成する（ステップＳ２０３）。すなわち、ブラインド処理部６２は、乱数記憶部４１が記憶する（ｉ−１）回目から（ｉ−（Ｎ−１））回目までの乱数ｒｉ−１〜乱数ｒｉ−（Ｎ−１）を（Ｎ−１）個の第１マスク情報として取得するとともに、乱数生成部５０が生成した乱数ｒｉを第２マスク情報として取得する。そして、ブラインド処理部６２は、取得した（Ｎ−１）個の第１マスク情報と、第２マスク情報とを上述した式（１８）により積算処理して、マスク情報Ｖを生成する。
【００９８】
続く、ステップＳ２０４及びステップＳ２０５の処理は、図４のステップＳ１０４及びステップＳ１０５の処理と同様であるので、ここではその説明を省略する。
【００９９】
次に、ブラインド解除処理部６４が、乱数記憶部４１が記憶する（ｉ−１）回目から（ｉ−（Ｎ−１））回目までの逆元ｖｉ−１〜逆元ｖｉ−（Ｎ−１）と、逆元生成部６１が生成した逆元ｖｉとを積算処理し、マスク解除情報Ｕを生成する（ステップＳ２０６）。すなわち、ブラインド解除処理部６４は、乱数記憶部４１が記憶する（ｉ−１）回目から（ｉ−（Ｎ−１））回目までの逆元ｖｉ−１〜逆元ｖｉ−（Ｎ−１）を（Ｎ−１）個の第１解除情報として取得するとともに、逆元生成部６１が生成した逆元ｖｉを第２解除情報として取得する。そして、ブラインド解除処理部６４は、取得した（Ｎ−１）個の第１解除情報と、第２解除情報とを上述した式（２０）により積算処理して、マスク解除情報Ｕを生成する。
【０１００】
続く、ステップＳ２０７及びステップＳ２０８の処理は、図４のステップＳ１０７及びステップＳ１０７の処理と同様であるので、ここではその説明を省略する。
なお、ステップＳ２０８において、記憶処理部６５は、例えば、最も古い組情報を、今回の署名処理の際に生成した乱数ｒｇと逆元ｖｇとの組情報（第２組情報）により上書きして記憶させる。
【０１０１】
以上説明したように、本実施形態によれば、記憶処理部６５が記憶する乱数ｒｓ（第１の乱数）及び乱数生成部５０が生成する乱数ｒｇ（第２の乱数）は、マスク情報Ｖのビット長をＮ分割した所定のビット長の乱数である（Ｎは、２以上の整数）。乱数生成部５０は、Ｍ個の乱数ｒｇを生成し（Ｍは、１以上（Ｎ−１）以下の整数）、逆元生成部６１は、Ｍ個の乱数ｒｇそれぞれに対応するＭ個の逆元ｖｇ（第２の逆元）を生成する。また、乱数記憶部４１は、少なくとも（Ｎ−Ｍ）個の組情報（第１組情報）を記憶している。ブラインド処理部６２は、乱数記憶部４１が記憶する（Ｎ−Ｍ）個の組情報に基づく（Ｎ−Ｍ）個の第１マスク情報と、乱数ｒｇ及び逆元ｖｇを関連付けたＭ個の組情報（第２組情報）に基づくＭ個の第２マスク情報とに基づいて、マスク情報Ｖを生成する。そして、ブラインド解除処理部６４は、上述した（Ｎ−Ｍ）個の情報に基づく（Ｎ−Ｍ）個の第１解除情報と、上述したＭ個の組情報に基づくＭ個の第２解除情報とに基づいて、マスク情報Ｖと等しいビット長のマスク解除情報Ｕを生成する。
これにより、マスク情報Ｖ及びマスク解除情報ＵをＮ個に分割した乱数を利用するので、生成する乱数ｒｇ及び逆元ｖｇのビット長が、分割数Ｎの応じて短くなる。そのため、本実施形態によるＩＣカード１は、マスク情報Ｖ及びマスク解除情報Ｕのビット長を低減させずに、生成する乱数ｒｇ及び逆元ｖｇのビット長を低減することができる。つまり、本実施形態によるＩＣカード１は、乱数ｒｇ及び逆元ｖｇを生成するための演算処理量をさらに低減することができる。よって、本実施形態によるＩＣカード１は、セキュリティを維持しつつ、処理時間をさらに短縮することができる。
【０１０２】
また、本実施形態の図６において説明した例では、生成する乱数の数Ｍが“１”である。これにより、本実施形態によるＩＣカード１は、マスク情報Ｖ及びマスク解除情報Ｕを生成する上で使用する乱数及び逆元において、生成する乱数ｒｇ及び逆元ｖｇの個数を最小にし、乱数記憶部４１が記憶する乱数ｒｓ及び逆元ｖｓの個数を最大にすることができる。
【０１０３】
なお、本実施形態では、分割数Ｎの増加に応じて、マスク情報Ｖのビット長、及びマスク解除情報Ｕのビット長を増加させてもよい。例えば、Ｎ＝２の場合には、マスク情報Ｖのビット長を１３２ビット（乱数のビット長を６６ビット）とし、Ｎ＝３の場合には、マスク情報Ｖのビット長を１３５ビット（乱数のビット長を４５ビット）とする。また、例えば、Ｎ＝４の場合には、マスク情報Ｖのビット長を１３６ビット（乱数のビット長を３４ビット）とする。
これにより、本実施形態によるＩＣカード１は、マスク情報Ｖ（マスク解除情報Ｕ）の分割数Ｎが増加することにより使用する乱数及び逆元のビット長が低下することによるランダム性の低下を、ビット長を増加させることにより低減することができる。
【０１０４】
［第３の実施形態］
次に、第２の実施形態によるＩＣカード１について、図面を参照して説明する。
上述した第１の実施形態において、マスク情報Ｖ及びマスク解除情報Ｕは、乱数ｒｇ、乱数ｒｓ、逆元ｖｇ、及び逆元ｖｓの組み合わせを変えて生成されてもよいことを説明した。そこで、本実施形態では、これらのマスク情報Ｖ及びマスク解除情報Ｕに使用する乱数及び逆元の組み合わせを、ランダムに変更する場合の一例について説明する。
なお、本実施形態では、第１の実施形態と同様に、マスク情報Ｖ及びマスク解除情報Ｕを２分割する場合について説明する。
【０１０５】
なお、本実施形態におけるＩＣカード１の構成は、図１に示す第１の実施形態と同様であるので、ここでは説明を省略する。
本実施形態では、乱数生成部５０がマスク情報Ｖ及びマスク解除情報Ｕに使用する乱数及び逆元の組み合わせを選択するための乱数を生成する点と、マスク情報Ｖ及びマスク解除情報Ｕの生成処理に、上述の組み合わせを選択する処理が追加される点が、第１の実施形態と異なる。
【０１０６】
本実施形態における乱数生成部５０は、乱数ｒｇを生成するとともに、乱数Ｒ２（第３の乱数）を生成する。乱数生成部５０は、生成した乱数Ｒ２を制御部６０に出力する。なお、本実施形態では、図７に示すように４通りの組み合わせが存在するため、乱数Ｒ２は、例えば、２ビット長の乱数であり、“０”〜“３”の値となる。また、乱数生成部５０は、２ビット以上の乱数（例えば、乱数ｒｇと同じビット長の乱数）を生成して、生成した乱数の内の２ビット（例えば、下位２ビット）を乱数Ｒ２として出力してもよい。
【０１０７】
図７は、本実施形態における乱数と逆元との組み合わせの一例を示す図である。
図７に示す例では、マスク情報Ｖ及びマスク解除情報Ｕを生成するために、パターン“１”〜パターン“４”の４通りの組み合わせがあり、乱数Ｒ２の値に応じて、これらの組み合わせ（パターン）のうちの１つが選択される。
なお、図７に示すような組み合わせの設定テーブルは、例えば、ＲＯＭ２０に予め記憶されている。
【０１０８】
本実施形態におけるブラインド処理部６２は、乱数Ｒ２に応じて、乱数ｒｓ及び乱数ｒｇと、乱数ｒｓ及び逆元ｖｇと、逆元ｖｓ及び乱数ｒｇと、逆元ｖｓ及び逆元ｖｇと、のいずれかの組み合わせを第１マスク情報及び第２マスク情報の組み合わせとして選択する。すなわち、ブラインド処理部６２は、例えば、乱数Ｒ２に応じて、図７に示す設定テーブルの「マスク情報」の組み合わせのうちの１つを選択する。ブラインド処理部６２は、選択した組み合わせに応じた第１マスク情報及び第２マスク情報に基づいて、マスク情報Ｖを生成する。
【０１０９】
本実施形態におけるブラインド解除処理部６４は、乱数Ｒ２に応じて、乱数ｒｓ及び乱数ｒｇと、乱数ｒｓ及び逆元ｖｇと、逆元ｖｓ及び乱数ｒｇと、逆元ｖｓ及び逆元ｖｇと、のいずれかの組み合わせを第１解除情報及び第２解除情報の組み合わせとして選択する。すなわち、ブラインド解除処理部６４は、例えば、乱数Ｒ２に応じて、図７に示す設定テーブルの「マスク解除情報」の組み合わせのうちの１つを選択する。ブラインド解除処理部６４は、選択した組み合わせに応じた第１解除情報及び第２解除情報に基づいて、マスク解除情報Ｕを生成する。
【０１１０】
次に、本実施形態によるＩＣカード１の動作について、図面を参照して説明する。
図８は、本実施形態における署名処理の一例を示すフローチャートである。
図８において、ステップＳ３０１及びステップＳ３０２の処理は、図４のステップＳ１０１及びステップＳ１０２の処理と同様であるので、ここではその説明を省略する。
なお、図８において、乱数ｒｉは、乱数ｒｇを示し、乱数ｒｉ−１は、乱数ｒｓを示す。また、逆元ｖｉは、逆元ｖｇを示し、逆元ｖｉ−１は、逆元ｖｓを示す。
【０１１１】
続く、ステップＳ３０３において、乱数生成部５０は、乱数Ｒ２を生成し、生成した乱数Ｒ２を制御部６０に出力する。
【０１１２】
次に、ブラインド処理部６２は、乱数Ｒ２の値に応じて分岐処理を行う（ステップＳ３０４）。ブラインド処理部６２は、乱数Ｒ２の値が“０”である場合（Ｒ２＝０）に、処理をステップＳ３０５に進め、乱数ｒｉと乱数ｒｉ−１とを積算してマスク情報Ｖを生成する。すなわち、ブラインド処理部６２は、乱数ｒｉ−１を第１マスク情報として取得するとともに、乱数ｒｉを第２マスク情報として取得する。そして、ブラインド処理部６２は、取得した乱数ｒｉと乱数ｒｉ−１とに基づいて、マスク情報Ｖを生成する。
【０１１３】
また、ブラインド処理部６２は、乱数Ｒ２の値が“１”である場合（Ｒ２＝１）に、処理をステップＳ３０６に進め、乱数ｒｉと逆元ｖｉ−１とを積算してマスク情報Ｖを生成する。すなわち、ブラインド処理部６２は、逆元ｖｉ−１を第１マスク情報として取得するとともに、乱数ｒｉを第２マスク情報として取得する。そして、ブラインド処理部６２は、取得した乱数ｒｉと逆元ｖｉ−１とに基づいて、マスク情報Ｖを生成する。
【０１１４】
また、ブラインド処理部６２は、乱数Ｒ２の値が“２”である場合（Ｒ２＝２）に、処理をステップＳ３０７に進め、逆元ｖｉと乱数ｒｉ−１とを積算してマスク情報Ｖを生成する。すなわち、ブラインド処理部６２は、乱数ｒｉ−１を第１マスク情報として取得するとともに、逆元ｖｉを第２マスク情報として取得する。そして、ブラインド処理部６２は、取得した逆元ｖｉと乱数ｒｉ−１とに基づいて、マスク情報Ｖを生成する。
【０１１５】
また、ブラインド処理部６２は、乱数Ｒ２の値が“３”である場合（Ｒ２＝３）に、処理をステップＳ３０８に進め、逆元ｖｉと逆元ｖｉ−１とを積算してマスク情報Ｖを生成する。すなわち、ブラインド処理部６２は、逆元ｖｉ−１を第１マスク情報として取得するとともに、逆元ｖｉを第２マスク情報として取得する。そして、ブラインド処理部６２は、取得した逆元ｖｉと乱数ｒｉ−１とに基づいて、マスク情報Ｖを生成する。
【０１１６】
続く、ステップＳ３０９及びステップＳ３１０の処理は、図４のステップＳ１０４及びステップＳ１０５の処理と同様であるので、ここではその説明を省略する。
【０１１７】
次に、ブラインド解除処理部６４は、乱数Ｒ２の値に応じて分岐処理を行う（ステップＳ３１１）。ブラインド解除処理部６４は、乱数Ｒ２の値が“０”である場合（Ｒ２＝０）に、処理をステップＳ３１２に進め、逆元ｖｉと逆元ｖｉ−１とを積算してマスク解除情報Ｕを生成する。すなわち、ブラインド解除処理部６４は、逆元ｖｉ−１を第１解除情報として取得するとともに、逆元ｖｉを第２解除情報として取得する。そして、ブラインド処理部６２は、取得した逆元ｖｉと逆元ｖｉ−１とに基づいて、マスク解除情報Ｕを生成する。
【０１１８】
また、ブラインド解除処理部６４は、乱数Ｒ２の値が“１”である場合（Ｒ２＝１）に、処理をステップＳ３１３に進め、逆元ｖｉと乱数ｒｉ−１とを積算してマスク解除情報Ｕを生成する。すなわち、ブラインド解除処理部６４は、乱数ｒｉ−１を第１解除情報として取得するとともに、逆元ｖｉを第２解除情報として取得する。そして、ブラインド解除処理部６４は、取得した逆元ｖｉと乱数ｒｉ−１とに基づいて、マスク解除情報Ｕを生成する。
【０１１９】
また、ブラインド解除処理部６４は、乱数Ｒ２の値が“２”である場合（Ｒ２＝２）に、処理をステップＳ３１４に進め、乱数ｒｉと逆元ｖｉ−１とを積算してマスク解除情報Ｕを生成する。すなわち、ブラインド解除処理部６４は、逆元ｖｉ−１を第１解除情報として取得するとともに、乱数ｒｉを第２解除情報として取得する。そして、ブラインド解除処理部６４は、取得した乱数ｒｉと逆元ｖｉ−１とに基づいて、マスク解除情報Ｕを生成する。
【０１２０】
また、ブラインド解除処理部６４は、乱数Ｒ２の値が“３”である場合（Ｒ２＝３）に、処理をステップＳ３１５に進め、乱数ｒｉと乱数ｒｉ−１とを積算してマスク解除情報Ｕを生成する。すなわち、ブラインド解除処理部６４は、乱数ｒｉ−１を第１解除情報として取得するとともに、乱数ｒｉを第２解除情報として取得する。そして、ブラインド解除処理部６４は、取得した乱数ｒｉと乱数ｒｉ−１とに基づいて、マスク解除情報Ｕを生成する。
【０１２１】
続く、ステップＳ３１６及びステップＳ３１７の処理は、図４のステップＳ１０７及びステップＳ１０８の処理と同様であるので、ここではその説明を省略する。
【０１２２】
以上説明したように、本実施形態によれば、乱数生成部５０は、乱数ｒｇを生成するとともに、乱数Ｒ２（第３の乱数）を生成する。ブラインド処理部６２は、乱数Ｒ２に応じて、乱数ｒｓ及び乱数ｒｇと、乱数ｒｓ及び逆元ｖｇと、逆元ｖｓ及び乱数ｒｇと、逆元ｖｓ及び逆元ｖｇと、のいずれかの組み合わせを第１マスク情報及び第２マスク情報の組み合わせとして選択する。
これにより、本実施形態によるＩＣカード１は、マスク情報Ｖを生成する乱数及び逆元の組み合わせをランダムに変更するため、マスク情報Ｖのランダム性を向上させることができる。
【０１２３】
［第４の実施形態］
次に、第４の実施形態によるＩＣカード１について、図面を参照して説明する。
本実施形態では、上述した第３の実施形態に、第２の実施形態を組み合わせて拡張した場合の一例について説明する。
【０１２４】
なお、本実施形態におけるＩＣカード１の構成は、図１に示す第１の実施形態と同様であるので、ここでは説明を省略する。
本実施形態では、マスク情報Ｖ及びマスク解除情報Ｕを２分割からＮ分割に拡張するため、マスク情報Ｖ及びマスク解除情報Ｕに使用する乱数及び逆元の組み合わせは、２Ｎ通り（２のＮ乗通り）となる。また、本実施形態では、一例として、分割数Ｎが“３”（Ｎ＝３）であり、乱数の生成数Ｍが“１”（Ｍ＝１）である場合の例について説明する。
【０１２５】
乱数生成部５０は、第３の実施形態と同様に、乱数ｒｇを生成するとともに、乱数Ｒ２（第３の乱数）を生成し、生成した乱数Ｒ２を制御部６０に出力する。なお、本実施形態では、上述したように分割数Ｎが“３”であるので、乱数及び逆元の組み合わせは、図９に示すように８通りとなり、乱数Ｒ２は、例えば、３ビット長の乱数であり、“０”〜“７”の値となる。
【０１２６】
図９は、本実施形態における乱数と逆元との組み合わせの一例を示す図である。
図９に示す例では、マスク情報Ｖ及びマスク解除情報Ｕを生成するために８通りの組み合わせがあり、乱数Ｒ２の値に応じて、これらの組み合わせのうちの１つが選択される。
なお、図９に示すような組み合わせの設定テーブルは、例えば、ＲＯＭ２０に予め記憶されている。
【０１２７】
ブラインド処理部６２は、２３通り（２Ｎ通りの一例）のうちから、乱数Ｒ３に応じて、１つの組み合わせを選択して、第１マスク情報及び第２マスク情報を生成する。すなわち、ブラインド処理部６２は、例えば、乱数Ｒ２に応じて、図９に示す設定テーブルの「マスク情報」の組み合わせのうちの１つを選択する。ブラインド処理部６２は、選択した組み合わせに応じた第１マスク情報及び第２マスク情報に基づいて、マスク情報Ｖを生成する。
【０１２８】
また、ブラインド解除処理部６４は、２３通り（２Ｎ通りの一例）のうちから、乱数Ｒ３に応じて、１つの組み合わせを選択して、第１解除情報及び第２解除情報を生成する。すなわち、ブラインド解除処理部６４は、例えば、乱数Ｒ２に応じて、図９に示す設定テーブルの「マスク解除情報」の組み合わせのうちの１つを選択する。ブラインド解除処理部６４は、選択した組み合わせに応じた第１解除情報及び第２解除情報に基づいて、マスク解除情報Ｕを生成する。
【０１２９】
次に、本実施形態によるＩＣカード１の動作について、図面を参照して説明する。
図１０は、本実施形態における署名処理の一例を示すフローチャートである。
図１０において、ステップＳ４０１からステップＳ４０３の処理は、図８のステップＳ３０１からステップＳ３０４の処理と同様であるので、ここではその説明を省略する。
【０１３０】
続く、ステップＳ４０４において、ブラインド処理部６２は、２Ｎ通り（例えば、２３通り）のうちから、乱数Ｒ３に応じて、第１マスク情報及び第２マスク情報を選択する。具体的に、ブラインド処理部６２は、乱数Ｒ２に応じて、図９に示す設定テーブルの「マスク情報」の組み合わせのうちの１つを選択する。なお、図９において、「ストアマスク情報」が第２マスク情報を示し、「生成マスク情報」が第２マスク情報を示す。
【０１３１】
次に、ブラインド処理部６２は、第１マスク情報及び第２マスク情報に基づいて、マスク情報Ｖを生成する（ステップＳ４０５）。ブラインド処理部６２は、乱数Ｒ３に応じて選択した第１マスク情報及び第２マスク情報を取得する。そして、ブラインド処理部６２は、取得した第１マスク情報及び第２マスク情報に基づいて、マスク情報Ｖを生成する。
【０１３２】
続く、ステップＳ４０６及びステップＳ４０７の処理は、図８のステップＳ３０９及びステップＳ３１０の処理と同様であるので、ここではその説明を省略する。
【０１３３】
次に、ステップＳ４０８において、ブラインド解除処理部６４は、２Ｎ通り（例えば、２３通り）のうちから、乱数Ｒ３に応じて、第１解除情報及び第２解除情報を選択する。具体的に、ブラインド解除処理部６４は、乱数Ｒ２に応じて、図９に示す設定テーブルの「マスク解除情報」の組み合わせのうちの１つを選択する。なお、図９において、「ストアマスク解除情報」が第２解除情報を示し、「生成マスク解除情報」が第２解除情報を示す。
【０１３４】
次に、ブラインド解除処理部６４は、第１解除情報及び第２解除情報に基づいて、マスク解除情報Ｕを生成する（ステップＳ４０９）。ブラインド解除処理部６４は、乱数Ｒ３に応じて選択した第１解除情報及び第２解除情報を取得する。そして、ブラインド解除処理部６４は、取得した第１解除情報及び第２解除情報に基づいて、マスク解除情報Ｕを生成する。
【０１３５】
続く、ステップＳ４１０及びステップＳ４１１の処理は、図８のステップＳ３１６及びステップＳ３１７の処理と同様であるので、ここではその説明を省略する。
【０１３６】
以上説明したように、本実施形態によれば、乱数生成部５０が、乱数Ｒ２を生成し、ブラインド処理部６２が、２Ｎ（２のＮ乗）通りの組み合わせのうちから、乱数Ｒ２に応じて、１つの組み合わせを選択して、第１マスク情報及び第２マスク情報を生成する。ここで、２Ｎ通りの組み合わせは、（Ｎ−Ｍ）個の第１組情報とＭ個の第２組情報とを含むＮ個の組情報それぞれの乱数と逆元とのいずれかを選択する組み合わせである。
これにより、本実施形態によるＩＣカード１は、マスク情報Ｖのランダム性をさらに向上させることができる。
【０１３７】
［第５の実施形態］
次に、第５の実施形態によるＩＣカード１について、図面を参照して説明する。
本実施形態では、ＲＳＡ暗号処理のビット長に応じて、マスク情報Ｖ及びマスク解除情報Ｕのビット長を変更する場合の一例について説明する。
【０１３８】
なお、本実施形態におけるＩＣカード１の構成は、図１に示す第１の実施形態と同様であるので、ここでは説明を省略する。
本実施形態では、一例として、乱数の生成数Ｍが“１”（Ｍ＝１）である場合の例について説明する。
【０１３９】
図１１は、本実施形態におけるアルゴリズムＩＤと乱数の個数との組み合わせの一例を示す図である。
この図に示すように、本実施形態では、「アルゴリズムＩＤ」と「マスク情報の乱数の個数Ｌ」との対応が、予め設定されている。ここで、「アルゴリズムＩＤ」は、署名処理のアルゴリズム種類を識別する識別情報と、鍵長を識別する識別情報とを含む識別情報である。また、「マスク情報の乱数の個数Ｌ」は、マスク情報Ｖを生成するための乱数の個数を示し、上述した分割数Ｎに対応する。
この「アルゴリズムＩＤ」と「マスク情報の乱数の個数Ｌ」とを対応付けた設定テーブルは、例えば、ＲＯＭ２０に予め記憶されている。
【０１４０】
図１１に示す例では、「アルゴリズムＩＤ」が“ＲＳＡ１０２４”である場合に、「マスク情報の乱数の個数Ｌ」が“２”に設定されている。つまり、鍵長が１０２４ビットのＲＳＡ暗号では、分割数Ｎが“２”に設定されることを示している。また、「アルゴリズムＩＤ」が“ＲＳＡ２０４８”である場合に、「マスク情報の乱数の個数Ｌ」が“３”に設定されている。つまり、鍵長が２０４８ビットのＲＳＡ暗号では、分割数Ｎが“３”に設定されることを示している。
【０１４１】
本実施形態におけるブラインド処理部６２は、署名処理部６３によって実行される署名処理に用いる鍵長に応じて、マスク情報Ｖのビット長を乱数ｒｇのビット長単位で変更する。ブラインド処理部６２は、例えば、図１１に示す設定テーブルを参照して、分割数Ｎを、「アルゴリズムＩＤ」に対応する分割数に設定する。そして、ブラインド処理部６２は、設定した分割数Ｎに応じたビット長のマスク情報Ｖを生成する。
【０１４２】
図１２は、本実施形態におけるアルゴリズムＩＤとマスク情報のビット長との設定例を示す図である。
例えば、図１２（ａ）に示しように、ブラインド処理部６２は、「アルゴリズムＩＤ」が“ＲＳＡ１０２４”である場合に、６６ビット長の乱数を２個使用して、１３２ビット長のマスク情報Ｖを生成する。
また、例えば、図１２（ｂ）に示しように、ブラインド処理部６２は、「アルゴリズムＩＤ」が“ＲＳＡ２０４８”である場合に、６６ビット長の乱数を３個使用して、１９８ビット長のマスク情報Ｖを生成する。
【０１４３】
また、ブラインド解除処理部６４は、ブラインド処理部６２と同様に、暗号処理に用いる鍵長に応じて、マスク解除情報Ｕのビット長を乱数ｒｇのビット長単位で変更する。
なお、本実施形態において、乱数記憶部４１に記憶する組情報の数は、設定される分割数Ｎの最大値に応じて決定される。
【０１４４】
次に、本実施形態によるＩＣカード１の動作について、図面を参照して説明する。
図１３は、本実施形態における署名処理の一例を示すフローチャートである。
図１３において、ステップＳ５０１及びステップＳ５０２の処理は、図６のステップＳ２０１及びステップＳ２０２の処理と同様であるので、ここではその説明を省略する。なお、図１３に示す例では、分割数Ｎが乱数の個数Ｌに置き換わっている。
【０１４５】
続く、ステップＳ５０３において、ブラインド処理部６２は、上述したアルゴリズムＩＤを取得する。なお、アルゴリズムＩＤは、処理に応じてＩＣカード１に接続されるＩＣカードリーダライタを備える情報端末装置から取得してもよいし、処理に応じてＲＯＭ２０やＥＥＰＲＯＭ４０に記憶されているものを取得してもよい。また、制御部６０が、処理に応じて、アルゴリズムＩＤを設定するものとしてもよい。
【０１４６】
次に、ブラインド処理部６２は、取得したアルゴリズムＩＤに基づいて、乱数の個数Ｌを取得する（ステップＳ５０４）。ブラインド処理部６２は、例えば、図１１に示す設定テーブルに基づいて、乱数の個数Ｌを取得する。
【０１４７】
次に、ブラインド処理部６２は、乱数の個数Ｌに基づいて、第１マスク情報と第２マスク情報とを取得して、マスク情報Ｖを生成する（ステップＳ５０５）。
続く、ステップＳ５０６からステップＳ５１０の処理は、図６のステップＳ２０４からびステップＳ２０８の処理と同様であるので、ここではその説明を省略する。
【０１４８】
以上説明したように、本実施形態によれば、ブラインド処理部６２は、ブラインドデータに、少なくとも（ｍｏｄ  ｎ）を含む処理として実行される署名処理（暗号処理の一例）に用いる鍵長に応じて、マスク情報Ｖのビット長を乱数ｒｇのビット長単位で変更する。
これにより、本実施形態によるＩＣカード１は、処理時間の増大を抑制しつつ、鍵長を増大させた署名処理（暗号処理）に対応させることができる。また、本実施形態によるＩＣカード１は、簡易な手法により、鍵長を拡張させることができる。
【０１４９】
［第６の実施形態］
次に、第６の実施形態によるＩＣカード１について、図面を参照して説明する。
本実施形態では、乱数記憶部４１が（Ｎ−Ｍ）個より多い複数の組情報を記憶し、ブラインド処理部６２が、乱数Ｒ３に応じて、複数の組情報のうちから、マスク情報Ｖの生成に使用する（Ｎ−Ｍ）個の組情報をランダムに選択する場合の一例について説明する。
【０１５０】
本実施形態において、乱数生成部５０は、乱数ｒｇを生成するとともに、乱数Ｒ３（第４の乱数）を生成する。
また、乱数記憶部４１は、（Ｎ−Ｍ）個より多い複数の組情報（第１組情報）を記憶する。
ブラインド処理部６２は、乱数Ｒ３に応じて、乱数記憶部４１が記憶する複数の組情報のうちから、第１マスク情報に使用する組情報を選択する。
【０１５１】
図１４は、本実施形態における署名処理の一例を示すフローチャートである。
なお、図１４に示す例は、分割数Ｎが“２”（Ｎ＝２）であり、乱数の生成数Ｍが“１”（Ｍ＝１）である場合の例を示している。
図１４において、ステップＳ６０１及びステップＳ６０２の処理は、図４のステップＳ１０１及びステップＳ１０２の処理と同様であるので、ここではその説明を省略する。
【０１５２】
続く、ステップＳ６０３において、乱数生成部５０が、乱数Ｒ３を生成する。
次に、ブラインド処理部６２は、乱数Ｒ３に基づいて、乱数記憶部４１が記憶する複数の組情報のうちの１つを選択する（ステップＳ６０４）。
【０１５３】
次に、ブラインド処理部６２は、乱数ｒｉ（乱数ｒｇ）と、選択した組情報の乱数ｒｓとを積算してマスク情報Ｖを生成する（ステップＳ６０５）。
続く、ステップＳ６０６及びステップＳ６０７の処理は、図４のステップＳ１０４及びステップＳ１０５の処理と同様であるので、ここではその説明を省略する。
【０１５４】
次に、ブラインド解除処理部６４は、逆元ｖｉ（逆元ｖｇ）と、選択した組情報の逆元ｖｓとを積算してマスク解除情報Ｕを生成する（ステップＳ６０８）。
続く、ステップＳ６０９及びステップＳ６１０の処理は、図４のステップＳ１０７及びステップＳ１０８の処理と同様であるので、ここではその説明を省略する。
なお、ステップＳ１０８において、記憶処理部６５は、生成した乱数ｒｉ（乱数ｒｇ）と逆元ｖｉ（逆元ｖｇ）と乱数記憶部４１に記憶する際に、組情報の最大組数になるまでの間において、乱数ｒｉ（乱数ｒｇ）と逆元ｖｉ（逆元ｖｇ）との組情報を上書きせずに追記して記憶させる。
【０１５５】
以上説明したように、本実施形態によれば、乱数生成部５０は、乱数ｒｇを生成するとともに、乱数Ｒ３（第４の乱数）を生成し、乱数記憶部４１は、複数の組情報を記憶する。そして、ブラインド処理部６２は、乱数Ｒ３に応じて、乱数記憶部４１が記憶する複数の組情報のうちから、第１マスク情報に使用する組情報を選択する。
これにより、第１マスク情報を複数の中からランダムに選択するので、本実施形態によるＩＣカード１は、マスク情報Ｖのランダム性をさらに向上させることができる。
【０１５６】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態は、それぞれを単独に実施してもよいし、複数の実施形態を組み合わせて実施してもよい。
また、上記の各実施形態において、署名処理にＲＳＡ暗号を使用する場合について説明したが、ＩＣカード１は、冪乗剰余演算処理であれば、他の処理方式を用いてもよい。
【０１５７】
また、上記の各実施形態において、情報処理装置の一例として、ＩＣカード１である場合について説明したが、これに限定されるものではなく、他の情報処理装置に適用してもよい。
また、上記の各実施形態において、ブラインド処理及びブラインド解除処理は、暗号処理の一例として、メッセージ等の署名処理である場合について説明したが、暗号処理が、例えば、暗号化処理、復号処理、メッセージ等の検証処理などである場合に適用してもよい。また、ブラインド処理及びブラインド解除処理を適用する暗号処理は、これらに限定されるものではなく、他の暗号処理に適用してもよい。
また、上記の各実施形態において、ブラインド処理が、秘密鍵ｄ（又は署名鍵ｄ）を利用したＲＳＡ暗号処理に適用される場合について説明したが、公開鍵ｅ（又は検証鍵ｅ）を利用するＲＳＡ暗号処理の場合に適用されてもよい。
【０１５８】
また、上記の各実施形態において、ＩＣカード１は、記憶処理部６５を備える場合について説明したが、記憶処理部６５を備えない形態であってもよい。例えば、第６の実施形態において、乱数記憶部４１が、（Ｎ−Ｍ）個より多い大量の組情報（第１組情報）を記憶している場合など、新たに生成した乱数ｒｇ及び逆元ｖｇの組情報（第２組情報）を、乱数記憶部４１に記憶させなくてもよい。
【０１５９】
なお、上述したＩＣカード１は、内部に、コンピュータシステムを有している。そして、上述したＩＣカード１が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述したＩＣカード１が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１６０】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部又は外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後にＩＣカード１が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１６１】
また、上述した機能の一部又は全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１６２】
１  ＩＣカード
１０  インタフェース部
２０  ＲＯＭ
３０  ＲＡＭ
４０  ＥＥＰＲＯＭ
４１  乱数記憶部
５０  乱数生成部
６０  制御部
６１  逆元生成部
６２  ブラインド処理部
６３  署名処理部
６４  ブラインド解除処理部
６５  記憶処理部
【図１】
2015102812.tif 000025
【図２】
2015102812.tif 000026
【図３】
2015102812.tif 000027
【図４】
2015102812.tif 000028
【図５】
2015102812.tif 000029
【図６】
2015102812.tif 000030
【図７】
2015102812.tif 000031
【図８】
2015102812.tif 000032
【図９】
2015102812.tif 000033
【図１０】
2015102812.tif 000034
【図１１】
2015102812.tif 000035
【図１２】
2015102812.tif 000036
【図１３】
2015102812.tif 000037
【図１４】
2015102812.tif 000038