JP2000081840A - 暗号処理装置、icカ―ド及び暗号処理方法 - Google Patents

暗号処理装置、icカ―ド及び暗号処理方法

Info

Publication number
JP2000081840A
JP2000081840A JP11255065A JP25506599A JP2000081840A JP 2000081840 A JP2000081840 A JP 2000081840A JP 11255065 A JP11255065 A JP 11255065A JP 25506599 A JP25506599 A JP 25506599A JP 2000081840 A JP2000081840 A JP 2000081840A
Authority
JP
Japan
Prior art keywords
data
processing
function
exclusive
register
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.)
Granted
Application number
JP11255065A
Other languages
English (en)
Other versions
JP3992888B2 (ja
Inventor
Mitsuru Matsui
充 松井
Toshio Tokita
俊雄 時田
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/ja
Publication of JP2000081840A publication Critical patent/JP2000081840A/ja
Application granted granted Critical
Publication of JP3992888B2 publication Critical patent/JP3992888B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 レジスタとセレクタを用いて、一つの回路を
複数回使用することにより、同様な構成をもつ関数Fが
繰り返し処理される構成を持ち、かつ関数Fがその内部
により小さい処理要素の繰り返し構造を持つ場合に、暗
号処理装置を効率的に構成し、回路規模の削減や消費電
力の低下が可能となる暗号処理装置を得る。 【解決手段】 データを一時的に保持するレジスタ30
1〜303と、出力すべきデータを選択するセレクタ3
11〜313と、データ変換を行う関数f演算回路32
3とで構成している。関数f演算回路323からの出力
をレジスタC303において保持し、セレクタC313
により、関数f演算回路323によるデータ変換を繰り
返すか否かを選択している。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、暗号処理装置に
関するものであり、特にICカード等に用いられる小型
暗号処理装置に関するものである。
【0002】
【従来の技術】この発明の従来の技術として、秘密鍵
(共通鍵)暗号系のブロック暗号である、米国商用暗号
のDES(Data Encryption Standard)を用いて説明す
る。DESの詳細な処理内容は、例えば、Hans Eberl
“A High-speed DES Implementation for Network Appl
ications”、Advances in Cryptology - CRYPTO‘92、L
ecture Notes in computer Science 740、Springer-Ver
lag.に記載されている。図13は、DES暗号アルゴ
リズムのフローチャートである。図13において、10
01〜1004はデータ変換処理を行う関数Fによる演
算、1011〜1014はビット毎の排他的論理和演算
である。尚、初期転置、最終転置は省略してある。
【0003】動作について説明する。2×nビット(D
ESの場合2×32ビット)の入力データ1050が2
つのnビットデータ1051、1052に分割される。
nビットデータ1051はそのままnビットデータ10
53として出力されるとともに、関数F1001に入力
され、データ変換される。関数F1001から出力され
たデータは他方のnビットデータ1052と排他的論理
和演算1011によりビット毎に排他的論理和演算さ
れ、nビットデータ1054が出力される。以下同様に
関数F1002、1003、1004、排他的論理和演
算1012、1013、1014まで演算処理が繰り返
され、出力データ1055、1056が出力される。こ
の2つのnビットデータは合成され2nビットデータ1
057として出力される。
【0004】図14は、図13で示されたDES暗号フ
ローチャートと同等なデータ変換処理を実現する暗号処
理装置の一例である。図14において1101および1
102はデータを保持するレジスタ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によって選択され、レジスタA1
101およびレジスタB1102に保持される。次にレ
ジスタA1101に保持されたデータは、セレクタA1
103およびセレクタ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 DESImplementation for Ne
twork Applications”, Advances in Cryptology - CRY
PTO‘92、Lecture Notes in computer Science 740、Sp
ringer-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〜1
04はデータ変換処理を行う関数Fによる演算、111
〜114はビット毎の排他的論理和演算である。図2は
関数Fによる演算の構成を示したものであり、3つの関
数f201〜203と1つの関数g211による演算に
より構成される。
【0016】動作について説明する。2×nビットの入
力データ150が上位と下位の2つのnビットデータ1
51、152に分割される。nビットデータ151はそ
のままnビットデータ153として出力されるととも
に、関数F101によりデータ変換される。関数F10
1から出力されたデータは他方のnビットデータ152
と排他的論理和演算111においてビット毎に排他的論
理和演算され、nビットデータ154が出力される。関
数Fにおいては、関数f201〜203による演算が3
回繰り返された後に、関数g211による演算が行われ
出力される。以下同様に関数F102、103、10
4、排他的論理和演算112、113、114まで演算
が繰り返され、nビットデータ155、156が出力さ
れる。この2つのnビットデータが合成され、2nビッ
トデータ157が出力される。
【0017】図3は図1、図2で説明したデータ変換ア
ルゴリズムを実現する、暗号処理装置の概略構成図を示
したものである。図3において301、302及び30
3はデータを保持するレジスタ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、セレクタC3
13、関数f演算回路323等によりループ処理手段を
構成する。
【0018】図4、図5は、図3の回路の動作を説明す
るフローチャートである。図4、図5を用いて動作を説
明する。関数Fによる演算は、関数f演算回路323に
よる処理を3回、関数g演算回路324による処理を1
回行うことによりなされる。図1における第1段目のデ
ータ変換処理について説明する。2×nビットの入力デ
ータは2つのnビットデータに分割され、入力データA
351および入力データ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演算回路32
3によりデータ変換され(ステップ4−6)、出力デー
タがレジスタC303に保持される(ステップ4−
7)。これにより関数f演算回路323による処理の2
回目が終了する。さらに、セレクタC313においてレ
ジスタC303に保持されたデータが選択される(ステ
ップ4−8)。次に、この選択されたデータは関数f3
23演算回路によりデータ変換され(ステップ4−
6)、出力データがレジスタC303に保持される(ス
テップ4−7)。これにより関数f演算回路323によ
る処理の3回目が終了する。
【0023】次にセレクタC313においてレジスタC
303に保持されたデータが選択され(ステップ4−
9)、この選択されたデータは関数g演算回路324に
よりデータ変換される(ステップ4−10)。以上で、
関数Fによる演算が終了する。次に、関数g演算回路3
24より出力されたデータがフィードバックされ、レジ
スタA301に保持されたデータと排他的論理和回路3
21において排他的論理和演算がなされる(ステップ4
−12)。その出力データがセレクタA311において
選択され、この選択されたデータがレジスタA301に
保持される(ステップ4−13)。以上で第2段目のデ
ータ変換処理が完了する。
【0024】以下、この第1段目のデータ変換処理およ
び第2段目の変換処理と同等な処理を交互に必要段数繰
り返す。最後に最終段目のデータ変換処理の結果とし
て、レジスタA301およびレジスタB302で保持さ
れているデータを出力A353、出力B354として出
力する(ステップ4−19)。以上のようにこの発明に
よれば、レジスタC303とセレクタC313を用いる
ことにより、構成要素としての一つの関数f演算回路3
23を繰り返し使用するので、関数f演算回路323を
一つ持てばよく、関数f演算回路323を3つ持つ必要
がないので、回路規模を削減することが可能である。
【0025】特に、暗号処理のデータ変換に用いられる
関数F(関数f、関数g)は暗号強度の高い関数が用い
られるため、非常に複雑な構成をとることが知られてお
り、本発明に基づく回路規模の削減の効果は非常に大き
くなる。また、この発明によれば、レジスタA301、
レジスタB302、レジスタC303、セレクタA31
1、セレクタ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”、電子情報通信学会 信学技報 ISEC
96-11(1996-07)に詳細が記載されている。図6におい
て、501〜506は関数FLによる演算、511〜5
14は関数FOによる演算、521〜524は排他的論
理和演算である。図7は図6における関数FO511〜
514による演算の構成を示している。図7に示してあ
るように、MISTYでは関数FO511〜514の処
理として関数FI601〜603と排他的論理和演算6
11〜613を中心とした変換処理を3段繰り返すよう
になっている。図8は図6および図7で示されるMIS
TYのデータ変換の処理を本発明を用いて構成した暗号
処理装置の一実施例である。
【0029】次に図6における暗号アルゴリズムの動作
を説明する。まず2×nビットの入力データ550が上
位と下位のnビットの2つのデータに分割され、入力A
551および入力B552として入力される。MIST
Yの場合はn=32である。nビットデータ551は関
数FL501によりデータ変換されて後、そのままnビ
ットデータ553として出力されるとともに、関数FO
511によりデータ変換される。関数FO511により演
算処理されたデータは、他方のnビットデータ552が
関数FL502によりデータ変換された出力データと、
排他的論理和演算521においてビット毎に排他的論理
和演算され、nビットデータ554が出力される。関数
FOにおいては、関数FI601〜603と排他的論理
和演算611〜613により演算がなされる。即ち、入
力された2mビットデータ(nビット)650が2つの
mビットデータ651と652に分けられる。データ6
51は関数FIによりデータ変換されて後、データ65
2と排他的論理和演算611によりビット毎に排他的論
理和演算され、データ653として出力される。データ
652はデータ654としてそのまま出力される。以下
同様の動作を全部で3段繰り返し、2つのmビットデー
タを併せ、2mビット(nビット)データ655として
出力される。
【0030】次に、2段目の処理について説明する。第
1段目の出力データ554はそのまま出力されると同時
に関数FO512によりデータ変換される。関数FO5
12の出力データはもう一方のnビットデータ553と
排他的論理和演算522においてビット毎に排他的論理
和が演算され出力される。以下1段目と2段目と同様な
データ変換が必要段数繰り返され、nビットデータ55
7、558が出力され、最後に又FL関数505、50
6により変換され、上位、下位が入れ換えられて、この
2つのnビットデータが合成され、2nビットデータ5
59が出力される。
【0031】図8は図6、図7で説明したデータ変換ア
ルゴリズムを実現する、暗号処理装置の概略構成図を示
したものである。図8において、701、702、70
3はレジスタA、レジスタB、レジスタC、711、7
12、713、714はセレクタA、セレクタB、セレ
クタC、セレクタD、721、722、723は排他的
論理和回路、724はデータ変換を行う関数FI演算回
路、725はデータ変換を行う関数FL演算回路、75
1は入力データA、752は入力データB、753は出
力データA、754は出力データBである。ここで、レ
ジスタC703、セレクタC713、関数FI演算回路
724、排他的論理和回路723等により第1のデータ
変換を行う第1の演算手段を構成する。又、レジスタC
703、セレクタC713、関数FI演算回路724、
排他的論理和回路723等によりループ処理手段を構成
する。
【0032】図9〜図11は図8に示された暗号処理装
置の動作を説明するフローチャートである。図9〜図1
1を用いて動作を説明する。まず2×nビットの入力デ
ータnビットの2つのデータに分割され、入力A751
および入力B752として入力される。MISTYの場
合はn=32である。入力されたデータはセレクタA7
11セレクタB712において選択され、それぞれレジ
スタA701およびレジスタB702に保持される(ス
テップ8−1)。
【0033】次にセレクタC713においてレジスタA
701に保持されたデータが選択される(ステップ8−
3)。次にこの選択されたデータが関数FL演算回路7
25においてデータ変換され(ステップ8−4)、出力
データがセレクタD714において選択される(ステッ
プ8−5)。さらに、この選択されたデータがセレクタ
A711において選択され(ステップ8−6)、レジス
タA701に保持される(ステップ8−7)。次に、セ
レクタC713においてレジスタB702に保持された
データが選択される(ステップ8−8)。この選択され
たデータが関数FL演算回路725においてデータ変換
され(ステップ8−9)、出力データがセレクタD71
4において選択される(ステップ8−10)。さらに、
この選択されたデータがセレクタB712において選択
され(ステップ8−11)、レジスタBに保持される
(ステップ8−12)。
【0034】次にセレクタC713においてレジスタA
701に保持されたデータが選択される(ステップ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−1
4)。出力データはレジスタC703に保持される(ス
テップ8−15)。これにより、2回目の関数FI演算
回路724を中心とした処理が完了する。
【0036】次に、セレクタC713においてレジスタ
C703に保持されたデータが選択される(ステップ8
−16)。この選択されたデータ(2×mビット)はm
ビットずつにわけられ、一方のmビットのデータはその
まま出力データとして出力される。他方のmビットデー
タは、関数FI演算回路724に入力されデータ変換さ
れて後、排他的論理和回路723において、もう一方の
mビットデータとビット毎の排他的論理和演算され、こ
れら2つの出力データが合成される(ステップ8−1
4)。出力データはレジスタC703に保持される(ス
テップ8−15)。これにより、3回目の関数FI演算
回路724を中心とした処理が完了する。
【0037】次にセレクタC713においてレジスタC
703に保持されたデータが選択され(ステップ8−1
6)、この選択されたデータがセレクタD714におい
て選択される(ステップ8−18)。この選択されたデ
ータがフィードバックされ、レジスタB702に保持さ
れたデータと排他的論理和回路722において排他的論
理和演算を取られる(ステップ8−20)。その出力デ
ータがセレクタB712において選択され(ステップ8
−21)、この選択されたデータがレジスタB702に
保持される(ステップ8−22)。以上で第1段目のデ
ータ変換処理が完了する。
【0038】次に図6における2段目のデータ変換処理
に相当するデータ変換処理を行う。まずセレクタC71
3においてレジスタB702に保持されたデータが選択
される(ステップ8−24)。この選択されたデータ
(2×mビット)はmビットずつにわけられ、一方のm
ビットのデータはそのまま出力データとして出力され
る。他方のmビットデータは、関数FI演算回路724
に入力されデータ変換されて後、排他的論理和回路72
3において、もう一方のmビットデータとビット毎の排
他的論理和演算され、これら2つの出力データが合成さ
れる(ステップ8−14)。出力データはレジスタC7
03に保持される(ステップ8−15)。これにより、
1回目の関数FI演算回路724を中心とした処理が完
了する。
【0039】次に、セレクタC713においてレジスタ
C703に保持されたデータが選択される(ステップ8
−16)。この選択されたデータ(2×mビット)はm
ビットずつにわけられ、一方のmビットのデータはその
まま出力データとして出力される。他方のmビットデー
タは、関数FI演算回路724に入力されデータ変換さ
れて後、排他的論理和回路723において、もう一方の
mビットデータとビット毎の排他的論理和演算され、こ
れら2つの出力データが合成される(ステップ8−1
4)。出力データはレジスタC703に保持される(ス
テップ8−15)。これにより、2回目の関数FI演算
回路724を中心とした処理が完了する。
【0040】次に、セレクタC713においてレジスタ
C703に保持されたデータが選択される(ステップ8
−16)。この選択されたデータ(2×mビット)はm
ビットずつにわけられ、一方のmビットのデータはその
まま出力データとして出力される。他方のmビットデー
タは、関数FI演算回路724に入力されデータ変換さ
れて後、排他的論理和回路723において、もう一方の
mビットデータとビット毎の排他的論理和演算され、こ
れら2つの出力データが合成される(ステップ8−1
4)。出力データはレジスタC703に保持される(ス
テップ8−15)。これにより、3回目の関数FI演算
回路724を中心とした処理が完了する。
【0041】次にセレクタC713においてレジスタC
703に保持されたデータが選択され(ステップ8−1
6)、この選択されたデータがセレクタD714におい
て選択される(ステップ8−18)。この選択されたデ
ータがフィードバックされ、レジスタA701に保持さ
れたデータと排他的論理和回路721においてビット毎
に排他的論理和演算される(ステップ8−25)。その
出力データがセレクタA711において選択され(ステ
ップ8−26)、この選択されたデータがレジスタA7
01に保持される(ステップ8−27)。以上で第2段
目のデータ変換処理が完了する。以下、この第1段目の
データ変換処理および第2段目の変換処理と同等な処理
を交互に必要段数繰り返す。MISTYは第8段目の変
換処理と同等な処理を行うところまで行う。
【0042】次にセレクタC713においてレジスタA
701に保持されたデータが選択される(ステップ8−
3)。次にこの選択されたデータが関数FL演算回路7
25においてデータ変換され(ステップ8−4)、出力
データがセレクタD714において選択される(ステッ
プ8−5)。さらに、この選択されたデータがセレクタ
A711において選択され(ステップ8−6)、レジス
タA701に保持される(ステップ8−7)。次に、セ
レクタC713においてレジスタB702に保持された
データが選択される(ステップ8−8)。この選択され
たデータが関数FL演算回路725においてデータ変換
され(ステップ8−9)、出力データがセレクタD71
4において選択される(ステップ8−10)。さらに、
この選択されたデータがセレクタB712において選択
され(ステップ8−11)、レジスタBに保持される
(ステップ8−12)。
【0043】最後にレジスタA701およびレジスタB
702で保持されているデータを出力A753、出力B
754として出力する(ステップ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である。I
C93は構成要素として、94は通信データの送受信を
行なう送受信手段、95は装置の制御等を行なうCP
U、96はデータ、プログラム等が記憶されるメモリ、
97は通信データの暗号・復号化処理を行う暗号処理装
置である。IC93は構成要素として、送受信手段9
4、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による演算、30
1〜303 レジスタ、311〜313 セレクタ、3
21、322 排他的論理和回路、323関数f演算回
路、324 関数g演算回路、351〜354 nビッ
トデータ、501〜506 関数FLによる演算、51
1〜514 関数FOによる演算、521〜524 排
他的論理和演算、550、559 2nビットデータ、
551〜554、557、558 nビットデータ、6
01〜603 関数FIによる演算、611〜613
排他的論理和演算、650、655 2mビットデー
タ、651〜654 mビットデータ、701〜703
レジスタ、711〜714 セレクタ、721〜72
3 排他的論理和回路、724 関数FI演算回路、7
25 関数FL演算回路、751〜754 nビットデ
ータ、91 リーダー・ライター、92 ICカード、
93 IC、94 送受装置、95 CPU、96 メ
モリ、97 暗号処理装置、1001〜1004 関数
Fによる演算、1011〜1014 排他的論理和、1
050、1057 2nビットデータ、1051〜10
56 nビットデータ、1101、1102 レジス
タ、1103、1104 セレクタ、1105 関数F
演算回路、1106 排他的論理和回路、1201〜1
204 nビットデータ。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 入力データに対して第1の演算手段によ
    り第1のデータ変換処理を複数回行う暗号処理装置にお
    いて、 前記第1の演算手段は、さらに第2のデータ変換処理を
    複数回行うループ処理手段を有し、 前記ループ処理手段は、第2の演算手段、データ保持手
    段、選択手段により処理ループを構成し、 前記第2の演算手段は、前記第2のデータ変換処理を行
    ない、 前記データ保持手段は、前記第2のデータ変換処理のタ
    イミングを制御するように処理ループ上のデータを一時
    的に保持し、 前記選択手段は、当該処理ループを終了させるか継続さ
    せるかを選択する暗号処理装置。
  2. 【請求項2】 前記第2の演算手段は、 前記第2の演算手段に入力されたデータを第1の分割デ
    ータと第2の分割データに分けるデータ分割手段と、 前記第1の分割データをデータ変換する第3の演算手段
    と、 前記第3の演算手段の出力データと前記第2の分割デー
    タをビット毎に排他的論理和演算する排他的論理和手段
    と、 前記排他的論理和手段の出力データと前記第2の分割デ
    ータを結合するデータ結合手段を有することを特徴とす
    る請求項1記載の暗号処理装置。
  3. 【請求項3】 リーダー・ライターとデータの通信を行
    うICカードであって、 前記リーダー・ライターから前記データを受信するデー
    タ受信手段と、 前記リーダー・ライターに前記データを送信するデータ
    送信手段と、 前記データを暗号処理する請求項1に記載の暗号処理装
    置を有するICカード。
  4. 【請求項4】 リーダー・ライターとデータの通信を行
    うICカードであって、 前記リーダー・ライターから前記データを受信するデー
    タ受信手段と、 前記リーダー・ライターに前記データを送信するデータ
    送信手段と、 前記データを暗号処理する請求項2に記載の暗号処理装
    置を有するICカード。
  5. 【請求項5】 入力データに対して第1の演算ステップ
    により第1のデータ変換処理を複数回行う暗号処理方法
    において、 前記第1の演算ステップは、さらに第2のデータ変換処
    理を複数回行うループ処理ステップを有し、 前記ループ処理ステップは、 前記第2のデータ変換処理を行なう第2の演算ステップ
    と、 前記第2のデータ変換処理のタイミングを制御するよう
    に処理ループ上のデータを一時的に保持するデータ保持
    ステップと、 当該処理ループを終了させるか継続させるかを選択する
    選択ステップを有する暗号処理方法。
  6. 【請求項6】 前記第2の演算ステップは、 前記第2の演算ステップに入力されたデータを第1の分
    割データと第2の分割データに分けるデータ分割ステッ
    プと、 前記第1の分割データをデータ変換する第3の演算ステ
    ップと、 前記第3の演算ステップの出力データと前記第2の分割
    データをビット毎に排他的論理和演算する排他的論理和
    ステップと、 前記排他的論理和ステップの出力データと前記第2の分
    割データを結合するデータ結合ステップを有することを
    特徴とする請求項5記載の暗号処理方法。
JP25506599A 1999-09-09 1999-09-09 暗号処理装置 Expired - Lifetime JP3992888B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25506599A JP3992888B2 (ja) 1999-09-09 1999-09-09 暗号処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25506599A JP3992888B2 (ja) 1999-09-09 1999-09-09 暗号処理装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP09141328A Division JP3088337B2 (ja) 1997-05-30 1997-05-30 暗号処理装置、icカード及び暗号処理方法

Publications (2)

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

Family

ID=17273663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25506599A Expired - Lifetime JP3992888B2 (ja) 1999-09-09 1999-09-09 暗号処理装置

Country Status (1)

Country Link
JP (1) JP3992888B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008148352A (ja) * 2001-05-31 2008-06-26 Qualcomm Inc Kasumiラウンド回路

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008148352A (ja) * 2001-05-31 2008-06-26 Qualcomm Inc Kasumiラウンド回路
JP2008158542A (ja) * 2001-05-31 2008-07-10 Qualcomm Inc Kasumi暗号化を行う装置および方法
JP2008158541A (ja) * 2001-05-31 2008-07-10 Qualcomm Inc Kasumi暗号化を行う装置および方法

Also Published As

Publication number Publication date
JP3992888B2 (ja) 2007-10-17

Similar Documents

Publication Publication Date Title
CA2244337C (en) Encryption processor with shared memory interconnect
US20110255689A1 (en) Multiple-mode cryptographic module usable with memory controllers
JP3088337B2 (ja) 暗号処理装置、icカード及び暗号処理方法
Kitsos et al. Hardware implementation of Bluetooth security
US20100322411A1 (en) Encrypton Processor
US8515059B2 (en) Cryptographic processor with dynamic update of encryption state
KR100800468B1 (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
JP2010245881A (ja) 暗号処理装置
US6873707B1 (en) Hardware-based encryption/decryption employing cycle stealing
US7257229B1 (en) Apparatus and method for key scheduling
US7006634B1 (en) Hardware-based encryption/decryption employing dual ported key storage
Buell Modern symmetric ciphers—Des and Aes
KR101658397B1 (ko) Present를 이용한 경량암호 장치
KR20050092698A (ko) 라인달 블록 암호의 서브바이트 함수를 실행하는 장치 및방법과 데이터 암호화 및 해독 장치
JP2000081840A (ja) 暗号処理装置、icカ―ド及び暗号処理方法
CN112134691B (zh) 一种部件可重复的nlcs分组密码实现方法、装置及介质
KR100667189B1 (ko) 휴대 기기를 위한 aes 암호화 장치 및 방법
JP2003084668A (ja) 乱数生成装置、乱数生成方法及び乱数生成プログラム
JP2000075785A (ja) 高速暗号処理回路および処理方法
KR100494560B1 (ko) Rijndael암호를 이용한 블록 데이터 실시간암호복호화 장치 및 방법
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
KR20180021473A (ko) 암호화 장치
CN115834028A (zh) 芯片及消息认证码的生成方法
KR20040000925A (ko) 다양한 인터페이스를 갖는 고속 블럭 암호 장치 및 그구동 방법

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