(57)【要約】【課題】ハードウェア暗号処理部の数を増やすことなく、暗号処理の実行をスケジューリングする自由度を向上し、暗号処理を完了する必要のある規定時間内に複数の暗号処理のそれぞれを低コストで完了する。【解決手段】暗号処理装置３０は、ハードウェア暗号処理部６０とソフトウェア暗号処理部４２、５４と暗号制御部４２、５２とを備えている。ハードウェア暗号処理部は、ハードウェアにより暗号処理を実行する。ソフトウェア暗号処理部はソフトウェアにより暗号処理を実行する。暗号制御部は、優先度の異なる複数の暗号処理をハードウェア暗号処理部とソフトウェア暗号処理部とに並列処理させる。【選択図】図１
2019096045.tif 000002
【特許請求の範囲】
【請求項１】
車載の暗号処理装置（３０）であって、
ハードウェアにより暗号処理を実行するように構成されたハードウェア暗号処理部（６０）と、
ソフトウェアにより暗号処理を実行するように構成されたソフトウェア暗号処理部（４２、５４、Ｓ４０６）と、
優先度の異なる複数の暗号処理を前記ハードウェア暗号処理部と前記ソフトウェア暗号処理部とにより並列処理させるように構成された暗号制御部（４２、５２、Ｓ４０２、Ｓ４０４、Ｓ４０８〜Ｓ４１２、Ｓ４１６〜Ｓ４２０）と、
を備える暗号処理装置。
【請求項２】
請求項１に記載の暗号処理装置であって、
前記暗号制御部は、優先度の異なる複数の前記暗号処理のうち、所定の優先度以下の前記暗号処理を前記ソフトウェア暗号処理部に割り当てるように構成されている、
暗号処理装置。
【請求項３】
請求項１または２に記載の暗号処理装置であって、
前記暗号制御部（Ｓ４０２、Ｓ４０４、Ｓ４１６〜Ｓ４２０）は、前記ソフトウェア暗号処理部に割り当てた前記暗号処理のそれぞれを前記ソフトウェア暗号処理部が完了する完了時間を算出し、算出した前記完了時間と前記ソフトウェア暗号処理部が前記暗号処理のそれぞれを完了する必要のある規定時間とを比較し、前記ソフトウェア暗号処理部で前記規定時間内に前記暗号処理のそれぞれを完了できるか否かを判定するように構成されている、
暗号処理装置。
【請求項４】
請求項３に記載の暗号処理装置であって、
前記暗号制御部は、少なくとも前記暗号処理の対象となるデータサイズに基づいて前記完了時間を算出するように構成されている、
暗号処理装置。
【請求項５】
請求項３または４に記載の暗号処理装置であって、
前記暗号制御部（Ｓ４０８）は、前記ソフトウェア暗号処理部で前記規定時間内に低優先度の前記暗号処理を完了できない場合、前記ソフトウェア暗号処理部に、低優先度の前記暗号処理よりも高優先度の前記暗号処理の前に低優先度の前記暗号処理を実行させるように構成されている、
暗号処理装置。
【請求項６】
請求項５に記載の暗号処理装置であって、
前記暗号制御部（Ｓ４１６、Ｓ４１８）は、前記ソフトウェア暗号処理部で前記規定時間内に低優先度の前記暗号処理を完了できない場合、前記ソフトウェア暗号処理部に、低優先度の前記暗号処理よりも高優先度の前記暗号処理の前に低優先度の前記暗号処理を実行させると高優先度の前記暗号処理を前記規定時間内に完了できない場合、前記ソフトウェア暗号処理部に、時分割した低優先度の前記暗号処理の間で高優先度の前記暗号処理を実行させるように構成されている、
暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車載の暗号処理技術に関する。
【背景技術】
【０００２】
車載の電子制御装置の間で通信を行う場合、データを暗号化して送信し、受信した暗号化されたデータを復号化する暗号処理が行われている。暗号処理は、ハードウェアで暗号処理を実行するハードウェア暗号処理部で実行されることがある。以下、ハードウェアをＨＷとも言う。
【０００３】
暗号処理に優先度が設定されていると高優先度の暗号処理が優先されるので、低優先度の暗号処理の実行は高優先度の暗号処理が終了するまで待たされる、その結果、暗号処理を完了する必要のある予め設定された規定時間内に、低優先度の暗号処理を完了できないことがある。
【０００４】
そこで、例えば特許文献１に記載された技術を応用し、規定時間内に完了されない低優先度の暗号処理の優先度を高めることにより、低優先度の暗号処理であっても優先して実行することが考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−１４８５１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
低優先度の暗号処理の優先度を高めて優先して実行すると、優先度を高められた暗号処理よりも優先度の高い暗号処理の実行が遅れ、暗号処理を完了する必要のある規定時間内に優先度の高い暗号処理を完了できないことがある。
【０００７】
さらに、車両における通信のセキュリティ強化の要求に伴って、暗号処理の処理負荷が増加する傾向にある。その結果、複数の暗号処理の要求が発生すると、暗号処理に要する負荷がＨＷ暗号処理部の処理能力を超えることがある。
【０００８】
ＨＷ暗号処理部の数を増やして複数のＨＷ暗号処理部で暗号処理を並列処理すれば、低優先度の暗号処理の優先度を高めることなく、それぞれの暗号処理を規定時間内に完了することができるかも知れない。
【０００９】
しかしながら、ＨＷ暗号処理部による暗号処理は処理を中断することができないので、ＨＷ暗号処理部の数が増えても、実行中の暗号処理よりも優先して実行したい暗号処理が発生する場合には、実行中の暗号処理が完了するまで待機する必要がある。そのため、暗号処理の実行をスケジューリングする自由度が低下するという課題がある。さらに、ＨＷ暗号処理部の数を増やすと、暗号処理装置のコストが増加するという課題がある。
【００１０】
本開示の一態様は、ＨＷ暗号処理部の数を増やすことなく、暗号処理の実行をスケジューリングする自由度を向上し、暗号処理を完了する必要のある規定時間内に複数の暗号処理のそれぞれを低コストで完了する技術を提供できることが望ましい。
【課題を解決するための手段】
【００１１】
本開示の一態様の車載の暗号処理装置（３０）は、ハードウェア暗号処理部（６０）とソフトウェア暗号処理部（４２、５４、Ｓ４０６）と暗号制御部（４２、５２、Ｓ４０２、Ｓ４０４、Ｓ４０８〜Ｓ４１２、Ｓ４１６〜Ｓ４２０）とを備えている。
【００１２】
ハードウェア暗号処理部は、ハードウェアにより暗号処理を実行する。ソフトウェア暗号処理部はソフトウェアにより暗号処理を実行する。暗号制御部は、優先度の異なる複数の暗号処理をハードウェア暗号処理部とソフトウェア暗号処理部とに並列処理させる。
【００１３】
この構成によれば、優先度の異なる複数の暗号処理をハードウェア暗号処理部とソフトウェア暗号処理部とにより並列処理させるので、１個のハードウェア処理部で暗号処理を実行する場合に比べ、優先度の低い暗号処理であっても極力早く実行できる。これにより、優先度の低い暗号処理を、暗号処理を完了する必要のある規定時間内に極力完了できる。
【００１４】
さらに、ソフトウェア暗号処理部は暗号処理をソフトウェアにより中断して異なる暗号処理を実行できるので、暗号処理の実行をスケシューリングする自由度が向上する。
【００１５】
さらに、ソフトウェア暗号処理部はソフトウェアにより暗号処理を実行するので、ハードウェア暗号処理部を複数搭載するよりもコストを低減できる。
尚、この欄および特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の暗号処理装置を示す構成図である。
【図２】暗号処理を示すフローチャート。
【図３】暗号処理を表すタイムチャート。
【図４】暗号処理を表すタイムチャート。
【図５】暗号処理を表すタイムチャート。
【発明を実施するための形態】
【００１７】
以下、本開示の実施形態を図に基づいて説明する。
［１．構成］
図１に示す車載ネットワーク２では、複数のＥＣＵ１０が互いにデータを暗号化して通信している。ＥＣＵ１０は、通信ＩＦ２０とマイクロコンピュータ３０とを備えている。以下、マイクロコンピュータをマイコンとも言う。ＥＣＵはElectronic Control Unitの略であり、ＩＦはInterfaceの略である。
【００１８】
マイコン３０は、通信ＩＦ２０としてＣＡＮコントローラ、イーサネットコントローラ等を搭載している。ＣＡＮはController Area Networkの略であり、ＣＡＮとイーサネットとは登録商標である。
【００１９】
マイコン３０は、ＣＰＵ３２とＲＡＭ３４とＲＯＭ３６とＩＦ３８とＨＳＭ４０とを備えている。ＨＳＭは、Hardware Security Moduleの略である。
ＣＰＵ３２は、ＲＯＭ３６または図示しないフラッシュメモリに記憶されているプログラムを実行することにより、車両制御を実行する。ＩＦ３８は、ＣＰＵ３２とＨＳＭ４０とがマイコン３０の内部で通信するための内部コントローラである。
【００２０】
ＨＳＭ４０は、ＣＰＵ４２とＲＡＭ４４とＲＯＭ５０とＨＷ暗号処理部６０とを備えている。ＲＯＭ５０には、ＣＰＵ４２が実行する暗号制御プログラム５２とソフトウェア暗号処理プログラム５４とが記憶されている。以下、ソフトウェアをＳＷとも言う。
【００２１】
ＣＰＵ４２は、暗号制御プログラム５２を実行することにより、ＣＰＵ３２から要求される暗号処理を、ＣＰＵ４２がＳＷ暗号処理プログラム５４により実行するＳＷ暗号処理、あるいはＨＷ暗号処理部６０がハードウェアにより実行するＨＷ暗号処理のいずれかに割り当てるスケジューリングを実行する。ＨＷ暗号処理部６０は、暗号処理を実行する専用のハードウェアにより暗号処理を実行する。
【００２２】
ＣＰＵ４２がＣＰＵ３２から要求される暗号処理は、ＥＣＵ１０から他のＥＣＵ１０に送信する送信データの暗号化と、ＥＣＵ１０が他のＥＣＵ１０から受信する暗号化された受信データの復号化とである。ＳＷ暗号処理とＨＷ暗号処理との両方が実行する暗号処理のアルゴリズムは、ブロック暗号方式とストリーム暗号方式との少なくともいずれか一方である。
【００２３】
通常、処理速度が遅いＳＷ暗号処理に低負荷のブロック暗号方式が優先して割り当てられる。また、ＨＷ暗号処理部６０が対応していないブロック長の暗号処理は、ＳＷ暗号処理に割り当てられる。
［２．処理］
ＨＳＭ４０が実行する暗号処理について、図２のフローチャートに基づいて説明する。尚、本実施形態の暗号処理の優先度は、高優先度と、それよりも優先度の低い低優先度との２種類のレベルである。
【００２４】
Ｓ４００においてＨＳＭ４０は、図３のようにＣＰＵ３２から受け付ける暗号処理要求の待ち行列から、ＳＷ暗号処理プログラム５４により実行する低優先度のＳＷ暗号処理を探す。暗号処理の優先度は、暗号処理の対象となるデータの内容に応じて予め設定されている。図３では、暗号処理要求の１、２、４、５番目が高優先度の暗号処理であり、３番目が低優先度の暗号処理である。
【００２５】
Ｓ４０２においてＨＳＭ４０は、低優先度の暗号処理をＳＷ暗号処理により実行する場合、ＣＰＵ４２がＣＰＵ３２から暗号処理要求を受け付けてから暗号処理を完了するまでの完了時間を予測して算出する。
【００２６】
ＣＰＵ４２は、ＳＷ暗号処理の対象であるデータの長さと、暗号処理のアルゴリズムと、暗号処理要求が実行される順番となどに基づいて、完了時間を算出する。暗号処理のアルゴリズムは、前述したブロック暗号方式またはストリーム暗号方式のいずれかである。
【００２７】
図３において、ＨＳＭ４０は、暗号処理要求が１番目、４番目、５番目の高優先度の暗号処理をＨＷ暗号処理により実行し、暗号処理要求が２番目の高優先度の暗号処理と暗号処理要求が３番目の低優先度の暗号処理とをＳＷ暗号処理により実行する。
【００２８】
Ｓ４０４においてＨＳＭ４０は、ＳＷ暗号処理プログラム５４により低優先度の暗号処理要求をＳＷ暗号処理する場合、ＳＷ暗号処理の完了時間が規定時間内であるか否かを判定する。規定時間は、高優先度の暗号処理と低優先度の暗号処理とにおいて、暗号処理要求を受け付けてからＳＷ暗号処理により暗号処理を完了する必要のある時間を表している。
【００２９】
Ｓ４０４の判定がＹｅｓである、つまり図３に示すように、暗号処理要求が３番目の低優先度の暗号処理を完了する完了時間が規定時間内の場合、Ｓ４０６においてＨＳＭ４０は、現在の暗号処理要求の順番でＳＷ暗号処理プログラム５４によりＳＷ暗号処理を実行する。このように、ＨＷ暗号処理とＳＷ暗号処理とにより暗号処理を並列処理するので、暗号処理要求が３番目の低優先度の暗号処理であっても、ＳＷ暗号処理により規定時間内に完了できる。
【００３０】
これに対し、例えば、図３の比較例のように、一つのＨＷ暗号処理部だけで高優先度と低優先度との両方の暗号処理を実行すると、低優先度の暗号処理は高優先度の暗号処理が完了してから実行されるので、規定時間内に低優先度の暗号処理を完了できない可能性が高くなる。
【００３１】
図３に示すＳＷ暗号処理に対し、図４および図５のＳＷ暗号処理１が示すように、暗号処理要求が３番目の低優先度の暗号処理をすべての高優先度のＳＷ暗号処理が終了してから実行すると、暗号処理要求が３番目の低優先度をＳＷ暗号処理で完了する完了時間が規定時間を超える。この場合、Ｓ４０４の判定はＮｏになる。
【００３２】
Ｓ４０４の判定がＮｏの場合、Ｓ４０８においてＨＳＭ４０は、図４および図５のＳＷ暗号処理２が示すように、暗号処理要求が５番目の高優先度のＳＷ暗号処理の前に、暗号処理要求が３番目の低優先度のＳＷ暗号処理をスケジューリングする。そして、Ｓ４１０においてＨＳＭ４０は、暗号処理要求が３番目と５番目のＳＷ暗号処理の完了時間を算出する。
【００３３】
Ｓ４１２においてＨＳＭ４０は、Ｓ４１０で算出した低優先度のＳＷ暗号処理と高優先度のＳＷ暗号処理との完了時間の両方が、それぞれの規定時間内であるか否かを判定する。
【００３４】
Ｓ４１２の判定がＹｅｓである、つまり、図４のＳＷ暗号処理２が示すように、低優先度のＳＷ暗号処理と高優先度のＳＷ暗号処理との完了時間の両方がそれぞれの規定時間内の場合、Ｓ４０６においてＨＳＭ４０は、暗号処理要求が５番目の高優先度のＳＷ暗号処理の前に暗号処理要求が３番目の低優先度のＳＷ暗号処理をスケジューリングした順番でＳＷ暗号処理を実行する。
【００３５】
Ｓ４１２の判定がＮｏである、つまり、図５のＳＷ暗号処理２が示すように、低優先度の暗号処理と高優先度の暗号処理とをそれぞれＳＷ暗号処理により完了する完了時間の少なくともいずれかが規定時間を超える場合、Ｓ４１４においてＨＳＭ４０は、暗号処理要求が３番目と５番目の暗号処理を含み、まだ暗号処理が完了していない低優先度と高優先度の暗号処理を探す。
【００３６】
そして、Ｓ４１６、Ｓ４１８においてＨＳＭ４０は、低優先度のＳＷ暗号処理と高優先度のＳＷ暗号処理とを適宜時分割してＳＷ暗号処理を再スケジューリングする。図５のＳＷ暗号処理３では、暗号処理要求が３番目の低優先度のＳＷ暗号処理を時分割し、時分割した暗号処理要求が３番目の低優先度のＳＷ暗号処理の間に、暗号処理要求が５番目の高優先度のＳＷ暗号処理をスケジューリングしている。
【００３７】
Ｓ４１８においてＨＳＭ４０は、再スケジューリングした暗号処理要求が３番目のＳＷ暗号処理と５番目のＳＷ暗号処理との完了時間を算出する。
Ｓ４２０においてＣＰＵ４２は、再スケジューリングした暗号処理要求が３番目のＳＷ暗号処理と５番目のＳＷ暗号処理とを完了する完了時間が規定時間内であるか否かを判定する。
【００３８】
Ｓ４２０の判定がＹｅｓである、つまり再スケジューリングした暗号処理要求が３番目のＳＷ暗号処理と５番目のＳＷ暗号処理とを完了する完了時間が規定時間内の場合、Ｓ４０６においてＣＰＵ４２は、再スケジューリングした順番でＳＷ暗号処理を実行する。
【００３９】
Ｓ４２０の判定がＮｏである、つまり再スケジューリングした暗号処理要求が３番目のＳＷ暗号処理と５番目のＳＷ暗号処理との完了時間のいずれかがが規定時間を超える場合、Ｓ４２２においてＣＰＵ４２は、暗号処理の失敗をＣＰＵ３２に通知する。
［３．効果］
以上説明した上記実施形態によると、以下の効果を得ることができる。
【００４０】
（１）ＨＷ暗号処理部６０によるＨＷ暗号処理と、ＣＰＵ４２がＳＷ暗号処理プログラム５４を実行することによるＳＷ暗号処理とにより暗号処理を並列処理するので、低優先度の暗号処理であっても、規定時間内に暗号処理を極力完了できる。
【００４１】
（２）ＳＷ暗号処理は暗号処理を中断して時分割することにより、異なる暗号処理を実行できるので、暗号処理の実行をスケシューリングする自由度が向上する。
（３）複数のＨＷ暗号処理部６０を搭載して複数のＨＷ暗号処理部６０によるＨＷ暗号処理だけで暗号処理を並列処理するのではなく、ＨＷ暗号処理部６０によるＨＷ暗号処理と、ＣＰＵ４２がＳＷ暗号処理プログラム５４を実行することによるＳＷ暗号処理とにより暗号処理を並列処理するので、マイコン３０のコストを低減できる。
【００４２】
（４）ＨＷ暗号処理とＳＷ暗号処理とにより優先度にしたがって暗号処理を並列処理すると、規定時間内に低優先度の暗号処理を完了できない場合、高優先度のＳＷ暗号処理の前に低優先度のＳＷ暗号処理をスケジューリングする。これにより、低優先度の暗号処理を規定時間内に極力完了できる。
【００４３】
（５）高優先度のＳＷ暗号処理の前に低優先度のＳＷ暗号処理をスケジューリングすると、高優先度のＳＷ暗号処理を規定時間内に完了できない場合、低優先度のＳＷ暗号処理を時分割し、時分割したＳＷ暗号処理の間に高優先度のＳＷ暗号処理をスケジューリングする。これにより、高優先度のＳＷ暗号処理と低優先度のＳＷ暗号処理とを規定時間内に極力完了できる。
【００４４】
上記実施形態において、マイコン３０が暗号処理装置に対応し、ＨＷ暗号処理部６０がハードウェア暗号処理部に対応し、ＣＰＵ４２とＳＷ暗号処理プログラム５４とがソフトウェア暗号処理部に対応し、ＣＰＵ４２と暗号制御プログラム５２とが暗号制御部に対応する。
また、Ｓ４０２、Ｓ４０４、Ｓ４０８〜Ｓ４１２、Ｓ４１６〜Ｓ４２２が暗号制御部の処理に対応し、Ｓ４０６がソフトウェア暗号処理部の処理に対応する。
【００４５】
［３．他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００４６】
（１）上記実施形態では、暗号処理の優先度を高優先度と低優先度との２個の異なるレベルに設定した。暗号処理の優先度は２個に限るものではなく、３個以上の異なるレベルに設定してもよい。この場合、所定の優先度以下の暗号処理がＳＷ暗号処理に割り当てられる。
【００４７】
（２）上記実施形態では、暗号処理要求が３番目の低優先度のＳＷ暗号処理を時分割し、時分割した暗号処理要求が３番目の低優先度のＳＷ暗号処理の間に、暗号処理要求が５番目の高優先度のＳＷ暗号処理をスケジューリングした。
【００４８】
これに対し、低優先度のＳＷ暗号処理と高優先度のＳＷ暗号処理との両方をスケジューリングにより規定時間内に完了できるのであれば、高優先度のＳＷ暗号処理を時分割し、時分割した高優先度のＳＷ暗号処理の間に、低優先度のＳＷ暗号処理をスケジューリングしてもよい。また、低優先度のＳＷ暗号処理と高優先度のＳＷ暗号処理との両方を時分割してＳＷ暗号処理をスケジューリングしてもよい。
【００４９】
（３）上記実施形態では、暗号処理要求を受け付けてから暗号処理を完了すると予測されるまでの時間を完了時間とし、暗号処理要求を受け付けてから暗号処理を完了する必要のある時間までを規定時間とした。これに対し、暗号処理を完了すると予測されるタイミングを完了時間とし、このタイミングまでに暗号処理を完了する必要のあるタイミングを規定時間としてもよい。この場合、例えば、車両制御の制御周期の終了タイミングを規定時間としてもよい。
【００５０】
（４）上記実施形態では、１個のＨＷ暗号処理部６０をＨＳＭ４０に搭載した。これに対し、実装が可能であれば、複数のＨＷ暗号処理部６０をＨＳＭ４０に搭載してもよい。
（５）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言から特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【００５１】
（６）上述したマイコン３０が対応する暗号処理装置の他、当該暗号処理装置を構成要素とするシステム、当該暗号処理装置としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、暗号処理方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【００５２】
３０：マイクロコンピュータ（暗号処理装置）、４２：ＣＰＵ（ソフトウェア暗号処理部、暗号制御部）、５２：暗号制御プログラム（暗号制御部）、５４：ＳＷ暗号処理プログラム（ソフトウェア暗号処理部）、６０：ハードウェア暗号処理部
【図１】
2019096045.tif 000003
【図２】
2019096045.tif 000004
【図３】
2019096045.tif 000005
【図４】
2019096045.tif 000006
【図５】
2019096045.tif 000007