説明

暗号処理装置

【課題】暗号化処理、メッセージ認証コード生成処理、擬似乱数生成処理の全てを、1つのハードウェア構成において可能とする。
【解決手段】処理モード制御部110において、共通鍵暗号化処理を行う暗号化モード、メッセージ認証コードの生成処理を行うMAC生成モード、および擬似乱数の生成処理を行う乱数生成モード、のいずれかを設定する。するとセレクタ104〜106は、該処理モードに応じて入力信号を選択的に切り替え、選択された各信号はXOR部107でXORされて暗号化処理部101に入力される。これにより暗号化処理部101においては、暗号化モード時には平文の暗号化データを出力し、MAC生成モード時にはメッセージ認証コードを出力し、乱数生成モード時には擬似乱数を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は共通鍵暗号アルゴリズムを利用した暗号処理を行う暗号処理装置に関する。
【背景技術】
【0002】
近年、様々なデジタル機器が扱う大量のデジタルデータを高速に暗号処理するニーズが高まってきている。このようなニーズに応える暗号化アルゴリズムとして、共通鍵暗号処理アルゴリズムがよく知られている。その中でも、FIPS−197(Federal Information Processing Standard 197)に規定されるAES(Advanced Encryption Standard)が現在標準となっている。
【0003】
また、デジタル機器間でデータを送受信する際には、メッセージ認証と呼ばれる技術により、送受信されるデータが改竄されていないことを検証する必要がある。そのためには例えば、送受信されるデータからMAC(メッセージ認証コード)をMAC生成アルゴリズムにより算出し、MAC生成後、データの改竄がないことをする。
【0004】
MAC生成アルゴリズムにおいては、ハッシュ関数が広く利用されているが、近年、このハッシュ関数の標準アルゴリズムであるMD5、SHA−1に脆弱性が指摘されており、十分な安全性の維持が危ぶまれている。このため、安全性が高く、高速処理に向いているアルゴリズムであるAESを利用したMAC生成アルゴリズムを採用する動きが出てきている。例えば、標準通信プロトコルであるIPsecでは、AES−XCBC−MAC−96が採用されている。
【0005】
一方、暗号処理においてはそのアルゴリズムだけでなく、高品質で十分な量の乱数を生成することが、高い安全性を確保するためには必要である。この乱数生成においても、AESを用いた擬似乱数生成アルゴリズムがANSI X9.31 Appendix A.2.4に規定されており、有力な標準アルゴリズムの一つになっている。
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、上記従来のAESを用いた暗号化処理、MAC生成処理、擬似乱数生成処理を行う場合、十分な処理速度を得ようとすると、それぞれ個別にAESのハードウエア・アクセラレータを用意する必要があり、回路規模の増大を招いていた。また、一つのハードウエア・アクセラレータを用いて上記の処理を行なおうとすると、ソフトウエア処理を組み合わせることが必須であり、処理速度性能の低下を招いていた。
【0007】
本発明は上述した問題を解決するためになされたものであり、最小限の回路規模からなる1つのハードウェア構成によって、共通鍵暗号処理、認証処理、擬似乱数生成処理の全てを実行可能とする暗号処理装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために一手段として、本発明の暗号処理装置は以下の構成を備える。
【0009】
すなわち、共通鍵暗号化処理を行う暗号化モード、メッセージ認証コードの生成処理を行うMAC生成モード、および擬似乱数の生成処理を行う乱数生成モード、のいずれかを処理モードとして設定する処理モード設定手段と、該設定された処理モードに応じて、入力信号を選択的に切り替える複数の選択手段と、前記複数の選択手段のそれぞれで選択された信号に基づく演算によって暗号化対象データを生成する演算手段と、前記暗号化対象データに対する暗号化処理を行う暗号化手段と、を有し、前記暗号化手段は、前記暗号化モードの設定時には平文の暗号化データを出力し、前記MAC生成モードの設定時にはメッセージ認証コードを出力し、前記乱数生成モードの設定時には擬似乱数を出力することを特徴とする。
【発明の効果】
【0010】
上記構成からなる本発明によれば、最小限の回路規模からなる1つのハードウェア構成において、共通鍵暗号処理、認証処理、擬似乱数生成処理の全てを実行することができる。
【発明を実施するための最良の形態】
【0011】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【0012】
<第1実施形態>
本実施形態においては、FIPS−197に規定されるAES−128による共通鍵暗号処理を行うとして、以下に説明を行う。
【0013】
本実施形態における特徴的な構成および動作の説明を行うに先立って、その理解を容易とするために、本実施形態で実行される共通鍵暗号処理の概念についてまず説明する。
【0014】
●共通鍵暗号化概念
共通鍵暗号処理においては。処理性能や安全性の異なる複数の暗号モードが定義されており、用途によっていずれのモードを利用するかが選択される。このうち、安全性が高い暗号モードとして標準的に利用されているのが、CBC(Cipher Block Chain)モードである。
【0015】
ここで図2に、CBCモードにおける暗号化処理の概念を示す。同図においてP0,P1,P2は、暗号化処理の対象となる平文を128ビット単位のブロックに分割したものであり、このブロック単位で暗号化処理を行なう。またIVは、暗号化用のイニシャルベクタと呼ばれる初期値である。128ビットのブロックに分割された平文は、まずP0がイニシャルベクタIVとXOR処理された後、AESによる暗号化処理が施されることによって、平文ブロックP0に対応する暗号文C0が得られる。次の平文ブロックP1は、暗号文C0とXOR処理された後に、AESによる暗号化処理が施されることによって、暗号文C1が得られる。平文ブロックP2以降についても同様の手順で、暗号化処理が行われていく。
【0016】
次に、AESにおける認証処理について説明する。AESを利用したMAC生成アルゴリズムとして、AES-XCBC-MACがある。ここで図3及び図4に、XCBC-MAC生成処理の概念を示し、説明する。
【0017】
図3は、MACの生成対象となるメッセージ長が、暗号化処理のブロック長の整数倍である場合の例を示す。同図においてメッセージは、128ビット単位のメッセージブロックM0,M1,M2,M3,M4に分割され、順次、XCBC-MAC生成アルゴリズムにおけるMAC生成用の鍵値K1を用いて暗号化処理が施される。
【0018】
まず最初のメッセージブロックM0が暗号化され、次にメッセージブロックM1がM0の暗号化結果とXOR処理された後に、暗号化される。このように、M2,M3と順次暗号化された後、最後のメッセージブロックM4と、メッセージブロックM3の暗号化結果、及びMAC生成用の鍵値K2、がXOR処理された後、暗号化処理される。これにより、メッセージ全体のMACが得られる。
【0019】
図4は、MAC生成の対象となるメッセージ長が、暗号化処理のブロック長の整数倍にならない場合の例を示す。この場合同図に示すように、最後のメッセージブロックM4において、128ビットに満たない部分が"100...000"でパディングされて128ビットのブロックとなっている。そして図3の場合と同様の処理を行なって、メッセージ全体のMACを得る。ただし、最終ブロックM4のXOR処理には、MAC生成用の鍵値K3を使用する。
【0020】
次に図5に、ANSI X9.31 Appendix A.2.4による擬似乱数生成処理の概念を示す。同図においてDT0,DT1,DT2は、不図示のタイマより取得される現在時刻を示すタイムスタンプ値としてのday/timeベクタ、V0,V1,V2は乱数シード、I0,I1,I2は中間値、R0,R1,R2は生成された乱数データ、である。同図によれば、乱数データR0については、128ビットのday/timeベクタDT0を暗号化した中間値I0と乱数シードV0をXOR処理し、該結果を暗号化することによって、128ビット分の乱数データとして得られる。また、乱数データR1については、128ビットのday/timeベクタDT1を暗号化した中間値I1と、直前に得られた乱数データR0とのXOR結果を暗号化して乱数シードV1を求める。そして、乱数シードV1と中間値I1をXOR処理し、該結果をさらに暗号化することによって、128ビット分の乱数データR1を得る。なお、乱数データR2についても乱数データR1同様に、day/timeベクタDT2と、直前に生成された乱数データR1とに基づいて生成される。
【0021】
●装置構成
図1は、本実施形態における暗号処理装置のブロック構成を示す図であり、該構成によってCBCモードの暗号化処理、メッセージ認証コード(MAC)生成処理、および擬似乱数生成処理のいずれをも実行可能とする。同図において、101は入力された暗号化対象データに対して暗号化処理を施す暗号化処理部、102は暗号化処理部101の出力データを保持しておくためのデータ保持部、104〜106は処理モードに応じた信号を選択するセレクタである。107はセレクタ104〜106の出力に対して排他的論理和演算(XOR)を施すことによって、暗号化処理部101における暗号化の対象となるデータを生成するXOR演算器である。また、108はデータ保持部102の出力を擬似乱数生成モードのときのみ取り込むための乱数データ制御部、109は乱数データ制御部108からの乱数データを保持しておくための乱数保持部、である。そして110は処理モード制御部であり、本実施形態における処理モード設定を行い、該設定された処理モードに応じて上記各構成の動作を制御する。本実施形態において設定可能な処理モードとはすなわち、共通鍵暗号化処理を行う暗号化モード、メッセージ認証コードの生成処理を行うMAC生成モード、および擬似乱数の生成処理を行う乱数生成モード、のいずれかである。
【0022】
本実施形態においては、設定された処理モードによって、各セレクタ104〜106における選択が切り替えられる。この切り替え制御は、処理モード制御部110から各セレクタ104〜106へ入力される、現在の処理モードに応じた選択制御信号に基づいて行われるものとする。
【0023】
●暗号化処理
まず、本実施形態における暗号化モード設定時の処理について説明する。上述したように図1に示す構成からなる本実施形態の暗号処理装置においては、処理モード制御部110において暗号化モードが設定されることによって、図2に示したCBCモードの暗号化処理を実行する。図6に、この場合のタイミングチャートを示す。図6においてはすなわち、暗号化処理部101において時間tの経過に応じて平文ブロックPiの暗号化処理が順次行われ、各暗号化処理におけるセレクタ出力例を示している。
【0024】
図6によれば、まず最初の平文ブロックP0の暗号化処理においては、セレクタ104は平文ブロックP0を、セレクタ105はイニシャルベクタIVを、セレクタ106は定数データ'0'を出力し続ける。次に平文ブロックP1の暗号化処理においては、セレクタ104は平文ブロックP1を、セレクタ105は平文ブロックP0の暗号文C0を、セレクタ106は定数データ'0'を出力し続ける。平文ブロックP2以降についても平文ブロックP1と同様である。
【0025】
すなわち暗号化モード設定時には、第1のセレクタであるセレクタ104では現在の処理対象となる平文ブロックPiが出力され、第2のセレクタであるセレクタ105では直前に処理された平文ブロックPi-1の暗号文Ci-1が出力される。そして第3のセレクタであるセレクタ106では定数データ'0'が出力される。本実施形態の暗号処理装置ではこのように、CBCモードの暗号化処理が行なわれる。
【0026】
●MAC生成処理
次に、本実施形態におけるMAC生成モード設定時の処理について説明する。本実施形態の暗号処理装置においては、処理モード制御部110においてMAC生成モードが設定されることによって、図3,図4に示したXCBC-MAC処理を実行する。図7に、この場合のタイミングチャートを示す。図7においてはすなわち、暗号化処理部101において時間tの経過に応じてメッセージブロックMiの暗号化処理が順次行われ、各暗号化処理におけるセレクタ出力例を示している。
【0027】
図7によれば、まず最初のメッセージブロックM0の暗号化処理においては、セレクタ104はメッセージブロックM0を、セレクタ105及びセレクタ106は定数データ'0'を出力し続ける。次にメッセージブロックM1〜M3の暗号化処理においては、セレクタ104はメッセージブロックM1〜M3を、セレクタ105はメッセージブロックM0〜M2が暗号化されたデータC0〜C2を、セレクタ106は定数データ'0'を出力し続ける。そして最終のメッセージブロックM4の暗号化処理においては、セレクタ104はメッセージブロックM4を、セレクタ105はメッセージブロックM3が暗号化されたデータC3を、セレクタ106は鍵値K2またはK3を出力し続ける。
【0028】
なお、セレクタ106における鍵値K2,K3の選択は、MAC生成の対象となるメッセージ長が暗号化処理ブロック長の整数倍であるか否かを不図示の制御部において判定し、該判定結果が選択制御信号に反映されることによって行われる。セレクタ106ではすなわち、メッセージ長が暗号化処理ブロック長の整数倍であれば鍵値K2を選択し、そうでなければ鍵値K3を選択するように制御される。なお、MAC生成用の鍵値K1,K2,K3については、予め最適な値が設定されているものとする。
【0029】
すなわちMAC生成モード設定時には、第1のセレクタであるセレクタ104では現処理対象のメッセージブロックMiが出力され、第2のセレクタであるセレクタ105では直前に処理されたメッセージブロックMi-1の暗号化データCi-1が出力される。そして第3のセレクタであるセレクタ106では、最終のメッセージブロックでは鍵値K2またはK3が出力され、それ以外のメッセージブロックでは定数データ'0'が出力される。本実施形態の暗号処理装置ではこのような一連の処理によってXCBC-MAC処理が行われ、メッセージブロックM0〜M4で構成されるメッセージのMACが得られる。
【0030】
●擬似乱数生成処理
次に、本実施形態における擬似乱数生成モード設定時の処理について説明する。本実施形態の暗号処理装置においては、処理モード制御部110において擬似乱数生成モードが設定されることによって、図5に示した擬似乱数生成処理を実行する。図8に、この場合のタイミングチャートを示す。図8においてはすなわち、暗号化処理部101において時間tの経過に応じて、まず中間値I0と乱数データR0の生成が行われ、続いて中間値Ii,乱数シードVi,乱数データRiの生成が順次行われ、各生成処理におけるセレクタ出力例を示している。
【0031】
図8によれば、まず中間値I0の生成を行うが、このときセレクタ104はday/timeベクタDT0を出力し、セレクタ105及びセレクタ106は定数データ'0'を出力し続ける。次に乱数データR0を生成するが、このときセレクタ104は定数データ'0'を、セレクタ105は既に生成されている中間値I0を、セレクタ106は乱数シードの初期値であるV0を出力し続ける。
【0032】
そして次に中間値I1の生成を行うが、このときセレクタ104はday/timeベクタDT1を出力し、セレクタ105及びセレクタ106は定数データ'0'を出力し続ける。そして次に乱数シードV1の生成を行うが、このときセレクタ104は定数データ'0'を、セレクタ105は既に生成されている中間値I1を、セレクタ106はデータ保持部102に保持されている乱数データR0を出力し続ける。そして次に乱数データR1の生成を行うが、このときセレクタ104は定数データ'0'を、セレクタ105は既に生成されている乱数シードV1を、セレクタ106はデータ保持部102に保持されている中間値I1を出力し続ける。
【0033】
以降、上述した中間値I1,乱数シードV1,乱数データR1、の生成時と同様に、中間値I2,乱数シードV2,乱数データR2、そして中間値I3,乱数シードV3,乱数データR3、・・・、という順序で擬似乱数生成処理が進行する。これによって、乱数列R0,R1,R2,・・・が得られる。
【0034】
すなわち擬似乱数生成モード設定時には、第1のセレクタであるセレクタ104ではIi生成時にのみday/timeベクタDTiが出力され、それ以外では定数データ'0'が出力される。また第2のセレクタであるセレクタ105では、R0生成時には直前に生成されたI0が出力され、Vi出力時には直前に生成されたIiが出力され、R0以外のRi出力時にはデータ保持部102に保持されていたViが出力される。なお、それ以外のセレクタ105の出力は全て定数データ'0'である。そして第3のセレクタであるセレクタ106では、R0生成時には乱数シードの初期値V0が出力され、Vi生成時には直前に生成されたRi-1が出力され、R0以外のRi出力時にはデータ保持部102に保持されていたIiが出力される。
【0035】
なお本実施形態においては、乱数データ制御部108に対し、処理モード制御部110より現在の処理モードを示す信号が入力されている。したがって乱数データ制御部108では、擬似乱数生成モード時にのみ、生成された乱数列R0,R1,R2,・・・を乱数保持部109に格納する。これにより、生成した乱数列を乱数保持部109より随時取り出して利用することができる。
【0036】
以上説明したように本実施形態の暗号処理装置によれば、暗号化処理部への入力に排他的論和部を接続し、該排他的論和部への入力信号を、処理モードに応じて第1乃至第3のセレクタにより選択的に切り替える。これにより、最小限の回路規模からなる1つの共通鍵暗号処理ハードウエア・アクセラレータによって、暗号化処理、MAC生成処理、擬似乱数生成処理のそれぞれを容易に行なうことができる。
【0037】
なお、本実施形態においてはAES−128を例として説明を行ったが、AES−192、AES-256についても同様に、本発明は実現可能である。
【0038】
また、本実施形態いにおいてはCBCモードによる暗号化処理を行う例について説明を行ったが、本発明はCBCモードの復号処理をはじめ、ECBモードやCTRモード等の他の暗号モードにおける処理に対しても適用可能である。また、鍵長の異なる他の共通鍵暗号アルゴリズムについても、本発明と同様の装置により同様の処理が可能であることは言うまでもない。
【図面の簡単な説明】
【0039】
【図1】本発明に係る一実施形態における暗号処理装置の構成を示すブロック図である。
【図2】CBCモードにおける暗号化処理の概念を示す図である。
【図3】メッセージ長がブロックの整数倍である場合のXCBC-MAC生成処理の概念を示す図である。
【図4】メッセージ長がブロックの整数倍でない場合のXCBC-MAC生成処理の概念を示す図である。
【図5】ANSI X9.31 AppendixA.2.4に示される擬似乱数生成処理の概念を示す図である。
【図6】本実施形態におけるCBCモードの暗号化処理を示すタイミングチャートである。
【図7】本実施形態におけるXCBC-MAC生成処理を示すタイミングチャートである。
【図8】本実施形態における擬似乱数生成処理を示すタイミングチャートである。

【特許請求の範囲】
【請求項1】
共通鍵暗号化処理を行う暗号化モード、メッセージ認証コードの生成処理を行うMAC生成モード、および擬似乱数の生成処理を行う乱数生成モード、のいずれかを処理モードとして設定する処理モード設定手段と、
該設定された処理モードに応じて、入力信号を選択的に切り替える複数の選択手段と、
前記複数の選択手段のそれぞれで選択された複数の信号に対する演算によって暗号化対象データを生成する演算手段と、
前記暗号化対象データに対する暗号化処理を行う暗号化手段と、を有し、
前記暗号化手段は、前記暗号化モードの設定時には平文の暗号化データを出力し、前記MAC生成モードの設定時にはメッセージ認証コードを出力し、前記乱数生成モードの設定時には擬似乱数を出力することを特徴とする暗号処理装置。
【請求項2】
前記暗号化手段は、前記暗号化モードの設定時にはCBCモードによる暗号化データを出力することを特徴とする請求項1に記載の暗号処理装置。
【請求項3】
前記暗号化手段は、前記MAC生成モードの設定時にはメッセージ認証コードとしてXCBC−MACを出力することを特徴とする請求項1または2に記載の暗号処理装置。
【請求項4】
前記暗号化手段は、前記乱数生成モードの設定時にはANSI X9.31 Appendix A.2.4で規定される処理による擬似乱数を出力することを特徴とする前記請求項1乃至3のいずれか1項に記載の暗号処理装置。
【請求項5】
前記演算手段は、前記複数の選択手段のそれぞれで選択された複数の信号に対する排他的論理和演算を行って、前記暗号化対象データを生成することを特徴とする請求項1乃至4のいずれか1項に記載の暗号処理装置。
【請求項6】
前記複数の選択手段として第1乃至第3のセレクタを有し、前記暗号化モードの設定時には、
前記第1のセレクタは、暗号化対象となる平文ブロックのデータを選択し、
前記第2のセレクタは、暗号化用のイニシャルベクタと、前記暗号化手段から出力された暗号化データと、のいずれかを選択し、
前記第3のセレクタは、定数データを選択する
ことを特徴とする請求項5に記載の暗号処理装置。
【請求項7】
前記複数の選択手段として第1乃至第3のセレクタを有し、前記MAC生成モードの設定時には、
前記第1のセレクタは、メッセージ認証コードの生成対象となるメッセージブロックのデータを選択し、
前記第2のセレクタは、前記暗号化手段から出力された暗号化データと、定数データと、のいずれかを選択し、
前記第3のセレクタは、メッセージ認証コードの生成用の鍵値と、定数データと、のいずれかを選択する
ことを特徴とする請求項5に記載の暗号処理装置。
【請求項8】
前記複数の選択手段として第1乃至第3のセレクタを有し、前記乱数生成モードの設定時には、
前記第1のセレクタは、タイムスタンプ値と、定数データと、のいずれかを選択し、
前記第2のセレクタは、前記暗号化手段から出力された暗号化データと、定数データと、のいずれかを選択し、
前記第3のセレクタは、乱数シードの初期値と、前記暗号化手段から出力された暗号化データと、定数データと、のいずれかを選択する
ことを特徴とする請求項5に記載の暗号処理装置。
【請求項9】
前記定数データは0であることを特徴とする請求項6乃至8のいずれか1項に記載の暗号処理装置。
【請求項10】
さらに、前記暗号化手段の出力データを保持するデータ保持手段を有し、
前記第3のセレクタは、前記暗号化手段の出力データとして、前記データ保持手段に保持された出力データを選択することを特徴とする請求項6乃至9のいずれか1項に記載の暗号処理装置。
【請求項11】
さらに、前記乱数生成モードの設定時に前記暗号化手段から出力された擬似乱数を保持する乱数保持手段を有することを特徴とする請求項1乃至10のいずれか1項に記載の暗号処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate