(57)【要約】  暗号化されたデータのサイズの増加を極力抑えつつ、蓄積データが解析されたとしても平文データは漏洩しない暗号化装置を提供する。  暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置は、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶し、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成し、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する。
2009147788.tif 000002
【特許請求の範囲】
【請求項１】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置であって、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部と
を具備することを特徴とする暗号化装置。
【請求項２】
前記暗号部は、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれる場合、前記未利用領域に前記新たな暗号化対象のデータを追加するように暗号化データを生成する
ことを特徴とする請求項１記載の暗号化装置。
【請求項３】
前記暗号部は、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超える場合、
新たな暗号化領域を用いて前記新たに暗号化されたデータが最初の暗号データとなる第２の暗号化データを生成し、
前記制御部は、
前記第２の暗号化データを生成すると、前記第２の暗号化データに基づいて前記新たな暗号化対象のデータの暗号化に用いられた利用済領域を示す第２の管理情報を、前記第２の暗号化データのために生成して前記記憶部に記憶する
ことを特徴とする請求項２記載の暗号化装置。
【請求項４】
前記管理情報は、前記利用済領域のデータ長を示す情報を含む
ことを特徴とする請求項３記載の暗号化装置。
【請求項５】
前記単位長は、暗号化可能な平文のデータ長であり、
前記利用済領域のデータ長は、暗号化可能な平文のデータ長のうち暗号化に利用されたデータ長であり、
前記暗号部は、
前記単位長から前記利用済領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より大きい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれると判断する
ことを特徴とする請求項４記載の暗号化装置。
【請求項６】
前記暗号部は、
前記単位長から前記利用領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より小さい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超えると判断する
ことを特徴とする請求項５記載の暗号化装置。
【請求項７】
前記暗号部は、
公開鍵暗号の暗号化鍵を保持する保持部と、
乱数の生成部と、を有し、
前記保持部にて保持されている前記公開鍵及び前記生成部にて生成された前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、
この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加する
ことを特徴とする請求項１記載の暗号化装置。
【請求項８】
前記暗号部は、
前記暗号化する単位長毎に、前記生成部に新たな乱数を生成させて、異なる可変暗号鍵を生成する
ことを特徴とする請求項７記載の暗号化装置。
【請求項９】
前記暗号部は、
前記新たな暗号化対象のデータを暗号化する際、前記新たな暗号化対象データが前記暗号化する単位長に基づいて定められた暗号化領域を用いて最初に暗号化される場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記新たな対象データを暗号化した際の利用済領域のデータサイズが前記最小サイズ以上となるよう所定の初期データを付加して前記暗号化データを生成する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１０】
前記所定の初期データは、乱数により生成される数値列である
ことを特徴とする請求項９記載の暗号化装置。
【請求項１１】
公開鍵暗号の暗号化鍵を保持する保持部と、
乱数の乱数生成部と、
前記公開鍵及び前記乱数を用いて可変暗号鍵を生成する鍵生成部と、を具備する外部装置と接続する接続部を有し、
前記暗号部は、
前記外部装置から前記可変暗号鍵を入力し、この入力した可変暗号鍵からなるデータ領域を暗号化領域として用いて前記暗号化データを生成する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１２】
第２の記憶部を設け、
前記暗号部は、
公開鍵暗号の暗号化鍵を保持する保持部と、
乱数の生成部と、を有し、
前記公開鍵及び前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、
前記可変暗号鍵を前記第２の記憶部に保存し、
前記暗号化する単位長毎に、前記第２の記憶部から異なる可変暗号鍵を読み出し、読み出した可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１３】
公開鍵暗号の暗号化鍵を保持する外部装置と接続する接続部を有し、
前記暗号部は、
乱数の乱数生成部を有し、
前記外部装置から入力した公開鍵及び前記乱数を用いて前記単位長に基づく可変暗号鍵を生成し、この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１４】
前記暗号化データを復号する外部装置と接続される接続部を設け、
前記制御部は、
前記新たな暗号化対象のデータを暗号化する際、前記新たな対象データが前記暗号化する単位長の暗号化データの最初のデータとなる場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達するまで前記暗号化データを前記外部装置に出力しない制御を行う
ことを特徴とする請求項１記載の暗号化装置。
【請求項１５】
前記暗号部は、
前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達して前記暗号化データを前記外部装置に出力した場合、
前記暗号化する単位長より小さい次の暗号化対象のデータが最初の暗号されたデータとなる第２の暗号化データを生成する
ことを特徴とする請求項１４記載の暗号化装置。
【請求項１６】
前記暗号化データを復号する外部装置と接続される接続部を設け、
前記制御部は、
前記暗号化データを前記管理情報と共に前記外部装置に出力する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１７】
前記暗号化は、ＮＴＲＵ暗号、ＥＬＧａｍａｌ暗号、楕円ＥＬＧ暗号のいずれかの暗号化方式である
ことを特徴とする請求項１記載の暗号化装置。
【請求項１８】
前記記憶部は、耐タンパー技術により保護されている
ことを特徴とする請求項１記載の暗号化装置。
【請求項１９】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置と、前記暗号化されたデータを復号する復号装置とを含む暗号化システムであって、
前記暗号化装置は、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新し、前記暗号化データを前記更新された管理情報と共に前記復号装置に出力する制御部と、を具備し、
前記復号装置は、
前記暗号化装置から入力した前記暗号化データを復号し、復号されたデータのうち、前記暗号化装置から入力した前記管理情報が示す利用済領域に基づく領域に存在する復号対象データを取得する復号処理部を具備する
ことを特徴とする暗号化システム。
【請求項２０】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化方法であって、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶し、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成し、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する
ことを特徴とする暗号化方法。
【請求項２１】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置を制御するコンピュータプログラムであって、
前記暗号化装置のコンピュータに対し、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を前記暗号化装置の記憶部に記憶する処理と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する処理と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する処理とを実行させる
ことを特徴とするコンピュータプログラム。
【請求項２２】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置に用いられる集積回路であって、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部と
を具備することを特徴とする集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化を行う単位データのサイズよりも小さな複数のデータを暗号化して蓄積する技術に関する。
技術に関する。
【背景技術】
【０００２】
近年、温度センサーなどの各種センサー機能と通信機能の両方を兼ね備えたタグの開発が進められており、それらを用いた各種アプリケーションも検討されている。例えば、輸送する生鮮食料品や美術品に、温度センサーを有するタグを付けて、輸送時の温度を計測するような応用が考えられる。また別の応用として、体温などを長期間あるいは定期的に計測する必要のある患者向けの健康管理用途が考えられる。このようにして、それら計測機能を有するタグ（以降、センサータグと呼ぶ）を輸送時の品物や患者の体に貼り付けることで、定期的に状態を計測することができる。計測した情報は、センサータグ内に蓄積しておき、一定期間の計測が終わった後に、品物や患者の体から取り外して、通信機能を用いて内部のデータを読み出す。センサータグは超小型化することにより、品物の運搬者や患者が意識することなく定期的な計測が可能となる。【０００３】
上記の健康管理用途にセンサータグを用いる場合、センサータグ内に蓄積する計測情報の機密性担保が必要となる。なぜなら、計測した生体情報は、被計測者にとってはプライバシー情報であるからである。そのため、体に貼り付けていたセンサータグが気づかないうちに剥がれ落ちて第三者に拾得された場合や、データ読出し後のセンサータグの管理の不徹底により第三者の手に渡った場合には、被計測者の生体情報の漏洩を防止する必要がある。そこで、データ漏洩を防止するために、計測した生体情報をセンサータグ内部で暗号化して蓄積するような仕組みが必要である。【０００４】
暗号化の方法には大きく２種類存在する。秘密鍵暗号を用いる方法と、公開鍵暗号を用いる方法である。秘密鍵暗号は暗号化鍵と復号鍵は同一で、公開鍵暗号は暗号化鍵（公開鍵）と復号鍵（秘密鍵）が異なる点が特徴である。また、何れの場合にも、センサータグには暗号化鍵のみを入れることになる。ここでは、センサータグが解析され、内部データが漏洩する場合を想定する。そのような想定の下では、暗号化鍵が解析されることを意味する。【０００５】
秘密鍵暗号を用いた場合、暗号化鍵は復号鍵と同じなので、その暗号化鍵を用いて、センサータグに入っている暗号化データを容易に復号することが出来る。よって、機密性担保が十分であるとは言えない。【０００６】
一方、公開鍵暗号を用いた場合、暗号化鍵は入手することが出来るが、公開鍵暗号の特徴により、暗号化鍵から復号鍵を現実時間で導出することができない。よって、復号鍵を導出できず、センサータグに入っている暗号化データを復号することが出来ない。このように、蓄積データを暗号化する場合に公開鍵暗号を用いると、機密性を高めることが出来る。その公開鍵暗号には様々な方式が提案されており、例えばＲＳＡ方式（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）や、ＥｌＧａｍａｌ方式、楕円ＥｌＧａｍａｌ方式や、ＮＴＲＵ方式などがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０００−５１６７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
公開鍵暗号を用いる場合、暗号化を行う生体情報のサイズは、公開鍵暗号で暗号化する単位に比べて小さいという特徴がある。また、生体情報は連続して取得される。【０００９】
このような場合における暗号化の実現方法は、大きく二つに分けられる。【００１０】
一つ目は、小さなサイズの生体情報に対して固定値（パディング）を埋めて、暗号化する方法である。二つ目は、小さなサイズの生体情報を暗号化せずに一時的に蓄積し、それらがある一定サイズ以上に貯まったら連結して暗号化する方法である。【００１１】
一つ目の方法の場合、暗号文サイズが大きくなるという課題が存在する。具体例を挙げて説明する。ここでは、１０２４ビットのＲＳＡ暗号と１６７次元のＮＴＲＵ暗号を想定し、生体情報は２４ビットとする。１０２４ビットのＲＳＡ暗号の場合、暗号化の単位は１０２４ビットとなる。そのため生体情報２４ビットに対して１０００ビット分の固定値（パディング）を連結して、その連結した値に対して暗号化する。これにより、１０２４ビット分の平文に対する暗号文が生成されることになるが、実質有意な値は２４ビット分のみとなる。また１６７次元のＮＴＲＵ暗号の場合、暗号化の単位は１６７ビットとなる。そのため生体情報２４ビットに対して１４３ビット分の固定値（パディング）を連結して、その連結した値に対して暗号化する。よって、１６７ビット分の平文に対する暗号文が生成されることになるが、実質有意な値は２４ビット分のみとなる。共に、本来暗号化する必要のない固定値（パディング）のサイズ分、暗号文データのサイズが増加してしまい、非効率的となる。【００１２】
一方、二つ目の方法の場合、一時的に蓄積するデータはまだ暗号化されていない状態なので、万が一内部解析されると、そのデータがそのまま漏洩するというセキュリティの課題が存在する。【００１３】
本発明は、上記課題に鑑みて、暗号化されたデータのサイズの増加を極力抑えつつ、蓄積データが解析されたとしても平文データは漏洩しない暗号化装置、暗号化システム、暗号化方法、コンピュータプログラム、集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明の一態様である、暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置は、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部とを具備することを特徴とする。
【発明の効果】
【００１５】
この構成によると、暗号化装置は、未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成している。これにより、暗号化する単位長より小さい暗号化対象のデータを暗号化する毎に、暗号化装置は前記単位長の暗号化データを生成する必要がなくなるので、暗号化に利用されるデータサイズを全体として大幅に削減できる。したがって、暗号化装置は、暗号化されたデータのサイズの増加を極力抑えることができる。また、蓄積されたデータが解析されたとしても、暗号化されているので平文データの漏洩をも防止できる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るデータ暗号化システム１の構成を示すブロック図である。
【図２】データ暗号化装置１１の構成を示すブロック図である。
【図３】変換可能情報テーブルＴ１００のデータ構造の一例を示す図である。
【図４】暗号文格納部１５１のデータ構造の一例を示す図である。
【図５】図５（ａ）は、変換済サイズＵＳＩＺＥの値の変化を示し、図５（ｂ）は、暗号文データの変化を示す。
【図６】暗号文生成部１５０、及び変換処理部１５２における演算の具体例を示す図である。
【図７】データ暗号化装置１１の測定処理の動作を示すフローチャートである。
【図８】変換処理の動作を示すフローチャートである。
【図９】測定処理におけるステップＳ１０５の判断動作の具体例を示す図である。
【図１０】データ暗号化装置１１の送信処理の動作を示すフローチャートである。
【図１１】データ復号装置１３の構成を示すブロック図である。
【図１２】復号文格納部２０４のデータ構造の一例を示す図である。
【図１３】データ復号装置１３の受信処理の動作を示すフローチャートである。
【図１４】復号処理の動作を示すフローチャートである。
【図１５】データ暗号化システム１ａの構成を示すブロック図である。
【図１６】暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ＋ｈ）に予め乱数を変換した場合における暗号文生成部１５０、及び変換処理部１５２の動作の具体例を示す図である。
【発明を実施するための形態】
【００１７】
本発明の一態様である、暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置であって、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部とを具備することを特徴とする。
【００１８】
この構成によると、暗号化装置は、未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成している。これにより、暗号化する単位長より小さい暗号化対象のデータを暗号化する毎に、暗号化装置は前記単位長の暗号化データを生成する必要がなくなるので、暗号化に利用されるデータサイズを全体として大幅に削減できる。したがって、暗号化装置は、暗号化されたデータのサイズの増加を極力抑えることができる。また、蓄積されたデータが解析されたとしても、暗号化されているので平文データの漏洩をも防止できる。
【００１９】
ここで、前記暗号部は、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれる場合、前記未利用領域に前記新たな暗号化対象のデータを追加するように暗号化データを生成するとしてもよい。
【００２０】
この構成によると、暗号化装置は、前記暗号化対象のデータが暗号化される際に利用される領域が前記未利用領域に含まれる場合に、当該未利用領域に新たな暗号化対象データを追加するので、既に暗号化されたデータを含む暗号化領域に確実に暗号化することができる。
【００２１】
ここで、前記暗号部は、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超える場合、新たな暗号化領域を用いて前記新たに暗号化されたデータが最初の暗号データとなる第２の暗号化データを生成し、前記制御部は、前記第２の暗号化データを生成すると、前記第２の暗号化データに基づいて前記新たな暗号化対象のデータの暗号化に用いられた利用済領域を示す第２の管理情報を、前記第２の暗号化データのために生成して前記記憶部に記憶するとしてもよい。
【００２２】
この構成によると、暗号化装置は、既に暗号化されたデータを含む暗号化領域を用いた暗号化ができない場合であっても、第２の暗号化データを生成するので、新たな暗号化対象データが漏洩しないようにすることができる。
【００２３】
ここで、前記管理情報は、前記利用済領域のデータ長を示す情報を含むとしてもよい。
【００２４】
さらに、前記単位長は、暗号化可能な平文のデータ長であり、前記利用済領域のデータ長は、暗号化可能な平文のデータ長のうち暗号化に利用されたデータ長であり、前記暗号部は、前記単位長から前記利用済領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より大きい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれると判断するとしてもよい。
【００２５】
ここで、前記暗号部は、前記単位長から前記利用領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より小さい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超えると判断するとしてもよい。
【００２６】
この構成によると、暗号化装置は、暗号化する単位長及び利用済領域のデータを用いて、既に暗号化されたデータを含む暗号化領域を用いた暗号化の可否を容易に判断できる。
【００２７】
ここで、前記暗号部は、公開鍵暗号の暗号化鍵を保持する保持部と、乱数の生成部と、を有し、前記保持部にて保持されている前記公開鍵及び前記生成部にて生成された前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加するとしてもよい。
【００２８】
この構成によると、暗号化装置は、公開鍵に基づいて公開鍵とは異なる可変暗号鍵を生成して、この可変暗号鍵を用いて暗号化データを生成するので、データの漏洩を一層強固に防止できる。
【００２９】
ここで、前記暗号部は、前記暗号化する単位長毎に、前記生成部に新たな乱数を生成させて、異なる可変暗号鍵を生成するとしてもよい。
【００３０】
この構成によると、暗号化装置は、前記可変暗号鍵を前記暗号化する単位長毎に更新することにより、前記可変暗号鍵の漏洩により一部の暗号化データが解析されても、他の暗号化データについてデータの漏洩を防止できるので、全体としてデータの漏洩を一層強固に防止できる。
【００３１】
ここで、前記暗号部は、前記新たな暗号化対象のデータを暗号化する際、前記新たな暗号化対象データが前記暗号化する単位長に基づいて定められた暗号化領域を用いて最初に暗号化される場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記新たな対象データを暗号化した際の利用済領域のデータサイズが前記最小サイズ以上となるよう所定の初期データを付加して前記暗号化データを生成するとしてもよい。
【００３２】
前記新たな暗号化対象のデータを暗号化する際、前記新たな対象データが前記暗号化する単位長の暗号化データの最初のデータとなる場合であって、前記新たな対象データを暗号化した際のデータサイズが所定の最小サイズより小さい場合、仮に前記新たな暗号化対象のデータを暗号化したデータのみを含む暗号化データが外部に出力されると、前記新たな対象データを暗号化した際のデータサイズが小さいために、解析されるおそれがある。
【００３３】
そこで、この構成によると、暗号化装置は、前記新たな対象データを暗号化した際のデータサイズが前記最小サイズ以上となるよう所定の初期データを付加して前記暗号化データを生成するので、仮に前記新たな暗号化対象のデータを暗号化したデータのみを含む暗号化データが外部に出力されても、前記新たな対象データを暗号化した際のデータサイズは所定の最小サイズを確保されるので、解析されてもデータが漏洩する可能性を低減できる。
【００３４】
ここで、前記所定の初期データは、乱数により生成される数値列であるとしてもよい。
【００３５】
この構成によると、暗号化装置は、初期データとして乱数を暗号化データに含めるので、暗号化対象データが利用する箇所の特定を困難にすることができる。
【００３６】
ここで、公開鍵暗号の暗号化鍵を保持する保持部と、乱数の乱数生成部と、前記公開鍵及び前記乱数を用いて可変暗号鍵を生成する鍵生成部と、を具備する外部装置と接続する接続部を有し、前記暗号部は、前記外部装置から前記可変暗号鍵を入力し、この入力した可変暗号鍵からなるデータ領域を暗号化領域として用いて前記暗号化データを生成するとしてもよい。
【００３７】
この構成によると、暗号化装置は、可変暗号鍵の生成に係る構成要素を必要としないので、当該装置の製造コストを抑えつつ、確実に可変暗号鍵を取得することができる。
【００３８】
ここで、第２の記憶部を設け、前記暗号部は、公開鍵暗号の暗号化鍵を保持する保持部と、乱数の生成部と、を有し、前記公開鍵及び前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、前記可変暗号鍵を前記第２の記憶部に保存し、前記暗号化する単位長毎に、前記第２の記憶部から異なる可変暗号鍵を読み出し、読み出した可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加するとしてもよい。
【００３９】
この構成によると、暗号化装置は、可変暗号鍵を保存しているので、暗号化時に生成する場合に比べて、暗号化に係る処理時間を短くすることができる。
【００４０】
ここで、公開鍵暗号の暗号化鍵を保持する外部装置と接続する接続部を有し、前記暗号部は、乱数の乱数生成部を有し、前記外部装置から入力した公開鍵及び前記乱数を用いて前記単位長に基づく可変暗号鍵を生成し、この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加するとしてもよい。
【００４１】
この構成によると、暗号化装置は、製造時に暗号鍵を保持しておく必要がない、つまり出荷後に鍵設定が可能になるため、より利便性が向上する。
【００４２】
ここで、前記暗号化データを復号する外部装置と接続される接続部を設け、前記制御部は、前記新たな暗号化対象のデータを暗号化する際、前記新たな対象データが前記暗号化する単位長の暗号化データの最初のデータとなる場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達するまで前記暗号化データを前記外部装置に出力しない制御を行うとしてもよい。
【００４３】
前記新たな対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズ以下の場合、仮に前記新たな暗号化対象のデータを暗号化したデータを含む暗号化データが外部に出力されると、暗号化に利用されたデータサイズが小さいために、解析されるおそれがある。
【００４４】
そこで、この構成によると、暗号化装置は、暗号化に利用されたデータサイズが最小サイズに到達するまで出力しないよう制御するので、外部との通信中に当該データが第三者に取得され、解析される恐れがない。
【００４５】
ここで、前記暗号部は、前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達して前記暗号化データを前記外部装置に出力した場合、前記暗号化する単位長より小さい次の暗号化対象のデータが最初の暗号されたデータとなる第２の暗号化データを生成するとしてもよい。
【００４６】
この構成によると、暗号化装置は、暗号化データを外部に出力する場合、次の暗号化対象データが最初の暗号されたデータとなる第２の暗号化データを生成することができる。これにより、暗号化装置は、一度出力した暗号化データを再度出力することを抑止するので、第三者による暗号化されたデータの解析を防止することができる。
【００４７】
ここで、前記暗号化データを復号する外部装置と接続される接続部を設け、前記制御部は、前記暗号化データを前記管理情報と共に前記外部装置に出力するとしてもよい。
【００４８】
この構成によると、暗号化装置は、暗号化データとともに、管理情報をも外部装置へ出力するので、外部装置は、暗号化データのうち暗号化に利用された領域を容易に特定することができる。
【００４９】
ここで、前記暗号化は、ＮＴＲＵ暗号、ＥＬＧａｍａｌ暗号、楕円ＥＬＧ暗号のいずれかの暗号化方式であるとしてもよい。
【００５０】
この構成によると、暗号化装置は、ＮＴＲＵ暗号、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの暗号化方式を用いることで、利用データのサイズの増加を極力抑えつつ、記憶しているデータが解析されても対象データが漏洩しないようにすることができる。
【００５１】
ここで、前記記憶部は、耐タンパー技術により保護されているとしてもよい。
【００５２】
この構成によると、管理情報が第三者に漏洩しないので、暗号化装置は、暗号化対象データを推測する攻撃を防止することが出来る。
【００５３】
また、本発明は、暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置と、前記暗号化されたデータを復号する復号装置とを含む暗号化システムであって、前記暗号化装置は、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新し、前記暗号化データを前記更新された管理情報と共に前記復号装置に出力する制御部とを具備し、前記復号装置は、前記暗号化装置から入力した前記暗号化データを復号し、復号されたデータのうち、前記暗号化装置から入力した前記管理情報が示す利用済領域に基づく領域に存在する復号対象データを取得する復号処理部を具備することを特徴とする。
【００５４】
この構成によると、暗号化システムは、暗号化装置により、未利用領域に前記新たな暗号化対象のデータを追加するように暗号化データを生成している。これにより、暗号化する単位長より小さい暗号化対象のデータを暗号化する毎に、暗号化装置は前記単位長の暗号化データを生成する必要がなくなるので、暗号化に利用されるデータサイズを全体として大幅に削減できる。したがって、暗号化システムは、暗号化されたデータのサイズの増加を極力抑えることができる。また、蓄積されたデータが解析されたとしても、暗号化されているので平文データの漏洩をも防止できる。
【００５５】
１．実施の形態１
以下、本発明の実施の形態１について、図面を参照しながら説明する。
【００５６】
１．１  準備
ここでは、本実施の形態にて用いるＮＴＲＵ暗号について説明する。
【００５７】
以下において、ＮＴＲＵ暗号のパラメータ生成方法、鍵生成方法、暗号化及び復号について概要を説明する。なお、これらの詳細は、特許文献１に記載されているので、ここでは、簡単に説明する。
【００５８】
（１）ＮＴＲＵ暗号のパラメータ生成方法
ＮＴＲＵ暗号は、非負整数のパラメータ、Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄを持つ。以下に、これらのパラメータの意味を説明する。
【００５９】
（１−１）パラメータＮ
ＮＴＲＵ暗号は、多項式の演算により暗号化と復号を行う公開鍵暗号方式である。ＮＴＲＵ暗号で扱う多項式の次元は、上記パラメータＮにより決まる。ＮＴＲＵ暗号で扱う多項式は、上記パラメータＮに対し、Ｎ−１次以下の整数係数多項式であり、例えばＮ＝５のとき、Ｘ＾４＋Ｘ＾３＋１等の多項式である。ここで、「Ｘ＾ａ」はＸのａ乗を意味する。また、暗号化時あるいは復号時に用いる、公開鍵ｈ、秘密鍵ｆ、平文ｍ、乱数ｒ、暗号文ｃはいずれも、Ｎ−１次以下の多項式として表現される。そして、多項式演算は、上記パラメータＮに対し、Ｘ＾Ｎ＝１という関係式を用いて、演算結果が常にＮ−１次以下の多項式になるように演算される。例えば、Ｎ＝５の場合、多項式Ｘ＾４＋Ｘ＾２＋１と多項式Ｘ＾３＋Ｘの積は、多項式と多項式の積を×、整数と多項式の積（あるいは整数と整数の積）を・とすると、Ｘ＾５＝１という関係から、
（Ｘ＾４＋Ｘ＾２＋１）×（Ｘ＾３＋Ｘ）
＝Ｘ＾７＋２・Ｘ＾５＋２・Ｘ＾３＋Ｘ
＝Ｘ＾２×１＋２・１＋２・Ｘ＾３＋Ｘ
＝２・Ｘ＾３＋Ｘ＾２＋Ｘ＋２
というように、常にＮ−１次元以下の多項式になるように演算される。
【００６０】
（１−２）パラメータｐ、ｑ
ＮＴＲＵ暗号では、２以上の整数であるパラメータｐ、ｑを用いる。ＮＴＲＵ暗号で出現する多項式の係数は、ｐ、ｑを法とした剰余を取る。ここで、このパラメータｐ、ｑは互いに素となる必要がある。
【００６１】
（１−３）パラメータｄｆ、ｄｇ、ｄ
ＮＴＲＵ暗号で扱う秘密鍵の一部である多項式ｆ，公開鍵である多項式ｈを生成するときに多項式ｆと共に用いる多項式ｇ，及び平文を暗号化するときに用いる乱数である多項式ｒの選び方は、それぞれパラメータｄｆ、ｄｇ、ｄにより決まる。まず、多項式ｆは、ｄｆ個の係数が１であり、かつ（ｄｆ−１）個の係数が−１であり、かつ他の係数は０となるように選ぶ。すなわち、多項式ｆはＮ−１次以下の多項式であり、０次元（定数項）からＮ−１次まで、Ｎ個の係数があるが、このＮ個の係数のうち、ｄｆ個の係数が１であり、かつ（ｄｆ−１）個の係数が−１であり、かつ（Ｎ−２ｄｆ＋１）個の係数が０となるように選ぶ。そして、多項式ｇは、ｄｇ個の係数が１であり、かつｄｇ個の係数が−１であり、かつ他の係数は０となるように選ぶ。また、乱数である多項式ｒは、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ他の係数は０となるように選ぶ。
【００６２】
ＮＴＲＵ暗号のパラメータの例として、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１０７，３，６４，１５，１２，５）、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１６７，３，１２８，６１，２０，１８）、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（５０３，３，２５６，２１６，７２，５５）などが考えられる。以後使用するパラメータは（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１６７，３，１２８，６１，２０，１８）とする。ただし、これに限るものではない。ちなみに、本パラメータはＮＴＲＵ暗号の安全性、及び性能（処理速度や各種データのサイズなど）に影響する。一般に大きなパラメータは、安全性は高いが、性能は劣る。
【００６３】
（２）ＮＴＲＵ暗号の鍵生成方法
ＮＴＲＵ暗号では、上述したように、パラメータｄｆ、ｄｇを用いてランダムに多項式ｆ、多項式ｇを生成する。そして、Ｆｐ×ｆ＝１（ｍｏｄ  ｐ）となる多項式Ｆｐを算出する。また、Ｆｑ×ｆ＝１（ｍｏｄ  ｑ）となる多項式Ｆｑを用いて、
ｈ＝Ｆｑ×ｇ（ｍｏｄ  ｑ）
により、多項式ｈを生成する。このとき、2つの値の組（ｆ，Ｆｐ）が秘密鍵データ（復号鍵）となり、値ｈが公開鍵データ（暗号化鍵）となる。ここで、ｘ＝ｙ（ｍｏｄ  ｑ）は、多項式ｙの第ｉ次の係数を、剰余が０からｑ−１の範囲に収まるように法ｑで割ったときの剰余を、多項式ｘの第ｉ次の係数とする演算である（０≦ｉ≦Ｎ−１）。すなわち、ｙの各係数を、０から（ｑ−１）の範囲に収まるようにｍｏｄ  ｑ演算した多項式を、多項式ｘとする演算である。ちなみに、通常演算装置でＮＴＲＵ暗号が処理される場合、各種データ（秘密鍵データや公開鍵データ）は、係数のみを保持し、（つまり、ｘ＾ａという部分は意識しない）。暗号処理を行う際には、その係数同士を作用させれば十分である。よって、秘密鍵データｆは、２・Ｎビット（０もしくは１もしくは−１を表すための２ビットをＮ次元分）、秘密鍵データＦｐも、ｐが３の場合、２・Ｎビット（０もしくは１もしくは−１を表すための２ビットをＮ次元分）となる。公開鍵データｈは、パラメータｑが１２８の場合、７・Ｎビット（０から１２７を表すための７ビットをＮ次元分）となる。なお、記号“・”は、上述したように整数と整数の積を示す。
【００６４】
（３）暗号化
ＮＴＲＵ暗号の暗号化では、平文である多項式ｍを暗号化し、暗号文である多項式ｃを算出（取得）する。先ず、上述したような多項式である乱数ｒをランダムに生成する。すなわち、乱数ｒはＮ−１次以下の多項式、つまり０次元（定数項）からＮ−１次元までのＮ個の係数を有する多項式である。このとき、多項式ｒは、Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数が０となるように、ランダムに選択（生成）される。
【００６５】
そして、生成した乱数ｒ（多項式ｒ）と公開鍵ｈとを用いて、係数が０、１若しくは−１であるＮ−１次以下の平文に対し、"ｃ＝ｐ・ｒ×ｈ＋ｍ  （ｍｏｄ  ｑ）"により、暗号文ｃを生成する。なお、特許文献１では、１組の平文Ｌ＿ｍからメッセージｍを選択し（多項式への変換）、選択したメッセージｍ（平文ｍ）に対する暗号文の生成について記載されている。
【００６６】
この演算は、上述した通り、多項式（ｐ・ｒ×ｈ＋ｍ）の各係数を０から（ｑ−１）の範囲に収まるように（ｍｏｄ  ｑ）演算した多項式を、多項式ｃとする演算である。
【００６７】
（４）復号
ＮＴＲＵ暗号の復号では、暗号文である多項式ｃを復号して、復号文である多項式ｍ'を算出（取得）する。復号では、先ず、暗号文ｃに対して、秘密鍵の一部である多項式ｆを用いて、"ａ＝ｆ×ｃ  （ｍｏｄ  ｑ＊）"により、多項式ａを計算する。
【００６８】
ここで、（ｍｏｄ  ｑ＊）は、上述の（ｍｏｄ  ｑ）演算とは異なり、多項式（ｆ×ｃ）の第ｉ次の係数を＜−ｑ／２＞＋１から＜ｑ／２＞の範囲に収まるように法ｑで割ったときの剰余を多項式ａの第ｉ次の係数とする演算である（ここで、ｉは、０以上Ｎ−１以下の整数）。すなわち、係数が＜ｑ／２＞からｑ−１である場合には、ｑ減算して、上記範囲に収まるように調整する。ここで、＜ｘ＞は、ｘ以下の数のうちで最も大きい数を示す。例えば、＜−１／２＞＝−１である。
【００６９】
次に、多項式ａに対して、パラメータｐを用いて、ｂ＝ａ  （ｍｏｄ  ｑ）により多項式ｂを生成する。
【００７０】
そして、多項式ｂに対して、秘密鍵の一部である多項式Ｆｐを用いて、ｍ'＝Ｆｐ×ｂ  （ｍｏｄ  ｐ＊）により、復号文ｍ'を計算（取得）する。
【００７１】
なお、（ｍｏｄ  ｐ＊）演算は、上述したように、多項式（Ｆｐ×ｂ）の第ｉ次の係数を＜−ｐ／２＞＋１から＜ｐ／２＞の範囲に収まるように法ｐで割ったときの剰余を、多項式ｍ'の第ｉ次の係数とする演算である（ここで、ｉは、０以上Ｎ−１以下の整数）。
【００７２】
（５）その他
なお、このＮＴＲＵ暗号に関して、上述のパラメータは全てｐ＝３となるパラメータであるが、このパラメータの他にｐ＝２となるパラメータも開示されている。
【００７３】
ｐ＝３の場合における平文ｍは、係数が０、１若しくは−１の３値である多項式であるが、ｐ＝２の場合における平文ｍは、係数が０、若しくは１の２値である多項式である。そして、秘密鍵データである多項式ｆ，多項式ｇ，乱数ｒは、ｐ＝２かｐ＝３かに関わらず係数が０もしくは１もしくは−１の３値である多項式である。
【００７４】
また、ＮＴＲＵ暗号に関して、鍵生成処理を"ｈ＝ｐ・Ｆｑ×ｇ  （ｍｏｄ  ｑ）"を満たすように、公開鍵ｈを生成することで、暗号化処理を"ｃ＝ｒ×ｈ＋ｍ  （ｍｏｄ  ｑ）"にて行う方法も開示されている。
【００７５】
１．２  データ暗号化システムの概要
データ暗号化システム１は、図１に示すように、データ暗号化装置１１、通信路１２、データ復号装置１３から構成される。
【００７６】
データ暗号化装置１１は、被計測者の体温などの生体情報を計測する機能を有する。計測データは、その都度、データ暗号化装置１１の内部に暗号化した状態で、蓄積される。
【００７７】
データ暗号化装置１１は、データ復号装置１３の要求により、蓄積している暗号化されたデータをデータ復号装置１３へ送信する。なお、データ暗号化装置１１は、一度送信した暗号化されたデータは、再度送信しない。
【００７８】
データ復号装置１３は、データ暗号化装置１１の内部に蓄積された１つ以上の暗号化されたデータを取得する。データ復号装置１３は、更に、取得した１つ以上の暗号化されたデータを、復号鍵を用いて復号し、平文の計測データを算出（取得）する。
【００７９】
通信路１２は、データ暗号化装置１１とデータ復号装置１３との間で、各種データを送受信出来る通信路である。例えば、インターネットや電話線、専用線、Ｂｌｕｅｔｏｏｔｈや特定省電力無線等の近距離無線、ＵＳＢケーブルなどである。
【００８０】
データ暗号化システム１の具体的な適用例としては、以下のようなものが考えられる。データ暗号化装置１１は、病院から患者である被計測者に提供される。被計測者は、病院の指示に従って、適切なタイミングでデータ暗号化装置１１を、自身の体に装着し、生体情報の計測を行う。病院は、あるタイミングで、データ復号装置１３を用いて、データ暗号化装置１１から暗号化計測データを読み取り、更に、復号鍵を用いて暗号化計測データを復号して、平文の計測データを得る。病院は、得られた計測データを元に患者である被計測者の診断などを行う。
【００８１】
１．３  データ暗号化装置１１の構成
次に、データ暗号化装置１１の構成について説明する。
【００８２】
データ暗号化装置１１は、図２に示すように、パラメータ格納部１１０、センサー部１１１、変換可能情報格納部１１２、変換可否判定部１１３、乱数生成部１１４、暗号化鍵格納部１１５、暗号化処理部１１６及び送信処理部１１７とから構成される。
【００８３】
（１）パラメータ格納部１１０
パラメータ格納部１１０は、ＮＴＲＵ暗号の各パラメータ（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を予め記憶している。
【００８４】
（２）センサー部１１１
センサー部１１１は、被計測者から測定データＤを計測し、それとカウンタ情報ＣＴＲと連結して、暗号化の対象となる対象データＴＤを生成する。
【００８５】
センサー部１１１は、生成した対象データＴＤを変換可否判定部１１３に出力する。
【００８６】
ここで、測定データＤは、例えば、体温や血圧、血糖値、脈拍数、心拍数、歩数、運動量などである。具体的に体温の場合、測定データＤは、十の位、一の位、小数点一の位がそれぞれ１バイトである合計３バイトからなるデータである。
【００８７】
また、カウンタ情報ＣＴＲは、０からインクリメントしていく値であり、計測された対象データＴＤの順番を把握するために用いられ、一の位、小数点一の位がそれぞれ１バイトである合計３バイトからなるデータである。カウンタ情報ＣＴＲにより、センサー部１１１は、最大９９までカウントすることができる。
【００８８】
なお、センサー部１１１は、定期的に計測するのではなく、何らかのトリガが与えられた際に計測してもよい。例えば、データ暗号化装置１１がボタンを有し、ボタンが押された場合に計測するようにしてもよい。
【００８９】
（３）変換可能情報格納部１１２
変換可能情報格納部１１２は、図３で示すように、暗号文識別子ＣＴＩＤ、総サイズＴＳＩＺＥ、変換済サイズＵＳＩＺＥ、送信可否フラグＵＦＬＡＧの組からなる変換可能情報を一つ以上保持するための変換可能情報テーブルＴ１００を有している。
【００９０】
暗号文識別子ＣＴＩＤは、後述する暗号文格納部１５１に格納されている暗号文データＣＴＤＡＴＡを特定する識別子である。
【００９１】
総サイズＴＳＩＺＥは、暗号文識別子ＣＴＩＤの特定する暗号文データＣＴＤＡＴＡに対して、初期段階で変換出来るサイズの合計を表す。なお、総サイズＴＳＩＺＥの単位はビットである。例えば、ＴＳＩＺＥが１６７であれば、初期状態の暗号文データＣＴＤＡＴＡでは、最大１６７ビット分のデータを変換可能であることを意味する。
【００９２】
変換済サイズＵＳＩＺＥは、暗号文格納部１５１で保持されている、暗号文識別子ＣＴＩＤの特定する暗号文データＣＴＤＡＴＡに対して、既に変換を行ったデータのサイズを表す。変換済サイズＵＳＩＺＥの単位はビットである。例えば、ＵＳＩＺＥが１５０であれば、暗号文格納部１５１で保持されている暗号文データＣＴＤＡＴＡには、既に１５０ビット分のデータが変換されていることを意味する。
【００９３】
送信可否フラグＵＦＬＡＧは、暗号文格納部１５１で保持されている、暗号文識別子ＣＴＩＤの特定する暗号文データＣＴＤＡＴＡが、既にデータ復号装置１３へ送信されたか否かを示すフラグであり、ＴＲＵＥとＦＡＬＳＥをとりうる。ＴＲＵＥはまだ送信されていないことを示し、ＦＡＬＳＥは既に送信されたことを示す。ここで、送信可否フラグがＴＲＵＥの場合には、当該送信可否フラグに対応する暗号文データがデータ復号装置１３へ未だ送信されていないため変換が可能であることを示し、送信可否フラグがＦＡＬＳＥの場合には、当該送信可否フラグに対応する暗号文データがデータ復号装置１３へ既に送信されているため変換が不可能であることを示している。
【００９４】
変換可能情報格納部１１２が変換可能情報テーブルＴ１００を用いて保持する情報を使うことによって、データ暗号化装置１１は、同じ暗号文データを２個以上にコピーして、それぞれに対して異なる対象データで変換しないように制御する。この理由は、出力を盗聴する第三者が、万が一、二つの暗号文データの初期の暗号文データが同じだと知っていたら、それら二つの暗号文データの差分（算術減算）を取ることで、変換に用いた対象データの一部の情報（差分）を特定されてしまうためである。それを実現するために、ここでの変換済サイズＵＳＩＺＥは、ある暗号文データＣＴＤＡＴＡの同じ箇所を二度以上変換しないように制御するために用いる。また、送信可否フラグＵＦＬＡＧは、一度外部に出力した暗号文データＣＴＤＡＴＡに対して、それ以上その暗号文データＣＴＤＡＴＡに対して変換を行わないように制御するために用いられる。その理由は、外部に出力する途中を盗聴する第三者が存在した場合に、変換に使った対象データを特定することが可能となるためである。具体的には、一度目に出力した暗号文データＣＴＤＡＴＡと二度目に出力した暗号文データＣＴＤＡＴＡの差分（算術減算）を取ることにより、一度目の出力以降に変換した対象データは容易に得られる。
【００９５】
ちなみに、本実施の形態においては、総サイズ、変換済サイズとも、暗号化可能なデータ（変換可能なデータ）の単位長（１６７ビット）を基準としている。上述したように、総サイズ（１６７ビット）は暗号化可能なデータの単位長を示し、変換済サイズはそのうち変換に利用された利用済の領域（データ長）を示している。
【００９６】
なお、総サイズ、変換済サイズは、暗号文データのデータ長を基準としてもよい。この場合、総サイズ、変換済サイズとも、暗号化可能なデータの単位長（１６７ビット）を基準した場合の７倍の値となる。
【００９７】
（４）変換可否判定部１１３
変換可否判定部１１３は、センサー部１１１から対象データＴＤを受け取る。
【００９８】
変換可否判定部１１３は、受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。サイズ情報を取得する方法は、対象データＴＤそのものから計算する方法がある。なお、サイズ情報ＳＩＺＥが固定長の場合、計算は不要であり、予め設定された値を用いる。また、センサー部１１１からサイズ情報ＳＩＺＥを取得してもよい。
【００９９】
次に、変換可否判定部１１３は、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤの小さい順から、送信可否フラグＵＦＬＡＧがＴＲＵＥで、さらに、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値がサイズ情報ＳＩＺＥよりも大きくなるような暗号文識別子ＣＴＩＤが存在するかどうかを確認する。
【０１００】
もし一つでも存在する場合、変換可否判定部１１３は、対象データＴＤと該当する一つの暗号文識別子ＣＴＩＤとを変換処理部１５２へ出力する。
【０１０１】
もし存在しない場合、変換可否判定部１１３は、対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴを暗号文生成部１５０へ出力する。
【０１０２】
なお、サイズ情報ＳＩＺＥは、毎回変わってもよい。
【０１０３】
（５）乱数生成部１１４
乱数生成部１１４は、後述する暗号文生成部１５０からの要求に応じて、乱数を生成して、その乱数を暗号文生成部１５０へ出力する。
【０１０４】
具体的には、乱数生成部１１４は、暗号文生成部１５０から乱数生成を要求する旨の乱数生成要求情報を受け取ると、パラメータ格納部１１０にて格納されているパラメータＮ、ｄｆ、ｄｇ、ｄそれぞれに基づいて、多項式である乱数ｒをランダムに生成する。
【０１０５】
ここで、乱数ｒはＮ−１次以下の多項式、つまり０次元（定数項）からＮ−１次元までのＮ個の係数を有する多項式である。このとき、乱数生成部１１４は、Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数が０となるように、乱数ｒ（多項式ｒ）をランダムに選択（生成）する。
【０１０６】
（６）暗号化鍵格納部１１５
暗号化鍵格納部１１５は、公開鍵暗号の暗号化鍵データＥＫを保持する。
【０１０７】
具体的には、暗号化鍵データＥＫは、ＮＴＲＵ暗号の公開鍵ｈである。
【０１０８】
（７）暗号化処理部１１６
暗号化処理部１１６は、図２に示すように、暗号文生成部１５０、暗号文格納部１５１及び変換処理部１５２とから構成されている。
【０１０９】
暗号化処理部１１６は、変換可否判定部１１３から対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴとからなる組、若しくは対象データＴＤと暗号文識別子ＣＴＩＤとからなる組を受け取ると、受け取った対象データＴＤに対する暗号化を行う。
【０１１０】
（７−１）暗号文生成部１５０
暗号文生成部１５０は、変換可否判定部１１３から暗号文生成依頼信号ＲＥＱＣＴを受け取ると、暗号化鍵格納部１１５から公開鍵ｈを取得する。
【０１１１】
暗号文生成部１５０は、公開鍵ｈを用いて、ＮＴＲＵ暗号の暗号文データＣＴＤＡＴＡを生成する。
【０１１２】
下記で、暗号文データＣＴＤＡＴＡを生成する方法について述べる。まず、暗号文生成部１５０は、乱数生成要求情報を乱数生成部１１４へ出力する。その後、暗号文生成部１５０は、乱数生成部１１４から乱数ｒを受け取る。そして、暗号文生成部１５０は、受け取った乱数ｒと、暗号化鍵格納部１１５にて保持している公開鍵ｈ（暗号化鍵データＥＫ）と、パラメータ格納部１１０にて保持しているパラメータｐ、ｑとを用いて、暗号文データ    ＣＴＤＡＴＡ＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ）を算出（生成）する。
【０１１３】
この演算は、上述した通り、多項式（ｐ・ｒ×ｈ）の各係数を、０から（ｑ−１）の範囲に収まるようにｍｏｄ  ｑ演算した多項式を、多項式ｃ（＝ＣＴＤＡＴＡ）とする演算である。
【０１１４】
暗号文生成部１５０は、暗号文格納部１５１において、まだ使われていない暗号文識別子ＣＴＩＤを生成する。暗号文識別子ＣＴＩＤを生成する方法は、カウンタを用いても良いし、使用されている暗号文識別子に１を加えた値にしてもよい。
【０１１５】
暗号文生成部１５０は、生成した暗号文識別子ＣＴＩＤと暗号文データＣＴＤＡＴＡとの組を暗号文格納部１５１に格納する。さらに、総サイズＴＳＩＺＥは１６７、変換済サイズＵＳＩＺＥは０、送信可否フラグＵＦＬＡＧはＴＲＵＥとして、先に生成した暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２に格納する。
【０１１６】
暗号文生成部１５０は、生成した暗号文識別子ＣＴＩＤを変換処理部１５２へ出力する。
【０１１７】
なお、変換可能情報格納部１１２に対して初期値として追加する情報は、暗号化鍵格納部１１５で格納されている暗号化鍵データＥＫが生成されたときのパラメータに依存するので、これに限るものではない。
【０１１８】
ここで、従来の暗号化方法と異なる点は、以下の通りである。
【０１１９】
従来の暗号化方法は、"ｐ・ｒ×ｈ＋ｍ  （ｍｏｄ  ｑ）"により、平文ｍ（多項式ｍ）に対する暗号化を行っているが、ここでは、暗号文生成部１５０は、"ｐ・ｒ×ｈ"演算のみを行い、平文ｍとの加算は行わない（従来の暗号化における計算式の最後の"＋ｍ"の部分、メッセージとの融合処理）。特許文献１と比較すると、暗号文生成部１５０では、暗号文生成部１５０では、１組の平文Ｌ＿ｍからメッセージｍを選択しない（多項式への変換）こと、及び暗号文データを計算する際に、ｍとの加算は行わない（計算式の最後の"＋ｍ"の部分、メッセージとの融合処理）ことが、特許文献１とは異なる点である。
【０１２０】
つまり、暗号文生成部１５０で生成される暗号文データＣＴＤＡＴＡは、平文ｍが暗号化される直前の状態のデータである。
【０１２１】
ちなみに、ＮＴＲＵ暗号は、平文の単位長がＮビットであり、それに対応する暗号文サイズが７・Ｎビット（パラメータｑが１２８の場合）となる。よって、１個の暗号文データＣＴＤＡＴＡに対して、後に説明する変換処理部１１８で変換できる最大サイズ（つまり埋め込めるメッセージの合計サイズ）は、７・Ｎビット（パラメータｑが１２８の場合）となる。
【０１２２】
なお、本発明における可変暗号鍵は、平文ｍが暗号化される直前の状態の暗号文データＣＴＤＡＴＡに相当する。
【０１２３】
（７−２）暗号文格納部１５１
暗号文格納部１５１は、図４で示すとおり、暗号文識別子ＣＴＩＤと暗号文データＣＴＤＡＴＡの組を一つ以上保持する。
【０１２４】
ここで、暗号文識別子ＣＴＩＤは、変換可能情報格納部１１２に格納されている値と対応するものである。暗号文データＣＴＤＡＴＡは、ＮＴＲＵ暗号の公開鍵データで暗号化された暗号文データである。
【０１２５】
（７−３）変換処理部１５２
変換処理部１５２は、変換可否判定部１１３から受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。サイズ情報を取得する方法は、変換可否判定部１１３と同じなので、省略する。
【０１２６】
変換処理部１５２は、対象データＴＤから、ベクトル化された多項式であるメッセージｍ（係数はｍ＿１、・・・、ｍ＿（ＳＩＺＥ））を計算する。ＮＴＲＵ暗号の場合で、ｐ＝３のとき、メッセージｍは係数が０もしくは１もしくは−１の３値である多項式であるが、ｐ＝２の場合は、メッセージｍは係数が０もしくは１の２値である多項式である。多項式への変換方法については、対象データＴＤをバイナリ化して、それぞれを多項式の係数にする方法などが考えられる。
【０１２７】
変換処理部１５２は、変換可否判定部１１３もしくは暗号文生成部１５０から暗号文識別子ＣＴＩＤを受け取ると、暗号文格納部１５１にアクセスし、受け取った暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡを取得する。そして、変換処理部１５２は、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥを取得する。
【０１２８】
変換処理部１５２は、取得した変換済サイズＵＳＩＺＥをもとに、取得した暗号文データＣＴＤＡＴＡのどの部分に対象データＴＤを変換するかを判断する。具体的には、暗号文データＣＴＤＡＴＡの多項式の係数をｅ＿１（多項式ｅの０次の係数）、ｅ＿２（多項式ｅの１次の係数）、・・・、ｅ＿Ｎ（多項式ｅのＮ−１次の係数）とした場合、（ＵＳＩＺＥ）次の係数から（ＵＳＩＺＥ＋ＳＩＺＥ−１）次の係数までが変換対象となる。言い換えると、ｅ＿（ＵＳＩＺＥ＋１）、ｅ＿（ＵＳＩＺＥ＋２）、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）が変換対象となる。この処理は、特許文献１の３５ページ（１．３  符号化）で記載されている処理と同様に、多項式の加算"＋"で行う。対象データＴＤを多項式にしたメッセージｍを暗号文データＣＴＤＡＴＡの特定の一部に加算する。具体的には、ｅ＿（ＵＳＩＺＥ＋１）にｍ＿１（多項式ｍの０次の係数）を加算し、ｅ＿（ＵＳＩＺＥ＋２）にｍ＿２（多項式ｍの１次の係数）を加算し、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）にｍ＿(ＳＩＺＥ) （多項式ｍのＳＩＺＥ−１次の係数）を加算する。なお、このとき、各係数が０から（ｑ−１）の範囲に収まるように（ｍｏｄ  ｑ）演算を施す。
【０１２９】
そして、変換後の暗号文データＣＴＤＡＴＡを、暗号文格納部１５１の同じ場所に上書きする。最後、変換可能情報格納部１１２の、暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥに、サイズ情報ＳＩＺＥを加算する。
【０１３０】
（具体例）
図５を用いて、平文ｍ＃１及びｍ＃２を暗号化する場合について説明する。なお、平文ｍ＃１及びｍ＃２はｓ−１次の多項式とする。
【０１３１】
図５（ａ）は、変換済サイズＵＳＩＺＥの値の変化を示す。ここでの暗号化単位長は、総サイズＴＳＩＺＥ（＝１６７）である。
【０１３２】
先ず、暗号化が一度も行われていない場合、暗号化単位長Ｄ１１における変換済サイズＵＳＩＺＥは値“０”である。この状態で、平文ｍ＃１（ＳＩＺＥ＝ｓ）が暗号化されると、総サイズＴＳＩＺＥのうちＳＩＺＥ分だけ暗号化に利用されるので、ＵＳＩＺＥ＝ｓとなる（暗号化単位長Ｄ１１を参照）。次に、平文ｍ＃２（ＳＩＺＥ＝ｓ）が暗号化されると、暗号化にＳＩＺＥ分だけ利用されるので、平文ｍ＃１の暗号化時のＵＳＩＺＥにさらに、値ｓが加算され、ＵＳＩＺＥ＝２ｓとなる（暗号化単位長Ｄ１２を参照）。
【０１３３】
図５（ｂ）は、暗号文データの変化を示す。
【０１３４】
先ず、暗号文生成部１５０は、"ｐ・ｒ×ｈ"演算により平文ｍが暗号化される直前の状態のデータである暗号文データＤ１００を生成し、暗号文格納部１５１に格納する。このとき、変換可能情報格納部１１２にて格納される暗号文データＤ１００に対応する変換済サイズＵＳＩＺＥは、０である。ちなみに、上述したように、暗号文データＤ１００のデータ長は、１６７ビットの７倍、つまり1169ビットである。
【０１３５】
変換処理部１５２は、平文ｍ＃１を暗号化する際に、暗号文データＤ１００を暗号文格納部１５１から取得し、暗号文データＤ１００に対応する変換済サイズを変換可能情報格納部１１２から取得する。
【０１３６】
取得した変換済サイズＵＳＩＺＥの値は０であるので、変換処理部１５２は、ｅ＿１、ｅ＿２、・・・、ｅ＿Ｓそれぞれに、平文ｍ＃１の多項式の係数ｍ＿１（０次の係数）、ｍ＿２（１次の係数）、・・・、ｍ＿ｓ（ｓ−１次の係数）を加算し、平文ｍ＃１が暗号化された暗号文データＤ１０１を生成し、暗号文格納部１５１に格納している暗号文データＤ１００を暗号文データＤ１０１へと更新する。さらに、変換処理部１５２は、図５（ａ）にて示すように、変換可能情報格納部１１２にて格納している暗号文データＤ１０１に対応する変換済サイズＵＳＩＺＥを０からｓへと更新する。これは、暗号化可能なデータ（変換可能なデータ）の単位長（１６７ビット）を基準とした場合には単位長（１６７ビット）のうちｓビット分を利用していることを意味している。なお、暗号文データＤ１００のデータ長（１１６９ビット）を基準とした場合には、変換済サイズＵＳＩＺＥは、０から７・ｓへと更新される。
【０１３７】
変換処理部１５２は、平文ｍ＃２を暗号化する際に、暗号文データＤ１０１を暗号文格納部１５１から取得し、暗号文データＤ１０１に対応する変換済サイズを変換可能情報格納部１１２から取得する。
【０１３８】
取得した変換済サイズＵＳＩＺＥの値はｓであるので、変換処理部１５２は、ｅ＿（ｓ＋１）、ｅ＿（ｓ＋２）、・・・、ｅ＿（ｓ＋ｓ）それぞれに、平文ｍ＃２の多項式の係数ｍ'＿１（０次の係数）、ｍ'＿２（１次の係数）、・・・、ｍ'＿ｓ（ｓ−１次の係数）を加算し、平文ｍ＃２が暗号化された暗号文データＤ１０２を生成し、暗号文格納部１５１に格納している暗号文データＤ１０１を暗号文データＤ１０２へと更新する。さらに、変換処理部１５２は、変換可能情報格納部１１２にて格納している暗号文データＤ１０２に対応する変換済サイズＵＳＩＺＥをｓから２ｓへと更新する。これは、暗号化可能なデータの単位長（１６７ビット）を基準とした場合には単位長（１６７ビット）のうち２ｓビット分を利用していることを意味する。なお、暗号文データＤ１００のデータ長（１１６９ビット）を基準とした場合には、変換済サイズＵＳＩＺＥは、０から７・２ｓ（＝１４ｓ）へと更新される。
【０１３９】
次に、図６を用いて、平文ｍ＃１及びｍ＃２に対する演算について、一例を用いて説明する。
【０１４０】
暗号文生成部１５０は、図６（ａ）に示すように、ｐ・ｒ×ｈ（ｍｏｄ  ｑ）により、
ＣＴＤＡＴＡ＝ｐ・ｒ×ｈ（ｍｏｄ  ｑ）
＝ｅ＿１＋ｅ＿２×Ｘ＋・・・＋ｅ＿ｓ×Ｘ＾（ｓ−１）＋ｅ＿（ｓ＋１）×Ｘ＾ｓ
＋ｅ＿（ｓ＋２）×Ｘ＾（ｓ＋１）＋・・・＋ｅ＿２ｓ×Ｘ＾（２ｓ）＋・・・＋ｅ＿Ｎ×Ｘ＾（Ｎ−１）
を算出することにより、暗号文データＤ１００を生成する。
【０１４１】
変換処理部１５２は、平文ｍ＃１を暗号化する際には、図６（ｂ）に示すように、平文ｍ＃１の多項式にＸ＾（ＵＳＩＺＥ）を乗算して、暗号文データＤ１００に加算する。
【０１４２】
つまり、図６（ｂ）にて示すように、暗号文データ（ＣＴＤＡＴＡ）Ｄ１００に対して、ＣＴＤＡＴＡ＋ｍ＃１×Ｘ＾（ＵＳＩＺＥ）を計算することにより、ｅ＿１、ｅ＿２、・・・、ｅ＿ｓそれぞれに、平文ｍ＃１の多項式の係数ｍ＿１（０次の係数）、ｍ＿２（１次の係数）、・・・、ｍ＿ｓ（ｓ−１次の係数）を加算することができる。
【０１４３】
また、さらに、変換処理部１５２は、平文ｍ＃２を暗号化する際には、図６（ｃ）に示すように、平文ｍ＃２の多項式にＸ＾（ＵＳＩＺＥ）を乗算して、暗号文データＤ１０１に加算する。
【０１４４】
つまり、図６（ｃ）にて示すように、暗号文データ（ＣＴＤＡＴＡ）Ｄ１０１に対して、ＣＴＤＡＴＡ＋ｍ＃２×Ｘ＾（ＵＳＩＺＥ）を計算することにより、ｅ＿（ｓ＋１）、ｅ＿（ｓ＋２）、・・・、ｅ＿（ｓ＋ｓ）それぞれに、平文ｍ＃２の多項式の係数ｍ'＿１（０次の係数）、ｍ'＿２（１次の係数）、・・・、ｍ'＿ｓ（ｓ−１次の係数）が加算され、暗号文データＤ１０２が生成される。
【０１４５】
ここで、図６（ｂ）、（ｃ）にて示すように、平文ｍ＃２を暗号文データＤ１０１を用いて暗号化（変換）する際には、ｍ＃１が暗号化（変換）に利用された暗号文データＤ１０１の０次からｓ−１次までの係数について何ら影響を与えることなく、平文ｍ＃２の多項式の係数ｍ'＿１、ｍ'＿２、・・・、ｍ'＿ｓが加算されていることが分かる。
【０１４６】
ここでの処理のポイントは、暗号文データＣＴＤＡＴＡの同じビット位置に対して、二度以上対象データを加算しないために行うものであり、それを達成する方法であれば、他の方法でもよい。ちなみに、通常演算装置でＮＴＲＵ暗号が処理される場合、各種データ（秘密鍵データや公開鍵データ）は、係数のみを保持するようにし、暗号処理時には、その係数同士のみを計算に用いればよい。
【０１４７】
（８）送信処理部１１７
送信処理部１１７は、データ復号装置１３からの要求により、通信路１２を介して、暗号文格納部１５１で保持する暗号文データＣＴＤＡＴＡをデータ復号装置１３に送信する処理を行う。
【０１４８】
まず、データ復号装置１３からデータの要求を示す送信要求情報を受け取ったら、変換可能情報格納部１１２にアクセスし、送信可否フラグＵＦＬＡＧがＴＲＵＥで、変換済サイズＵＳＩＺＥが予め与えられるサイズ以上となる暗号文識別子ＣＴＩＤが存在するかを確認する。予め与えられるサイズは、例えば８０である。これは、ある一定ビット以下しか変換していない暗号文を送信した場合、不正な第三者により解析が可能になることを防止するためである。その解析方法は、下記の通りである。
【０１４９】
（手順１）公開鍵ｈに対して、ｈ×ｉｎｖ＿ｈ＝１  （ｍｏｄ  ｑ）となるｉｎｖ＿ｈを計算する。
【０１５０】
（手順２）変換済となる箇所を含む平文データ候補値ｍ'に仮定する。変換済となる箇所は予想値、その他の箇所については０とする。
【０１５１】
（手順３）暗号文データＣＴＤＡＴＡに対して、多項式である第一中間値ＣＶ１＝ＣＴＤＡＴＡ−ｍ'を計算する。
【０１５２】
（手順４）第一中間値ＣＶ１に対して、多項式である第二中間値ＣＶ２＝ｐ・ＣＶ１×ｉｎｖ＿ｈを計算する。
【０１５３】
（手順５）多項式である第二中間値ＣＶ２に対して、各係数が乱数ｒを生成したときの条件と全て一致（Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数は０となる）するかどうかを確認する。もし一致していたら、（手順２）で仮定して平文データ候補値ｍ'を正しい平文データｍとして出力する。一致していなかったら、（手順２）で仮定して平文データ候補値ｍ'を別のものに変えて、再度（手順３）〜（手順５）を繰り返す。
【０１５４】
ここで、予めある一定ビット以上を変換しておく理由は、（手順２）で仮定すべきパターン数を増やすことで、総当りが出来ないようにするためである。
【０１５５】
もし、そのような暗号文識別子ＣＴＩＤが存在しない場合、データ復号装置１３に送信すべき情報はないと判断し、その旨を回答する。一方、もしそのような暗号文識別子ＣＴＩＤが存在する場合、その暗号文識別子ＣＴＩＤに対応する送信可否フラグＵＦＬＡＧをＦＡＬＳＥに設定し、暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡを暗号文格納部１５１から取得し、その暗号文データＣＴＤＡＴＡと変換済サイズＵＳＩＺＥを、通信路１２を介して、データ復号装置１３へ送信する。
【０１５６】
送信処理部１１７は、送信処理にて送信された一つ以上の暗号文データに対応付けられた識別子ＣＴＩＤに対応する送信可否フラグＵＦＬＡＧをＦＡＬＳＥに設定する。
【０１５７】
１．４  データ暗号化装置１１の動作
ここでは、データ暗号化装置１１の動作の一例について説明する。以下において、測定時の動作、及びデータ送信時の動作に分けて説明を行う。
【０１５８】
（１）測定時の動作
以下、図７のフローチャートを参照しながら、測定時の動作について説明する。
【０１５９】
センサー部１１１は、被計測者から生体情報ＢＤを計測し、カウンタ情報ＣＴＲを連結した対象データＴＤを変換可否判定部１１３に出力する（ステップＳ１００）。
【０１６０】
変換可否判定部１１３は、センサー部１１１から対象データＴＤを受け取る。対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。そして、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤの小さい順から、送信可否フラグＵＦＬＡＧがＴＲＵＥで、さらに、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値がサイズ情報ＳＩＺＥより大きくなるような暗号文データＣＴＤＡＴＡに対応する暗号文識別子ＣＴＩＤが存在するかどうかを判断する（ステップＳ１０５）。
【０１６１】
存在すると判断する場合（ステップＳ１０５における「ＹＥＳ」）、変換可否判定部１１３は、その暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡに、受け取った対象データを変換することが可能であると判断し、変換可否判定部１１３は、暗号文識別子ＣＴＩＤと対象データＴＤを変換処理部１５２へ出力する。このとき、測定処理は、ステップＳ１１５へ移行する。
【０１６２】
存在しないと判断する場合（ステップＳ１０５における「ＮＯ」）、変換可否判定部１１３は、暗号文生成依頼信号ＲＥＱＣＴと対象データＴＤを暗号化処理部１１６へ出力する。
【０１６３】
暗号化処理部１１６の暗号文生成部１５０は、変換可否判定部１１３から暗号文生成依頼信号ＲＥＱＣＴを受け取ると、乱数生成要求情報を乱数生成部１１４へ出力する。その後、暗号文生成部１５０は、乱数生成部１１４から乱数ｒを受け取る。そして、暗号文生成部１５０は、暗号化鍵格納部１１５から、公開鍵ｈを取得する。暗号文生成部１５０は、取得した公開鍵ｈ、乱数ｒ、及びパラメータ格納部１１０にて保持しているパラメータｐ、ｑを用いて、暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ＋ｈ  （ｍｏｄ  ｑ））を生成する。暗号文生成部１５０は、続いて、暗号文格納部１５１においてまだ使われていない暗号文識別子ＣＴＩＤを生成し、暗号文識別子ＣＴＩＤと暗号文データＣＴＤＡＴＡとの組を暗号文格納部１５１に格納する。さらに、総サイズＴＳＩＺＥや送信可否フラグＵＦＬＡＧを初期値（ＴＲＵＥ）に、変換済サイズＵＳＩＺＥを初期値（０）にそれぞれ設定し、先に生成した暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２に追加する。最後に、暗号文識別子ＣＴＩＤと対象データＴＤを変換処理部１５２へ出力する(ステップＳ１１０)。
【０１６４】
変換処理部１５２は、変換可否判定部１１３もしくは暗号文生成部１５０から暗号文識別子ＣＴＩＤを受け取り、さらに、変換可否判定部１１３から対象データＴＤを受け取る。変換処理部１５２は、受け取った暗号文識別子ＣＴＩＤに対対応する暗号文データを用いて、受け取った対象データＴＤを暗号化する、つまり、受け取った暗号文識別子ＣＴＩＤに対対応する暗号文データを受け取った対象データＴＤが埋め込まれた暗号文データへと変換する（ステップＳ１１５）。
【０１６５】
変換処理部１５２は、変換可能情報格納部１１２で保持している暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥに、サイズ情報ＳＩＺＥを加算することにより、変換対象である暗号文データに対応する変換可能情報を更新する(ステップＳ１２０)。
【０１６６】
＜変換処理＞
ここでは、ステップＳ１１５にて行われる変換処理について、図８にて示すフローチャートを用いて説明する。
【０１６７】
変換処理部１５２は、変換可否判定部１１３もしくは暗号文生成部１５０から暗号文識別子ＣＴＩＤを受け取り、さらに変換可否判定部１１３から対象データＴＤを受け取る（ステップＳ２００）。
【０１６８】
変換処理部１５２は、受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する（ステップＳ２０５）。
【０１６９】
変換処理部１５２は、暗号文格納部１５１にアクセスし、暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡを取得する（ステップＳ２１０）。
【０１７０】
変換処理部１５２は、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥを取得する（ステップＳ２１５）。
【０１７１】
変換処理部１５２は、取得した変換済サイズＵＳＩＺＥをもとに、取得した暗号文データＣＴＤＡＴＡのどの部分に対象データＴＤを変換するかを決定、つまり、変換対象の係数ｅ＿（ＵＳＩＺＥ＋１）、ｅ＿（ＵＳＩＺＥ＋２）、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）を決定する（ステップＳ２２０）。
【０１７２】
変換処理部１５２は、変換対象の係数ｅ＿（ＵＳＩＺＥ＋１）、ｅ＿（ＵＳＩＺＥ＋２）、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）それぞれに、対象データＴＤの各係数ｍ＿１、ｍ＿２、・・・、ｍ＿ＳＩＺＥそれぞれを加算し、対象データＴＤが埋め込まれた暗号文データＣＴＤＡＴＡを生成する（ステップＳ２２５）。
【０１７３】
＜ステップＳ１０５の具体例＞
ここでは、ステップＳ１０５における判断時の具体例を、図９（ａ）、（ｂ）に示す。
【０１７４】
図９（ａ）は、暗号文データＤ２００における変換済サイズＵＳＩＺＥと対象データＴＤのサイズＳＩＺＥとの和（ＵＳＩＺＥ＋ＳＩＺＥ）が、暗号化単位長Ｄ２００の総サイズＴＳＩＺＥ以下である場合を示している。この場合、ステップＳ１０５では、既存の暗号文データを用いて対象データＴＤの変換（暗号化）が可能であると判断し、それに対応する暗号文識別子ＣＴＩＤが存在すると決定する。
【０１７５】
図９（ｂ）は、暗号文データＤ２０１における変換済サイズＵＳＩＺＥと対象データＴＤのサイズＳＩＺＥとの和（ＵＳＩＺＥ＋ＳＩＺＥ）が、暗号化単位長Ｄ２０１の総サイズＴＳＩＺＥより大きい場合を示している。この場合、ステップＳ１０５では、既存の暗号文データを用いた対象データＴＤの変換（暗号化）が不可能であると判断し、対象データＴＤの変換（暗号化）が可能となる他の暗号文データに対して同様の処理を行う。
【０１７６】
なお、ここでは、暗号化可能なデータ（変換可能なデータ）の単位長（１６７ビット）を基準とした場合に基づいて説明している。上述したように、暗号文データＤ１００のデータ長（１１６９ビット）を基準とした場合には、総サイズ、変換済サイズ及び対象データＴＤのサイズそれぞれを７倍して、上記の判断を行えばよい。
【０１７７】
（２）データ送信時の動作
以下、図１０のフローチャートを参照しながら、データ送信時の動作について説明する。
【０１７８】
送信処理部１１７は、データ復号装置１３からの送信要求情報を受け取る（ステップＳ３００）。
【０１７９】
送信処理部１１７は、変換可能情報格納部１１２にアクセスし、送信可否フラグＵＦＬＡＧがＴＲＵＥで、変換済サイズＵＳＩＺＥが一定以上となる暗号文識別子ＣＴＩＤが存在するかを確認する（ステップＳ３０５）。
【０１８０】
存在しないと判断する場合（ステップＳ３０５における「ＮＯ」）、送信処理部１１７は、データ復号装置１３に送信すべき情報はない旨を回答し、終了する。
【０１８１】
存在すると判断する場合（ステップＳ３０５における「ＹＥＳ」）、送信処理部１１７は、変換済サイズＵＳＩＺＥが一定以上となる一つ以上の暗号文識別子ＣＴＩＤのそれぞれに対応する暗号文データＣＴＤＡＴＡを暗号文格納部１５１から取得する（ステップＳ３１０）。
【０１８２】
送信処理部１１７は、変換可能情報格納部１１２から、取得した暗号文識別子ＣＴＩＤそれぞれに対応する変換済サイズＵＳＩＺＥを取得する（ステップＳ３１５）。
【０１８３】
送信処理部１１７は、取得した暗号文データＣＴＤＡＴＡそれぞれに対して、当該暗号文データＣＴＤＡＴＡと、それに対応する変換済サイズＵＳＩＺＥを対応付けて、通信路１２を介して、データ復号装置１３へ送信する(ステップＳ３２０)。
【０１８４】
送信処理部１１７は、送信処理にて送信された一つ以上の暗号文識別子ＣＴＩＤに対応する送信可否フラグＵＦＬＡＧをＦＡＬＳＥに設定する(ステップＳ３１５)。
【０１８５】
１．５  データ復号装置１３の構成
次に、データ復号装置１３の構成について説明する。
【０１８６】
データ復号装置１３は、図１１に示すように、要求受付部２００、送受信処理部２０１、復号鍵格納部２０２、復号処理部２０３、復号文格納部２０４及び表示部２０５から構成される。
【０１８７】
（１）要求受付部２００
要求受付部２００は、ユーザ操作により、ユーザから測定データＤの収集の指示を受け付けると、送信要求情報を送受信処理部２０１へ出力する。
【０１８８】
（２）送受信処理部２０１
送受信処理部２０１は、要求受付部２００から送信要求情報を受け付けると、受け付けた送信要求情報を、通信路１２を介してデータ暗号化装置１１へ送信する。
【０１８９】
送受信処理部２０１は、データ暗号化装置１１から、通信路１２を介して、１つ以上の暗号文データＣＴＤＡＴＡと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを受信する。送受信処理部２０１は、受信した暗号文データＣＴＤＡＴＡと変換済サイズＵＳＩＺＥを、復号処理部２０３へ出力する。
【０１９０】
送受信処理部２０１は、データ暗号化装置１１から、送信すべき情報はない旨の情報を受け取ると、受け取った情報を表示部２０５へ出力する。
【０１９１】
（３）復号鍵格納部２０２
復号鍵格納部２０２は、公開鍵暗号の復号鍵データＤＫを保持している。
【０１９２】
ここで、復号鍵格納部２０２が保持している復号鍵データＤＫは、暗号化鍵格納部１１５に格納されている公開鍵ｈに対応するＮＴＲＵ暗号の秘密鍵（ｆ，Ｆｐ）である。ＮＴＲＵ暗号の秘密鍵データの生成方法は、先ほど説明したので省略する。
【０１９３】
（４）復号処理部２０３
復号処理部２０３は、公開鍵暗号の復号処理を行う。
【０１９４】
復号処理部２０３は、測定データＤとカウンタ情報ＣＲＴとからなるデータのデータサイズの値を予め記憶している。なお、本実施の形態では、測定データＤとカウンタ情報ＣＲＴとからなるデータのデータサイズは、５バイトである。
【０１９５】
復号処理部２０３は、送受信処理部２０１から１つ以上の暗号文データＣＴＤＡＴＡと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに変換済サイズＵＳＩＺＥとを受け取ると、復号鍵格納部２０２にアクセスし、復号鍵データＤＫとして、ＮＴＲＵ暗号の秘密鍵（ｆ、Ｆｐ）を取得する。
【０１９６】
復号処理部２０３は、ＮＴＲＵ暗号の復号処理に従い、取得した秘密鍵（ｆ、Ｆｐ）を用いて、受け取った１つ以上の暗号化データＣＴＤＡＴＡそれぞれに対して復号処理を施す。
【０１９７】
なお、暗号化データの復号については、上述した１．１（４）に説明しているので、ここでは、簡単に説明する。なお、復号の詳細については特許文献１の３５〜３６ページ（１．４  復号）に記載されている。なお、その動作原理についても、同じく特許文献１の３６ページ（１．５  なぜ復号が機能するのか）に記載されている。
【０１９８】
＜ＮＴＲＵ暗号の復号方法＞
復号処理部２０３は、多項式である暗号文データＤＴＤＡＴＡを復号し、同じく多項式である復号文データＤＴＤＡＴＡを計算（取得）する。
【０１９９】
復号処理部２０３は、ＮＴＲＵ暗号における各パラメータ（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を予め記憶している。
【０２００】
復号処理部２０３は、暗号文データＤＴＤＡＴＡに対し、秘密鍵（復号鍵）の一部である多項式ｆを用いて、ａ＝ｆ×ｃ（ｍｏｄ  ｑ＊）により多項式ａを計算する。
【０２０１】
次に、復号処理部２０３は、多項式ａに対し、パラメータｐを用いて、ｂ＝ａ（ｍｏｄ  ｐ）により、多項式ｂを生成する。
【０２０２】
そして、復号処理部２０３は、多項式ｂに対し、秘密鍵（復号鍵）の一部である多項式Ｆｐを用いて、ｘ＝Ｆｐ×ｂ（ｍｏｄ  ｐ＊）により，仮復号文データｘを計算（取得）する。
【０２０３】
復号処理部２０３は、算出した仮復号文データｘのうち、最初の要素から変換済サイズＵＳＩＺＥ分だけの要素ｘ'（以下、メッセージｘ'）を取り出す。復号処理部２０３は、具体的には、（ｘ＿１、・・・、ｘ＿（ＵＳＩＺＥ））だけを取り出し、（ｘ＿（ＵＳＩＺＥ＋１）、・・・、ｘ＿Ｎ）は破棄する。
【０２０４】
復号処理部２０３は、係数がｘ＿１、・・・、ｘ＿（ＵＳＩＺＥ）からなる多項式であるメッセージｘ'から、測定データＤとそれに対応するカウンタ情報ＣＲＴとからなる１つ以上の復号文データＤＴＤＡＴＡを取得し、取得した１つ以上の復号文データＤＴＤＡＴＡを復号文格納部２０４へ格納する。具体的には、復号処理部２０３は、予め記憶している値"５"を用いて、メッセージｘ'の先頭の係数（０次の係数）から５つの係数毎に分割して、１つ以上の復号文データＤＴＤＡＴＡを取得する。
【０２０５】
（５）復号文格納部２０４
復号文格納部２０４は、図１２にて示すように、複数の復号文データＤＴＤＡＴＡを保持する。
【０２０６】
（６）表示部２０５
表示部２０５は、復号文格納部２０４に格納されている復号文データＤＴＤＡＴＡを表示する。復号文データに含まれるカウンタ情報に基づいて、対応する測定データＤの数値の推移をグラフ化して表示する。
【０２０７】
また、表示部２０５は、送受信処理部２０１から、送信すべき情報はない旨の情報を受け取ると、データ暗号化装置１１から受信した暗号文データは０件である旨を表示する。
【０２０８】
１．６  データ復号装置１３の動作
ここでは、データ復号装置１３の動作の一例について説明する。ここでは、データ受信時の動作について説明を行う。
【０２０９】
（１）データ受信時の動作
以下、図１３のフローチャートを参照しながら、データ受信時の動作について説明する。
【０２１０】
要求受付部２００がユーザから測定データＤの収集の指示を受け付けると、送受信処理部２０１は、送信要求情報を、通信路１２を介してデータ暗号化装置１１へ送信する（ステップＳ４００）。
【０２１１】
送受信処理部２０１は、データ暗号化装置１１から通信路１２を介して、１つ以上の暗号文データＣＴＤＡＴＡと前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを受信、若しくは送信すべき情報はない旨の情報を受信する（ステップＳ４０５）。
【０２１２】
送受信処理部２０１は、１つ以上の暗号文データＣＴＤＡＴＡを受信したか否かを判断する（ステップＳ４１０）。
【０２１３】
１つ以上の暗号文データＣＴＤＡＴＡを受信したと判断する場合には（ステップＳ４１０における「ＹＥＳ」）、送受信処理部２０１は、受信した１つ以上の暗号文データと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを、復号処理部２０３へ出力する。
【０２１４】
復号処理部２０３は、送受信処理部２０１から１つ以上の暗号文データと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを受け取ると、受け取った１つ以上の暗号化データＣＴＤＡＴＡそれぞれに対して復号処理を施す（ステップＳ４１５）。
【０２１５】
表示部２０５は、復号文格納部２０４に格納されている復号文データＤＴＤＡＴＡを表示する（ステップＳ４２０）。
【０２１６】
１つ以上の暗号文データＣＴＤＡＴＡを受信していない、つまり送信すべき情報はない旨の情報を受信したと判断する場合には（ステップＳ４１０における「ＮＯ」）、送受信処理部２０１は、受信した情報を表示部２０５へ出力する。表示部２０５は、送受信処理部２０１から、送信すべき情報はない旨の情報を受け取ると、データ暗号化装置１１から受信した暗号文データは０件である旨を表示して、処理を終了する。
【０２１７】
＜復号処理＞
ここでは、ステップＳ４１５にて行われる復号処理について、図１４にて示すフローチャートを用いて説明する。
【０２１８】
復号処理部２０３は、復号鍵格納部２０２にアクセスし、復号鍵データＤＫを取得する（ステップＳ５００）。
【０２１９】
復号処理部２０３は、受け取った１つ以上の暗号文データＣＴＤＡＴＡのうち未復号の暗号文データＣＴＤＡＴＡを１つ取得する（ステップＳ５０５）。
【０２２０】
復号処理部２０３は、取得した暗号文データＣＴＤＡＴＡを復号して、仮復号文ｘを取得する（ステップＳ５１０）。
【０２２１】
復号処理部２０３は、取得した暗号文データＣＴＤＡＴＡに対応する変換済サイズＵＳＩＺＥを用いて、メッセージｘ'を取得する（ステップＳ５１５）。
【０２２２】
復号処理部２０３は、取得したメッセージｘ'から測定データＤとカウンタ情報ＣＲＴとからなる１つ以上の復号文データを取得する（ステップＳ５２０）。
【０２２３】
復号処理部２０３は、取得した１以上の復号文データＤＴＤＡＴＡそれぞれを、復号文格納部２０４へ格納する（ステップＳ５２５）。
【０２２４】
復号処理部２０３は、未復号の暗号文データＣＴＤＡＴＡが存在するか否かを判断する（ステップＳ５３０）。
【０２２５】
存在すると判断する場合には（ステップＳ５３０における「ＹＥＳ」）、復号処理部２０３はステップＳ５０５へ戻り、処理を続行する。
【０２２６】
存在しないと判断する場合には（ステップＳ５３０における「NO」）、復号処理部２０３は復号処理を終了する。
【０２２７】
１．７  変形例
上記に説明した実施の形態は、本発明の実施の形態の一例であり、本発明はこの実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において主な態様で実施し得るものである。以下のような場合も本発明に含まれる。
【０２２８】
（１）暗号文生成部１５０で生成する暗号文データは、ＮＴＲＵ暗号の暗号化処理の平文との算術加算（融合処理）を行う直前の値であったが、これに限るものではない。
【０２２９】
例えば、暗号化鍵（公開鍵ｈ）を用いて、予め与えられる固定値（オール０）を平文として暗号化した値を暗号文データとしてもよい。これは、ＮＴＲＵ暗号において、暗号文データは平文データを（多項式の係数同士の）加算をすることによって生成されるが、オール０を加算しても結果は変化しないためである。このようにすることで、既にあるＮＴＲＵ暗号化装置などを流用して、本発明を実施することが出来るようになる。
【０２３０】
（２）暗号文生成部１５０は、暗号文データを計算により生成していたが、これに限らない。
【０２３１】
例えば、外部から通信路を介して新しい暗号文データを受信してもよい。また、予め装置出荷時に装置に埋め込まれているものを取得してもよい。さらに、予め装置出荷時に暗号化された状態で暗号化装置に埋め込まれていて、その復号鍵を外部から受信するようにしてもよい。これにより、装置で暗号文データを計算して生成する必要がなくなる。
【０２３２】
以下、外部装置から通信路を介して新しい暗号文データを受信する場合についてのデータ暗号化システム１ａについて、実施の形態とは異なる点を中心に説明する。
【０２３３】
データ暗号化システム１ａは、図１５に示すように、データ暗号化装置１１ａ、通信路１２ａ、データ復号装置１３ａ、暗号文データ生成装置１４ａから構成される。
【０２３４】
データ復号装置１３ａは、上記実施の形態にて示すデータ復号装置１３と同様であるので、ここでの説明は省略する。
【０２３５】
データ暗号化装置１１ａは、上記実施の形態にて示すデータ暗号化装置１１と同様に、計測データを、内部に暗号化した状態で蓄積し、データ復号装置１３ａの要求により蓄積している暗号化されたデータをデータ復号装置１３ａへ送信する。なお、データ暗号化装置１１ａは、一度送信した暗号化されたデータは、再度送信しない。
【０２３６】
通信路１２ａは、データ暗号化装置１１ａとデータ復号装置１３ａとの間、及びデータ暗号化装置１１ａと暗号文データ生成装置１４ａで、各種データを送受信出来る通信路である。
【０２３７】
（２−１）データ暗号化装置１１ａの構成
ここでは、データ暗号化装置１１ａの構成について説明する。
【０２３８】
データ暗号化装置１１ａは、図１５に示すように、パラメータ格納部１１０ａ、センサー部１１１ａ、変換可能情報格納部１１２ａ、変換可否判定部１１３ａ、暗号化処理部１１６ａ及び送受信処理部１１７ａとから構成される。
【０２３９】
パラメータ格納部１１０ａ、センサー部１１１ａ及び変換可能情報格納部１１２ａのそれぞれは、上記実施の形態にて示すパラメータ格納部１１０、センサー部１１１及び変換可能情報格納部１１２のそれぞれと同様であるので、ここでの説明は、省略する。
【０２４０】
（変換可否判定部１１３ａ）
変換可否判定部１１３ａは、上記実施の形態にて示す変換可否判定部１１３と同様に、  対象データＴＤの受け取り、当該対象データＴＤのサイズ情報ＳＩＺＥの取得を行う。
【０２４１】
変換可否判定部１１３ａは、変換可能情報格納部１１２ａにアクセスし、暗号文識別子ＣＴＩＤの小さい順から、送信可否フラグＵＦＬＡＧがＴＲＵＥで、さらに、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値がサイズ情報ＳＩＺＥよりも大きくなるような暗号文識別子ＣＴＩＤが存在するかどうかを確認する。
【０２４２】
もし一つでも存在する場合、変換可否判定部１１３ａは、対象データＴＤと該当する一つの暗号文識別子ＣＴＩＤとを変換処理部１５２ａへ出力する。
【０２４３】
もし存在しない場合、変換可否判定部１１３ａは、対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴを変換処理部１５２ａへ出力する。
【０２４４】
（暗号化処理部１１６ａ）
暗号化処理部１１６ａは、図１５に示すように、暗号文格納部１５１ａ及び変換処理部１５２ａから構成されている。
【０２４５】
暗号化処理部１１６ａは、上記実施の形態にて示す暗号化処理部１１６と同様に、変換可否判定部１１３ａから対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴとからなる組、若しくは対象データＴＤと暗号文識別子ＣＴＩＤとからなる組を受け取ると、受け取った対象データＴＤに対する暗号化を行う。
【０２４６】
暗号文格納部１５１ａは、上記実施の形態にて示す暗号文格納部１５１と同様であるので、ここでの説明は省略する。
【０２４７】
以下、変換処理部１５２ａについて説明する。
【０２４８】
変換処理部１５２ａは、変換可否判定部１１３ａから受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。
【０２４９】
変換処理部１５２ａは、変換可否判定部１１３ａから暗号文識別子ＣＴＩＤを受け取ると、上記実施の形態にて示す変換処理部１５２と同様に、受け取った暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡの取得、変換済サイズＵＳＩＺＥの取得、取得した暗号文データＣＴＤＡＴＡ及び変換済サイズＵＳＩＺＥを用いた対象データＴＤの変換、上書き、変換済サイズＵＳＩＺＥの更新を行う。
【０２５０】
変換処理部１５２ａは、変換可否判定部１１３ａから暗号文生成依頼信号ＲＥＱＣＴを受け取ると、新たな暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を要求する旨の要求情報を送受信処理部１１７ａを介して暗号文データ生成装置１４ａへ送信する。
【０２５１】
変換処理部１５２ａは、暗号文データ生成装置１４ａから、新たな暗号文データを受け取ると、暗号文格納部１５１ａにおいてまだ使われていない新たな暗号文識別子ＣＴＩＤを生成する。変換処理部１５２ａは、生成した新たな暗号文識別子ＣＴＩＤと新たな暗号文データとの組を暗号文格納部１５１ａに格納する。さらに、総サイズＴＳＩＺＥは１６７、変換済サイズＵＳＩＺＥは０、送信可否フラグＵＦＬＡＧはＴＲＵＥとして、先に生成した新たな暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２ａに格納する。
【０２５２】
変換処理部１５２ａは、変換可否判定部１１３ａから暗号文識別子ＣＴＩＤを受け取った場合と同様の動作により、対象データＴＤの変換、上書き、変換済サイズＵＳＩＺＥの更新を行う。
【０２５３】
（送受信処理部１１７ａ）
送受信処理部１１７ａは、上記実施の形態にて示す送信処理部１１７の動作に加えて、以下の動作を行う。
【０２５４】
送受信処理部１１７ａは、変換処理部１５２ａから要求情報を受け取ると、受け取った要求情報を暗号文データ生成装置１４ａへ送信する。
【０２５５】
送受信処理部１１７ａは、暗号文データ生成装置１４ａから  新たな暗号文データを受け取ると、受け取った新たな暗号文データを変換処理部１５２ａへ出力する。
【０２５６】
（２−２）暗号文データ生成装置１４ａの構成
暗号文データ生成装置１４ａは、図１５にて示すように、送受信処理部３００ａ、暗号文生成部３０１ａ、乱数生成部３０２ａ及び暗号化鍵格納部３０３ａから構成されている。
【０２５７】
乱数生成部３０２ａ及び暗号化鍵格納部３０３ａのそれぞれは、上記実施の形態にて示す乱数生成部１１４及び暗号化鍵格納部１１５のそれぞれと同様であるので、ここでの説明は省略する。
【０２５８】
（暗号文生成部３０１ａ）
暗号文生成部３０１ａは、データ暗号化装置１１ａから要求情報を受け取ると、上記実施の形態にて示す暗号文生成部１５０と同様に、新たな暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する。
【０２５９】
暗号文生成部３０１ａは、生成した新たな暗号文識別子ＣＴＩＤを送受信処理部３００ａを介してデータ暗号化装置１１ａへ送信する。
【０２６０】
（送受信処理部３００ａ）
送受信処理部３００ａは、データ暗号化装置１１ａから要求情報を受信すると、受信した要求情報を暗号文生成部３０１ａへ出力する。
【０２６１】
送受信処理部３００ａは、暗号文生成部３０１ａから、新たな暗号文データを受け取ると、受け取った新たな暗号文データをデータ暗号化装置１１ａへ送信する。
【０２６２】
（２−３）動作
ここでは、データ暗号化装置１１ａにおける測定処理について、図７にて示す流れ図を用いて、相違点のみ説明する。
【０２６３】
相違点は、図７にて示すステップＳ１１０であり、以下説明する。
【０２６４】
データ暗号化装置１１ａは、変換可否判定部１１３ａにて変換可能な暗号文データが存在しないと判断される場合（ステップＳ１０５における「ＮＯ」）、変換処理部１５２ａは、要求情報を暗号文データ生成装置１４ａへ送信する。そして、暗号文データ生成装置１４ａが、新たな暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成し、そしてデータ暗号化装置１１ａへ送信する。データ暗号化装置１１ａは、暗号文データ生成装置１４ａから新たな暗号文データＣＴＤＡＴＡを受け取ると、変換処理部１５２ａは、新たな暗号文識別子ＣＴＩＤを生成し、新たな暗号文識別子ＣＴＩＤと新たな暗号文データＣＴＤＡＴＡとの組を暗号文格納部１５１ａに格納する。さらに、総サイズＴＳＩＺＥや送信可否フラグＵＦＬＡＧを初期値（ＴＲＵＥ）に、変換済サイズＵＳＩＺＥを初期値（０）にそれぞれ設定し、先に生成した暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２ａに追加する。
【０２６５】
その後、ステップＳ１１５以降の動作を行う。なお、変換処理については、図８にて示す動作の流れと同様の動作の流れにて実現できるので、ここでの説明は省略する。
【０２６６】
また、データ暗号化装置１１ａが行う送信処理についても、図１０にて示す動作の流れにて実現できるので、ここでの説明は省略する。
【０２６７】
また、データ復号装置１３ａが行う受信処理及び復号処理にについても、図１３及び図１４にて示す動作の流れにて実現できるので、ここでの説明は省略する。
【０２６８】
（２−４）その他
データ暗号化装置１１ａとデータ復号装置１３ａとの間、及びデータ暗号化装置１１ａと暗号文データ生成装置１４ａとの間にておいて、同一の通信路１２ａを用いて各種データを送受信したが、これに限定されない。
【０２６９】
それぞれ異なる通信路にてデータの送受信を行ってもよい。例えば、データ暗号化装置１１ａは、暗号文データ生成装置１４ａに装着可能な装置であり、データ暗号化装置１１ａが暗号文データ生成装置１４ａに装着されることで通信路が確立される構成である。つまり、データ暗号化装置１１ａと暗号文データ生成装置１４ａとの間にて通信路が確立され、各装置間が通信路にて接続される状態となる構成であればよい。また、データ暗号化装置１１ａとデータ復号装置１３ａとについても同様である。
【０２７０】
（３）変換可能情報格納部１１２では、変換済サイズＵＳＩＺＥを保持していたが、これに限るものではない。例えば、変換済サイズＵＳＩＺＥの替わりに、変換可能サイズを保持していてもよい。これは、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値となる。これにより、変換可否を判断する際に、減算を行う必要がなくなる。
【０２７１】
（４）本実施例では、ＮＴＲＵ暗号を用いたが、これに限るものではない。具体的には、公開鍵暗号化において、データを暗号化する際に、乱数を用いて、その乱数により生成された値と平文データとをある演算（算術加算、算術減算、排他的論理和、算術乗算、多項式の加算、多項式の減算など）により融合することで暗号文を計算する方式であれば、どのような方式でもよい。例えば、ＥｌＧａｍａｌ暗号や、楕円ＥｌＧａｍａｌ暗号などは、それに含まれる。
【０２７２】
または、秘密鍵暗号において利用してもよい。
【０２７３】
下記では、公開鍵暗号における楕円ＥｌＧａｍａｌ暗号の場合について述べる。下記では、パラメータ生成、鍵生成、暗号文生成方法、変換方法、及び復号に分けて説明する。
【０２７４】
＜パラメータ生成＞
楕円曲線の定義式は、ｙ＾２＝ｘ＾３＋ａ×ｘ＋ｂで与えられる。ここで、ｚ＾ｊは、ｚのｊ乗であり、ａ×ｘはａとｘの掛け算を示す。ａ，ｂは、自然数であり、ａ，ｂにより楕円曲線が決定される。また、楕円曲線を定義する定義体は、一般にＧＦ（ｐ＾ｍ）で与えられる。ここで、ｐは素数であり、ｍは自然数である。ここでは、簡単のため、ｍ＝１として、定義体をＧＦ（ｐ）で扱う。また、ｐは１６０ビットとする。
【０２７５】
＜鍵生成＞
秘密鍵はｋｓであり、公開鍵ＫＰは、ＫＰ＝ｋｓ＊Ｇを満たす。ここで、Ｇは楕円ＥｌＧａｍａｌ暗号のベース点であり、楕円曲線上の点である。また、ｋｓ＊Ｇは、ベース点Ｇをｋｓ回加算することにより得られる楕円曲線上の点を表す。
【０２７６】
＜暗号文データの生成方法＞
データ暗号化装置は、乱数ｒを発生させ、ＰＣ＝ｒ＊Ｇを計算する。次に、データ暗号化装置は、ｃ＝ｒ＊ＫＰを計算し、ＰＣのｘ座標ｘ（ＰＣ）とｃの連結を暗号文データとする。また、総サイズＴＳＩＺＥは１６０とし、変換済サイズＵＳＩＺＥを０とする。
【０２７７】
＜変換方法（ｍ）＞
ここでは、ｎビットのデータｚを変換する場合について説明する。
【０２７８】
まず、データ暗号化装置は、記憶している少なくとも１つの対象データが暗号化されている暗号文データの総サイズＴＳＩＺＥから変化済サイズＵＳＩＺＥを減算した値（減算値）を算出する。
【０２７９】
データ暗号化装置は、算出した減算値がｎビット未満であるか否かを判断し、ｎビット未満であると判断する場合には、上記にて示す暗号文データの生成方法により暗号文データを生成して、以下に示す処理を行う。また、ｎビット未満でないと判断する場合には、減算値の算出に用いた暗号文データを利用して、以下に示す処理を行う。なお、新たに生成した暗号文データと、減算値の算出に用いた暗号文データとを区別する必要がない場合には、総称して暗号文データｃをして説明する。
【０２８０】
暗号文データｃの（ＵＳＩＺＥ＋１）ビット目から（ＵＳＩＺＥ＋ｎ）ビット目のそれぞれと、データｚの１ビット目からｎビット目のそれぞれとに排他的論理和による演算を行う。ここでは、暗号文データｃの（ＵＳＩＺＥ＋１）ビット目とデータｚの１ビットとに排他的論理和による演算を施して、その結果を暗号文データｃの（ＵＳＩＺＥ＋１）ビット目に上書きする。暗号文データｃの（ＵＳＩＺＥ＋２）ビット目とデータｚの２ビットとに排他的論理和による演算を施して、その結果を暗号文データｃの（ＵＳＩＺＥ＋２）ビット目に上書きする。この動作を暗号文データｃの（ＵＳＩＺＥ＋ｎ）ビット目まで繰り返すことにより、データｚの全てのビット値に対して排他的論理和を施すことができる。
【０２８１】
データ暗号化装置は、データｚの全てのビット値に対して排他的論理和を施した後、変換済サイズＵＳＩＺＥの値にｎを加算して、更新する。
【０２８２】
ここで、データｚの全てのビット値に対して排他的論理和を施す演算方法の一例を以下に示す。
【０２８３】
データ暗号化装置は、データｚのビット列に対して、ビット列の先頭が、暗号文データｃの（ＵＳＩＺＥ＋１）ビット目に対応するようにシフト演算を施す。
【０２８４】
そして、データ暗号化装置は、シフト演算が施されたデータｚと、暗号文データｃそれぞれの（ＵＳＩＺＥ＋１）ビット目から（ＵＳＩＺＥ＋ｎ）ビット目の範囲において、排他的論理和を施すことで、データｚの全てのビット値に対して排他的論理和を適用することができる。
【０２８５】
＜復号＞
暗号文データに含まれるｘ（ＰＣ）に対し、ｚ＝ｘ（ＰＣ）＾３＋ａ×ｘ（ＰＣ）＋ｂのＧＦ（ｐ）での平方根ｒｔを計算し、ＰＣ'＝（ｘ（ＰＣ），ｒｔ）とする。例えば、ｐ＝３  ｍｏｄ  ４の場合のＧＦ（ｐ）での平方根の計算方法を示す。その他の平方根の計算方法は、公知である。なお、ｄ  ｍｏｄ  ｅは、ｄをｅで割ったときの余りを示す。ｚの平方根は、ｚ＾（（ｐ＋１）／４）を計算することで求める。一般に、ｚ＾（ｐ−１）＝１  ｍｏｄ  ｐが成り立つため、ｚ＾（ｐ＋１）＝ｚ＾２  ｍｏｄ  ｐとなり、ｚ＾（（ｐ＋１）／４）＝（ｚ＾２）＾（１／４）＝ｚ＾（１／２）となるため、ｚの平方根が得られることがわかる。続いて、秘密鍵ｋｓを用いて、ＰＣ'のｋｓ倍の点ｋｓ＊ＰＣ'を計算する。最後に、ｋｓ＊ＰＣ'を用いて、ｃ  ｘｏｒ  ｘ（ｋｓ＊ＰＣ'）を計算し、この結果を復号文データとする。なお、ｘ（Ｐ）は、Ｐのｘ座標であり、ｘｏｒは排他的論理和演算子を示す。
【０２８６】
（５）暗号文生成部１５０で生成する暗号文に対して、既知平文攻撃を防ぐために、図１６で示すように、予め乱数を変換しておいても良い。乱数のビット数は、例えば総当りが不可能な８０ビットなどでよい。これは、ある一定ビット以下しか変換していない暗号文を送信した場合、不正な第三者により解析が可能になることを防止するためである。その解析方法は、下記の通りである。
【０２８７】
（５−１）公開鍵ｈに対して、ｈ×ｉｎｖ＿ｈ＝１  （ｍｏｄ  ｑ）となるｉｎｖ＿ｈを計算する。
【０２８８】
（５−２）変換済となる箇所を含む平文データ候補値ｍ'と仮定する。変換済となる箇所は予想値、その他の箇所については０とする。
【０２８９】
（５−３）暗号文データＣＴＤＡＴＡに対して、多項式である第一中間値ＣＶ１＝ＣＴＤＡＴＡ−ｍ'を計算する。
【０２９０】
（５−４）第一中間値ＣＶ１に対して、多項式である第二中間値ＣＶ２＝ｐ・ＣＶ１×ｉｎｖ＿ｈを計算する。
【０２９１】
（５−５）多項式である第二中間値ＣＶ２に対して、各係数が乱数ｒを生成したときの条件と全て一致（Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数は０となる）するかどうかを確認する。もし一致していたら、（５−２）で仮定した平文データ候補値ｍ'を正しい平文データｍとして出力する。一致していなかったら、（５−２）で仮定して平文データ候補値ｍ'を別のものに変えて、再度（５−３）〜（５−５）を繰り返す。
【０２９２】
ここで、予めある一定ビット以上を変換しておく理由は、（５−２）で仮定すべきパターン数を増やすことで、総当りが出来ないようにするためである。これにより、送信処理部１１７による変換済サイズＵＳＩＺＥのチェックは不要となる。また、変換可能情報格納部１１２の変換済サイズＵＳＩＺＥの初期値は、変換した乱数のビット数になる。
【０２９３】
このように、所定のサイズ（ここでは８０ビット）より小さい平文が暗号文データに初めて暗号化された場合、既知平文攻撃により解析され、当該平文が不正に取得される恐れがある。そこで、所定のサイズを予め付加することにより、暗号文データに平文が初めて暗号化された場合でも既知平文攻撃を防ぐことができる。
【０２９４】
なお、ここでは、既知平文攻撃を防ぐために８０ビットからなる乱数を変換するとしているが、８０ビットからなるオール０を変換するとしてもよい。
【０２９５】
（６）変換可能情報格納部１１２をセキュアメモリとすることで、外部からアクセス出来ないようにしてもよい。これにより、変換済サイズＵＳＩＺＥが第三者に漏洩しないので、例えば変形例（５）で述べた平文データを推測する攻撃を防止することが出来る。これにより、より安全にすることが出来る。
【０２９６】
（７）データ暗号化装置１１の暗号化鍵格納部１１５で格納される暗号化鍵ＥＫ（公開鍵ｈ）は、外部から設定できるようにしてもよい。これにより、出荷後に鍵設定が可能になるため、より利便性が向上する。
【０２９７】
例えば、データ暗号化装置は、初めて暗号文データの生成を実行する前に、暗号化鍵ＥＫ（公開鍵ｈ）を保持する外部の装置から、公開鍵ｈを取得し、取得した公開鍵ｈを格納してもよい。公開鍵ｈの格納後の暗号文データの生成は、実施の形態と同様であるので、ここでの説明は省略する。
【０２９８】
または、データ暗号化装置は、暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する度に、暗号化鍵ＥＫ（公開鍵ｈ）を保持する外部の装置から、公開鍵ｈを取得してもよい。この場合、データ暗号化装置は、図２にて示す各構成要素のうち暗号化鍵格納部を除く他の構成要素を備えることで実現できる。このとき、暗号文生成部は、変換可否判定部から暗号文生成依頼信号ＲＥＱＣＴを受け取ると、公開鍵ｈを保持する外部の装置へ公開鍵ｈを要求する要求情報を送信する。そして、外部の装置から公開鍵ｈを受け取ると、実施の形態にて示す動作と同様にして、暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する。
【０２９９】
（８）送信処理部１１７は、外部からの要求により、毎回同じ処理をしていたが、これに限るものではない。例えば、外部から特殊なコマンドが届いた場合、変換済サイズＵＳＩＺＥのチェックを行わずに、全ての暗号化データＣＴＤＡＴＡを送信するように動作してもよい。また、認証方法の違いにより、その動作を変えても良い。
【０３００】
（９）暗号文生成部１５０は、暗号文データを計算により生成していたが、これに限らない。例えば、データ暗号化装置１１は、暗号文生成部１５０にて生成された２個以上の（まだ変換していない初期状態の）暗号文データを暗号文格納部１５１に予め保持してもよい。
【０３０１】
この場合、例えば、データ暗号化装置１１の変換処理部１５２は、１の暗号文データによるデータの変換ができなくなるまでの間は当該１の暗号文データを用いてデータを変換（暗号化）する。そして、変換可否判定部１１３が当該１の暗号文データによる変換が不可（暗号化不可）であると判断すると、変換処理部１５２は、暗号文格納部１５１にて保持している他の暗号化データを用いてデータの変換を行う。
【０３０２】
または、データ暗号化装置１１の暗号文生成部１５０は、その２個以上の暗号文データの何れかを選択するように動作してもよい。この選択方法は、乱数を用いてランダムに選択してもよい。こうすることにより、少ない数の暗号文データで効率的に対象データを変換することが出来る。なお、同じ暗号文データを複数にコピーして、それぞれに対して異なる対象データで変換するようになるため、出力された複数の暗号文データから一部の情報が漏れる可能性がある。具体的には、第三者が、出力された複数の暗号文データの初期の暗号文データが同じだと知ることが出来たら、それら複数の暗号文データの差分（算術減算）を取ることで、変換に用いた対象データの差分を特定できる。しかし、それをランダムに暗号文データを選択するようにすることで、初期状態が同じ暗号文データであることを特定される確率を下げることが出来る。
【０３０３】
（１０）データ復号装置は、測定データＤとカウンタ情報ＣＲＴとからなるデータのサイズの値（ここでは、５バイト）を予め記憶しているとしたが、これに限定されない。
【０３０４】
データ暗号化装置１１が、変換に用いた対象データのサイズ情報ＳＩＺＥを全て保管するようにして、データ復号装置１３へ暗号文データを出力する際に、それらのサイズ情報ＳＩＺＥを併せて出力するようにしてもよい。これにより、データ復号装置１３は、対象データが可変長であっても、サイズ情報ＳＩＺＥを使ってメッセージｘ'を分割するので、元の対象データ、つまり測定データＤとカウンタ情報ＣＲＴとからなるデータごとに復元できるようになり、その後の利用が容易になる。
【０３０５】
（１１）データ暗号化装置１１は、データ復号装置１３へ暗号文データを出力する際に、それらに対応する暗号文識別子ＣＴＩＤを併せて出力するようにしてもよい。例えば、暗号文識別子は、データ暗号化装置１１で生成した順番を示すとする。それにより、データ復号装置１３は、暗号文データを復号して復号文データを取得後に、それら暗号文識別子ＣＴＩＤを使って復号文データに含まれるセンサー情報の計測（生成）された順番を把握できるようになる。
【０３０６】
（１２）データ暗号化装置１１で、変換に用いる対象データは、測定されたセンサー情報に限るものではない。例えば、何らか（例えばセンサー情報）の値のハッシュ値やコード化した値であってもよいし、鍵データであってもよい。また、異なる種類の値（例えば測定データとハッシュ値と鍵）を混ぜて、同じ一つの暗号文データを変換するようにしてもよい。
【０３０７】
（１３）上記実施の形態において、変換済サイズＵＳＩＺＥの値を、利用済と未利用の境界値（対象データのサイズｓの倍数）としたが、これに限定されない。
【０３０８】
変換済サイズＵＳＩＺＥの値は、対象データのサイズｓよりも大きい値の倍数であってもよい。例えば、対象データのサイズｓに所定値ｗを加えた値（ｓ＋ｗ）の倍数であってもよい。
【０３０９】
（１４）上記実施の形態において、暗号文データを先頭データから順に利用して、対象データを暗号化したが、これに限定されない。
【０３１０】
暗号文データのうち暗号化に利用されていない領域をランダムに利用してもよい。
【０３１１】
例えば、１回目の暗号化では、暗号文データの先頭データから対象データのサイズｓ分のデータを利用する。次の暗号化（２回目の暗号化）では、暗号文データの４ｓ番目のデータから対象データのサイズ長分のデータを利用する。３回目の暗号化では、暗号文データの２ｓ番目のデータから対象データのサイズ長分のデータを利用する。これにより、暗号文データのうち暗号化に利用されていない領域をランダムに利用することができる。
【０３１２】
（１５）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０３１３】
（１６）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０３１４】
例えば、データ暗号化装置を構成する変換可能情報格納部１１２や変換可否判定部１１３、乱数生成部１１４や暗号化鍵格納部１１５、暗号文生成部１５０や暗号文格納部１５１、変換処理部１５２等の各機能ブロックは典型的には集積回路であるＬＳＩとして実現されていてもよい。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。
【０３１５】
また、データ復号装置を構成する復号鍵格納部２０２や復号処理部２０３、復号文格納部２０４等の各機能ブロックは典型的には集積回路であるＬＳＩとして実現されていてもよい。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。
【０３１６】
ここでは、集積回路の一例としてＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０３１７】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０３１８】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【０３１９】
（１７）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０３２０】
（１８）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるディジタル信号であるとしてもよい。
【０３２１】
（１９）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
【０３２２】
（２０）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０３２３】
（２１）また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０３２４】
（２２）また、前記プログラムまたは前記ディジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記ディジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０３２５】
（２３）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
【０３２６】
１．８  その他
（１）本発明の一態様であるデータ暗号化装置は、複数回に渡って、対象データを取得する対象データ取得部と、一以上の暗号文データを保持する暗号文データ格納部と、前記一以上の暗号文データのそれぞれの未変換箇所を特定する未変換情報を保持する未変換情報格納部と、少なくとも、前記未変換情報及び前記対象データをもとに、前記一以上の暗号文データの何れかを変換する変換処理部とを備えることを特徴とする。
【０３２７】
（２）上記（１）のデータ暗号化装置は、さらに、少なくとも、前記対象データのデータサイズと前記未変換情報をもとに、前記一以上の暗号文データの何れかが変換可能かどうかを判定する変換可否判定部と、前記変換可否判定部で変換不可と判定された場合に、新しい暗号文データを取得する暗号文データ取得部とを備えるとしてもよい。
【０３２８】
（３）上記（２）のデータ暗号化装置は、さらに、公開鍵暗号の暗号化鍵を保持する暗号化鍵格納部と、乱数データを生成する乱数生成部とを備え、前記暗号文データ取得部は、少なくとも、前記暗号化鍵及び前記乱数データをもとに、暗号文データを生成するとしてもよい。
【０３２９】
（４）上記（３）のデータ暗号装置において、前記暗号文データ取得部は、公開鍵暗号の暗号化処理に含まれる計算のうち、対象データとの融合処理直前までの計算までを行い、その値を暗号文データとして生成するとしてもよい。
【０３３０】
（５）上記（３）のデータ暗号装置において、前記暗号文データ取得部は、予め与えられる平文初期値データを有し、公開鍵暗号の暗号化処理に従い、前記暗号化鍵及び前記乱数を用いて、前記平文初期値データを暗号化することにより、暗号文データを生成するとしてもよい。
【０３３１】
（６）上記（５）のデータ暗号装置において、前記平文初期値データは０であるとしてもよい。
【０３３２】
（７）上記（２）のデータ暗号化装置は、さらに、外部から、データを受信可能な受信処理部を備え、前記暗号文データ取得部は、前記送受信処理部を介して、前記暗号文データを取得するとしてもよい。
【０３３３】
（８）上記（１）のデータ暗号化装置は、さらに、外部に対して、前記暗号文データ格納部で保持する前記暗号文データを出力する出力処理部を備えるとしてもよい。
【０３３４】
（９）上記（８）のデータ暗号化装置において、前記変換可能情報は、前記一以上の暗号文データのそれぞれに対して、さらなる変換が可能かどうかを示す変換可否フラグを含み、前記出力処理部は、外部へ出力した際に、外部出力した前記暗号文データに対応する前記変換可否フラグを不可に設定するとしてもよい。
【０３３５】
（１０）上記（８）のデータ暗号化装置において、前記変換可能情報は、前記一以上の暗号文データのそれぞれに対して、暗号文データの中ですでに変換したデータサイズを示す変換済サイズ、もしくは、変換可能な残りのデータサイズを示す変換可能サイズ、の何れかを含み、前記出力処理部は、出力する前記暗号文データとともに、前記変換済サイズもしくは前記変換可能サイズを外部に出力するとしてもよい。
【０３３６】
（１１）上記（１０）のデータ暗号化装置において、前記出力部は、前記変換済サイズがある一定以上の前記暗号文データ、もしくは、前記変換可能サイズがある一定以下の前記暗号文データのみを外部へ出力するように制御するとしてもよい。
【０３３７】
（１２）上記（３）のデータ暗号化装置において、前記暗号文データ取得部は、ＮＴＲＵ暗号、もしくは、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの公開鍵暗号の暗号化処理の全てもしくは一部に基づき、暗号文データを生成し、前記変換処理部は、少なくとも、算術加算、算術減算、算術乗算、排他的論理和、のいずれか一つを用いるとしてもよい。
【０３３８】
（１３）上記（３）のデータ暗号化装置において、前記暗号文データ取得部は、さらに、  前記暗号文データを生成した後に、前記乱数生成部で生成された前記対象データとは無関係な第二乱数データをもとに、前期暗号文データを変換するとしてもよい。
【０３３９】
（１４）上記（１）のデータ暗号化装置において、前記変換可能情報格納部はセキュアメモリであり、前記変換可能情報は外部からアクセス不可であるとしてもよい。
【０３４０】
（１５）上記（１）のデータ暗号化装置において、前記対象データ取得部は、さらに、カウンタを計測する機能、及びセンサー情報を取得する機能を有し、前記対象データは、前記センサー情報と前記カウンタを連結した値であるとしてもよい。
【０３４１】
（１６）上記（１５）のデータ暗号化装置において、前記センサー情報は、体温、血圧、血糖値、脈拍値、心拍数、運動量、歩数のうち何れかデータであり、タイマーに基づき定期的に計測される情報であるとしてもよい。
【０３４２】
（１７）上記（１）のデータ暗号化装置は、さらに、前記暗号化鍵を外部から設定可能な暗号化鍵設定部を備えるとしてもよい。
【０３４３】
（１８）本発明の一態様であるデータ復号装置は、暗号文データとサイズ情報とを外部から取得する取得部と、復号鍵を保持する復号鍵格納部と、復号文データを格納する復号文データ格納部と、前記復号鍵を用いて、前記暗号文データを復号して、復号文データを取得する復号処理部と、前記サイズ情報に基づいて、前記復号文データの一部を削除し、削除された前記復号文データを前記復号文データ格納部に格納する削除処理部と備えることを特徴とする。
【０３４４】
（１９）上記（１８）のデータ復号装置において、前記復号鍵は、公開鍵暗号に基づく復号鍵であり、前記復号処理部は、公開鍵暗号の復号処理に従い、復号処理を行うとしてもよい。
【０３４５】
（２０）上記（１９）のデータ復号装置において、前記復号処理部は、ＮＴＲＵ暗号、もしくは、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの公開鍵暗号の復号処理に基づくとしてもいよい。
【０３４６】
（２１）本発明の一態様は、データ暗号化システムであって、前記データ暗号化システムはデータ暗号化装置とデータ復号装置から構成され、前記暗号化装置は、複数回に渡って、対象データを取得する対象データ取得部と、一以上の暗号文データを保持する暗号文データ格納部と、前記一以上の暗号文データのそれぞれの未変換箇所を特定する未変換情報を保持する未変換情報格納部と、少なくとも、前記対象データのデータサイズと前記未変換情報をもとに、前記一以上の暗号文データの何れかが変換可能かどうかを判定する変換可否判定部と、前記変換可否判定部で変換不可と判定された場合に、新しい暗号文データを取得する暗号文データ取得部と、少なくとも、前記未変換情報及び前記対象データをもとに、前記一以上の暗号文データの何れかを変換する変換処理部とを備え、前記復号装置は、暗号文データとサイズ情報とを外部から取得する取得部と、復号鍵を保持する復号鍵格納部と、復号文データを格納する復号文データ格納部と、前記復号鍵を用いて、前記暗号文データを復号して、復号文データを取得する復号処理部と、前記サイズ情報に基づいて、前記復号文データの一部を削除し、削除された前記復号文データを前記復号文データ格納部に格納する削除処理部とを備えることを特徴とする。
【０３４７】
（２２）上記（２１）のデータ暗号化システムにおいて、前記データ暗号化装置は、さらに、公開鍵暗号の暗号化鍵を保持する暗号化鍵格納部と、乱数データを生成する乱数生成部とを備え、前記暗号文データ取得部は、少なくとも、前記暗号化鍵及び前記乱数データをもとに、暗号文データを生成し、前記復号鍵は、前記暗号化鍵に対応する復号鍵であり、前記復号処理部は、前記公開鍵暗号の復号処理に従い、復号処理を行うとしてもよい。
【０３４８】
（２３）上記（２２）のデータ暗号化システムにおいて、前記暗号文データ取得部は、ＮＴＲＵ暗号、もしくは、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの公開鍵暗号の暗号化処理の全てもしくは一部に基づき、暗号文データを生成し、前記変換処理部は、少なくとも、算術加算、算術減算、算術乗算、排他的論理和、のいずれか一つを用い、前記復号処理部は、前記暗号文データ取得部と同じ公開鍵暗号の復号処理に基づき、復号処理を行うとしてもよい。
【産業上の利用可能性】
【０３４９】
本発明にかかるデータ暗号化システムは、複数の小さなサイズのデータを暗号化して蓄積する場合に、暗号文のサイズの増加を極力抑えつつ、記憶しているデータが解析されても対象データの漏洩を防ぐので、電池容量やメモリ、通信速度などの厳しい制約の下で、暗号化して蓄積する必要性があるような場合に有用である。【０３５０】
また、本発明に係るデータ暗号化装置及びデータ復号装置は、これらの装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
【符号の説明】
【０３５１】
１    データ暗号化システム
１１    データ暗号化装置
１２    通信路
１３    データ復号装置
１１０    パラメータ格納部
１１１    センサー部
１１２    変換可能情報格納部
１１３    変換可否判定部
１１４    乱数生成部
１１５    暗号化鍵格納部
１１６    暗号化処理部
１１７    送信処理部
１５０    暗号文生成部
１５１    暗号文格納部
１５２    変換処理部
２００    要求受付部
２０１    送受信処理部
２０２    復号鍵格納部
２０３    復号処理部
２０４    復号文格納部
２０５    表示部
【図１】
2009147788.tif 000003
【図２】
2009147788.tif 000004
【図３】
2009147788.tif 000005
【図４】
2009147788.tif 000006
【図５】
2009147788.tif 000007
【図６】
2009147788.tif 000008
【図７】
2009147788.tif 000009
【図８】
2009147788.tif 000010
【図９】
2009147788.tif 000011
【図１０】
2009147788.tif 000012
【図１１】
2009147788.tif 000013
【図１２】
2009147788.tif 000014
【図１３】
2009147788.tif 000015
【図１４】
2009147788.tif 000016
【図１５】
2009147788.tif 000017
【図１６】
2009147788.tif 000018
【手続補正書】
【提出日】平成22年10月29日(2010.10.29)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化を行う単位データのサイズよりも小さな複数のデータを暗号化して蓄積する技術に関する。
技術に関する。
【背景技術】
【０００２】
近年、温度センサーなどの各種センサー機能と通信機能の両方を兼ね備えたタグの開発が進められており、それらを用いた各種アプリケーションも検討されている。例えば、輸送する生鮮食料品や美術品に、温度センサーを有するタグを付けて、輸送時の温度を計測するような応用が考えられる。また別の応用として、体温などを長期間あるいは定期的に計測する必要のある患者向けの健康管理用途が考えられる。このようにして、それら計測機能を有するタグ（以降、センサータグと呼ぶ）を輸送時の品物や患者の体に貼り付けることで、定期的に状態を計測することができる。計測した情報は、センサータグ内に蓄積しておき、一定期間の計測が終わった後に、品物や患者の体から取り外して、通信機能を用いて内部のデータを読み出す。センサータグは超小型化することにより、品物の運搬者や患者が意識することなく定期的な計測が可能となる。
【０００３】
上記の健康管理用途にセンサータグを用いる場合、センサータグ内に蓄積する計測情報の機密性担保が必要となる。なぜなら、計測した生体情報は、被計測者にとってはプライバシー情報であるからである。そのため、体に貼り付けていたセンサータグが気づかないうちに剥がれ落ちて第三者に拾得された場合や、データ読出し後のセンサータグの管理の不徹底により第三者の手に渡った場合には、被計測者の生体情報の漏洩を防止する必要がある。そこで、データ漏洩を防止するために、計測した生体情報をセンサータグ内部で暗号化して蓄積するような仕組みが必要である。
【０００４】
暗号化の方法には大きく２種類存在する。秘密鍵暗号を用いる方法と、公開鍵暗号を用いる方法である。秘密鍵暗号は暗号化鍵と復号鍵は同一で、公開鍵暗号は暗号化鍵（公開鍵）と復号鍵（秘密鍵）が異なる点が特徴である。また、何れの場合にも、センサータグには暗号化鍵のみを入れることになる。ここでは、センサータグが解析され、内部データが漏洩する場合を想定する。そのような想定の下では、暗号化鍵が解析されることを意味する。
【０００５】
秘密鍵暗号を用いた場合、暗号化鍵は復号鍵と同じなので、その暗号化鍵を用いて、センサータグに入っている暗号化データを容易に復号することが出来る。よって、機密性担保が十分であるとは言えない。
【０００６】
一方、公開鍵暗号を用いた場合、暗号化鍵は入手することが出来るが、公開鍵暗号の特徴により、暗号化鍵から復号鍵を現実時間で導出することができない。よって、復号鍵を導出できず、センサータグに入っている暗号化データを復号することが出来ない。このように、蓄積データを暗号化する場合に公開鍵暗号を用いると、機密性を高めることが出来る。その公開鍵暗号には様々な方式が提案されており、例えばＲＳＡ方式（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）や、ＥｌＧａｍａｌ方式、楕円ＥｌＧａｍａｌ方式や、ＮＴＲＵ方式などがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０００−５１６７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
公開鍵暗号を用いる場合、暗号化を行う生体情報のサイズは、公開鍵暗号で暗号化する単位に比べて小さいという特徴がある。また、生体情報は連続して取得される。
このような場合における暗号化の実現方法は、大きく二つに分けられる。
【０００９】
一つ目は、小さなサイズの生体情報に対して固定値（パディング）を埋めて、暗号化する方法である。二つ目は、小さなサイズの生体情報を暗号化せずに一時的に蓄積し、それらがある一定サイズ以上に貯まったら連結して暗号化する方法である。
【００１０】
一つ目の方法の場合、暗号文サイズが大きくなるという課題が存在する。具体例を挙げて説明する。ここでは、１０２４ビットのＲＳＡ暗号と１６７次元のＮＴＲＵ暗号を想定し、生体情報は２４ビットとする。１０２４ビットのＲＳＡ暗号の場合、暗号化の単位は１０２４ビットとなる。そのため生体情報２４ビットに対して１０００ビット分の固定値（パディング）を連結して、その連結した値に対して暗号化する。これにより、１０２４ビット分の平文に対する暗号文が生成されることになるが、実質有意な値は２４ビット分のみとなる。また１６７次元のＮＴＲＵ暗号の場合、暗号化の単位は１６７ビットとなる。そのため生体情報２４ビットに対して１４３ビット分の固定値（パディング）を連結して、その連結した値に対して暗号化する。よって、１６７ビット分の平文に対する暗号文が生成されることになるが、実質有意な値は２４ビット分のみとなる。共に、本来暗号化する必要のない固定値（パディング）のサイズ分、暗号文データのサイズが増加してしまい、非効率的となる。
【００１１】
一方、二つ目の方法の場合、一時的に蓄積するデータはまだ暗号化されていない状態なので、万が一内部解析されると、そのデータがそのまま漏洩するというセキュリティの課題が存在する。
【００１２】
本発明は、上記課題に鑑みて、暗号化されたデータのサイズの増加を極力抑えつつ、蓄積データが解析されたとしても平文データは漏洩しない暗号化装置、暗号化システム、暗号化方法、コンピュータプログラム、集積回路を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明の一態様である、暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置は、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部とを具備することを特徴とする。
【発明の効果】
【００１４】
この構成によると、暗号化装置は、未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成している。これにより、暗号化する単位長より小さい暗号化対象のデータを暗号化する毎に、暗号化装置は前記単位長の暗号化データを生成する必要がなくなるので、暗号化に利用されるデータサイズを全体として大幅に削減できる。したがって、暗号化装置は、暗号化されたデータのサイズの増加を極力抑えることができる。また、蓄積されたデータが解析されたとしても、暗号化されているので平文データの漏洩をも防止できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係るデータ暗号化システム１の構成を示すブロック図である。
【図２】データ暗号化装置１１の構成を示すブロック図である。
【図３】変換可能情報テーブルＴ１００のデータ構造の一例を示す図である。
【図４】暗号文格納部１５１のデータ構造の一例を示す図である。
【図５】図５（ａ）は、変換済サイズＵＳＩＺＥの値の変化を示し、図５（ｂ）は、暗号文データの変化を示す。
【図６】暗号文生成部１５０、及び変換処理部１５２における演算の具体例を示す図である。
【図７】データ暗号化装置１１の測定処理の動作を示すフローチャートである。
【図８】変換処理の動作を示すフローチャートである。
【図９】測定処理におけるステップＳ１０５の判断動作の具体例を示す図である。
【図１０】データ暗号化装置１１の送信処理の動作を示すフローチャートである。
【図１１】データ復号装置１３の構成を示すブロック図である。
【図１２】復号文格納部２０４のデータ構造の一例を示す図である。
【図１３】データ復号装置１３の受信処理の動作を示すフローチャートである。
【図１４】復号処理の動作を示すフローチャートである。
【図１５】データ暗号化システム１ａの構成を示すブロック図である。
【図１６】暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ）に予め乱数を変換した場合における暗号文生成部１５０、及び変換処理部１５２の動作の具体例を示す図である。
【発明を実施するための形態】
【００１６】
本発明の一態様である、暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置であって、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部とを具備することを特徴とする。
【００１７】
この構成によると、暗号化装置は、未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成している。これにより、暗号化する単位長より小さい暗号化対象のデータを暗号化する毎に、暗号化装置は前記単位長の暗号化データを生成する必要がなくなるので、暗号化に利用されるデータサイズを全体として大幅に削減できる。したがって、暗号化装置は、暗号化されたデータのサイズの増加を極力抑えることができる。また、蓄積されたデータが解析されたとしても、暗号化されているので平文データの漏洩をも防止できる。
【００１８】
ここで、前記暗号部は、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれる場合、前記未利用領域に前記新たな暗号化対象のデータを追加するように暗号化データを生成するとしてもよい。
【００１９】
この構成によると、暗号化装置は、前記暗号化対象のデータが暗号化される際に利用される領域が前記未利用領域に含まれる場合に、当該未利用領域に新たな暗号化対象データを追加するので、既に暗号化されたデータを含む暗号化領域に確実に暗号化することができる。
【００２０】
ここで、前記暗号部は、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超える場合、新たな暗号化領域を用いて前記新たに暗号化されたデータが最初の暗号データとなる第２の暗号化データを生成し、前記制御部は、前記第２の暗号化データを生成すると、前記第２の暗号化データに基づいて前記新たな暗号化対象のデータの暗号化に用いられた利用済領域を示す第２の管理情報を、前記第２の暗号化データのために生成して前記記憶部に記憶するとしてもよい。
【００２１】
この構成によると、暗号化装置は、既に暗号化されたデータを含む暗号化領域を用いた暗号化ができない場合であっても、第２の暗号化データを生成するので、新たな暗号化対象データが漏洩しないようにすることができる。
【００２２】
ここで、前記管理情報は、前記利用済領域のデータ長を示す情報を含むとしてもよい。
さらに、前記単位長は、暗号化可能な平文のデータ長であり、前記利用済領域のデータ長は、暗号化可能な平文のデータ長のうち暗号化に利用されたデータ長であり、前記暗号部は、前記単位長から前記利用済領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より大きい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれると判断するとしてもよい。
【００２３】
ここで、前記暗号部は、前記単位長から前記利用領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より小さい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超えると判断するとしてもよい。
【００２４】
この構成によると、暗号化装置は、暗号化する単位長及び利用済領域のデータを用いて、既に暗号化されたデータを含む暗号化領域を用いた暗号化の可否を容易に判断できる。
ここで、前記暗号部は、公開鍵暗号の暗号化鍵を保持する保持部と、乱数の生成部と、を有し、前記保持部にて保持されている前記公開鍵及び前記生成部にて生成された前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加するとしてもよい。
【００２５】
この構成によると、暗号化装置は、公開鍵に基づいて公開鍵とは異なる可変暗号鍵を生成して、この可変暗号鍵を用いて暗号化データを生成するので、データの漏洩を一層強固に防止できる。
【００２６】
ここで、前記暗号部は、前記暗号化する単位長毎に、前記生成部に新たな乱数を生成させて、異なる可変暗号鍵を生成するとしてもよい。
この構成によると、暗号化装置は、前記可変暗号鍵を前記暗号化する単位長毎に更新することにより、前記可変暗号鍵の漏洩により一部の暗号化データが解析されても、他の暗号化データについてデータの漏洩を防止できるので、全体としてデータの漏洩を一層強固に防止できる。
【００２７】
ここで、前記暗号部は、前記新たな暗号化対象のデータを暗号化する際、前記新たな暗号化対象データが前記暗号化する単位長に基づいて定められた暗号化領域を用いて最初に暗号化される場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記新たな対象データを暗号化した際の利用済領域のデータサイズが前記最小サイズ以上となるよう所定の初期データを付加して前記暗号化データを生成するとしてもよい。
【００２８】
前記新たな暗号化対象のデータを暗号化する際、前記新たな対象データが前記暗号化する単位長の暗号化データの最初のデータとなる場合であって、前記新たな対象データを暗号化した際のデータサイズが所定の最小サイズより小さい場合、仮に前記新たな暗号化対象のデータを暗号化したデータのみを含む暗号化データが外部に出力されると、前記新たな対象データを暗号化した際のデータサイズが小さいために、解析されるおそれがある。
【００２９】
そこで、この構成によると、暗号化装置は、前記新たな対象データを暗号化した際のデータサイズが前記最小サイズ以上となるよう所定の初期データを付加して前記暗号化データを生成するので、仮に前記新たな暗号化対象のデータを暗号化したデータのみを含む暗号化データが外部に出力されても、前記新たな対象データを暗号化した際のデータサイズは所定の最小サイズを確保されるので、解析されてもデータが漏洩する可能性を低減できる。
【００３０】
ここで、前記所定の初期データは、乱数により生成される数値列であるとしてもよい。
この構成によると、暗号化装置は、初期データとして乱数を暗号化データに含めるので、暗号化対象データが利用する箇所の特定を困難にすることができる。
【００３１】
ここで、公開鍵暗号の暗号化鍵を保持する保持部と、乱数の乱数生成部と、前記公開鍵及び前記乱数を用いて可変暗号鍵を生成する鍵生成部と、を具備する外部装置と接続する接続部を有し、前記暗号部は、前記外部装置から前記可変暗号鍵を入力し、この入力した可変暗号鍵からなるデータ領域を暗号化領域として用いて前記暗号化データを生成するとしてもよい。
【００３２】
この構成によると、暗号化装置は、可変暗号鍵の生成に係る構成要素を必要としないので、当該装置の製造コストを抑えつつ、確実に可変暗号鍵を取得することができる。
ここで、第２の記憶部を設け、前記暗号部は、公開鍵暗号の暗号化鍵を保持する保持部と、乱数の生成部と、を有し、前記公開鍵及び前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、前記可変暗号鍵を前記第２の記憶部に保存し、前記暗号化する単位長毎に、前記第２の記憶部から異なる可変暗号鍵を読み出し、読み出した可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加するとしてもよい。
【００３３】
この構成によると、暗号化装置は、可変暗号鍵を保存しているので、暗号化時に生成する場合に比べて、暗号化に係る処理時間を短くすることができる。
ここで、公開鍵暗号の暗号化鍵を保持する外部装置と接続する接続部を有し、前記暗号部は、乱数の乱数生成部を有し、前記外部装置から入力した公開鍵及び前記乱数を用いて前記単位長に基づく可変暗号鍵を生成し、この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加するとしてもよい。
【００３４】
この構成によると、暗号化装置は、製造時に暗号鍵を保持しておく必要がない、つまり出荷後に鍵設定が可能になるため、より利便性が向上する。
ここで、前記暗号化データを復号する外部装置と接続される接続部を設け、前記制御部は、前記新たな暗号化対象のデータを暗号化する際、前記新たな対象データが前記暗号化する単位長の暗号化データの最初のデータとなる場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達するまで前記暗号化データを前記外部装置に出力しない制御を行うとしてもよい。
【００３５】
前記新たな対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズ以下の場合、仮に前記新たな暗号化対象のデータを暗号化したデータを含む暗号化データが外部に出力されると、暗号化に利用されたデータサイズが小さいために、解析されるおそれがある。
【００３６】
そこで、この構成によると、暗号化装置は、暗号化に利用されたデータサイズが最小サイズに到達するまで出力しないよう制御するので、外部との通信中に当該データが第三者に取得され、解析される恐れがない。
【００３７】
ここで、前記暗号部は、前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達して前記暗号化データを前記外部装置に出力した場合、前記暗号化する単位長より小さい次の暗号化対象のデータが最初の暗号されたデータとなる第２の暗号化データを生成するとしてもよい。
【００３８】
この構成によると、暗号化装置は、暗号化データを外部に出力する場合、次の暗号化対象データが最初の暗号されたデータとなる第２の暗号化データを生成することができる。これにより、暗号化装置は、一度出力した暗号化データを再度出力することを抑止するので、第三者による暗号化されたデータの解析を防止することができる。
【００３９】
ここで、前記暗号化データを復号する外部装置と接続される接続部を設け、前記制御部は、前記暗号化データを前記管理情報と共に前記外部装置に出力するとしてもよい。
この構成によると、暗号化装置は、暗号化データとともに、管理情報をも外部装置へ出力するので、外部装置は、暗号化データのうち暗号化に利用された領域を容易に特定することができる。
【００４０】
ここで、前記暗号化は、ＮＴＲＵ暗号、ＥＬＧａｍａｌ暗号、楕円ＥＬＧ暗号のいずれかの暗号化方式であるとしてもよい。
この構成によると、暗号化装置は、ＮＴＲＵ暗号、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの暗号化方式を用いることで、利用データのサイズの増加を極力抑えつつ、記憶しているデータが解析されても対象データが漏洩しないようにすることができる。
【００４１】
ここで、前記記憶部は、耐タンパー技術により保護されているとしてもよい。
この構成によると、管理情報が第三者に漏洩しないので、暗号化装置は、暗号化対象データを推測する攻撃を防止することが出来る。
【００４２】
また、本発明は、暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置と、前記暗号化されたデータを復号する復号装置とを含む暗号化システムであって、前記暗号化装置は、前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新し、前記暗号化データを前記更新された管理情報と共に前記復号装置に出力する制御部とを具備し、前記復号装置は、前記暗号化装置から入力した前記暗号化データを復号し、復号されたデータのうち、前記暗号化装置から入力した前記管理情報が示す利用済領域に基づく領域に存在する復号対象データを取得する復号処理部を具備することを特徴とする。
【００４３】
この構成によると、暗号化システムは、暗号化装置により、未利用領域に前記新たな暗号化対象のデータを追加するように暗号化データを生成している。これにより、暗号化する単位長より小さい暗号化対象のデータを暗号化する毎に、暗号化装置は前記単位長の暗号化データを生成する必要がなくなるので、暗号化に利用されるデータサイズを全体として大幅に削減できる。したがって、暗号化システムは、暗号化されたデータのサイズの増加を極力抑えることができる。また、蓄積されたデータが解析されたとしても、暗号化されているので平文データの漏洩をも防止できる。
【００４４】
１．実施の形態１
以下、本発明の実施の形態１について、図面を参照しながら説明する。
１．１  準備
ここでは、本実施の形態にて用いるＮＴＲＵ暗号について説明する。
【００４５】
以下において、ＮＴＲＵ暗号のパラメータ生成方法、鍵生成方法、暗号化及び復号について概要を説明する。なお、これらの詳細は、特許文献１に記載されているので、ここでは、簡単に説明する。
【００４６】
（１）ＮＴＲＵ暗号のパラメータ生成方法
ＮＴＲＵ暗号は、非負整数のパラメータ、Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄを持つ。以下に、これらのパラメータの意味を説明する。
【００４７】
（１−１）パラメータＮ
ＮＴＲＵ暗号は、多項式の演算により暗号化と復号を行う公開鍵暗号方式である。ＮＴＲＵ暗号で扱う多項式の次元は、上記パラメータＮにより決まる。ＮＴＲＵ暗号で扱う多項式は、上記パラメータＮに対し、Ｎ−１次以下の整数係数多項式であり、例えばＮ＝５のとき、Ｘ＾４＋Ｘ＾３＋１等の多項式である。ここで、「Ｘ＾ａ」はＸのａ乗を意味する。また、暗号化時あるいは復号時に用いる、公開鍵ｈ、秘密鍵ｆ、平文ｍ、乱数ｒ、暗号文ｃはいずれも、Ｎ−１次以下の多項式として表現される。そして、多項式演算は、上記パラメータＮに対し、Ｘ＾Ｎ＝１という関係式を用いて、演算結果が常にＮ−１次以下の多項式になるように演算される。例えば、Ｎ＝５の場合、多項式Ｘ＾４＋Ｘ＾２＋１と多項式Ｘ＾３＋Ｘの積は、多項式と多項式の積を×、整数と多項式の積（あるいは整数と整数の積）を・とすると、Ｘ＾５＝１という関係から、
（Ｘ＾４＋Ｘ＾２＋１）×（Ｘ＾３＋Ｘ）
＝Ｘ＾７＋２・Ｘ＾５＋２・Ｘ＾３＋Ｘ
＝Ｘ＾２×１＋２・１＋２・Ｘ＾３＋Ｘ
＝２・Ｘ＾３＋Ｘ＾２＋Ｘ＋２
というように、常にＮ−１次元以下の多項式になるように演算される。
【００４８】
（１−２）パラメータｐ、ｑ
ＮＴＲＵ暗号では、２以上の整数であるパラメータｐ、ｑを用いる。ＮＴＲＵ暗号で出現する多項式の係数は、ｐ、ｑを法とした剰余を取る。ここで、このパラメータｐ、ｑは互いに素となる必要がある。
【００４９】
（１−３）パラメータｄｆ、ｄｇ、ｄ
ＮＴＲＵ暗号で扱う秘密鍵の一部である多項式ｆ，公開鍵である多項式ｈを生成するときに多項式ｆと共に用いる多項式ｇ，及び平文を暗号化するときに用いる乱数である多項式ｒの選び方は、それぞれパラメータｄｆ、ｄｇ、ｄにより決まる。まず、多項式ｆは、ｄｆ個の係数が１であり、かつ（ｄｆ−１）個の係数が−１であり、かつ他の係数は０となるように選ぶ。すなわち、多項式ｆはＮ−１次以下の多項式であり、０次元（定数項）からＮ−１次まで、Ｎ個の係数があるが、このＮ個の係数のうち、ｄｆ個の係数が１であり、かつ（ｄｆ−１）個の係数が−１であり、かつ（Ｎ−２ｄｆ＋１）個の係数が０となるように選ぶ。そして、多項式ｇは、ｄｇ個の係数が１であり、かつｄｇ個の係数が−１であり、かつ他の係数は０となるように選ぶ。また、乱数である多項式ｒは、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ他の係数は０となるように選ぶ。
【００５０】
ＮＴＲＵ暗号のパラメータの例として、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１０７，３，６４，１５，１２，５）、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１６７，３，１２８，６１，２０，１８）、（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（５０３，３，２５６，２１６，７２，５５）などが考えられる。以後使用するパラメータは（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）＝（１６７，３，１２８，６１，２０，１８）とする。ただし、これに限るものではない。ちなみに、本パラメータはＮＴＲＵ暗号の安全性、及び性能（処理速度や各種データのサイズなど）に影響する。一般に大きなパラメータは、安全性は高いが、性能は劣る。
【００５１】
（２）ＮＴＲＵ暗号の鍵生成方法
ＮＴＲＵ暗号では、上述したように、パラメータｄｆ、ｄｇを用いてランダムに多項式ｆ、多項式ｇを生成する。そして、Ｆｐ×ｆ＝１（ｍｏｄ  ｐ）となる多項式Ｆｐを算出する。また、Ｆｑ×ｆ＝１（ｍｏｄ  ｑ）となる多項式Ｆｑを用いて、
ｈ＝Ｆｑ×ｇ（ｍｏｄ  ｑ）
により、多項式ｈを生成する。このとき、2つの値の組（ｆ，Ｆｐ）が秘密鍵データ（復号鍵）となり、値ｈが公開鍵データ（暗号化鍵）となる。ここで、ｘ＝ｙ（ｍｏｄ  ｑ）は、多項式ｙの第ｉ次の係数を、剰余が０からｑ−１の範囲に収まるように法ｑで割ったときの剰余を、多項式ｘの第ｉ次の係数とする演算である（０≦ｉ≦Ｎ−１）。すなわち、ｙの各係数を、０から（ｑ−１）の範囲に収まるようにｍｏｄ  ｑ演算した多項式を、多項式ｘとする演算である。ちなみに、通常演算装置でＮＴＲＵ暗号が処理される場合、各種データ（秘密鍵データや公開鍵データ）は、係数のみを保持し、（つまり、ｘ＾ａという部分は意識しない）。暗号処理を行う際には、その係数同士を作用させれば十分である。よって、秘密鍵データｆは、２・Ｎビット（０もしくは１もしくは−１を表すための２ビットをＮ次元分）、秘密鍵データＦｐも、ｐが３の場合、２・Ｎビット（０もしくは１もしくは−１を表すための２ビットをＮ次元分）となる。公開鍵データｈは、パラメータｑが１２８の場合、７・Ｎビット（０から１２７を表すための７ビットをＮ次元分）となる。なお、記号“・”は、上述したように整数と整数の積を示す。
【００５２】
（３）暗号化
ＮＴＲＵ暗号の暗号化では、平文である多項式ｍを暗号化し、暗号文である多項式ｃを算出（取得）する。先ず、上述したような多項式である乱数ｒをランダムに生成する。すなわち、乱数ｒはＮ−１次以下の多項式、つまり０次元（定数項）からＮ−１次元までのＮ個の係数を有する多項式である。このとき、多項式ｒは、Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数が０となるように、ランダムに選択（生成）される。
【００５３】
そして、生成した乱数ｒ（多項式ｒ）と公開鍵ｈとを用いて、係数が０、１若しくは−１であるＮ−１次以下の平文に対し、"ｃ＝ｐ・ｒ×ｈ＋ｍ  （ｍｏｄ  ｑ）"により、暗号文ｃを生成する。なお、特許文献１では、１組の平文Ｌ＿ｍからメッセージｍを選択し（多項式への変換）、選択したメッセージｍ（平文ｍ）に対する暗号文の生成について記載されている。
【００５４】
この演算は、上述した通り、多項式（ｐ・ｒ×ｈ＋ｍ）の各係数を０から（ｑ−１）の範囲に収まるように（ｍｏｄ  ｑ）演算した多項式を、多項式ｃとする演算である。
（４）復号
ＮＴＲＵ暗号の復号では、暗号文である多項式ｃを復号して、復号文である多項式ｍ'を算出（取得）する。復号では、先ず、暗号文ｃに対して、秘密鍵の一部である多項式ｆを用いて、"ａ＝ｆ×ｃ  （ｍｏｄ  ｑ＊）"により、多項式ａを計算する。
【００５５】
ここで、（ｍｏｄ  ｑ＊）は、上述の（ｍｏｄ  ｑ）演算とは異なり、多項式（ｆ×ｃ）の第ｉ次の係数を＜−ｑ／２＞＋１から＜ｑ／２＞の範囲に収まるように法ｑで割ったときの剰余を多項式ａの第ｉ次の係数とする演算である（ここで、ｉは、０以上Ｎ−１以下の整数）。すなわち、係数が＜ｑ／２＞からｑ−１である場合には、ｑ減算して、上記範囲に収まるように調整する。ここで、＜ｘ＞は、ｘ以下の数のうちで最も大きい数を示す。例えば、＜−１／２＞＝−１である。
【００５６】
次に、多項式ａに対して、パラメータｐを用いて、ｂ＝ａ  （ｍｏｄ  ｑ）により多項式ｂを生成する。
そして、多項式ｂに対して、秘密鍵の一部である多項式Ｆｐを用いて、ｍ'＝Ｆｐ×ｂ  （ｍｏｄ  ｐ＊）により、復号文ｍ'を計算（取得）する。
【００５７】
なお、（ｍｏｄ  ｐ＊）演算は、上述したように、多項式（Ｆｐ×ｂ）の第ｉ次の係数を＜−ｐ／２＞＋１から＜ｐ／２＞の範囲に収まるように法ｐで割ったときの剰余を、多項式ｍ'の第ｉ次の係数とする演算である（ここで、ｉは、０以上Ｎ−１以下の整数）。
【００５８】
（５）その他
なお、このＮＴＲＵ暗号に関して、上述のパラメータは全てｐ＝３となるパラメータであるが、このパラメータの他にｐ＝２となるパラメータも開示されている。
【００５９】
ｐ＝３の場合における平文ｍは、係数が０、１若しくは−１の３値である多項式であるが、ｐ＝２の場合における平文ｍは、係数が０、若しくは１の２値である多項式である。そして、秘密鍵データである多項式ｆ，多項式ｇ，乱数ｒは、ｐ＝２かｐ＝３かに関わらず係数が０もしくは１もしくは−１の３値である多項式である。
【００６０】
また、ＮＴＲＵ暗号に関して、鍵生成処理を"ｈ＝ｐ・Ｆｑ×ｇ  （ｍｏｄ  ｑ）"を満たすように、公開鍵ｈを生成することで、暗号化処理を"ｃ＝ｒ×ｈ＋ｍ  （ｍｏｄ  ｑ）"にて行う方法も開示されている。
【００６１】
１．２  データ暗号化システムの概要
データ暗号化システム１は、図１に示すように、データ暗号化装置１１、通信路１２、データ復号装置１３から構成される。
【００６２】
データ暗号化装置１１は、被計測者の体温などの生体情報を計測する機能を有する。計測データは、その都度、データ暗号化装置１１の内部に暗号化した状態で、蓄積される。
データ暗号化装置１１は、データ復号装置１３の要求により、蓄積している暗号化されたデータをデータ復号装置１３へ送信する。なお、データ暗号化装置１１は、一度送信した暗号化されたデータは、再度送信しない。
【００６３】
データ復号装置１３は、データ暗号化装置１１の内部に蓄積された１つ以上の暗号化されたデータを取得する。データ復号装置１３は、更に、取得した１つ以上の暗号化されたデータを、復号鍵を用いて復号し、平文の計測データを算出（取得）する。
【００６４】
通信路１２は、データ暗号化装置１１とデータ復号装置１３との間で、各種データを送受信出来る通信路である。例えば、インターネットや電話線、専用線、Ｂｌｕｅｔｏｏｔｈや特定省電力無線等の近距離無線、ＵＳＢケーブルなどである。
【００６５】
データ暗号化システム１の具体的な適用例としては、以下のようなものが考えられる。データ暗号化装置１１は、病院から患者である被計測者に提供される。被計測者は、病院の指示に従って、適切なタイミングでデータ暗号化装置１１を、自身の体に装着し、生体情報の計測を行う。病院は、あるタイミングで、データ復号装置１３を用いて、データ暗号化装置１１から暗号化計測データを読み取り、更に、復号鍵を用いて暗号化計測データを復号して、平文の計測データを得る。病院は、得られた計測データを元に患者である被計測者の診断などを行う。
【００６６】
１．３  データ暗号化装置１１の構成
次に、データ暗号化装置１１の構成について説明する。
データ暗号化装置１１は、図２に示すように、パラメータ格納部１１０、センサー部１１１、変換可能情報格納部１１２、変換可否判定部１１３、乱数生成部１１４、暗号化鍵格納部１１５、暗号化処理部１１６及び送信処理部１１７とから構成される。
【００６７】
（１）パラメータ格納部１１０
パラメータ格納部１１０は、ＮＴＲＵ暗号の各パラメータ（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を予め記憶している。
【００６８】
（２）センサー部１１１
センサー部１１１は、被計測者から測定データＤを計測し、それとカウンタ情報ＣＴＲと連結して、暗号化の対象となる対象データＴＤを生成する。
【００６９】
センサー部１１１は、生成した対象データＴＤを変換可否判定部１１３に出力する。
ここで、測定データＤは、例えば、体温や血圧、血糖値、脈拍数、心拍数、歩数、運動量などである。具体的に体温の場合、測定データＤは、十の位、一の位、小数点一の位がそれぞれ１バイトである合計３バイトからなるデータである。
【００７０】
また、カウンタ情報ＣＴＲは、０からインクリメントしていく値であり、計測された対象データＴＤの順番を把握するために用いられ、十の位、一の位がそれぞれ１バイトである合計２バイトからなるデータである。カウンタ情報ＣＴＲにより、センサー部１１１は、最大９９までカウントすることができる。
【００７１】
なお、センサー部１１１は、定期的に計測するのではなく、何らかのトリガが与えられた際に計測してもよい。例えば、データ暗号化装置１１がボタンを有し、ボタンが押された場合に計測するようにしてもよい。
【００７２】
（３）変換可能情報格納部１１２
変換可能情報格納部１１２は、図３で示すように、暗号文識別子ＣＴＩＤ、総サイズＴＳＩＺＥ、変換済サイズＵＳＩＺＥ、送信可否フラグＵＦＬＡＧの組からなる変換可能情報を一つ以上保持するための変換可能情報テーブルＴ１００を有している。
【００７３】
暗号文識別子ＣＴＩＤは、後述する暗号文格納部１５１に格納されている暗号文データＣＴＤＡＴＡを特定する識別子である。
総サイズＴＳＩＺＥは、暗号文識別子ＣＴＩＤの特定する暗号文データＣＴＤＡＴＡに対して、初期段階で変換出来るサイズの合計を表す。なお、総サイズＴＳＩＺＥの単位はビットである。例えば、ＴＳＩＺＥが１６７であれば、初期状態の暗号文データＣＴＤＡＴＡでは、最大１６７ビット分のデータを変換可能であることを意味する。
【００７４】
変換済サイズＵＳＩＺＥは、暗号文格納部１５１で保持されている、暗号文識別子ＣＴＩＤの特定する暗号文データＣＴＤＡＴＡに対して、既に変換を行ったデータのサイズを表す。変換済サイズＵＳＩＺＥの単位はビットである。例えば、ＵＳＩＺＥが１５０であれば、暗号文格納部１５１で保持されている暗号文データＣＴＤＡＴＡには、既に１５０ビット分のデータが変換されていることを意味する。
【００７５】
送信可否フラグＵＦＬＡＧは、暗号文格納部１５１で保持されている、暗号文識別子ＣＴＩＤの特定する暗号文データＣＴＤＡＴＡが、既にデータ復号装置１３へ送信されたか否かを示すフラグであり、ＴＲＵＥとＦＡＬＳＥをとりうる。ＴＲＵＥはまだ送信されていないことを示し、ＦＡＬＳＥは既に送信されたことを示す。ここで、送信可否フラグがＴＲＵＥの場合には、当該送信可否フラグに対応する暗号文データがデータ復号装置１３へ未だ送信されていないため変換が可能であることを示し、送信可否フラグがＦＡＬＳＥの場合には、当該送信可否フラグに対応する暗号文データがデータ復号装置１３へ既に送信されているため変換が不可能であることを示している。
【００７６】
変換可能情報格納部１１２が変換可能情報テーブルＴ１００を用いて保持する情報を使うことによって、データ暗号化装置１１は、同じ暗号文データを２個以上にコピーして、それぞれに対して異なる対象データで変換しないように制御する。この理由は、出力を盗聴する第三者が、万が一、二つの暗号文データの初期の暗号文データが同じだと知っていたら、それら二つの暗号文データの差分（算術減算）を取ることで、変換に用いた対象データの一部の情報（差分）を特定されてしまうためである。それを実現するために、ここでの変換済サイズＵＳＩＺＥは、ある暗号文データＣＴＤＡＴＡの同じ箇所を二度以上変換しないように制御するために用いる。また、送信可否フラグＵＦＬＡＧは、一度外部に出力した暗号文データＣＴＤＡＴＡに対して、それ以上その暗号文データＣＴＤＡＴＡに対して変換を行わないように制御するために用いられる。その理由は、外部に出力する途中を盗聴する第三者が存在した場合に、変換に使った対象データを特定することが可能となるためである。具体的には、一度目に出力した暗号文データＣＴＤＡＴＡと二度目に出力した暗号文データＣＴＤＡＴＡの差分（算術減算）を取ることにより、一度目の出力以降に変換した対象データは容易に得られる。
【００７７】
ちなみに、本実施の形態においては、総サイズ、変換済サイズとも、暗号化可能なデータ（変換可能なデータ）の単位長（１６７ビット）を基準としている。上述したように、総サイズ（１６７ビット）は暗号化可能なデータの単位長を示し、変換済サイズはそのうち変換に利用された利用済の領域（データ長）を示している。
【００７８】
なお、総サイズ、変換済サイズは、暗号文データのデータ長を基準としてもよい。この場合、総サイズ、変換済サイズとも、暗号化可能なデータの単位長（１６７ビット）を基準した場合の７倍の値となる。
【００７９】
（４）変換可否判定部１１３
変換可否判定部１１３は、センサー部１１１から対象データＴＤを受け取る。
変換可否判定部１１３は、受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。サイズ情報を取得する方法は、対象データＴＤそのものから計算する方法がある。なお、サイズ情報ＳＩＺＥが固定長の場合、計算は不要であり、予め設定された値を用いる。また、センサー部１１１からサイズ情報ＳＩＺＥを取得してもよい。
【００８０】
次に、変換可否判定部１１３は、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤの小さい順から、送信可否フラグＵＦＬＡＧがＴＲＵＥで、さらに、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値がサイズ情報ＳＩＺＥよりも大きくなるような暗号文識別子ＣＴＩＤが存在するかどうかを確認する。
【００８１】
もし一つでも存在する場合、変換可否判定部１１３は、対象データＴＤと該当する一つの暗号文識別子ＣＴＩＤとを変換処理部１５２へ出力する。
もし存在しない場合、変換可否判定部１１３は、対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴを暗号文生成部１５０へ出力する。
【００８２】
なお、サイズ情報ＳＩＺＥは、毎回変わってもよい。
（５）乱数生成部１１４
乱数生成部１１４は、後述する暗号文生成部１５０からの要求に応じて、乱数を生成して、その乱数を暗号文生成部１５０へ出力する。
【００８３】
具体的には、乱数生成部１１４は、暗号文生成部１５０から乱数生成を要求する旨の乱数生成要求情報を受け取ると、パラメータ格納部１１０にて格納されているパラメータＮ、ｄｆ、ｄｇ、ｄそれぞれに基づいて、多項式である乱数ｒをランダムに生成する。
【００８４】
ここで、乱数ｒはＮ−１次以下の多項式、つまり０次元（定数項）からＮ−１次元までのＮ個の係数を有する多項式である。このとき、乱数生成部１１４は、Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数が０となるように、乱数ｒ（多項式ｒ）をランダムに選択（生成）する。
【００８５】
（６）暗号化鍵格納部１１５
暗号化鍵格納部１１５は、公開鍵暗号の暗号化鍵データＥＫを保持する。
具体的には、暗号化鍵データＥＫは、ＮＴＲＵ暗号の公開鍵ｈである。
【００８６】
（７）暗号化処理部１１６
暗号化処理部１１６は、図２に示すように、暗号文生成部１５０、暗号文格納部１５１及び変換処理部１５２とから構成されている。
【００８７】
暗号化処理部１１６は、変換可否判定部１１３から対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴとからなる組、若しくは対象データＴＤと暗号文識別子ＣＴＩＤとからなる組を受け取ると、受け取った対象データＴＤに対する暗号化を行う。
【００８８】
（７−１）暗号文生成部１５０
暗号文生成部１５０は、変換可否判定部１１３から暗号文生成依頼信号ＲＥＱＣＴを受け取ると、暗号化鍵格納部１１５から公開鍵ｈを取得する。
【００８９】
暗号文生成部１５０は、公開鍵ｈを用いて、ＮＴＲＵ暗号の暗号文データＣＴＤＡＴＡを生成する。
下記で、暗号文データＣＴＤＡＴＡを生成する方法について述べる。まず、暗号文生成部１５０は、乱数生成要求情報を乱数生成部１１４へ出力する。その後、暗号文生成部１５０は、乱数生成部１１４から乱数ｒを受け取る。そして、暗号文生成部１５０は、受け取った乱数ｒと、暗号化鍵格納部１１５にて保持している公開鍵ｈ（暗号化鍵データＥＫ）と、パラメータ格納部１１０にて保持しているパラメータｐ、ｑとを用いて、暗号文データ    ＣＴＤＡＴＡ＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ）を算出（生成）する。
【００９０】
この演算は、上述した通り、多項式（ｐ・ｒ×ｈ）の各係数を、０から（ｑ−１）の範囲に収まるようにｍｏｄ  ｑ演算した多項式を、多項式ｃ（＝ＣＴＤＡＴＡ）とする演算である。
【００９１】
暗号文生成部１５０は、暗号文格納部１５１において、まだ使われていない暗号文識別子ＣＴＩＤを生成する。暗号文識別子ＣＴＩＤを生成する方法は、カウンタを用いても良いし、使用されている暗号文識別子に１を加えた値にしてもよい。
【００９２】
暗号文生成部１５０は、生成した暗号文識別子ＣＴＩＤと暗号文データＣＴＤＡＴＡとの組を暗号文格納部１５１に格納する。さらに、総サイズＴＳＩＺＥは１６７、変換済サイズＵＳＩＺＥは０、送信可否フラグＵＦＬＡＧはＴＲＵＥとして、先に生成した暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２に格納する。
【００９３】
暗号文生成部１５０は、生成した暗号文識別子ＣＴＩＤを変換処理部１５２へ出力する。
なお、変換可能情報格納部１１２に対して初期値として追加する情報は、暗号化鍵格納部１１５で格納されている暗号化鍵データＥＫが生成されたときのパラメータに依存するので、これに限るものではない。
【００９４】
ここで、従来の暗号化方法と異なる点は、以下の通りである。
従来の暗号化方法は、"ｐ・ｒ×ｈ＋ｍ  （ｍｏｄ  ｑ）"により、平文ｍ（多項式ｍ）に対する暗号化を行っているが、ここでは、暗号文生成部１５０は、"ｐ・ｒ×ｈ"演算のみを行い、平文ｍとの加算は行わない（従来の暗号化における計算式の最後の"＋ｍ"の部分、メッセージとの融合処理）。特許文献１と比較すると、暗号文生成部１５０では、暗号文生成部１５０では、１組の平文Ｌ＿ｍからメッセージｍを選択しない（多項式への変換）こと、及び暗号文データを計算する際に、ｍとの加算は行わない（計算式の最後の"＋ｍ"の部分、メッセージとの融合処理）ことが、特許文献１とは異なる点である。
【００９５】
つまり、暗号文生成部１５０で生成される暗号文データＣＴＤＡＴＡは、平文ｍが暗号化される直前の状態のデータである。
ちなみに、ＮＴＲＵ暗号は、平文の単位長がＮビットであり、それに対応する暗号文サイズが７・Ｎビット（パラメータｑが１２８の場合）となる。よって、１個の暗号文データＣＴＤＡＴＡに対して、後に説明する変換処理部１５２で変換できる最大サイズ（つまり埋め込めるメッセージの合計サイズ）は、７・Ｎビット（パラメータｑが１２８の場合）となる。
【００９６】
なお、本発明における可変暗号鍵は、平文ｍが暗号化される直前の状態の暗号文データＣＴＤＡＴＡに相当する。
（７−２）暗号文格納部１５１
暗号文格納部１５１は、図４で示すとおり、暗号文識別子ＣＴＩＤと暗号文データＣＴＤＡＴＡの組を一つ以上保持する。
【００９７】
ここで、暗号文識別子ＣＴＩＤは、変換可能情報格納部１１２に格納されている値と対応するものである。暗号文データＣＴＤＡＴＡは、ＮＴＲＵ暗号の公開鍵データで暗号化された暗号文データである。
【００９８】
（７−３）変換処理部１５２
変換処理部１５２は、変換可否判定部１１３から受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。サイズ情報を取得する方法は、変換可否判定部１１３と同じなので、省略する。
【００９９】
変換処理部１５２は、対象データＴＤから、ベクトル化された多項式であるメッセージｍ（係数はｍ＿１、・・・、ｍ＿（ＳＩＺＥ））を計算する。ＮＴＲＵ暗号の場合で、ｐ＝３のとき、メッセージｍは係数が０もしくは１もしくは−１の３値である多項式であるが、ｐ＝２の場合は、メッセージｍは係数が０もしくは１の２値である多項式である。多項式への変換方法については、対象データＴＤをバイナリ化して、それぞれを多項式の係数にする方法などが考えられる。
【０１００】
変換処理部１５２は、変換可否判定部１１３もしくは暗号文生成部１５０から暗号文識別子ＣＴＩＤを受け取ると、暗号文格納部１５１にアクセスし、受け取った暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡを取得する。そして、変換処理部１５２は、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥを取得する。
【０１０１】
変換処理部１５２は、取得した変換済サイズＵＳＩＺＥをもとに、取得した暗号文データＣＴＤＡＴＡのどの部分に対象データＴＤを変換するかを判断する。具体的には、暗号文データＣＴＤＡＴＡの多項式の係数をｅ＿１（多項式ｅの０次の係数）、ｅ＿２（多項式ｅの１次の係数）、・・・、ｅ＿Ｎ（多項式ｅのＮ−１次の係数）とした場合、（ＵＳＩＺＥ）次の係数から（ＵＳＩＺＥ＋ＳＩＺＥ−１）次の係数までが変換対象となる。言い換えると、ｅ＿（ＵＳＩＺＥ＋１）、ｅ＿（ＵＳＩＺＥ＋２）、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）が変換対象となる。この処理は、特許文献１の３５ページ（１．３  符号化）で記載されている処理と同様に、多項式の加算"＋"で行う。対象データＴＤを多項式にしたメッセージｍを暗号文データＣＴＤＡＴＡの特定の一部に加算する。具体的には、ｅ＿（ＵＳＩＺＥ＋１）にｍ＿１（多項式ｍの０次の係数）を加算し、ｅ＿（ＵＳＩＺＥ＋２）にｍ＿２（多項式ｍの１次の係数）を加算し、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）にｍ＿(ＳＩＺＥ) （多項式ｍのＳＩＺＥ−１次の係数）を加算する。なお、このとき、各係数が０から（ｑ−１）の範囲に収まるように（ｍｏｄ  ｑ）演算を施す。
【０１０２】
そして、変換後の暗号文データＣＴＤＡＴＡを、暗号文格納部１５１の同じ場所に上書きする。最後、変換可能情報格納部１１２の、暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥに、サイズ情報ＳＩＺＥを加算する。
【０１０３】
（具体例）
図５を用いて、平文ｍ＃１及びｍ＃２を暗号化する場合について説明する。なお、平文ｍ＃１及びｍ＃２はｓ−１次の多項式とする。
【０１０４】
図５（ａ）は、変換済サイズＵＳＩＺＥの値の変化を示す。ここでの暗号化単位長は、総サイズＴＳＩＺＥ（＝１６７）である。
先ず、暗号化が一度も行われていない場合、暗号化単位長Ｄ１０における変換済サイズＵＳＩＺＥは値“０”である。この状態で、平文ｍ＃１（ＳＩＺＥ＝ｓ）が暗号化されると、総サイズＴＳＩＺＥのうちＳＩＺＥ分だけ暗号化に利用されるので、ＵＳＩＺＥ＝ｓとなる（暗号化単位長Ｄ１１を参照）。次に、平文ｍ＃２（ＳＩＺＥ＝ｓ）が暗号化されると、暗号化にＳＩＺＥ分だけ利用されるので、平文ｍ＃１の暗号化時のＵＳＩＺＥにさらに、値ｓが加算され、ＵＳＩＺＥ＝２ｓとなる（暗号化単位長Ｄ１２を参照）。
【０１０５】
図５（ｂ）は、暗号文データの変化を示す。
先ず、暗号文生成部１５０は、"ｐ・ｒ×ｈ"演算により平文ｍが暗号化される直前の状態のデータである暗号文データＤ１００を生成し、暗号文格納部１５１に格納する。このとき、変換可能情報格納部１１２にて格納される暗号文データＤ１００に対応する変換済サイズＵＳＩＺＥは、０である。ちなみに、上述したように、暗号文データＤ１００のデータ長は、１６７ビットの７倍、つまり1169ビットである。
【０１０６】
変換処理部１５２は、平文ｍ＃１を暗号化する際に、暗号文データＤ１００を暗号文格納部１５１から取得し、暗号文データＤ１００に対応する変換済サイズを変換可能情報格納部１１２から取得する。
【０１０７】
取得した変換済サイズＵＳＩＺＥの値は０であるので、変換処理部１５２は、ｅ＿１、ｅ＿２、・・・、ｅ＿Ｓそれぞれに、平文ｍ＃１の多項式の係数ｍ＿１（０次の係数）、ｍ＿２（１次の係数）、・・・、ｍ＿ｓ（ｓ−１次の係数）を加算し、平文ｍ＃１が暗号化された暗号文データＤ１０１を生成し、暗号文格納部１５１に格納している暗号文データＤ１００を暗号文データＤ１０１へと更新する。さらに、変換処理部１５２は、図５（ａ）にて示すように、変換可能情報格納部１１２にて格納している暗号文データＤ１０１に対応する変換済サイズＵＳＩＺＥを０からｓへと更新する。これは、暗号化可能なデータ（変換可能なデータ）の単位長（１６７ビット）を基準とした場合には単位長（１６７ビット）のうちｓビット分を利用していることを意味している。なお、暗号文データＤ１００のデータ長（１１６９ビット）を基準とした場合には、変換済サイズＵＳＩＺＥは、０から７・ｓへと更新される。
【０１０８】
変換処理部１５２は、平文ｍ＃２を暗号化する際に、暗号文データＤ１０１を暗号文格納部１５１から取得し、暗号文データＤ１０１に対応する変換済サイズを変換可能情報格納部１１２から取得する。
【０１０９】
取得した変換済サイズＵＳＩＺＥの値はｓであるので、変換処理部１５２は、ｅ＿（ｓ＋１）、ｅ＿（ｓ＋２）、・・・、ｅ＿（ｓ＋ｓ）それぞれに、平文ｍ＃２の多項式の係数ｍ'＿１（０次の係数）、ｍ'＿２（１次の係数）、・・・、ｍ'＿ｓ（ｓ−１次の係数）を加算し、平文ｍ＃２が暗号化された暗号文データＤ１０２を生成し、暗号文格納部１５１に格納している暗号文データＤ１０１を暗号文データＤ１０２へと更新する。さらに、変換処理部１５２は、変換可能情報格納部１１２にて格納している暗号文データＤ１０２に対応する変換済サイズＵＳＩＺＥをｓから２ｓへと更新する。これは、暗号化可能なデータの単位長（１６７ビット）を基準とした場合には単位長（１６７ビット）のうち２ｓビット分を利用していることを意味する。なお、暗号文データＤ１００のデータ長（１１６９ビット）を基準とした場合には、変換済サイズＵＳＩＺＥは、０から７・２ｓ（＝１４ｓ）へと更新される。
【０１１０】
次に、図６を用いて、平文ｍ＃１及びｍ＃２に対する演算について、一例を用いて説明する。
暗号文生成部１５０は、図６（ａ）に示すように、ｐ・ｒ×ｈ（ｍｏｄ  ｑ）により、
ＣＴＤＡＴＡ＝ｐ・ｒ×ｈ（ｍｏｄ  ｑ）
＝ｅ＿１＋ｅ＿２×Ｘ＋・・・＋ｅ＿ｓ×Ｘ＾（ｓ−１）＋ｅ＿（ｓ＋１）×Ｘ＾ｓ
＋ｅ＿（ｓ＋２）×Ｘ＾（ｓ＋１）＋・・・＋ｅ＿２ｓ×Ｘ＾（２ｓ）＋・・・＋ｅ＿Ｎ×Ｘ＾（Ｎ−１）
を算出することにより、暗号文データＤ１００を生成する。
【０１１１】
変換処理部１５２は、平文ｍ＃１を暗号化する際には、図６（ｂ）に示すように、平文ｍ＃１の多項式にＸ＾（ＵＳＩＺＥ）を乗算して、暗号文データＤ１００に加算する。
つまり、図６（ｂ）にて示すように、暗号文データ（ＣＴＤＡＴＡ）Ｄ１００に対して、ＣＴＤＡＴＡ＋ｍ＃１×Ｘ＾（ＵＳＩＺＥ）を計算することにより、ｅ＿１、ｅ＿２、・・・、ｅ＿ｓそれぞれに、平文ｍ＃１の多項式の係数ｍ＿１（０次の係数）、ｍ＿２（１次の係数）、・・・、ｍ＿ｓ（ｓ−１次の係数）を加算することができる。
【０１１２】
また、さらに、変換処理部１５２は、平文ｍ＃２を暗号化する際には、図６（ｃ）に示すように、平文ｍ＃２の多項式にＸ＾（ＵＳＩＺＥ）を乗算して、暗号文データＤ１０１に加算する。
【０１１３】
つまり、図６（ｃ）にて示すように、暗号文データ（ＣＴＤＡＴＡ）Ｄ１０１に対して、ＣＴＤＡＴＡ＋ｍ＃２×Ｘ＾（ＵＳＩＺＥ）を計算することにより、ｅ＿（ｓ＋１）、ｅ＿（ｓ＋２）、・・・、ｅ＿（ｓ＋ｓ）それぞれに、平文ｍ＃２の多項式の係数ｍ'＿１（０次の係数）、ｍ'＿２（１次の係数）、・・・、ｍ'＿ｓ（ｓ−１次の係数）が加算され、暗号文データＤ１０２が生成される。
【０１１４】
ここで、図６（ｂ）、（ｃ）にて示すように、平文ｍ＃２を暗号文データＤ１０１を用いて暗号化（変換）する際には、ｍ＃１が暗号化（変換）に利用された暗号文データＤ１０１の０次からｓ−１次までの係数について何ら影響を与えることなく、平文ｍ＃２の多項式の係数ｍ'＿１、ｍ'＿２、・・・、ｍ'＿ｓが加算されていることが分かる。
【０１１５】
ここでの処理のポイントは、暗号文データＣＴＤＡＴＡの同じビット位置に対して、二度以上対象データを加算しないために行うものであり、それを達成する方法であれば、他の方法でもよい。ちなみに、通常演算装置でＮＴＲＵ暗号が処理される場合、各種データ（秘密鍵データや公開鍵データ）は、係数のみを保持するようにし、暗号処理時には、その係数同士のみを計算に用いればよい。
【０１１６】
（８）送信処理部１１７
送信処理部１１７は、データ復号装置１３からの要求により、通信路１２を介して、暗号文格納部１５１で保持する暗号文データＣＴＤＡＴＡをデータ復号装置１３に送信する処理を行う。
【０１１７】
まず、データ復号装置１３からデータの要求を示す送信要求情報を受け取ったら、変換可能情報格納部１１２にアクセスし、送信可否フラグＵＦＬＡＧがＴＲＵＥで、変換済サイズＵＳＩＺＥが予め与えられるサイズ以上となる暗号文識別子ＣＴＩＤが存在するかを確認する。予め与えられるサイズは、例えば８０である。これは、ある一定ビット以下しか変換していない暗号文を送信した場合、不正な第三者により解析が可能になることを防止するためである。その解析方法は、下記の通りである。
【０１１８】
（手順１）公開鍵ｈに対して、ｈ×ｉｎｖ＿ｈ＝１  （ｍｏｄ  ｑ）となるｉｎｖ＿ｈを計算する。
（手順２）変換済となる箇所を含む平文データ候補値をｍ'に仮定する。変換済となる箇所は予想値、その他の箇所については０とする。
【０１１９】
（手順３）暗号文データＣＴＤＡＴＡに対して、多項式である第一中間値ＣＶ１＝ＣＴＤＡＴＡ−ｍ'を計算する。
（手順４）第一中間値ＣＶ１に対して、多項式である第二中間値ＣＶ２＝ｐ・ＣＶ１×ｉｎｖ＿ｈを計算する。
【０１２０】
（手順５）多項式である第二中間値ＣＶ２に対して、各係数が乱数ｒを生成したときの条件と全て一致（Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数は０となる）するかどうかを確認する。もし一致していたら、（手順２）で仮定して平文データ候補値ｍ'を正しい平文データｍとして出力する。一致していなかったら、（手順２）で仮定して平文データ候補値ｍ'を別のものに変えて、再度（手順３）〜（手順５）を繰り返す。
【０１２１】
ここで、予めある一定ビット以上を変換しておく理由は、（手順２）で仮定すべきパターン数を増やすことで、総当りが出来ないようにするためである。
もし、そのような暗号文識別子ＣＴＩＤが存在しない場合、データ復号装置１３に送信すべき情報はないと判断し、その旨を回答する。一方、もしそのような暗号文識別子ＣＴＩＤが存在する場合、その暗号文識別子ＣＴＩＤに対応する送信可否フラグＵＦＬＡＧをＦＡＬＳＥに設定し、暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡを暗号文格納部１５１から取得し、その暗号文データＣＴＤＡＴＡと変換済サイズＵＳＩＺＥを、通信路１２を介して、データ復号装置１３へ送信する。
【０１２２】
送信処理部１１７は、送信処理にて送信された一つ以上の暗号文データに対応付けられた識別子ＣＴＩＤに対応する送信可否フラグＵＦＬＡＧをＦＡＬＳＥに設定する。
１．４  データ暗号化装置１１の動作
ここでは、データ暗号化装置１１の動作の一例について説明する。以下において、測定時の動作、及びデータ送信時の動作に分けて説明を行う。
【０１２３】
（１）測定時の動作
以下、図７のフローチャートを参照しながら、測定時の動作について説明する。
センサー部１１１は、被計測者から生体情報ＢＤを計測し、カウンタ情報ＣＴＲを連結した対象データＴＤを変換可否判定部１１３に出力する（ステップＳ１００）。
【０１２４】
変換可否判定部１１３は、センサー部１１１から対象データＴＤを受け取る。対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。そして、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤの小さい順から、送信可否フラグＵＦＬＡＧがＴＲＵＥで、さらに、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値がサイズ情報ＳＩＺＥより大きくなるような暗号文データＣＴＤＡＴＡに対応する暗号文識別子ＣＴＩＤが存在するかどうかを判断する（ステップＳ１０５）。
【０１２５】
存在すると判断する場合（ステップＳ１０５における「ＹＥＳ」）、変換可否判定部１１３は、その暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡに、受け取った対象データを変換することが可能であると判断し、変換可否判定部１１３は、暗号文識別子ＣＴＩＤと対象データＴＤを変換処理部１５２へ出力する。このとき、測定処理は、ステップＳ１１５へ移行する。
【０１２６】
存在しないと判断する場合（ステップＳ１０５における「ＮＯ」）、変換可否判定部１１３は、暗号文生成依頼信号ＲＥＱＣＴと対象データＴＤを暗号化処理部１１６へ出力する。
【０１２７】
暗号化処理部１１６の暗号文生成部１５０は、変換可否判定部１１３から暗号文生成依頼信号ＲＥＱＣＴを受け取ると、乱数生成要求情報を乱数生成部１１４へ出力する。その後、暗号文生成部１５０は、乱数生成部１１４から乱数ｒを受け取る。そして、暗号文生成部１５０は、暗号化鍵格納部１１５から、公開鍵ｈを取得する。暗号文生成部１５０は、取得した公開鍵ｈ、乱数ｒ、及びパラメータ格納部１１０にて保持しているパラメータｐ、ｑを用いて、暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する。暗号文生成部１５０は、続いて、暗号文格納部１５１においてまだ使われていない暗号文識別子ＣＴＩＤを生成し、暗号文識別子ＣＴＩＤと暗号文データＣＴＤＡＴＡとの組を暗号文格納部１５１に格納する。さらに、総サイズＴＳＩＺＥや送信可否フラグＵＦＬＡＧを初期値（ＴＲＵＥ）に、変換済サイズＵＳＩＺＥを初期値（０）にそれぞれ設定し、先に生成した暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２に追加する。最後に、暗号文識別子ＣＴＩＤと対象データＴＤを変換処理部１５２へ出力する(ステップＳ１１０)。
【０１２８】
変換処理部１５２は、変換可否判定部１１３もしくは暗号文生成部１５０から暗号文識別子ＣＴＩＤを受け取り、さらに、変換可否判定部１１３から対象データＴＤを受け取る。変換処理部１５２は、受け取った暗号文識別子ＣＴＩＤに対対応する暗号文データを用いて、受け取った対象データＴＤを暗号化する、つまり、受け取った暗号文識別子ＣＴＩＤに対対応する暗号文データを受け取った対象データＴＤが埋め込まれた暗号文データへと変換する（ステップＳ１１５）。
【０１２９】
変換処理部１５２は、変換可能情報格納部１１２で保持している暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥに、サイズ情報ＳＩＺＥを加算することにより、変換対象である暗号文データに対応する変換可能情報を更新する(ステップＳ１２０)。
【０１３０】
＜変換処理＞
ここでは、ステップＳ１１５にて行われる変換処理について、図８にて示すフローチャートを用いて説明する。
【０１３１】
変換処理部１５２は、変換可否判定部１１３もしくは暗号文生成部１５０から暗号文識別子ＣＴＩＤを受け取り、さらに変換可否判定部１１３から対象データＴＤを受け取る（ステップＳ２００）。
【０１３２】
変換処理部１５２は、受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する（ステップＳ２０５）。
変換処理部１５２は、暗号文格納部１５１にアクセスし、暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡを取得する（ステップＳ２１０）。
【０１３３】
変換処理部１５２は、変換可能情報格納部１１２にアクセスし、暗号文識別子ＣＴＩＤに対応する変換済サイズＵＳＩＺＥを取得する（ステップＳ２１５）。
変換処理部１５２は、取得した変換済サイズＵＳＩＺＥをもとに、取得した暗号文データＣＴＤＡＴＡのどの部分に対象データＴＤを変換するかを決定、つまり、変換対象の係数ｅ＿（ＵＳＩＺＥ＋１）、ｅ＿（ＵＳＩＺＥ＋２）、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）を決定する（ステップＳ２２０）。
【０１３４】
変換処理部１５２は、変換対象の係数ｅ＿（ＵＳＩＺＥ＋１）、ｅ＿（ＵＳＩＺＥ＋２）、・・・、ｅ＿（ＵＳＩＺＥ＋ＳＩＺＥ）それぞれに、対象データＴＤの各係数ｍ＿１、ｍ＿２、・・・、ｍ＿ＳＩＺＥそれぞれを加算し、対象データＴＤが埋め込まれた暗号文データＣＴＤＡＴＡを生成する（ステップＳ２２５）。
【０１３５】
＜ステップＳ１０５の具体例＞
ここでは、ステップＳ１０５における判断時の具体例を、図９（ａ）、（ｂ）に示す。
図９（ａ）は、暗号文データＤ２００における変換済サイズＵＳＩＺＥと対象データＴＤのサイズＳＩＺＥとの和（ＵＳＩＺＥ＋ＳＩＺＥ）が、暗号化単位長Ｄ２００の総サイズＴＳＩＺＥ以下である場合を示している。この場合、ステップＳ１０５では、既存の暗号文データを用いて対象データＴＤの変換（暗号化）が可能であると判断し、それに対応する暗号文識別子ＣＴＩＤが存在すると決定する。
【０１３６】
図９（ｂ）は、暗号文データＤ２０１における変換済サイズＵＳＩＺＥと対象データＴＤのサイズＳＩＺＥとの和（ＵＳＩＺＥ＋ＳＩＺＥ）が、暗号化単位長Ｄ２０１の総サイズＴＳＩＺＥより大きい場合を示している。この場合、ステップＳ１０５では、既存の暗号文データを用いた対象データＴＤの変換（暗号化）が不可能であると判断し、対象データＴＤの変換（暗号化）が可能となる他の暗号文データに対して同様の処理を行う。
【０１３７】
なお、ここでは、暗号化可能なデータ（変換可能なデータ）の単位長（１６７ビット）を基準とした場合に基づいて説明している。上述したように、暗号文データＤ１００のデータ長（１１６９ビット）を基準とした場合には、総サイズ、変換済サイズ及び対象データＴＤのサイズそれぞれを７倍して、上記の判断を行えばよい。
【０１３８】
（２）データ送信時の動作
以下、図１０のフローチャートを参照しながら、データ送信時の動作について説明する。
【０１３９】
送信処理部１１７は、データ復号装置１３からの送信要求情報を受け取る（ステップＳ３００）。
送信処理部１１７は、変換可能情報格納部１１２にアクセスし、送信可否フラグＵＦＬＡＧがＴＲＵＥで、変換済サイズＵＳＩＺＥが一定以上となる暗号文識別子ＣＴＩＤが存在するかを確認する（ステップＳ３０５）。
【０１４０】
存在しないと判断する場合（ステップＳ３０５における「ＮＯ」）、送信処理部１１７は、データ復号装置１３に送信すべき情報はない旨を回答し、終了する。
存在すると判断する場合（ステップＳ３０５における「ＹＥＳ」）、送信処理部１１７は、変換済サイズＵＳＩＺＥが一定以上となる一つ以上の暗号文識別子ＣＴＩＤのそれぞれに対応する暗号文データＣＴＤＡＴＡを暗号文格納部１５１から取得する（ステップＳ３１０）。
【０１４１】
送信処理部１１７は、変換可能情報格納部１１２から、取得した暗号文識別子ＣＴＩＤそれぞれに対応する変換済サイズＵＳＩＺＥを取得する（ステップＳ３１５）。
送信処理部１１７は、取得した暗号文データＣＴＤＡＴＡそれぞれに対して、当該暗号文データＣＴＤＡＴＡと、それに対応する変換済サイズＵＳＩＺＥを対応付けて、通信路１２を介して、データ復号装置１３へ送信する(ステップＳ３２０)。
【０１４２】
送信処理部１１７は、送信処理にて送信された一つ以上の暗号文識別子ＣＴＩＤに対応する送信可否フラグＵＦＬＡＧをＦＡＬＳＥに設定する(ステップＳ３２５)。
１．５  データ復号装置１３の構成
次に、データ復号装置１３の構成について説明する。
【０１４３】
データ復号装置１３は、図１１に示すように、要求受付部２００、送受信処理部２０１、復号鍵格納部２０２、復号処理部２０３、復号文格納部２０４及び表示部２０５から構成される。
【０１４４】
（１）要求受付部２００
要求受付部２００は、ユーザ操作により、ユーザから測定データＤの収集の指示を受け付けると、送信要求情報を送受信処理部２０１へ出力する。
【０１４５】
（２）送受信処理部２０１
送受信処理部２０１は、要求受付部２００から送信要求情報を受け付けると、受け付けた送信要求情報を、通信路１２を介してデータ暗号化装置１１へ送信する。
【０１４６】
送受信処理部２０１は、データ暗号化装置１１から、通信路１２を介して、１つ以上の暗号文データＣＴＤＡＴＡと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを受信する。送受信処理部２０１は、受信した暗号文データＣＴＤＡＴＡと変換済サイズＵＳＩＺＥを、復号処理部２０３へ出力する。
【０１４７】
送受信処理部２０１は、データ暗号化装置１１から、送信すべき情報はない旨の情報を受け取ると、受け取った情報を表示部２０５へ出力する。
（３）復号鍵格納部２０２
復号鍵格納部２０２は、公開鍵暗号の復号鍵データＤＫを保持している。
【０１４８】
ここで、復号鍵格納部２０２が保持している復号鍵データＤＫは、暗号化鍵格納部１１５に格納されている公開鍵ｈに対応するＮＴＲＵ暗号の秘密鍵（ｆ，Ｆｐ）である。ＮＴＲＵ暗号の秘密鍵データの生成方法は、先ほど説明したので省略する。
【０１４９】
（４）復号処理部２０３
復号処理部２０３は、公開鍵暗号の復号処理を行う。
復号処理部２０３は、測定データＤとカウンタ情報ＣＲＴとからなるデータのデータサイズの値を予め記憶している。なお、本実施の形態では、測定データＤとカウンタ情報ＣＲＴとからなるデータのデータサイズは、５バイトである。
【０１５０】
復号処理部２０３は、送受信処理部２０１から１つ以上の暗号文データＣＴＤＡＴＡと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに変換済サイズＵＳＩＺＥとを受け取ると、復号鍵格納部２０２にアクセスし、復号鍵データＤＫとして、ＮＴＲＵ暗号の秘密鍵（ｆ、Ｆｐ）を取得する。
【０１５１】
復号処理部２０３は、ＮＴＲＵ暗号の復号処理に従い、取得した秘密鍵（ｆ、Ｆｐ）を用いて、受け取った１つ以上の暗号化データＣＴＤＡＴＡそれぞれに対して復号処理を施す。
【０１５２】
なお、暗号化データの復号については、上述した１．１（４）に説明しているので、ここでは、簡単に説明する。なお、復号の詳細については特許文献１の３５〜３６ページ（１．４  復号）に記載されている。なお、その動作原理についても、同じく特許文献１の３６ページ（１．５  なぜ復号が機能するのか）に記載されている。
【０１５３】
＜ＮＴＲＵ暗号の復号方法＞
復号処理部２０３は、多項式である暗号文データＤＴＤＡＴＡを復号し、同じく多項式である復号文データＤＴＤＡＴＡを計算（取得）する。
【０１５４】
復号処理部２０３は、ＮＴＲＵ暗号における各パラメータ（Ｎ，ｐ，ｑ，ｄｆ，ｄｇ，ｄ）を予め記憶している。
復号処理部２０３は、暗号文データＤＴＤＡＴＡに対し、秘密鍵（復号鍵）の一部である多項式ｆを用いて、ａ＝ｆ×ｃ（ｍｏｄ  ｑ＊）により多項式ａを計算する。
【０１５５】
次に、復号処理部２０３は、多項式ａに対し、パラメータｐを用いて、ｂ＝ａ（ｍｏｄ  ｐ）により、多項式ｂを生成する。
そして、復号処理部２０３は、多項式ｂに対し、秘密鍵（復号鍵）の一部である多項式Ｆｐを用いて、ｘ＝Ｆｐ×ｂ（ｍｏｄ  ｐ＊）により，仮復号文データｘを計算（取得）する。
【０１５６】
復号処理部２０３は、算出した仮復号文データｘのうち、最初の要素から変換済サイズＵＳＩＺＥ分だけの要素ｘ'（以下、メッセージｘ'）を取り出す。復号処理部２０３は、具体的には、（ｘ＿１、・・・、ｘ＿（ＵＳＩＺＥ））だけを取り出し、（ｘ＿（ＵＳＩＺＥ＋１）、・・・、ｘ＿Ｎ）は破棄する。
【０１５７】
復号処理部２０３は、係数がｘ＿１、・・・、ｘ＿（ＵＳＩＺＥ）からなる多項式であるメッセージｘ'から、測定データＤとそれに対応するカウンタ情報ＣＲＴとからなる１つ以上の復号文データＤＴＤＡＴＡを取得し、取得した１つ以上の復号文データＤＴＤＡＴＡを復号文格納部２０４へ格納する。具体的には、復号処理部２０３は、予め記憶している値"５"を用いて、メッセージｘ'の先頭の係数（０次の係数）から５つの係数毎に分割して、１つ以上の復号文データＤＴＤＡＴＡを取得する。
【０１５８】
（５）復号文格納部２０４
復号文格納部２０４は、図１２にて示すように、複数の復号文データＤＴＤＡＴＡを保持する。
【０１５９】
（６）表示部２０５
表示部２０５は、復号文格納部２０４に格納されている復号文データＤＴＤＡＴＡを表示する。復号文データに含まれるカウンタ情報に基づいて、対応する測定データＤの数値の推移をグラフ化して表示する。
【０１６０】
また、表示部２０５は、送受信処理部２０１から、送信すべき情報はない旨の情報を受け取ると、データ暗号化装置１１から受信した暗号文データは０件である旨を表示する。
１．６  データ復号装置１３の動作
ここでは、データ復号装置１３の動作の一例について説明する。ここでは、データ受信時の動作について説明を行う。
【０１６１】
（１）データ受信時の動作
以下、図１３のフローチャートを参照しながら、データ受信時の動作について説明する。
【０１６２】
要求受付部２００がユーザから測定データＤの収集の指示を受け付けると、送受信処理部２０１は、送信要求情報を、通信路１２を介してデータ暗号化装置１１へ送信する（ステップＳ４００）。
【０１６３】
送受信処理部２０１は、データ暗号化装置１１から通信路１２を介して、１つ以上の暗号文データＣＴＤＡＴＡと前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを受信、若しくは送信すべき情報はない旨の情報を受信する（ステップＳ４０５）。
【０１６４】
送受信処理部２０１は、１つ以上の暗号文データＣＴＤＡＴＡを受信したか否かを判断する（ステップＳ４１０）。
１つ以上の暗号文データＣＴＤＡＴＡを受信したと判断する場合には（ステップＳ４１０における「ＹＥＳ」）、送受信処理部２０１は、受信した１つ以上の暗号文データと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを、復号処理部２０３へ出力する。
【０１６５】
復号処理部２０３は、送受信処理部２０１から１つ以上の暗号文データと、前記１つ以上の暗号文データＣＴＤＡＴＡそれぞれに対応する変換済サイズＵＳＩＺＥとを受け取ると、受け取った１つ以上の暗号化データＣＴＤＡＴＡそれぞれに対して復号処理を施す（ステップＳ４１５）。
【０１６６】
表示部２０５は、復号文格納部２０４に格納されている復号文データＤＴＤＡＴＡを表示する（ステップＳ４２０）。
１つ以上の暗号文データＣＴＤＡＴＡを受信していない、つまり送信すべき情報はない旨の情報を受信したと判断する場合には（ステップＳ４１０における「ＮＯ」）、送受信処理部２０１は、受信した情報を表示部２０５へ出力する。表示部２０５は、送受信処理部２０１から、送信すべき情報はない旨の情報を受け取ると、データ暗号化装置１１から受信した暗号文データは０件である旨を表示して、処理を終了する。
【０１６７】
＜復号処理＞
ここでは、ステップＳ４１５にて行われる復号処理について、図１４にて示すフローチャートを用いて説明する。
【０１６８】
復号処理部２０３は、復号鍵格納部２０２にアクセスし、復号鍵データＤＫを取得する（ステップＳ５００）。
復号処理部２０３は、受け取った１つ以上の暗号文データＣＴＤＡＴＡのうち未復号の暗号文データＣＴＤＡＴＡを１つ取得する（ステップＳ５０５）。
【０１６９】
復号処理部２０３は、取得した暗号文データＣＴＤＡＴＡを復号して、仮復号文ｘを取得する（ステップＳ５１０）。
復号処理部２０３は、取得した暗号文データＣＴＤＡＴＡに対応する変換済サイズＵＳＩＺＥを用いて、メッセージｘ'を取得する（ステップＳ５１５）。
【０１７０】
復号処理部２０３は、取得したメッセージｘ'から測定データＤとカウンタ情報ＣＲＴとからなる１つ以上の復号文データを取得する（ステップＳ５２０）。
復号処理部２０３は、取得した１以上の復号文データＤＴＤＡＴＡそれぞれを、復号文格納部２０４へ格納する（ステップＳ５２５）。
【０１７１】
復号処理部２０３は、未復号の暗号文データＣＴＤＡＴＡが存在するか否かを判断する（ステップＳ５３０）。
存在すると判断する場合には（ステップＳ５３０における「ＹＥＳ」）、復号処理部２０３はステップＳ５０５へ戻り、処理を続行する。
【０１７２】
存在しないと判断する場合には（ステップＳ５３０における「NO」）、復号処理部２０３は復号処理を終了する。
１．７  変形例
上記に説明した実施の形態は、本発明の実施の形態の一例であり、本発明はこの実施の形態に何ら限定されるものではなく、その旨を逸脱しない範囲において主な態様で実施し得るものである。以下のような場合も本発明に含まれる。
【０１７３】
（１）暗号文生成部１５０で生成する暗号文データは、ＮＴＲＵ暗号の暗号化処理の平文との算術加算（融合処理）を行う直前の値であったが、これに限るものではない。
例えば、暗号化鍵（公開鍵ｈ）を用いて、予め与えられる固定値（オール０）を平文として暗号化した値を暗号文データとしてもよい。これは、ＮＴＲＵ暗号において、暗号文データは平文データを（多項式の係数同士の）加算をすることによって生成されるが、オール０を加算しても結果は変化しないためである。このようにすることで、既にあるＮＴＲＵ暗号化装置などを流用して、本発明を実施することが出来るようになる。
【０１７４】
（２）暗号文生成部１５０は、暗号文データを計算により生成していたが、これに限らない。
例えば、外部から通信路を介して新しい暗号文データを受信してもよい。また、予め装置出荷時に装置に埋め込まれているものを取得してもよい。さらに、予め装置出荷時に暗号化された状態で暗号化装置に埋め込まれていて、その復号鍵を外部から受信するようにしてもよい。これにより、装置で暗号文データを計算して生成する必要がなくなる。
【０１７５】
以下、外部装置から通信路を介して新しい暗号文データを受信する場合についてのデータ暗号化システム１ａについて、実施の形態とは異なる点を中心に説明する。
データ暗号化システム１ａは、図１５に示すように、データ暗号化装置１１ａ、通信路１２ａ、データ復号装置１３ａ、暗号文データ生成装置１４ａから構成される。
【０１７６】
データ復号装置１３ａは、上記実施の形態にて示すデータ復号装置１３と同様であるので、ここでの説明は省略する。
データ暗号化装置１１ａは、上記実施の形態にて示すデータ暗号化装置１１と同様に、計測データを、内部に暗号化した状態で蓄積し、データ復号装置１３ａの要求により蓄積している暗号化されたデータをデータ復号装置１３ａへ送信する。なお、データ暗号化装置１１ａは、一度送信した暗号化されたデータは、再度送信しない。
【０１７７】
通信路１２ａは、データ暗号化装置１１ａとデータ復号装置１３ａとの間、及びデータ暗号化装置１１ａと暗号文データ生成装置１４ａで、各種データを送受信出来る通信路である。
【０１７８】
（２−１）データ暗号化装置１１ａの構成
ここでは、データ暗号化装置１１ａの構成について説明する。
データ暗号化装置１１ａは、図１５に示すように、パラメータ格納部１１０ａ、センサー部１１１ａ、変換可能情報格納部１１２ａ、変換可否判定部１１３ａ、暗号化処理部１１６ａ及び送受信処理部１１７ａとから構成される。
【０１７９】
パラメータ格納部１１０ａ、センサー部１１１ａ及び変換可能情報格納部１１２ａのそれぞれは、上記実施の形態にて示すパラメータ格納部１１０、センサー部１１１及び変換可能情報格納部１１２のそれぞれと同様であるので、ここでの説明は、省略する。
【０１８０】
（変換可否判定部１１３ａ）
変換可否判定部１１３ａは、上記実施の形態にて示す変換可否判定部１１３と同様に、  対象データＴＤの受け取り、当該対象データＴＤのサイズ情報ＳＩＺＥの取得を行う。
【０１８１】
変換可否判定部１１３ａは、変換可能情報格納部１１２ａにアクセスし、暗号文識別子ＣＴＩＤの小さい順から、送信可否フラグＵＦＬＡＧがＴＲＵＥで、さらに、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値がサイズ情報ＳＩＺＥよりも大きくなるような暗号文識別子ＣＴＩＤが存在するかどうかを確認する。
【０１８２】
もし一つでも存在する場合、変換可否判定部１１３ａは、対象データＴＤと該当する一つの暗号文識別子ＣＴＩＤとを変換処理部１５２ａへ出力する。
もし存在しない場合、変換可否判定部１１３ａは、対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴを変換処理部１５２ａへ出力する。
【０１８３】
（暗号化処理部１１６ａ）
暗号化処理部１１６ａは、図１５に示すように、暗号文格納部１５１ａ及び変換処理部１５２ａから構成されている。
【０１８４】
暗号化処理部１１６ａは、上記実施の形態にて示す暗号化処理部１１６と同様に、変換可否判定部１１３ａから対象データＴＤと暗号文生成依頼信号ＲＥＱＣＴとからなる組、若しくは対象データＴＤと暗号文識別子ＣＴＩＤとからなる組を受け取ると、受け取った対象データＴＤに対する暗号化を行う。
【０１８５】
暗号文格納部１５１ａは、上記実施の形態にて示す暗号文格納部１５１と同様であるので、ここでの説明は省略する。
以下、変換処理部１５２ａについて説明する。
【０１８６】
変換処理部１５２ａは、変換可否判定部１１３ａから受け取った対象データＴＤのデータサイズであるサイズ情報ＳＩＺＥを取得する。
変換処理部１５２ａは、変換可否判定部１１３ａから暗号文識別子ＣＴＩＤを受け取ると、上記実施の形態にて示す変換処理部１５２と同様に、受け取った暗号文識別子ＣＴＩＤに対応する暗号文データＣＴＤＡＴＡの取得、変換済サイズＵＳＩＺＥの取得、取得した暗号文データＣＴＤＡＴＡ及び変換済サイズＵＳＩＺＥを用いた対象データＴＤの変換、上書き、変換済サイズＵＳＩＺＥの更新を行う。
【０１８７】
変換処理部１５２ａは、変換可否判定部１１３ａから暗号文生成依頼信号ＲＥＱＣＴを受け取ると、新たな暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を要求する旨の要求情報を送受信処理部１１７ａを介して暗号文データ生成装置１４ａへ送信する。
【０１８８】
変換処理部１５２ａは、暗号文データ生成装置１４ａから、新たな暗号文データを受け取ると、暗号文格納部１５１ａにおいてまだ使われていない新たな暗号文識別子ＣＴＩＤを生成する。変換処理部１５２ａは、生成した新たな暗号文識別子ＣＴＩＤと新たな暗号文データとの組を暗号文格納部１５１ａに格納する。さらに、総サイズＴＳＩＺＥは１６７、変換済サイズＵＳＩＺＥは０、送信可否フラグＵＦＬＡＧはＴＲＵＥとして、先に生成した新たな暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２ａに格納する。
【０１８９】
変換処理部１５２ａは、変換可否判定部１１３ａから暗号文識別子ＣＴＩＤを受け取った場合と同様の動作により、対象データＴＤの変換、上書き、変換済サイズＵＳＩＺＥの更新を行う。
【０１９０】
（送受信処理部１１７ａ）
送受信処理部１１７ａは、上記実施の形態にて示す送信処理部１１７の動作に加えて、以下の動作を行う。
【０１９１】
送受信処理部１１７ａは、変換処理部１５２ａから要求情報を受け取ると、受け取った要求情報を暗号文データ生成装置１４ａへ送信する。
送受信処理部１１７ａは、暗号文データ生成装置１４ａから  新たな暗号文データを受け取ると、受け取った新たな暗号文データを変換処理部１５２ａへ出力する。
【０１９２】
（２−２）暗号文データ生成装置１４ａの構成
暗号文データ生成装置１４ａは、図１５にて示すように、送受信処理部３００ａ、暗号文生成部３０１ａ、乱数生成部３０２ａ及び暗号化鍵格納部３０３ａから構成されている。
【０１９３】
乱数生成部３０２ａ及び暗号化鍵格納部３０３ａのそれぞれは、上記実施の形態にて示す乱数生成部１１４及び暗号化鍵格納部１１５のそれぞれと同様であるので、ここでの説明は省略する。
【０１９４】
（暗号文生成部３０１ａ）
暗号文生成部３０１ａは、データ暗号化装置１１ａから要求情報を受け取ると、上記実施の形態にて示す暗号文生成部１５０と同様に、新たな暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する。
【０１９５】
暗号文生成部３０１ａは、生成した新たな暗号文データを送受信処理部３００ａを介してデータ暗号化装置１１ａへ送信する。
（送受信処理部３００ａ）
送受信処理部３００ａは、データ暗号化装置１１ａから要求情報を受信すると、受信した要求情報を暗号文生成部３０１ａへ出力する。
【０１９６】
送受信処理部３００ａは、暗号文生成部３０１ａから、新たな暗号文データを受け取ると、受け取った新たな暗号文データをデータ暗号化装置１１ａへ送信する。
（２−３）動作
ここでは、データ暗号化装置１１ａにおける測定処理について、図７にて示す流れ図を用いて、相違点のみ説明する。
【０１９７】
相違点は、図７にて示すステップＳ１１０であり、以下説明する。
データ暗号化装置１１ａは、変換可否判定部１１３ａにて変換可能な暗号文データが存在しないと判断される場合（ステップＳ１０５における「ＮＯ」）、変換処理部１５２ａは、要求情報を暗号文データ生成装置１４ａへ送信する。そして、暗号文データ生成装置１４ａが、新たな暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成し、そしてデータ暗号化装置１１ａへ送信する。データ暗号化装置１１ａは、暗号文データ生成装置１４ａから新たな暗号文データＣＴＤＡＴＡを受け取ると、変換処理部１５２ａは、新たな暗号文識別子ＣＴＩＤを生成し、新たな暗号文識別子ＣＴＩＤと新たな暗号文データＣＴＤＡＴＡとの組を暗号文格納部１５１ａに格納する。さらに、総サイズＴＳＩＺＥや送信可否フラグＵＦＬＡＧを初期値（ＴＲＵＥ）に、変換済サイズＵＳＩＺＥを初期値（０）にそれぞれ設定し、先に生成した暗号文識別子ＣＴＩＤと対応付けて、変換可能情報格納部１１２ａに追加する。
【０１９８】
その後、ステップＳ１１５以降の動作を行う。なお、変換処理については、図８にて示す動作の流れと同様の動作の流れにて実現できるので、ここでの説明は省略する。
また、データ暗号化装置１１ａが行う送信処理についても、図１０にて示す動作の流れにて実現できるので、ここでの説明は省略する。
【０１９９】
また、データ復号装置１３ａが行う受信処理及び復号処理にについても、図１３及び図１４にて示す動作の流れにて実現できるので、ここでの説明は省略する。
（２−４）その他
データ暗号化装置１１ａとデータ復号装置１３ａとの間、及びデータ暗号化装置１１ａと暗号文データ生成装置１４ａとの間にておいて、同一の通信路１２ａを用いて各種データを送受信したが、これに限定されない。
【０２００】
それぞれ異なる通信路にてデータの送受信を行ってもよい。例えば、データ暗号化装置１１ａは、暗号文データ生成装置１４ａに装着可能な装置であり、データ暗号化装置１１ａが暗号文データ生成装置１４ａに装着されることで通信路が確立される構成である。つまり、データ暗号化装置１１ａと暗号文データ生成装置１４ａとの間にて通信路が確立され、各装置間が通信路にて接続される状態となる構成であればよい。また、データ暗号化装置１１ａとデータ復号装置１３ａとについても同様である。
【０２０１】
（３）変換可能情報格納部１１２では、変換済サイズＵＳＩＺＥを保持していたが、これに限るものではない。例えば、変換済サイズＵＳＩＺＥの替わりに、変換可能サイズを保持していてもよい。これは、総サイズＴＳＩＺＥから変換済サイズＵＳＩＺＥを減算した値となる。これにより、変換可否を判断する際に、減算を行う必要がなくなる。
【０２０２】
（４）本実施例では、ＮＴＲＵ暗号を用いたが、これに限るものではない。具体的には、公開鍵暗号化において、データを暗号化する際に、乱数を用いて、その乱数により生成された値と平文データとをある演算（算術加算、算術減算、排他的論理和、算術乗算、多項式の加算、多項式の減算など）により融合することで暗号文を計算する方式であれば、どのような方式でもよい。例えば、ＥｌＧａｍａｌ暗号や、楕円ＥｌＧａｍａｌ暗号などは、それに含まれる。
【０２０３】
または、秘密鍵暗号において利用してもよい。
下記では、公開鍵暗号における楕円ＥｌＧａｍａｌ暗号の場合について述べる。下記では、パラメータ生成、鍵生成、暗号文生成方法、変換方法、及び復号に分けて説明する。
【０２０４】
＜パラメータ生成＞
楕円曲線の定義式は、ｙ＾２＝ｘ＾３＋ａ×ｘ＋ｂで与えられる。ここで、ｚ＾ｊは、ｚのｊ乗であり、ａ×ｘはａとｘの掛け算を示す。ａ，ｂは、自然数であり、ａ，ｂにより楕円曲線が決定される。また、楕円曲線を定義する定義体は、一般にＧＦ（ｐ＾ｍ）で与えられる。ここで、ｐは素数であり、ｍは自然数である。ここでは、簡単のため、ｍ＝１として、定義体をＧＦ（ｐ）で扱う。また、ｐは１６０ビットとする。
【０２０５】
＜鍵生成＞
秘密鍵はｋｓであり、公開鍵ＫＰは、ＫＰ＝ｋｓ＊Ｇを満たす。ここで、Ｇは楕円ＥｌＧａｍａｌ暗号のベース点であり、楕円曲線上の点である。また、ｋｓ＊Ｇは、ベース点Ｇをｋｓ回加算することにより得られる楕円曲線上の点を表す。
【０２０６】
＜暗号文データの生成方法＞
データ暗号化装置は、乱数ｒを発生させ、ＰＣ＝ｒ＊Ｇを計算する。次に、データ暗号化装置は、ｃ＝ｒ＊ＫＰを計算し、ＰＣのｘ座標ｘ（ＰＣ）とｃの連結を暗号文データとする。また、総サイズＴＳＩＺＥは１６０とし、変換済サイズＵＳＩＺＥを０とする。
【０２０７】
＜変換方法（ｍ）＞
ここでは、ｎビットのデータｚを変換する場合について説明する。
まず、データ暗号化装置は、記憶している少なくとも１つの対象データが暗号化されている暗号文データの総サイズＴＳＩＺＥから変化済サイズＵＳＩＺＥを減算した値（減算値）を算出する。
【０２０８】
データ暗号化装置は、算出した減算値がｎビット未満であるか否かを判断し、ｎビット未満であると判断する場合には、上記にて示す暗号文データの生成方法により暗号文データを生成して、以下に示す処理を行う。また、ｎビット未満でないと判断する場合には、減算値の算出に用いた暗号文データを利用して、以下に示す処理を行う。なお、新たに生成した暗号文データと、減算値の算出に用いた暗号文データとを区別する必要がない場合には、総称して暗号文データｃとして説明する。
【０２０９】
暗号文データｃの（ＵＳＩＺＥ＋１）ビット目から（ＵＳＩＺＥ＋ｎ）ビット目のそれぞれと、データｚの１ビット目からｎビット目のそれぞれとに排他的論理和による演算を行う。ここでは、暗号文データｃの（ＵＳＩＺＥ＋１）ビット目とデータｚの１ビットとに排他的論理和による演算を施して、その結果を暗号文データｃの（ＵＳＩＺＥ＋１）ビット目に上書きする。暗号文データｃの（ＵＳＩＺＥ＋２）ビット目とデータｚの２ビットとに排他的論理和による演算を施して、その結果を暗号文データｃの（ＵＳＩＺＥ＋２）ビット目に上書きする。この動作を暗号文データｃの（ＵＳＩＺＥ＋ｎ）ビット目まで繰り返すことにより、データｚの全てのビット値に対して排他的論理和を施すことができる。
【０２１０】
データ暗号化装置は、データｚの全てのビット値に対して排他的論理和を施した後、変換済サイズＵＳＩＺＥの値にｎを加算して、更新する。
ここで、データｚの全てのビット値に対して排他的論理和を施す演算方法の一例を以下に示す。
【０２１１】
データ暗号化装置は、データｚのビット列に対して、ビット列の先頭が、暗号文データｃの（ＵＳＩＺＥ＋１）ビット目に対応するようにシフト演算を施す。
そして、データ暗号化装置は、シフト演算が施されたデータｚと、暗号文データｃそれぞれの（ＵＳＩＺＥ＋１）ビット目から（ＵＳＩＺＥ＋ｎ）ビット目の範囲において、排他的論理和を施すことで、データｚの全てのビット値に対して排他的論理和を適用することができる。
【０２１２】
＜復号＞
暗号文データに含まれるｘ（ＰＣ）に対し、ｚ＝ｘ（ＰＣ）＾３＋ａ×ｘ（ＰＣ）＋ｂのＧＦ（ｐ）での平方根ｒｔを計算し、ＰＣ'＝（ｘ（ＰＣ），ｒｔ）とする。例えば、ｐ＝３  ｍｏｄ  ４の場合のＧＦ（ｐ）での平方根の計算方法を示す。その他の平方根の計算方法は、公知である。なお、ｄ  ｍｏｄ  ｅは、ｄをｅで割ったときの余りを示す。ｚの平方根は、ｚ＾（（ｐ＋１）／４）を計算することで求める。一般に、ｚ＾（ｐ−１）＝１  ｍｏｄ  ｐが成り立つため、ｚ＾（ｐ＋１）＝ｚ＾２  ｍｏｄ  ｐとなり、ｚ＾（（ｐ＋１）／４）＝（ｚ＾２）＾（１／４）＝ｚ＾（１／２）となるため、ｚの平方根が得られることがわかる。続いて、秘密鍵ｋｓを用いて、ＰＣ'のｋｓ倍の点ｋｓ＊ＰＣ'を計算する。最後に、ｋｓ＊ＰＣ'を用いて、ｃ  ｘｏｒ  ｘ（ｋｓ＊ＰＣ'）を計算し、この結果を復号文データとする。なお、ｘ（Ｐ）は、Ｐのｘ座標であり、ｘｏｒは排他的論理和演算子を示す。
【０２１３】
（５）暗号文生成部１５０で生成する暗号文に対して、既知平文攻撃を防ぐために、図１６で示すように、予め乱数を変換しておいても良い。乱数のビット数は、例えば総当りが不可能な８０ビットなどでよい。これは、ある一定ビット以下しか変換していない暗号文を送信した場合、不正な第三者により解析が可能になることを防止するためである。その解析方法は、下記の通りである。
【０２１４】
（５−１）公開鍵ｈに対して、ｈ×ｉｎｖ＿ｈ＝１  （ｍｏｄ  ｑ）となるｉｎｖ＿ｈを計算する。
（５−２）変換済となる箇所を含む平文データ候補値ｍ'と仮定する。変換済となる箇所は予想値、その他の箇所については０とする。
【０２１５】
（５−３）暗号文データＣＴＤＡＴＡに対して、多項式である第一中間値ＣＶ１＝ＣＴＤＡＴＡ−ｍ'を計算する。
（５−４）第一中間値ＣＶ１に対して、多項式である第二中間値ＣＶ２＝ｐ・ＣＶ１×ｉｎｖ＿ｈを計算する。
【０２１６】
（５−５）多項式である第二中間値ＣＶ２に対して、各係数が乱数ｒを生成したときの条件と全て一致（Ｎ個の係数のうち、ｄ個の係数が１であり、かつｄ個の係数が−１であり、かつ（Ｎ−２ｄ）個の係数は０となる）するかどうかを確認する。もし一致していたら、（５−２）で仮定した平文データ候補値ｍ'を正しい平文データｍとして出力する。一致していなかったら、（５−２）で仮定して平文データ候補値ｍ'を別のものに変えて、再度（５−３）〜（５−５）を繰り返す。
【０２１７】
ここで、予めある一定ビット以上を変換しておく理由は、（５−２）で仮定すべきパターン数を増やすことで、総当りが出来ないようにするためである。これにより、送信処理部１１７による変換済サイズＵＳＩＺＥのチェックは不要となる。また、変換可能情報格納部１１２の変換済サイズＵＳＩＺＥの初期値は、変換した乱数のビット数になる。
【０２１８】
このように、所定のサイズ（ここでは８０ビット）より小さい平文が暗号文データに初めて暗号化された場合、既知平文攻撃により解析され、当該平文が不正に取得される恐れがある。そこで、所定のサイズを予め付加することにより、暗号文データに平文が初めて暗号化された場合でも既知平文攻撃を防ぐことができる。
【０２１９】
なお、ここでは、既知平文攻撃を防ぐために８０ビットからなる乱数を変換するとしているが、８０ビットからなるオール０を変換するとしてもよい。
（６）変換可能情報格納部１１２をセキュアメモリとすることで、外部からアクセス出来ないようにしてもよい。これにより、変換済サイズＵＳＩＺＥが第三者に漏洩しないので、例えば変形例（５）で述べた平文データを推測する攻撃を防止することが出来る。これにより、より安全にすることが出来る。
【０２２０】
（７）データ暗号化装置１１の暗号化鍵格納部１１５で格納される暗号化鍵ＥＫ（公開鍵ｈ）は、外部から設定できるようにしてもよい。これにより、出荷後に鍵設定が可能になるため、より利便性が向上する。
【０２２１】
例えば、データ暗号化装置は、初めて暗号文データの生成を実行する前に、暗号化鍵ＥＫ（公開鍵ｈ）を保持する外部の装置から、公開鍵ｈを取得し、取得した公開鍵ｈを格納してもよい。公開鍵ｈの格納後の暗号文データの生成は、実施の形態と同様であるので、ここでの説明は省略する。
【０２２２】
または、データ暗号化装置は、暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する度に、暗号化鍵ＥＫ（公開鍵ｈ）を保持する外部の装置から、公開鍵ｈを取得してもよい。この場合、データ暗号化装置は、図２にて示す各構成要素のうち暗号化鍵格納部を除く他の構成要素を備えることで実現できる。このとき、暗号文生成部は、変換可否判定部から暗号文生成依頼信号ＲＥＱＣＴを受け取ると、公開鍵ｈを保持する外部の装置へ公開鍵ｈを要求する要求情報を送信する。そして、外部の装置から公開鍵ｈを受け取ると、実施の形態にて示す動作と同様にして、暗号文データＣＴＤＡＴＡ（＝ｐ・ｒ×ｈ  （ｍｏｄ  ｑ））を生成する。
【０２２３】
（８）送信処理部１１７は、外部からの要求により、毎回同じ処理をしていたが、これに限るものではない。例えば、外部から特殊なコマンドが届いた場合、変換済サイズＵＳＩＺＥのチェックを行わずに、全ての暗号化データＣＴＤＡＴＡを送信するように動作してもよい。また、認証方法の違いにより、その動作を変えても良い。
【０２２４】
（９）暗号文生成部１５０は、暗号文データを計算により生成していたが、これに限らない。例えば、データ暗号化装置１１は、暗号文生成部１５０にて生成された２個以上の（まだ変換していない初期状態の）暗号文データを暗号文格納部１５１に予め保持してもよい。
【０２２５】
この場合、例えば、データ暗号化装置１１の変換処理部１５２は、１の暗号文データによるデータの変換ができなくなるまでの間は当該１の暗号文データを用いてデータを変換（暗号化）する。そして、変換可否判定部１１３が当該１の暗号文データによる変換が不可（暗号化不可）であると判断すると、変換処理部１５２は、暗号文格納部１５１にて保持している他の暗号化データを用いてデータの変換を行う。
【０２２６】
または、データ暗号化装置１１の暗号文生成部１５０は、その２個以上の暗号文データの何れかを選択するように動作してもよい。この選択方法は、乱数を用いてランダムに選択してもよい。こうすることにより、少ない数の暗号文データで効率的に対象データを変換することが出来る。なお、同じ暗号文データを複数にコピーして、それぞれに対して異なる対象データで変換するようになるため、出力された複数の暗号文データから一部の情報が漏れる可能性がある。具体的には、第三者が、出力された複数の暗号文データの初期の暗号文データが同じだと知ることが出来たら、それら複数の暗号文データの差分（算術減算）を取ることで、変換に用いた対象データの差分を特定できる。しかし、それをランダムに暗号文データを選択するようにすることで、初期状態が同じ暗号文データであることを特定される確率を下げることが出来る。
【０２２７】
（１０）データ復号装置は、測定データＤとカウンタ情報ＣＲＴとからなるデータのサイズの値（ここでは、５バイト）を予め記憶しているとしたが、これに限定されない。
データ暗号化装置１１が、変換に用いた対象データのサイズ情報ＳＩＺＥを全て保管するようにして、データ復号装置１３へ暗号文データを出力する際に、それらのサイズ情報ＳＩＺＥを併せて出力するようにしてもよい。これにより、データ復号装置１３は、対象データが可変長であっても、サイズ情報ＳＩＺＥを使ってメッセージｘ'を分割するので、元の対象データ、つまり測定データＤとカウンタ情報ＣＲＴとからなるデータごとに復元できるようになり、その後の利用が容易になる。
【０２２８】
（１１）データ暗号化装置１１は、データ復号装置１３へ暗号文データを出力する際に、それらに対応する暗号文識別子ＣＴＩＤを併せて出力するようにしてもよい。例えば、暗号文識別子は、データ暗号化装置１１で生成した順番を示すとする。それにより、データ復号装置１３は、暗号文データを復号して復号文データを取得後に、それら暗号文識別子ＣＴＩＤを使って復号文データに含まれるセンサー情報の計測（生成）された順番を把握できるようになる。
【０２２９】
（１２）データ暗号化装置１１で、変換に用いる対象データは、測定されたセンサー情報に限るものではない。例えば、何らか（例えばセンサー情報）の値のハッシュ値やコード化した値であってもよいし、鍵データであってもよい。また、異なる種類の値（例えば測定データとハッシュ値と鍵）を混ぜて、同じ一つの暗号文データを変換するようにしてもよい。
【０２３０】
（１３）上記実施の形態において、変換済サイズＵＳＩＺＥの値を、利用済と未利用の境界値（対象データのサイズｓの倍数）としたが、これに限定されない。
変換済サイズＵＳＩＺＥの値は、対象データのサイズｓよりも大きい値の倍数であってもよい。例えば、対象データのサイズｓに所定値ｗを加えた値（ｓ＋ｗ）の倍数であってもよい。
【０２３１】
（１４）上記実施の形態において、暗号文データを先頭データから順に利用して、対象データを暗号化したが、これに限定されない。
暗号文データのうち暗号化に利用されていない領域をランダムに利用してもよい。
【０２３２】
例えば、１回目の暗号化では、暗号文データの先頭データから対象データのサイズｓ分のデータを利用する。次の暗号化（２回目の暗号化）では、暗号文データの４ｓ番目のデータから対象データのサイズ長分のデータを利用する。３回目の暗号化では、暗号文データの２ｓ番目のデータから対象データのサイズ長分のデータを利用する。これにより、暗号文データのうち暗号化に利用されていない領域をランダムに利用することができる。
【０２３３】
（１５）上記の各装置は、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭ、ハードディスクユニット、ディスプレイユニット、キーボード、マウスなどから構成されるコンピュータシステムである。前記ＲＡＭまたはハードディスクユニットには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、各装置は、その機能を達成する。ここでコンピュータプログラムは、所定の機能を達成するために、コンピュータに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【０２３４】
（１６）上記の各装置を構成する構成要素の一部または全部は、１個のシステムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ：大規模集積回路）から構成されているとしてもよい。システムＬＳＩは、複数の構成部を１個のチップ上に集積して製造された超多機能ＬＳＩであり、具体的には、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどを含んで構成されるコンピュータシステムである。前記ＲＡＭには、コンピュータプログラムが記憶されている。前記マイクロプロセッサが、前記コンピュータプログラムにしたがって動作することにより、システムＬＳＩは、その機能を達成する。
【０２３５】
例えば、データ暗号化装置を構成する変換可能情報格納部１１２や変換可否判定部１１３、乱数生成部１１４や暗号化鍵格納部１１５、暗号文生成部１５０や暗号文格納部１５１、変換処理部１５２等の各機能ブロックは典型的には集積回路であるＬＳＩとして実現されていてもよい。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。
【０２３６】
また、データ復号装置を構成する復号鍵格納部２０２や復号処理部２０３、復号文格納部２０４等の各機能ブロックは典型的には集積回路であるＬＳＩとして実現されていてもよい。これらは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。
【０２３７】
ここでは、集積回路の一例としてＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
【０２３８】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
【０２３９】
（１７）上記の各装置を構成する構成要素の一部または全部は、各装置に脱着可能なＩＣカードまたは単体のモジュールから構成されているとしてもよい。前記ＩＣカードまたは前記モジュールは、マイクロプロセッサ、ＲＯＭ、ＲＡＭなどから構成されるコンピュータシステムである。前記ＩＣカードまたは前記モジュールは、上記の超多機能ＬＳＩを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムにしたがって動作することにより、前記ＩＣカードまたは前記モジュールは、その機能を達成する。このＩＣカードまたはこのモジュールは、耐タンパ性を有するとしてもよい。
【０２４０】
（１８）本発明は、上記に示す方法であるとしてもよい。また、これらの方法をコンピュータにより実現するコンピュータプログラムであるとしてもよいし、前記コンピュータプログラムからなるディジタル信号であるとしてもよい。
【０２４１】
（１９）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号をコンピュータ読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＢＤ（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ）、半導体メモリなどに記録したものとしてもよい。また、これらの記録媒体に記録されている前記ディジタル信号であるとしてもよい。
【０２４２】
（２０）また、本発明は、前記コンピュータプログラムまたは前記ディジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしてもよい。
【０２４３】
（２１）また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記憶しており、前記マイクロプロセッサは、前記コンピュータプログラムにしたがって動作するとしてもよい。
【０２４４】
（２２）また、前記プログラムまたは前記ディジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記ディジタル信号を前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
【０２４５】
（２３）上記実施の形態及び上記変形例をそれぞれ組み合わせるとしてもよい。
１．８  その他
（１）本発明の一態様であるデータ暗号化装置は、複数回に渡って、対象データを取得する対象データ取得部と、一以上の暗号文データを保持する暗号文データ格納部と、前記一以上の暗号文データのそれぞれの未変換箇所を特定する未変換情報を保持する未変換情報格納部と、少なくとも、前記未変換情報及び前記対象データをもとに、前記一以上の暗号文データの何れかを変換する変換処理部とを備えることを特徴とする。
【０２４６】
（２）上記（１）のデータ暗号化装置は、さらに、少なくとも、前記対象データのデータサイズと前記未変換情報をもとに、前記一以上の暗号文データの何れかが変換可能かどうかを判定する変換可否判定部と、前記変換可否判定部で変換不可と判定された場合に、新しい暗号文データを取得する暗号文データ取得部とを備えるとしてもよい。
【０２４７】
（３）上記（２）のデータ暗号化装置は、さらに、公開鍵暗号の暗号化鍵を保持する暗号化鍵格納部と、乱数データを生成する乱数生成部とを備え、前記暗号文データ取得部は、少なくとも、前記暗号化鍵及び前記乱数データをもとに、暗号文データを生成するとしてもよい。
【０２４８】
（４）上記（３）のデータ暗号装置において、前記暗号文データ取得部は、公開鍵暗号の暗号化処理に含まれる計算のうち、対象データとの融合処理直前までの計算までを行い、その値を暗号文データとして生成するとしてもよい。
【０２４９】
（５）上記（３）のデータ暗号装置において、前記暗号文データ取得部は、予め与えられる平文初期値データを有し、公開鍵暗号の暗号化処理に従い、前記暗号化鍵及び前記乱数を用いて、前記平文初期値データを暗号化することにより、暗号文データを生成するとしてもよい。
【０２５０】
（６）上記（５）のデータ暗号装置において、前記平文初期値データは０であるとしてもよい。
（７）上記（２）のデータ暗号化装置は、さらに、外部から、データを受信可能な受信処理部を備え、前記暗号文データ取得部は、前記送受信処理部を介して、前記暗号文データを取得するとしてもよい。
【０２５１】
（８）上記（１）のデータ暗号化装置は、さらに、外部に対して、前記暗号文データ格納部で保持する前記暗号文データを出力する出力処理部を備えるとしてもよい。
（９）上記（８）のデータ暗号化装置において、前記変換可能情報は、前記一以上の暗号文データのそれぞれに対して、さらなる変換が可能かどうかを示す変換可否フラグを含み、前記出力処理部は、外部へ出力した際に、外部出力した前記暗号文データに対応する前記変換可否フラグを不可に設定するとしてもよい。
【０２５２】
（１０）上記（８）のデータ暗号化装置において、前記変換可能情報は、前記一以上の暗号文データのそれぞれに対して、暗号文データの中ですでに変換したデータサイズを示す変換済サイズ、もしくは、変換可能な残りのデータサイズを示す変換可能サイズ、の何れかを含み、前記出力処理部は、出力する前記暗号文データとともに、前記変換済サイズもしくは前記変換可能サイズを外部に出力するとしてもよい。
【０２５３】
（１１）上記（１０）のデータ暗号化装置において、前記出力部は、前記変換済サイズがある一定以上の前記暗号文データ、もしくは、前記変換可能サイズがある一定以下の前記暗号文データのみを外部へ出力するように制御するとしてもよい。
【０２５４】
（１２）上記（３）のデータ暗号化装置において、前記暗号文データ取得部は、ＮＴＲＵ暗号、もしくは、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの公開鍵暗号の暗号化処理の全てもしくは一部に基づき、暗号文データを生成し、前記変換処理部は、少なくとも、算術加算、算術減算、算術乗算、排他的論理和、のいずれか一つを用いるとしてもよい。
【０２５５】
（１３）上記（３）のデータ暗号化装置において、前記暗号文データ取得部は、さらに、  前記暗号文データを生成した後に、前記乱数生成部で生成された前記対象データとは無関係な第二乱数データをもとに、前期暗号文データを変換するとしてもよい。
【０２５６】
（１４）上記（１）のデータ暗号化装置において、前記変換可能情報格納部はセキュアメモリであり、前記変換可能情報は外部からアクセス不可であるとしてもよい。
（１５）上記（１）のデータ暗号化装置において、前記対象データ取得部は、さらに、カウンタを計測する機能、及びセンサー情報を取得する機能を有し、前記対象データは、前記センサー情報と前記カウンタを連結した値であるとしてもよい。
【０２５７】
（１６）上記（１５）のデータ暗号化装置において、前記センサー情報は、体温、血圧、血糖値、脈拍値、心拍数、運動量、歩数のうち何れかデータであり、タイマーに基づき定期的に計測される情報であるとしてもよい。
【０２５８】
（１７）上記（１）のデータ暗号化装置は、さらに、前記暗号化鍵を外部から設定可能な暗号化鍵設定部を備えるとしてもよい。
（１８）本発明の一態様であるデータ復号装置は、暗号文データとサイズ情報とを外部から取得する取得部と、復号鍵を保持する復号鍵格納部と、復号文データを格納する復号文データ格納部と、前記復号鍵を用いて、前記暗号文データを復号して、復号文データを取得する復号処理部と、前記サイズ情報に基づいて、前記復号文データの一部を削除し、削除された前記復号文データを前記復号文データ格納部に格納する削除処理部と備えることを特徴とする。
【０２５９】
（１９）上記（１８）のデータ復号装置において、前記復号鍵は、公開鍵暗号に基づく復号鍵であり、前記復号処理部は、公開鍵暗号の復号処理に従い、復号処理を行うとしてもよい。
【０２６０】
（２０）上記（１９）のデータ復号装置において、前記復号処理部は、ＮＴＲＵ暗号、もしくは、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの公開鍵暗号の復号処理に基づくとしてもいよい。
【０２６１】
（２１）本発明の一態様は、データ暗号化システムであって、前記データ暗号化システムはデータ暗号化装置とデータ復号装置から構成され、前記暗号化装置は、複数回に渡って、対象データを取得する対象データ取得部と、一以上の暗号文データを保持する暗号文データ格納部と、前記一以上の暗号文データのそれぞれの未変換箇所を特定する未変換情報を保持する未変換情報格納部と、少なくとも、前記対象データのデータサイズと前記未変換情報をもとに、前記一以上の暗号文データの何れかが変換可能かどうかを判定する変換可否判定部と、前記変換可否判定部で変換不可と判定された場合に、新しい暗号文データを取得する暗号文データ取得部と、少なくとも、前記未変換情報及び前記対象データをもとに、前記一以上の暗号文データの何れかを変換する変換処理部とを備え、前記復号装置は、暗号文データとサイズ情報とを外部から取得する取得部と、復号鍵を保持する復号鍵格納部と、復号文データを格納する復号文データ格納部と、前記復号鍵を用いて、前記暗号文データを復号して、復号文データを取得する復号処理部と、前記サイズ情報に基づいて、前記復号文データの一部を削除し、削除された前記復号文データを前記復号文データ格納部に格納する削除処理部とを備えることを特徴とする。
【０２６２】
（２２）上記（２１）のデータ暗号化システムにおいて、前記データ暗号化装置は、さらに、公開鍵暗号の暗号化鍵を保持する暗号化鍵格納部と、乱数データを生成する乱数生成部とを備え、前記暗号文データ取得部は、少なくとも、前記暗号化鍵及び前記乱数データをもとに、暗号文データを生成し、前記復号鍵は、前記暗号化鍵に対応する復号鍵であり、前記復号処理部は、前記公開鍵暗号の復号処理に従い、復号処理を行うとしてもよい。
【０２６３】
（２３）上記（２２）のデータ暗号化システムにおいて、前記暗号文データ取得部は、ＮＴＲＵ暗号、もしくは、ＥｌＧａｍａｌ暗号、もしくは、楕円ＥｌＧａｍａｌ暗号の何れかの公開鍵暗号の暗号化処理の全てもしくは一部に基づき、暗号文データを生成し、前記変換処理部は、少なくとも、算術加算、算術減算、算術乗算、排他的論理和、のいずれか一つを用い、前記復号処理部は、前記暗号文データ取得部と同じ公開鍵暗号の復号処理に基づき、復号処理を行うとしてもよい。
【産業上の利用可能性】
【０２６４】
本発明にかかるデータ暗号化システムは、複数の小さなサイズのデータを暗号化して蓄積する場合に、暗号文のサイズの増加を極力抑えつつ、記憶しているデータが解析されても対象データの漏洩を防ぐので、電池容量やメモリ、通信速度などの厳しい制約の下で、暗号化して蓄積する必要性があるような場合に有用である。
【０２６５】
また、本発明に係るデータ暗号化装置及びデータ復号装置は、これらの装置を製造、販売する産業において、経営的、つまり反復的かつ継続的に利用されうる。
【符号の説明】
【０２６６】
１    データ暗号化システム
１１    データ暗号化装置
１２    通信路
１３    データ復号装置
１１０    パラメータ格納部
１１１    センサー部
１１２    変換可能情報格納部
１１３    変換可否判定部
１１４    乱数生成部
１１５    暗号化鍵格納部
１１６    暗号化処理部
１１７    送信処理部
１５０    暗号文生成部
１５１    暗号文格納部
１５２    変換処理部
２００    要求受付部
２０１    送受信処理部
２０２    復号鍵格納部
２０３    復号処理部
２０４    復号文格納部
２０５    表示部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置であって、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部と
を具備することを特徴とする暗号化装置。
【請求項２】
前記暗号部は、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれる場合、前記未利用領域に前記新たな暗号化対象のデータを追加するように暗号化データを生成する
ことを特徴とする請求項１記載の暗号化装置。
【請求項３】
前記暗号部は、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超える場合、
新たな暗号化領域を用いて前記新たに暗号化されたデータが最初の暗号データとなる第２の暗号化データを生成し、
前記制御部は、
前記第２の暗号化データを生成すると、前記第２の暗号化データに基づいて前記新たな暗号化対象のデータの暗号化に用いられた利用済領域を示す第２の管理情報を、前記第２の暗号化データのために生成して前記記憶部に記憶する
ことを特徴とする請求項２記載の暗号化装置。
【請求項４】
前記管理情報は、前記利用済領域のデータ長を示す情報を含む
ことを特徴とする請求項３記載の暗号化装置。
【請求項５】
前記単位長は、暗号化可能な平文のデータ長であり、
前記利用済領域のデータ長は、暗号化可能な平文のデータ長のうち暗号化に利用されたデータ長であり、
前記暗号部は、
前記単位長から前記利用済領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より大きい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域に含まれると判断する
ことを特徴とする請求項４記載の暗号化装置。
【請求項６】
前記暗号部は、
前記単位長から前記利用領域のデータ長を減算した値が前記新たな暗号化対象データのデータ長より小さい場合、前記暗号化対象のデータが暗号化される際に利用されるべき領域が前記未利用領域を超えると判断する
ことを特徴とする請求項５記載の暗号化装置。
【請求項７】
前記暗号部は、
公開鍵暗号の暗号化鍵を保持する保持部と、
乱数の生成部と、を有し、
前記保持部にて保持されている前記公開鍵及び前記生成部にて生成された前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、
この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加する
ことを特徴とする請求項１記載の暗号化装置。
【請求項８】
前記暗号部は、
前記暗号化する単位長毎に、前記生成部に新たな乱数を生成させて、異なる可変暗号鍵を生成する
ことを特徴とする請求項７記載の暗号化装置。
【請求項９】
前記暗号部は、
前記新たな暗号化対象のデータを暗号化する際、前記新たな暗号化対象データが前記暗号化する単位長に基づいて定められた暗号化領域を用いて最初に暗号化される場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記新たな対象データを暗号化した際の利用済領域のデータサイズが前記最小サイズ以上となるよう所定の初期データを付加して前記暗号化データを生成する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１０】
前記所定の初期データは、乱数により生成される数値列である
ことを特徴とする請求項９記載の暗号化装置。
【請求項１１】
公開鍵暗号の暗号化鍵を保持する保持部と、
乱数の乱数生成部と、
前記公開鍵及び前記乱数を用いて可変暗号鍵を生成する鍵生成部と、を具備する外部装置と接続する接続部を有し、
前記暗号部は、
前記外部装置から前記可変暗号鍵を入力し、この入力した可変暗号鍵からなるデータ領域を暗号化領域として用いて前記暗号化データを生成する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１２】
第２の記憶部を設け、
前記暗号部は、
公開鍵暗号の暗号化鍵を保持する保持部と、
乱数の生成部と、を有し、
前記公開鍵及び前記乱数を用いて前記単位長に基づいて定められる可変暗号鍵を生成し、
前記可変暗号鍵を前記第２の記憶部に保存し、
前記暗号化する単位長毎に、前記第２の記憶部から異なる可変暗号鍵を読み出し、読み出した可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１３】
公開鍵暗号の暗号化鍵を保持する外部装置と接続する接続部を有し、
前記暗号部は、
乱数の乱数生成部を有し、
前記外部装置から入力した公開鍵及び前記乱数を用いて前記単位長に基づく可変暗号鍵を生成し、この可変暗号鍵からなるデータ領域を暗号化領域として、前記新たな暗号化対象のデータを追加する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１４】
前記暗号化データを復号する外部装置と接続される接続部を設け、
前記制御部は、
前記新たな暗号化対象のデータを暗号化する際、前記新たな対象データが前記暗号化する単位長の暗号化データの最初のデータとなる場合であって、前記新たな暗号化対象データを暗号化した際の利用済領域のデータサイズが所定の最小サイズより小さい場合、前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達するまで前記暗号化データを前記外部装置に出力しない制御を行う
ことを特徴とする請求項１記載の暗号化装置。
【請求項１５】
前記暗号部は、
前記暗号化データに別の新たな暗号化対象のデータを追加して生成された暗号化データによる利用済領域のデータサイズが前記最小サイズに到達して前記暗号化データを前記外部装置に出力した場合、
前記暗号化する単位長より小さい次の暗号化対象のデータが最初の暗号されたデータとなる第２の暗号化データを生成する
ことを特徴とする請求項１４記載の暗号化装置。
【請求項１６】
前記暗号化データを復号する外部装置と接続される接続部を設け、
前記制御部は、
前記暗号化データを前記管理情報と共に前記外部装置に出力する
ことを特徴とする請求項１記載の暗号化装置。
【請求項１７】
前記暗号化は、ＮＴＲＵ暗号、ＥＬＧａｍａｌ暗号、楕円ＥＬＧ暗号のいずれかの暗号化方式である
ことを特徴とする請求項１記載の暗号化装置。
【請求項１８】
前記記憶部は、耐タンパー技術により保護されている
ことを特徴とする請求項１記載の暗号化装置。
【請求項１９】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置と、前記暗号化されたデータを復号する復号装置とを含む暗号化システムであって、
前記暗号化装置は、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新し、前記暗号化データを前記更新された管理情報と共に前記復号装置に出力する制御部と、を具備し、
前記復号装置は、
前記暗号化装置から入力した前記暗号化データを復号し、復号されたデータのうち、前記暗号化装置から入力した前記管理情報が示す利用済領域に基づく領域に存在する復号対象データを取得する復号処理部を具備する
ことを特徴とする暗号化システム。
【請求項２０】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化方法であって、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶し、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成し、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する
ことを特徴とする暗号化方法。
【請求項２１】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置を制御するコンピュータプログラムであって、
前記暗号化装置のコンピュータに対し、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を前記暗号化装置の記憶部に記憶する処理と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する処理と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する処理とを実行させる
ことを特徴とするコンピュータプログラム。
【請求項２２】
暗号化する単位長より小さい暗号化対象のデータを暗号化する暗号化装置に用いられる集積回路であって、
前記暗号化する単位長に基づいて定められる暗号化領域の中で既に暗号化に用いられた利用済領域を示す管理情報を記憶する記憶部と、
前記暗号化する単位長より小さい新たな暗号化対象のデータを暗号化する際、前記管理情報に基づいて前記暗号化領域の中の利用済領域を確認し、前記暗号化領域の中で前記利用済領域以外の未利用領域に前記新たな暗号化対象のデータを追加することで暗号化データを生成する暗号部と、
前記暗号化データを生成すると、前記新たに暗号化されたデータが前記利用済領域に含まれるように前記管理情報を更新する制御部と
を具備することを特徴とする集積回路。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009147788.tif 000019
【図２】
2009147788.tif 000020
【図３】
2009147788.tif 000021
【図４】
2009147788.tif 000022
【図５】
2009147788.tif 000023
【図６】
2009147788.tif 000024
【図７】
2009147788.tif 000025
【図８】
2009147788.tif 000026
【図９】
2009147788.tif 000027
【図１０】
2009147788.tif 000028
【図１１】
2009147788.tif 000029
【図１２】
2009147788.tif 000030
【図１３】
2009147788.tif 000031
【図１４】
2009147788.tif 000032
【図１５】
2009147788.tif 000033
【図１６】
2009147788.tif 000034
【国際調査報告】
2009147788.tif 000035
2009147788.tif 000036
2009147788.tif 000037
2009147788.tif 000038
2009147788.tif 000039
2009147788.tif 000040