(57)【要約】      （修正有）【課題】暗号化／復号化処理の速度を向上できる暗号化／復号化処理装置を提供する。【解決手段】暗号化／復号化処理装置は、鍵情報を格納する複数の鍵レジスタ１２−１〜１２−Ｎと、アドレス及びデータを有する入力データを受信する第１のインターフェイス１１とを有する。選択部１３，１４は、受信した入力データのアドレスに基づいて、複数の鍵レジスタのうちの１つを選択する。暗号化／復号化部１５は、選択された鍵レジスタの鍵情報を使用して、受信した入力データのデータを暗号化又は復号化する。第２のインターフェイス１６は、暗号化又は復号化された入力データのデータを出力する。【選択図】図１
2017118251.tif 000002
【特許請求の範囲】
【請求項１】
鍵情報を格納する複数の鍵レジスタと、
アドレス及びデータを有する入力データを受信する第１のインターフェイスと、
前記受信した入力データのアドレスに基づいて、前記複数の鍵レジスタのうちの１つを選択する選択部と、
前記選択された鍵レジスタの鍵情報を使用して、前記受信した入力データのデータを暗号化又は復号化する暗号化／復号化部と、
前記暗号化又は復号化された入力データのデータを出力する第２のインターフェイスと
を具備する暗号化／復号化処理装置。
【請求項２】
前記第２のインターフェイスは、
前記受信した入力データのアドレスを他のアドレスに変換する変換部をさらに具備し、
前記第２のインターフェイスは、前記暗号化又は復号化された入力データのデータと、前記変換された他のアドレスとを有する出力データを出力する、
請求項１記載の暗号化／復号化処理装置。
【請求項３】
前記第１のインターフェイスは、１系統のバスを介して、他の装置のインターフェイスに接続されている、請求項１記載の暗号化／復号化処理装置。
【請求項４】
前記暗号化／復号化部は、前記鍵情報又は前記アドレスに基づいて、前記暗号化又は復号化を選択する、請求項１記載の暗号化／復号化処理装置。
【請求項５】
前記選択部は、
前記入力データのアドレスが含まれるアドレス領域に対応する鍵レジスタを選択する、
請求項１記載の暗号化／復号化処理装置。
【請求項６】
前記変換部は、前記受信したアドレスの上位アドレスを他の上位アドレスに変換する、請求項２記載の暗号化／復号化処理装置。
【請求項７】
前記他のアドレスは、前記暗号化／復号化処理装置を含むシステムの記憶装置のアドレスを示す、請求項２記載の暗号化／復号化処理装置。
【請求項８】
前記鍵情報は、暗号化又は復号化を行なうために必要とされる情報を含む、請求項１記載の暗号化／復号化処理装置。
【請求項９】
バスと、
前記バスに接続された暗号化／復号化処理装置と、
前記バスに接続され、前記暗号化／復号化処理装置に暗号化又は復号化を行なう入力データを出力するバスマスタと、前記入力データは、アドレス及びデータを有し、
暗号化又は復号化が行なわれたデータを格納するメモリとを具備し、
前記暗号化／復号化処理装置は、
鍵情報を格納する複数の鍵レジスタと、
前記入力データを受信するバススレーブインターフェイスと、
前記受信した入力データのアドレスに基づいて、前記複数の鍵レジスタのうちの１つを選択する選択部と、
前記選択された鍵レジスタの鍵情報を使用して、前記受信した入力データのデータを暗号化又は復号化する暗号化／復号化部と、
前記暗号化又は復号化された入力データのデータを出力するバスマスタと
を具備する、システムＬＳＩ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、暗号化／復号化処理装置に関する。
【背景技術】
【０００２】
データを暗号化／復号化する暗号化／復号化処理装置が広く知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−０４４３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
暗号化／復号化処理の速度を向上できる暗号化／復号化処理装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態によれば、暗号化／復号化処理装置は、鍵情報を格納する複数の鍵レジスタ（１２−１〜１２−Ｎ）と、アドレス及びデータを有する入力データを受信する第１のインターフェイス（１１）とを有する。選択部（１３，１４）は、受信した入力データのアドレスに基づいて、複数の鍵レジスタのうちの１つを選択する。暗号化／復号化部（１５）は、選択された鍵レジスタの鍵情報を使用して、受信した入力データのデータを暗号化又は復号化する。第２のインターフェイス（１６）は、暗号化又は復号化された入力データのデータを出力する。
【図面の簡単な説明】
【０００６】
【図１】実施形態に係る暗号化／復号化処理装置を有するシステムＬＳＩの構成を示す図である。
【図２】アドレス変換の一例を説明するための図である。
【図３】実施形態のシステムＬＳＩの動作を説明するためのフローチャートである。
【図４】バスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定される暗号化領域と、格納されるデータのＲＡＭ領域との関係を表わすアドレスマップを示す図である。
【図５】バスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定される復号化領域と、格納されるデータのＲＡＭ領域との関係を表わすアドレスマップを示す図である。
【図６】バスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定される暗号化領域／復号化領域と、格納されるデータのＲＡＭ領域との関係を表わす他のアドレスマップを示す図である。
【発明を実施するための形態】
【０００７】
以下、実施の形態について、図面を参照して説明する。
【０００８】
図１は、実施形態に係る暗号化／復号化処理装置を有するシステムＬＳＩの構成を示す図である。
【０００９】
同図に示すように、バス１には、バスマスタ２−１〜２−Ｎ、ＣＰＵ３、暗号化／復号化処理装置４及びＲＡＭ(Random Access Memory)５が接続されている。
【００１０】
バス１は、バスマスタ２−１〜２−Ｎ及びバスマスタとしての役割をも果たすＣＰＵ３から出力される暗号化又は復号化の対象となるデータ、コマンドなどを伝送する。
【００１１】
バスマスタ２−１〜２−Ｎ及びＣＰＵ３は、暗号化又は復号化の対象となるデータ、及び暗号化又は復号化を行なう場合の予め定められたアドレスを出力する。ここで、予め定められたアドレスは、ＲＡＭ５の実際のアドレスではなく、予め定められた（仮想的な）アドレスである。バスマスタ２−１〜２−Ｎは、例えば、ＵＳＢデバイス、ＤＭＡ(Direct Memory Access)コントローラなどである。
【００１２】
ＣＰＵ３は、バスマスタを有するとともに、実施形態のシステムＬＳＩ全般の制御を司る。
【００１３】
暗号化／復号化処理装置４は、バススレーブＩ／Ｆ１１、鍵レジスタ１２−１〜１２−Ｎ、アドレスデコーダ１３、選択回路１４、暗号化／復号化アルゴリズム処理部１５、バスマスタＩ／Ｆ１６を有する。
【００１４】
バススレーブＩ／Ｆ１１は、１系統のインターフェイスである。バススレーブＩ／Ｆ１１は、バスマスタ２−１〜２−Ｎ又はＣＰＵ３からバス１を介して送られる暗号化又は復号化の対象となるデータ及びアドレスを受信し、アドレスをアドレスデコーダ１３及びバスマスタＩ／Ｆ１６に出力するとともに、データを暗号化／復号化アルゴリズム処理部１５に出力する。
【００１５】
鍵レジスタ１２−１〜１２−Ｎは、受信したデータの暗号化又は復号化を行なうための鍵情報をそれぞれ格納する。各鍵レジスタ１２−１〜１２−Ｎには、異なる暗号化又は復号化のための鍵情報が格納されている。
【００１６】
また、鍵レジスタ１２−１〜１２−Ｎは、鍵情報とともに、当該鍵情報を使用して暗号化又は復号化を行なうために必要とされる情報（例えば、ＩＶ（初期化ベクトル）、鍵の長さ等）を格納する。この暗号化又は復号化を行なうために必要とされる情報は、鍵情報とともに選択される。
【００１７】
アドレスデコーダ１３は、バススレーブＩ／Ｆ１１から出力されたアドレスの上位アドレスをデコードし、その上位アドレスに対応する鍵レジスタ１２−１〜１２−Ｎのうちの１つを選択するための選択信号を出力する。
【００１８】
選択回路１４は、アドレスデコーダ１３からの選択信号に基づいて、鍵レジスタ１２−１〜１２−Ｎのうちの１つの鍵レジスタを選択し、この選択された１つの鍵レジスタからの鍵情報を暗号化／復号化アルゴリズム処理部１５に出力する。
【００１９】
暗号化／復号化アルゴリズム処理部１５は、選択回路１４により選択された鍵情報を使用して、バススレーブＩ／Ｆ１１から出力されたデータの暗号化又は復号化を行なう。なお、鍵情報を使用して、データを暗号化又は復号化を行なう技術は公知の技術であり、ここでは詳述しない。また、データの暗号化又は復号化の方法は問わない。
【００２０】
暗号化／復号化アルゴリズム処理部１５による暗号化又は復号化の判断は、鍵レジスタ１２−１〜１２−Ｎに格納された鍵情報に基づく。言い換えれば、この判断は、入力データのアドレスに基づくが、これに限られるものではない。例えば、バスマスタ２−１〜２−Ｎ又はＣＰＵ３から明示的に暗号化又は復号化を指示しても良い。
【００２１】
バスマスタＩ／Ｆ１６は、変換部１７及びデータ出力部１８を有する。
【００２２】
変換部１７は、アドレスの上位アドレスと、変換後のアドレスの上位アドレスとの対応関係を記憶するテーブルを有する。そして、このテーブルに基づいて、バススレーブＩ／Ｆ１１から出力されたアドレスの上位アドレスを対応付けられた上位アドレスに変換する。そして、変換された上位アドレスと、入力されたアドレスの下位アドレスを結合する。
【００２３】
図２は、アドレス変換の一例を説明するための図である。
【００２４】
同図に示すように、例えば、バススレーブＩ／Ｆ１１からアドレス（”0ｘE000_1234”）が出力された場合について説明する。ここで、”0x”はアドレスが１６進数で表現されていることを指す。”E000”は４ビットの上位アドレス、”1234”は４ビットの下位アドレスを示す。すなわち、入力されるアドレスは８ビットのアドレス”E000_1234”である。変換部１７は、上位アドレス”E000”を”C000”に変換する。そして、変換された上位アドレス”C000”に下位アドレス”1234”を結合して、アドレス（”0ｘC000_1234”）を出力する。変換後のアドレスは、ＲＡＭ５の書き込みアドレスとなる。
【００２５】
なお、アドレス変換の方法は、種々の方法をとることができる。例えば、上位アドレスに限らずに、全てのアドレスを変換しても良い。
【００２６】
データ出力部１８は、変換部１７によって変換されたアドレスと、暗号化／復号化アルゴリズム処理部１５からの暗号化又は復号化されたデータとを書き込みコマンドとして出力する。
【００２７】
ＲＡＭ５は、データ出力部１８から出力された書き込みコマンドに基づいて、暗号化又は復号化されたデータを変換された書き込みアドレスに書き込む。
【００２８】
次に、実施形態のシステムＬＳＩの動作について、図３のフローチャートを参照して説明する。
【００２９】
実施形態に係る暗号化／復号化処理を行なう場合、まず、ＣＰＵ３は、暗号化／復号化処理装置４の鍵レジスタ１２−１〜１２−Ｎ、暗号化／復号化アルゴリズム処理部１５及び変換部１７の初期化を行なう（Ｓ１）。
【００３０】
次に、鍵情報を鍵レジスタ１２−１〜１２−Ｎにセットする（Ｓ２）。鍵レジスタ１２−１〜１２−Ｎにセットされる鍵情報は、デコードされたアドレスの上位アドレスに対応する領域にそれぞれ対応する。
【００３１】
その後、バススレーブＩ／Ｆ１１がアドレス及びデータを受信した場合、アドレスをアドレスデコーダ１３に出力する。アドレスデコーダ１３は、バススレーブＩ／Ｆ１１から出力されたアドレスの上位アドレスをデコードし、その上位アドレスに対応する鍵レジスタ１２−１〜１２−Ｎのうちの１つを選択するための選択信号を出力する。選択回路１４は、アドレスデコーダ１３からの選択信号に基づいて、鍵レジスタ１２−１〜１２−Ｎのうちの１つを選択する（Ｓ４）。この選択された１つの鍵レジスタの鍵情報は、暗号化／復号化アルゴリズム処理部１５に出力される。
【００３２】
暗号化／復号化アルゴリズム処理部１５は、Ｓ４において選択された鍵情報に基づいて、暗号化又は復号化を判断する（Ｓ５）。なお、暗号化又は復号化の判断は、鍵情報ではなく、入力データのアドレスに基づいて、直接判断しても良い。
【００３３】
Ｓ５において、暗号化であると判断された場合には、暗号化／復号化アルゴリズム処理部１５は、選択回路１４により選択された鍵情報を使用して、バススレーブＩ／Ｆ１１から出力されたデータの暗号化を行なう（Ｓ６）。
【００３４】
Ｓ５において、復号化であると判断された場合には、暗号化／復号化アルゴリズム処理部１５は、選択回路１４により選択された鍵情報を使用して、バススレーブＩ／Ｆ１１から出力されたデータの復号化を行なう（Ｓ７）。
【００３５】
一方、バスマスタＩ／Ｆ１６の変換部１７は、バススレーブＩ／Ｆ１１から出力されたアドレスの上位アドレスを対応付けられた上位アドレスに変換する（Ｓ８）。そして、変換された上位アドレスと、入力データのデータの下位アドレスを結合する。
【００３６】
Ｓ６においてデータが暗号化された場合、データ出力部１８は、変換部１７によって変換されたアドレスと、暗号化／復号化アルゴリズム処理部１５からの暗号化されたデータとを書き込みコマンドとして出力する（Ｓ９）。
【００３７】
これにより、ＲＡＭ５の変換されたアドレスに、暗号化／復号化アルゴリズム処理部１５からの暗号化されたデータが書き込まれる。
【００３８】
Ｓ７においてデータが復号化された場合、データ出力部１８は、変換部１７によって変換されたアドレスと、暗号化／復号化アルゴリズム処理部１５からの復号化されたデータとを書き込みコマンドとして出力する（Ｓ１０）。
【００３９】
これにより、ＲＡＭ５の変換されたアドレスに、暗号化／復号化アルゴリズム処理部１５からの復号化されたデータが書き込まれる。
【００４０】
図４は、バスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定される暗号化領域と、格納されるデータのＲＡＭ領域との関係を表わすアドレスマップを示す図である。
【００４１】
同図において、ＥＮＣ領域１〜ＥＮＣ領域Ｎはバスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定されるアドレスによって特定される暗号化領域を示す。ＲＡＭ領域１〜Ｎは、アドレス変換された暗号化データが格納される領域を示す。
【００４２】
例えば、ＥＮＣ領域１のアドレスが指定された場合には、アドレスがＲＡＭ領域１のアドレスに変換され、暗号化されたデータは、ＲＡＭ領域１に格納される。また、ＥＮＣ領域２のアドレスが指定された場合には、アドレスがＲＡＭ領域２のアドレスに変換され、暗号化されたデータは、ＲＡＭ領域２に格納される。ＥＮＣ領域Ｎのアドレスが指定された場合には、アドレスがＲＡＭ領域Ｎのアドレスに変換され、暗号化されたデータは、ＲＡＭ領域Ｎに格納される。
【００４３】
図５は、バスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定される復号化領域と、格納されるデータのＲＡＭ領域との関係を表わすアドレスマップを示す図である。
【００４４】
同図において、ＤＥＣ領域１〜ＤＥＣ領域Ｎはバスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定されるアドレスによって特定される復号化領域を示す。ＲＡＭ領域１〜Ｎは、アドレス変換された復号化データが格納される領域を示す。
【００４５】
例えば、ＤＥＣ領域１のアドレスが指定された場合には、アドレスがＲＡＭ領域１のアドレスに変換され、復号化されたデータは、ＲＡＭ領域１に格納される。また、ＤＥＣ領域２のアドレスが指定された場合には、アドレスがＲＡＭ領域２のアドレスに変換され、復号化されたデータは、ＲＡＭ領域２に格納される。ＤＥＣ領域Ｎのアドレスが指定された場合には、アドレスがＲＡＭ領域Ｎのアドレスに変換され、復号化されたデータは、ＲＡＭ領域Ｎに格納される。
【００４６】
図６は、バスマスタ２−１〜２−Ｎ及びＣＰＵ３から指定される暗号化領域／復号化領域と、格納されるデータのＲＡＭ領域との関係を表わす他のアドレスマップを示す図である。
【００４７】
本実施形態のように、複数の装置で１つの暗号化／復号化アルゴリズム処理部１５を共有する場合、図６に示すように、各装置に対して各々別のメモリ領域を割り当てても良い。
【００４８】
同図に示すように、暗号化領域１〜Ｎ及び復号化領域１〜Ｎは、端末ごとに割り当てられている。また、ＲＡＭ領域１〜Ｎも端末ごとに割り当てられている。
【００４９】
このような構成のアドレスマップを採用することにより、各メモリ領域に対応した別々の鍵を使用した暗号化及び復号化が可能になる。例えば、バスマスタ２−１とバスマスタ２−２とが、あるまとまったデータの塊を暗号化／復号化しようとした場合、ＥＮＣ領域１及びＤＥＣ領域１をバスマスタ２−１に割り当て、ＥＮＣ領域２及びＤＥＣ領域２をバスマスタ２−２に割り当てる。
【００５０】
ＣＰＵ３は、各領域に対応した鍵をバスマスタ２−１とバスマスタ２−２が使用を開始する前に、暗号化／復号化処理装置４の対応する鍵レジスタ１２（１２−１〜１２−Ｎ）に設定する。
【００５１】
その後、バスマスタ２−１及びバスマスタ２−２は、暗号化／復号化処理装置４に対する調停を気にする必要はない。バスマスタ２−１及びバスマスタ２−２が、たとえ同時に要求を出したとしても、バススレーブＩ／Ｆ１１が１系統であるので、バス１上で自動的に整列され順に暗号化／復号化処理装置４に要求される。
【００５２】
さらに、これらのデータ処理はバスマスタ２−１及びバスマスタ２−２の各々のデータの塊ごとに要求や処理を行う必要はなく、各バスマスタ２−１及びバスマスタ２−２からのデータがインターリーブされた状態においても正しく機能する。
【００５３】
本実施の形態によれば、データを暗号化又は復号化する鍵をアドレスに基づいて選択するので、鍵の変更を行なう必要がない。例えば、メモリ上に複数のデータブロックが存在し、各々別の鍵を使用して、暗号化／復号化を行なう必要がある場合がある。実施形態によれば、アドレスに基づいて鍵を選択することができるので、ＣＰＵ３は、暗号化／復号化のたびに、鍵を変更する必要はない。これにより、システム速度の向上を図ることができる。
【００５４】
また、暗号化／復号化処理装置４をシステム内の共有のリソースとして使用し、複数のCPUもしくはデータの暗号化／復号化が必要な複数の装置が存在するようなシステムにおいて、複数の異なる鍵を使用して、データの暗号化／復号化を行わなければならないような場合がある。このような場合であっても、本実施形態によれば、アドレスに基づいて鍵を選択することができるので、ＣＰＵ３は、暗号化／復号化のたびに、鍵を変更する必要はない。
【００５５】
さらに、本実施形態によれば、装置毎に、暗号化領域及び復号化領域を設定することができる。これにより、装置毎に、鍵を設定することができる。
【００５６】
また、本実施形態によれば、バススレーブＩ／Ｆ１１を１系統とすることにより、暗号化／復号化処理装置４に対する調停処理が不要となる。これにより、システムの処理速度の向上を図ることができる。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
１…バス、２−１〜２−Ｎ…バスマスタ、３…ＣＰＵ、４…暗号化／復号化処理装置、５…ＲＡＭ、１１…バススレーブＩ／Ｆ、１２−１〜１２−Ｎ…鍵レジスタ、１３…アドレスデコーダ、１４…選択回路、１５…暗号化／復号化アルゴリズム処理部、１６…バスマスタＩ／Ｆ、１７…変換部、１８…データ出力部。
【図１】
2017118251.tif 000003
【図２】
2017118251.tif 000004
【図３】
2017118251.tif 000005
【図４】
2017118251.tif 000006
【図５】
2017118251.tif 000007
【図６】
2017118251.tif 000008