JP2008116856A - Sha演算方法およびsha演算装置 - Google Patents

Sha演算方法およびsha演算装置 Download PDF

Info

Publication number
JP2008116856A
JP2008116856A JP2006302202A JP2006302202A JP2008116856A JP 2008116856 A JP2008116856 A JP 2008116856A JP 2006302202 A JP2006302202 A JP 2006302202A JP 2006302202 A JP2006302202 A JP 2006302202A JP 2008116856 A JP2008116856 A JP 2008116856A
Authority
JP
Japan
Prior art keywords
sha
variables
storage units
held
unit
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
JP2006302202A
Other languages
English (en)
Other versions
JP4308840B2 (ja
Inventor
Yoji Sato
洋司 佐藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2006302202A priority Critical patent/JP4308840B2/ja
Priority to CN2007101625217A priority patent/CN101178861B/zh
Priority to US11/873,496 priority patent/US7962753B2/en
Priority to KR1020070105408A priority patent/KR101389034B1/ko
Publication of JP2008116856A publication Critical patent/JP2008116856A/ja
Application granted granted Critical
Publication of JP4308840B2 publication Critical patent/JP4308840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】消費電力を低減するSHA演算方法等を得る。
【解決手段】Initializeプロセスにおいて、a=H (i−1)、b=H (i−1)、c=ROTR30(H (i−1))、d=ROTR30(H (i−1))、e=ROTR30(H (i−1))となる。次に、t=0〜79の各プロセスにおいて、a〜eのうちのいずれか1つは、TEMPを保持し、残りの4つは、1つ前のプロセスでの値をそのまま保持する。そして、computeプロセスにおいて、H (i)=H (i−1)+a、H (i)=H (i−1)+b、H (i)=H (i−1)+ROTL30(c)、H (i)=H (i−1)+ROTL30(d)、H (i)=H (i−1)+ROTL30(e)となる。
【選択図】図6

Description

本発明は、データからハッシュ値を演算するSHA(Secure Hash Algorithm)演算方法およびSHA演算装置に関するものである。
近年、セキュリティアルゴリズムをハードウェア化し、セキュリティ処理を高速化する傾向にある。このため、ハッシュ(SHA: Secure Hash Algorithm)においても、ハッシュアルゴリズムがデジタル演算回路で構成されることが多い。SHAは、認証やデジタル署名、データの改ざん検出などに用いられ、SHA−1、SHA−224、SHA−256、SHA−384およびSHA−512が規定されている。
このような状況下において、従来のSHA演算の高速演算回路においては、パイプライン化によりハッシュ演算を高速に行う(例えば、特許文献1参照)。
特開2002−287635号公報
しかしながら、上述の従来例では、ハッシュ演算を高速化することができるものの、ハッシュ演算に用いるハードウェア回路そのものの消費電力を低減させることができなかった。このため、SHA演算に用いるハードウェア回路の消費電力を低減させることが望まれている。
この発明のハッシュ演算方法は、前述の課題を解決するために、SHA−1アルゴリズムに基づくハッシュ演算に用いられる第1ないし第5の変数をそれぞれ第1ないし第5の記憶部に格納するステップと、格納した第1ないし第5の変数をそれぞれ、第1ないし第5の中間値に読み替えるステップとを含む。さらに、読み替えた第1ないし第5の中間値を用いて、SHA−1アルゴリズムに基づく一時変数を演算するステップと、演算した一時変数を格納する記憶部を第1ないし第5の記憶部の中から選択するステップとを含む。そして、クロックサイクルに基づくタイミングで順次、選択した記憶部の変数に演算した一時変数を保持するとともに、他の1つの記憶部の変数に保持されていた値をローテートして当該他の1つの記憶部の変数に保持し、かつ残りの記憶部の変数に保持されていた値をそれぞれ、そのまま当該残りの各記憶部の変数に保持するステップと、保持した各記憶部の変数を用いてハッシュ値を演算するステップとを含む。
この発明のハッシュ演算方法は、複数の記憶部間の値が移動することなく、ハッシュ値を演算する。
また、この発明のハッシュ演算回路は、SHA−1アルゴリズムに基づくハッシュ演算に用いられ、かつ第1ないし第5の記憶部に格納される第1ないし第5の変数をそれぞれ、第1ないし第5の中間値に読み替える読替部と、読み替えられた第1ないし第5の中間値を用いて、SHA−1アルゴリズムに基づく一時変数を演算する演算部と、第1ないし第5の記憶部の中から、演算された一時変数を格納する記憶部を選択する選択部とを含む。さらに、このハッシュ回路は、クロックサイクルに基づくタイミングで順次、選択に従って前記演算された一時変数を1つの前記変数に保持するとともに、他の1つの変数に保持されていた値をローテートして当該他の1つの変数に保持し、かつ残りの変数に保持されていた値をそれぞれ、そのまま当該残りの各変数に保持する第1ないし第5の記憶部を含む。そして、このハッシュ演算回路は、保持された第1ないし第5の記憶部の変数を用いてハッシュ値を演算して保持するハッシュ保持部を含む。
この発明によれば、SHA演算に用いる記憶部を含むハードウェア回路の消費電力を低減させることができる。
(実施の形態1)
実施の形態1においては、SHA−1のハッシュ演算処理について説明する。なお、以下において、同一の部分は、同一の符号(用語を含む)を付して、適宜、重複説明を省略する。
まず、一般的なSHA−1のハッシュ演算処理について説明する。
最初に、ビット長が264bit未満のメッセージ(ハッシュ演算の対象データ)を512bitずつ分割する。そして、分割したメッセージを、それぞれ、ブロックM(1)、M(2)、・・・、M(N)(Nは正数)とする。
次に、ブロックM(1)、M(2)、・・・、M(N)の順に、次のステップ1および2の処理を繰り返す。
ステップ1においては、ブロックM(i)(i=1〜N)を32bitずつ分割し、16個のワードW、W、・・・、W15(W:t=0〜15)とする。次に、ステップ2においては、32bit長の変数a、b、c、d、eを用いて、ブロックM(i)(i=1〜N)の中間ハッシュ値H (i)〜H (i)(i=1〜N)を求める。
ここで、ステップ2の処理を図1を参照して説明する。
図1は一般的なSHA−1のプロセス処理を示す説明図である。
図1(a)によると、まず、Initialize(初期化)プロセスにおいて、a〜eは、あらかじめ規定されているハッシュ初期値H (0)〜H (0)が与えられる(i=1)。
次に、t=0〜79の各プロセス(クロックサイクルに基づくタイミングで処理)において、a〜eは、数1で与えられる。
Figure 2008116856
なお、数1のROTL30(b)は、bを30ビット左にローテートすることを表す。また、TEMPは、数2で与えられる一時変数を表す。
Figure 2008116856
なお、数2のROTL(a)は、aを5ビット左にローテートすることを表し、f(b,c,d)は、32bit長の3つの引数をもつ数式を表す。Kは固有値を表す。W(t=16〜79)は、W(t=0〜15)に基づいて順次算出される。
そして、中間ハッシュ値H (i)〜H (i)は、図1(b)のcomputeプロセスに示すように、数3で与えられる(ただし、i=1〜N)。
Figure 2008116856
このようにして、最終的には数4のメッセージダイジェストを得る。なお、||は、ビット連結を表す。
Figure 2008116856
その他、公知のSHA−1のハッシュ演算方法については、米国国立標準技術研究所(National Institute of Standards and Technology)が発行するFIPS PUB(Federal Information Processing Standards Publication) 180-2の「SECURE HASH STANDARD」に規定されている。
次に、上記一般的なSHA−1のハッシュ演算処理を行うSHA演算回路の構成について図2を参照して説明する。
図2は一般的なSHA−1のSHA演算回路の構成例を示す図である。
図2において、SHA演算回路100は、ハッシュ保持部11および5つ(第1ないし第5)の記憶部12A、12B、12C、12D、12Eを含んでいる。さらに、SHA演算回路100は、演算部13、第1の定数設定部(W設定部)14および第2の定数設定部(K設定部)15を含んでいる。
ハッシュ保持部11は、5つの記憶部12A〜12Eのそれぞれに対応するハッシュ値H、H、H、H、Hを保持する。具体的には、ハッシュ保持部11は、ハッシュ初期値H (0)〜H (0)をあらかじめ保持する。さらに、ハッシュ保持部11は、ハッシュ値H (i)〜H (i)を保持する。
各記憶部12A〜12Eは、例えばフリップフロップで構成され、図1(a)のa〜e(数1参照)を格納する。
演算部13は、各記憶部12A〜12Eに格納されたa〜eを取り出し、それらの値に基づいて、数2のTEMPを演算する。
第1の定数設定部14は、Wtを設定し、第2の定数設定部15は、Ktを設定する。
以上は、SHA−1の一般的なプロセス処理およびSHA演算回路の説明であるが、以下、本発明の実施の形態1のSHA−1のプロセス処理およびSHA演算回路について説明する。
図3は本発明の実施の形態1に係るSHA−1のプロセス処理を示す説明図である。
図3の実施の形態1のプロセス処理は、後述する32ビットの中間値(1次中間値)v〜zを用いてTEMPを求める点に特徴がある。これにより、図1のプロセス処理の場合に比べて、a〜eの値の変化回数を減少させることが可能となる。そこで、以下では、図1のプロセス処理と異なる点を中心に説明する。
図3(a)によると、Initializeプロセスにおいて、a〜eは、あらかじめ規定されているハッシュ初期値H (0)〜H (0)が与えられる(i=1)。
次に、t=0〜79の各プロセスにおいて、a〜eのうちのいずれか1つは、TEMPを保持し、他の1つは、ROTL30の演算値を保持する。そして、残りの3つは、1つ前のプロセスの値をそのまま保持する。
例えば、t=1の場合、dがTEMPを保持し、aがROTL30(a)の演算値を保持する。そして、各b、c、eは、1つ前のプロセスt=0の値(b、c、e)をそのまま保持する。このようにすることによって、図3(a)のa〜eは、図1(a)のプロセス処理の場合に比べて、値の変化回数が減少することがわかる。
図3(a)のTEMPは、第1ないし第5の中間値v〜zを用いて、数5で与えられる。
Figure 2008116856
数5のROTL(v)は、vを5ビット左にローテートすることを表す。ここで、中間値v〜zは、a〜eのいずれかの値を読み替えた値である。
例えば、t=0の場合、数5のv〜zには、Initializeプロセスのa〜eが読み替えられて、v=a、w=b、x=c、y=d、z=eとなる。また、例えば、t=1の場合、数5のv〜zには、t=0のプロセスのa〜eが読み替えられて、v=e、w=a、x=b、y=c、z=dとなる(図3(a)参照)。
そして、t=0〜79のプロセス後、図3(b)のcomputeプロセスにおいて、図1(b)と等価な中間ハッシュ値H (i)〜H (i)を得る。図3(b)は、図1(b)に示した数3と同様の演算式で表される。
これは、例えばt=0、5、・・・、70、75のとき、v=a、w=b、x=c、y=d、z=e(図3(a)参照)であり、中間値v〜zへの読み替えが同じになる。すなわち、v〜zへの読み替えは5プロセスごとに循環しており、80プロセス(t=0〜79)は5の倍数であるため、computeプロセスでの読み替えが必要ないからである。
以上のように、図3(a)のプロセス処理によると、a〜eのうちのいずれか1つはTEMPを保持し、他の1つはROTL30の演算値を保持することになるものの、そのうちの3つは、1つ前のプロセスでの値をそのまま保持する。このため、図1(a)の場合に比べて、全プロセスにおけるa〜eの値の変化回数が減少する。
次に、上記図3のSHA−1のハッシュ演算処理を行うSHA演算回路(SHA演算装置)の構成について図4を参照して説明する。
図4は本発明の実施の形態1に係るSHA演算回路10の構成例を示すブロック図である。
図4において、SHA演算回路10は、ハッシュ保持部11、第1ないし第5の記憶部121A〜121E、演算部131、第1の定数設定部14および第2の定数設定部15を含んでいる。さらに、ハッシュ演算回路10は、選択部16および読替部17をさらに含んでいる。なお、ハッシュ保持部11、第1の定数設定部14および第2の定数設定部15の構成は、図2の場合と同様である。
選択部16は、図3(a)のプロセスに従って、TEMPを格納する記憶部を1つ選択する。同時に、選択部16は、ROTL30の演算値を格納する記憶部を1つ選択する。この選択に際して、選択部16は、所定の選択信号ENa〜ENeを生成し、その選択信号を、選択する記憶部へ出力する。例えば、図3(a)のt=0の場合、選択部16は、記憶部121Eへ選択信号ENeを出力し、記憶部121EはTEMPを格納する。他方、選択部16は、記憶部121Bに選択信号ENbを出力し、記憶部121BはROTL30演算結果、すなわちROTL30(b)を格納する。
読替部17は、例えば、複数個の5to1セレクタで構成され、図3(a)のプロセスに従って、各記憶部121A〜121Eから取得したa〜eを中間値v〜zに読み替える。例えば、図3(a)のt=0の場合、読替部17は、各記憶部121A〜121Eから取得したa〜eをそのまま、v〜zに読み替える。
演算部131は、図3(a)のプロセスに従って、読替部17から取得した中間値v〜z、第1の定数設定部14に設定されたW、および第2の定数設定部15に設定されたKに基づいて、TEMPを演算する。このときの演算式は、数5のとおりである。
各記憶部121A〜121Eは、例えばフリップフロップで構成され、選択部16からの選択信号に基づいて、所定の値(a〜e、TEMP、ROTL30)を格納する。そして、各記憶部121A〜121Eは、t=79のプロセス後、a〜eをハッシュ保持部11へ出力する。この出力を受けて、ハッシュ保持部11は、図3(b)のcomputeプロセスを実行し、出力されたa〜eおよび前回のハッシュ値H (i−1)〜H (i−1)に基づいて中間ハッシュ値H (i)〜H (i)を得る。
例えば、t=1の場合、記憶部121Dがd=TEMPを保持し、記憶部121Aがa=ROTL30(a)の演算値を保持する。そして、3つの記憶部121B、121C、121Eが、1つ前のプロセスでの値(b、c、e)をそのまま保持する。これにより、図4の各記憶部121A〜121Eは、各記憶部間で値を移動(シフト動作)する図2の各記憶部12A〜12Eの場合と異なり、各記憶部121A〜121E間の値の移動がなくなる。よって、各記憶部121A〜121Eのハードウェアの駆動率が減少し、SHA演算回路10の消費電力が低減する。
ここで、第1の記憶部121Aの構成例について図5を参照して説明する。なお、他の各記憶部121B〜121Eの構成は、記憶部121Aと同様である。
図5において、第1の記憶部121Aは、セレクタ121と、フリップフロップ122(32ビットのフリップフロップ)と、ROTL演算部123とを含んで構成されている。
セレクタ121は、選択信号ENaがTEMP保持を指示している場合(例えば、図3(a)のt=4、9、・・・、79の場合)、演算部131からのTEMPを、フリップフロップ122へ出力させる。選択信号ENaがROTL演算を指示している場合(例えば、図3(a)のt=1、6、・・・、71、76の場合)、ROTL演算部123において演算されたROTL30(a)をフリップフロップ122へ出力させる。他方、選択信号ENaが前値保持を指示している場合(例えば、図3(a)のt=0、2、3、・・・、75、77、78の場合)は、セレクタ121は、フリップフロップ122の出力をそのまま保持させる。
以上のように、図4のSHA演算回路10は、所定のa〜eを中間値v〜zに読み替える読替部17と、v〜zを用いてTEMPを演算する演算部131と、TEMPを保持する記憶部およびROTL演算値を保持する記憶部を選択する選択部16とを含む。このため、第1ないし第5の記憶部121A〜121Eのうちのいずれか1つは、TEMPを保持し、他の1つは、ROTL30の演算値を保持することになるものの、そのうちの3つは、1つ前のプロセスでの値をそのまま保持する。このため、図2の場合と異なり、各記憶部間の値の移動(シフト動作)が不要となる。よって、各記憶部121A〜121Eのハードウェアの駆動率が減少し、SHA演算回路10の消費電力が低減する。
特に、携帯電話や携帯機器、高度道路交通システム(Intelligent Transport Systems)などにおいては、バッテリー駆動の回路を多く含むため、これらに、SHA演算回路10(図3のSHA演算方法)を適用することは有益である。
さらに、各記憶部121A〜121Eにおいて、例えば、ゲーテッド・クロックを適用し、前プロセスの値をそのまま保持し続ける記憶部へのクロック供給を停止するようにしてもよい。この場合、消費電力がさらに低減する。
[SHA−1のプロセス処理の変形]
次に、SHA−1のプロセス処理の変形について説明する。
図6は実施の形態1のSHA−1のプロセス処理の変形を示す説明図である。
図6では、図3のプロセス処理の場合と異なり、さらに、32ビットの中間値(2次中間値)xtemp、ytemp、ztempを導入して、TEMPを求める点に特徴がある。これにより、全プロセスにおいて、すべてのa〜eが、ROTL30の演算値を保持しなくなり、a〜eの値の変化回数をさらに減少させることが可能となる。そこで、以下では、図3のプロセス処理と異なる点を中心に説明する。
図6(a)によると、Initializeプロセスにおいて、2つのa、bは、図3(a)の場合と同様、それぞれ、あらかじめ規定されているハッシュ初期値H (0)、H (0)が与えられる(i=1)。これに対して、残りの3つのc〜eは、図3(a)の場合と異なり、ROTR30(H (0))〜ROTR30(H (0))が与えられる(i=1)。ここで、ROTR30は30ビット右にローテートすることを表す。
次に、t=0〜79の各プロセスにおいて、a〜eのうちのいずれか1つは、TEMPを保持し、残りの4つは、1つ前のプロセスでの値をそのまま保持する。
例えば、t=1の場合、dがTEMPを保持し、残りのa〜c、eは、t=0の値(a〜c、e)をそのまま保持する。このようにすることによって、図6(a)のa〜eは、図3のプロセス処理の場合に比べて、値の変化回数がさらに減少することがわかる。
この場合、図6(a)のTEMPは、中間値v、wおよびxtemp〜ztempを用いて、数6で与えられる。ここで、中間値v、w、xtemp、ytemp、ztempは、a〜eのいずれかの値を読み替えた値である。
Figure 2008116856
例えば、t=0の場合、数6のv、w、xtemp、ytemp、ztempには、Initializeプロセスのa〜eが読み替えられて、v=a、w=b、xtemp=c、ytemp=d、ztemp=eとなる。また、例えば、t=1の場合には、t=0のプロセスのa〜eが読み替えられて、v=e、w=a、xtemp=b、ytemp=c、ztemp=dとなる(図6(a)参照)。
そして、図6(b)のcomputeプロセスにおいて、2つの中間ハッシュ値H (i)、H (i)は、図3(b)の場合と同様の演算式で与えられる。これに対して、残りの3つの中間ハッシュ値H (i)〜H (i)は、図3(b)の場合と異なり、ROTL30(c)〜ROTL30(e)が加算される。これにより、図6(b)の中間ハッシュ値H (i)〜H (i)が、図3(b)の中間ハッシュ値H (i)〜H (i)と等価の値をもつことになる。
なお、残りの3つの中間ハッシュ値H (i)〜H (i)にROTL30の演算値が加算されるのは、次のような理由に基づく。すなわち、図6(a)のt=77〜79において(太枠部分)、本来、ROTL30演算が必要であるにもかかわらず、ROTL30演算がされないため、computeプロセスでROTL30演算を一括して行うためである。
また、Initializeプロセスにおいて、3つのc〜eには、図3(a)の場合と異なり、ROTR30(H (i−1))〜ROTR30(H (i−1))が与えられるのは、次のような理由に基づく。すなわち、図6(a)のt=0〜2において(太枠部分)、本来、ROTR30演算が不要であるにもかかわらず、ROTL30演算がされているためである。これは、30ビット右ローテートした値を30ビット左ローテートすると、元の値に戻ることに基づく。
以上のように、図6(a)のプロセス処理によると、新たに3つの中間値xtemp〜ztempを導入してTEMPを求めることにより、a〜eのうちの4つが、1つ前のプロセスの値をそのまま保持する。このため、a〜eのうちの1つが、ROTL30の演算値を保持する図3(a)の場合に比べて、全プロセスにおけるa〜eの値の変化回数をさらに減少させることができる。
次に、上記図6のSHA−1のハッシュ演算処理を行うSHA演算回路の構成について図4を参照して説明する。
この場合、読替部17は、図6(a)のプロセスに従って、各記憶部121A〜121Eから、a〜eのいずれかを取得して、xtemp、ytemp、ztempに読み替える。さらに、読替部17は、図6(a)のプロセス処理に従って、各記憶部121A〜121Eから、a〜eのいずれかを取得して、各中間値v、wに読み替える。
例えば、t=0の場合、読替部17は、各記憶部121C〜121Eから、Initializeプロセスのc〜eを取得して、それぞれをxtemp〜ztempに読み替える。これにより、xtemp=c、ytemp=d、ztemp=eとなる。さらに、読替部17は、各記憶部121A、121Bから、Initializeプロセスのa、bを取得して、それぞれ各中間値v、wに読み替える。
また、読替部17は、図6(a)のプロセスに従って、xtemp〜ztempを用いて、ROTL30演算を行う。この演算式は、数6のとおりである。
演算部131は、図6(a)のプロセスに従って、読替部17から取得した中間値v〜z、第1の定数設定部14に設定されたW、および第2の定数設定部15に設定されたKに基づいて、TEMPを演算する。このときの演算式は、数6のとおりである。
各記憶部121A〜121Eは、選択部16からの選択信号に基づいて、所定の値(a〜e、TEMP)を格納する。
例えば、図6(a)のt=1の場合、記憶部121Dがd=TEMPを保持し、残りの4つの記憶部121A〜121C、121Eが、1つ前のプロセスの値(a〜c、e)をそのまま保持する。これにより、各記憶部121A〜121Eは、図3(a)の場合と異なり、ROTL30の演算値を保持しないこととなる(図5のROTL演算部123は不要)。よって、各記憶部121A〜121Eのハードウェアの駆動率がさらに減少し、SHA演算回路10の消費電力がより一層低減する。
しかもこの場合、SHA演算回路10の規模を拡大することなく、より一層の消費電力の低減を期待できるので、有用である。
ここで、0.15μmの半導体プロセスにおいて、図6の場合の電力検証シミュレーションを行ったので、以下、説明する。なお、このシミュレーションでは、上記ゲーテッド・クロックを適用した。
例えば、第1の条件下(電源電圧1.65v、周囲温度−40℃)では、SHA演算回路100(図1、2参照)においては、消費電力が7.1mWとなったのに対し、ハッシュ演算回路10(図4、6参照)においては、5.5mWとなった。これから、約23%の削減効果を得ることがわかった。
さらに、第2の条件下(電源電圧1.35v、周囲温度125℃)では、ハッシュ演算回路100(図1、2参照)においては、消費電力が5.3mWとなったのに対し、ハッシュ演算回路10(図4、6参照)においては、3.6mWとなった。これから、約32%の削減効果を得ることがわかった。
(実施の形態2)
実施の形態2においては、SHA−2(SHA−224、256、384、512)のハッシュ演算処理について、便宜上簡略して説明する。
まず、一般的なSHA−2のハッシュ演算処理について説明する。
最初に、メッセージ(ハッシュ演算の対象データ)を分割する。例えば、SHA−224、256の場合、512ビットずつ分割し、SHA−384、512の場合、1024ビットずつ分割する。
そして、分割したメッセージを、それぞれ、ブロックM(1)、M(2)、・・・、M(N)(Nは正数)とする。
次に、ブロックM(1)、M(2)、・・・、M(N)の順に、次のステップ1および2の処理を繰り返す。
ステップ1においては、ブロックM(i)(i=1〜N)を所定のビット長ずつ分割し、16個のワードW、W、・・・、W15(W:t=0〜15)とする。例えば、SHA−224、256の場合、32ビットずつ分割され、SHA−384、512の場合、64ビットずつ分割される。
次に、ステップ2においては、所定のビット長の変数a、b、c、d、e、f、g、hを用いて、ブロックM(i)(i=1〜N)の中間ハッシュ値H (i)〜H (i)(i=1〜N)を求める。a〜hのビット長は、SHA−224、256の場合、32ビット長であり、SHA−384、512の場合、64ビット長である。
ここで、ステップ2の処理を図7を参照して説明する。
図7は一般的なSHA−2のプロセス処理を示す説明図である。
図7(a)によると、まず、Initializeプロセスにおいて、a〜hは、あらかじめ規定されているハッシュ初期値H (0)〜H (0)が与えられる(i=1)。
次に、t=0〜79の各プロセスにおいて、a〜hは、数7で与えられる。なお、図7(a)のプロセスは、t=0〜79の80プロセスの場合について記載されているが、例えば、SHA−224、256の場合、t=0〜63の64プロセスとなる。
Figure 2008116856
なお、数7のT、Tは、数8で与えられる。Tは、便宜上T=T+dとする。
Figure 2008116856
なお、数8のΣ、Σ、Ch、Maj、K、Wは、上記「SECURE HASH STANDARD」の規定に基づくものである。
そして、中間ハッシュ値H (i)〜H (i)は、図7(b)のcomputeプロセスに示すように、数9で与えられる(ただし、i=1〜N)。
Figure 2008116856
このようにして、最終的には数10のメッセージダイジェストを得る。なお、||は、ビット連結を表す。
Figure 2008116856
その他、公知のSHA−2のハッシュ演算方法については、上記FIPS PUB(Federal Information Processing Standards Publication) 180-2(+Change Notice to include SHA-224)の「SECURE HASH STANDARD」に規定されている。
以上は、SHA−2の一般的なプロセス処理の説明であるが、以下、本発明の実施の形態2のSHA−2のプロセス処理およびSHA演算回路について説明する。
図8は本発明の実施の形態2に係るSHA−2のプロセス処理を示す説明図である。ここでは、SHA−384、512の場合を想定しているので、t=0〜79の80プロセスとして説明するが、例えば、SHA−224、256の場合、t=0〜63の64プロセスとなる。
図8の実施の形態2のプロセス処理は、後述する中間値(3次中間値)w〜z、w〜zを用いて、T、T、Tを求める点に特徴がある。これにより、図7のプロセス処理の場合に比べて、a〜hの値の変化回数を減少させることが可能となる。そこで、以下では、図7のプロセス処理と異なる点を中心に説明する。
図8(a)によると、Initializeプロセスにおいて、a〜hは、あらかじめ規定されているハッシュ初期値H (0)〜H (0)が与えられる(i=1)。
次に、t=0〜79の各プロセスにおいて、a〜hのうちのいずれか1つは、T+Tを保持し、他の1つはTを保持する。そして、残りの6つは、1つ前のプロセスでの値をそのまま保持する。
例えば、t=1の場合、cがT+Tを保持し、gがTを保持する。そして、6つの各a、b、d、e、f、hは、1つ前のプロセスt=0の値(a、b、d、e、f、h)をそのまま保持する。このようにすることによって、図8(a)のa〜hは、図7のプロセス処理の場合に比べて、値の変化回数が減ることがわかる。
図8(a)のT〜Tは、第1ないし第8の中間値w〜z、w〜zを用いて、数11で与えられる。
Figure 2008116856
ここで、中間値w〜zは、a〜dのいずれかの値が読み替えられた値であり、中間値w〜zは、e〜hのいずれかの値が読み替えられた値である。例えば、t=0の場合、数11のw〜z、w〜zは、Initializeプロセスのa〜hが読み替えられ、w=a、x=b、y=c、z=d、w=e、x=f、y=g、z=hとなる。また、例えば、t=1の場合、数11のw〜z、w〜zは、t=0のプロセスのa〜hが読み替えられ、w=d、x=a、y=b、z=c、w=h、x=e、y=f、z=gとなる。
そして、t=0〜79のプロセス後、図8(b)のcomputeプロセスにおいて、図7(b)と等価な中間ハッシュ値H (i)〜H (i)を得る。図8(b)は、図7(b)に示した数9と同様の演算式で表される。
これは、例えばt=0、4、・・・、76のとき、w=a、x=b、y=c、z=d、w=e、x=f、y=g、z=h(図8(a)参照)であり、中間値w〜z、w〜zへの読み替えが同じになる。すなわち、w〜z、w〜zへの読み替えは4プロセスごとに循環しており、80プロセス(t=0〜79)は4の倍数であるため、computeプロセスでの読み替えが必要ないからである。
なお、このことは、t=0〜63の64プロセスとなるSHA−224、256の場合にも同じことがいえる。なぜなら、64プロセスも、4の倍数のプロセスで終了するからである。そして、最終的には数10のメッセージダイジェストを得る。
以上のように、図8(a)のプロセス処理によると、中間値w〜z、w〜zを用いてT、T、Tを求めることにより、a〜hは、それぞれ、4プロセスごとに、T+TあるいはTを保持する。そして、それ以外のプロセスでは、a〜hは、前の値をそのまま保持する。このため、図7(a)の場合に比べて、全プロセスにおけるa〜hの値の変化回数が減少する。
次に、上記図8のSHA−2のハッシュ演算処理を行うSHA演算回路(SHA演算装置)の構成について図9を参照して説明する。
図9は本発明の実施の形態2に係るSHA演算回路20の構成例を示すブロック図である。
図9において、SHA演算回路20は、ハッシュ保持部21、第1ないし第8の記憶部22A〜22H、演算部23、第1の定数設定部(W設定部)24および第2の定数設定部(K設定部)25を含んでいる。さらに、SHA演算回路20は、選択部26および2つの読替部27A、27Bをさらに含んでいる。なお、2つの読替部27A、27Bは1つで構成するようにしてもよい。
選択部26は、図8(a)のプロセスに従って、T+TまたはTを格納する各記憶部を選択する。この選択に際して、選択部26は、所定の選択信号ENa〜ENhを生成し、その選択信号を、選択する記憶部へ出力する。なお、ENa=ENe、ENb=ENf、ENc=ENg、ENd=ENhの関係がある。
例えば、図8(a)のt=0の場合、選択部26は、記憶部22Dへ選択信号ENdを出力し、記憶部22DにT+Tを保持させる。さらに、選択部26は、記憶部22Hへ選択信号ENhを出力し、記憶部22HにTを保持させる。
各読替部27A、27Bは、例えば、複数個の4to1セレクタで構成され、図8(a)のプロセスに従って、各記憶部22A〜22Hから取得したa〜hを中間値w〜z、w〜zに読み替える。
例えば、図8(a)のt=0の場合、読替部27Aは、各記憶部22A〜22Dから取得したa〜dをそのまま、w〜zに読み替える。そして、読替部27Bは、各記憶部22E〜22Hから取得したe〜hをそのまま、w〜zに読み替える。
演算部23は、図8(a)のプロセスに従って、読替部27Aから取得した中間値w〜z、読替部27Bから取得した中間値w〜z、第1の定数設定部24に設定されたW、および第2の定数設定部25に設定されたKに基づいて、T+TおよびTを演算する。このときの演算式は、数11のとおりである。
各記憶部22A〜22H(各記憶部22A〜22Dは第1のグループに属し、各記憶部22E〜22Hは第2のグループに属する)は、例えばフリップフロップで構成され、選択部26からの選択信号に基づいて、所定の値(a〜h、T+T、T)を格納する。そして、各記憶部22A〜22Hは、t=79(またはt=63)のプロセス後、a〜hをハッシュ保持部21へ出力する。この出力を受けて、ハッシュ保持部21は、図8(b)のcomputeプロセスを実行し、出力されたa〜hおよび前回のハッシュ値H (i−1)〜H (i−1)に基づいて中間ハッシュ値H (i)〜H (i)を得る。
例えば、t=1の場合、記憶部22Cがc=T+Tを保持し、記憶部22Gがg=Tを保持する。そして、残りの記憶部22A、22B、22D〜22F、22Hが、1つ前のプロセスt=0の値(a、b、d〜f、h)をそのまま保持する。これにより、図8(a)のプロセス処理時の各記憶部22A〜22Hは、各記憶部間で値を移動(シフト動作)することになる図7(a)の場合と異なり、各記憶部22A〜22H間の値の移動がなくなる。
また、各記憶部22A〜22Hは、4プロセスごとに、T+TあるいはTを保持することになる。
よって、各記憶部22A〜22Hのハードウェアの駆動率が減少し、SHA演算回路20の消費電力が低減する。
なお、本発明は、実施の形態1、2に限られるものではなく、種々の変形が可能である。例えば、記憶部は、フリップフロップで構成した場合について説明したが、RAM(Random Access Memory)などのメモリを用いて構成してもよい。
また、実施の形態2では、2つのグループに記憶部を分類した場合について説明したが、グループ分けをすることなく、適用してもよい。
一般的なSHA−1のプロセス処理を示す説明図。 一般的なSHA−1のSHA演算回路の構成例を示す図。 本発明の実施の形態1に係るSHA−1のプロセス処理を示す説明図。 本発明の実施の形態1に係るSHA−1のSHA演算回路の構成例を示す図。 図4の第1の記憶部の構成例を示す回路図。 図3のSHA−1のプロセス処理の変形を示す説明図。 一般的なSHA−2のプロセス処理を示す説明図。 本発明の実施の形態2に係るSHA−2のプロセス処理を示す説明図。 本発明の実施の形態2に係るSHA−2のSHA演算回路の構成例を示す図。
符号の説明
10 SHA演算回路
11 ハッシュ保持部
121A〜121E 記憶部
131 演算部
14 第1の定数設定部
15 第2の定数設定部
16 選択部
17 読替部

Claims (8)

  1. SHA−1アルゴリズムに基づくハッシュ演算に用いられる第1ないし第5の変数をそれぞれ、第1ないし第5の記憶部に格納するステップと、
    前記格納した第1ないし第5の変数をそれぞれ、第1ないし第5の中間値に読み替えるステップと、
    前記読み替えた第1ないし第5の中間値を用いて、SHA−1アルゴリズムに基づく一時変数を演算するステップと、
    前記演算した一時変数を格納する記憶部を前記第1ないし第5の記憶部の中から選択するステップと、
    クロックサイクルに基づくタイミングで順次、前記選択した記憶部の変数に前記演算した一時変数を保持するとともに、他の1つの記憶部の変数に保持されていた値をローテートして当該他の1つの記憶部の変数に保持し、かつ残りの記憶部の変数に保持されていた値をそれぞれ、そのまま当該残りの各記憶部の変数に保持するステップと、
    前記保持した各記憶部の変数を用いてハッシュ値を演算するステップと、
    を含むSHA演算方法。
  2. 前記読み替えた第1ないし第5の中間値のうちの一部の中間値が、対応する変数をローテートして読み替えられた場合、
    前記演算するステップでは、前記ローテートして読み替えた中間値を用いて前記一時変数を演算し、
    前記保持するステップでは、クロックサイクルに基づくタイミングで順次、前記ローテートして読み替えた中間値を用いて演算した一時変数を前記選択した記憶部の変数に保持するとともに、前記他の1つの記憶部の変数に保持する値をローテートすることなく、残りのすべての記憶部の変数に保持されていた値をそれぞれ、そのまま当該残りの各記憶部の変数に保持する、
    請求項1に記載のSHA演算方法。
  3. SHA−2アルゴリズムに基づくハッシュ値の演算に用いられる、第1ないし第8の変数をそれぞれ、第1ないし第8の記憶部に格納するステップと、
    前記格納した第1ないし第8の変数をそれぞれ、第1ないし第8の中間値に読み替えるステップと、
    前記読み替えた第1ないし第8の中間値を用いて、SHA−2アルゴリズムに基づく、第1および第2の一時変数を演算するステップと、
    前記演算した第1および第2の一時変数を格納する記憶部をそれぞれ、前記第1ないし第8の記憶部の中から選択するステップと、
    クロックサイクルに基づくタイミングで順次、前記選択した記憶部の変数にそれぞれ、第1および第2の一時変数を保持し、かつ残りの記憶部の変数に保持されていた値をそれぞれ、そのまま当該残りの各記憶部の変数に保持するステップと、
    前記保持した各記憶部の変数を用いてハッシュ値を演算するステップと、
    を含むSHA演算方法。
  4. 前記SHA−2アルゴリズムは、SHA−224、SHA−256、SHA−384またはSHA−512のアルゴリズムである、
    請求項3に記載のSHA演算方法。
  5. SHA−1アルゴリズムに基づくハッシュ演算に用いられ、かつ第1ないし第5の記憶部に格納される第1ないし第5の変数をそれぞれ、第1ないし第5の中間値に読み替える読替部と、
    前記読み替えられた第1ないし第5の中間値を用いて、SHA−1アルゴリズムに基づく一時変数を演算する演算部と、
    前記第1ないし第5の記憶部の中から、前記演算された一時変数を格納する記憶部を選択する選択部と、
    クロックサイクルに基づくタイミングで順次、前記選択に従って前記演算された一時変数を1つの前記変数に保持するとともに、他の1つの変数に保持されていた値をローテートして当該他の1つの変数に保持し、かつ残りの変数に保持されていた値をそれぞれ、そのまま当該残りの各変数に保持する前記第1ないし第5の記憶部と、
    前記保持された第1ないし第5の記憶部の変数を用いてハッシュ値を演算して保持するハッシュ保持部と、
    を含むSHA演算回路。
  6. 前記読替部が、前記第1ないし第5の変数のうちの一部の変数をローテートして前記中間値を読み替えた場合、
    前記演算部は、前記ローテートして読み替えられた中間値を用いて前記一時変数を演算し、
    前記第1ないし第5の記憶部のうちの前記選択された記憶部は、前記クロックサイクルに基づくタイミングで順次、前記ローテートして読み替えた中間値を用いて演算された一時変数を当該変数に保持し、残りの記憶部は、いずれもローテートすることなく、当該変数に保持されていた値をそれぞれ、そのまま各変数に保持する、
    請求項5に記載のSHA演算回路。
  7. SHA−2アルゴリズムに基づくハッシュ演算に用いられ、かつ第1ないし第8の記憶部に格納される第1ないし第8の変数をそれぞれ、第1ないし第8の中間値に読み替える読替部と、
    前記読み替えられた第1ないし第8の中間値を用いて、SHA−2アルゴリズムに基づく、第1および第2の一時変数を演算する演算部と、
    前記第1ないし第8の記憶部の中から、前記演算された第1および第2の一時変数をそれぞれ格納する記憶部を選択する選択部と、
    クロックサイクルに基づくタイミングで順次、前記選択に従って前記演算した第1および第2の一時変数をそれぞれ、対応する前記変数に保持し、かつ残りの記憶部の変数に保持されていた値をそれぞれ、そのまま当該残りの各変数に保持する前記第1ないし第8の記憶部と、
    前記保持された第1ないし第8の記憶部の変数を用いてハッシュ値を演算して保持するハッシュ保持部と、
    を含むSHA演算回路。
  8. 前記SHA−2アルゴリズムは、SHA−224、SHA−256、SHA−384またはSHA−512のアルゴリズムである、
    請求項7に記載のSHA演算回路。
JP2006302202A 2006-11-08 2006-11-08 Sha演算方法およびsha演算装置 Active JP4308840B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2006302202A JP4308840B2 (ja) 2006-11-08 2006-11-08 Sha演算方法およびsha演算装置
CN2007101625217A CN101178861B (zh) 2006-11-08 2007-10-16 Sha运算方法及sha运算装置
US11/873,496 US7962753B2 (en) 2006-11-08 2007-10-17 Method and a circuit for SHA operation with power saved
KR1020070105408A KR101389034B1 (ko) 2006-11-08 2007-10-19 Sha 연산 방법 및 sha 연산 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006302202A JP4308840B2 (ja) 2006-11-08 2006-11-08 Sha演算方法およびsha演算装置

Publications (2)

Publication Number Publication Date
JP2008116856A true JP2008116856A (ja) 2008-05-22
JP4308840B2 JP4308840B2 (ja) 2009-08-05

Family

ID=39359748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006302202A Active JP4308840B2 (ja) 2006-11-08 2006-11-08 Sha演算方法およびsha演算装置

Country Status (4)

Country Link
US (1) US7962753B2 (ja)
JP (1) JP4308840B2 (ja)
KR (1) KR101389034B1 (ja)
CN (1) CN101178861B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010041307A1 (ja) * 2008-10-07 2010-04-15 富士通株式会社 暗号化装置

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100901697B1 (ko) * 2007-07-09 2009-06-08 한국전자통신연구원 저전력 sha-1 해쉬 연산 장치 및 이를 이용한 저전력hmac 암호 장치
US9456054B2 (en) 2008-05-16 2016-09-27 Palo Alto Research Center Incorporated Controlling the spread of interests and content in a content centric network
DE102008030421A1 (de) * 2008-06-26 2010-01-07 Micronas Gmbh Verfahren und Schaltungsanordnung zur SHA1- und SHA256-Signatur Generierung
JP2010128392A (ja) * 2008-11-28 2010-06-10 Canon Inc ハッシュ処理装置及びその方法
US20110055582A1 (en) * 2009-08-31 2011-03-03 Apple Inc. Hash function using a domino game process
US8923293B2 (en) 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
CN101894229A (zh) * 2010-06-30 2010-11-24 华南理工大学 一种兼容三种sha标准的装置及其实现方法
US8874933B2 (en) * 2012-09-28 2014-10-28 Intel Corporation Instruction set for SHA1 round processing on 128-bit data paths
US10098051B2 (en) 2014-01-22 2018-10-09 Cisco Technology, Inc. Gateways and routing in software-defined manets
US9954678B2 (en) 2014-02-06 2018-04-24 Cisco Technology, Inc. Content-based transport security
US9836540B2 (en) 2014-03-04 2017-12-05 Cisco Technology, Inc. System and method for direct storage access in a content-centric network
US9626413B2 (en) 2014-03-10 2017-04-18 Cisco Systems, Inc. System and method for ranking content popularity in a content-centric network
US9473405B2 (en) * 2014-03-10 2016-10-18 Palo Alto Research Center Incorporated Concurrent hashes and sub-hashes on data streams
US9716622B2 (en) 2014-04-01 2017-07-25 Cisco Technology, Inc. System and method for dynamic name configuration in content-centric networks
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9992281B2 (en) 2014-05-01 2018-06-05 Cisco Technology, Inc. Accountable content stores for information centric networks
US9609014B2 (en) 2014-05-22 2017-03-28 Cisco Systems, Inc. Method and apparatus for preventing insertion of malicious content at a named data network router
US9699198B2 (en) 2014-07-07 2017-07-04 Cisco Technology, Inc. System and method for parallel secure content bootstrapping in content-centric networks
US9621354B2 (en) 2014-07-17 2017-04-11 Cisco Systems, Inc. Reconstructable content objects
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9590887B2 (en) 2014-07-18 2017-03-07 Cisco Systems, Inc. Method and system for keeping interest alive in a content centric network
US9882964B2 (en) 2014-08-08 2018-01-30 Cisco Technology, Inc. Explicit strategy feedback in name-based forwarding
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9800637B2 (en) 2014-08-19 2017-10-24 Cisco Technology, Inc. System and method for all-in-one content stream in content-centric networks
US20170300875A1 (en) * 2014-09-23 2017-10-19 Spondoolies Tech Ltd. Method and system for reducing power consumption in bitcoin mining via data input hopping
US10069933B2 (en) 2014-10-23 2018-09-04 Cisco Technology, Inc. System and method for creating virtual interfaces based on network characteristics
US9960909B2 (en) 2014-12-08 2018-05-01 Open-Silicon Inc. High speed and low power hashing system and method
US9590948B2 (en) 2014-12-15 2017-03-07 Cisco Systems, Inc. CCN routing using hardware-assisted hash tables
US10237189B2 (en) 2014-12-16 2019-03-19 Cisco Technology, Inc. System and method for distance-based interest forwarding
US10003520B2 (en) 2014-12-22 2018-06-19 Cisco Technology, Inc. System and method for efficient name-based content routing using link-state information in information-centric networks
US9660825B2 (en) 2014-12-24 2017-05-23 Cisco Technology, Inc. System and method for multi-source multicasting in content-centric networks
US9916457B2 (en) 2015-01-12 2018-03-13 Cisco Technology, Inc. Decoupled name security binding for CCN objects
US9832291B2 (en) 2015-01-12 2017-11-28 Cisco Technology, Inc. Auto-configurable transport stack
US9946743B2 (en) 2015-01-12 2018-04-17 Cisco Technology, Inc. Order encoded manifests in a content centric network
US9954795B2 (en) 2015-01-12 2018-04-24 Cisco Technology, Inc. Resource allocation using CCN manifests
US10333840B2 (en) 2015-02-06 2019-06-25 Cisco Technology, Inc. System and method for on-demand content exchange with adaptive naming in information-centric networks
US10075401B2 (en) 2015-03-18 2018-09-11 Cisco Technology, Inc. Pending interest table behavior
US10075402B2 (en) 2015-06-24 2018-09-11 Cisco Technology, Inc. Flexible command and control in content centric networks
US10701038B2 (en) 2015-07-27 2020-06-30 Cisco Technology, Inc. Content negotiation in a content centric network
US9986034B2 (en) 2015-08-03 2018-05-29 Cisco Technology, Inc. Transferring state in content centric network stacks
US9832123B2 (en) 2015-09-11 2017-11-28 Cisco Technology, Inc. Network named fragments in a content centric network
US10355999B2 (en) 2015-09-23 2019-07-16 Cisco Technology, Inc. Flow control with network named fragments
US9977809B2 (en) 2015-09-24 2018-05-22 Cisco Technology, Inc. Information and data framework in a content centric network
US10313227B2 (en) 2015-09-24 2019-06-04 Cisco Technology, Inc. System and method for eliminating undetected interest looping in information-centric networks
US10454820B2 (en) 2015-09-29 2019-10-22 Cisco Technology, Inc. System and method for stateless information-centric networking
US10263965B2 (en) 2015-10-16 2019-04-16 Cisco Technology, Inc. Encrypted CCNx
US10020934B2 (en) * 2015-11-05 2018-07-10 Intel Corporation Hardware accelerator for cryptographic hash operations
US9912776B2 (en) 2015-12-02 2018-03-06 Cisco Technology, Inc. Explicit content deletion commands in a content centric network
US10097346B2 (en) 2015-12-09 2018-10-09 Cisco Technology, Inc. Key catalogs in a content centric network
US10257271B2 (en) 2016-01-11 2019-04-09 Cisco Technology, Inc. Chandra-Toueg consensus in a content centric network
US10305864B2 (en) 2016-01-25 2019-05-28 Cisco Technology, Inc. Method and system for interest encryption in a content centric network
US10043016B2 (en) 2016-02-29 2018-08-07 Cisco Technology, Inc. Method and system for name encryption agreement in a content centric network
US10742596B2 (en) 2016-03-04 2020-08-11 Cisco Technology, Inc. Method and system for reducing a collision probability of hash-based names using a publisher identifier
US10003507B2 (en) 2016-03-04 2018-06-19 Cisco Technology, Inc. Transport session state protocol
US10038633B2 (en) 2016-03-04 2018-07-31 Cisco Technology, Inc. Protocol to query for historical network information in a content centric network
US10051071B2 (en) 2016-03-04 2018-08-14 Cisco Technology, Inc. Method and system for collecting historical network information in a content centric network
US9832116B2 (en) 2016-03-14 2017-11-28 Cisco Technology, Inc. Adjusting entries in a forwarding information base in a content centric network
US10212196B2 (en) 2016-03-16 2019-02-19 Cisco Technology, Inc. Interface discovery and authentication in a name-based network
US11436656B2 (en) 2016-03-18 2022-09-06 Palo Alto Research Center Incorporated System and method for a real-time egocentric collaborative filter on large datasets
US10067948B2 (en) 2016-03-18 2018-09-04 Cisco Technology, Inc. Data deduping in content centric networking manifests
US10091330B2 (en) 2016-03-23 2018-10-02 Cisco Technology, Inc. Interest scheduling by an information and data framework in a content centric network
US10033639B2 (en) 2016-03-25 2018-07-24 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
US10320760B2 (en) 2016-04-01 2019-06-11 Cisco Technology, Inc. Method and system for mutating and caching content in a content centric network
US9930146B2 (en) 2016-04-04 2018-03-27 Cisco Technology, Inc. System and method for compressing content centric networking messages
US10425503B2 (en) 2016-04-07 2019-09-24 Cisco Technology, Inc. Shared pending interest table in a content centric network
US10027578B2 (en) 2016-04-11 2018-07-17 Cisco Technology, Inc. Method and system for routable prefix queries in a content centric network
US10404450B2 (en) 2016-05-02 2019-09-03 Cisco Technology, Inc. Schematized access control in a content centric network
US10320675B2 (en) 2016-05-04 2019-06-11 Cisco Technology, Inc. System and method for routing packets in a stateless content centric network
US10547589B2 (en) 2016-05-09 2020-01-28 Cisco Technology, Inc. System for implementing a small computer systems interface protocol over a content centric network
US10063414B2 (en) 2016-05-13 2018-08-28 Cisco Technology, Inc. Updating a transport stack in a content centric network
US10084764B2 (en) 2016-05-13 2018-09-25 Cisco Technology, Inc. System for a secure encryption proxy in a content centric network
US10103989B2 (en) 2016-06-13 2018-10-16 Cisco Technology, Inc. Content object return messages in a content centric network
US10305865B2 (en) 2016-06-21 2019-05-28 Cisco Technology, Inc. Permutation-based content encryption with manifests in a content centric network
US10148572B2 (en) 2016-06-27 2018-12-04 Cisco Technology, Inc. Method and system for interest groups in a content centric network
US10142098B2 (en) 2016-06-29 2018-11-27 Intel Corporation Optimized SHA-256 datapath for energy-efficient high-performance Bitcoin mining
US20180004242A1 (en) * 2016-06-29 2018-01-04 Intel Corporation Low clock-energy 3-phase latch-based clocking scheme
US10313108B2 (en) 2016-06-29 2019-06-04 Intel Corporation Energy-efficient bitcoin mining hardware accelerators
US10009266B2 (en) 2016-07-05 2018-06-26 Cisco Technology, Inc. Method and system for reference counted pending interest tables in a content centric network
US9992097B2 (en) 2016-07-11 2018-06-05 Cisco Technology, Inc. System and method for piggybacking routing information in interests in a content centric network
US10122624B2 (en) 2016-07-25 2018-11-06 Cisco Technology, Inc. System and method for ephemeral entries in a forwarding information base in a content centric network
US10069729B2 (en) 2016-08-08 2018-09-04 Cisco Technology, Inc. System and method for throttling traffic based on a forwarding information base in a content centric network
US10956412B2 (en) 2016-08-09 2021-03-23 Cisco Technology, Inc. Method and system for conjunctive normal form attribute matching in a content centric network
US10033642B2 (en) 2016-09-19 2018-07-24 Cisco Technology, Inc. System and method for making optimal routing decisions based on device-specific parameters in a content centric network
US10212248B2 (en) 2016-10-03 2019-02-19 Cisco Technology, Inc. Cache management on high availability routers in a content centric network
US10447805B2 (en) 2016-10-10 2019-10-15 Cisco Technology, Inc. Distributed consensus in a content centric network
US10135948B2 (en) 2016-10-31 2018-11-20 Cisco Technology, Inc. System and method for process migration in a content centric network
US10243851B2 (en) 2016-11-21 2019-03-26 Cisco Technology, Inc. System and method for forwarder connection information in a content centric network
CN111600699A (zh) * 2020-06-17 2020-08-28 深圳比特微电子科技有限公司 用于实现散列算法的电路和方法
GB2602243B (en) * 2020-10-08 2023-04-19 Metaswitch Networks Ltd Processing and storing data using a hash table data structure
CN114648319A (zh) * 2020-12-18 2022-06-21 深圳比特微电子科技有限公司 执行哈希算法的电路、计算芯片、加密货币矿机和方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002072879A (ja) * 2000-08-28 2002-03-12 Matsushita Electric Works Ltd ハッシュ関数処理装置
US7142669B2 (en) * 2000-11-29 2006-11-28 Freescale Semiconductor, Inc. Circuit for generating hash values
US7299355B2 (en) * 2001-01-12 2007-11-20 Broadcom Corporation Fast SHA1 implementation
JP4206205B2 (ja) 2001-03-26 2009-01-07 株式会社日立製作所 Sha演算の高速演算回路
JP2003271057A (ja) 2002-03-18 2003-09-25 Toshiba Corp ハッシュ関数演算プログラム及び装置
JP3921424B2 (ja) * 2002-07-17 2007-05-30 富士通株式会社 ハッシュ関数処理回路
JP2004078053A (ja) * 2002-08-22 2004-03-11 Sony Corp 暗号化装置
JP2004240298A (ja) 2003-02-07 2004-08-26 Matsushita Electric Ind Co Ltd ハッシュ関数処理装置
TWI238636B (en) * 2003-06-19 2005-08-21 Yen-Fu Liu Operation device and method of fast secure hash algorithm
US7921300B2 (en) * 2003-10-10 2011-04-05 Via Technologies, Inc. Apparatus and method for secure hash algorithm
KR20050065976A (ko) * 2003-12-26 2005-06-30 한국전자통신연구원 Sha-1 해쉬값 연산 장치 및 방법
CN100521600C (zh) * 2005-12-26 2009-07-29 上海洲信信息技术有限公司 保证电子邮件安全的实现方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010041307A1 (ja) * 2008-10-07 2010-04-15 富士通株式会社 暗号化装置
JP5198572B2 (ja) * 2008-10-07 2013-05-15 富士通株式会社 暗号化装置

Also Published As

Publication number Publication date
JP4308840B2 (ja) 2009-08-05
US20080107259A1 (en) 2008-05-08
CN101178861A (zh) 2008-05-14
KR101389034B1 (ko) 2014-04-28
US7962753B2 (en) 2011-06-14
KR20080041990A (ko) 2008-05-14
CN101178861B (zh) 2011-05-25

Similar Documents

Publication Publication Date Title
JP4308840B2 (ja) Sha演算方法およびsha演算装置
US7702100B2 (en) Key generation for advanced encryption standard (AES) Decryption and the like
Kaps et al. Energy comparison of AES and SHA-1 for ubiquitous computing
JP4740611B2 (ja) 可変キー長を有する初期ラウンドキーに対応する暗号ラウンドキーと復号ラウンドキーとを選択的に発生させるキースケジュラ
CN112422272B (zh) 一种防功耗攻击的aes加密方法及电路
US20100254530A1 (en) block cipher algorithm based encryption processing method
CN116488794B (zh) 基于fpga的高速sm4密码模组实现方法及装置
Luo et al. Design and implementation of area-optimized AES based on FPGA
CN111488627A (zh) 一种安全散列算法的消息拓展电路
WO2012132621A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Noor et al. Resource shared galois field computation for energy efficient AES/CRC in IoT applications
CN112350819B (zh) 一种全流水线sms4加解密方法及系统
CN111478766A (zh) 一种分组密码meg实现方法、装置及存储介质
JP2003098959A (ja) 暗号処理装置
Cao et al. Application-oriented SHA-256 hardware design for low-cost RFID
CN112054889B (zh) 消息认证码的生成方法及生成装置、计算机可读存储介质
US9031230B2 (en) Encryption processing device, encryption processing method, and program
Ahmadi et al. Improved guess and determine attack on SOSEMANUK
JP2010107947A (ja) Shaアルゴリズム基盤のメッセージスケジュール演算方法、メッセージ圧縮演算方法及びこれを行う暗号装置
Lam et al. Implementation of lightweight cryptography core PRESENT and DM-PRESENT on FPGA
Dhanuskodi et al. An improved clocking methodology for energy efficient low area AES architectures using register renaming
KR20060014420A (ko) 암호화/암호 해독용 장치, 메모리 요구량 감소 방법 및컴퓨터 프로그램 제품
Ge et al. Ultra-low power and high speed design and implementation of AES and SHA1 hardware cores in 65 nanometer CMOS technology
Jenny et al. Benchmarking and Optimizing AES for Lightweight Cryptography on ASICs
CN115834044A (zh) 一种数据加解密系统、数据加密方法及数据解密方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080811

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081218

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090210

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090403

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: 20090428

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: 20090501

R150 Certificate of patent or registration of utility model

Ref document number: 4308840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350