(57)【要約】【課題】セキュリティ機能を搭載した半導体装置、スマートカード及び電子機器。【解決手段】１つ以上のデータコードとデータコードを暗号化した暗号コードとの対である暗号テーブルＬＵＴと、暗号コードを格納する第１の領域ＤＡＴＡ１と、データコードを格納する第２の領域ＤＡＴＡ２と、１つ以上のデータコードを格納する第３の領域ＤＡＴＡ３と、を含み、第１の領域ＤＡＴＡ１に暗号コードを格納すると、暗号テーブルＬＵＴを検索し、暗号コードと対となるデータコードを第２の領域ＤＡＴＡ２に出力し、第２の領域ＤＡＴＡ２にデータコードを格納すると、暗号テーブルＬＵＴを検索し、データコードと対となる暗号コードを第１の領域ＤＡＴＡ１に出力する書き換え可能な強誘電体メモリ２００と、外部から命令コード及び暗号コードを受信する受信部１３０と、外部に暗号コードを送信する送信部１３２と、を含む。【選択図】図１
2008192030.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のデータコードと前記データコードを暗号化した暗号コードとの対である暗号テーブルと、
前記暗号コードを格納する第１の領域と、
前記データコードを格納する第２の領域と、
１つ以上の前記データコードを格納する第３の領域と、を含み、
前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記データコードを前記第２の領域に出力し、前記第２の領域に前記データコードを格納すると、前記暗号テーブルを検索し、前記データコードと対となる前記暗号コードを前記第１の領域に出力する書き換え可能な強誘電体メモリと、
外部から命令コード及び前記暗号コードを受信する受信部と、
外部に前記暗号コードを送信する送信部と、
を含み、
前記受信部に外部から前記命令コードとして書き込み命令及び前記暗号コードを受信すると、
受信した前記暗号コードを前記第１の領域に入力し、
前記第２の領域から出力される前記暗号コードと対となる前記データコードを前記第３の領域に書き込み、
前記受信部に外部から前記命令コードとして読み出し命令を受信すると、
前記第３の領域から所定の前記データコードを前記第２の領域に入力し、
前記第１の領域から出力される前記データコードと対となる前記暗号コードを前記送信部に転送し、前記送信部から前記暗号コードが外部に送信される、
ことを特徴とする半導体装置。
【請求項２】
１つ以上のデータコードと前記データコードを暗号化した暗号コードとの対である暗号テーブルと、
前記暗号コードを格納する第１の領域と、
前記データコードを格納する第２の領域と、
１つ以上の前記暗号コードを格納する第３の領域と、を含み、
前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記データコードを前記第２の領域に出力し、前記第２の領域に前記データコードを格納すると、前記暗号テーブルを検索し、前記データコードと対となる前記暗号コードを前記第１の領域に出力する書き換え可能な強誘電体メモリと、
外部から命令コード及び前記データコードを受信する受信部と、
外部に前記データコードを送信する送信部と、
を含み、
前記受信部に外部から前記命令コードとして書き込み命令及び前記データコードを受信すると、
受信した前記データコードを前記第２の領域に入力し、
前記第１の領域から出力される前記データコードと対となる前記暗号コードを前記第３の領域に書き込み、
前記受信部に外部から前記命令コードとして読み出し命令を受信すると、
前記第３の領域から所定の前記暗号コードを前記第１の領域に入力し、
前記第２の領域から出力される前記暗号コードと対となる前記データコードを前記送信部に転送し、前記送信部から前記データコードが外部に送信される、
ことを特徴とする半導体装置。
【請求項３】
請求項１または２に記載の半導体装置において、
前記強誘電体メモリは、
前記強誘電体メモリに記憶されているデータに発生し得る誤りを訂正するエラー訂正回路を含む、
ことを特徴とする半導体装置。
【請求項４】
請求項１から３のいずれか一項に記載の半導体装置を含むことを特徴とするスマートカード。
【請求項５】
請求項４に記載のスマートカードを含むことを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティ機能を搭載した半導体装置、スマートカード及び電子機器に関する。
【背景技術】
【０００２】
近年、従来の磁気カード型クレジットカード等からＩＣチップ搭載型クレジットカードへの移行普及が顕著である。ＩＣチップ搭載型クレジットカードでは、ＩＣチップのフラッシュメモリなどに多量の個人情報を記憶させることができるが、暗号化せずに記憶させると外部から読み取られてしまう危険があった。
【０００３】
この問題を解決するために、例えば非特許文献１には、図８に示すように、データを暗号化及び復号化する暗号復号処理回路（Crypt Engine）３００を搭載することにより、個人情報を暗号化して記憶させる方法が記載されている。
【０００４】
【非特許文献１】ソニー株式会社  ＲＣ−Ｓ９５３／３ＭＶカタログ  FIJ002-03-0609  （http://www.sony.co.jp/Products/felica/pdf/data/RC-S952_S953_J.pdf）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１では、暗号復号処理回路３００に暗号を解読するための暗号対応テーブルを記憶したＲＯＭ１４０と論理回路が含まれており、ＲＯＭ１４０の配線を調べれば比較的容易に暗号対応テーブルを解読することができてしまう。また、暗号対応テーブルを変更するには暗号復号処理回路３００を作り直さなければならない。
【０００６】
本発明は、このような事情に鑑みてなされたものであり、暗号対応テーブルの書き換えが容易で、外部から解読されない半導体装置、スマートカード及び電子機器を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明の半導体装置では、１つ以上のデータコードと前記データコードを暗号化した暗号コードとの対である暗号テーブルと、前記暗号コードを格納する第１の領域と、前記データコードを格納する第２の領域と、１つ以上の前記データコードを格納する第３の領域と、を含み、前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記データコードを前記第２の領域に出力し、前記第２の領域に前記データコードを格納すると、前記暗号テーブルを検索し、前記データコードと対となる前記暗号コードを前記第１の領域に出力する書き換え可能な強誘電体メモリと、外部から命令コード及び前記暗号コードを受信する受信部と、外部に前記暗号コードを送信する送信部と、を含み、前記受信部に外部から前記命令コードとして書き込み命令及び前記暗号コードを受信すると、受信した前記暗号コードを前記第１の領域に入力し、前記第２の領域から出力される前記暗号コードと対となる前記データコードを前記第３の領域に書き込み、前記受信部に外部から前記命令コードとして読み出し命令を受信すると、前記第３の領域から所定の前記データコードを前記第２の領域に入力し、前記第１の領域から出力される前記データコードと対となる前記暗号コードを前記送信部に転送し、前記送信部から前記暗号コードが外部に送信されることを要旨とする。
【０００８】
この構成によれば、暗号テーブルが非常に高速に書き換えが可能な強誘電体メモリに書き込まれているので、常に暗号テーブル関係を暗号テーブル自体が持つ暗号化ルールによって格納メモリとの間での暗号テーブルのキャッシュ機能を高速に適宜書き換え続けることが容易であり、強誘電体メモリに記憶されている格納データや格納データ履歴（暗号鍵あるいは復号鍵情報を含む）を常に書き換えられていくために、事実上強誘電体メモリに記憶されている暗号テーブルを外部から解読される恐れがない。また仮に一時的にデータを擬似的に解読され、悪用しかけたとしても、すぐに常に暗号テーブル関係を本来の暗号テーブル自体と格納メモリとの間で持つ暗号テーブルのキャッシュ機能によって、暗号テーブル自体が元のあるべき状態への復帰が繰り返されることで、悪用しかけた暗号テーブルが上書きされるため、強誘電体メモリに記憶されている暗号テーブルを外部から継続的に悪用される恐れがない。さらに悪意によって暗号テーブルや格納データ関係が不成立となる状況が発生検知された際には、強誘電体メモリの特徴を使い、この暗号テーブルの使用自体を停止することにより、装置の悪用を停止防御する機能を提供できるものである。
【０００９】
また、本発明の半導体装置では、１つ以上のデータコードと前記データコードを暗号化した暗号コードとの対である暗号テーブルと、前記暗号コードを格納する第１の領域と、前記データコードを格納する第２の領域と、１つ以上の前記暗号コードを格納する第３の領域と、を含み、前記第１の領域に前記暗号コードを格納すると、前記暗号テーブルを検索し、前記暗号コードと対となる前記データコードを前記第２の領域に出力し、前記第２の領域に前記データコードを格納すると、前記暗号テーブルを検索し、前記データコードと対となる前記暗号コードを前記第１の領域に出力する書き換え可能な強誘電体メモリと、外部から命令コード及び前記データコードを受信する受信部と、外部に前記データコードを送信する送信部と、を含み、前記受信部に外部から前記命令コードとして書き込み命令及び前記データコードを受信すると、受信した前記データコードを前記第２の領域に入力し、前記第１の領域から出力される前記データコードと対となる前記暗号コードを前記第３の領域に書き込み、前記受信部に外部から前記命令コードとして読み出し命令を受信すると、前記第３の領域から所定の前記暗号コードを前記第１の領域に入力し、前記第２の領域から出力される前記暗号コードと対となる前記データコードを前記送信部に転送し、前記送信部から前記データコードが外部に送信される。
【００１０】
この構成によれば、暗号テーブルが非常に高速に書き換えが可能な強誘電体メモリに書き込まれているので、常に暗号テーブル関係を暗号テーブル自体が持つ暗号化ルールによって格納メモリとの間での暗号テーブルのキャッシュ機能を高速に適宜書き換え続けることが容易であり、強誘電体メモリに記憶されている格納データや格納データ履歴（暗号鍵あるいは復号鍵情報を含む）を常に書き換えられていくために、事実上強誘電体メモリに記憶されている暗号テーブルを外部から解読される恐れがない。また仮に一時的にデータを擬似的に解読され、悪用しかけたとしても、すぐに常に暗号テーブル関係を本来の暗号テーブル自体と格納メモリとの間で持つ暗号テーブルのキャッシュ機能によって、暗号テーブル自体が元のあるべき状態への復帰が繰り返されることで、悪用しかけた暗号テーブルが上書きされるため、強誘電体メモリに記憶されている暗号テーブルを外部から継続的に悪用される恐れがない。さらに悪意によって暗号テーブルや格納データ関係が不成立となる状況が発生検知された際には、強誘電体メモリの特徴を使い、この暗号テーブルの使用自体を停止することにより、装置の悪用を停止防御する機能を提供できるものである。
【００１１】
また、本発明の半導体装置では、前記強誘電体メモリに記憶されているデータに発生し得る誤りを訂正するエラー訂正回路を含む。
【００１２】
この構成によれば、強誘電体メモリの第１の領域に転送された暗号コードに誤りがあった場合、訂正されるので、誤動作の恐れがない。
【００１３】
また、本発明のスマートカードは、上記記載のいずれかの半導体装置を含む。
【００１４】
また、本発明の電子機器は、上記記載のスマートカードを含む。
【発明を実施するための最良の形態】
【００１５】
以下、本発明を具体化した実施形態について図面に従って説明する。
【００１６】
（第１実施形態）
＜スマートカードの構成＞
まず、第１実施形態に係るスマートカードの構成について、図１を参照して説明する。図１は、本発明の第１実施形態に係るスマートカードの構成を示すブロック図である。図１に示すように、スマートカード１は、半導体装置であるＩＣチップ１００を含んでいる。
【００１７】
ＩＣチップ１００は、中央演算処理装置（ＣＰＵ）１１０と、ＣＰＵ１１０が実行するプログラムが格納されたＲＯＭ１４０と、ＣＰＵ１１０が実行時に一時的にデータの書き込みを行うＲＡＭ１５０と、外部からの信号を送受信するためのアンテナ１２０と、受信部である受信回路１３０と、送信部である送信回路１３２と、強誘電体メモリであるＦｅＲＡＭ（Ferroelectric Random Access Memory）２００と、内部バス１７０と、から構成されている。
【００１８】
ＦｅＲＡＭ２００は、データ記憶領域２１０と、エラー訂正回路（ＥＣＣ：Error Corrective Code）２２０と、を含んでいる。また、データ記憶領域２１０には、暗号コードをデータコードに復号するための暗号テーブルＬＵＴ（Look Up Table）が書き込まれている。データ記憶領域２１０は、さらに、暗号コードを格納する第１の領域である領域ＤＡＴＡ１と、データコードを格納する第２の領域である領域ＤＡＴＡ２と、１つ以上のデータコードを格納する第３の領域である領域ＤＡＴＡ３を有する。
【００１９】
ＦｅＲＡＭ２００とは、強誘電体を利用した不揮発メモリの一種で、強誘電体とは、電圧を加えることによって物質内の自発分極（物質内に電気的な正負が生じる状態）の方向を自由に変化させ、電圧をかけなくてもその分極方向を持続させることのできる誘電体（分極により電荷を蓄え、直流電流を通さない物質）である。さらに、ＦｅＲＡＭ２００は、フラッシュメモリの１０倍以上に及ぶ高速な読み書きが可能であり、信頼性の面においてもフラッシュメモリ、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）に比べて格段に上と言われている。
【００２０】
ＦｅＲＡＭ２００は、上述した高速アクセスと、高信頼性と、電圧をかけなくてもデータを記憶する不揮発性と、の利点を併せ持ち、さらに、強誘電体を記憶素子としているため、不用意にデータを読み出そうとすると書き込まれているデータが破壊してしまうため、外部からのデータの読み出しを困難にしている。このため、暗号コードを解読する暗号テーブルＬＵＴをＦｅＲＡＭ２００のデータ記憶領域２１０に書き込んでおくことは、高いセキュリティと信頼性を提供することができる。
【００２１】
＜ＬＵＴの構成＞
ここで、暗号テーブルＬＵＴの構成について図２を参照して説明する。図２は、暗号テーブルＬＵＴの構成を説明する構成図である。図２（Ａ）は、暗号コードをデータコードに復号する動きを示す構成図であり、図２（Ｂ）は、データコードを暗号コードに暗号化する動きを示す構成図である。また、図２に記載した数値は、単純な暗号化の一実施例を示すものである。
【００２２】
図２（Ａ）、（Ｂ）に示すように、ＦｅＲＡＭ２００のデータ記憶領域２１０は、暗号テーブルＬＵＴと、領域ＤＡＴＡ１と、領域ＤＡＴＡ２と、領域ＤＡＴＡ３と、を含んでいる。暗号テーブルＬＵＴは、各行が２つの領域を持ち、左側領域に暗号コードが格納され、右側領域に対となるデータコードが格納されている。
【００２３】
暗号コードをデータコードに復号する場合、図２（Ａ）に示すように、領域ＤＡＴＡ１に暗号コードを格納し、まずＥＣＣ２２０により領域ＤＡＴＡ１に格納された暗号コードが正しいかチェックし、正しければ暗号テーブルＬＵＴの左側領域から一致する暗号コードを検索する。一致する暗号コードが検索されると、対となる右側領域のデータコードが領域ＤＡＴＡ２に書き出される。
【００２４】
データコードを暗号コードに暗号化する場合、図２（Ｂ）に示すように、領域ＤＡＴＡ２にデータコードを格納し、暗号テーブルＬＵＴの右側領域から一致するデータコードを検索する。一致するデータコードが検索されると、対となる左側領域の暗号コードが領域ＤＡＴＡ１に書き出される。
【００２５】
＜暗号コードを書き込む動作＞
次に、暗号コードを書き込む動作について、図３を参照して説明する。図３は、暗号コードを書き込む動作を説明するブロック図である。
【００２６】
図３に示すように、外部から書き込み命令Ｗと暗号コードが送られてくると、アンテナ１２０と受信回路１３０と内部バス１７０を介してＦｅＲＡＭ２００のデータ記憶領域２１０の領域ＤＡＴＡ１に暗号コードが転送され、格納される。ＥＣＣ２２０により領域ＤＡＴＡ１に格納された暗号コードが正しいかチェックし、正しければ暗号テーブルＬＵＴの左側領域から一致する暗号コードを検索する。一致する暗号コードが検索されると、対となる右側領域のデータコードが領域ＤＡＴＡ２に格納される。領域ＤＡＴＡ２に格納されたデータコードは、領域ＤＡＴＡ３に順次書き込まれる。
【００２７】
＜暗号コードを読み出す動作＞
次に、暗号コードを読み出す動作について、図４を参照して説明する。図４は、暗号コードを読み出す動作を説明するブロック図である。
【００２８】
図４に示すように、外部から読み出し命令Ｒが送られてくると、アンテナ１２０と受信回路１３０と内部バス１７０を介してＣＰＵ１１０により解釈され、ＦｅＲＡＭ２００のデータ記憶領域２１０の領域ＤＡＴＡ３に保存されているデータコードが順次領域ＤＡＴＡ２に格納され、暗号テーブルＬＵＴの右側領域から一致するデータコードを検索する。一致するデータコードが検索されると、対となる左側領域の暗号コードが領域ＤＡＴＡ１に格納される。領域ＤＡＴＡ１に格納された暗号コードは、内部バス１７０と送信回路１３２とアンテナ１２０を介して外部に送信される。
【００２９】
＜データコードを書き込む動作＞
次に、データコードを書き込む動作について、図５を参照して説明する。図５は、データコードを書き込む動作を説明するブロック図である。
【００３０】
図５に示すように、外部から書き込み命令Ｗとデータコードが送られてくると、アンテナ１２０と受信回路１３０と内部バス１７０を介してＦｅＲＡＭ２００のデータ記憶領域２１０の領域ＤＡＴＡ２にデータコードが転送され、格納される。ＥＣＣ２２０により領域ＤＡＴＡ２に格納されたデータコードが正しいかチェックし、正しければ暗号テーブルＬＵＴの右側領域から一致するデータコードを検索する。一致するデータコードが検索されると、対となる左側領域の暗号コードが領域ＤＡＴＡ１に格納される。領域ＤＡＴＡ１に格納された暗号コードは、領域ＤＡＴＡ３に順次書き込まれる。
【００３１】
＜データコードを読み出す動作＞
次に、データコードを読み出す動作について、図６を参照して説明する。図６は、データコードを読み出す動作を説明するブロック図である。
【００３２】
図６に示すように、外部から読み出し命令Ｒが送られてくると、アンテナ１２０と受信回路１３０と内部バス１７０を介してＣＰＵ１１０により解釈され、ＦｅＲＡＭ２００のデータ記憶領域２１０の領域ＤＡＴＡ３に保存されている暗号コードが順次領域ＤＡＴＡ１に格納され、暗号テーブルＬＵＴの左側領域から一致する暗号コードを検索する。一致する暗号コードが検索されると、対となる右側領域のデータコードが領域ＤＡＴＡ２に格納される。領域ＤＡＴＡ２に格納されたデータコードは、内部バス１７０と送信回路１３２とアンテナ１２０を介して外部に送信される。
【００３３】
＜ＬＵＴの書き換え動作＞
次に、暗号テーブルＬＵＴの書き換え動作について、図７を参照して説明する。図７は、暗号テーブルＬＵＴの書き換え動作を説明するブロック図である。
【００３４】
図７に示すように、外部から暗号テーブルＬＵＴを書き換えるための情報が送られてくると、アンテナ１２０と受信回路１３０と内部バス１７０を介してＦｅＲＡＭ２００のデータ記憶領域２１０の暗号テーブルＬＵＴに転送され書き換えられる。
【００３５】
以上に述べた前記実施形態によれば、以下の効果が得られる。
【００３６】
本実施形態では、暗号テーブルが強誘電体メモリに書き込まれているので書き換えが容易であり、強誘電体メモリに記憶されているデータを外部から解読することが難しいため、強誘電体メモリに記憶されている暗号テーブルを外部から解読される恐れがないスマートカードを提供できる。
【００３７】
以上、本発明の実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【００３８】
（変形例１）本発明に係るスマートカードの変形例１について説明する。前記第１実施形態で説明したスマートカード１を使った電子機器は、非常に低電力で多様なサービスの暗号データ記憶処理分野に利用できる。例えば、電子機器として、駅の改札装置、自動販売機、銀行の現金自動取り扱い装置（ＡＴＭ）などが挙げられる。
【００３９】
（変形例２）本発明に係るスマートカードの変形例２について説明する。前記第１実施形態では、アンテナ１２０と受信回路１３０と送信回路１３２による非接触型スマートカードについて説明したが、アンテナ１２０と受信回路１３０と送信回路１３２の替わりに、端子を設けた接触型スマートカードでもよい。
【図面の簡単な説明】
【００４０】
【図１】本発明の第１実施形態に係るスマートカードの構成を示すブロック図。
【図２】暗号テーブルの構成を説明する構成図。
【図３】暗号コードを書き込む動作を説明するブロック図。
【図４】暗号コードを読み出す動作を説明するブロック図。
【図５】データコードを書き込む動作を説明するブロック図。
【図６】データコードを読み出す動作を説明するブロック図。
【図７】暗号テーブルの書き換え動作を説明するブロック図。
【図８】従来のスマートカードの構成を示すブロック図。
【符号の説明】
【００４１】
１…スマートカード、１００…ＩＣチップ、１１０…ＣＰＵ、１２０…アンテナ、１３０…受信回路、１３２…送信回路、１４０…ＲＯＭ、１５０…ＲＡＭ、１７０…内部バス、２００…ＦｅＲＡＭ、２１０…データ記憶領域、２２０…ＥＣＣ。
【図１】
2008192030.tif 000003
【図２】
2008192030.tif 000004
【図３】
2008192030.tif 000005
【図４】
2008192030.tif 000006
【図５】
2008192030.tif 000007
【図６】
2008192030.tif 000008
【図７】
2008192030.tif 000009
【図８】
2008192030.tif 000010