JP4790541B2 - ハッシュ関数回路及びその演算方法 - Google Patents

ハッシュ関数回路及びその演算方法 Download PDF

Info

Publication number
JP4790541B2
JP4790541B2 JP2006229505A JP2006229505A JP4790541B2 JP 4790541 B2 JP4790541 B2 JP 4790541B2 JP 2006229505 A JP2006229505 A JP 2006229505A JP 2006229505 A JP2006229505 A JP 2006229505A JP 4790541 B2 JP4790541 B2 JP 4790541B2
Authority
JP
Japan
Prior art keywords
key
register
shift
sub
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.)
Expired - Fee Related
Application number
JP2006229505A
Other languages
English (en)
Other versions
JP2008052130A (ja
Inventor
真吾 木下
文学 星野
玄武 諸橋
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2006229505A priority Critical patent/JP4790541B2/ja
Publication of JP2008052130A publication Critical patent/JP2008052130A/ja
Application granted granted Critical
Publication of JP4790541B2 publication Critical patent/JP4790541B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、例えば無線タグやICカードなど実装回路規模の制約が厳しい分野において、セキュリティの確保やプライバシーの保護に必要となるハッシュ関数回路、特にブロック暗号器を用いてPGV構成法により構成したハッシュ関数回路及びその関数演算方法に関するものである。
近年、RFID(Radio Frequency Identification:電波方式認識)等の無線タグ技術やICカードの導入が進んでいる。これらの技術を利用して安全に通信を行うためには、通信相手の認証を行う必要がある。そのためには、デバイス上に暗号アルゴリズムを搭載する必要があるが、限られたデバイスの計算資源を有効利用するため、認証にはハッシュ関数をベースとした暗号アルゴリズムが利用されることが多い。
ハッシュ関数をベースとした暗号アルゴリズムを用いる例としては、RFIDのプライバシー問題保護を目的としたハッシュチェーン方式〔非特許文献1〕等があげられる。
安全なハッシュ関数の構成方法のひとつとしてPGV構成法がある〔非特許文献2〕。PGV構成法はCamellia暗号〔特許文献1(Camelliaは登録商標)〕などのブロック暗号に基づき一方向性関数、つまりハッシュ関数を構成する方法である。
図11はCamellia暗号に基づきPGV構成法で回路構成した従来のハッシュ関数回路1の構成例を示す図である。ハッシュ関数回路1は初期鍵KL0とメッセージmが入力され、ハッシュ関数hを出力する。
成される。
ブロック暗号器10は、中間鍵生成部20、副鍵生成部30、暗号処理部40から構成される。
中間鍵生成部20の構成例を図12に示す。中間鍵生成部20ではデータを非線形変換する非線形データ変換部21が4段縦続接続されており、初期鍵KL0が入力されると2段の非線形変換を受けた後、初期鍵KL0と排他的論理和がとられ、更に2段の非線形変換を受け、中間鍵KA0を出力する。
副鍵生成部30は、セレクタ31、レジスタ32、レジスタ36、セレクタ37、シフトセレクタ33、及び副鍵制御部35から構成される。
セレクタ31は、中間鍵KA0又は初期鍵KLO又はシフトセレクタ33から出力された鍵データK又はKが入力され、副鍵制御部35から入力される制御信号により、KA0及びKはレジスタ32に、KLO及びKはレジスタ36に選択出力する。
レジスタ32は、KA0又はKが入力・格納され、副鍵制御部35から入力される制御信号により、格納データを出力する。
レジスタ33は、KLO及びKが入力・格納され、副鍵制御部35から入力される制御信号により、格納データを出力する。
セレクタ37は、レジスタ32より出力されたKA0又はK、若しくはレジスタ33より出力されたKLO及びKが入力され、副鍵制御部35から入力される制御信号により、いずれかを選択出力する。
シフトセレクタ33の構成例を図13に示す。シフトセレクタ33は、KA0又はK若しくはKLO又はKが入力され、第1所定ビット数又は第2所定ビット数だけ循環シフトさせて、K若しくはKとして出力する。第1所定ビット数及び第2所定ビット数は任意の値でよく、本明細書の各構成例ではそれぞれ左側に15ビット及び左側に17ビットとしている。この図13では、セレクタ31がシフトセレクタ33の出力を選択してレジスタ32に入力し、セレクタ37がレジスタ32の出力を選択してシフトレジスタ33に入力した場合である。シフトレジスタ33は、128ビットの入力データの各ビットについて、その入力を15ビット左循環シフト出力端子33bと、17ビット左循環シフト出力端子33cのいずれかに切替えて出力する切替スイッチ33aを備えている。図では、各切替スイッチ33aが17ビット左循環シフト出力端子33cに接続されている状態を示している。従って、例えばレジスタ32の第18ビット目からの出力はレジスタ32の第1ビット目に入力される。
副鍵制御部35は副鍵生成アルゴリズムに従って、セレクタ31、レジスタ32、レジスタ36、セレクタ37、シフトセレクタ33における入出力制御や選択制御を行う。副鍵生成アルゴリズムにより図14に示す複数の副鍵が生成される。
副鍵生成アルゴリズムによる副鍵生成部30での副鍵生成フローを図15及び図16に示す。セレクタ31を介して、レジスタ32に中間鍵KA0が、レジスタ36に初期鍵KL0が格納される(S1)。セレクタ37にてレジスタ36が選択され、KL0が暗号処理部40に副鍵kw、kwとして出力される(S2)と共に、KL0がシフトセレクタ33に入力されて15ビット左循環シフトされ(S3)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは15ビットシフトしている)(S4)。セレクタ37にてレジスタ32が選択され、KA0が暗号処理部40に副鍵k、kとして出力される(S5)と共に、KA0がシフトセレクタ33に入力されて15ビット左循環シフトされ(S6)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは15ビットシフトしている)(S7)。セレクタ37にてレジスタ36が選択され、Kが暗号処理部40に副鍵k、kとして出力される(S8)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S9)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは30ビットシフトしている)(S10)。セレクタ37にてレジスタ32が選択され、Kが暗号処理部40に副鍵k、kとして出力される(S11)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S12)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは30ビットシフトしている)(S13)。セレクタ37にてレジスタ36が選択され、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S14)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは45ビットシフトしている)(S15)。セレクタ37にてレジスタ32が選択され、Kが暗号処理部40に副鍵kl、klとして出力される(S16)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S17)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは45ビットシフトしている)(S18)。セレクタ37にてレジスタ36が選択され、Kが暗号処理部40に副鍵k、kとして出力される(S19)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S20)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは60ビットシフトしている)(S21)。セレクタ37にてレジスタ32が選択され、Kの上位64ビットが暗号処理部40に副鍵kとして出力される(S22)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S23)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは60ビットシフトしている)(S24)。セレクタ37にてレジスタ36が選択され、Kの下位64ビットが暗号処理部40に副鍵k10として出力される(S25)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S26)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは77ビットシフトしている)(S27)。セレクタ37にてレジスタ32が選択され、Kが暗号処理部40に副鍵k11、k12として出力される(S28)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S29)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは77ビットシフトしている)(S30)。セレクタ37にてレジスタ36が選択され、Kが暗号処理部40に副鍵kl、klとして出力される(S31)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S32)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは94ビットシフトしている)(S33)。セレクタ37にてレジスタ32が選択され、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S34)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは94ビットシフトしている)(S35)。セレクタ37にてレジスタ36が選択され、Kが暗号処理部40に副鍵k13、k14として出力される(S36)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S37)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは111ビットシフトしている)(S38)。セレクタ37にてレジスタ32が選択され、Kが暗号処理部40に副鍵k15、k16として出力される(S39)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S40)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは111ビットシフトしている)(S41)。セレクタ37にてレジスタ36が選択され、Kが暗号処理部40に副鍵k17、k18として出力される(S42)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S43)、シフト後の鍵データKがセレクタ31を介してレジスタ36に上書き格納される(Kは128ビットシフトしている)(S44)。セレクタ37にてレジスタ32が選択され、Kが暗号処理部40に副鍵kw、kwとして出力され(S45)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S46)、シフト後の鍵データKがセレクタ31を介してレジスタ32に上書き格納される(Kは128ビットシフトしている)(S47)。最後にレジスタ32及びレジスタ36が初期化される(S48)。
暗号処理部40の構成例を図17に示す。暗号処理部40では、6段の非線形データ変換部41と6段の非線形データ変換部42と6段の非線形データ変換部43が縦続接続されている。6段の非線形データ変換部41と6段の非線形データ変換部42の間には、データ正変換部44とデータ逆変換部45がそれぞれ直列に設けられており、6段の非線形データ変換部42と6段の非線形データ変換部43の間には、データ正変換部46とデータ逆変換部47がそれぞれ直列に設けられている。6段の非線形データ変換部41の中では、非線形データ変換部51〜56が6段縦続接続され、また6段の非線形データ変換部42及び43についても同様な構成となっており、暗号処理部40全体では合計で18段の非線形データ変換が行われる。
暗号処理部40では、メッセージmが入力されるとメッセージmを左半分と右半分に分け、メッセージの左半分と副鍵kwとの排他的論理和と、メッセージの右半分と副鍵kwとの排他的論理和を、それぞれ左入力データLと右入力データRとし、これらを第1の非線形データ変換部51に入力する。非線形データ変換部51中の非線形関数部Fにおいて、上記左入力データLに第1の副鍵kを用いて第1の非線形変換を行い、この変換後のデータと上記右入力データRとの排他的論理和を第1の左中間データLとして出力すると共に、上記左入力データLを第1の右中間データRとして出力する。非線形データ変換部52中の非線形関数部Fにおいて、上記第1の左中間データLと上記第1の右中間データRを第2の非線形データ変換部52に入力し、上記第1の左中間データLに第2の副鍵kを用いて第2の非線形変換を行い、この変換後のデータと上記右入力データRとの排他的論理和を第2の左中間データLとして出力すると共に、上記左中間データLを第2の右中間データRとして出力する。このように、第1の非線形データ変換部51から第6の非線形データ変換部56までそれぞれ副鍵kからkを用いて同様な処理が行われる。
第6の非線形データ変換部56から出力された左中間データLと右中間データRは、それぞれデータ正変換部44とデータ逆変換部45において、それぞれ副鍵kl、klを用いて正変換、逆変換され、第7の非線形データ変換部57に入力される。これら入力された各変換後のデータは、第7の非線形データ変換部57から第12の非線形データ変換部62において、それぞれ副鍵kからk12を用いて、第1の非線形データ変換部51から第6の非線形データ変換部56において行われた処理と同様な処理が行われる。
第12の非線形データ変換部62から出力された左中間データL12と右中間データR12は、それぞれデータ正変換部46とデータ逆変換部47において、それぞれ副鍵kl、klを用いて正変換、逆変換され、第13の非線形データ変換部63に入力される。これら入力された各変換後のデータは、第13の非線形データ変換部63から第18の非線形データ変換部68において、それぞれ副鍵k13からk18を用いて、第1の非線形データ変換部51から第6の非線形データ変換部56において行われた処理と同様な処理が行われ、左中間データL18と右中間データR18が出力される。最後に左中間データL18と副鍵kw、右中間データR18と副鍵kwとの各排他的論理和をそれぞれ演算した後、両者を再度連結し、これを暗号出力Kとして出力する。
図11中のXOR(排他的論理和)回路70は、前記暗号出力Kとメッセージmが入力されると、両者の排他的論理和を演算し、ハッシュ関数hを出力する。
国際公開第01/067425号 「補助変換を用いたブロック暗号装置」 Miyako Ohkubo,Koutarou Suzuki and Shingo Kinoshita,"Cryptographic Approach to "Privacy-Friendly"Tags", RFID Privacy Workshop@MIT, 2003. 桶屋勝幸、"鍵付きハッシュ関数に関するサイドチャネル攻撃"、SCIS2006、2006.
図11に示す従来回路では、128ビットレジスタ2個、セレクタ2個、シフトセレクタ1個といった回路構成となっており、3KG程度の回路規模に抑えることが求められるRFIDなどへの適用は難しい。本発明の課題は、ハッシュ関数回路をPGV構成法で構成して安全性を確保しつつ、ハッシュ関数回路内の削減可能な回路を削減し、安全で低回路規模のハッシュ関数回路及びその演算方法を提供することにある。
この発明によれば、初期鍵が入力される中間鍵生成部と、中間鍵が入力される副鍵生成部と、複数の副鍵によりそれぞれデータを非線形変換する非線形データ変換部が多段接続された暗号処理部とによりブロック暗号器が構成され、そのブロック暗号器を用いてPGV構成法により上記初期値とメッセージに基づきこのメッセージに対しハッシュ関数演算を行うハッシュ関数回路において、
上記初期鍵は各ビット値が全て同一値であり、中間鍵が初期値としてレジスタに格納され、このレジスタに格納された鍵データを第1所定ビット数又は第2所定ビット数だけ循環シフトしたいずれかの状態をシフトセレクタから取り出して上記レジスタに格納し、このレジスタ内の鍵データ又は上記初期鍵を上記副鍵とした選択して論理回路より出力し、副鍵生成部の副鍵生成アルゴリズムに従って、上記シフトセレクタに対する選択制御と上記論理回路に対する選択/出力制御とを副鍵制御部で行う。
この発明は、ハッシュ関数回路に利用するブロック暗号が、Camellia暗号のように弱鍵を持たないと仮定できる強い暗号である場合には、たとえ初期鍵に各ビットが全て同一値のものを用いても、生成されるハッシュ関数の強度は損なわれないことに着目し、初期鍵として各ビットが全て同一値の鍵を用いるものである。
この発明の構成によれば、初期鍵の各ビットが全て同一値であるため、副鍵生成部の1個のレジスタと1個のセレクタとを削減でき、しかもハッシュ関数の強度は損なわれない。
〔第1実施形態〕
図1は、本発明のハッシュ関数回路100の構成例を示す図である。
ハッシュ関数回路100は、ブロック暗号器110とXOR(排他的論理和)回路60から構成される。
ブロック暗号器110は、中間鍵生成部20、副鍵生成部300、暗号処理部40から構成される。中間鍵生成部20及び暗号処理部40は図11に示した従来技術と同じ構成である。そこで、図1の中で図11と対応する部分については同一参照番号を付け、説明は省略する。その他の図面についても同様とする。
ただし、この発明においては中間鍵生成部20に入力される初期鍵KL0はオール0又はオール1に固定されている。
以下に図11と異なる副鍵生成部300について説明する。
副鍵生成部300は、セレクタ310、レジスタ32、シフトセレクタ33、論理回路340及び副鍵制御部350から構成される。
セレクタ310は、中間鍵KA0又はシフトセレクタ33から出力された鍵データKが入力され、副鍵制御部350から入力される制御信号により、レジスタ32に出力する。
論理回路340は、鍵データKA0又はKが入力され、副鍵制御部350から入力される制御信号Sの論理値に応じ、KA0又はK若しくはオール0又はオール1のいずれかを副鍵として出力する。
論理回路340は、初期鍵KL0をオール0とする場合にはAND回路で構成し、このAND回路に制御信号Sとレジスタ32の出力とが入力される。従って、この論理回路340としてのAND回路からは、制御信号Sが0の時、オール0の副鍵が出力し、制御信号Sが1の時、KA0又はKが副鍵として出力する。また、初期鍵KL0をオール1とする場合にはOR回路で構成し、このOR回路に制御信号Sとレジスタ32の出力とが入力される。従って、この論理回路340としてのOR回路からは、制御信号Sが0の時、KA0又はKが副鍵として出力し、Sが1の時、オール1の副鍵が出力する。
副鍵制御部350は副鍵生成アルゴリズムに従って、セレクタ310、レジスタ32、シフトセレクタ33、論理回路340における入出力制御や選択制御を行う。
初期鍵KL0をオール0とした時の、副鍵生成アルゴリズムによる副鍵生成部300での副鍵生成フローを図2及び図3に示す。セレクタ310を介して、レジスタ32に初期鍵KL0をオール0として図12の演算により求められた中間鍵KA0が格納される(S1)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵kw、kwとして出力される(S2)。論理回路340にS=1が入力され、KA0が暗号処理部40に副鍵k、kとして出力される(S3)と共に、KA0がシフトセレクタ33に入力されて15ビット左循環シフトされ(S4)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは15ビットシフトしている)(S5)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k、kとして出力される(S6)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵k、kとして出力される(S7)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S8)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは30ビットシフトしている)(S9)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵kl、klとして出力される(S10)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S11)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは45ビットシフトしている)(S12)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k、kとして出力される(S13)。論理回路340にS=1が入力され、Kの上位64ビットが暗号処理部40に副鍵kとして出力される(S14)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S15)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは60ビットシフトしている)(S16)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k10として出力される(S17)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵k11、k12として出力される(S18)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S19)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは77ビットシフトしている)(S20)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵kl、klとして出力される(S21)。Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S22)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは94ビットシフトしている)(S23)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k13、k14として出力される(S24)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵k15、k16として出力される(S25)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S26)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは111ビットシフトしている)(S27)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k17、k18として出力される(S28)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵kw、kwとして出力され(S29)、と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S30)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは128ビットシフトしている)(S31)。最後にレジスタ32が初期化される(S32)。
なお、シフトセレクタ33としては図13に示したものと同様に、レジスタ32より入力される各ビットを、例えば15ビット左循環シフト出力端子33bと17ビット左循環シフト出力端子33cとに切替えるスイッチ33aをそれぞれ設けたが、この各スイッチとしては1個の入力側と2個の出力側をそれぞれMOSトランジスタのような半導体スイッチ素子を用いて容易に半導体集積化することができる。
〔第2実施形態〕
図4は、本発明の第2実施形態によるハッシュ関数回路101の構成例を示す図である。
ハッシュ関数回路101は、ブロック暗号器111とXOR(排他的論理和)回路60から構成される。
ブロック暗号器111は、中間鍵生成部20、副鍵生成部301、暗号処理部40から構成される。副鍵生成部30が副鍵生成部301に置き換わった以外は図11に示した従来技術と同じ構成である。なお、中間鍵生成部20で使用する初期鍵KL0はオール0又はオール1の固定値が用いられ、いずれの値を使用するかは副鍵制御部351からの制御信号により制御される。
以下に図11と異なる副鍵生成部301について説明する。
副鍵生成部301は、セレクタ310、レジスタ32、シフトセレクタ33、論理回路341及び副鍵制御部351から構成される。
論理回路341は、例えば図5Aのように構成される。すなわち、鍵データKA0又はKと第1制御信号Sとが入力されるAND回路341aと、AND回路341aの出力と第2制御信号Sとが入力されて副鍵を出力するOR回路341bとから構成される。副鍵制御部351から入力される制御信号S及びSの論理値に応じ、図5Bに示す論理値表のようにKA0又はK若しくはオール0又はオール1のいずれかを副鍵として出力する。
副鍵制御部351は副鍵生成アルゴリズムに従って、セレクタ310、レジスタ32、シフトセレクタ33、論理回路341における入出力制御や選択制御を行う。また、中間鍵生成部20に対し、初期鍵KL0をオール0とするかオール1とするかを選択する制御信号を出力する。
《初期鍵KL0=オール0の場合》
初期鍵KL0=オール0としてハッシュ関数回路101を使用する場合の、副鍵生成アルゴリズムによる副鍵生成部301での副鍵生成フローを図6及び図7に示す。副鍵制御部351に初期鍵KL0=オール0とする初期鍵選択指示を入力すると、副鍵制御部351からの制御信号により中間鍵生成部20の初期鍵KL0がオール0に設定される。セレクタ310を介して、レジスタ32に初期鍵KL0=オール0として図12の演算により求められた中間鍵KA0が格納される(S1)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵kw、kwとして出力される(S2)。論理回路341に第1制御信号S=1、第2制御信号S=0が入力され、KA0が暗号処理部40に副鍵k、kとして出力される(S3)と共に、KA0がシフトセレクタ33に入力されて15ビット左循環シフトされ(S4)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは15ビットシフトしている)(S5)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵k、kとして出力される(S6)。論理回路341に制御信号第1制御信号S=1、第2制御信号S=0が入力され、Kが暗号処理部40に副鍵k、kとして出力される(S7)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S8)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは30ビットシフトしている)(S9)。論理回路341に第1制御信号S=1、第2制御信号S=0が入力され、Kが暗号処理部40に副鍵kl、klとして出力される(S10)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S11)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは45ビットシフトしている)(S12)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵k、kとして出力される(S13)。論理回路341に第1制御信号S=1、第2制御信号S=0が入力され、Kの上位64ビットが暗号処理部40に副鍵kとして出力される(S14)と共に、Kがシフトセレクタ33に入力されて15ビット左循環シフトされ(S15)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは60ビットシフトしている)(S16)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵k10として出力される(S17)。論理回路341に第1制御信号S=1、第2制御信号S=0が入力され、Kが暗号処理部40に副鍵k11、k12として出力される(S18)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S19)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは77ビットシフトしている)(S20)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵kl、klとして出力される(S21)。Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S22)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは94ビットシフトしている)(S23)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵k13、k14として出力される(S24)。論理回路341に第1制御信号S=1、第2制御信号S=0が入力され、Kが暗号処理部40に副鍵k15、k16として出力される(S25)と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S26)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは111ビットシフトしている)(S27)。論理回路341に第1制御信号S=0、第2制御信号S=0が入力され、オール0が暗号処理部40に副鍵k17、k18として出力される(S28)。論理回路341に第1制御信号S=1、第2制御信号S=0が入力され、Kが暗号処理部40に副鍵kw、kwとして出力され(S29)、と共に、Kがシフトセレクタ33に入力されて17ビット左循環シフトされ(S30)、シフト後の鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは128ビットシフトしている)(S31)。最後にレジスタ32が初期化される(S32)。
《初期鍵KL0=オール1の場合》
この場合は、副鍵としてオール1を出力する時には、第1制御信号Sが0、第2制御信号Sが1となる以外は、KL0=オール0の場合と同様な副鍵生成アルゴリズムにより副鍵が生成される。
〔第3実施形態〕
図8は、本発明の第3実施形態のハッシュ関数回路102の構成例を示す図である。
ハッシュ関数回路102は、ブロック暗号器112とXOR(排他的論理和)回路60から構成される。
ブロック暗号器112は、中間鍵生成部20、副鍵生成部302、暗号処理部40から構成される。中間鍵生成部20及び暗号処理部40は図11に示した従来技術と同じ構成である。
以下に図11と異なる副鍵生成部302について説明する。
副鍵生成部300は、セレクタ310、レジスタ32、シフトセレクタ330、論理回路340又は341、及び副鍵制御部350から構成される。
シフトセレクタ330は、第1シフトレジスタ331、第2シフトレジスタ332、選択回路333から構成される。
第1シフトレジスタ331は、レジスタ32に格納された鍵データKA0又はKが入力され、そのデータを第1所定ビット数だけ循環シフトして格納する。
第2シフトレジスタ332は、レジスタ32に格納された鍵データKA0又はKが入力され、そのデータを第2所定ビット数だけ循環シフトして格納する。
選択回路333は、副鍵制御部350から入力される制御信号により、第1シフトレジスタ331又は第2シフトレジスタ332のいずれかを選択し、選択したシフトレジスタに格納されたデータを出力する。
初期鍵KL0をオール0とし、論理回路340を使用した時の、副鍵生成アルゴリズムによる副鍵生成部302での副鍵生成フローを図9及び図10に示す。セレクタ310を介して、レジスタ32に初期鍵KL0をオール0として図12の演算により求められた中間鍵KA0が格納される(S1)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵kw、kwとして出力される(S2)。論理回路340にS=1が入力され、KA0が暗号処理部40に副鍵k、kとして出力される(S3)と共に、KA0が第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S4)、選択回路333で第1シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは15ビットシフトしている)(S5)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k、kとして出力される(S6)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵k、kとして出力される(S7)と共に、Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S8)、選択回路333で第1シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは30ビットシフトしている)(S9)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵kl、klとして出力される(S10)と共に、Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S11)、選択回路333で第1シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは45ビットシフトしている)(S12)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k、kとして出力される(S13)。論理回路340にS=1が入力され、Kの上位64ビットが暗号処理部40に副鍵kとして出力される(S14)と共に、Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S15)、選択回路333で第1シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは60ビットシフトしている)(S16)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k10として出力される(S17)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵k11、k12として出力される(S18)と共に、Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S19)、選択回路333で第2シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは77ビットシフトしている)(S20)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵kl、klとして出力される(S21)。Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S22)、選択回路333で第2シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは94ビットシフトしている)(S23)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k13、k14として出力される(S24)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵k15、k16として出力される(S25)と共に、Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S26)、選択回路333で第2シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは111ビットシフトしている)(S27)。論理回路340にS=0が入力され、オール0が暗号処理部40に副鍵k17、k18として出力される(S28)。論理回路340にS=1が入力され、Kが暗号処理部40に副鍵kw、kwとして出力され(S29)、と共に、Kが第1シフトレジスタ及び第2シフトレジスタに入力され、それぞれ15ビット、17ビット左循環シフトし(S30)、選択回路333で第2シフトレジスタが選択され、格納されている鍵データKがセレクタ310を介してレジスタ32に上書き格納される(Kは128ビットシフトしている)(S31)。最後にレジスタ32が初期化される(S32)。
ハッシュ関数回路100〜102としては、実施形態に示した構成に限らず、非特許文献2に示されているように、ブロック暗号器を用いてPGV構成法により回路を構成した各種のハッシュ関数回路にもこの発明を適用することができる。
初期鍵KL0の各ビットを全て同一値とすることで、図11に示す従来技術において必要であったK用のレジスタ36が不要となり、それに伴いセレクタ37も不要となる。代わりに論理回路340又は341が追加されるが、固定値を対象とするものであり簡単な構成で実現できるため、全体として回路規模を大幅に縮小することができる。
本発明によるハッシュ関数回路の第1実施形態の構成図。 本発明によるハッシュ関数回路の第1実施形態における副鍵生成フロー図(前半)。 本発明によるハッシュ関数回路の第1実施形態における副鍵生成フロー図(後半)。 本発明によるハッシュ関数回路の第2実施形態の構成図。 本発明によるハッシュ関数回路の第2実施形態における論理回路の例を示す構成図。 本発明によるハッシュ関数回路の第2実施形態における副鍵生成フロー図(前半)。 本発明によるハッシュ関数回路の第2実施形態における副鍵生成フロー図(後半)。 本発明によるハッシュ関数回路の第3実施形態の構成図。 本発明によるハッシュ関数回路の第3実施形態における副鍵生成フロー図(前半)。 本発明によるハッシュ関数回路の第3実施形態における副鍵生成フロー図(後半)。 従来技術のハッシュ関数回路例を示す構成図。 図11中の中間鍵生成部20の例を示す構成図。 図11中の従来技術におけるシフトセレクタ33の構成図。 副鍵生成部30において生成される副鍵の一覧を示す図。 従来技術における副鍵生成フロー図(前半)。 従来技術における副鍵生成フロー図(後半)。 図11中の暗号処理部40の例を示す構成図。

Claims (8)

  1. 初期鍵が入力され、中間鍵を生成する中間鍵生成部と、
    上記初期鍵と中間鍵が入力され、複数の副鍵を生成する副鍵生成部と、
    上記副鍵によりデータを非線形変換する非線形データ変換部が多段接続された暗号処理部と、
    を具備するブロック暗号器を用いて、PGV構成法により、入力された初期鍵とメッセージに基づき、そのメッセージに対しハッシュ関数演算を行うハッシュ関数回路において、
    上記初期鍵は、各ビットが全て同一値であり、
    上記副鍵生成部は、
    上記中間鍵が初期値として格納されるレジスタと、
    上記レジスタに格納された鍵データを、第1所定ビット数又は第2所定ビット数だけ循環シフトしたいずれかの状態を取り出して、上記レジスタに格納するシフトセレクタと、
    上記レジスタ内の鍵データ又は上記初期鍵を、上記副鍵として選択出力する論理回路と、
    上記副鍵生成部の副鍵生成アルゴリズムに従って、上記シフトセレクタに対する選択制御と上記論理回路に対する選択出力制御を行う副鍵制御部と、
    を備える
    ことを特徴とするハッシュ関数回路。
  2. 請求項1に記載の回路において、
    上記論理回路は、上記レジスタに格納された鍵データと上記副鍵制御部より与えられる論理値0又は1との論理演算を行う回路で構成されていることを特徴とするハッシュ関数回路。
  3. 請求項1に記載の回路において、
    上記論理回路は、
    上記レジスタ内の鍵データと上記副鍵制御部より与えられる第1制御信号とが入力され、これらの論理積を出力するAND回路と、
    上記AND回路の出力と上記副鍵制御部より与えられる第2制御信号とが入力され、これらの論理和を出力するOR回路と、
    を備えていることを特徴とするハッシュ関数回路。
  4. 請求項1に記載の回路において、
    上記シフトセレクタは、
    上記レジスタに格納された鍵データを、第1所定ビット数だけ循環シフトする第1シフトレジスタと、
    上記レジスタに格納された鍵データを、第2所定ビット数だけ循環シフトする第2シフトレジスタと、
    上記第1シフトレジスタに格納された鍵データと上記第2シフトレジスタに格納された鍵データのいずれかを上記副鍵制御部により選択して上記レジスタに格納する選択回路と、
    を備えることを特徴とするハッシュ関数回路。
  5. 初期鍵から中間鍵を生成する中間鍵生成部と、
    上記初期鍵と上記中間鍵を用いて複数の副鍵を生成する副鍵生成部と、
    上記副鍵によりデータを非線形変換する非線形データ変換部が多段接続された暗号処理部と、
    を具備するブロック暗号器を用いてPGV構成法により、入力されたメッセージに対しハッシュ関数演算を行うハッシュ関数演算方法において、
    上記初期鍵は、各ビットが全て同一値であり、
    上記副鍵生成部の副鍵制御部が、上記中間鍵を初期値として上記副鍵生成部のレジスタに格納する過程と、
    上記副鍵生成部のシフトセレクタが、上記レジスタに格納された鍵データを、第1所定ビット数又は第2所定ビット数だけ循環シフトしたいずれかの状態を取り出して、上記レジスタに格納する鍵データシフト過程と、
    上記副鍵生成部の論理回路が、上記レジスタ内の鍵データ又は上記初期鍵を、上記副鍵として選択出力する過程と、
    上記副鍵制御部が、上記副鍵生成部の副鍵生成アルゴリズムに従って、上記シフトセレクタに対する選択制御と上記論理回路に対する選択出力制御を行う過程と、
    を有することを特徴とするハッシュ関数演算方法。
  6. 請求項5に記載の演算方法において、
    上記論理回路が、上記レジスタに格納された鍵データと上記副鍵制御部より与えられる論理値0又は1との論理演算を行うことを特徴とするハッシュ関数演算方法。
  7. 請求項5に記載の演算方法において、
    上記論理回路が、上記レジスタ内の鍵データと上記副鍵制御部より与えられる第1制御信号との論理積を演算し、この演算結果と上記副鍵制御部より与えられる第2制御信号との論理和を演算することを特徴とするハッシュ関数演算方法。
  8. 請求項5に記載の演算方法において、
    上記鍵データシフト過程は、
    上記シフトセレクタの第1シフトレジスタが、上記レジスタに格納された鍵データを第1所定ビット数だけ循環シフトする過程と、
    上記シフトセレクタの第2シフトレジスタが、上記レジスタに格納された鍵データを第2所定ビット数だけ循環シフトする過程と、
    上記シフトセレクタの選択回路が、上記第1シフトレジスタに格納された鍵データと上記第2シフトレジスタに格納された鍵データのいずれかを上記副鍵制御部により選択して上記レジスタに格納する過程と、
    を有することを特徴とするハッシュ関数演算方法。
JP2006229505A 2006-08-25 2006-08-25 ハッシュ関数回路及びその演算方法 Expired - Fee Related JP4790541B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006229505A JP4790541B2 (ja) 2006-08-25 2006-08-25 ハッシュ関数回路及びその演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006229505A JP4790541B2 (ja) 2006-08-25 2006-08-25 ハッシュ関数回路及びその演算方法

Publications (2)

Publication Number Publication Date
JP2008052130A JP2008052130A (ja) 2008-03-06
JP4790541B2 true JP4790541B2 (ja) 2011-10-12

Family

ID=39236222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006229505A Expired - Fee Related JP4790541B2 (ja) 2006-08-25 2006-08-25 ハッシュ関数回路及びその演算方法

Country Status (1)

Country Link
JP (1) JP4790541B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101445339B1 (ko) 2010-12-23 2014-10-01 한국전자통신연구원 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066586A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
JP3389210B2 (ja) * 1999-08-31 2003-03-24 松下電器産業株式会社 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置

Also Published As

Publication number Publication date
JP2008052130A (ja) 2008-03-06

Similar Documents

Publication Publication Date Title
AU767323B2 (en) Block encryption device using auxiliary conversion
JP6406350B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
KR100435052B1 (ko) 암호화장치
EP3123656B1 (en) Encryption processing device, encryption processing method, and program
EP2016524B1 (en) Robust cipher design
US8515059B2 (en) Cryptographic processor with dynamic update of encryption state
US20100257373A1 (en) Cryptographic processor and ic card
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
WO2015146430A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
US6466669B1 (en) Cipher processor, IC card and cipher processing method
US20060171532A1 (en) Encryption Processing Circuit
EP1059760A1 (en) Method for the block-encryption of discrete data
JP4790541B2 (ja) ハッシュ関数回路及びその演算方法
WO2012141189A1 (ja) 暗号化方法、暗号化装置および暗号化プログラム
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
JPH1124558A (ja) 暗号装置
WO2015146432A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Hamzah et al. AES S-Box/Inv S-Box Optimization Using FPGA Implementation
JP2008107656A (ja) 暗号化装置及び認証装置
JP6292107B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
Gael et al. FPGAs as cryptanalytic tools
KR20010109626A (ko) 3중 데이터 암호화 표준 아키텍쳐를 구현한 암호화 장치
KR20050116484A (ko) f8 암호화 알고리즘 수행 장치 및 그 방법
KR20030090870A (ko) 레이아웃 면적을 감소시킨 safer+ 알고리즘을이용한 암호화장치 및 방법
KR20070078496A (ko) 무선통신에서의 암호화 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110621

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

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

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

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees