JP3709760B2 - Hash device - Google Patents
Hash device Download PDFInfo
- Publication number
- JP3709760B2 JP3709760B2 JP2000089518A JP2000089518A JP3709760B2 JP 3709760 B2 JP3709760 B2 JP 3709760B2 JP 2000089518 A JP2000089518 A JP 2000089518A JP 2000089518 A JP2000089518 A JP 2000089518A JP 3709760 B2 JP3709760 B2 JP 3709760B2
- Authority
- JP
- Japan
- Prior art keywords
- stage
- adder
- register
- circuit block
- original data
- 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 - Fee Related
Links
Images
Description
【0001】
【発明の属する技術分野】
本発明はネットワークセキュリティを確保する技術に関し、特に元のデータを不可逆なハッシュ値に変換するハッシュ関数SHAをハードウェアで実現するハッシュ装置に関する。
【0002】
【従来の技術】
従来、ハッシュ関数の一つであるSHAアルゴリズムに関してはソフトウェアにより実現されている。以下、SHAアルゴリズムについて説明する。32bit長の変数A,B,C,D,Eの初期値Ainit,Binit,Cinit,Dinit,Dinit,Einitを16進数で次のとおり設定する。
Ainit=0x67452301
Binit=0xEFCDAB89
Cinit=0x98BADCFE
Dinit=0x10325476
Einit=0xC3D2E1F0
【0003】
512bitずつn個に分割された元データをM1,M2,…,Mnとする。i=1〜nについて以下の処理を繰り返す。
(イ)元データMiを32bitずつ16に分割し、左からW1,W2,…,W16とおく。
(ロ)A=Ainit、B=Binit、C=Cinit、D=Dinit、E=Einitとおく。
【0004】
(ハ)t=1,2,…,79,80について以下の処理を繰り返す。
TEMP=S(5,A)+f(B,C,D)+E+W+K
ここで、TEMPは一時変数、S(m,x)は32bit変数xの上位mbitを下位側へ巡回シフトしたものであり、f(B,C,D)、Kは次式で与えられる。
・1≦t≦20のとき、
f(B,C,D)=(B AND C)OR((NOT B)AND D)
K=0x5A827999
・21≦t≦40のとき、
f(B,C,D)=B XOR C XOR D
K=0x6ED9EBA1
・41≦t≦60のとき、
f(B,C,D)=(B AND C)OR(B AND D)OR(C AND D)
K=0x8F1BBCDC
・61≦t≦80のとき、
f(B,C,D)=B XOR C XOR D
K=0xCA62C1D6
【0005】
また、元データWは次式で与えられる。
・1≦t≦16のとき、
W=Wt
・17≦t≦80では、
W=S(1,Wt-3 XOR Wt-8 XOR Wt-14 XOR Wt-16)とする。
上式により一時変数TEMPを求めた後、E=D、D=C、C=S(30,B)、B=A、A=TEMPとする。
【0006】
(ニ)最後に、各変数A,B,C,D,Eに初期値を加算する。すなわち、
A=Ainit+A
B=Binit+B
C=Cinit+C
D=Dinit+D
E=Einit+E
とする。これによりハッシュ関数の値(32×5=160bit)が演算される。この160bitのデータは元のメッセージを要約したメッセージダイジェスト(要約関数)として利用される。
【0007】
【発明が解決しようとする課題】
ハッシュ関数を用いるユーザは、ソフトウェアで実現されるハッシュ関数SHAよりもハードウェアで実現されるハッシュ関数SHAに、より大きな信頼を持っており、ハードウェアによる高速かつ小面積のハッシュ装置の早期実現が望まれている。
【0008】
【課題を解決するための手段】
請求項1の発明によれば、構造的に周期性のあるSHAアルゴリズムの1周期分の処理について、同時に用いる加算器の最大数を2個に制限することで、小さい回路面積で高速にハッシュ値を生成できる。すなわち、請求項1の発明は、元のデータからSHAアルゴリズムを用いて160bitのハッシュ値を求めるための第1ないし第5レジスタA〜Eを備えるハッシュ装置であって、図1に示すように、第1レジスタAの上位5ビットを下位側へ巡回シフトする第1のローテーション処理部4と、第2、第3、第4レジスタB,C,Dに基づく論理演算f(B,C,D)を実行する論理演算処理部5と、第1のローテーション処理部4の出力と第5レジスタEの値を加算する第1加算器6と、ハッシュ値を求める元のデータを分割または演算処理したデータWを設定する元データ設定処理部7と、所定の定数Kを設定する定数設定処理部8とを含んで構成される第1ステージと、第1ステージの論理演算処理部5と第1加算器6と元データ設定処理部7と定数設定処理部8の出力のうちいずれか2つを加算する第2加算器9と、残りの2つを加算する第3加算器10とを含んで構成される第2ステージと、第2ステージの第2加算器9と第3加算器10の出力を加算する第4加算器11を含んで構成される第3ステージと、第5、第4レジスタE,Dに第4、第3レジスタD,Cの値を代入し、第2レジスタBの上位30ビットを下位側へ巡回シフトする第2のローテーション処理部12の出力を第3レジスタCに代入し、第2レジスタBに第1レジスタAの値を代入し、第3ステージの第4加算器11の出力を第1レジスタAに代入する処理を含む第4ステージとを含む回路ブロックを図2に示すように80段縦続接続し、1段目の回路ブロックの第1ないし第5レジスタA〜Eに第1ないし第5の初期値Ainit〜Einitを設定すると共に、最終段の回路ブロックの第1ないし第5レジスタA〜Eの出力に前記第1ないし第5の初期値Ainit〜Einitをそれぞれ加算する加算器を接続して成ることを特徴とするものである。なお、図2の構成では、最終段の回路ブロックの第1ないし第5レジスタA〜Eの出力に第1ないし第5の初期値Ainit〜Einitをそれぞれ加算する加算器についても、同時に用いる加算器の最大数を2個に制限しており、A=Ainit+A、B=Binit+Bを1ステージ、C=Cinit+C、D=Dinit+Dを次の1ステージ、E=Einit+Eをさらに次の1ステージで実行している。したがって、後述のように、本発明のハッシュ装置に具備すべき加算器の数は2個であり、回路面積を小さくできるものである。
【0009】
請求項2の発明によれば、構造的に周期性のあるSHAアルゴリズムのうち唯一周期性が乱れる最終段の処理についても構造的な周期性を維持するために、請求項1において、80段目の回路を図4に示すような回路に置換することで、最小の回路面積でかつ高速にハッシュ値を生成できる。すなわち、請求項2の発明では、図4に示すように、請求項1の発明における79段目の回路ブロックの第4ステージに第4レジスタDの値と第5の初期値Einitを加算する第5加算器13を設け、80段目の回路ブロックの第1ステージに第3レジスタCの値と第4の初期値Dinitを加算する第6加算器14を設け、80段目の回路ブロックの第3ステージに第1レジスタAの値と第2の初期値Binitを加算する第7加算器15を設け、80段目の回路ブロックの第4ステージは第2レジスタBの上位30ビットを下位側へ巡回シフトする第2のローテーション処理部12の出力と第3の初期値Cinitを加算する第8加算器16と、80段目の回路ブロックの第3ステージの第4加算器11の出力と第1の初期値Ainitを加算する第9加算器17とを含むステージとし、80段目の回路ブロックにさらに第5ステージを設けて、該第5ステージでは、第5加算器13の出力を第5レジスタEに、第6加算器14の出力を第4レジスタDに、第8加算器16の出力を第3レジスタCに、第7加算器15の出力を第2レジスタBに、第9加算器17の出力を第1レジスタAにそれぞれ代入することにより、最終段の回路ブロックの第1ないし第5レジスタA〜Eの出力に第1ないし第5の初期値Ainit〜Einitをそれぞれ加算する処理を前記第5ないし第9加算器13〜17で行うことを特徴とするものである。このようにすれば、図5に示すように、最終段の回路ブロックの出力に図2に示すような5つの加算器を付加する必要がなくなる。
【0010】
請求項3の発明によれば、請求項1または2において、1段目から80段目の回路ブロックに対し、図6及び図7に示すように、1から80までカウントできるカウンタ1を割り当て、1段目から79段目の回路ブロックの各ステージに対しては1から4までカウントでき、80段目の回路ブロックの各ステージに対しては1から5までカウントできるカウンタ2を割り当て、さらに、図8に示すように、カウンタ1の1〜20、21〜39、41〜59、61〜80の値に対して1から4までカウントできるカウンタ3を割り当てたものであり、これにより、図1に示す回路ブロックの使い回しが可能となり、最小の回路面積でかつ高速にハッシュ値を生成できる。すなわち、請求項3の発明では、図2または図5に示される1段目から80段目の回路ブロックの全部または一部は、少なくとも2個の加算器を含む1ステージ分の演算回路を複数回反復して使用することにより構成され、前記演算回路が何段目の回路ブロックの処理をしているかをカウントする第1カウンタ1と、各回路ブロックを複数のステージに分割する第2カウンタ2と、第1カウンタの値から1ないし20段目、21ないし40段目、41ないし60段目、61ないし80段目を区別する第3カウンタ3を備え、各カウンタ1〜3の値により前記演算回路の処理内容を各段の回路ブロックの各ステージに応じて変更することを特徴とするものである。
【0011】
請求項4の発明によれば、SHAアルゴリズムで用いる80種類の代入値を16個のレジスタで生成、供給することで、小面積でハッシュ値を生成できる回路を実現できる。すなわち、請求項4の発明では、請求項1ないし3のいずれかにおいて、ハッシュ値を求める元のデータを分割または演算処理したデータWを設定する元データ設定処理部7は、図9に示すように、元の512bitのデータを16分割して格納して1ないし16段目の回路ブロックの元データとして出力する第1ないし第16の元データレジスタW1〜W16と、17ないし80段目の回路ブロックの元データとして第1、第3、第9及び第14の元データレジスタの値の排他的論理和を求めて出力する演算回路と、前記演算回路による演算後に第2ないし第16の元データレジスタW2〜W16の値を第1ないし第15の元データレジスタW1〜W15に順次代入すると共に、第16の元データレジスタW16には前記演算回路の出力の最上位1bitを下位側に巡回シフトしたデータを代入する手段を含んで構成されることを特徴とするものである。
【0012】
【発明の実施の形態】
上述のように、SHAアルゴリズムは類似した処理を80回繰り返す。このようなアルゴリズムの構造的な周期性に着目し、最小の面積で高速処理が可能なハッシュ関数SHAを実現するために、請求項1の発明では、図3に示すような回路ブロックを1ブロックとし、その中で1つのステージ内に加算器が2個以下になるように4つのステージに分割する。上記の回路ブロックを回路ブロックKとする。回路ブロックKの第1ステージでは、A,B,C,D,Eレジスタに格納されている初期値A,B,C,D,E(1段目のブロックではAinit,Binit,Cinit,Dinit,Einit、2段目のブロック以降は前ブロックで導出された値)により演算f(B,C,D)の実行およびそれにより得られた値(a)の保持、値Aの上位5bitを巡回シフトしたものと値Eとの加算の実行およびそれにより得られた値(b)の保持、あらかじめ与えられた16個の値(W1〜W16)をもとに行われる演算W[t]の実行およびそれにより得られた値(c)の保持、そしてブロックの番号により選択、入力される値K(その値を(d)とする)の保持を行う。
【0013】
回路ブロックKの第2ステージでは第1ステージで得られた結果から(a)+(b)の実行およびそれにより得られた値(e)の保持、(c)+(d)の実行およびそれにより得られた値(f)の保持を行う。
回路ブロックKの第3ステージでは第2ステージで得られた結果から(e)+(f)の実行およびそれにより得られた値(g)の保持を行う。
【0014】
回路ブロックKの第4ステージでは第3ステージで得られた結果(g)をAレジスタに、もとあったAレジスタの値をBレジスタに、もとあったBレジスタの値の上位30bitを下位側に巡回シフトしてCレジスタに、もとあったCレジスタの値をDレジスタに、もとあったDレジスタの値をEレジスタにそれぞれ格納する。これによりA,B,C,D,Eレジスタの値の更新が完了する。
【0015】
この回路ブロックKを80個直列に接続し、80段目のブロックにより出力されたA,B,C,D,Eに対して、A=Ainit+A,B=Binit+B,C=Cinit+C,D=Dinit+D,E=Einit+Eの演算を行う。以上の処理を行う回路全体の構成は図2のようになる。
【0016】
請求項2の発明では、図4に示すような回路ブロックを1ブロックとし、その中で1つのステージ内に加算器が2個以下になるように5つのステージに分割する。上記の回路ブロックを回路ブロックZとし、図5に示すように79段目の回路ブロックKの後に接続する。回路ブロックZでは1ステージに含まれる加算器の最大数を2個にするために、回路ブロックKの79段目のブロックの第4ステージにEinitと79段目のブロックの第4ステージのDレジスタを加算する加算器13を設け、80段目のブロックの第1ステージにDinitと79段目のブロックの第4ステージのCレジスタを加算する加算器14を設け、80段目のブロックの第3ステージにBinitと79段目のブロックの第4ステージのAレジスタを加算する加算器15を設け、80段目のブロックの第4ステージにCinitと79段目のブロックの第4ステージのBレジスタの上位30bitを下位側に巡回シフトしたものを加算する加算器16と、Ainitと80段目のブロックの第3ステージの加算器11の出力を加算する加算器17を設ける。
【0017】
これにより回路ブロックZは回路ブロックKをもとに第1ステージと第3ステージにそれぞれ1個、第4ステージに2個の加算器を追加した構造となるが、その他に1ブロック内で行われる値の導出や巡回シフト等の処理は他ブロックと同一のステージで実行されるため、回路ブロックZの構造について回路ブロックKとの類似性が保たれる。
【0018】
請求項3の発明によれば、図5の回路に対し、1から80までカウントできるカウンタ1、1から5までカウントできるカウンタ2、1から4までカウントできるカウンタ3を付加する。カウンタ1の1から79は回路ブロックKを、カウンタ1の80は回路ブロックZを示す。カウンタ1により必要な回路ブロックを選択する。カウンタ2の1から4は回路ブロックK、回路ブロックZのステージ1から4を示す。また、カウンタ2の5は回路ブロックZの第5ステージを示す。回路ブロックK、回路ブロックZにおいて、各ステージに現れる加算器の数は2個以下であり、カウンタ2を用いて処理中のステージを判定し、加算器の入出力端子の接続を変更することにより加算器の再利用が可能となり、これによりハッシュ装置に具備する加算器を2個にまで低減することができる。カウンタ3の1はカウンタ1の1〜20、2はカウンタ1の21〜40、3はカウンタ1の41〜60、4はカウンタ1の61〜80に対応する。
【0019】
回路ブロックK、回路ブロックZについて、回路構成は類似しているが、各ステージで代入する値、式はカウンタ3の1から4で異なる。したがって、カウンタ3を用いて、代入する値、式を選択する。これら3種類のカウンタを組み合わせることにより、現時点でSHAアルゴリズムのうち、どのブロックのどのステージの処理を行っているのかを判断し、代入値、代入式、加算器の入出力選択を行う。なお、回路ブロックKについて、カウンタ1とカウンタ2の関係を図7に示す。回路ブロックZについて、カウンタ1とカウンタ2の関係を図8に示す。また、カウンタ1とカウンタ3の関係を図9に示す。
【0020】
請求項4の発明によれば、上記の回路において用いる代入値Wを、カウンタ1が示す全ての回路ブロック(1〜80段目)のそれぞれに対応して出力する。ハッシュ関数SHAでは80種類の元データWが必要となるが、これら全てを生成するために、16個のレジスタ(W1〜W16)を具備し、カウンタ1の値が1〜16のときはカウンタ1の値tに対応するWtをそのまま出力し、カウンタ1の値tが17〜80のときはW=Wt-3 XOR Wt-8 XOR Wt-14 XOR Wt-16の演算を行い、その後、最上位bitを下位側へ巡回シフトし、W16に格納する。このときW2〜W16に元々格納されていた値は、それぞれ1つ下位のレジスタW1〜W15にシフト(Wn→Wn−1;n=2,3,…,16)され、W1に格納されていた値は消去される。この様子を図10に示す。これにより16個のレジスタW1〜W16のみでハッシュ値の生成に必要な80種類の元データW[1]〜W[80]を全て生成することができる。
【0021】
【発明の効果】
請求項1の発明によれば、1ステージに2個以内の加算器を用いてハッシュ関数SHAを求めることができるから、小さな回路面積で高速なハッシュ装置を提供できる。
請求項2の発明によれば、最終段およびその前段の回路ブロックで加算器が余っているステージを利用して最終段で必要となる初期値の加算を行うようにしたので、ハッシュ値の演算速度をより一層向上できる。
【0022】
請求項3の発明によれば、何段目の回路ブロックかを判定する第1カウンタ、どのステージかを判定する第2カウンタ、論理演算処理部で用いる論理式や定数設定処理部で設定すべき定数を選択する第3カウンタを設けたので、1ステージに2個以内の加算器を含む共通の回路ブロックを複数回反復して使用する動作が容易に実現できる。
請求項4の発明によれば、80段の回路ブロックでそれぞれ必要となる80種類の元データを16個のレジスタで設定できるから、ハッシュ装置の回路面積を小さくできる。
【図面の簡単な説明】
【図1】本発明のハッシュ装置における基本回路ブロックを示す回路図である。
【図2】請求項1の一実施形態に係るハッシュ装置の全体構成を示す回路図である。
【図3】請求項1の一実施形態に係るハッシュ装置の各段の回路ブロックを示す回路図である。
【図4】請求項2の一実施形態に係るハッシュ装置の最終段の回路ブロックを示す回路図である。
【図5】請求項2の一実施形態に係るハッシュ装置の全体構成を示す回路図である。
【図6】請求項3の1ないし79段目の回路ブロックと第1、第2カウンタの関係を示す説明図である。
【図7】請求項3の80段目の回路ブロックと第1、第2カウンタの関係を示す説明図である。
【図8】請求項3の第1、第3カウンタの関係を示す説明図である。
【図9】請求項4の元データ設定処理部の構成および動作を示す説明図である。
【符号の説明】
4 第1のローテーション処理部
5 論理演算処理部
6 第1加算器
7 元データ設定処理部
8 定数設定処理部
9 第2加算器
10 第3加算器
11 第4加算器
12 第2のローテーション処理部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for ensuring network security, and more particularly to a hash device that implements a hash function SHA that converts original data into an irreversible hash value by hardware.
[0002]
[Prior art]
Conventionally, the SHA algorithm, which is one of hash functions, is realized by software. Hereinafter, the SHA algorithm will be described. The initial values Ainit, Binit, Cinit, Dinit, Dinit, Einit of 32-bit variables A, B, C, D, E are set in hexadecimal as follows.
Ainit = 0x67452301
Binit = 0xEFCDAB89
Cinit = 0x98BADCFE
Dinit = 0x10325476
Einit = 0xC3D2E1F0
[0003]
The original data divided into n pieces of 512 bits is assumed to be M1, M2,. The following processing is repeated for i = 1 to n.
(A) The original data Mi is divided into 16 in 32 bits, and W1, W2,.
(B) A = Ainit, B = Binit, C = Cinit, D = Dinit, E = Einit.
[0004]
(C) The following processing is repeated for t = 1, 2,.
TEMP = S (5, A) + f (B, C, D) + E + W + K
Here, TEMP is a temporary variable, S (m, x) is a cyclic shift of the upper mbit of the 32-bit variable x to the lower side, and f (B, C, D) and K are given by the following equations.
・ When 1 ≦ t ≦ 20,
f (B, C, D) = (B AND C) OR ((NOT B) AND D)
K = 0x5A828999
・ When 21 ≦ t ≦ 40,
f (B, C, D) = B XOR C XOR D
K = 0x6ED9EBA1
・ When 41 ≦ t ≦ 60,
f (B, C, D) = (B AND C) OR (B AND D) OR (C AND D)
K = 0x8F1BBCDC
・ When 61 ≦ t ≦ 80,
f (B, C, D) = B XOR C XOR D
K = 0xCA62C1D6
[0005]
The original data W is given by the following equation.
・ When 1 ≦ t ≦ 16,
W = Wt
・ If 17 ≦ t ≦ 80,
Let W = S (1, W t−3 XOR W t−8 XOR W t−14 XOR W t−16 ).
After obtaining the temporary variable TEMP by the above equation, it is assumed that E = D, D = C, C = S (30, B), B = A, A = TEMP.
[0006]
(D) Finally, initial values are added to the variables A, B, C, D, and E. That is,
A = Ainit + A
B = Binit + B
C = Cinit + C
D = Dinit + D
E = Einit + E
And Thereby, the value of the hash function (32 × 5 = 160 bits) is calculated. The 160-bit data is used as a message digest (summary function) that summarizes the original message.
[0007]
[Problems to be solved by the invention]
A user who uses a hash function has a greater trust in a hash function SHA implemented in hardware than a hash function SHA implemented in software, so that a high-speed and small-area hash device can be realized early by hardware. It is desired.
[0008]
[Means for Solving the Problems]
According to the first aspect of the present invention, by limiting the maximum number of adders to be used at the same time to two for processing of one cycle of the SHA algorithm having a periodic structure, the hash value can be obtained at high speed with a small circuit area. Can be generated. That is, the invention of
[0009]
According to the second aspect of the present invention, in order to maintain the structural periodicity even in the final stage processing in which the periodicity is only disordered among the structurally periodic SHA algorithms, By replacing this circuit with a circuit as shown in FIG. 4, a hash value can be generated at a high speed with a minimum circuit area. That is, in the second aspect of the present invention, as shown in FIG. 4, the value of the fourth register D and the fifth initial value Einit are added to the fourth stage of the 79th stage circuit block of the first aspect of the present invention. The
[0010]
According to the invention of
[0011]
According to the fourth aspect of the present invention, a circuit capable of generating a hash value with a small area can be realized by generating and supplying 80 types of substitution values used in the SHA algorithm with 16 registers. That is, in the invention of
[0012]
DETAILED DESCRIPTION OF THE INVENTION
As described above, the SHA algorithm repeats a
[0013]
In the second stage of the circuit block K, execution of (a) + (b) and retention of the value (e) obtained from the result obtained in the first stage, execution of (c) + (d), and that The value (f) obtained by the above is held.
In the third stage of the circuit block K, (e) + (f) is executed from the result obtained in the second stage and the value (g) obtained thereby is held.
[0014]
In the fourth stage of the circuit block K, the result (g) obtained in the third stage is stored in the A register, the original A register value is stored in the B register, and the upper 30 bits of the original B register value is stored in the lower order. The original C register value is stored in the D register, and the original D register value is stored in the E register. Thereby, the update of the values of the A, B, C, D, and E registers is completed.
[0015]
80 circuit blocks K are connected in series, and A = Ainit + A, B = Binit + B, C = Cinit + C, D = Dinit + D, with respect to A, B, C, D, E output by the 80th block. E = Einit + E is calculated. The overall circuit configuration for performing the above processing is as shown in FIG.
[0016]
According to the second aspect of the present invention, the circuit block as shown in FIG. 4 is formed as one block, and is divided into five stages so that the number of adders in one stage is two or less. The above circuit block is referred to as a circuit block Z, and is connected after the 79th stage circuit block K as shown in FIG. In the circuit block Z, in order to make the maximum number of adders included in one stage two, Einit and the fourth stage D register of the 79th stage block are added to the fourth stage of the 79th stage block of the circuit block K. Is added to the first stage of the 80th block, and the adder 14 is added to add the fourth stage C register of the 79th block to the third stage of the 80th block. The stage is provided with an
[0017]
Thus, the circuit block Z has a structure in which one adder is added to each of the first stage and the third stage and two adders are added to the fourth stage based on the circuit block K. In addition, the circuit block Z is performed in one block. Since processing such as value derivation and cyclic shift is executed at the same stage as other blocks, the structure of the circuit block Z is kept similar to the circuit block K.
[0018]
According to the invention of
[0019]
The circuit block K and the circuit block Z have similar circuit configurations, but the values and expressions to be substituted at each stage are different from 1 to 4 of the
[0020]
According to the invention of
[0021]
【The invention's effect】
According to the first aspect of the present invention, since the hash function SHA can be obtained using two or less adders in one stage, a high-speed hash device can be provided with a small circuit area.
According to the second aspect of the present invention, the initial value required in the final stage is added using the stage in which the adder is left in the final stage and the preceding circuit block. The speed can be further improved.
[0022]
According to the third aspect of the present invention, the first counter for determining the number of circuit blocks, the second counter for determining which stage, and the logical expression used in the logical operation processing unit and the constant setting processing unit should be set. Since the third counter for selecting a constant is provided, an operation of repeatedly using a common circuit block including two or less adders in one stage can be easily realized.
According to the fourth aspect of the present invention, since 80 types of original data required in each of the 80-stage circuit blocks can be set by 16 registers, the circuit area of the hash device can be reduced.
[Brief description of the drawings]
FIG. 1 is a circuit diagram showing a basic circuit block in a hash device of the present invention.
FIG. 2 is a circuit diagram showing an overall configuration of a hash device according to an embodiment of
FIG. 3 is a circuit diagram showing a circuit block of each stage of the hash device according to an embodiment of the first aspect of the present invention.
FIG. 4 is a circuit diagram showing a circuit block at the final stage of the hash device according to one embodiment of the present invention;
FIG. 5 is a circuit diagram showing an overall configuration of a hash device according to an embodiment of
FIG. 6 is an explanatory diagram showing the relationship between the circuit blocks in the first to 79th stages and the first and second counters according to
FIG. 7 is an explanatory diagram showing the relationship between the 80th stage circuit block of
FIG. 8 is an explanatory diagram showing a relationship between first and third counters according to
FIG. 9 is an explanatory diagram showing a configuration and operation of an original data setting processing unit according to
[Explanation of symbols]
4 First Rotation Processing Unit 5 Logical
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000089518A JP3709760B2 (en) | 2000-03-28 | 2000-03-28 | Hash device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000089518A JP3709760B2 (en) | 2000-03-28 | 2000-03-28 | Hash device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001282106A JP2001282106A (en) | 2001-10-12 |
JP3709760B2 true JP3709760B2 (en) | 2005-10-26 |
Family
ID=18605264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000089518A Expired - Fee Related JP3709760B2 (en) | 2000-03-28 | 2000-03-28 | Hash device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3709760B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014051751A1 (en) * | 2012-09-28 | 2014-04-03 | Intel Corporation | Instruction set for sha1 round processing on 128-bit data paths |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050065976A (en) | 2003-12-26 | 2005-06-30 | 한국전자통신연구원 | Apparatus and method for computing sha-1 hash function |
JP2005208400A (en) * | 2004-01-23 | 2005-08-04 | Mitsubishi Electric Corp | Hash value calculation apparatus and arithmetic unit |
KR100656375B1 (en) | 2005-12-10 | 2006-12-11 | 한국전자통신연구원 | Low power hash function encryption device |
EP2348499A4 (en) | 2008-10-07 | 2015-01-21 | Fujitsu Ltd | Encrypting apparatus |
JP5269137B2 (en) * | 2011-04-07 | 2013-08-21 | 三菱電機株式会社 | Arithmetic unit |
CN109905228B (en) * | 2017-12-07 | 2023-07-25 | 北京智云芯科技有限公司 | Special computing circuit for realizing hash operation |
-
2000
- 2000-03-28 JP JP2000089518A patent/JP3709760B2/en not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014051751A1 (en) * | 2012-09-28 | 2014-04-03 | Intel Corporation | Instruction set for sha1 round processing on 128-bit data paths |
CN104641346A (en) * | 2012-09-28 | 2015-05-20 | 英特尔公司 | Instruction set for SHA1 round processing on 128-bit data paths |
GB2520859A (en) * | 2012-09-28 | 2015-06-03 | Intel Corp | Instruction set for SHA1 round processing on 128-BIT data paths |
CN104641346B (en) * | 2012-09-28 | 2018-06-08 | 英特尔公司 | For the instruction set of the SHA1 wheel processing in 128 bit datapaths |
GB2520859B (en) * | 2012-09-28 | 2020-04-29 | Intel Corp | Instruction set for SHA1 round processing on 128-BIT data paths |
GB2581038A (en) * | 2012-09-28 | 2020-08-05 | Intel Corp | Instruction set for SHA1 round processing on 128-bit data paths |
GB2581038B (en) * | 2012-09-28 | 2021-01-27 | Intel Corp | Instruction set for SHA1 round processing on 128-bit data paths |
GB2586000A (en) * | 2012-09-28 | 2021-01-27 | Intel Corp | Instruction set for SHA1 round processing on 128-bit data paths |
GB2586000B (en) * | 2012-09-28 | 2021-05-19 | Intel Corp | Instruction set for SHA1 round processing on 128-bit data paths |
Also Published As
Publication number | Publication date |
---|---|
JP2001282106A (en) | 2001-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7158638B2 (en) | Encryption circuit | |
Eastlake 3rd et al. | US secure hash algorithms (SHA and SHA-based HMAC and HKDF) | |
JP3724399B2 (en) | Pseudorandom number generator or encryption / decryption processing device using the same | |
JP2007316614A (en) | Hash value generating device, program, and hash value generating method | |
CN107395371B (en) | Data encryption in wireless sensor networks | |
US7489779B2 (en) | Hardware implementation of the secure hash standard | |
JP3709760B2 (en) | Hash device | |
CN116318660B (en) | Message expansion and compression method and related device | |
CN107835071B (en) | Method and device for improving operation speed of key-in-hash method | |
JP2950485B2 (en) | Stream cipher processor | |
Eastlake 3rd et al. | RFC 6234: US secure hash algorithms (SHA and SHA-based HMAC and HKDF) | |
CN112019352A (en) | SM9 quick signature method and system and electronic equipment | |
San Jose et al. | Enhanced SHA-1 on Parsing Method and Message Digest Formula | |
JP4541485B2 (en) | Exponentiation arithmetic unit, exponentiation remainder arithmetic unit, elliptic power multiple arithmetic unit, arrangement of those methods, and recording medium | |
JPH1152850A (en) | Device and method for cipher conversion | |
JP3277894B2 (en) | Information processing apparatus and code generation method | |
De Meulenaer et al. | Hardware Implementations of a Variant of the Zémor-Tillich Hash Function: Can a Provably Secure Hash Function be very efficient? | |
JP4745598B2 (en) | Cryptographic circuit | |
Ali et al. | Optimal datapath design for a cryptographic processor: the Blowfish algorithm | |
CN103748986B (en) | A kind of one-way cipher Hash Value generates method and apparatus | |
JPH06102820A (en) | Cyphering device | |
JP3795315B2 (en) | Encryption / decryption circuit | |
WO2004063842A2 (en) | Flexible hardware implementation of hash functions | |
JP2004240298A (en) | Hash function processor | |
JP2000151579A (en) | Cryptography generation device and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20050719 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050801 |
|
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: 20090819 Year of fee payment: 4 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090819 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090819 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100819 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110819 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120819 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130819 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |