(57)【要約】【課題】セキュリティ機能を搭載した演算装置を提供する。【解決手段】１つ以上の命令コードと命令コードを暗号化した暗号コードとの対である暗号テーブルＬＵＴを記憶するための書き換え可能な強誘電体メモリ２００と、１つ以上の暗号コードを記憶するプログラムメモリ１１０と、プログラムメモリ１１０から暗号コードが順次転送される命令レジスタ１２０と、暗号コードと対となる命令コードを暗号テーブルＬＵＴにより検出し、検出した命令コードが転送される命令デコーダ１３０と、命令デコーダ１３０に転送された命令コードに基づき算術論理演算を実行する算術論理演算ユニット１４０と、を含む演算装置。【選択図】図１
2008191208.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のデータコードと前記データコードを暗号化した暗号コードとの対である暗号テーブルと、
前記暗号コードを格納する第１の領域と、
前記データコードを格納する第２の領域と、
を含む書き換え可能な強誘電体メモリを含み、
前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記データコードを前記第２の領域に出力し、
前記第２の領域に前記データコードを格納すると、前記暗号テーブルを検索し、前記データコードと対となる前記暗号コードを前記第１の領域に出力する、
ことを特徴とする暗号処理回路。
【請求項２】
請求項１に記載の暗号処理回路において、
前記強誘電体メモリは、
前記強誘電体メモリに記憶されているデータに発生し得る誤りを訂正するエラー訂正回路を含む、
ことを特徴とする暗号処理回路。
【請求項３】
１つ以上の命令コードと前記命令コードを暗号化した暗号コードとの対である暗号テーブルと、
前記暗号コードを格納する第１の領域と、
前記命令コードを格納する第２の領域と、
を含む書き換え可能な強誘電体メモリを含み、
前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記命令コードを前記第２の領域に出力し、
前記第２の領域に前記命令コードを格納すると、前記暗号テーブルを検索し、前記命令コードと対となる前記暗号コードを前記第１の領域に出力する暗号処理回路と、
１つ以上の前記暗号コードを記憶するプログラムメモリと、
前記プログラムメモリから前記暗号コードが順次転送される命令レジスタと、
前記命令レジスタに転送された前記暗号コードを前記強誘電体メモリの前記第１の領域に入力し、前記強誘電体メモリの前記第２の領域に出力された前記命令コードが転送される命令デコーダと、
前記命令デコーダに転送された前記命令コードに基づき算術論理演算を実行する算術論理演算ユニットと、
を含む、
ことを特徴とする演算装置。
【請求項４】
請求項３に記載の演算装置において、
前記強誘電体メモリは、
前記強誘電体メモリに記憶されているデータに発生し得る誤りを訂正するエラー訂正回路を含む、
ことを特徴とする演算装置。
【請求項５】
請求項３または４に記載の演算装置において、
前記演算装置は、
外部から読み込んだ前記命令コードを前記強誘電体メモリの前記第２の領域に入力し、前記強誘電体メモリの前記第１の領域に出力された前記暗号コードを前記プログラムメモリに書き込む、
ことを特徴とする演算装置。
【請求項６】
請求項３から５のいずれか一項に記載の演算装置を含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ機能を搭載した暗号処理回路、演算装置及び電子機器に関する。
【背景技術】
【０００２】
従来のマイクロプロセッサ（ＭＰＵ：Micro Processing Unit）は、図５に示すように外部プログラムメモリ１６０に記憶した暗号化されていないプログラムコードをＭＰＵ１０００のプログラムメモリ１１０に直接書き込み実行しているため、プログラムメモリ１１０にアクセスすることにより容易にプログラムコードを解読されてしまい、悪用される恐れがあった。
【０００３】
この問題を解決するために、例えば非特許文献１には、図６に示すように、暗号化コプロセッサ３００を搭載し、ＭＰＵ１０００のプログラムメモリ１１０に記憶させるプログラムを暗号化し、暗号コプロセッサ３００により暗号を解読し実行する方法が記載されている。
【０００４】
【非特許文献１】「富士通半導体デバイス  ＦＲＡＭガイドブック  MN05-00009-4」、ｐ．１７（http://edevice.fujitsu.com/jp/manual/MANUALp/ja-pdf/MN05-00009-4.pdf）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１では、暗号化コプロセッサ３００に暗号化および解読するための暗号対応履歴（暗号鍵あるいは復号鍵情報を含む）データを次回外部との通信事象が発生し暗号処理プログラムの変更事象が起こりうるまでの比較的長期間固定記憶したプログラム格納ＲＯＭ（あるいはＲＡＭ）と固定された暗号化処理のための論理回路が含まれており、暗号化履歴を格納したデータを復号事象を発生させないままで（固定記憶のままで）待機させた状態にして、プログラム格納ＲＯＭの配線上にて、アドレスを順に入力して格納データを出力させて関係を調べれば比較的容易に暗号対応（暗号鍵あるいは復号鍵情報を含む）履歴や暗号処理情報を解読することができてしまう。この格納プログラムを悪意を持って解読され、その結果として格納されている暗号化（暗号鍵あるいは復号鍵情報を含む）の履歴テーブルを簡単に解読されるばかりでなく、格納プログラムの改竄をも施されてしまう危険性を持っている。また、ＲＯＭの暗号対応（暗号鍵あるいは復号鍵情報を含む）履歴や暗号処理情を変更するにはそのたび毎に暗号化コプロセッサ３００を改めて演算処理させて、結果データ格納ＲＡＭにその都度暗号対応データと暗号化（暗号鍵あるいは復号鍵情報を含む）の履歴テーブルを作り直さなければならない。このことは、すなわち一度（暗号鍵あるいは復号鍵情報を含む）履歴や暗号処理情報を暴かれてしまった場合には、悪用された偽の暗号化（暗号鍵あるいは復号鍵情報を含む）の履歴テーブルを勝手に作られてしまうことを回避できないことを意味する。さらに、この過程あるいは結果データ格納中に電源の遮断等の異常使用環境の発生が生じるなどによる、通常ＲＡＭでは格納情報の破壊や不良化に対して、信頼性を十分に保証できない。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、暗号対応テーブルの書き換えが容易で、外部から解読されない暗号処理回路、演算装置及び電子機器を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の暗号処理回路では、１つ以上のデータコードと前記データコードを暗号化した暗号コードとの対である暗号テーブルと、前記暗号コードを格納する第１の領域と、前記データコードを格納する第２の領域と、を含む書き換え可能な強誘電体メモリを含み、前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記データコードを前記第２の領域に出力し、前記第２の領域に前記データコードを格納すると、前記暗号テーブルを検索し、前記データコードと対となる前記暗号コードを前記第１の領域に出力することを要旨とする。
【０００８】
この構成によれば、暗号テーブルが非常に高速に書き換えが可能な強誘電体メモリに書き込まれているので、常に暗号テーブル関係を暗号テーブル自体が持つ暗号化ルールによって格納メモリとの間での暗号テーブルのキャッシュ機能を高速に適宜書き換え続けることが容易であり、強誘電体メモリに記憶されている格納データや格納データ履歴（暗号鍵あるいは復号鍵情報を含む）を外部から解読することが常に書き換えられていくために、事実上強誘電体メモリに記憶されている暗号テーブルを外部から解読される恐れがない。また仮に一時的にデータを擬似的に解読され、悪用しかけたとしても、すぐに常に暗号テーブル関係を本来の暗号テーブル自体と格納メモリとの間で持つ暗号テーブルのキャッシュ機能によって、暗号テーブル自体が元のあるべき状態への復帰が繰り返されることで、悪用しかけた暗号テーブルが上書きされるため、強誘電体メモリに記憶されている暗号テーブルを外部から継続的に悪用される恐れがない。さらに悪意によって暗号テーブルや格納データ関係の不成立となる状況が発生検知された際には、強誘電体メモリの特徴を使い、この暗号テーブルの使用自体を停止することにより、装置の悪用を停止防御する機能を提供できるものである。
【０００９】
また、本発明の暗号処理回路では、前記強誘電体メモリは、前記強誘電体メモリに記憶されているデータに発生し得る誤りを訂正するエラー訂正回路を含む。
【００１０】
この構成によれば、強誘電体メモリの第１の領域に転送された暗号コードに誤りがあった場合、訂正されるので、誤動作の恐れがない。
【００１１】
上記課題を解決するために、本発明の演算装置では、１つ以上の命令コードと前記命令コードを暗号化した暗号コードとの対である暗号テーブルと、前記暗号コードを格納する第１の領域と、前記命令コードを格納する第２の領域と、を含む書き換え可能な強誘電体メモリを含み、前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記命令コードを前記第２の領域に出力し、前記第２の領域に前記命令コードを格納すると、前記暗号テーブルを検索し、前記命令コードと対となる前記暗号コードを前記第１の領域に出力する暗号処理回路と、１つ以上の前記暗号コードを記憶するプログラムメモリと、前記プログラムメモリから前記暗号コードが順次転送される命令レジスタと、前記命令レジスタに転送された前記暗号コードを前記強誘電体メモリの前記第１の領域に入力し、前記強誘電体メモリの前記第２の領域に出力された前記命令コードが転送される命令デコーダと、前記命令デコーダに転送された前記命令コードに基づき算術論理演算を実行する算術論理演算ユニットと、を含むことを要旨とする。
【００１２】
この構成によれば、暗号テーブルが非常に高速に書き換えが可能な強誘電体メモリに書き込まれているので、常に暗号テーブル関係を暗号テーブル自体が持つ暗号化ルールによって格納メモリとの間での暗号テーブルのキャッシュ機能を高速に適宜書き換え続けることが容易であり、強誘電体メモリに記憶されている格納プログラムや格納データ履歴（暗号鍵あるいは復号鍵情報を含む）を外部から解読することが常に書き換えられていくために、事実上強誘電体メモリに記憶されている暗号テーブルを外部から解読される恐れがない。また仮に一時的にプログラムやデータを擬似的に解読され、悪用しかけたとしても、すぐに常に暗号テーブル関係を本来の暗号テーブル自体と格納メモリとの間で持つ暗号テーブルのキャッシュ機能によって、暗号テーブル自体が元のあるべき状態への復帰が繰り返されることで、悪用しかけた暗号テーブルが上書きされるため、強誘電体メモリに記憶されている暗号テーブルを外部から継続的に悪用される恐れがない。さらに悪意によって暗号テーブルや格納プログラム、格納データ関係の不成立となる状況が発生検知された際には、強誘電体メモリの特徴を使い、この暗号テーブルの使用自体を停止することにより、装置の悪用を停止防御する機能を提供できるものである。
【００１３】
また、本発明の演算装置では、前記強誘電体メモリは、前記強誘電体メモリに記憶されているデータに発生し得る誤りを訂正するエラー訂正回路を含む。
【００１４】
この構成によれば、命令レジスタから強誘電体メモリに転送された暗号コードに誤りがあった場合、訂正されるので、誤動作の恐れがない。
【００１５】
また、本発明の演算装置では、前記演算装置は、外部から読み込んだ前記命令コードを前記強誘電体メモリの前記第２の領域に入力し、前記強誘電体メモリの前記第１の領域に出力された前記暗号コードを前記プログラムメモリに書き込む。
【００１６】
この構成によれば、同じ暗号テーブルにより命令コードが暗号化されるので、誤動作の恐れがない。
【００１７】
また、本発明の電子機器では、上記記載の演算装置を含む。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を具体化した実施形態について図面に従って説明する。
【００１９】
（第１実施形態）
＜演算装置の構成＞
まず、第１実施形態に係る演算装置の構成について、図１を参照して説明する。図１は、本発明の第１実施形態に係る演算装置の構成を示すブロック図である。図１に示すように、演算装置であるＭＰＵ１００は、プログラムメモリ１１０と、命令レジスタ１２０と、命令デコーダ１３０と、算術論理演算ユニット（ＡＬＵ：Arithmetic and Logic Unit）１４０と、汎用レジスタ１５０と、強誘電体メモリであるＦｅＲＡＭ（Ferroelectric Random Access Memory）２００を含む暗号処理回路１０と、内部バスＩＢＵＳＡ，ＩＢＵＳＢと、から構成されている。
【００２０】
ＦｅＲＡＭ２００とは、強誘電体を利用した不揮発メモリの一種で、強誘電体とは、電圧を加えることによって物質内の自発分極（物質内に電気的な正負が生じる状態）の方向を自由に変化させ、電圧をかけなくてもその分極方向を持続させることのできる誘電体（分極により電荷を蓄え、直流電流を通さない物質）である。さらに、ＦｅＲＡＭ２００は、フラッシュメモリの１０倍以上に及ぶ高速な読み書きが可能であり、信頼性の面においてもフラッシュメモリ、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）に比べて格段に上と言われている。
【００２１】
ＦｅＲＡＭ２００は、上述した高速アクセスと、高信頼性と、電圧をかけなくてもデータを記憶する不揮発性と、の利点を併せ持ち、さらに、強誘電体を記憶素子としているため、不用意にデータを読み出そうとすると書き込まれているデータが破壊してしまうため、外部からのデータの読み出しを困難にしている。このため、暗号コードを解読する暗号テーブルＬＵＴをＦｅＲＡＭ２００のデータ記憶領域２１０に書き込んでおくことにより、高いセキュリティと信頼性を提供することができる。
【００２２】
プログラムメモリ１１０は、データの消去・書き込みを自由に行うことができ、電源を切っても内容が消えないフラッシュメモリなどで構成され、命令コードを暗号化した一連の暗号コードが書き込まれている。プログラムメモリ１１０は、図示しないプログラムカウンタにより次に実行すべき暗号コードを内部バスＩＢＵＳＡを介して命令レジスタ１２０に転送する。
【００２３】
命令レジスタ１２０は、暗号コードを受け取ると、従来のＭＰＵ１０００（図５参照）のように命令デコーダ１３０に転送せず、ＦｅＲＡＭ２００に転送する。
【００２４】
ＦｅＲＡＭ２００は、データ記憶領域２１０と、エラー訂正回路（ＥＣＣ：Error Corrective Code）２２０と、を含んでいる。また、データ記憶領域２１０には、暗号コードを命令コードに復号するための暗号テーブルＬＵＴ（Look up Table）が書き込まれている。ＦｅＲＡＭ２００は、命令レジスタ１２０から転送された暗号コードをデータ記憶領域２１０の第１の領域である領域ＤＡＴＡ１に受け取ると、暗号テーブルＬＵＴを参照し、暗号コードと対となる命令コードをデータ記憶領域２１０の第２の領域である領域ＤＡＴＡ２に書き込み、命令デコーダ１３０に転送する。
【００２５】
命令デコーダ１３０は、転送された命令コードを解読し、ＡＬＵ１４０と汎用レジスタ１５０により命令コードに記載された命令が実行される。
【００２６】
＜ＬＵＴの構成＞
ここで、暗号テーブルＬＵＴの構成について図２を参照して説明する。図２は、暗号テーブルＬＵＴの構成を説明する構成図である。図２（Ａ）は、暗号コードを命令コードに復号する動きを示す構成図であり、図２（Ｂ）は、命令コードを暗号コードに暗号化する動きを示す構成図である。また、図２に記載した数値は、単純な暗号化の一実施例を示すものである。
【００２７】
図２（Ａ）、（Ｂ）に示すように、ＦｅＲＡＭ２００のデータ記憶領域２１０は、暗号テーブルＬＵＴと、領域ＤＡＴＡ１，ＤＡＴＡ２とを含んでいる。暗号テーブルＬＵＴは、各行が２つの領域を持ち、左側領域に暗号コードが格納され、右側領域に対となる命令コードが格納されている。
【００２８】
暗号コードを命令コードに復号する場合、図２（Ａ）に示すように、領域ＤＡＴＡ１に暗号コードを格納し、まずＥＣＣ２２０により領域ＤＡＴＡ１に格納された暗号コードが正しいかチェックし、正しければ暗号テーブルＬＵＴの左側領域から一致する暗号コードを検索する。一致する暗号コードが検索されると、対となる右側領域の命令コードが領域ＤＡＴＡ２に書き出される。
【００２９】
命令コードを暗号コードに暗号化する場合、図２（Ｂ）に示すように、領域ＤＡＴＡ２に命令コードを格納し、暗号テーブルＬＵＴの右側領域から一致する命令コードを検索する。一致する命令コードが検索されると、対となる左側領域の暗号コードが領域ＤＡＴＡ１に書き出される。
【００３０】
＜命令コードの暗号化の動作＞
次に、命令コードの暗号化の動作について、図３を参照して説明する。図３は、命令コードの暗号化の動作を説明するブロック図である。
【００３１】
図３に示すように、ＭＰＵ１００は、外部バスＯＢＵＳＡ，ＯＢＵＳＢと接続され、暗号化前の命令コードが書き込まれた外部プログラムメモリ１６０と、外部データメモリ１７０などが接続されている。外部プログラムメモリ１６０に書き込まれている命令コードは、外部バスＯＢＵＳＡ及び内部バスＩＢＵＳＡを介してＦｅＲＡＭ２００のデータ記憶領域２１０の領域ＤＡＴＡ２に順次転送される。命令コードをデータ記憶領域２１０の領域ＤＡＴＡ２に受け取ると、暗号テーブルＬＵＴを参照し、対となる暗号コードをデータ記憶領域２１０の領域ＤＡＴＡ１に書き込み、プログラムメモリ１１０に転送する。
【００３２】
＜ＬＵＴの書き換え動作＞
次に、暗号テーブルＬＵＴの書き換え動作について、図４を参照して説明する。図４は、暗号テーブルＬＵＴの書き換え動作を説明するブロック図である。図４では、暗号テーブルＬＵＴが外部データメモリ１７０に書き込まれている場合について説明する。
【００３３】
図４に示すように、外部データメモリ１７０に書き込まれている暗号テーブルＬＵＴは、外部バスＯＢＵＳＢ及び内部バスＩＢＵＳＢを介してＦｅＲＡＭ２００のデータ記憶領域２１０の暗号テーブルＬＵＴに転送され書き換えられる。
【００３４】
以上に述べた前記実施形態によれば、以下の効果が得られる。
【００３５】
本実施形態では、暗号テーブルが強誘電体メモリに書き込まれているので書き換えが容易であり、強誘電体メモリに記憶されているデータを外部から解読することが難しいため、強誘電体メモリに記憶されている暗号テーブルを外部から解読される恐れがない演算装置を提供できる。
【００３６】
以上、本発明の実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【００３７】
（変形例１）本発明に係る演算装置の変形例１について説明する。前記第１実施形態で説明した演算装置ＭＰＵ１００を使った電子機器は、非常に低電力で多様なサービスの暗号データ記憶処理分野に利用できる。例えば、電子機器として、携帯電話、ＰＤＡなどの情報機器や微弱電源利用機器である電子腕時計やヘルスメータ時計等々が挙げられる。
【図面の簡単な説明】
【００３８】
【図１】本発明の第１実施形態に係る演算装置の構成を示すブロック図。
【図２】暗号テーブルの構成を説明する構成図。
【図３】命令コードの暗号化の動作を説明するブロック図。
【図４】暗号テーブルの書き換え動作を説明するブロック図。
【図５】従来の演算装置の構成を示すブロック図。
【図６】従来の暗号コプロセッサを搭載した演算装置の構成を示すブロック図。
【符号の説明】
【００３９】
１００…ＭＰＵ、１１０…プログラムメモリ、１２０…命令レジスタ、１３０…命令デコーダ、１４０…ＡＬＵ、１５０…汎用レジスタ、１６０…外部プログラムメモリ、１７０…外部データメモリ、２００…ＦｅＲＡＭ、２１０…データ記憶領域、２２０…ＥＣＣ、１０００…ＭＰＵ。
【図１】
2008191208.tif 000003
【図２】
2008191208.tif 000004
【図３】
2008191208.tif 000005
【図４】
2008191208.tif 000006
【図５】
2008191208.tif 000007
【図６】
2008191208.tif 000008