JP3992888B2 - Cryptographic processing device - Google Patents

Cryptographic processing device Download PDF

Info

Publication number
JP3992888B2
JP3992888B2 JP25506599A JP25506599A JP3992888B2 JP 3992888 B2 JP3992888 B2 JP 3992888B2 JP 25506599 A JP25506599 A JP 25506599A JP 25506599 A JP25506599 A JP 25506599A JP 3992888 B2 JP3992888 B2 JP 3992888B2
Authority
JP
Japan
Prior art keywords
data
register
selector
held
exclusive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP25506599A
Other languages
Japanese (ja)
Other versions
JP2000081840A (en
Inventor
充 松井
俊雄 時田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP25506599A priority Critical patent/JP3992888B2/en
Publication of JP2000081840A publication Critical patent/JP2000081840A/en
Application granted granted Critical
Publication of JP3992888B2 publication Critical patent/JP3992888B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
この発明は、暗号処理装置に関するものであり、特にICカード等に用いられる小型暗号処理装置に関するものである。
【0002】
【従来の技術】
この発明の従来の技術として、秘密鍵(共通鍵)暗号系のブロック暗号である、米国商用暗号のDES(Data Encryption Standard)を用いて説明する。DESの詳細な処理内容は、例えば、Hans Eberl “A High-speed DES Implementation for Network Applications”、Advances in Cryptology - CRYPTO‘92、Lecture Notes in computer Science 740、Springer-Verlag.に記載されている。図13は、DES暗号アルゴリズムのフローチャートである。図13において、1001〜1004はデータ変換処理を行う関数Fによる演算、1011〜1014はビット毎の排他的論理和演算である。尚、初期転置、最終転置は省略してある。
【0003】
動作について説明する。2×nビット(DESの場合2×32ビット)の入力データ1050が2つのnビットデータ1051、1052に分割される。nビットデータ1051はそのままnビットデータ1053として出力されるとともに、関数F1001に入力され、データ変換される。関数F1001から出力されたデータは他方のnビットデータ1052と排他的論理和演算1011によりビット毎に排他的論理和演算され、nビットデータ1054が出力される。
以下同様に関数F1002、1003、1004、排他的論理和演算1012、1013、1014まで演算処理が繰り返され、出力データ1055、1056が出力される。この2つのnビットデータは合成され2nビットデータ1057として出力される。
【0004】
図14は、図13で示されたDES暗号フローチャートと同等なデータ変換処理を実現する暗号処理装置の一例である。図14において1101および1102はデータを保持するレジスタAおよびレジスタB、1103および1104はデータを選択するセレクタAおよびセレクタB、1105はデータ変換として関数Fを演算する関数F演算回路、1106は排他的論理和回路、1201、1202はnビット入力データA、B、1203、1204はnビット出力データA、Bである。
【0005】
動作を説明する。2×nビット(DESの場合2×32ビット)の入力データがnビットの2つのデータ入力A1201、入力B1202に分割される。2つの入力データはそれぞれ、セレクタA1103およびセレクタB1104によって選択され、レジスタA1101およびレジスタB1102に保持される。次にレジスタA1101に保持されたデータは、セレクタA1103およびセレクタB1104にフィードバックされるとともに、関数F演算回路1105に入力されデータ変換された後、レジスタB1102に保持されたデータと排他的論理和回路1106において排他的論理和演算される。この結果はセレクタA1103およびセレクタB1104にフィードバックされる。
【0006】
次にセレクタA1103においては排他的論理和演算回路1106の結果が選択され、セレクタBにおいてはレジスタA1101に保持されていたデータが選択され、それぞれレジスタA1001およびレジスタB1002に新たに保持される。以下同様に図13における関数F1002、1003、1004から排他的論理和演算1012、1013、1014まで必要回数だけ処理がループされ、出力データA1203及び出力データB1204が出力される。尚DESの場合は16回である。
尚、本従来技術の詳細については、例えば、Hans Eberl “A High-speed DES Implementation for Network Applications”, Advances in Cryptology - CRYPTO‘92、Lecture Notes in computer Science 740、Springer-Verlag.に記載されている。
【0007】
【発明が解決しようとする課題】
上記のような方式による暗号処理装置は、同様な構成をもつ関数Fが繰り返し処理される構成を持つ場合、1つの回路を繰り返し利用することで実現処理手段を効率的に構成することができる。そのため、回路規模を削減することが可能となり、低消費電力化も可能であった。しかし、関数Fがその内部により小さい処理要素の繰り返し構造を持つ場合には、これまでの暗号処理装置の構成では、回路規模の削減やそれに伴う低消費電力化には効率的ではないという問題があった。
【0008】
この発明は上記のような問題を解決するためになされたもので、同様な構成をもつ関数Fが繰り返し処理される構成を持ち、かつ関数Fがその内部により小さい処理要素の繰り返し構造を持つ場合に、暗号処理装置を効率的に構成し,回路規模の削減や消費電力の低下が可能となる暗号処理装置を得ることを目的としている。
【0009】
【課題を解決するための手段】
第1の発明に係る暗号処理装置は、入力データに対して第1の演算手段により第1のデータ変換処理を複数回行う暗号処理装置において、前記第1の演算手段は、さらに第2のデータ変換処理を複数回行うループ処理手段を有し、前記ループ処理手段は、第2の演算手段、データ保持手段、選択手段により処理ループを構成し、前記第2の演算手段は、前記第2のデータ変換処理を行ない、前記データ保持手段は、前記第2のデータ変換処理のタイミングを制御するように処理ループ上のデータを一時的に保持し、前記選択手段は、当該処理ループを終了させるか継続させるかを選択するものである。
【0010】
第2の発明に係る暗号処理装置は、第1の発明に係る暗号処理装置において、前記第2の演算手段は、前記第2の演算手段に入力されたデータを第1の分割データと第2の分割データに分けるデータ分割手段と、前記第1の分割データをデータ変換する第3の演算手段と、前記第3の演算手段の出力データと前記第2の分割データをビット毎に排他的論理和演算する排他的論理和手段と、前記排他的論理和手段の出力データと前記第2の分割データを結合するデータ結合手段を有することを特徴とするものである。
【0011】
第3の発明に係るICカードは、リーダー・ライターとデータの通信を行うICカードであって、前記リーダー・ライターから前記データを受信するデータ受信手段と、前記リーダー・ライターに前記データを送信するデータ送信手段と、前記データを暗号処理する第1の発明に係る暗号処理装置を有するものである。
【0012】
第4の発明に係るICカードは、リーダー・ライターとデータの通信を行うICカードであって、前記リーダー・ライターから前記データを受信するデータ受信手段と、前記リーダー・ライターに前記データを送信するデータ送信手段と、前記データを暗号処理する第2の発明に係る暗号処理装置を有するものである。
【0013】
第5の発明に係る暗号処理方法は、入力データに対して第1の演算ステップにより第1のデータ変換処理を複数回行う暗号処理方法において、前記第1の演算ステップは、さらに第2のデータ変換処理を複数回行うループ処理ステップを有し、前記ループ処理ステップは、前記第2のデータ変換処理を行なう第2の演算ステップと、前記第2のデータ変換処理のタイミングを制御するように処理ループ上のデータを一時に保持するデータ保持ステップと、当該処理ループを終了させるか継続させるかを選択する選択ステップを有するものである。
【0014】
第6の発明に係る暗号処理方法は、第5の発明に係る暗号処理方法において、前記第2の演算ステップは、前記第2の演算ステップに入力されたデータを第1の分割データと第2の分割データに分けるデータ分割ステップと、前記第1の分割データをデータ変換する第3の演算ステップと、前記第3の演算ステップの出力データと前記第2の分割データをビット毎に排他的論理和演算する排他的論理和ステップと、前記排他的論理和ステップの出力データと前記第2の分割データを結合するデータ結合ステップを有することを特徴とするものである。
【0015】
【発明の実施の形態】
実施の形態1.
この発明の一実施の形態である暗号処理装置について、図1〜図3を用いて説明する。
図1は、この発明の一実施の形態である暗号処理装置における、暗号処理アルゴリズムのフローチャートを示したものである。図1において、101〜104はデータ変換処理を行う関数Fによる演算、111〜114はビット毎の排他的論理和演算である。
図2は関数Fによる演算の構成を示したものであり、3つの関数f201〜203と1つの関数g211による演算により構成される。
【0016】
動作について説明する。2×nビットの入力データ150が上位と下位の2つのnビットデータ151、152に分割される。nビットデータ151はそのままnビットデータ153として出力されるとともに、関数F101によりデータ変換される。関数F101から出力されたデータは他方のnビットデータ152と排他的論理和演算111においてビット毎に排他的論理和演算され、nビットデータ154が出力される。関数Fにおいては、関数f201〜203による演算が3回繰り返された後に、関数g211による演算が行われ出力される。
以下同様に関数F102、103、104、排他的論理和演算112、113、114まで演算が繰り返され、nビットデータ155、156が出力される。この2つのnビットデータが合成され、2nビットデータ157が出力される。
【0017】
図3は図1、図2で説明したデータ変換アルゴリズムを実現する、暗号処理装置の概略構成図を示したものである。図3において301、302及び303はデータを保持するレジスタA、レジスタB、レジスタC、311、312及び313はデータを選択するセレクタA、セレクタB、セレクタC、321と322はビット毎の排他的論理和回路、323は関数Fの演算を行う構成要素の1つである関数f演算回路、324は関数Fの演算を行う構成要素の1つである関数g演算回路である。
レジスタC303、セレクタC313、関数f演算回路323、関数g演算回路324等により第1の演算手段を構成する。レジスタC303、セレクタC313、関数f演算回路323等によりループ処理手段を構成する。
【0018】
図4、図5は、図3の回路の動作を説明するフローチャートである。図4、図5を用いて動作を説明する。関数Fによる演算は、関数f演算回路323による処理を3回、関数g演算回路324による処理を1回行うことによりなされる。
図1における第1段目のデータ変換処理について説明する。
2×nビットの入力データは2つのnビットデータに分割され、入力データA351および入力データB352として入力される。入力されたデータはセレクタA311セレクタB312において選択され、それぞれレジスタA301およびレジスタB302に保持される(ステップ4−1)。
【0019】
次にセレクタC313において、レジスタA301に保持されたデータが選択され(ステップ4−4)、この選択されたデータは関数f演算回路323によりデータ変換される(ステップ4−6)。関数f演算回路323より出力されたデータはレジスタC303に保持される(ステップ4−7)。これにより関数f演算回路による処理の1回目が終了する。
つづいて、セレクタC313において、レジスタC303に保持されたデータが選択され(ステップ4−8)、この選択されたデータが関数f演算回路323により変換される(ステップ4−6)。関数f演算回路 323より出力されたデータはレジスタC303に保持される(ステップ4−7)。これにより関数f演算回路による処理の2回目が終了する。
【0020】
さらに、セレクタC313においてレジスタC303に保持されたデータが選択される(ステップ4−8)。そして、この選択されたデータは関数f演算回路323によりデータ変換され(ステップ4−6)、出力データがレジスタC303に保持される(ステップ4−7)。これにより関数f演算回路323による処理の3回目が終了する。
次に、セレクタC313においてレジスタC303に保持されたデータが選択される(ステップ4−9)。この選択されたデータは関数g演算回路324によりデータ変換されて出力される(ステップ4−10)。以上で、関数Fによる演算が終了する。
【0021】
次に、関数g演算回路324から出力されたデータがフィードバックされ、レジスタB302に保持されたデータと排他的論理和回路322において排他的論理和が演算される(ステップ4−14)。その出力データがセレクタB312において選択され、この選択されたデータがレジスタB302に保持される(ステップ4−15)。以上で第1段目のデータ変換処理が完了する。
次に第2段目のデータ変換処理について説明する。
セレクタC313においてレジスタB302に保持されたデータが選択される(ステップ4−3)。次に、この選択されたデータは関数f演算回路323によりデータ変換され(ステップ4−6)、出力データがレジスタC303に保持される(ステップ4−7)。これにより関数f演算回路による処理の1回目が終了する。
【0022】
つづいて、セレクタC313においてレジスタC303に保持されたデータが選択され(ステップ4−8)、この選択されたデータは関数f演算回路323によりデータ変換され(ステップ4−6)、出力データがレジスタC303に保持される(ステップ4−7)。これにより関数f演算回路323による処理の2回目が終了する。
さらに、セレクタC313においてレジスタC303に保持されたデータが選択される(ステップ4−8)。次に、この選択されたデータは関数f323演算回路によりデータ変換され(ステップ4−6)、出力データがレジスタC303に保持される(ステップ4−7)。これにより関数f演算回路323による処理の3回目が終了する。
【0023】
次にセレクタC313においてレジスタC303に保持されたデータが選択され(ステップ4−9)、この選択されたデータは関数g演算回路324によりデータ変換される(ステップ4−10)。以上で、関数Fによる演算が終了する。次に、関数g演算回路324より出力されたデータがフィードバックされ、レジスタA301に保持されたデータと排他的論理和回路321において排他的論理和演算がなされる(ステップ4−12)。その出力データがセレクタA311において選択され、この選択されたデータがレジスタA301に保持される(ステップ4−13)。以上で第2段目のデータ変換処理が完了する。
【0024】
以下、この第1段目のデータ変換処理および第2段目の変換処理と同等な処理を交互に必要段数繰り返す。
最後に最終段目のデータ変換処理の結果として、レジスタA301およびレジスタB302で保持されているデータを出力A353、出力B354として出力する(ステップ4−19)。
以上のようにこの発明によれば、レジスタC303とセレクタC313を用いることにより、構成要素としての一つの関数f演算回路323を繰り返し使用するので、関数f演算回路323を一つ持てばよく、関数f演算回路323を3つ持つ必要がないので、回路規模を削減することが可能である。
【0025】
特に、暗号処理のデータ変換に用いられる関数F(関数f、関数g)は暗号強度の高い関数が用いられるため、非常に複雑な構成をとることが知られており、本発明に基づく回路規模の削減の効果は非常に大きくなる。
また、この発明によれば、レジスタA301、レジスタB302、レジスタC303、セレクタA311、セレクタB312、セレクタC313は常に動作する必要はなく、必要に応じて動作すれば処理を実現することが可能であるため、装置の低消費電力化を実現することが可能となる。
【0026】
従って、本発明をICカードのような小型の装置として使用する場合に、特に大きな効果を奏することが可能となる。尚、本発明はICカードのみならずICカードのリーダー・ライターにも利用することも可能である。
尚、関数Fは上記の構成に限定されるものではない。例えば、関数f323の繰り返しのみで構成されている場合は、図3において関数g324は必要がなく、セレクタC313で選択されたデータを直接フィードバックすればよい。
【0027】
又、関数f323がm個(mは1つまたはそれ以上)の関数により、任意の順で構成されるような場合は、図3における関数f323に相当する部分に、前述のm個の関数を並列にならべ、そのおのおのにセレクタC313からのデータを入力し、それらの出力をm入力1出力の選択を行うセレクタの入力とし、適切な一つの出力データを選択してレジスタC303に保持させ、これを前述のm個の関数の任意の順に相当するだけ繰り返すことによって構成することも可能である。
【0028】
実施の形態2.
この発明の他の一実施の形態である暗号処理装置について、図6〜図11を用いて説明する。
図6はMISTY暗号アルゴリズムのフローチャートを示している。MISTYの処理の詳しい内容については、例えば、松井 充“ブロック暗号アルゴリズムMISTY”、電子情報通信学会 信学技報 ISEC96-11(1996-07)に詳細が記載されている。図6において、501〜506は関数FLによる演算、511〜514は関数FOによる演算、521〜524は排他的論理和演算である。図7は図6における関数FO511〜514による演算の構成を示している。図7に示してあるように、MISTYでは関数FO511〜514の処理として関数FI601〜603と排他的論理和演算611〜613を中心とした変換処理を3段繰り返すようになっている。図8は図6および図7で示されるMISTYのデータ変換の処理を本発明を用いて構成した暗号処理装置の一実施例である。
【0029】
次に図6における暗号アルゴリズムの動作を説明する。
まず2×nビットの入力データ550が上位と下位のnビットの2つのデータに分割され、入力A551および入力B552として入力される。MISTYの場合はn=32である。nビットデータ551は関数FL501によりデータ変換されて後、そのままnビットデータ553として出力されるとともに、関数FO511によりデータ変換される。関数FO511により演算処理されたデータは、他方のnビットデータ552が関数FL502によりデータ変換された出力データと、排他的論理和演算521においてビット毎に排他的論理和演算され、nビットデータ554が出力される。関数FOにおいては、関数FI601〜603と排他的論理和演算611〜613により演算がなされる。即ち、入力された2mビットデータ(nビット)650が2つのmビットデータ651と652に分けられる。データ651は関数FIによりデータ変換されて後、データ652と排他的論理和演算611によりビット毎に排他的論理和演算され、データ653として出力される。データ652はデータ654としてそのまま出力される。以下同様の動作を全部で3段繰り返し、2つのmビットデータを併せ、2mビット(nビット)データ655として出力される。
【0030】
次に、2段目の処理について説明する。第1段目の出力データ554はそのまま出力されると同時に関数FO512によりデータ変換される。関数FO512の出力データはもう一方のnビットデータ553と排他的論理和演算522においてビット毎に排他的論理和が演算され出力される。
以下1段目と2段目と同様なデータ変換が必要段数繰り返され、nビットデータ557、558が出力され、最後に又FL関数505、506により変換され、上位、下位が入れ換えられて、この2つのnビットデータが合成され、2nビットデータ559が出力される。
【0031】
図8は図6、図7で説明したデータ変換アルゴリズムを実現する、暗号処理装置の概略構成図を示したものである。
図8において、701、702、703はレジスタA、レジスタB、レジスタC、711、712、713、714はセレクタA、セレクタB、セレクタC、セレクタD、721、722、723は排他的論理和回路、724はデータ変換を行う関数FI演算回路、725はデータ変換を行う関数FL演算回路、751は入力データA、752は入力データB、753は出力データA、754は出力データBである。
ここで、レジスタC703、セレクタC713、関数FI演算回路724、排他的論理和回路723等により第1のデータ変換を行う第1の演算手段を構成する。又、レジスタC703、セレクタC713、関数FI演算回路724、排他的論理和回路723等によりループ処理手段を構成する。
【0032】
図9〜図11は図8に示された暗号処理装置の動作を説明するフローチャートである。図9〜図11を用いて動作を説明する。
まず2×nビットの入力データnビットの2つのデータに分割され、入力A751および入力B752として入力される。MISTYの場合はn=32である。入力されたデータはセレクタA711セレクタB712において選択され、それぞれレジスタA701およびレジスタB702に保持される(ステップ8−1)。
【0033】
次にセレクタC713においてレジスタA701に保持されたデータが選択される(ステップ8−3)。次にこの選択されたデータが関数FL演算回路725においてデータ変換され(ステップ8−4)、出力データがセレクタD714において選択される(ステップ8−5)。さらに、この選択されたデータがセレクタA711において選択され(ステップ8−6)、レジスタA701に保持される(ステップ8−7)。
次に、セレクタC713においてレジスタB702に保持されたデータが選択される(ステップ8−8)。この選択されたデータが関数FL演算回路725においてデータ変換され(ステップ8−9)、出力データがセレクタD714において選択される(ステップ8−10)。さらに、この選択されたデータがセレクタB712において選択され(ステップ8−11)、レジスタBに保持される(ステップ8−12)。
【0034】
次にセレクタC713においてレジスタA701に保持されたデータが選択される(ステップ8−13)。次に、この選択されたデータ(2×mビット)はmビットずつにわけられ、一方のmビットのデータはそのまま出力データとして出力される。他方のmビットデータは、関数FI演算回路724に入力されデータ変換されて後、排他的論理和回路723において、もう一方のmビットデータとビット毎の排他的論理和演算され、これら2つの出力データが合成される(ステップ8−14)。出力データはレジスタC703に保持される(ステップ8−15)。これにより、1回目の関数FI演算回路724を中心とした処理が完了する。
【0035】
次に、セレクタC713においてレジスタC703に保持されたデータが選択される(ステップ8−16)。この選択されたデータ(2×mビット)はmビットずつにわけられ、一方のmビットのデータはそのまま出力データとして出力される。他方のmビットデータは、関数FI演算回路724に入力されデータ変換されて後、排他的論理和回路723において、もう一方のmビットデータとビット毎の排他的論理和演算され、これら2つの出力データが合成される(ステップ8−14)。出力データはレジスタC703に保持される(ステップ8−15)。これにより、2回目の関数FI演算回路724を中心とした処理が完了する。
【0036】
次に、セレクタC713においてレジスタC703に保持されたデータが選択される(ステップ8−16)。この選択されたデータ(2×mビット)はmビットずつにわけられ、一方のmビットのデータはそのまま出力データとして出力される。他方のmビットデータは、関数FI演算回路724に入力されデータ変換されて後、排他的論理和回路723において、もう一方のmビットデータとビット毎の排他的論理和演算され、これら2つの出力データが合成される(ステップ8−14)。出力データはレジスタC703に保持される(ステップ8−15)。これにより、3回目の関数FI演算回路724を中心とした処理が完了する。
【0037】
次にセレクタC713においてレジスタC703に保持されたデータが選択され(ステップ8−16)、この選択されたデータがセレクタD714において選択される(ステップ8−18)。この選択されたデータがフィードバックされ、レジスタB702に保持されたデータと排他的論理和回路722において排他的論理和演算を取られる(ステップ8−20)。その出力データがセレクタB712において選択され(ステップ8−21)、この選択されたデータがレジスタB702に保持される(ステップ8−22)。以上で第1段目のデータ変換処理が完了する。
【0038】
次に図6における2段目のデータ変換処理に相当するデータ変換処理を行う。まずセレクタC713においてレジスタB702に保持されたデータが選択される(ステップ8−24)。
この選択されたデータ(2×mビット)はmビットずつにわけられ、一方のmビットのデータはそのまま出力データとして出力される。他方のmビットデータは、関数FI演算回路724に入力されデータ変換されて後、排他的論理和回路723において、もう一方のmビットデータとビット毎の排他的論理和演算され、これら2つの出力データが合成される(ステップ8−14)。出力データはレジスタC703に保持される(ステップ8−15)。これにより、1回目の関数FI演算回路724を中心とした処理が完了する。
【0039】
次に、セレクタC713においてレジスタC703に保持されたデータが選択される(ステップ8−16)。この選択されたデータ(2×mビット)はmビットずつにわけられ、一方のmビットのデータはそのまま出力データとして出力される。他方のmビットデータは、関数FI演算回路724に入力されデータ変換されて後、排他的論理和回路723において、もう一方のmビットデータとビット毎の排他的論理和演算され、これら2つの出力データが合成される(ステップ8−14)。出力データはレジスタC703に保持される(ステップ8−15)。これにより、2回目の関数FI演算回路724を中心とした処理が完了する。
【0040】
次に、セレクタC713においてレジスタC703に保持されたデータが選択される(ステップ8−16)。この選択されたデータ(2×mビット)はmビットずつにわけられ、一方のmビットのデータはそのまま出力データとして出力される。他方のmビットデータは、関数FI演算回路724に入力されデータ変換されて後、排他的論理和回路723において、もう一方のmビットデータとビット毎の排他的論理和演算され、これら2つの出力データが合成される(ステップ8−14)。出力データはレジスタC703に保持される(ステップ8−15)。これにより、3回目の関数FI演算回路724を中心とした処理が完了する。
【0041】
次にセレクタC713においてレジスタC703に保持されたデータが選択され(ステップ8−16)、この選択されたデータがセレクタD714において選択される(ステップ8−18)。この選択されたデータがフィードバックされ、レジスタA701に保持されたデータと排他的論理和回路721においてビット毎に排他的論理和演算される(ステップ8−25)。その出力データがセレクタA711において選択され(ステップ8−26)、この選択されたデータがレジスタA701に保持される(ステップ8−27)。以上で第2段目のデータ変換処理が完了する。
以下、この第1段目のデータ変換処理および第2段目の変換処理と同等な処理を交互に必要段数繰り返す。MISTYは第8段目の変換処理と同等な処理を行うところまで行う。
【0042】
次にセレクタC713においてレジスタA701に保持されたデータが選択される(ステップ8−3)。次にこの選択されたデータが関数FL演算回路725においてデータ変換され(ステップ8−4)、出力データがセレクタD714において選択される(ステップ8−5)。さらに、この選択されたデータがセレクタA711において選択され(ステップ8−6)、レジスタA701に保持される(ステップ8−7)。
次に、セレクタC713においてレジスタB702に保持されたデータが選択される(ステップ8−8)。この選択されたデータが関数FL演算回路725においてデータ変換され(ステップ8−9)、出力データがセレクタD714において選択される(ステップ8−10)。さらに、この選択されたデータがセレクタB712において選択され(ステップ8−11)、レジスタBに保持される(ステップ8−12)。
【0043】
最後にレジスタA701およびレジスタB702で保持されているデータを出力A753、出力B754として出力する(ステップ8−29)。
本実施の形態によれば、各段の関数FO511〜514が図7に示されるような構成をもつ場合であっても、関数FI演算回路を3つ、排他的論理和回路を3つ持つ必要がなく、関数FI演算回路を一つ、排他的論理和回路を一つもてばよいので、回路規模を削減することが可能となる。又、暗号化アルゴリズムが図6に示されるような構成を持つ場合であっても、関数FL501〜504を実現する回路部分を複数持つ必要がなく、関数FL演算回路を一つもてばよいので、同様に回路規模の削減が可能となる。
【0044】
本実施の形態であるMISTYの場合、関数FI、関数FLは暗号強度の高い関数を用いるため、非常に複雑な構成をとる。従って本発明に基づく回路規模の削減の効果は非常に大きなものとなる。
また、本実施形態の動作の説明で明らかなように、レジスタA〜レジスタC、セレクタA〜セレクタDは常に動作する必要はなく、必要に応じて動作すれば処理を実現することが可能である。これは低消費電力化の実現においても非常に大きな効果を奏する。
従って、本発明をICカードのような小型の装置として使用する場合に、特に大きな効果を奏することが可能となる。尚、本発明はICカードのみならずICカードのリーダー・ライターにも利用することも可能である。
【0045】
実施の形態3.
図12はこの発明の一実施の形態である、通信システムの概略構成図を示したものである。図12において91はリーダーライター、92はICカード、93はICカード92のICである。IC93は構成要素として、94は通信データの送受信を行なう送受信手段、95は装置の制御等を行なうCPU、96はデータ、プログラム等が記憶されるメモリ、97は通信データの暗号・復号化処理を行う暗号処理装置である。IC93は構成要素として、送受信手段94、CPU95、メモリ96、暗号処理装置97を有する。
【0046】
暗号処理装置97には、実施の形態1又は実施の形態2に記載された暗号処理装置が利用される。
この通信システムの通信においては、暗号化されたデータが通信される。すなわち、ICカード92は、暗号処理装置97により暗号化されたデータを送受信手段94によりリーダーライター91に送信する。又、リーダーライター91から送信されたデータを送受信手段94により受信し、この受信データを暗号処理装置97で復号化することにより通信を行う。
【0047】
以上のように、この発明によれば、暗号化されたデータを通信する通信システムにおいて、ICカード92の暗号処理装置97に実施の形態1もしくは実施の形態2における暗号処理装置を用いることにより、効率的なICの構成が可能となり回路規模の削減および低消費電力化の実現されたICカードを得ることが可能となる。
尚、リーダーライター91とICカード92の通信は、接触・非接触のどちらであってもよい。
【0048】
【発明の効果】
第1の発明に係る暗号処理装置は、入力データに対して第1の演算手段により第1のデータ変換処理を複数回行う暗号処理装置において、前記第1の演算手段は、さらに第2のデータ変換処理を複数回行うループ処理手段を有し、前記ループ処理手段は、第2の演算手段、データ保持手段、選択手段により処理ループを構成し、前記第2の演算手段は、前記第2のデータ変換処理を行ない、前記データ保持手段は、前記第2のデータ変換処理のタイミングを制御するように処理ループ上のデータを一時的に保持し、前記選択手段は、当該処理ループを終了させるか継続させるかを選択するものであるので、暗号処理装置の回路規模の削減および低消費電力化を実現することが可能となる。
【0049】
第2の発明に係る暗号処理装置は、第1の発明に係る暗号処理装置において、前記第2の演算手段は、前記第2の演算手段に入力されたデータを第1の分割データと第2の分割データに分けるデータ分割手段と、前記第1の分割データをデータ変換する第3の演算手段と、前記第3のデータ変換手段の出力データと前記第2の分割データをビット毎に排他的論理和演算する排他的論理和手段と、前記排他的論理和手段の出力データと前記第2の分割データを結合するデータ結合手段を有することを特徴とするものであるので、暗号処理装置の回路規模の削減および低消費電力化を実現することが可能となる。
【0050】
第3の発明に係るICカードは、リーダー・ライターとデータの通信を行うICカードであって、前記リーダー・ライターから前記データを受信するデータ受信手段と、前記リーダー・ライターに前記データを送信するデータ送信手段と、前記データを暗号処理する請求項1に記載の暗号処理装置を有するものであるので、特に効率的な回路構成を実現することが要求される暗号処理装置を用いたICカードにおいて、回路規模の削減および低消費電力化が可能となる。
【0051】
第4の発明に係るICカードは、リーダー・ライターとデータの通信を行うICカードであって、前記リーダー・ライターから前記データを受信するデータ受信手段と、前記リーダー・ライターに前記データを送信するデータ送信手段と、前記データを暗号処理する請求項2に記載の暗号処理装置を有するものであるので、特に効率的な回路構成を実現することが要求される暗号処理装置を用いたICカードにおいて、回路規模の削減および低消費電力化が可能となる。
【0052】
第5の発明に係る暗号処理方法は、入力データに対して第1の演算ステップにより第1のデータ変換処理を複数回行う暗号処理方法において、前記第1の演算ステップは、さらに第2のデータ変換処理を複数回行うループ処理ステップを有し、前記ループ処理ステップは、前記第2のデータ変換処理を行なう第2の演算ステップと、前記第2のデータ変換処理のタイミングを制御するように処理ループ上のデータを一時に保持するデータ保持ステップと、当該処理ループを終了させるか継続させるかを選択する選択ステップを有するものであるので、暗号処理装置の回路規模の削減および低消費電力化を実現することが可能となる。
【0053】
第6の発明に係る暗号処理方法は、第5の発明に係る暗号処理方法において、前記第2の演算ステップは、前記第2の演算ステップに入力されたデータを第1の分割データと第2の分割データに分けるデータ分割ステップと、前記第1の分割データをデータ変換する第3の演算ステップと、前記第3の演算ステップの出力データと前記第2の分割データをビット毎に排他的論理和演算する排他的論理和ステップと、前記排他的論理和ステップの出力データと前記第2の分割データを結合するデータ結合ステップを有することを特徴とするものであるので、暗号処理装置の回路規模の削減および低消費電力化を実現することが可能となる。
【図面の簡単な説明】
【図1】 本発明の実施の形態1に係る暗号化アルゴリズムを示する図である。
【図2】 本発明の実施の形態1に係る暗号化アルゴリズムに用いられる、関数の構成を示す図である。
【図3】 本発明の実施の形態1に係る暗号処理装置の基本構成を示すブロック図である。
【図4】 本発明の実施の形態1に係る暗号処理装置の基本的動作の一例を示すフローチャート図である。
【図5】 本発明の実施の形態1に係る暗号処理装置の基本的動作の一例を示すフローチャート図である。
【図6】 本発明の実施の形態2に係る暗号化アルゴリズムを示する図である。
【図7】 本発明の実施の形態2に係る暗号化アルゴリズムに用いられる、関数の構成を示す図である。
【図8】 本発明の実施の形態2に係る暗号処理装置の基本構成を示すブロック図である。
【図9】 本発明の実施の形態2に係る暗号処理装置の基本的動作の一例を示すフローチャート図である。
【図10】 本発明の実施の形態2に係る暗号処理装置の基本的動作の一例を示すフローチャート図である。
【図11】 本発明の実施の形態2に係る暗号処理装置の基本的動作の一例を示すフローチャート図である。
【図12】 本発明の実施の形態3に係る通信システムの基本構成を示すブロック図である。
【図13】 従来の技術における暗号化アルゴリズムを示する図である。
【図14】 従来の技術における暗号処理装置の基本構成を示すブロック図である。
【符号の説明】
101〜104 関数Fによる演算、111〜114 排他的論理和演算、150、157 2nビットデータ、151〜156 nビットデータ、201〜203 関数fによる演算、211 関数gによる演算、301〜303 レジスタ、311〜313 セレクタ、321、322 排他的論理和回路、323関数f演算回路、324 関数g演算回路、351〜354 nビットデータ、501〜506 関数FLによる演算、511〜514 関数FOによる演算、521〜524 排他的論理和演算、550、559 2nビットデータ、551〜554、557、558 nビットデータ、601〜603 関数FIによる演算、611〜613 排他的論理和演算、650、655 2mビットデータ、651〜654 mビットデータ、701〜703 レジスタ、711〜714 セレクタ、721〜723 排他的論理和回路、724 関数FI演算回路、725 関数FL演算回路、751〜754 nビットデータ、91 リーダー・ライター、92 ICカード、93 IC、94 送受装置、95 CPU、96 メモリ、97 暗号処理装置、1001〜1004 関数Fによる演算、1011〜1014 排他的論理和、1050、1057 2nビットデータ、1051〜1056 nビットデータ、1101、1102 レジスタ、1103、1104 セレクタ、1105 関数F演算回路、1106 排他的論理和回路、1201〜1204 nビットデータ。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a cryptographic processing apparatus, and more particularly to a small cryptographic processing apparatus used for an IC card or the like.
[0002]
[Prior art]
As a prior art of the present invention, a description will be given using DES (Data Encryption Standard) of US commercial encryption, which is a block cipher of a secret key (common key) encryption system. Detailed processing contents of DES are described in, for example, Hans Eberl “A High-speed DES Implementation for Network Applications”, Advances in Cryptology-CRYPTO '92, Lecture Notes in computer Science 740, Springer-Verlag. It is described in. FIG. 13 is a flowchart of the DES encryption algorithm. In FIG. 13, reference numerals 1001 to 1004 denote operations by the function F for performing data conversion processing, and 1011 to 1014 denote exclusive OR operations for each bit. Note that initial transposition and final transposition are omitted.
[0003]
The operation will be described. Input data 1050 of 2 × n bits (2 × 32 bits in the case of DES) is divided into two n-bit data 1051 and 1052. The n-bit data 1051 is output as it is as n-bit data 1053 and is also input to the function F1001 for data conversion. The data output from the function F1001 is subjected to exclusive OR operation for each bit by the exclusive OR operation 1011 with the other n-bit data 1052, and n-bit data 1054 is output.
Similarly, the calculation processing is repeated until the functions F1002, 1003, and 1004, and the exclusive OR operations 1012, 1013, and 1014, and output data 1055 and 1056 are output. The two n-bit data are combined and output as 2n-bit data 1057.
[0004]
FIG. 14 is an example of a cryptographic processing apparatus that implements data conversion processing equivalent to the DES cryptographic flowchart shown in FIG. In FIG. 14, 1101 and 1102 are a register A and a register B that hold data, 1103 and 1104 are a selector A and a selector B that select data, 1105 is a function F arithmetic circuit that calculates a function F as data conversion, and 1106 is exclusive OR circuits 1201 and 1202 are n-bit input data A, B, 1203 and 1204 are n-bit output data A and B, respectively.
[0005]
The operation will be described. Input data of 2 × n bits (2 × 32 bits in the case of DES) is divided into two n-bit data inputs A1201 and B1202. Two pieces of input data are selected by the selector A 1103 and the selector B 1104 and held in the register A 1101 and the register B 1102, respectively. Next, the data held in the register A 1101 is fed back to the selector A 1103 and the selector B 1104, input to the function F arithmetic circuit 1105, converted into data, and then exclusive-OR circuit 1106 with the data held in the register B 1102. Is subjected to an exclusive OR operation. This result is fed back to selector A1103 and selector B1104.
[0006]
Next, the result of the exclusive OR operation circuit 1106 is selected in the selector A1103, and the data held in the register A1101 is selected in the selector B and is newly held in the register A1001 and the register B1002, respectively. Similarly, the processing is looped as many times as necessary from the functions F1002, 1003, and 1004 in FIG. 13 to the exclusive OR operations 1012, 1013, and 1014, and output data A1203 and output data B1204 are output. In the case of DES, it is 16 times.
Details of this conventional technique are described in, for example, Hans Eberl “A High-speed DES Implementation for Network Applications”, Advances in Cryptology-CRYPTO '92, Lecture Notes in computer Science 740, Springer-Verlag. It is described in.
[0007]
[Problems to be solved by the invention]
When the cryptographic processing apparatus according to the above-described method has a configuration in which a function F having a similar configuration is repeatedly processed, the implementation processing means can be efficiently configured by repeatedly using one circuit. For this reason, the circuit scale can be reduced, and the power consumption can be reduced. However, if the function F has a repeated structure of smaller processing elements inside, there is a problem that the configuration of the conventional cryptographic processing apparatus is not efficient for reducing the circuit scale and the accompanying lower power consumption. there were.
[0008]
The present invention has been made to solve the above-described problem, and has a configuration in which a function F having a similar configuration is repeatedly processed, and the function F has a repetition structure of smaller processing elements therein. Another object of the present invention is to obtain a cryptographic processing apparatus that can efficiently configure a cryptographic processing apparatus and reduce the circuit scale and power consumption.
[0009]
[Means for Solving the Problems]
According to a first aspect of the present invention, there is provided a cryptographic processing apparatus for performing first data conversion processing on input data by a first arithmetic means a plurality of times, wherein the first arithmetic means further includes second data. Loop processing means for performing the conversion processing a plurality of times, wherein the loop processing means constitutes a processing loop by the second computing means, the data holding means, and the selecting means, and the second computing means comprises the second computing means Data conversion processing is performed, and the data holding unit temporarily holds data on the processing loop so as to control the timing of the second data conversion processing, and the selection unit determines whether to end the processing loop. Select whether to continue.
[0010]
According to a second aspect of the present invention, there is provided a cryptographic processing apparatus according to the first aspect, wherein the second calculation means converts the data input to the second calculation means to the first divided data and the second divided data. Data dividing means for dividing the data into divided data, third computing means for data conversion of the first divided data, output data of the third computing means and the second divided data for each bit exclusive logic An exclusive OR means for performing a sum operation, and data combining means for combining the output data of the exclusive OR means and the second divided data are provided.
[0011]
An IC card according to a third aspect of the present invention is an IC card that communicates data with a reader / writer, and receives data from the reader / writer, and transmits the data to the reader / writer. A data transmission means and a cryptographic processing apparatus according to the first invention for cryptographically processing the data are provided.
[0012]
An IC card according to a fourth aspect of the present invention is an IC card that communicates data with a reader / writer, and receives data from the reader / writer, and transmits the data to the reader / writer. A data transmission means and a cryptographic processing apparatus according to the second invention for cryptographically processing the data are provided.
[0013]
An encryption processing method according to a fifth aspect of the present invention is the encryption processing method for performing the first data conversion processing a plurality of times on the input data by the first operation step, wherein the first operation step further includes the second data. A loop processing step for performing the conversion processing a plurality of times, wherein the loop processing step performs processing so as to control a second calculation step for performing the second data conversion processing and a timing of the second data conversion processing; A data holding step for holding data on the loop at a time and a selection step for selecting whether to end or continue the processing loop.
[0014]
According to a sixth aspect of the present invention, there is provided a cryptographic processing method according to the fifth aspect, wherein the second calculation step includes the first divided data and the second divided data input to the second calculation step. A data dividing step for dividing the first divided data, a third operation step for data conversion of the first divided data, an output logic of the third operation step, and the second divided data for each bit. An exclusive OR step for performing a sum operation, and a data combining step for combining the output data of the exclusive OR step and the second divided data are provided.
[0015]
DETAILED DESCRIPTION OF THE INVENTION
Embodiment 1 FIG.
A cryptographic processing apparatus according to an embodiment of the present invention will be described with reference to FIGS.
FIG. 1 shows a flowchart of a cryptographic processing algorithm in a cryptographic processing apparatus according to an embodiment of the present invention. In FIG. 1, 101 to 104 are operations by a function F that performs data conversion processing, and 111 to 114 are exclusive OR operations for each bit.
FIG. 2 shows the configuration of the calculation by the function F, and is configured by the calculation by three functions f201 to 203 and one function g211.
[0016]
The operation will be described. The 2 × n-bit input data 150 is divided into two upper and lower n-bit data 151 and 152. The n-bit data 151 is output as it is as n-bit data 153 and is converted by the function F101. The data output from the function F101 is subjected to exclusive OR operation for each bit in the exclusive OR operation 111 with the other n bit data 152, and n bit data 154 is output. In the function F, after the calculation by the functions f201 to 203 is repeated three times, the calculation by the function g211 is performed and output.
In the same manner, the operations up to the functions F102, 103, 104 and exclusive OR operations 112, 113, 114 are repeated, and n-bit data 155, 156 are output. The two n-bit data are combined and 2n-bit data 157 is output.
[0017]
FIG. 3 is a schematic configuration diagram of a cryptographic processing apparatus that implements the data conversion algorithm described in FIGS. 1 and 2. In FIG. 3, 301, 302 and 303 are registers A, B, C, 311, 312 and 313 which hold data, and selector A, selector B, selector C, 321 and 322 which select data are exclusive for each bit. An OR circuit, 323 is a function f operation circuit that is one of the components that perform the operation of the function F, and 324 is a function g operation circuit that is one of the components that perform the operation of the function F.
The register C303, the selector C313, the function f calculation circuit 323, the function g calculation circuit 324, etc. constitute a first calculation means. The register C303, the selector C313, the function f arithmetic circuit 323, etc. constitute a loop processing means.
[0018]
4 and 5 are flowcharts for explaining the operation of the circuit of FIG. The operation will be described with reference to FIGS. The calculation by the function F is performed by performing the process by the function f calculation circuit 323 three times and the process by the function g calculation circuit 324 once.
The first-stage data conversion process in FIG. 1 will be described.
The 2 × n-bit input data is divided into two n-bit data and input as input data A351 and input data B352. The input data is selected by the selector A311 selector B312 and held in the register A301 and the register B302, respectively (step 4-1).
[0019]
Next, in the selector C313, the data held in the register A301 is selected (step 4-4), and the selected data is converted by the function f arithmetic circuit 323 (step 4-6). The data output from the function f arithmetic circuit 323 is held in the register C303 (step 4-7). Thereby, the first process of the function f arithmetic circuit is completed.
Subsequently, in the selector C313, data held in the register C303 is selected (step 4-8), and the selected data is converted by the function f arithmetic circuit 323 (step 4-6). The data output from the function f arithmetic circuit 323 is held in the register C303 (step 4-7). As a result, the second processing by the function f arithmetic circuit is completed.
[0020]
Further, the data held in the register C303 is selected by the selector C313 (step 4-8). The selected data is converted by the function f arithmetic circuit 323 (step 4-6), and the output data is held in the register C303 (step 4-7). As a result, the third processing by the function f arithmetic circuit 323 is completed.
Next, the data held in the register C303 is selected by the selector C313 (step 4-9). The selected data is converted and output by the function g calculation circuit 324 (step 4-10). This completes the calculation by the function F.
[0021]
Next, the data output from the function g calculation circuit 324 is fed back, and the exclusive OR is calculated in the exclusive OR circuit 322 with the data held in the register B302 (step 4-14). The output data is selected by the selector B 312 and the selected data is held in the register B 302 (step 4-15). Thus, the first stage data conversion process is completed.
Next, the second stage data conversion process will be described.
In the selector C313, the data held in the register B302 is selected (step 4-3). Next, the selected data is converted by the function f arithmetic circuit 323 (step 4-6), and the output data is held in the register C303 (step 4-7). Thereby, the first process of the function f arithmetic circuit is completed.
[0022]
Subsequently, the data held in the register C303 is selected by the selector C313 (step 4-8), the selected data is converted by the function f arithmetic circuit 323 (step 4-6), and the output data is stored in the register C303. (Step 4-7). As a result, the second processing by the function f arithmetic circuit 323 is completed.
Further, the data held in the register C303 is selected by the selector C313 (step 4-8). Next, the selected data is converted by the function f323 arithmetic circuit (step 4-6), and the output data is held in the register C303 (step 4-7). As a result, the third processing by the function f arithmetic circuit 323 is completed.
[0023]
Next, the data held in the register C303 is selected by the selector C313 (step 4-9), and the selected data is converted by the function g arithmetic circuit 324 (step 4-10). This completes the calculation by the function F. Next, the data output from the function g operation circuit 324 is fed back, and the exclusive OR operation is performed in the exclusive OR circuit 321 with the data held in the register A301 (step 4-12). The output data is selected by the selector A311 and the selected data is held in the register A301 (step 4-13). This completes the second stage data conversion process.
[0024]
Thereafter, processing equivalent to the first-stage data conversion process and the second-stage conversion process is alternately repeated for the necessary number of stages.
Finally, the data held in the register A301 and the register B302 are output as an output A353 and an output B354 as a result of the data conversion process at the final stage (step 4-19).
As described above, according to the present invention, by using the register C303 and the selector C313, one function f arithmetic circuit 323 as a component is repeatedly used. Therefore, it is sufficient to have one function f arithmetic circuit 323. Since it is not necessary to have three f arithmetic circuits 323, the circuit scale can be reduced.
[0025]
In particular, the function F (function f, function g) used for data conversion in cryptographic processing is known to have a very complicated configuration because a function with high cryptographic strength is used, and the circuit scale based on the present invention is known. The effect of the reduction is very large.
In addition, according to the present invention, the register A301, the register B302, the register C303, the selector A311, the selector B312 and the selector C313 do not always have to operate, and processing can be realized if operated as necessary. Therefore, it is possible to realize low power consumption of the device.
[0026]
Therefore, when the present invention is used as a small device such as an IC card, a particularly great effect can be obtained. The present invention can be used not only for an IC card but also for an IC card reader / writer.
The function F is not limited to the above configuration. For example, when the function f323 is only repeated, the function g324 is not necessary in FIG. 3, and the data selected by the selector C313 may be directly fed back.
[0027]
In addition, when the function f323 is composed of m (m is one or more) functions in an arbitrary order, the m functions described above are added to the portion corresponding to the function f323 in FIG. In parallel, the data from the selector C313 is input to each of them, and the output is used as the input of the selector for selecting the m input 1 output, and one appropriate output data is selected and held in the register C303. It is also possible to construct by repeating as many times as necessary in the order of the m functions described above.
[0028]
Embodiment 2. FIG.
A cryptographic processing apparatus according to another embodiment of the present invention will be described with reference to FIGS.
FIG. 6 shows a flowchart of the MISTY encryption algorithm. Details of the processing of MISTY are described in, for example, Mitsuru Matsui “Block Cryptographic Algorithm MISTY”, IEICE Technical Report ISEC96-11 (1996-07). In FIG. 6, 501 to 506 are operations using the function FL, 511 to 514 are operations using the function FO, and 521 to 524 are exclusive OR operations. FIG. 7 shows a configuration of calculation by the functions FO511 to 514 in FIG. As shown in FIG. 7, in MISTY, conversion processing centering on functions FI601-603 and exclusive OR operations 611-613 is repeated three stages as processing of functions FO511-514. FIG. 8 shows an embodiment of an encryption processing apparatus in which the MISTY data conversion process shown in FIGS. 6 and 7 is configured using the present invention.
[0029]
Next, the operation of the encryption algorithm in FIG. 6 will be described.
First, 2 × n-bit input data 550 is divided into two pieces of upper and lower n-bit data, which are input as input A551 and input B552. In the case of MISTY, n = 32. The n-bit data 551 is converted by the function FL501 and then output as n-bit data 553 as it is and also converted by the function FO511. The data processed by the function FO51 1 is subjected to exclusive OR operation for each bit in the exclusive OR operation 521 with the output data obtained by converting the other n bit data 552 by the function FL502. Is output. In the function FO, operations are performed by functions FI601 to 603 and exclusive OR operations 611 to 613. That is, the input 2m-bit data (n-bit) 650 is divided into two m-bit data 651 and 652. The data 651 is converted by the function FI, and then exclusive OR operation is performed for each bit by the exclusive OR operation 611 with the data 652 and output as data 653. Data 652 is output as data 654 as it is. Thereafter, the same operation is repeated three times in total, and the two m-bit data are combined and output as 2m-bit (n-bit) data 655.
[0030]
Next, the second stage process will be described. The first stage output data 554 is output as it is, and at the same time, the data is converted by the function FO512. The output data of the function FO 512 is subjected to exclusive OR operation for each bit in the exclusive OR operation 522 with the other n-bit data 553 and output.
Thereafter, data conversion similar to the first and second stages is repeated for the required number of stages, n-bit data 557 and 558 are output, and finally converted by the FL functions 505 and 506, and the upper and lower levels are interchanged. Two n-bit data are combined and 2n-bit data 559 is output.
[0031]
FIG. 8 is a schematic configuration diagram of a cryptographic processing apparatus that implements the data conversion algorithm described in FIGS. 6 and 7.
In FIG. 8, 701, 702, and 703 are registers A, B, C, 711, 712, 713, and 714 are selector A, selector B, selector C, selector D, 721, 722, and 723 are exclusive OR circuits. , 724 is a function FI operation circuit that performs data conversion, 725 is a function FL operation circuit that performs data conversion, 751 is input data A, 752 is input data B, 753 is output data A, and 754 is output data B.
Here, the register C703, the selector C713, the function FI operation circuit 724, the exclusive OR circuit 723, and the like constitute first operation means for performing first data conversion. The register C703, selector C713, function FI operation circuit 724, exclusive OR circuit 723, and the like constitute a loop processing means.
[0032]
9 to 11 are flowcharts for explaining the operation of the cryptographic processing apparatus shown in FIG. The operation will be described with reference to FIGS.
First, the 2 × n-bit input data is divided into two n-bit data and input as input A751 and input B752. In the case of MISTY, n = 32. The input data is selected by the selector A711 selector B712 and held in the register A701 and the register B702, respectively (step 8-1).
[0033]
Next, the data held in the register A701 is selected by the selector C713 (step 8-3). Next, the selected data is converted in the function FL operation circuit 725 (step 8-4), and the output data is selected in the selector D714 (step 8-5). Further, the selected data is selected by the selector A711 (step 8-6) and held in the register A701 (step 8-7).
Next, the data held in the register B 702 is selected by the selector C 713 (step 8-8). The selected data is converted in the function FL arithmetic circuit 725 (step 8-9), and the output data is selected in the selector D714 (step 8-10). Further, the selected data is selected by the selector B 712 (step 8-11) and held in the register B (step 8-12).
[0034]
Next, the data held in the register A701 is selected by the selector C713 (step 8-13). Next, the selected data (2 × m bits) is divided into m bits, and one m-bit data is output as output data as it is. The other m-bit data is input to the function FI operation circuit 724 and converted, and then, exclusive-OR circuit 723 performs exclusive OR operation on the other m-bit data and each bit, and outputs these two outputs. Data is synthesized (step 8-14). The output data is held in the register C703 (step 8-15). Thereby, the process centering on the first function FI operation circuit 724 is completed.
[0035]
Next, the data held in the register C703 is selected by the selector C713 (step 8-16). The selected data (2 × m bits) is divided into m bits, and one m-bit data is output as output data as it is. The other m-bit data is input to the function FI operation circuit 724 and converted, and then exclusive-OR circuit 723 performs exclusive OR operation on the other m-bit data and bit by bit. Data is synthesized (step 8-14). The output data is held in the register C703 (step 8-15). Thereby, the process centering on the second function FI arithmetic circuit 724 is completed.
[0036]
Next, the data held in the register C703 is selected by the selector C713 (step 8-16). The selected data (2 × m bits) is divided into m bits, and one m-bit data is output as output data as it is. The other m-bit data is input to the function FI operation circuit 724 and converted, and then exclusive-OR circuit 723 performs exclusive OR operation on the other m-bit data and bit by bit. Data is synthesized (step 8-14). The output data is held in the register C703 (step 8-15). Thereby, the process centering on the third function FI operation circuit 724 is completed.
[0037]
Next, the data held in the register C703 is selected in the selector C713 (step 8-16), and the selected data is selected in the selector D714 (step 8-18). The selected data is fed back, and the exclusive OR operation is performed in the exclusive OR circuit 722 with the data held in the register B 702 (step 8-20). The output data is selected by the selector B712 (step 8-21), and the selected data is held in the register B702 (step 8-22). Thus, the first stage data conversion process is completed.
[0038]
Next, a data conversion process corresponding to the second stage data conversion process in FIG. 6 is performed. First, in the selector C713, the data held in the register B702 is selected (step 8-24).
The selected data (2 × m bits) is divided into m bits, and one m-bit data is output as output data as it is. The other m-bit data is input to the function FI operation circuit 724 and converted, and then exclusive-OR circuit 723 performs exclusive OR operation on the other m-bit data and bit by bit. Data is synthesized (step 8-14). The output data is held in the register C703 (step 8-15). Thereby, the process centered on the first function FI operation circuit 724 is completed.
[0039]
Next, the data held in the register C703 is selected by the selector C713 (step 8-16). The selected data (2 × m bits) is divided into m bits, and one m-bit data is output as output data as it is. The other m-bit data is input to the function FI operation circuit 724 and converted, and then exclusive-OR circuit 723 performs exclusive OR operation on the other m-bit data and bit by bit. Data is synthesized (step 8-14). The output data is held in the register C703 (step 8-15). Thereby, the process centering on the second function FI arithmetic circuit 724 is completed.
[0040]
Next, the data held in the register C703 is selected by the selector C713 (step 8-16). The selected data (2 × m bits) is divided into m bits, and one m-bit data is output as output data as it is. The other m-bit data is input to the function FI operation circuit 724 and converted, and then exclusive-OR circuit 723 performs exclusive OR operation on the other m-bit data and bit by bit. Data is synthesized (step 8-14). The output data is held in the register C703 (step 8-15). Thereby, the process centering on the third function FI operation circuit 724 is completed.
[0041]
Next, the data held in the register C703 is selected in the selector C713 (step 8-16), and the selected data is selected in the selector D714 (step 8-18). The selected data is fed back, and the exclusive OR operation is performed for each bit in the exclusive OR circuit 721 with the data held in the register A701 (step 8-25). The output data is selected by the selector A711 (step 8-26), and the selected data is held in the register A701 (step 8-27). This completes the second stage data conversion process.
Thereafter, processing equivalent to the first-stage data conversion process and the second-stage conversion process is alternately repeated for the necessary number of stages. MISTY is performed up to a process equivalent to the conversion process in the eighth stage.
[0042]
Next, the data held in the register A701 is selected by the selector C713 (step 8-3). Next, the selected data is converted in the function FL arithmetic circuit 725 (step 8-4), and the output data is selected in the selector D714 (step 8-5). Further, the selected data is selected by the selector A711 (step 8-6) and held in the register A701 (step 8-7).
Next, the data held in the register B 702 is selected by the selector C 713 (step 8-8). The selected data is converted in the function FL arithmetic circuit 725 (step 8-9), and the output data is selected in the selector D714 (step 8-10). Further, the selected data is selected by the selector B 712 (step 8-11) and held in the register B (step 8-12).
[0043]
Finally, the data held in the register A701 and the register B702 are output as an output A753 and an output B754 (step 8-29).
According to the present embodiment, it is necessary to have three function FI operation circuits and three exclusive OR circuits even when the function FOs 511 to 514 at each stage have a configuration as shown in FIG. Since only one function FI operation circuit and one exclusive OR circuit are required, the circuit scale can be reduced. Even if the encryption algorithm has a configuration as shown in FIG. 6, it is not necessary to have a plurality of circuit parts for realizing the functions FL501 to 504, and only one function FL operation circuit is required. Similarly, the circuit scale can be reduced.
[0044]
In the case of MISTY, which is the present embodiment, the functions FI and FL use functions with high encryption strength, and thus have a very complicated configuration. Therefore, the effect of reducing the circuit scale according to the present invention is very large.
Further, as is apparent from the description of the operation of the present embodiment, the registers A to C and the selectors A to D do not always have to operate, and the processing can be realized by operating as necessary. . This is very effective in realizing low power consumption.
Therefore, when the present invention is used as a small device such as an IC card, a particularly great effect can be obtained. The present invention can be used not only for an IC card but also for an IC card reader / writer.
[0045]
Embodiment 3 FIG.
FIG. 12 is a schematic configuration diagram of a communication system according to an embodiment of the present invention. In FIG. 12, 91 is a reader / writer, 92 is an IC card, and 93 is an IC of the IC card 92. The IC 93 is a constituent element, 94 is a transmission / reception means for transmitting / receiving communication data, 95 is a CPU for controlling the apparatus, 96 is a memory for storing data, programs, etc. 97 is an encryption / decryption process for communication data It is a cryptographic processing device to perform. The IC 93 includes transmission / reception means 94, a CPU 95, a memory 96, and a cryptographic processing device 97 as components.
[0046]
As the cryptographic processing device 97, the cryptographic processing device described in the first embodiment or the second embodiment is used.
In communication of this communication system, encrypted data is communicated. That is, the IC card 92 transmits the data encrypted by the encryption processing device 97 to the reader / writer 91 by the transmission / reception means 94. Further, the data transmitted from the reader / writer 91 is received by the transmission / reception means 94, and the received data is decrypted by the encryption processor 97 to perform communication.
[0047]
As described above, according to the present invention, in the communication system that communicates encrypted data, by using the cryptographic processing device according to the first or second embodiment for the cryptographic processing device 97 of the IC card 92, An efficient IC configuration can be achieved, and an IC card with reduced circuit scale and reduced power consumption can be obtained.
Note that communication between the reader / writer 91 and the IC card 92 may be either contact or non-contact.
[0048]
【The invention's effect】
According to a first aspect of the present invention, there is provided a cryptographic processing apparatus for performing first data conversion processing on input data by a first arithmetic means a plurality of times, wherein the first arithmetic means further includes second data. Loop processing means for performing the conversion processing a plurality of times, wherein the loop processing means constitutes a processing loop by the second computing means, the data holding means, and the selecting means, and the second computing means comprises the second computing means Data conversion processing is performed, and the data holding unit temporarily holds data on the processing loop so as to control the timing of the second data conversion processing, and the selection unit determines whether to end the processing loop. Since it is to select whether or not to continue, it is possible to reduce the circuit scale and reduce the power consumption of the cryptographic processing device.
[0049]
According to a second aspect of the present invention, there is provided a cryptographic processing apparatus according to the first aspect, wherein the second calculation means converts the data input to the second calculation means to the first divided data and the second divided data. Data dividing means for dividing the data into divided data, third arithmetic means for data conversion of the first divided data, output data of the third data converting means and the second divided data are exclusive for each bit. A circuit of a cryptographic processing apparatus comprising: exclusive OR means for performing an OR operation; and data combining means for combining the output data of the exclusive OR means and the second divided data. A reduction in scale and a reduction in power consumption can be realized.
[0050]
An IC card according to a third aspect of the present invention is an IC card that communicates data with a reader / writer, and receives data from the reader / writer, and transmits the data to the reader / writer. In an IC card using a cryptographic processing apparatus that is required to realize a particularly efficient circuit configuration since it has a data transmitting means and the cryptographic processing apparatus according to claim 1 for cryptographically processing the data. Therefore, the circuit scale can be reduced and the power consumption can be reduced.
[0051]
An IC card according to a fourth aspect of the present invention is an IC card that communicates data with a reader / writer, and receives data from the reader / writer, and transmits the data to the reader / writer. In an IC card using an encryption processing device that is required to realize a particularly efficient circuit configuration since it has the data transmission means and the encryption processing device according to claim 2 for encrypting the data. Therefore, the circuit scale can be reduced and the power consumption can be reduced.
[0052]
An encryption processing method according to a fifth aspect of the present invention is the encryption processing method for performing the first data conversion processing a plurality of times on the input data by the first operation step, wherein the first operation step further includes second data A loop processing step for performing the conversion processing a plurality of times, wherein the loop processing step performs processing so as to control a second calculation step for performing the second data conversion processing and a timing of the second data conversion processing; Since it has a data holding step for temporarily holding data on the loop and a selection step for selecting whether to end or continue the processing loop, it is possible to reduce the circuit scale of the cryptographic processing device and reduce the power consumption. It can be realized.
[0053]
According to a sixth aspect of the present invention, there is provided a cryptographic processing method according to the fifth aspect, wherein the second calculation step includes the first divided data and the second divided data input to the second calculation step. A data dividing step for dividing the first divided data, a third operation step for data conversion of the first divided data, an output logic of the third operation step, and the second divided data for each bit. The circuit scale of the cryptographic processing apparatus includes: an exclusive OR step for performing a sum operation; and a data combining step for combining the output data of the exclusive OR step and the second divided data. Reduction and low power consumption can be realized.
[Brief description of the drawings]
FIG. 1 shows an encryption algorithm according to Embodiment 1 of the present invention.
FIG. 2 is a diagram showing the structure of a function used in the encryption algorithm according to Embodiment 1 of the present invention.
FIG. 3 is a block diagram showing a basic configuration of a cryptographic processing apparatus according to Embodiment 1 of the present invention.
FIG. 4 is a flowchart showing an example of a basic operation of the cryptographic processing apparatus according to the first embodiment of the present invention.
FIG. 5 is a flowchart showing an example of basic operation of the cryptographic processing apparatus according to Embodiment 1 of the present invention;
FIG. 6 is a diagram showing an encryption algorithm according to Embodiment 2 of the present invention.
FIG. 7 is a diagram showing the structure of a function used in the encryption algorithm according to Embodiment 2 of the present invention.
FIG. 8 is a block diagram showing a basic configuration of a cryptographic processing apparatus according to Embodiment 2 of the present invention.
FIG. 9 is a flowchart showing an example of a basic operation of the cryptographic processing apparatus according to the second embodiment of the present invention.
FIG. 10 is a flowchart showing an example of a basic operation of the cryptographic processing apparatus according to the second embodiment of the present invention.
FIG. 11 is a flowchart showing an example of a basic operation of the cryptographic processing apparatus according to the second embodiment of the present invention.
FIG. 12 is a block diagram showing a basic configuration of a communication system according to Embodiment 3 of the present invention.
FIG. 13 is a diagram showing an encryption algorithm in the prior art.
FIG. 14 is a block diagram showing a basic configuration of a cryptographic processing apparatus according to a conventional technique.
[Explanation of symbols]
101-104 operation by function F, 111-114 exclusive OR operation, 150, 157 2n-bit data, 151-156 n-bit data, 201-203 operation by function f, 211 operation by function g, 301-303 registers, 311 to 313 selector, 321, 322 exclusive OR circuit, 323 function f operation circuit, 324 function g operation circuit, 351 to 354 n-bit data, 501 to 506 calculation by function FL, 511 to 514 calculation by function FO, 521 524 exclusive OR operation, 550, 559 2n bit data, 551-554, 557, 558 n bit data, 601-603 operation by function FI, 611-613 exclusive OR operation, 650, 655 2m bit data, 651-654 mbit data, 701-7 3 registers, 711-714 selector, 721-723 exclusive OR circuit, 724 function FI operation circuit, 725 function FL operation circuit, 751-754 n-bit data, 91 reader / writer, 92 IC card, 93 IC, 94 Device, 95 CPU, 96 memory, 97 cryptographic processing device, 1001 to 1004 operation by function F, 1011 to 1014 exclusive OR, 1050, 1057 2n bit data, 1051 to 1056 n bit data, 1101, 1102 register, 1103, 1104 selector, 1105 function F arithmetic circuit, 1106 exclusive OR circuit, 1201-1204 n-bit data.

Claims (1)

暗号化するデータAとデータBとを入力し、
第1の演算手段が、データAとデータBとを交互に入力して、第1のデータ変換処理を複数回行う暗号処理装置において、
前記暗号処理装置は、
排他的論理和回路AとセレクタAとレジスタAとを備えたデータ保持手段Aであって、暗号化するデータAをセレクタAが選択してレジスタAに保持するとともに、第1の演算手段に入力するデータAをレジスタAが出力し、第1の演算手段による第1のデータ変換処理の偶数回目の実行後に、排他的論理和回路Aが第1の演算手段から出力されたデータとレジスタAに保持されたデータAとの排他的論理和演算を行い演算した結果をセレクタAが選択してレジスタAにデータAとして保持して出力するデータ保持手段Aと、
排他的論理和回路BとセレクタBとレジスタBとを備えたデータ保持手段Bであって、暗号化するデータBをセレクタBが選択してレジスタBに保持するとともに、第1の演算手段に入力するデータBをレジスタBが出力し、第1の演算手段による第1のデータ変換処理の奇数回目の実行後に、排他的論理和回路Bが第1の演算手段から出力されたデータとレジスタBに保持されたデータBとの排他的論理和演算を行い演算した結果をセレクタBが選択してレジスタBにデータBとして保持して出力するデータ保持手段Bとを備え、
前記第1の演算手段は、さらに、
前記第1の演算手段に対して入力されたデータに対して第2のデータ変換処理を実行する第2の演算手段を有し、
前記暗号処理装置は、さらに、
前記第1の演算手段の内部に設けられ、第2の演算手段から出力されるデータをデータCとして保持して出力するデータ保持手段Cと、
データ保持手段Aとデータ保持手段Bとデータ保持手段Cとの3つのデータ保持手段の中から1つのデータ保持手段を選択して、選択したデータ保持手段に保持されているデータを出力する選択手段と
を備え、
前記第1の演算手段は、さらに、
第2のデータ変換処理を複数回行うループ処理手段を有し、
前記ループ処理手段は、第2の演算手段、データ保持手段C、選択手段により処理ループを構成し、
前記データ保持手段Cは、前記第2の演算手段から出力されるデータCを前記第2のデータ変換処理のタイミングを制御するように一時的に保持し、
前記選択手段は、
前記処理ループを開始させる場合には、データ保持手段Aに保持されたデータAとデータ保持手段Bに保持されたデータBとのいずれかを選択し、
前記処理ループを継続させる場合には、データ保持手段Cに保持されたデータCを選択し、
前記処理ループを終了させる場合には、データ保持手段Cに保持されたデータCを選択し、
前記選択手段は、
データ保持手段Aに保持されたデータAとデータ保持手段Bに保持されたデータBとのいずれかを選択して前記処理ループを開始し、データ保持手段Cに保持されたデータCを選択して前記処理ループを継続させて第2のデータ変換処理を複数回実行させることにより、データAに対する第1のデータ変換処理とデータBに対する第1のデータ変換処理とを第1の演算手段に交互に実行させる
ことを特徴とする暗号処理装置。
Enter data A and data B to be encrypted,
In the cryptographic processing apparatus in which the first arithmetic means alternately inputs the data A and the data B and performs the first data conversion process a plurality of times.
The cryptographic processing device includes:
A data holding means A having an exclusive OR circuit A, a selector A, and a register A. The selector A selects data A to be encrypted , holds it in the register A, and inputs it to the first arithmetic means The register A outputs the data A to be processed, and after the even number of times of the first data conversion processing by the first arithmetic means, the exclusive OR circuit A outputs the data output from the first arithmetic means to the register A. and data holding means a for holding and outputting the data a retained data a and the exclusive OR operation to perform calculation result selector a has selected register a,
A data holding means B having an exclusive OR circuit B, a selector B, and a register B. The selector B selects the data B to be encrypted , holds it in the register B, and inputs it to the first arithmetic means The data B to be output is output from the register B. After the odd-numbered execution of the first data conversion processing by the first arithmetic means, the exclusive OR circuit B applies the data output from the first arithmetic means to the register B. and a data holding unit B for holding and outputting the data B to the exclusive sum operation was carried out computed result selected selector B register B with the held data B,
The first calculation means further includes:
Second calculation means for executing a second data conversion process on the data input to the first calculation means;
The cryptographic processing device further includes:
Data holding means C provided inside the first calculating means, holding data outputted from the second calculating means as data C and outputting the data C;
Selection means for selecting one data holding means from the three data holding means of data holding means A, data holding means B and data holding means C, and outputting the data held in the selected data holding means And
The first calculation means further includes:
Loop processing means for performing the second data conversion processing a plurality of times;
The loop processing means constitutes a processing loop by the second calculation means, the data holding means C, and the selection means,
The data holding means C temporarily holds the data C output from the second calculation means so as to control the timing of the second data conversion process,
The selection means includes
When starting the processing loop, select either data A held in the data holding means A and data B held in the data holding means B;
When continuing the processing loop, the data C held in the data holding means C is selected,
When ending the processing loop, select the data C held in the data holding means C,
The selection means includes
Select either data A held in data holding means A or data B held in data holding means B to start the processing loop, select data C held in data holding means C, By continuing the processing loop and executing the second data conversion process a plurality of times, the first data conversion process for data A and the first data conversion process for data B are alternately performed by the first arithmetic means. A cryptographic processing apparatus that is executed.
JP25506599A 1999-09-09 1999-09-09 Cryptographic processing device Expired - Lifetime JP3992888B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25506599A JP3992888B2 (en) 1999-09-09 1999-09-09 Cryptographic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25506599A JP3992888B2 (en) 1999-09-09 1999-09-09 Cryptographic processing device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP09141328A Division JP3088337B2 (en) 1997-05-30 1997-05-30 Cryptographic processing device, IC card and cryptographic processing method

Publications (2)

Publication Number Publication Date
JP2000081840A JP2000081840A (en) 2000-03-21
JP3992888B2 true JP3992888B2 (en) 2007-10-17

Family

ID=17273663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25506599A Expired - Lifetime JP3992888B2 (en) 1999-09-09 1999-09-09 Cryptographic processing device

Country Status (1)

Country Link
JP (1) JP3992888B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7212631B2 (en) * 2001-05-31 2007-05-01 Qualcomm Incorporated Apparatus and method for performing KASUMI ciphering

Also Published As

Publication number Publication date
JP2000081840A (en) 2000-03-21

Similar Documents

Publication Publication Date Title
KR100435052B1 (en) Encryption device
JP3851115B2 (en) Cryptographic circuit
US7978851B2 (en) Keystream encryption device, method, and program
JP4052480B2 (en) Pseudorandom number generation method, pseudorandom number generator, and pseudorandom number generation program
JP4890976B2 (en) Cryptographic processing device
KR100360957B1 (en) Cipher processor, IC Card And Cipher processing method
US8515059B2 (en) Cryptographic processor with dynamic update of encryption state
KR100377172B1 (en) Key Scheduller of encryption device using data encryption standard algorithm
KR100800468B1 (en) Hardware cryptographic engine and method improving power consumption and operation speed
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
JP2010245881A (en) Cipher processor
JP2004054128A (en) Encrypting system
JP3992888B2 (en) Cryptographic processing device
KR101658397B1 (en) Lightweight cryptographic apparatus using PRESENT
JP4395527B2 (en) Information processing device
JP2004004603A (en) Extension key generation apparatus, enciphering apparatus and enciphering system
KR100494560B1 (en) Real time block data encryption/decryption processor using Rijndael block cipher and method therefor
KR101693591B1 (en) Lightweight cryptographic apparatus using hardware and software co-design
KR100546777B1 (en) Apparatus and method for SEED Encryption/Decryption, and F function processor therefor
KR101664799B1 (en) Lightweight cryptographic apparatus using HIGHT
KR101655862B1 (en) Lightweight cryptographic apparatus using PRINTcipher
Melnyk et al. Modelling DES Soft-Cores for information protection
JP2005529365A (en) AES mix column conversion
KR100406724B1 (en) A multiplicative inverse operator for modulo n and data encryption apparatus including the same operator
KR20210036699A (en) Bit-serial hight operation apparatus and its method, computer-readable recording medium and computer program having program language for the same

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040421

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060929

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061225

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070724

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100803

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110803

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120803

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130803

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term