JP2002287635A - Sha演算の高速演算回路 - Google Patents
Sha演算の高速演算回路Info
- Publication number
- JP2002287635A JP2002287635A JP2001086620A JP2001086620A JP2002287635A JP 2002287635 A JP2002287635 A JP 2002287635A JP 2001086620 A JP2001086620 A JP 2001086620A JP 2001086620 A JP2001086620 A JP 2001086620A JP 2002287635 A JP2002287635 A JP 2002287635A
- Authority
- JP
- Japan
- Prior art keywords
- data
- latch
- circuit
- arithmetic
- arithmetic circuit
- 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
Links
Abstract
sh Algorithm)演算全体の性能を向上させ
るデジタル回路を提供する。 【解決手段】SHA演算の内部処理のパイプライン化に
よる高速化。
Description
機データの安全性を高めるための暗号システムで用いら
れる要約関数SHA(The Secure Hash
Algorithm)を処理するデジタル回路に関す
る。
いては、フェデラル インフォメーション プロセッシ
ング スタンダード パブリケーションズ(Feder
alInformation Processing
Standards Publication)から公
開されているフィップス パブ 180−1、1995
エイプリル 17、セキュア ハッシュ スタンダー
ド(FIPS PUB180−1、1995 Apri
l 17、SECURE HASH STANDAR
D、U.S.DEPARTMENT OF COMME
RCE / National Institute
of Standards and Technolo
gy)で規定される。
リズムも紹介されており、そのアルゴリズムは、メモリ
効率や処理効率に優れている。紹介されているアルゴリ
ズムの一つを、以下に簡単に説明する。
512bitの正数倍のデータへ変換するため、定めら
れたメッセージパディングを行なう。メッセージパディ
ングを行なったデータを、512bit毎に分割し、M
1、M2、…、Mnとする。メッセージパディングについ
ては、本発明の説明をする上で、特に重要ではないので
説明を省略する。次にH0、H1、…、H4を以下のよう
に初期化する。
…、W15とする。 (b) W0、W1、…、W15から、W16、W17、…、W
79を求めるため、t=16からt=79まで以下の処理
を繰り返す。
トする関数を示す。 (c) 以下の処理を行なう。
す。本発明の説明で使われるループ演算とは、この数1
2から数17の処理を指している。
し、最終結果のH0、H1、…、H4を連結した160b
itが、SHA演算の結果となる。
は、ソフトウェアによる処理に最適化したアルゴリズム
である。アルゴリズムをハードウェアで実現した場合、
ソフトウェアと異なり複数の処理を並列に実行する事が
可能となる。そのため、SHA演算の並列化できる処理
部分において、ある特定の処理のみが複雑であるため、
演算器の性能がその処理のディレイによって決まる。
ソフトウェアによる処理では逐次処理するのに対し、ハ
ードウェアでは、TEMPへの代入を省略して、数31
から数35の処理を並行して行なうことができる。例え
ば、At、…、Etをt回目のA、…、Eの値とすると、
t=iにおけるループ演算では、以下に示す処理を行な
う。
うになる。このとき数31から数34の処理がラッチか
らラッチへのデータの代入する。これらに比べ、数35
の処理は、TEMPを演算するために、関数ftによる
論理演算と、5つの項の加算演算を行ってから、ラッチ
へ代入する。このため、数31から数34の処理に比べ
数35の処理は複雑である。また、数31から数35の
処理はループ演算で80回も繰り返されるため、数35
の処理が演算性能のボトルネックとなる。
し、SHA演算全体の性能を向上させるデジタル回路を
提供することにある。
処理の中で、
して中間結果として記憶しておき、次のサイクルでB、
…、Eの処理と並行して、Aの残りの処理を行なう。ま
た、後のサイクルのAの処理のための中間値の計算も並
行して行なう。これにより数35は分割され、デジタル
回路においては並列処理が可能となるため、性能を向上
させることが出来る。
回路の実施形態の一例を、図面を参照しつつ説明する。
図では、制御回路とセレクタ論理への制御信号は省略し
ている。
タル回路の構成を示す図である。図2では、制御回路と
セレクタ論理への制御信号は省略している。
を、413は本発明による中間結果MIDの初期値を計
算する回路で、次の演算を行なう。
う回路で、次の演算を行なう。
を行なう回路で、次の演算を行なう。
なう。
発明により回路パスを415と416のように、並列に
設計することが出来るため、ディレイの改善やマシンサ
イクルにあわせた回路設計を柔軟に行なえる。417は
2入力の加算器を、418、419は、左へ30bit
の回転シフターを示す。ここでV324は、信号線32
4経由で転送されるデータの値すなわち415の出力結
果である。
A演算の実行手順を説明する。401から411のラッ
チは、それぞれ更新されない場合は、同じ値を保持し続
ける。まず、302から306の入力信号から、H0か
らH4の初期値または、演算を途中から再開する場合に
は計算途中のH0からH4の値を、401から405のラ
ッチへ入力する。次に、301の入力信号からW0を入
力し、413にてMIDの初期値を計算して、411の
ラッチへ入力し、311から315の信号を406から
410のラッチへ入力し、307の固定信号を412の
ラッチへ入力する。以上が、TEMPを計算するループ
演算をする前の処理である。1回目と2回目のループ演
算は、300の信号からW1を、301の信号からW2を
同時に入力したサイクルに行ない、406のラッチへ3
25の信号を、407のラッチへ324の信号を、40
8のラッチへ328の信号を、409のラッチへ329
の信号を、410のラッチへ318の信号を、411の
ラッチへ326の信号を入力し、それぞれのラッチを更
新して行く。3回目と4回目のループ演算は、300の
信号からW3を、301の信号からW4を同時に入力した
サイクルに行ない、1回目と2回目のループ演算と同様
に、406のラッチへ325の信号を、407のラッチ
へ324の信号を、408のラッチへ328の信号を、
409のラッチへ329の信号を、410のラッチへ3
18の信号を、411のラッチへ326の信号を入力
し、それぞれのラッチを更新して行く。以下、77回目
と78回目のループ演算まで、1回目と2回目のループ
演算や3回目と4回目のループ演算と同様に、300の
信号から奇数番目のWを、301の信号から偶数番目W
を小さい順番で同時に入力したサイクルに行ない、40
6のラッチへ325の信号を、407のラッチへ324
の信号を、408のラッチへ328の信号を、409の
ラッチへ329の信号を、410のラッチへ318の信
号を、411のラッチへ326の信号を入力し、それぞ
れのラッチを更新して行く。次に300の信号からW79
を、301の信号からは、任意のデータを入力し、40
6から410のラッチを更新しループ演算を終了する。
また、ループ演算の18、19回目の結果を演算すると
きから308の固定信号を、38、39回目の結果を演
算するときから309の固定信号を、58、59回目の
結果を演算するときから310の固定信号を、412の
ラッチへ入力する。ループ演算80回分が終了したとこ
ろで、418の加算器により401のAと406のH0
を足し、結果を401へ入力する。402から405と
407から410も同様にして加算した結果を402か
ら405へ入力する。以上により、新しいH0からH4を
計算することが出来る。
であり、一度に1回のループ演算を行ない、回路パスを
短くすることでより高速なマシンサイクルでの動作に適
した、SHA演算器のデジタル回路の構成を示す図であ
る。
らないが、図2における前半TEMP演算器415は、
信号の結線の変更により601の回路となり、数41の
演算を行なう。図3の回路構成によれば、図2の回路に
比べ回路規模が小さく、演算パスが短いため、より早い
マシンサイクルに対応できる。
411のラッチは、それぞれ更新されない場合は、同じ
値を保持し続ける。まず、302から306の入力信号
から、H0からH4の初期値または、演算を途中から再開
する場合には計算途中のH0からH4の値を、401から
405のラッチへ入力する。次に、300の入力信号か
らW0を入力し、413にてMIDの初期値を計算し
て、411のラッチへ入力し、311から315の信号
を406から410のラッチへ入力し、307の固定信
号を412のラッチへ入力する。以上が、TEMPを計
算するループ演算をする前の処理である。ループ演算
は、300の信号からW1、W2、…、W79を、番号の小
さい順に入力して、入力する毎に406のラッチへ32
4の信号を、407のラッチへ316の信号を、408
のラッチへ328の信号を、409のラッチへ319の
信号を、410のラッチへ320の信号を、411のラ
ッチへ501の信号を入力し、それぞれのラッチを更新
して行く。ループ演算中に、412のラッチへ、ループ
演算の19回目の結果を演算するときから108の固定
信号を、39回目の結果を演算するときから309の固
定信号を、59回目の結果を演算するときから310の
固定信号を入力する。ループ演算80回分が終了したと
ころで、418の加算器により401のAと406のH
0を足して結果を401へ入力する。402から405
と407から410も同様にして加算した結果を402
から405へ入力する。以上により、図3による回路で
の、新しいH0からH4を計算することが出来る。
HA演算の
算の後半と次の演算の前半とを並列に処理することがで
き、演算器のディレイを改善できるという利点が得られ
る。
ても、実装するマシンサイクルに合わせた回路設計を柔
軟に行なうことが出来る。
回路で示した図である。
を示す図である。
算器の一例での回路構成を示す図である。
32bitラッチ、207…TEMP演算器、208…
左30bit回転32bitシフタ、300−306…
32bitデータ入力信号線、307−310…32b
it固定信号線、311−329…32bit信号線、
401−412…32bitラッチ、413…TEMP
初期中間値演算器、414…後半TEMP演算器、41
5…前半TEMP演算器、416…TEMP演算器、4
17…2入力32bit加算器、418、419…左3
0bit回転32bitシフタ、300、302−30
6…32bitデータ入力信号線、307−310…3
2bit固定信号線、311−324、327、328
…32bit信号線、401−412…32bitラッ
チ、413…TEMP初期中間値演算器、414…後半
TEMP演算器、417…2入力32bit加算器、4
18…左30bit回転32bitシフタ、501…3
2bit信号線、601…前半TEMP演算器。
Claims (4)
- 【請求項1】 32ビットの第1から第5のラッチと、
1つまたは2つ以上の中間値ラッチと、第1の演算回路
と、第2の演算回路と、演算に使われるデータを入力す
るデータ入力信号線と、演算に使われる定数を入力する
固定信号線を備え、あるサイクルにおいて、該第1の演
算回路において、少なくとも該第1のラッチのデータを
左へ5ビット回転シフトした値と該中間値ラッチのデー
タの加算を行ない演算結果を該第1のラッチへ入力し、
該第2の演算回路において、後のサイクルのための中間
値を演算し、該中間値ラッチへ入力することにより、該
第1のラッチへ入力するデータを求める演算を該第1の
演算回路と該第2の演算回路に分け並行して動作させ、
演算回路のディレイを小さくし、SHA演算を高速に処
理する特徴を持った高速演算回路。 - 【請求項2】 請求項1のデジタル回路であって、該第
2の演算回路において、後のサイクルのための中間値
を、該第1から該第3のラッチのデータによる演算結果
と該第4のラッチのデータと該データ入力信号線のデー
タとを加算し、該中間値ラッチへ入力することと、該第
1の演算回路において、該第1のラッチと該中間値と該
固定信号からのデータとを加算し、該第1のラッチへ入
力することを特徴とする高速演算回路。 - 【請求項3】 32ビットの第1から第5のラッチと、
1つまたは2つ以上の中間値ラッチと、第1の演算回路
と、第2の演算回路と、第3の演算回路と、演算に使わ
れるデータを入力するデータ入力信号線と、演算に使わ
れる定数を入力する固定信号線を備え、あるサイクルに
おいて、該第1の演算回路において、少なくとも該第1
のラッチのデータを左へ5ビット回転シフトした値と該
中間値ラッチのデータの加算を行ない演算結果を該第2
のラッチへ入力し、該第2の演算回路において、少なく
とも該第1の演算回路の演算データを用いて、後のサイ
クルのための中間値を演算し、該中間値ラッチへ入力
し、該第3の演算回路において、該第1の演算回路の演
算データと、該第1から該第3のラッチのデータによる
演算結果と、該第4のラッチのデータと、該データ入力
信号線のデータと、該固定信号からのデータとを加算
し、該第1のラッチへ入力することにより、該第2の演
算回路と該第3の演算回路を並行して動作させ、演算回
路のディレイを小さくし、SHA演算を高速に処理する
特徴を持った高速演算回路。 - 【請求項4】 請求項3のデジタル回路であって、該第
2の演算回路において、後のサイクルのための中間値
を、該第1の演算回路の演算データと該第1および該第
2のラッチのデータによる演算結果と、該第3のラッチ
のデータと、該データ入力信号線のデータとを加算し、
該中間値ラッチへ入力することと、該第1の演算回路に
おいて、該第1のラッチと該中間値と該固定信号からの
データとを加算し、該第1のラッチへ入力することを特
徴とする高速演算回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001086620A JP4206205B2 (ja) | 2001-03-26 | 2001-03-26 | Sha演算の高速演算回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001086620A JP4206205B2 (ja) | 2001-03-26 | 2001-03-26 | Sha演算の高速演算回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002287635A true JP2002287635A (ja) | 2002-10-04 |
JP4206205B2 JP4206205B2 (ja) | 2009-01-07 |
Family
ID=18941970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001086620A Expired - Fee Related JP4206205B2 (ja) | 2001-03-26 | 2001-03-26 | Sha演算の高速演算回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4206205B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100417793B1 (ko) * | 2001-07-06 | 2004-02-11 | 주홍정보통신주식회사 | Sha-1에 사용되는 중간값 생성회로 |
JP2005208400A (ja) * | 2004-01-23 | 2005-08-04 | Mitsubishi Electric Corp | ハッシュ値算出装置及び演算装置 |
US7962753B2 (en) | 2006-11-08 | 2011-06-14 | Oki Semiconductor Co., Ltd. | Method and a circuit for SHA operation with power saved |
JP2011133916A (ja) * | 2011-04-07 | 2011-07-07 | Mitsubishi Electric Corp | 演算装置 |
US8086864B2 (en) | 2007-07-09 | 2011-12-27 | Electronics And Telecommunications Research Institute | Low power HMAC encryption apparatus |
US8275126B2 (en) | 2008-12-08 | 2012-09-25 | Electronics And Telecommunications Research Institute | Apparatus and method for hash cryptography |
-
2001
- 2001-03-26 JP JP2001086620A patent/JP4206205B2/ja not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100417793B1 (ko) * | 2001-07-06 | 2004-02-11 | 주홍정보통신주식회사 | Sha-1에 사용되는 중간값 생성회로 |
JP2005208400A (ja) * | 2004-01-23 | 2005-08-04 | Mitsubishi Electric Corp | ハッシュ値算出装置及び演算装置 |
US7962753B2 (en) | 2006-11-08 | 2011-06-14 | Oki Semiconductor Co., Ltd. | Method and a circuit for SHA operation with power saved |
US8086864B2 (en) | 2007-07-09 | 2011-12-27 | Electronics And Telecommunications Research Institute | Low power HMAC encryption apparatus |
US8275126B2 (en) | 2008-12-08 | 2012-09-25 | Electronics And Telecommunications Research Institute | Apparatus and method for hash cryptography |
JP2011133916A (ja) * | 2011-04-07 | 2011-07-07 | Mitsubishi Electric Corp | 演算装置 |
Also Published As
Publication number | Publication date |
---|---|
JP4206205B2 (ja) | 2009-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4525796A (en) | Pipelined operation unit for vector data | |
CN115344237A (zh) | 结合Karatsuba和蒙哥马利模乘的数据处理方法 | |
JP4612680B2 (ja) | Md5ダイジェスティングを実行する装置および方法 | |
CN115525342A (zh) | 一种sm3密码杂凑算法的加速方法及指令集处理器 | |
US11922133B2 (en) | Processor and method for processing mask data | |
US4757444A (en) | Vector processor capable of performing iterative processing | |
CN114615069B (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN111079934B (zh) | 应用于环域上误差学习加密算法的数论变换单元和方法 | |
CN109933304B (zh) | 适用于国密sm2p256v1算法的快速蒙哥马利模乘器运算优化方法 | |
CN117406957B (zh) | 一种模乘方法、模乘组件和半定制电路 | |
JP2002287635A (ja) | Sha演算の高速演算回路 | |
US7376685B2 (en) | Apparatus and method for computing SHA-1hash function | |
JP4567753B2 (ja) | パリティ生成回路、計数回路および計数方法 | |
CN116155481A (zh) | 一种sm3算法的数据加密实现方法和装置 | |
US7181009B1 (en) | Generating message digests according to multiple hashing procedures | |
Kieu-Do-Nguyen et al. | A power-efficient implementation of sha-256 hash function for embedded applications | |
CN113485751B (zh) | 执行伽罗瓦域乘法的方法、运算单元和电子装置 | |
CN112988235A (zh) | 一种高效率第三代安全散列算法的硬件实现电路及方法 | |
CN115037485B (zh) | 轻量级认证加密算法的实现方法、装置及设备 | |
KR102282363B1 (ko) | 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램 | |
JP2991788B2 (ja) | 復号器 | |
JP2004240299A (ja) | ハッシュ関数処理装置 | |
JP2664750B2 (ja) | 演算装置及び演算処理方法 | |
CN116318670A (zh) | 一种适用于后量子密码算法Kyber的指令集架构 | |
JP2001034457A (ja) | 加減算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050921 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20060512 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060512 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20070216 |
|
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: 20081007 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081020 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111024 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |