説明

HMAC演算回路

【課題】既存のHMAC演算回路よりも、用途が広いHMAC演算回路を、提供する。
【解決手段】HMAC演算回路10を、入力データと鍵データとからHMAC(ハッシュ関数を用いたメッセージ認証コード)を生成して出力する回路、入力データに対するハッシュ関数回路22或いは23の演算結果(つまり,ハッシュ値)をそのまま出力する回路のいずれとしても機能可能な回路として構成しておく。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、HMAC(ハッシュ関数を用いたメッセージ認証コード)を生成するためのHMAC演算回路に、関する。
【背景技術】
【0002】
周期のように、近年、情報が改竄されていないことや,情報の送信者/作成者を確認できるようにするために、メッセージ認証コードを用いることが盛んに行わるようになってきている。
【0003】
メッセージ認証コードとしては、ハッシュ関数を用いたメッセージ認証コード(以下、HMACと表記する),ブロック暗号の計算に基づくメッセージ認証コード等が、知られている。そして、HMACは、データと鍵データとを結合したデータのハッシュ値を,或るアルゴリズム(MD5,SHA−1等)にて求めた後、そのハッシュ値と鍵データとを結合したデータのハッシュ値を,同じアルゴリズムで求めることにより得られる値であるため、HMACを演算するための既存の回路(例えば、特許文献1参照)は、いずれも、図3に示したような構成の回路、すなわち、同じハッシュ関数回路(入力されたデータのハッシュ値をMD5により算出する回路)が,2度,使用されてHMACが算出される回路となっている。
【0004】
【特許文献1】特開2002−162904号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
本発明の課題は、既存の,HMACを演算するための回路よりも、用途が広いHMAC演算回路を、提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明の第1の態様のHMAC演算回路は、データのハッシュ値を求めるためのハッシュ関数回路と、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記ハッシュ関数回路を利用することにより生成して出力するHMAC生成・出力回路と、入力されたデータのハッシュ値を前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路とを、備える。
【0007】
このような構成を有する本発明の第1の態様のHMAC演算回路は、HMACを算出するための回路として使用することも、ハッシュ値を算出するための回路としても使用することも可能な回路(つまり、HMACを演算するための既存の回路よりも、用途が広い回路)として機能することになる。従って、このHMAC演算回路を用いれば、例えば、セキュリティ対策のために,HMACとハッシュ値とを利用する情報処理装置(目的によって、HMACとハッシュ値とを使い分ける情報処理装置)を、ハッシュ値を求めるための回路を実装することなく製造できることになる。
【0008】
また、本発明の第2の態様のHMAC演算回路は、データのハッシュ値を求めるための複数のハッシュ関数回路と、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の,指定されたハッシュ関数回路を利用することにより生成して出力するHMAC生成・出力回路と、入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の,指定された前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路とを、備える。
【0009】
このような構成を有する本発明の第2の態様のHMAC演算回路は、本発明の第1の態様のHMAC演算回路よりも生成可能なHMAC/ハッシュ値の種類が多い回路として機能することになる。従って、このHMAC演算回路を用いれば、より高機能な情報処理装置を製造できることになる。
【0010】
また、本発明の第3の態様のHMAC演算回路は、データのハッシュ値を求めるための複数のハッシュ関数回路と、前記複数のハッシュ関数回路と,1系統のバスにより接続された制御回路であって、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の,指定されたハッシュ関数回路を利用することにより生成して出力する機能と、入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の,指定された前記ハッシュ関数回路に生成させて出力する機能とを有する制御回路とを、備える。
【0011】
すなわち、本発明の第3の態様のHMAC演算回路は、本発明の第2の態様のHMAC演算回路と同機能の回路となっている。ただし、本発明の第3の態様のHMAC演算回路は、各ハッシュ関数回路がバスにより制御回路に接続された回路であるため、このHMAC演算回路は、一度、設計を行っておけば、ハッシュ関数回路の追加等を容易に行える回路となっていると言うことが出来る。
【発明を実施するための最良の形態】
【0012】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【0013】
《第1実施形態》
図1に示してあるように、本発明の第1実施形態に係るHMAC演算回路10は、第1カウンタ11と,ハッシュ/HMAC切替レジスタ12と,ハッシュ関数切替レジスタ13と,第2カウンタ14と,アンドゲート15と,3つのセレクタ16〜18と,デマルチプレクサ19と,鍵データ加工部20と,データ結合部21と,2つのハッシュ関数回路22及び23とを備えた半導体集積回路である。
【0014】
このHMAC演算回路10が備えるハッシュ関数回路22は、セレクタ17から入力されたデータのハッシュ値をMD5により算出する回路である。ハッシュ関数回路23は、セレクタ17から入力されたデータのハッシュ値をSHA−1により算出する回路である。鍵データ加工部20は、HMAC演算回路10に入力された鍵データに対して所定の加工を施す回路である。データ結合部21は、鍵データ加工部20によって加工された鍵データと,セレクタ16からのデータとを結合したデータを出力する回路である。
【0015】
第1カウンタ11は、図から(端子間の接続形態から)明らかなように、“1”(Hレベルの信号)がデータイネーブルとして入力されると、“0”,“1”を,クロック(図示せず)に同期した形で交互に出力する状態となる回路(レジスタを利用したカウンタ)である。この第1カウンタ11の出力は、制御信号としてセレクタ16に入力されている。
【0016】
セレクタ16は、第1カウンタ11からの制御信号が“0”である場合には、入力データを出力し(データ結合部21に供給し)、第1カウンタ11からの制御信号が“1”である場合には、デマルチプレクサ19からのデータを出力する回路である。
【0017】
ハッシュ/HMAC切替レジスタ12は、“1”或いは“0”が設定されるレジスタである。このハッシュ/HMAC切替レジスタ12の出力(設定値)は、セレクタ17及びアンドゲート15に入力されている。
【0018】
セレクタ17は、ハッシュ/HMAC切替レジスタ12に“0”が設定されている場合には、入力データを出力し(ハッシュ関数回路22及び23に供給し)、ハッシュ/HMAC切替レジスタ12に“1”が設定されている場合には、データ結合部21からのデータを出力する回路である。
【0019】
ハッシュ関数切替レジスタ13は、ハッシュ関数回路22を利用する場合には、“0”が設定され、ハッシュ関数回路23を利用する場合には、“1”が設定されるレジスタである。セレクタ18は、このハッシュ関数切替レジスタ12に“0”が設定されている場合には、ハッシュ関数回路22の出力をデマルチプレクサ19に供給し、ハッシュ関数切替レジスタ12に“1”が設定されている場合には、ハッシュ関数回路23の出力をデマルチプレクサ19に供給する回路である。
【0020】
第2カウンタ14は、図から明らかなように、“1”がハッシュ関数出力データイネーブルとして入力されると、アンドゲート15に対して、まず、“1”を出力し、その後、“0”を出力する回路である。
【0021】
デマルチプレクサ19は、アンドゲート15から“1”が入力されている場合(ハッシュ/HMAC切替レジスタ12,第2カウンタ14の出力が,いずれも“1”である場合)には、セレクタ18からのデータをセレクタ16に供給し、アンドゲート19から“0”が入力されている場合には、セレクタ18からのデータを演算結果として出力する回路である。
【0022】
以上,説明した回路構成から明らかなように、本実施形態に係るHMAC演算回路10は、ハッシュ/HMAC切替レジスタ12に“1”を設定しておいた場合には、入力データと鍵データとからHMACを生成して出力する回路として機能し、ハッシュ/HMAC切替レジスタ12に“0”を設定しておいた場合には、入力データに対するハッシュ関数回路22或いは23の演算結果(つまり,ハッシュ値)をそのまま出力する回路として機能する回路となっている。
【0023】
従って、このHMAC演算回路10を用いれば、例えば、セキュリティ対策のために,HMACとハッシュ値とを利用する情報処理装置(目的によって、HMACとハッシュ値とを使い分ける情報処理装置)を、ハッシュ値を求めるための回路を実装することなく製造できることになる。
【0024】
《第2実施形態》
図2に示してあるように、本発明の第2実施形態に係るHMAC演算回路30は、制御回路31と,2つのハッシュ関数回路32,33とが,バスにより接続された構成を有する回路である。
【0025】
このHMAC演算回路30が備えるハッシュ関数回路32は、ハッシュ関数回路22と同様に、データのハッシュ値をMD5により算出する回路である。また、ハッシュ関数回路33は、ハッシュ関数回路23と同様に、データのハッシュ値をSHA−1により算出する回路である。ただし、ハッシュ関数回路32,33は、バスから入力されたデータに対して,ハッシュ関数による演算を行い、演算結果をバス上に出力する回路となっている。
【0026】
そして、HMAC演算回路30が備える制御回路31は,バスを介して接続されているハッシュ関数回路32或いは33(外部から指定されている方の回路)を利用することにより、HMAC演算回路30を,HMAC演算回路10と同機能の回路(ハッシュ値とHMACとを出力可能な回路)として動作させることが出来るように設計,製造された回路となっている。
【0027】
要するに、本実施形態に係るHMAC演算回路30は、HMAC演算回路10と同機能の回路となっている。従って、このHMAC演算回路30を用いても、HMAC演算回路10を用いた場合と同様に、セキュリティ対策のために,HMACとハッシュ値とを利用する情報処理装置を、ハッシュ値を求めるための回路を実装することなく製造できることになる。
【0028】
また、HMAC演算回路30に採用されている構成は、ハッシュ関数回路を簡単に追加できる構成となっている。従って、このHMAC演算回路30は、一度、設計を行っておけば、ハッシュ関数回路の追加等を容易に行える回路となっていると言うことも出来る。
【図面の簡単な説明】
【0029】
【図1】第1実施形態に係るHMAC演算回路の構成図。
【図2】第2実施形態に係るHMAC演算回路の構成図。
【図3】従来のHMAC演算回路の構成図。
【符号の説明】
【0030】
10,30 HMAC演算回路、 11 第1カウンタ
12 ハッシュ/HMAC切替レジスタ、 13 ハッシュ関数切替レジスタ
14 第2カウンタ、 15 アンドゲート、 16,17,18 セレクタ
19 デマルチプレクサ、 20 鍵データ加工部、 21 データ結合部
22,23,32,33 ハッシュ関数回路、 31 制御回路

【特許請求の範囲】
【請求項1】
データのハッシュ値を求めるためのハッシュ関数回路と、
入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記ハッシュ関数回路を利用することにより生成して出力するHMAC生成・出力回路と、
入力されたデータのハッシュ値を前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路と
を、備えることを特徴とするHMAC演算回路。
【請求項2】
データのハッシュ値を求めるための複数のハッシュ関数回路と、
入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の,指定されたハッシュ関数回路を利用することにより生成して出力するHMAC生成・出力回路と、
入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の,指定された前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路と
を、備えることを特徴とするHMAC演算回路。
【請求項3】
データのハッシュ値を求めるための複数のハッシュ関数回路と、
前記複数のハッシュ関数回路と,1系統のバスにより接続された制御回路であって、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の,指定されたハッシュ関数回路を利用することにより生成して出力する機能と、入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の,指定された前記ハッシュ関数回路に生成させて出力する機能とを有する制御回路と
を、備えることを特徴とするHMAC演算回路。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2007−164589(P2007−164589A)
【公開日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2005−361860(P2005−361860)
【出願日】平成17年12月15日(2005.12.15)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】