JP2002072879A - ハッシュ関数処理装置 - Google Patents

ハッシュ関数処理装置

Info

Publication number
JP2002072879A
JP2002072879A JP2000257945A JP2000257945A JP2002072879A JP 2002072879 A JP2002072879 A JP 2002072879A JP 2000257945 A JP2000257945 A JP 2000257945A JP 2000257945 A JP2000257945 A JP 2000257945A JP 2002072879 A JP2002072879 A JP 2002072879A
Authority
JP
Japan
Prior art keywords
unit
data
period
processing
cycle
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.)
Withdrawn
Application number
JP2000257945A
Other languages
English (en)
Inventor
Nobusato Kadowaki
信諭 門脇
Satoshi Hyodo
聡 兵頭
Hiroshige Nakatani
浩茂 中谷
Yasukazu Miyazaki
靖一 宮崎
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.)
Panasonic Electric Works Co Ltd
Original Assignee
Matsushita Electric Works Ltd
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 Matsushita Electric Works Ltd filed Critical Matsushita Electric Works Ltd
Priority to JP2000257945A priority Critical patent/JP2002072879A/ja
Publication of JP2002072879A publication Critical patent/JP2002072879A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 オーバーラップ処理を採用して高速処理を実
現する。 【解決手段】 入力データ部11、ADD部12及び設
定数部13の処理はフィードバックデータX′を用いな
いから先行して求められる。期間4′のローテーション
処理部20と演算器4とによる処理の期間に、予め入力
データ部11から1サイクル先行した32ビット分のデ
ータを読み出してレジスタR1に保管し、かつ設定数部
13から1サイクル先行した32ビット分の入力データ
を取り出してレジスタR2に保管する。レジスタR1,
R2の各データをフィードバックデータX′のレジスタ
R3からの出力と同期して演算器2に出力するようにす
る。レジスタRの段数を5段から4段に減らすことがで
き、1サイクルの処理時間をその分短縮できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報通信のデータ
暗号化等のセキュリティーを確保する技術に関し特にメ
ッセージを逆変換困難な値であるハッシュ値に変換する
技術に関する。
【0002】
【従来の技術】従来、ハッシュ関数を用いた処理はソフ
トウエアによって処理されている。現状のハッシュ関数
としては、最新方式である“MD5”が採用されてお
り、この方式自体は、「R.Rivest,“The MD5 Message D
igest Algorithm”,IETF RFC1321(1992)」に開示され
ている。すなわち、メッセージ等の入力情報を所定長さ
例えば512ビット毎に区分し、各区分情報をハッシュ
関数に導いて換字、転置処理等を繰り返すことによって
順次中間出力を得ると共に、この中間出力をフィードバ
ックさせて次の区分情報に対し換字、転置処理を実行
し、所定回数の換字、転置処理の後に得られた128ビ
ットのデータを、求めるハッシュ値とするものである。
【0003】
【発明が解決しようとする課題】各演算処理部の結果を
一旦保持するレジスタを設けてハッシュ関数処理を行う
態様では、より高速処理を実現するための検討が望まれ
る。また、ハッシュ関数処理装置におけるフィードバッ
クデータ処理部分を文字通りに実現すると、データ選択
用にセレクタを含む回路を構成する必要があり、このセ
レクタによる選択処理がデータの高速伝達の妨げとな
る。さらに、ハッシュ関数処理は、一連の演算に演算器
を有しているが、これは回路装置の肥大化を招来してい
る。
【0004】本発明は、上記に鑑みてなされたもので、
レジスタを設けてハッシュ関数処理を行う態様において
オーバーラップ処理を採用して高速処理を実現するハッ
シュ関数処理装置を提供することを目的とするものであ
る。
【0005】また、回路の共有化を実現することで構成
の簡素化を可能にするハッシュ関数処理装置を提供する
ことを目的とするものである。
【0006】
【課題を解決するための手段】請求項1記載のハッシュ
関数処理装置は、複数段の演算器によって処理される処
理データの流れ方向にレジスタを介設させて複数段に分
割した回路部を構成すると共に、少なくとも、ローテー
ション処理部による入力データに対するビット入れ替え
処理及びローテーション処理部からの出力データと1サ
イクル前のフィードバックデータとを用いて演算器で演
算処理を施す期間に、次サイクルの入力データ及び設定
数部からの出力データに対する演算処理をオーバーラッ
プさせて行うようにしたことを特徴とするものである。
【0007】この構成によれば、ローテーション処理部
による入力データに対するビット入れ替え処理及びロー
テーション処理部からの出力データと1サイクル前のフ
ィードバックデータとを用いて演算器で演算処理を施す
期間に、次サイクルの入力データ及び設定数部からの出
力データに対する演算処理がオーバーラップして行われ
るので、次のローテーション処理部フィードバックデー
タを作成する演算器にける処理に同期したサイクルで演
算処理が行われる。このように処理を重複して行わせる
ことで処理段数が減り、処理時間が低減され、高速性が
得られる。
【0008】前記フィードバックデータを取り込む回路
がシフトレジスタで構成されていることが好ましい。ま
た、前記複数の演算器が異なる段において共有化されて
いるようにすることが好ましい。
【0009】
【発明の実施の形態】図1はハッシュ関数処理装置の基
本ユニットを示す回路図である。なお、回路各部の動作
の詳細に関しては、図2を用いて説明する。
【0010】先ず、図1において、ハッシュ関数処理装
置の各部間は32ビットのパラレルラインで接続されて
いる。演算器1〜4は2入力値を加算して出力する同一
構造を有する加算器で構成されている。入力データ部1
1はテキストデータやイメージデータ等の暗号化対象デ
ータの取り込み部分であって、512ビット毎にデータ
取り込みがなされると共に32ビットを単位として、後
述する処理のルールに従って読み出し可能にされてい
る。ADD12は加算回路で構成され、数値0〜63ま
でを出力する64進のアドレス指定用のカウンタであ
る。設定数部13はアドレス0〜63にそれぞれ32ビ
ットからなる所定のデータ(定数)が格納され、ADD
12から出力されるアドレスデータを受けて該当するア
ドレスから格納されている定数を出力するものである。
【0011】セレクタ14は初期値の設定、及びその後
の演算器4からのフィードバックデータX′の振り分け
を行うためのものである(例えば後述する図9(B)に
示す)。X部15、Y部16、Z部17、K部18は各
32ビットのデータを一時的に格納するためのバッファ
で、初期値の設定後においては、フィードバックデータ
X′がX部15に取り込まれ、次周期(後述するサイク
ル)に移行する毎にY部16、Z部17、K部18に順
次転送(シフト)されるようになっており、X部15、
Y部16、Z部17及びK部18の4個で128ビット
分の中間ハッシュ値を一時的に格納するものである。
【0012】演算部19はX部15、Y部16、Z部1
7から入力される32ビットのデータに対して処理のル
ールに従った論理和、論理積等の演算を実行するもので
ある。ローテンション部20は32ビットデータのビッ
ト入れ替えを行うためのものである。
【0013】図2に示すように本ハッシュ関数処理装置
は、各部に対するデータ入出力タイミングの指示、入出
力のためのアドレス管理と指示、及び繰り返し処理の回
数(フィードバック回数)等を管理する機能を有する。
フィードバック回数は、本実施形態では64回(以下、
各回を「サイクル」という)に設定されている。
【0014】入力データ部11は512ビット毎の入力
データを32ビット単位でアドレス0〜Fの16ブロッ
クに区分して読み出し可能に記憶するものである。入力
データの長さは512ビットに限定されず、それ以上で
あってもよく、その場合には、順次512ビット毎に入
力データ部11に取り込まれる。制御部30は入力デー
タ部11の各アドレスからのデータ読み出しをサイクル
毎に変更するようにアドレス指定を行う。すなわち、1
〜16サイクルでは、アドレス0から開始し、1アドレ
ス毎にアドレスFまで指定し、17〜32サイクルで
は、アドレス1,6,B,…のように5個置きに16回
分指定し、33〜48サイクルではアドレス5,8,
B,…のように3個置きに16回分指定し、49〜64
サイクルではアドレス0,7,E,…のように7個置き
に16回分指定するようにアドレス指定を行う。
【0015】演算部19はX部15、Y部16、Z部1
7からのデータに対して、サイクルに応じて異なる論理
演算を実行する。制御部30はサイクルに応じた論理演
算を行わせるように演算部19を制御する。すなわち、
X部15、Y部16、Z部17からのデータをX、Y、
Zとするとき、1〜16サイクルでは、「(X andY)
or(notX and Z)」を、17〜32サイクルでは
「(X and Z)or(notZ and Y)」を、33〜48
サイクルでは「X xor YX xor Z」を、49〜64サ
イクルでは「Y xor(notZ or X)」を行う。なお、
この論理処理は各データのビット毎に行われる。また、
「xor」は排他的論理和を計算する演算子である。
【0016】ローテーション処理部20は演算器3から
の入力データに対し制御部30からの指示によってサイ
クルに対応させたビット入れ替え処理を実行するもので
ある。例えば1〜16サイクルにおいては、1,5,
9,13サイクル目に対し、0〜24ビットまでのデー
タ列と25〜31ビットまでのデータ列とを相互に入れ
替える。すなわち25〜31ビットまでのデータ列が新
たに0〜7ビット目までのデータとなり、0〜24ビッ
トまでのデータ列が新たに8〜31ビット目までのデー
タとなる。
【0017】初期値A部21〜初期値D部24はそれぞ
れ所定の32ビットデータが設定されているものであ
る。1サイクル目にはX部15、Y部16、Z部17及
びK部18にはデータが存在していないので、このまま
では好適なハッシュ値が得られないことから、制御部3
0によってこれらX部15、Y部16、Z部17及びK
部18に初期値データをセットさせる。演算器25〜2
8は最終サイクルで得られたデータにそれぞれ初期値A
部21〜初期値D部24からの値データA、B、C、D
を加算させて最終のハッシュ値として出力させるもので
ある。この出力ハッシュ値は図略のメモリに、あるいは
ネットワークを介して所望のメモリ部に導かれて記憶さ
れ、必要時に読み出されて照合用等として用いられる。
【0018】ここで、本ハッシュ関数処理装置の基本的
な動作を説明する。制御部30は入力データ部11への
512ビット分のデータの取り込みを確認すると、1サ
イクル目の処理としてADD部12に値0を発生させて
設定数部12のアドレス0から32ビットのデータを出
力させると共に、入力データ部11からアドレス0の3
2ビットのデータを出力させる。それぞれの出力データ
は演算器2で加算され、次いでこの加算データとK部1
8の値データKとが演算器1で加算されると共に、X部
15、Y部16、Z部17部の各値データX、Y、Zに
演算部19での演算された結果のデータが演算器3で加
算される。なお、図2に示す演算器1,3の入力データ
のラインが、図1に示すものと異なっているが、処理結
果自体は同一となるようになっている。
【0019】演算器3の出力はローテーション処理部2
0で、サイクル目に対応した所定のビット入れ替え処理
を施された後、演算器4に入力される。演算器4はロー
テーション処理部20からの出力データとX部15の値
データXとの加算を行って、中間ハッシュ値X′として
前記加算値がX部15にフィードバックされ、ここか
ら、2番目のサイクル処理がスタートする。なお、2番
目のサイクル以降においては初期値A部21〜初期値D
部24からの各初期値をX部15〜K部18にセットす
る必要はないので、制御部30はこのための必要な措置
を施す。
【0020】制御部30はかかるサイクル処理を64回
繰り返し行うと、64回目は初期値A部21〜初期値D
部24の値データを64サイクル目の中間ハッシュ値
X′に対応させて加算処理し、最終の128ビット(=
32ビット×4)のハッシュ値を得る。
【0021】次に、図3は、図1の基本ユニットをレジ
スタで時分割した回路図を示している。図3において、
レジスタRはそれぞれ1ビットのデータバッファ用で、
入力データ32ビット分を格納するべくパラレル方向に
32ビット分の容量を有している。時分割は各部の処理
速度及び経時方向へのデータの流れを考慮して期間1〜
期間5の5区分に時分割され、それらには所定の時間幅
が設定されている。各期間には処理結果をバッファ的に
格納するための上述したレジスタRが介設されている。
なお、この図以降においては制御部30は特に図示して
いない。
【0022】期間1はADD12及びセレクタ14によ
る処理の期間を、期間2は入力データ部11、設定部1
3からのデータ読み出し処理、X部15〜K部18から
のデータ読み出し処理、及び演算部19での演算期間
を、期間3は演算器1,2による演算期間を、期間4は
演算器3による演算期間を、期間5はローテーション2
0によるビット入れ替え及び演算器4による演算期間を
それぞれ設定している。このように各処理の間にレジス
タRを5段構成で介設することで、それぞれの期間にお
いて当該時間内に処理されたデータを一時的に格納する
ことでデータ処理のタイミング調整が容易となるように
している。
【0023】図4は、図3の回路構成をベースにしてオ
ーバーラップ処理を実現する回路構成図である。演算器
1,3の関係は図2の回路と同一構成となっている。
【0024】図4に示すように、入力データ部11、A
DD部12及び設定数部13の処理は、フィードバック
データX′を用いないから、先行して求めることが可能
である。そこで、オーバーラップ期間4′すなわちロー
テーション処理部20と演算器4とによる処理の期間を
利用して、予め入力データ部11から1サイクル先行し
たアドレスの32ビット分のデータを読み出してレジス
タR1に保管し、かつADD部12からの次のアドレス
の指定により設定数部13から32ビット分の入力デー
タを取り出してレジスタR2に保管するようにしてお
く。そしてレジスタR1,R2に保管された各データを
フィードバックデータX′のレジスタR3からの出力と
同期(期間1の開始時点)して演算器2に出力するよう
にする。このようにすれば、期間1がセレクタ14と演
算器2の処理期間に、期間2がX部15〜K部18及び
演算部19と演算器1の処理期間に、期間3が演算器3
の処理期間に、期間4が上述の入力データ部11、AD
D部11、設定部13及びローテーション処理部20と
演算器4の処理期間というように、期間設定ができる。
この結果、レジスタRの段数を図3の5段から4段に減
らすことができるので、1サイクルの処理時間をその分
短縮することができる。
【0025】図5は、図3の回路構成において、レジス
タの段数を1段低減した時分割の例を示す回路構成図で
ある。図5は図3に示す期間2と期間3との間のレジス
タRを除いて期間2としたものである。すなわち、本回
路において特に処理時間が問題となるのは演算器であ
る。そこで各段毎に演算器1回の演算が実行されるよう
に各段を設定し、レジスタRを設けて演算速度を向上さ
せている。図5に示す期間では、演算器1,2の前処理
として、X部15〜K部18及び演算部19の処理が含
まれているが、これらによる処理は演算器1,2に比し
て高速であるため、実質的には演算器1,2の処理速度
に依存することとなり、レジスタRに対する入出力周期
をこの期間2に要する時間を考慮して設計すれば、期間
2を1段としてまとめて設計することが可能となる。こ
の場合も、レジスタの段数を、図3の5段から4段に減
らすことができ、その分1サイクルの処理時間を低減で
きる。
【0026】図6は、オーバーラップを更に進めてレジ
スタを3段にした回路構成図である。なお、演算器1,
3の関係は図2の回路と同一構成となっている。
【0027】図6は、期間2における演算器3に入力さ
れる演算器1からのデータが期間1で準備できるように
したものである。すなわち期間2で現サイクルにおける
演算器3による演算を実行させるためには、期間1で現
サイクルで演算器1の演算を行わせる必要がある。通常
では演算器1の演算内容はフィードバックデータX′の
うち、K部18の値に依存する(図5等参照)が、図6
の回路では、演算器1は期間1の時点で既に現サイクル
の演算をする必要があるが、この期間1では新たな値デ
ータKが得られていないため、期間1の直前の期間3′
で1サイクル分先行した入力データ、すなわちZ部17
の値データZを用いて実質的に1サイクル分先行したデ
ータを取得するようにしている。すなわち本回路では中
間ハッシュ値を得る段階ではK部18は不要となる。
【0028】そこで、フィードバックデータX′が得ら
れる前の時点3′においてレジスタを介在させることな
く、期間1において値データZを演算器1に取り込むよ
うにすれば、結果的に期間3′の時点で1サイクル先行
したデータが、期間1においてタイミング的に合ったサ
イクルで演算器1に入力されたこととなる。さらに、こ
の期間1の1サイクル前の期間1′(図中、期間2′の
左方。図には表されていない)にADD部12から次の
サイクルとなるアドレスを設定し、期間2′において設
定数部13から次のサイクルの設定数を出力すると共に
入力データ部11から次のサイクルの入力データを出力
するようにすることで、期間3′において演算器2で演
算し、レジスタR11,R12に取り込んでおくこと
で、新たなサイクル、すなわち次のサイクルとなる期間
1において演算器1に同期したサイクルの演算器2の出
力データを提供することが可能となる。この回路構成で
は、レジスタの段数を、図3の5段から3段に減らすこ
とができ、その分1サイクルの処理時間をさらに低減で
きる。
【0029】図7は、1サイクルを2分割した時分割例
を示す回路構成図で、図8は、図7を用いてオーバーラ
ップした回路を構成した回路図である。
【0030】この回路構成図は、期間1では、入力デー
タ部11、設定数部13、K部18及び演算器1を含む
と共に、X部15〜Z部17、演算部19及び演算器2
による処理が実行される。一方、期間2では、演算器
4、ADD部12を含むと共にローテーション処理部2
0及び演算器3による処理が実行される。この構成によ
れば、期間1は演算器1の演算時間と演算器2の演算時
間とを加えた時間を元にして設定すればよい。なお、本
回路構成においては、X部15〜K部18がそれぞれ独
立して設けられており、X部15が次サイクルでのY部
16へ、Y部16が次サイクルでのZ部17へ、Z部1
7が次サイクルでのK部18へ接続されて、それぞれ1
サイクル分だけデータが進められるように設計されてい
る。この回路構成では、レジスタの段数を3段に、時分
割数を2に減らすことができ、その分1サイクルの処理
時間をさらに低減できる。
【0031】図8を用いて動作を説明する。今、期間
1′と期間2′とで演算器1,2,3によって現サイク
ルでの演算処理が実行されるとして説明する。期間1′
の直前の期間(図8の期間1′の左方、図に表れていな
い)において、ADD部12から出力された現サイクル
より1サイクル分だけ先行したアドレスを受けて、期間
1′において設定数部13から1サイクル分だけ先行し
た設定数が出力され、一旦レジスタR21に取り込まれ
ると共に入力データ部から1サイクル分だけ先行した入
力データが出力されてレジスタR22に取り込まれる。
さらに、期間2′において入力データ部11及び設定数
部13からの1サイクル先行した出力データがレジスタ
R21、R22から出力されて演算器4で処理され、レ
ジスタR23に格納される。一方、この期間1′、期間
2′では、前述したように現サイクルでの処理も実行さ
れており、現サイクルにおけるフィードバックデータ
X′が期間2′においてX部15に格納されると共に、
その他のデータが対応するレジスタRに取り込まれる。
これらのデータは次サイクル用として用いられるもので
ある。
【0032】続いて、期間1、すなわち次サイクルに移
行すると、前記各データがX部15〜K部18に取り込
まれ、このK部18の値データK及び演算器4の出力デ
ータがレジスタR23から出力されて演算器1に入力さ
れ、演算が実行される。一方、この期間1ではX部15
〜Z部17の各データを用いて演算部19での演算が実
行され、この演算部18での演算結果と演算器1の演算
結果とが演算器2に入力されて演算される。そして、期
間2において、次サイクルでのローテーション処理部2
0及び演算器3による各処理が実行される。
【0033】図9は、中間ハッシュ値のフィードバック
先に関する部分の回路図で、(A)は改良した回路、
(B)は先の図に示すセレクタ14を用いた回路であ
る。既に説明した各回路構成は、(A)(B)いずれの
タイプも適用可能である。
【0034】(B)に示すように、中間ハッシュ値であ
るフィードバックデータX′をセレクタ141によりA
部41〜D部44に振り分け、さらにA部41〜D部4
4からの各データをセレクタ142によりX部15〜K
部18に振り分けるようにしている。この方式によれ
ば、回路が冗長になり、高速性にも向かない。そこで、
フィードバックデータX′と値データX〜Zとの関連性
から、(A)の回路に示すようにA部41〜D部44を
シフトレジスタで構成し、フィードバックデータX′を
A部41に入力し、サイクル毎にB部42からD部44
へデータを32ビット毎に順次シフトさせると共に、A
部41〜D部44からの各データをX部15〜K部18
へそれぞれレジスタRを経て転送させるようにした。こ
の構成によれば、セレクタ141,142を用いないた
め、高速性に優れる。
【0035】図10は、演算器の共有化を実現した回路
構成図である。
【0036】この回路では5区分に時分割されており、
期間1では1サイクル先行したデータを演算する演算器
1、現サイクルでの演算を行う演算部19による処理
が、期間2では期間1で得られた演算器1と演算部19
の両出力データを加算する演算器1による処理が、期間
3ではローテーション処理部20及び演算器2により中
間ハッシュ値を得る演算が、期間4では中間ハッシュ値
を演算器2を経てフィードバックデータとする処理が、
また期間4及び期間5では出力データ部11、設定数部
13及び両データを加算する演算器1による処理がそれ
ぞれ実行される。
【0037】中間ハッシュ値を得ると共に、フィードバ
ックさせる処理は以上の回路構成で足りる。このよう
に、従来4個の演算器1〜4が用いられていたものを演
算器1,2のように2個の演算器で実現している。
【0038】一方、ハッシュ関数処理は、64回目のサ
イクルの最終ハッシュ値を出力するための回路を付設す
る必要があり、図10にはこの回路構成が付加されてい
る。すなわち、最終ハッシュ値は、図2にも示したよう
に所定の設定値を加算した値とする必要がある。そこ
で、期間1〜期間5の各期間に着目し、個々の期間にお
いて使用していない方の演算器を当該期間で用いる(例
えばある期間において演算器1が使用されていれば、演
算器2を用いる)ようにして最終ハッシュ値が得られる
ようにすれば、最終的には演算器は2個で済むこととな
る。
【0039】図10において、期間2は演算器1のみが
用いられているので、この期間2で演算器2を用いて
(演算器2−1で示す)、1サイクル前の値である値デ
ータZ(現サイクル換算で値データKに対応)に設定値
Aを加算することで新初期値Aを得、これを出力すると
共にA部に記憶する。
【0040】また、期間3は演算器2のみが用いられて
いるので、この期間3で演算器1を用いて(演算器1−
1という)、値データXに設定値Cを加算することで新
初期値Cを得、これを出力すると共にC部に記憶する。
さらに、期間4は演算器2のみが用いられているので、
この期間4で演算器1を用いて(演算器1−2で示
す)、値データYに設定値Dを加算することで新初期値
Dを得、これを出力すると共にD部に記憶する。なお、
期間4における演算器2は、設定値Bを加算した新設定
値Bを得、これを出力できるようになっている。
【0041】期間2における演算器2−1、期間4にお
ける演算器2と演算器1−2、期間3における1−1か
らの新初期値A〜Dが最終のハッシュ値とされると共
に、これらの値B〜Dは次の512ビットのX〜Zの初
期値データとされる。
【0042】この回路構成によれば、各期間において最
大で2個の演算器を用いるようにしたので、演算器は2
個あれば十分となる。なお、演算器の切換え制御及びこ
れに伴う図略の入出ラインの接続関係は、図2に示す制
御部30によって期間1〜5の管理及びサイクルの管理
を行いながら適宜切換えられるようにされている。この
ように演算器2個だけでハッシュ関数処理装置を構成し
たので、回路構成がその分簡素化される。
【0043】なお、演算器の個数は2個を使い分ける態
様に限らず、3個すなわち従来に対して1個だけ減らす
ようにした構成を採用してもよい。
【0044】
【発明の効果】請求項1の発明によれば、処理を重複し
て行わせることで処理段数を減らし、処理時間を低減す
なわち高速性を有するハッシュ関数処理装置を提供でき
る。
【0045】請求項2の発明によれば、回路が単純化で
きると共に処理の高速化が図れる。
【0046】請求項3の発明によれば、演算器を共有化
することで、その個数を低減でき、回路の簡素化が図れ
る。
【図面の簡単な説明】
【図1】ハッシュ関数処理装置の基本ユニットを示す回
路図である。
【図2】ハッシュ関数処理の詳細な回路図である。
【図3】図1の基本ユニットをレジスタで時分割した回
路図である。
【図4】図3の回路構成をベースにしてオーバーラップ
処理を実現する回路構成図である。
【図5】図3の回路構成において、レジスタの段数を1
段低減した時分割の例を示す回路構成図である。
【図6】オーバーラップを更に進めてレジスタを3段に
した回路構成図である。
【図7】1サイクルを2分割した時分割例を示す回路構
成図である。
【図8】図7を用いてオーバーラップした回路を構成し
た回路図である。
【図9】中間ハッシュ値のフィードバック先に関する部
分の回路図で、(A)は改良した回路、(B)は先の図
に示すセレクタを用いた回路である。
【図10】演算器の共有化を実現した回路構成図であ
る。
【符号の説明】
1〜4、1−1,1−2,2−1 演算器 11 入力データ部 12 ADD部 13 設定数部 14 セレクタ 15 X部 16 Y部 17 Z部 18 K部 19 演算部 20 ローテーション処理部 R レジスタ 30 制御部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 中谷 浩茂 大阪府門真市大字門真1048番地 松下電工 株式会社内 (72)発明者 宮崎 靖一 大阪府門真市大字門真1048番地 松下電工 株式会社内 Fターム(参考) 5B056 BB00 FF02 5J104 AA18 NA12 NA23

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数段の演算器によって処理される処理
    データの流れ方向にレジスタを介設させて複数段に分割
    した回路部を構成すると共に、少なくとも、ローテーシ
    ョン処理部による入力データに対するビット入れ替え処
    理及びローテーション処理部からの出力データと1サイ
    クル前のフィードバックデータとを用いて演算器で演算
    処理を施す期間に、次サイクルの入力データ及び設定数
    部からの出力データに対する演算処理をオーバーラップ
    させて行うようにしたことを特徴とするハッシュ関数処
    理装置。
  2. 【請求項2】 前記フィードバックデータを取り込む回
    路をシフトレジスタで構成したことを特徴とする請求項
    1記載のハッシュ関数処理装置。
  3. 【請求項3】 前記複数の演算器が異なる段において共
    有化されてなることを特徴とする請求項1記載のハッシ
    ュ関数処理装置。
JP2000257945A 2000-08-28 2000-08-28 ハッシュ関数処理装置 Withdrawn JP2002072879A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000257945A JP2002072879A (ja) 2000-08-28 2000-08-28 ハッシュ関数処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000257945A JP2002072879A (ja) 2000-08-28 2000-08-28 ハッシュ関数処理装置

Publications (1)

Publication Number Publication Date
JP2002072879A true JP2002072879A (ja) 2002-03-12

Family

ID=18746323

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000257945A Withdrawn JP2002072879A (ja) 2000-08-28 2000-08-28 ハッシュ関数処理装置

Country Status (1)

Country Link
JP (1) JP2002072879A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208400A (ja) * 2004-01-23 2005-08-04 Mitsubishi Electric Corp ハッシュ値算出装置及び演算装置
CN101178861B (zh) * 2006-11-08 2011-05-25 冲电气工业株式会社 Sha运算方法及sha运算装置
JP2011133916A (ja) * 2011-04-07 2011-07-07 Mitsubishi Electric Corp 演算装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208400A (ja) * 2004-01-23 2005-08-04 Mitsubishi Electric Corp ハッシュ値算出装置及び演算装置
CN101178861B (zh) * 2006-11-08 2011-05-25 冲电气工业株式会社 Sha运算方法及sha运算装置
JP2011133916A (ja) * 2011-04-07 2011-07-07 Mitsubishi Electric Corp 演算装置

Similar Documents

Publication Publication Date Title
AU767323B2 (en) Block encryption device using auxiliary conversion
JP5532560B2 (ja) データ変換装置、およびデータ変換方法、並びにプログラム
TW514846B (en) Encryption apparatus using data encryption standard algorithm
JP2002040933A (ja) データ暗号化標準アルゴリズムを利用した暗号化装置
KR20010111120A (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JP2010049126A (ja) データ変換装置、およびデータ変換方法、並びにプログラム
JP2002040932A (ja) データ暗号化標準アルゴリズムを利用する暗号化装置
US7376685B2 (en) Apparatus and method for computing SHA-1hash function
JP2002072879A (ja) ハッシュ関数処理装置
JP2950485B2 (ja) ストリーム暗号処理装置
KR20030051111A (ko) AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
JP5182295B2 (ja) 暗号化装置及び暗号処理方法
Pyrgas et al. A very compact architecture of CLEFIA block cipher for secure IoT systems
JP2010507813A (ja) 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置
KR20040108311A (ko) 라인달 블록 암호 장치와 그 암호화 및 복호화 방법
JP2000075785A (ja) 高速暗号処理回路および処理方法
KR102282363B1 (ko) 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
JP2009098321A (ja) 情報処理装置
KR100316024B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호화 장치
JPH1152850A (ja) 暗号変換方法および装置
JP2834450B2 (ja) 暗号装置
KR100788902B1 (ko) 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법
KR102348802B1 (ko) Aes 암호화 및 복호화 회로
KR100377173B1 (ko) 데이터 암호화 표준 알고리즘을 이용한 암호화 장치
JP3736731B2 (ja) 置換処理装置およびそのプログラム記録媒体

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20071106