(57)【要約】    【課題】既存のＨＭＡＣ演算回路よりも、用途が広いＨＭＡＣ演算回路を、提供する。    【解決手段】ＨＭＡＣ演算回路１０を、入力データと鍵データとからＨＭＡＣ（ハッシュ関数を用いたメッセージ認証コード）を生成して出力する回路、入力データに対するハッシュ関数回路２２或いは２３の演算結果（つまり，ハッシュ値）をそのまま出力する回路のいずれとしても機能可能な回路として構成しておく。    【選択図】  図１
2007164589.tif 000002
【特許請求の範囲】
【請求項１】
データのハッシュ値を求めるためのハッシュ関数回路と、
入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記ハッシュ関数回路を利用することにより生成して出力するＨＭＡＣ生成・出力回路と、
入力されたデータのハッシュ値を前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路と
を、備えることを特徴とするＨＭＡＣ演算回路。
【請求項２】
データのハッシュ値を求めるための複数のハッシュ関数回路と、
入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の，指定されたハッシュ関数回路を利用することにより生成して出力するＨＭＡＣ生成・出力回路と、
入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の，指定された前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路と
を、備えることを特徴とするＨＭＡＣ演算回路。
【請求項３】
データのハッシュ値を求めるための複数のハッシュ関数回路と、
前記複数のハッシュ関数回路と，１系統のバスにより接続された制御回路であって、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の，指定されたハッシュ関数回路を利用することにより生成して出力する機能と、入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の，指定された前記ハッシュ関数回路に生成させて出力する機能とを有する制御回路と
を、備えることを特徴とするＨＭＡＣ演算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＨＭＡＣ（ハッシュ関数を用いたメッセージ認証コード）を生成するためのＨＭＡＣ演算回路に、関する。
【背景技術】
【０００２】
周期のように、近年、情報が改竄されていないことや，情報の送信者／作成者を確認できるようにするために、メッセージ認証コードを用いることが盛んに行わるようになってきている。
【０００３】
メッセージ認証コードとしては、ハッシュ関数を用いたメッセージ認証コード（以下、ＨＭＡＣと表記する），ブロック暗号の計算に基づくメッセージ認証コード等が、知られている。そして、ＨＭＡＣは、データと鍵データとを結合したデータのハッシュ値を，或るアルゴリズム（ＭＤ５，ＳＨＡ−１等）にて求めた後、そのハッシュ値と鍵データとを結合したデータのハッシュ値を，同じアルゴリズムで求めることにより得られる値であるため、ＨＭＡＣを演算するための既存の回路（例えば、特許文献１参照）は、いずれも、図３に示したような構成の回路、すなわち、同じハッシュ関数回路（入力されたデータのハッシュ値をＭＤ５により算出する回路）が，２度，使用されてＨＭＡＣが算出される回路となっている。
【０００４】
【特許文献１】特開２００２−１６２９０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、既存の，ＨＭＡＣを演算するための回路よりも、用途が広いＨＭＡＣ演算回路を、提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の第１の態様のＨＭＡＣ演算回路は、データのハッシュ値を求めるためのハッシュ関数回路と、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記ハッシュ関数回路を利用することにより生成して出力するＨＭＡＣ生成・出力回路と、入力されたデータのハッシュ値を前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路とを、備える。
【０００７】
このような構成を有する本発明の第１の態様のＨＭＡＣ演算回路は、ＨＭＡＣを算出するための回路として使用することも、ハッシュ値を算出するための回路としても使用することも可能な回路（つまり、ＨＭＡＣを演算するための既存の回路よりも、用途が広い回路）として機能することになる。従って、このＨＭＡＣ演算回路を用いれば、例えば、セキュリティ対策のために，ＨＭＡＣとハッシュ値とを利用する情報処理装置（目的によって、ＨＭＡＣとハッシュ値とを使い分ける情報処理装置）を、ハッシュ値を求めるための回路を実装することなく製造できることになる。
【０００８】
また、本発明の第２の態様のＨＭＡＣ演算回路は、データのハッシュ値を求めるための複数のハッシュ関数回路と、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の，指定されたハッシュ関数回路を利用することにより生成して出力するＨＭＡＣ生成・出力回路と、入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の，指定された前記ハッシュ関数回路に生成させて出力するハッシュ値生成・出力回路とを、備える。
【０００９】
このような構成を有する本発明の第２の態様のＨＭＡＣ演算回路は、本発明の第１の態様のＨＭＡＣ演算回路よりも生成可能なＨＭＡＣ／ハッシュ値の種類が多い回路として機能することになる。従って、このＨＭＡＣ演算回路を用いれば、より高機能な情報処理装置を製造できることになる。
【００１０】
また、本発明の第３の態様のＨＭＡＣ演算回路は、データのハッシュ値を求めるための複数のハッシュ関数回路と、前記複数のハッシュ関数回路と，１系統のバスにより接続された制御回路であって、入力されたデータ及び鍵データに応じた内容のメッセージ認証コードを、前記複数のハッシュ関数回路の中の，指定されたハッシュ関数回路を利用することにより生成して出力する機能と、入力されたデータのハッシュ値を、前記複数のハッシュ関数回路の中の，指定された前記ハッシュ関数回路に生成させて出力する機能とを有する制御回路とを、備える。
【００１１】
すなわち、本発明の第３の態様のＨＭＡＣ演算回路は、本発明の第２の態様のＨＭＡＣ演算回路と同機能の回路となっている。ただし、本発明の第３の態様のＨＭＡＣ演算回路は、各ハッシュ関数回路がバスにより制御回路に接続された回路であるため、このＨＭＡＣ演算回路は、一度、設計を行っておけば、ハッシュ関数回路の追加等を容易に行える回路となっていると言うことが出来る。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００１３】
《第１実施形態》
図１に示してあるように、本発明の第１実施形態に係るＨＭＡＣ演算回路１０は、第１カウンタ１１と，ハッシュ／ＨＭＡＣ切替レジスタ１２と，ハッシュ関数切替レジスタ１３と，第２カウンタ１４と，アンドゲート１５と，３つのセレクタ１６〜１８と，デマルチプレクサ１９と，鍵データ加工部２０と，データ結合部２１と，２つのハッシュ関数回路２２及び２３とを備えた半導体集積回路である。
【００１４】
このＨＭＡＣ演算回路１０が備えるハッシュ関数回路２２は、セレクタ１７から入力されたデータのハッシュ値をＭＤ５により算出する回路である。ハッシュ関数回路２３は、セレクタ１７から入力されたデータのハッシュ値をＳＨＡ−１により算出する回路である。鍵データ加工部２０は、ＨＭＡＣ演算回路１０に入力された鍵データに対して所定の加工を施す回路である。データ結合部２１は、鍵データ加工部２０によって加工された鍵データと，セレクタ１６からのデータとを結合したデータを出力する回路である。
【００１５】
第１カウンタ１１は、図から（端子間の接続形態から）明らかなように、“１”（Ｈレベルの信号）がデータイネーブルとして入力されると、“０”，“１”を，クロック（図示せず）に同期した形で交互に出力する状態となる回路（レジスタを利用したカウンタ）である。この第１カウンタ１１の出力は、制御信号としてセレクタ１６に入力されている。
【００１６】
セレクタ１６は、第１カウンタ１１からの制御信号が“０”である場合には、入力データを出力し（データ結合部２１に供給し）、第１カウンタ１１からの制御信号が“１”である場合には、デマルチプレクサ１９からのデータを出力する回路である。
【００１７】
ハッシュ／ＨＭＡＣ切替レジスタ１２は、“１”或いは“０”が設定されるレジスタである。このハッシュ／ＨＭＡＣ切替レジスタ１２の出力（設定値）は、セレクタ１７及びアンドゲート１５に入力されている。
【００１８】
セレクタ１７は、ハッシュ／ＨＭＡＣ切替レジスタ１２に“０”が設定されている場合には、入力データを出力し（ハッシュ関数回路２２及び２３に供給し）、ハッシュ／ＨＭＡＣ切替レジスタ１２に“１”が設定されている場合には、データ結合部２１からのデータを出力する回路である。
【００１９】
ハッシュ関数切替レジスタ１３は、ハッシュ関数回路２２を利用する場合には、“０”が設定され、ハッシュ関数回路２３を利用する場合には、“１”が設定されるレジスタである。セレクタ１８は、このハッシュ関数切替レジスタ１２に“０”が設定されている場合には、ハッシュ関数回路２２の出力をデマルチプレクサ１９に供給し、ハッシュ関数切替レジスタ１２に“１”が設定されている場合には、ハッシュ関数回路２３の出力をデマルチプレクサ１９に供給する回路である。
【００２０】
第２カウンタ１４は、図から明らかなように、“１”がハッシュ関数出力データイネーブルとして入力されると、アンドゲート１５に対して、まず、“１”を出力し、その後、“０”を出力する回路である。
【００２１】
デマルチプレクサ１９は、アンドゲート１５から“１”が入力されている場合（ハッシュ／ＨＭＡＣ切替レジスタ１２，第２カウンタ１４の出力が，いずれも“１”である場合）には、セレクタ１８からのデータをセレクタ１６に供給し、アンドゲート１９から“０”が入力されている場合には、セレクタ１８からのデータを演算結果として出力する回路である。
【００２２】
以上，説明した回路構成から明らかなように、本実施形態に係るＨＭＡＣ演算回路１０は、ハッシュ／ＨＭＡＣ切替レジスタ１２に“１”を設定しておいた場合には、入力データと鍵データとからＨＭＡＣを生成して出力する回路として機能し、ハッシュ／ＨＭＡＣ切替レジスタ１２に“０”を設定しておいた場合には、入力データに対するハッシュ関数回路２２或いは２３の演算結果（つまり，ハッシュ値）をそのまま出力する回路として機能する回路となっている。
【００２３】
従って、このＨＭＡＣ演算回路１０を用いれば、例えば、セキュリティ対策のために，ＨＭＡＣとハッシュ値とを利用する情報処理装置（目的によって、ＨＭＡＣとハッシュ値とを使い分ける情報処理装置）を、ハッシュ値を求めるための回路を実装することなく製造できることになる。
【００２４】
《第２実施形態》
図２に示してあるように、本発明の第２実施形態に係るＨＭＡＣ演算回路３０は、制御回路３１と，２つのハッシュ関数回路３２，３３とが，バスにより接続された構成を有する回路である。
【００２５】
このＨＭＡＣ演算回路３０が備えるハッシュ関数回路３２は、ハッシュ関数回路２２と同様に、データのハッシュ値をＭＤ５により算出する回路である。また、ハッシュ関数回路３３は、ハッシュ関数回路２３と同様に、データのハッシュ値をＳＨＡ−１により算出する回路である。ただし、ハッシュ関数回路３２，３３は、バスから入力されたデータに対して，ハッシュ関数による演算を行い、演算結果をバス上に出力する回路となっている。
【００２６】
そして、ＨＭＡＣ演算回路３０が備える制御回路３１は，バスを介して接続されているハッシュ関数回路３２或いは３３（外部から指定されている方の回路）を利用することにより、ＨＭＡＣ演算回路３０を，ＨＭＡＣ演算回路１０と同機能の回路（ハッシュ値とＨＭＡＣとを出力可能な回路）として動作させることが出来るように設計，製造された回路となっている。
【００２７】
要するに、本実施形態に係るＨＭＡＣ演算回路３０は、ＨＭＡＣ演算回路１０と同機能の回路となっている。従って、このＨＭＡＣ演算回路３０を用いても、ＨＭＡＣ演算回路１０を用いた場合と同様に、セキュリティ対策のために，ＨＭＡＣとハッシュ値とを利用する情報処理装置を、ハッシュ値を求めるための回路を実装することなく製造できることになる。
【００２８】
また、ＨＭＡＣ演算回路３０に採用されている構成は、ハッシュ関数回路を簡単に追加できる構成となっている。従って、このＨＭＡＣ演算回路３０は、一度、設計を行っておけば、ハッシュ関数回路の追加等を容易に行える回路となっていると言うことも出来る。
【図面の簡単な説明】
【００２９】
【図１】第１実施形態に係るＨＭＡＣ演算回路の構成図。
【図２】第２実施形態に係るＨＭＡＣ演算回路の構成図。
【図３】従来のＨＭＡＣ演算回路の構成図。
【符号の説明】
【００３０】
１０，３０  ＨＭＡＣ演算回路、  １１  第１カウンタ
１２  ハッシュ／ＨＭＡＣ切替レジスタ、  １３  ハッシュ関数切替レジスタ
１４  第２カウンタ、  １５  アンドゲート、  １６，１７，１８  セレクタ
１９  デマルチプレクサ、  ２０  鍵データ加工部、  ２１  データ結合部
２２，２３，３２，３３  ハッシュ関数回路、  ３１  制御回路
【図１】
2007164589.tif 000003
【図２】
2007164589.tif 000004
【図３】
2007164589.tif 000005