JP2005309758A - 半導体装置、電子機器及び半導体装置のアクセス制御方法 - Google Patents

半導体装置、電子機器及び半導体装置のアクセス制御方法 Download PDF

Info

Publication number
JP2005309758A
JP2005309758A JP2004125735A JP2004125735A JP2005309758A JP 2005309758 A JP2005309758 A JP 2005309758A JP 2004125735 A JP2004125735 A JP 2004125735A JP 2004125735 A JP2004125735 A JP 2004125735A JP 2005309758 A JP2005309758 A JP 2005309758A
Authority
JP
Japan
Prior art keywords
data
debugger
access
semiconductor device
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004125735A
Other languages
English (en)
Other versions
JP3804670B2 (ja
Inventor
Tomonori Kumagai
友則 熊谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2004125735A priority Critical patent/JP3804670B2/ja
Priority to US11/108,991 priority patent/US20050268174A1/en
Publication of JP2005309758A publication Critical patent/JP2005309758A/ja
Application granted granted Critical
Publication of JP3804670B2 publication Critical patent/JP3804670B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】低コストでセキュリティ機能を実現し、汎用のデバッガを用いてデバッグ可能なメモリ内蔵の装置を提供する。
【解決手段】中央演算処理装置のエミュレーション機能を有し中央演算処理装置に代行してメモリへのアクセスを行うデバッガ100又は中央演算処理装置のメモリ20へのアクセスを制限するセキュリティ回路30と、デバッグイネーブル信号入力端子12とを含む。デバッグイネーブル信号がインアクティブのとき、デバッガ100から半導体装置10へのアクセス信号を無効にし、セキュリティ回路30が中央演算処理装置のメモリ20へのアクセスを許可する。デバッグイネーブル信号がアクティブのとき、上記アクセス信号は有効となるが、セキュリティ回路30はメモリ20へのアクセスを不許可とする。その後デバッガ100よりアクセス用のパスワードを入力することにより、セキュリティ回路30がデバッガ100のメモリ20へのアクセスを許可する。
【選択図】図1

Description

本発明は、半導体装置、電子機器及び半導体装置のアクセス制御方法に関する。
半導体装置に内蔵されるメモリには、極秘にしたいデータが記憶される場合がある。特に、半導体装置にCPU(Central Processing Unit)とメモリが内蔵され、該メモリにCPUのアクセスデータであるソースコードが記憶される場合、このソースコードに極秘にしたいデータが含まれることがある。このような場合に、当該半導体装置を用いたシステム開発時に使用されるデバッガ等によりメモリに不正にアクセスされることを防止する必要がある。そのため、半導体装置のデバッグ環境を考慮して何らかのセキュリティ対策を採用する必要がある。
特開2003−177938号公報
上述のように半導体装置のデバッグ環境を考慮してセキュリティ対策を採用する一方で、半導体装置のコスト高、或いは該半導体装置を用いたシステム開発のコスト高を回避する必要もある。
しかしながら、特許文献1に開示された技術では、新たな外部装置を必要とするため、開発環境のコスト高を招いてしまう。またセキュリティ機能を実現するためのソフトウェアが半導体装置内に搭載されるため、外部装置との間の通信制御が複雑化してしまう。更に、半導体装置内においてセキュリティ機能を実現するためのデータと極秘にしたいデータとを分けて記憶する等の新たなセキュリティ対策が必要となり、半導体装置の構成及び制御が複雑化してしまう。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、低コストでセキュリティ機能を実現し、汎用のデバッガを用いてデバッグ可能なメモリ内蔵の半導体装置、電子機器及び半導体装置のアクセス制御方法を提供することにある。
上記課題を解決するために本発明は、中央演算処理装置と、前記中央演算処理装置がアクセスするメインメモリと、前記中央演算処理装置のエミュレーション機能を有し前記中央演算処理装置に代行して前記メインメモリへのアクセスを行うデバッガの前記メインメモリへのアクセス又は前記中央演算処理装置の前記メインメモリへのアクセスを制限するセキュリティ回路と、前記デバッガのデバッグ機能をイネーブルにするためのデバッグイネーブル信号が入力されるデバッグイネーブル信号入力端子とを含み、前記デバッグイネーブル信号がインアクティブのとき、前記デバッガから前記半導体装置へのアクセス信号を無効にすると共に、前記セキュリティ回路が前記中央演算処理装置の前記メインメモリへのアクセスを許可し、前記デバッグイネーブル信号がアクティブのとき、前記デバッガから前記半導体装置へのアクセス信号を有効にし、前記セキュリティ回路が前記デバッガの前記メインメモリへのアクセスを許可する半導体装置に関係する。
本発明によれば、デバッグイネーブル信号入力端子を設けたので、デバッガ等に付加回路を設けることなく、汎用的なデバッガが接続されたことを検出できるようになる。そして、このデバッグイネーブル信号によりデバッグ機能をイネーブルにし、このイネーブル状態では、デバッガからの半導体装置へのアクセス信号を有効にし、且つセキュリティ回路がデバッガの接続を検出して一旦メインメモリへのアクセスを不許可にするようにした。その後、アクセス信号の少なくとも一部により表される入力データが所定のデータであることを条件に、セキュリティ回路がデバッガのメインメモリへのアクセスを許可することができる。これにより、汎用的なデバッガを使用することが可能となり、かつ、簡素な構成で、汎用的なデバッガの不正なメモリへのアクセスを制限できるようになるため、システムの開発の低コスト化を図ることができる。
また本発明に係る半導体装置では、前記デバッグイネーブル信号がアクティブのとき、前記デバッガから前記半導体装置へのアクセス信号を有効にし、前記セキュリティ回路が前記メインメモリへのアクセスを不許可にした後に、前記アクセス信号の少なくとも一部により表される入力データが所定のデータであることを条件に、前記セキュリティ回路が前記デバッガの前記メインメモリへのアクセスを許可することができる。
また本発明に係る半導体装置では、予め秘密固有データが設定される秘密固有データ保持部と、前記秘密固有データと前記入力データとに基づいて暗号化パスワードデータを生成する暗号化パスワードデータ生成部とを含み、予め設定された照合用パスワードデータと前記暗号化パスワードデータとが一致したとき、前記セキュリティ回路が前記デバッガの前記メインメモリへのアクセスを許可することができる。
また本発明に係る半導体装置では、前記暗号化パスワードデータ生成部が、前記秘密固有データと前記入力データとに基づく一方向暗号化処理によって前記暗号化パスワードデータを生成することができる。
本発明によれば、上記の暗号化処理を一方向暗号化処理にしたので、暗号鍵を不要とし、簡素な構成でセキュリティを確保できる。
また本発明によれば、前記秘密固有データと前記入力データとを用い一方向暗号処理によって暗号化パスワードを生成するので、該入力データと前記照合用パスワードの関係を推測されることなく、該入力データをユーザごとに変更することができる。
また本発明に係る半導体装置では、前記デバッガの前記メインメモリへのアクセスが不許可となったとき、前記半導体装置をハードウェアリセットすることを条件に、前記デバッガからの次のアクセス信号を受け付けることができる。
本発明においては、デバッガからのアクセスが不正であると判別されたとき、半導体装置のハードウェアリセットを行わない限り、次のアクセス信号、即ち、次の入力データを受け付けないようにしている。これにより、専用ソフトウェアなどによる不正な総当り攻撃を防ぐことができるため、その分だけ入力データのビット数を節約できる。
また本発明に係る半導体装置では、復号化鍵データを記憶する復号化鍵データ保持部と、不揮発性メモリから読み出されて前記メインメモリに書き込まれるソースコードの復号化処理を、前記復号化鍵データを用いて行う復号化処理部とを含み、前記セキュリティ回路が前記メインメモリへのアクセスを許可したときに、前記中央演算処理装置又は前記デバッガが、前記復号化処理部の復号化処理後のソースコードを読み込むことができる。
また本発明に係る半導体装置では、予め復号化鍵固有データが設定される復号化鍵固有データ保持部を含み、予め設定される復号化用データと前記復号化鍵固有データとに基づいて前記復号化鍵データを生成し、該復号化鍵データを前記復号化鍵データ保持部に保持させることができる。
本発明においては、デバッガからのアクセスが正当であると判別された後に、メモリに対して復号化したデータを展開するようにしたので、デバッガからの不正アクセスに対するセキュリティをより高めることができるようになる。
また本発明に係る半導体装置では、前記セキュリティ回路が、前記デバッガ又は前記中央演算処理装置の前記メインメモリへのアクセスを許可するとき、前記デバッガ又は前記中央演算処理装置が出力するアクセス信号のマスクを解除し、前記デバッガ又は前記中央演算処理装置の前記メインメモリへのアクセスを不許可にするとき、前記デバッガ又は前記中央演算処理装置が出力するアクセス信号をマスクすることができる。
本発明のよれば、簡素な構成で、セキュリティ回路を実現できる。
以上のような本発明に係る半導体装置によれば、汎用的なデバッグによる開発を可能にすると共に、該デバッガからの不正なアクセスによってメインメモリ内のデータが解析されるリバースエンジニアリングを防止したり、ライセンス化された極秘情報を保護したりできるようになる。
また本発明は、上記記載の半導体装置と、汎用シリアルバスインタフェースとを含み、前記半導体装置が、前記不揮発性メモリに記憶されたソースコードが前記メインメモリに転送され記憶された後に、前記中央演算処理装置が、前記メインメモリが記憶した前記ソースコードに基づいて、前記汎用シリアルバスインタフェースを介して転送されるデータの加工処理を行う電子機器に関係する。
本発明によれば、汎用的なデバッガで開発できる上に、該デバッガからの不正なアクセスによってメインメモリ内のデータが解析されるリバースエンジニアリングを防止したり、ライセンス化された極秘情報を保護したりできる半導体装置を含む電子機器を提供できるようになる。
また本発明は、中央演算処理装置がアクセスするソースコードがメインメモリに記憶される半導体装置のアクセス制御方法であって、前記中央演算処理装置のエミュレーション機能を有し前記中央演算処理装置に代行して前記メインメモリへのアクセスを行うデバッガのデバッグ機能をイネーブルにするためのデバッグイネーブル信号がインアクティブのとき、前記デバッガから前記半導体装置へのアクセス信号を無効にすると共に、前記中央演算処理装置の前記メインメモリへのアクセスを許可するステップと、前記デバッグイネーブル信号がアクティブのとき、前記デバッガからの前記半導体装置へのアクセス信号を有効にし、前記デバッガの前記メインメモリへのアクセスを許可するステップとを含む半導体装置のアクセス制御方法に関係する。
また本発明に係る半導体装置のアクセス制御方法において、前記デバッガの前記メインメモリへのアクセスを許可するステップでは、前記デバッガの前記メインメモリへのアクセスを不許可にした後に、前記アクセス信号の少なくとも一部により表される入力データが所定のデータであることを条件に、前記デバッガの前記メインメモリへのアクセスを許可することができる。
また本発明に係る半導体装置のアクセス制御方法では、予め設定された秘密固有データと前記入力データとに基づいて暗号化パスワードデータを生成するステップを含み、予め設定された照合用パスワードデータと前記暗号化パスワードデータとが一致したとき、前記デバッガの前記メインメモリへのアクセスを許可することができる。
また本発明に係る半導体装置のアクセス制御方法では、前記デバッガの前記メインメモリへのアクセスが不許可となったとき、前記半導体装置をハードウェアリセットすることを条件に、前記デバッガからの次のアクセス信号を受け付けることができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
図1に、本実施形態の半導体装置の原理的構成の構成図を示す。
半導体装置(IC、半導体回路、半導体集積回路)10は、メモリ20と、セキュリティ回路30とを含む。メモリ20は、CPU(中央演算処理装置)のアクセスデータを記憶する。このメモリ20を、メインメモリと呼ぶことができる。セキュリティ回路30は、CPU又はデバッガ100のメモリ20へのアクセスを制限する。デバッガ100は、該CPUのエミュレーション機能を有し、デバッグモード時にCPUに代行してメモリ20にアクセスする。このデバッガ100のCPUのエミュレーション機能は、ソフトウェア及び該ソフトウェアを読み込んでソフトウェアに対応した処理を行うハードウェアによって実現される。
半導体装置10は、CPUマクロ40を含むことができる。CPUマクロ40は、CPUコア42を含む。CPUコア42が、プログラムを読み込んで該プログラムに対応した処理を実行するCPUということができる。CPUマクロ40のCPUコア42以外の部分は、CPU以外の周辺回路ということができる。本実施形態では、該周辺回路が、デバッグモード時にデバッガ100からのデバッグ信号(アドレス信号、データ信号、アクセス制御信号等)をCPUコア42の信号として出力するセレクタ44等を含む。
なお図1では、セレクタ44のみを示しているが、デバッグモード時にCPUコア42に入力される信号をデバッガ100に対して出力するためのセレクタを含むことができる。
このような構成により、通常動作モード時には、CPUコア42が、セキュリティ回路30を介してメモリ20へのアクセスを行う。メモリ20に記憶されたデータを読み出す場合、CPUコア42が、該データが記憶されたメモリ20のアドレス信号、読み出し制御信号及びチップセレクト信号(アクセス制御信号)を出力し、メモリ20に記憶されたデータをCPUコア42が読み込む。この場合、メモリ20へのアドレス信号、読み出し制御信号及びチップセレクト信号(アクセス制御信号)をアクセス信号ということができる。より具体的には、このアクセス信号は、メモリ20の記憶データを読み出すための信号である。
同様に、メモリ20にデータを書き込む場合、CPUコア42が、メモリ20のデータを書き込む領域のアドレス信号、データ信号、書き込み制御信号及びチップセレクト信号を出力し、データ信号に対応したデータをメモリ20に書き込む。この場合、メモリ20にデータを書き込む領域のアドレス信号、データ信号、書き込み制御信号及びチップセレクト信号をアクセス信号ということができる。より具体的には、このアクセス信号は、メモリ20にデータを書き込むための信号である。
デバッグモード時には、CPUコア42の機能をディセーブルにして、デバッガ100がCPUコア42の機能を代行し、デバッガ100がCPUマクロ40及びセキュリティ回路30を介して、上述と同様にメモリ20へのアクセスを行う。この場合、デバッガ100が、メモリ20のアドレス信号、読み出し制御信号及びチップセレクト信号(アクセス制御信号)(広義にはアクセス信号)を出力し、メモリ20に記憶されたデータをデバッガ100が読み込むということができる。同様に、デバッガ100が、メモリ20のデータを書き込む領域のアドレス信号、データ信号、書き込み制御信号及びチップセレクト信号(アクセス制御信号)(広義にはアクセス信号)を出力し、データ信号に対応したデータをメモリ20に書き込むということができる。
このデバッグ機能は、デバッグイネーブル信号によりイネーブル(enable)状態又はディセーブル(disable)状態に設定される。デバッグ機能がイネーブル状態の場合、デバッグモード時ということができる。デバッグ機能がディセーブル状態の場合、通常動作モード時ということができる。半導体装置10は、デバッグイネーブル信号入力端子12を含み、デバッグイネーブル信号は、半導体装置10の外部から該デバッグイネーブル信号入力端子12を介して入力される。
デバッグイネーブル信号がインアクティブとなって、デバッガ100のデバッグ機能がディセーブルに設定されたとき、半導体装置10は、デバッガ100から半導体装置10へのアクセス信号を無効にする。またセキュリティ回路30が、メモリ20へのアクセスを有効にして、CPUコア42のメモリ20へのアクセスを許可する。
一方、デバッグイネーブル信号がアクティブとなって、デバッグ機能がイネーブルに設定されたとき、半導体装置10は、デバッガ100から半導体装置10へのアクセス信号を有効にする。そしてセキュリティ回路30が、メモリ20へのアクセスを有効にしてデバッガ100のメモリ20へのアクセスを許可する。
このようなデバッガ100からのアクセス信号の有効化制御及び無効化制御を行うため半導体装置10は、マスク回路50を含むことができる。マスク回路50は、デバッグイネーブル信号に基づいて、デバッガ100からのアクセス信号を無効にしたり、有効にしたりできる。
図2に、マスク回路50の構成例の回路図を示す。図2では、デバッガ100からCPUマクロ40への入力信号(アクセス信号)をマスクするマスク回路50の構成例を示している。図2において、デバッグイネーブル信号がHレベルのとき(アクティブのとき)にデバッグ機能がイネーブル状態に設定されるものとする。
デバッガ100からの入力信号は、入力端子52−1を介して半導体装置10に入力される。入力端子52−1を介して入力された入力信号は、入力バッファ54−1によりバッファリングされて、マスク回路56−1の入力に供給される。マスク回路56−1は、デバッグイネーブル信号と、入力バッファ54−1との論理積演算を行い、その結果をCPUマクロ40への入力信号として出力する。こうすることで、デバッグイネーブル信号がインアクティブのとき、デバッガ100からの入力を無効にし、デバッグイネーブル信号がアクティブのとき、デバッガ100からの入力を有効にできる。
図3に、マスク回路50の他の構成例の回路図を示す。図3では、CPUマクロ40からデバッガ100への出力信号(アクセス信号)をマスクするマスク回路50の構成例を示している。
CPUマクロ40からの出力信号は、マスク回路56−2の入力に供給される。マスク回路56−2は、デバッグイネーブル信号と、CPUマクロ40からの出力信号との論理積演算を行い、その結果を出力バッファ54−2に出力する。
出力バッファ54−2は、出力制御信号により出力制御が行われ、該出力制御信号がアクティブのときマスク回路56−2の出力をバッファリングして出力し、該出力制御信号がインアクティブのとき出力バッファ54−2の出力をハイインピーダンス状態に設定する。出力バッファ54−2の出力は、出力端子52−2に接続されている。
こうすることで、デバッグイネーブル信号がインアクティブのとき、デバッガ100への出力を無効にし、デバッグイネーブル信号がアクティブのとき、デバッガ100への出力を有効にできる。
図4に、マスク回路50の更に他の構成例の回路図を示す。図4では、CPUマクロ40とデバッガ100との間の入出力信号(アクセス信号)をマスクするマスク回路50の構成例を示している。ここでは、半導体装置10では、該半導体装置10への入力信号はマスク回路50の入力バッファから入力専用バスに出力され、該半導体装置10の出力信号は出力専用バスから出力バッファに入力されるものとする。
入力バッファ54−3及び出力バッファ54−4は、出力制御信号により入出力制御が行われ、該出力制御信号がアクティブのときマスク回路56−4の出力をバッファリングして入出力端子52−3に出力し、該出力制御信号がインアクティブのとき入出力端子52−3の入力信号をバッファリングしてマスク回路56−3に出力する。
従って、デバッガ100からの入力信号は、入出力端子52−3を介して半導体装置10に入力されると、入力バッファ54−3によりバッファリングされて、マスク回路56−3の入力に供給される。マスク回路56−3は、デバッグイネーブル信号と、入力バッファ54−3の出力との論理積演算を行い、その結果をCPUマクロ40への入力信号として出力する。
CPUマクロ40からの出力信号は、マスク回路56−4の入力に供給される。マスク回路56−4は、デバッグイネーブル信号と、CPUマクロ40からの出力信号との論理積演算を行い、その結果を出力バッファ54−4に出力する。この出力バッファ54−4の出力は、入出力端子52−3に接続されている。
以上のように、デバッガ100と半導体装置10との間のアクセス信号の有効化及び無効化を制御できる。そして本実施形態においては、デバッグイネーブル信号をデバッガ100で生成する必要がなく、例えばデバッグシステムにおいてデバッグイネーブル信号入力端子12を固定的にHレベルに設定するようにできる。これによりデバッガ100を、専用に設計する必要がなくなり、汎用的なデバッガを用いることができる。言い換えれば、デバッグイネーブル信号をアクティブにしない限り、デバッガ100からメモリ20へのアクセスを不能にできることを意味し、簡素な構成でメモリ20の機密性を維持できる。
なお本実施形態では、デバッグイネーブル信号がアクティブとなるデバッグモード時において、デバッガ100からの不正なアクセスを制限できることが望ましい。以下では、汎用的なデバッガ100を用いながら、デバッガ100からの不正なアクセスを制限できる半導体装置及びこれを用いたシステムの詳細な構成例について説明する。
図5に、本実施形態における半導体装置の詳細な構成例及び該半導体装置を用いたシステムの構成例のブロック図を示す。但し、図1に示す半導体装置10と同一部分には同一符号を付し、適宜説明を省略する。なお本実施形態の半導体装置では、図5に示すすべての回路、ユニット(部)を含む必要はなく、その一部を省略する構成にしてもよい。
図5において半導体装置200は、図1に示す半導体装置10の機能を有する。半導体装置200は、デバッグイネーブル信号入力端子12、図1のメモリ20の機能を有するRAM(Random Access Memory)210、セキュリティ回路30、CPUマクロ40及びマスク回路50を含む。CPUマクロ40は、CPUコア42を含む。
半導体装置200では、デバッグモード時において、デバッガ100から半導体装置200へのアクセス信号を有効にし、セキュリティ回路30がRAM210へのアクセスを一旦不許可にする。そして、その後、デバッガ100からのアクセス信号の少なくとも一部により表される入力データが所定のデータであることを条件に、セキュリティ回路30がRAM210へのアクセスを有効にしてデバッガ100のRAM210へのアクセスを許可する。
このためセキュリティ回路30は、アクセス制御部220を含むことができる。
図6に、アクセス制御部220の構成例のブロック図を示す。ここでは、CPUマクロ40からのアドレス信号の制御を行う構成のみを示しているが、CPUマクロ40からのアクセス制御信号(読み出し制御信号、書き込み制御信号、チップセレクト信号)の制御も同様に実現できる。
アクセス制御部220は、セレクタ222、224を含む。アクセス制御部220には、通常動作モード時にCPUコア42が出力するアドレス信号、又はデバッグモード時にデバッガ100が出力するアドレス信号が入力される。このアドレス信号は、セレクタ222、224に入力される。
セレクタ222は、アドレス信号の各ビットが例えば0に固定された固定値とCPUマクロ40からのアドレス信号とのいずれかを、認証信号に基づいて出力する。デバッガ100からのアクセスが不正であると判断されるとき認証信号がインアクティブとなり、デバッガ100からのアクセスが正当である(不正ではない)と判断されるとき認証信号がアクティブとなる。そしてセレクタ222は、認証信号がインアクティブのとき固定値を出力し、該認証信号がアクティブのときCPUマクロ40からのアドレス信号を出力する。なお固定値が0であることに本発明が限定されるものではなく、デバッグモード時において認証信号がインアクティブとなったとき、RAM210へのアクセスが無効となるような値のアドレス信号であればよい。
セレクタ224は、デバッグイネーブル信号に基づいて、CPUマクロ40からアドレス信号又はセレクタ222の出力のいずれかを選択して出力する。デバッグイネーブル信号がインアクティブのとき、即ち通常動作モード時においてはCPUマクロ40からのアドレス信号を選択出力する。従って、通常動作モード時では、CPUマクロ40からアドレス信号はCPUコア42が出力するアドレス信号であるため、CPUコア42が出力するアドレス信号がRAM210に出力される。
一方、セレクタ224において、デバッグイネーブル信号がアクティブのとき、即ちデバッグモード時においてはセレクタ222の出力を選択する。デバッグモード時においては、CPUマクロ40からアドレス信号はデバッガ100が出力するアドレス信号である。そのため、デバッグモード時において認証信号がアクティブのとき、デバッガ100が出力するアドレス信号がRAM210に出力され、デバッグモード時において認証信号がインアクティブのとき、RAM210へのアクセスを無効とする値のアドレス信号がRAM210に出力されることになる。
以上のようにして、デバッガ100又はCPUコア42のRAM210へのアクセスを許可するとき、アクセス制御部220は、デバッガ100又はCPUコア42が出力するアドレス信号及びアクセス制御信号のマスクを解除できる。またデバッガ100又はCPUコア42のRAM210へのアクセスを不許可にするとき、アクセス制御部220は、デバッガ100又はCPUコア42が出力するアドレス信号及びアクセス制御信号をマスクすることができる。
このような認証信号を生成するため、セキュリティ回路30は更に比較部230を含むことができる。
図5において、比較部230は、デバッグモード時において、デバッガ100からの入力データが所定のデータか否かを比較し、両データが一致したときデバッガ100からのアクセスが正当であると判断して、アクティブとなる認証信号を出力する。また比較部230は、両データが一致しないとき、デバッガ100からのアクセスが不正であると判断して、インアクティブとなる認証信号を出力する。
また半導体装置200が、上述のようにデバッガ100からの入力データをパスワードデータとして受け付ける場合、デバッガ100から不正に該パスワードデータを総当たりで入力されることがある。このような事態においても、ある程度のセキュリティを確保する必要がある。そこで半導体装置200では、デバッガ100からのパスワードデータに対して暗号化処理を行って、この暗号化処理後のパスワードデータと予め設定された照合用パスワードデータとを照合することで、デバッガ100からのアクセスが不正であるか否かを判別するようになっている。
更にデバッガ100の各ユーザが同じパスワードデータで、RAM210にアクセスできることはセキュリティを確保する点で望ましくない。そのため、本実施形態では、ユーザごとに秘密固有データを設け、デバッガ100からのパスワードデータと該秘密固有データとに基づいて暗号化処理を行って、この暗号化処理後のパスワードデータと照合用パスワードデータとを照合することで、デバッガ100からのアクセスが不正であるか否かを判別する。
以上の機能を実現するため、半導体装置200は、パスワードデータ保持部240、秘密固有データ保持部250、パスワードデータ結合部260、一方向暗号化処理部(広義には暗号化パスワードデータ生成部)270とを含むことができる。
パスワードデータ保持部240には、デバッグモード時においてデバッガ100からの入力データがパスワードデータ(ベンダユニークなパスワードデータ)として保持される。秘密固有データ保持部250には、予め秘密固有データが設定される。この秘密固有データは、1又は複数の半導体装置ごとに異なるデータであり、例えば半導体装置の製造ロットごとに、或いはデバッガ100のユーザごとに異ならせることが望ましい。
パスワードデータ結合部260は、パスワードデータ保持部240に保持されたデバッガ100からの入力データと秘密固有データ保持部250に保持された秘密固有データとに基づいて結合パスワードデータを生成する。このようなパスワードデータ結合部260は、例えば該入力データと該秘密固有データとの排他的論理和演算結果を結合パスワードデータとして出力できる。或いはパスワードデータ結合部260は、例えば該入力データと該秘密固有データとをデータのビットの並び方向に連結して結合パスワードデータとして出力できる。更には、パスワードデータ結合部260は、例えば該入力データ及び該秘密固有データの少なくとも一方の所定のビットの入れ替え、除去等の予め定められたルールに従ったビット操作を行って、結合パスワードデータとして出力できる。
一方向暗号化処理部270は、パスワードデータ結合部260によって生成された結合パスワードデータに対して、一方向暗号化処理を行って生成された暗号化パスワードデータを出力する。ここで一方向暗号化処理は、処理中に情報を欠落させることで、処理後の結果から処理前の値を推測することを不可能にできる。一方向暗号化処理部270は、単に暗号鍵を用いて暗号化処理を行う暗号化処理部に置き換えることも可能であるが、一方向暗号化処理は、暗号鍵を必要とせず、且つ比較的簡素な構成で実現できるため、一方向暗号化処理の方が望ましい。一方向暗号化処理としては、ハッシュ関数を用いるもの、例えばSHA−1(Secure Hash Algorithm 1)やMD5アルゴリズム(The MD5 Message-Digest Algorithm)等がある。SHA−1、MD5アルゴリズムの内容については公知であるため、詳細な説明を省略する。
そして比較部230は、一方向暗号化処理部270によって出力される暗号化パスワードデータと予め設定される照合用パスワードデータとを比較する。そして両パスワードデータが一致したときに、デバッガ100からのアクセスが正当であると判断して、アクティブとなる認証信号を出力する。この結果、アクセス制御部220が、デバッガ100からのアドレス信号やアクセス制御信号をRAM210に対して出力し、セキュリティ回路30がRAM210へのアクセスを有効にしてデバッガ100のRAM210へのアクセスを許可することができる。
一方、両パスワードデータが不一致のときに、デバッガ100からのアクセスが不正であると判断して、インアクティブとなる認証信号を出力する。この結果、アクセス制御部220が、デバッガ100からのアドレス信号やアクセス制御信号がマスクされてしまい、セキュリティ回路30がRAM210へのアクセスを無効にする。
なお照合用パスワードデータは、半導体装置200の外部に設けられた不揮発性メモリ(外部メモリ)としてのフラッシュROM(Read Only Memory)300に記憶される。図5に示すシステムを構成するシステム基板上には、半導体装置200とフラッシュROM300とが実装され、半導体装置200のデバッグを行う時点では、フラッシュROM300には、照合用パスワードデータ310が書き込まれている。
なおフラッシュROM300を、半導体装置200の内部に設けることも可能である。また、CPU(中央演算処理装置)のアクセスがあるため、メモリ20(メインメモリ)の書き込み/読み出し動作が半導体装置200の処理速度に関与するため、メモリ20の書き込み/読み出し動作は、フラッシュROM300の読み出し動作よりも高速であることが望ましい。
更に半導体装置200では、デバッガ100からのパスワードデータの総当たり攻撃を有効に防止できることが望ましい。半導体装置200では、デバッガ100のRAM210へのアクセスが不許可(無効)となったとき、半導体装置200をハードウェアリセットすることを条件に、デバッガ100からの次のアクセス信号(入力データ)を受け付けるようにしている。これは、例えばマスク回路50で、半導体装置200のハードウェアリセットしない限り次のアクセス信号(入力データ)を有効にしないようにしてもよいし、比較部230において、認証信号が一旦インアクティブに設定された場合、半導体装置200のハードウェアリセットを行わない限り認証信号を変化できないようにしてもよい。以下では、後者の方法により実現した場合について説明する。
図7に、比較部230の動作を説明するためのハードウェア記述言語の記載例を示す。ここでは、半導体装置200のハードウェアリセットを行うハードウェアリセット信号をhreset、暗号化パスワードデータをPSWD、照合用パスワードデータをCWD、認証信号をPassとしている。そして認証信号Passがアクティブのとき1、認証信号Passがインアクティブのとき0とする。
図7に示すように比較部230を動作させることにより、認証信号Passが、一旦0になった後は、ハードウェアリセット信号hresetが1にならない限り、認証信号Passの状態を更新できなくなる。これにより、照合用パスワードデータCWDと暗号化パスワードデータPSWDとが一致しないとき、半導体装置200をハードウェアリセットすることを条件に、デバッガ100からの次の入力データ(アクセス信号)を受け付けることができる。
ここで、例えば半導体装置200に対してデバッガ100のユーザが、不正な専用ソフトウェアなどで総当り攻撃を行った場合、パスワードが誤っていた場合でも次のパスワードをすぐに受け付ける仕組みでは、短時間で正しいパスワードを見つけることが可能となり、これを防ぐためにパスワードのビット長は十分長くする必要がある。
ところが本実施形態のように、パスワードが誤っていた場合、半導体装置200のハードウェアリセットをすることを条件に、デバッガ100から次のパスワードをうけつけるような仕組みとすることで、より短いパスワードビット長でセキュリティを確保できる。例えば、ハードウェアリセットによるリセット時間を1秒、パスワードデータ長をs(sは正の整数)ビットとすると、2s×1秒経過時に認証信号Passをアクティブにできる。
更にまた、以上のようにデバッガ100からの不正なアクセスを防止した上で、フラッシュROM300上のソースコード(ソースコードデータ)もまた暗号化されていることが望ましい。
この場合、図5に示すように、半導体装置200は、復号化処理部280、復号化鍵データ保持部282を含むことができる。復号化処理部280は、復号化鍵データ保持部282に保持された復号化鍵データを用いて、復号化処理を行う。この復号化処理部280は、例えばDES(Data Encryption Standard)のアルゴリズムで復号化処理を行うことができる。ここで、復号処理部のアルゴリズムはDES以外の方式でもかまわない。なおDESのアルゴリズムについては公知であるため、説明を省略する。
この結果、セキュリティ回路30が、デバッガ100のRAM210へのアクセスを許可したときに、デバッガ100が、復号化処理部280の復号化処理後のデータを読み込むことができる。この際、デバッガ100のアクセスが正当であると確認されたことを条件に、復号化処理部280が、復号化したソースコードデータ(ソースコード)をRAM210に展開し、該RAM210に展開されたデータに対してデバッガ100がアクセスすることが望ましい。
なお復号化処理部280が復号化処理を行うソースコードデータは、フラッシュROM300に記憶される。このデータは、CPUコア42又はデバッガ100が実行するプログラムのソースコード(コンパイル後のコード)320であり、パラメータやその他の情報も含むものとする。また、このソースコードデータ320はフラッシュROM300に書き込まれる時点で既に暗号化処理が行われている。この暗号化処理は、DESのアルゴリズムを用いて行われる。即ち、復号化処理部280の復号化処理に対応した暗号化処理を用いて暗号化されたソースコードがフラッシュROM300に保持される。
復号化鍵データ結合部286は、復号化鍵固有データ保持部284に保持された復号化鍵固有データと予め設定される復号化用データ330とに基づいて、復号化鍵データを生成する。このような復号化鍵データ結合部286は、例えば該復号化鍵固有データと該復号化用データとの排他的論理和演算結果を復号化鍵データとして出力できる。或いは復号化鍵データ結合部286は、例えば該復号化鍵固有データと該復号化用データとをデータのビットの並び方向に連結して復号化鍵データ保持部282に出力できる。更には、復号化鍵データ結合部286は、例えば該復号化鍵固有データ及び該復号化用データの少なくとも一方の所定のビットの入れ替え、除去等の予め定められたルールに従ったビット操作を行って、復号化鍵データとして出力できる。なお復号化用データ330は、フラッシュROM300に記憶される。
この復号化用データ330は半導体装置ごとに変更することが可能である。その結果、半導体装置ごとに異なる鍵データで暗号化、復号化することとなり、高い安全性が確保可能となる。
ここで、フラッシュROM300に記憶されるデータの設定例について説明する。フラッシュROM300には、システム開発(設計)時に照合用パスワードデータ310、ソースコード320及び復号化用データ330が書き込まれる。本実施形態では、外部システムによって、フラッシュROM300のデータの設定が行われる。ここで外部システムは、パーソナルコンピュータ等のハードウェアと、該パーソナルコンピュータに搭載されるオペレーティングシステム上で動作するアプリケーションプログラム(ソフトウェア)とによってその機能が実現される。そして、外部システムにより設計されたソースコード(ソースプログラム及びパラメータ)、各種鍵データ及び各種固有データがフラッシュROM300に書き込まれる。
図8に、本実施形態における外部システムの機能ブロック図の構成例を示す。
外部システム400は、処理部410、記憶部420、フラッシュROM書き込み部430を含む。外部システム400では、バス440を介して、処理部410、記憶部420、フラッシュROM書き込み部430が接続される。
処理部410は、記憶部420に記憶されたデータ又はプログラムを読み込んで処理を行う。この処理部410は、暗号化処理部412、ユニークパスワード受付処理部414、一方向暗号化処理部416を含む。処理部410の機能は、CPUや、ASIC(Application Specific Integrated Circuit)等のハードウェアにより実現される。
記憶部420は、暗号化鍵固有データ422、暗号化用データ424、ソースコード(平文)426、秘密固有データ428を含む。また記憶部420は、処理部410の暗号化処理部412、ユニークパスワード受付処理部414及び一方向暗号化処理部416の各処理を実現するためのプログラムデータを記憶する。記憶部420の機能は、RAMやROM等のハードウェアにより実現される。
フラッシュROM書き込み部430は、処理部410によって生成されたデータを、フラッシュROM300の所定の領域に書き込む処理を行う。
図9に、図8の外部システム400によって行われる照合用パスワードデータの書き込み処理のフローの一例を示す。図9に示すフローを実現するためのプログラムが記憶部420に記憶され、処理部410がこのプログラムを読み込むことで以下の処理を実現できる。
まず処理部410が、ユーザからのベンダユニークなパスワードデータを受け付ける処理を行う(ステップS10)。
次に、処理部410は、記憶部420から秘密固有データ428を読み出す(ステップS11)。ここで、秘密固有データ428は、半導体装置200の秘密固有データ保持部250に保持される秘密固有データと同じデータである。
そして、処理部410は、ステップS10において受け付けられたベンダユニークなパスワードデータと秘密固有データ428とを用いて、半導体装置200のパスワードデータ結合部260と同様の処理によって、一方向暗号化用データを生成する(ステップS12)。
続いて、処理部410は、ステップS12で生成された一方向暗号化用データに対して一方向暗号化処理を行う(ステップS13)。ここで、ステップS13における一方向暗号化処理は、半導体装置200の一方向暗号化処理部270と同じ処理である。
そして処理部410はフラッシュROM書き込み部430に対して指示を出して、ステップS13で求められた一方向暗号化処理の処理結果を、照合用パスワードデータとしてフラッシュROM300に書き込む処理を行わせ(ステップS14)、一連の処理を終了する(エンド)。
このように、ユーザごとに異なるパスワードデータが割り当てられており、デバッグ時においてデバッガ100からのパスワードデータが、ステップS10で受け付けたベンダユニークなパスワードデータと異なる場合、デバッガ100からのアクセスが不正と判断される。また、ステップS11において読み出される秘密固有データとデバッグ対象の半導体装置の秘密固有データとが異なる場合、デバッガ100からのアクセスが不正と判断される。
図10に、図8の外部システム400によって行われるソースコードの書き込み処理のフローの一例を示す。図10に示すフローを実現するためのプログラムが記憶部420に記憶され、処理部410がこのプログラムを読み込むことで以下の処理を実現できる。
まず処理部410が、記憶部420に記憶された暗号化鍵固有データ422と暗号化用データ424とを読み出す(ステップS20)。
続いて処理部410は、暗号化鍵固有データ422と暗号化用データ424とに基づいて、暗号化鍵データを生成する(ステップS21)。ここで、暗号化鍵データと、復号化鍵データ保持部282に保持される復号化鍵データとは対をなす。
そして処理部410は、ステップS21で生成された暗号化鍵データを用いたDESのアルゴリズムに従って、記憶部420に記憶されたソースコード426の暗号化処理を行う(ステップS22)。この暗号化処理は、半導体装置200の復号化処理部280の復号化処理と対をなす処理であり、暗号化処理部412の処理前のデータが、復号化処理部280の処理後のデータと同じになるようになっている。
その後、処理部410はフラッシュROM書き込み部430に対して指示を出して、ステップS22で暗号化されたソースコードを、フラッシュROM300に書き込む処理を行わせ(ステップS23)、一連の処理を終了する(エンド)。
次に、上記のようにしてフラッシュROM300の設定が行われた後の図5に示すシステムの動作例について説明する。
図11に、図5のシステムの動作シーケンスの一例を示す。図11では、デバッガ100、半導体装置200及びフラッシュROM300の各ユニットの動作例のシーケンスとユニット間の動作例のシーケンスとを示している。図11では、デバッガ100からのパスワードデータにより、デバッガ100からのアクセスが正当であると判断された場合のシーケンスを示している。
まず半導体装置200では、デバッガ100が接続され、アクティブのデバッグイネーブル信号がデバッグイネーブル信号入力端子12に供給される(B1)。これにより半導体装置200では、セキュリティ回路30によりCPUマクロ40のRAM210に対するアクセスが一旦不許可にされる(B2)。またマスク回路50は、デバッガ100からの入力データを有効にする。
一方、デバッガ100においては、ソフトウェアによりユニークパスワード受付処理が行われる(A1)。ここでユーザが、ベンダユニークなパスワードデータを入力すると、デバッガ100が、半導体装置200のパスワードデータ保持部240に対して該パスワードデータを書き込む。
半導体装置200では、デバッガ100からのパスワードデータがパスワードデータ保持部240に書き込まれると、秘密固有データ保持部250から秘密固有データが読み出される(B3)。続いて半導体装置200は、パスワードデータ保持部240に書き込まれたパスワードデータと秘密固有データとから、結合パスワードデータを生成し(B4)、該結合パスワードデータに対して一方向暗号化処理を行う(B5)。
その後、半導体装置200は、フラッシュROM300の照合用パスワードデータ310を読み出す(B6)。そして一方向暗号化処理の処理結果と、フラッシュROM300からの照合用パスワードデータ310とを比較する認証処理を行う(B7)。
デバッガ100からのパスワードデータと、図9のステップS10で受け付けられたパスワードデータとが同じで、かつ秘密固有データ保持部250に保持される秘密固有データ保持部と、秘密固有データ428とが同じ場合には、両者が一致する。
そして、一方向暗号化処理の処理結果と照合用パスワードデータ310とが一致したとき、デバッガ100からのアクセスが正当であると判断され、デバッガ100のRAM210へのアクセスが有効化される(B8)。
その後、半導体装置200では、復号化鍵固有データ保持部284に保持された復号化鍵固有データと、フラッシュROM300に記憶された復号化用データ330とが読み出される(B9)。
半導体装置200は、復号化鍵固有データと復号化用データとに基づいて、復号化鍵データを生成する(B10)。この復号化鍵データは、復号化鍵データ保持部282に保持される。これにより半導体装置200は、フラッシュROM300に記憶されたソースコード320を読み出しながら、復号化鍵データ保持部282に保持された復号化鍵データを用いて、復号化処理を行う(B11)。そしてこの復号化処理後のデータをRAM210に書き込んで、復号化したソースコードをRAM210に展開する(B12)。
これにより、CPUコア42のエミュレーション機能を有するデバッガ100が、RAM210に展開された復号化後のソースコードを読み込んで、該ソースコードに対応した処理の実行や、該ソースコードに含まれるデータを参照できるようになる(C1)。
図12に、図5のシステムの動作シーケンスの他の例を示す。図12では、図11と同様にデバッガ100、半導体装置200及びフラッシュROM300の各ユニットの動作例のシーケンス等を示している。また図12では、デバッガ100からのパスワードデータにより、デバッガ100からのアクセスが不正であると判断された場合のシーケンスを示す。但し、図12において、図11と同一処理部分には同一符号を付し、適宜説明を省略する。
半導体装置200の照合用パスワードデータの読み込み(B6)までのシーケンスは図11と同様であるため、説明を省略する。
照合用パスワードデータの読み込み後、一方向暗号化処理の処理結果と照合用パスワードデータ310とが一致しないとき、デバッガ100からのアクセスが不正であると判断され、デバッガ100のRAM210へのアクセスが無効化される(B13)。
その後、デバッガ100においてユニークパスワードの受付処理が行われて新たにユニークパスワードデータが半導体装置200に入力されたとしても、デバッガ100からのアクセスが正当であると判断されることはない。そのため、半導体装置200をハードウェアリセットするより他はないようになっている。
次に、本実施形態における半導体装置200が適用されたデータ転送制御装置の構成例について説明する。
図13に、本実施形態における半導体装置200が適用されたデータ転送制御装置の構成例のブロック図を示す。なお図13に示すデータ転送制御装置では、図13に示すすべての回路、ユニット(部)を含む必要はなく、その一部を省略する構成にしてもよい。
データ転送制御装置600は、ストリームデータ受信装置と、記憶媒体と、汎用(高速)シリアルインタフェースとの間のデータ転送を制御する。ストリームデータ受信装置としては、例えばデジタル放送復調回路がある。記憶媒体としては、例えばハードディスクドライブ(Hard Disk Drive:HDD)がある。汎用(高速)シリアルインタフェースとしては、IEEE(Institute of Electrical and Electronics Engineers)1394インタフェースやUSB(Universal Serial Bus)2.0インタフェースがあり、以下ではIEEE1394インタフェースであるものとして説明する。
図13では、データ転送制御装置600は、リンクコントローラ610、物理層インタフェース620を含む。リンクコントローラ610は、IEEE1394規格に準拠したリンク層のデータ転送制御を実現する。物理層インタフェース620は、データ転送制御装置600の外部に設けられた物理層コントローラ(図示せず)との物理層のインタフェースを実現する。この物理層コントローラがIEEE1394規格に準拠したバスに接続され、IEEE1394規格に準拠した物理層のデータ転送制御を実現する。このバスは、IEEE1394インタフェースを有する他の電子機器に接続される。なおこの物理層コントローラもまた、データ転送制御装置600に内蔵するようにしてもよい。
データ転送制御装置600は、IDE(Integrated Drive Electronics)インタフェース630、ストリームインタフェース640、642を含む。IDEインタフェース630は、データ転送制御装置600と記憶媒体との間のインタフェースを実現する回路である。
AV(Audio Visual)用の記憶媒体においては、パーソナルコンピュータ用として広く使用されているIDE(ATA)のインタフェースを持つ安価なHDDが用いられる。一方、デジタルチューナ(BSチューナ、CSチューナ)等の電子機器においては、デジタルデータ(デジタルビデオデータ、デジタルオーディオデータ)のインタフェースとしてIEEE1394インタフェースが広く用いられている。
図13のように1394インタフェースとIDEインタフェースとを設けることで、IEEE1394とIDEの変換ブリッジ機能をデータ転送制御装置に実現させることが可能になる。
ストリームインタフェース640、642は、データ転送制御装置600とストリームデータ受信装置や映像出力装置との間のインタフェースを実現する回路である。例えばデジタル放送の受信波から抽出した動画のストリームデータの受信処理や、映像出力装置に対するストリームデータの送信処理が行われる。
またデータ転送制御装置600は、DESに準拠した暗号化処理及び復号化処理を行うDES回路650、660、662を含む。DES回路650は、暗号化処理したデータをIDEインタフェース630に出力したり、IDEインタフェース630からのデータを復号化処理したりする。DES回路660は、暗号化処理したデータをストリームインタフェース640に出力したり、ストリームインタフェース640からのデータを復号化処理したりする。DES回路662は、暗号化処理したデータをストリームインタフェース642に出力したり、ストリームインタフェース642からのデータを復号化処理したりする。
データ転送制御装置は、SDRAM(Synchronous Dynamic Random Access Memory)とのインタフェースを実現するSDRAMインタフェース670を含む。ここでSDRAMは、ランダムアクセスに比べてシーケンシャルアクセス(連続したアドレスへのアクセス)を高速に行うことができるメモリである。また、連続したアドレスのデータ(バーストデータ)をクロックに同期して入出力できるメモリである。このSDRAMはアイソクロナスデータのキャッシュメモリとして機能する。
なお、SDRAMは、データ転送制御装置600の外部に設けることが望ましいが、データ転送制御装置の内部に設けることも可能である。また、通常のSDRAMの代わりに、例えばDDR型SDRAM、ラムバス(Rambus)社のRDRAMなどの高速な同期型メモリを採用してもよい。
また、SDRAMの記憶領域を、送信領域と受信領域に分離したり、アシンクロナス領域とアイソクロナス領域に分離したりしてもよい。
データ転送制御装置600は、パケットメモリ680を含む。パケットメモリ680は、パケット転送用のRAMであり、SDRAMに比べて小容量なメモリである。またパケットメモリ680は、ランダムアクセスを高速に行うことができるメモリである。
パケットメモリ680は、IEEE1394規格に準拠したバスを介して受信したパケットを一時的に記憶する機能を有する。また記憶媒体から読み出されたパケットを、IEEE1394に準拠したバスを介して転送するために、一時的に記憶する機能も有する。更にストリームインタフェース640、642を介して受信されたストリームデータのパケットを、IDEに準拠したバスやIEEE1394規格に準拠したバスを介して転送するために、一時的に記憶する機能も有する。或いは、IEEE1394規格に準拠したバスを介して受信したパケットや、記憶媒体から読み出されたパケットを、ストリームインタフェース640、642を介して送信するために、一時的に記憶する機能も有する。
データ転送制御装置600は、コンテンツ保護回路690を含む。コンテンツ保護回路690は、パケットメモリ680から読み出されたデータ(アイソクロナスデータ)を暗号化処理により暗号化し、リンクコントローラ610側に転送するための処理を行う。また、リンクコントローラ610側から転送される暗号化データ(暗号化アイソクロナスデータ)を復号化処理により復号化し、パケットメモリ680に書き込むための処理を行う。
このコンテンツ保護回路690の処理は、IEEE1394規格に準拠したバスにより接続された電子機器(デバイス)間で、暗号化データを送受信するために行われる。この場合、保護されるべき暗号化データを電子機器間で送受信する前に、データ保護機構を受信側の電子機器が備えているか否かを確認する認証処理を行う。そして、保護機構を備えている事が認証処理により確認されると、暗号を解くための鍵を電子機器間で交換する。そして、送信側の電子機器は暗号化データを送信し、受信側の電子機器は受信した暗号化データを復号化する。
このようにすることで、電子機器間でのみ保護データの送受信を行えるようになる。これにより、保護機構を有しない電子機器や、データを改変してしまうような電子機器から、データのコンテンツを保護できる。
また、コンテンツ提供者が設定したコピー制御情報が電子機器間でやり取りされる。これにより、「コピー禁止」、「1回だけコピー可能」、「コピー・フリー」などのコピー制御が可能になる。また、コンテンツと共に改訂情報(System Renewability Messages)が配布される。これにより、不正な電子機器へのデータ転送を禁止したり制限したりすることが可能になり、不正コピーを将来に渡り禁止できる。
データ転送制御装置600は、CPUマクロ700、セキュリティ回路710、CPURAM720、DES回路730を含む。CPUマクロ700は、図1及び図5に示すCPUマクロ40の機能を有する。セキュリティ回路710は、図1及び図5に示すセキュリティ回路30の機能を有する。CPURAM720は、図1に示すメモリ20又は図5に示すRAM210の機能を有する。DES回路730は、図5に示す復号化処理部280等(復号化処理部280、復号化鍵データ保持部282、復号化鍵固有データ保持部284、復号化鍵データ結合部286)の機能を有する。
CPUマクロ700は、CPURAM720に記憶されたソースコード(ソースプログラム及びコンテンツ保護回路690の処理をするためのパラメータ(鍵データ))に対応した処理を実行し、データ転送制御装置600の各部を制御する。このCPUマクロ700は、例えばコンテンツ保護回路690の処理を実行する。ソースコードは、データ転送制御装置600の内部又は外部に設けられたフラッシュROMから、暗号化されたソースコードの状態で読み出され、一旦CPURAM720に書き込まれる。その後、DES回路730で復号化して再びCPURAM720に展開する。セキュリティ回路710は、デバッガによる機密漏洩を防止するために、上記の実施形態で説明したようにCPURAM720へのセキュリティプロテクトを行う。
図14に、図13のデータ転送制御装置を含む電子機器のブロック図の例を示す。図14では、電子機器としてデジタルテレビ放送を受信するためのデジタルチューナとしての機能を有するセットトップボックス(set-top box)のブロック図の例を示している。また図15に、図14の電子機器の外観図の例を示す。
電子機器800は、データ転送制御装置600、デジタル放送復調回路820、物理層コントローラ830、フラッシュROM840、操作部850、表示部860、MPEGデコーダ870を含む。この電子機器800は、IEEE1394又はUSB2.0に準拠したバスを介してHDDレコーダ900に接続される。
即ち本実施形態における電子機器は、データ転送制御装置600と、フラッシュROM300(外部メモリ、不揮発性メモリ)とを含むということができる。データ転送制御装置600は、本実施形態における半導体装置10、200の機能と、汎用シリアルバスインタフェース(リンクコントローラ等)の機能とを含むということができる。この場合、データ転送制御装置600では、フラッシュROM300に記憶されたデータが、CPURAM720に転送され、CPUマクロ700が、CPURAM720の記憶データに基づいて、汎用シリアルバスインタフェースを介して転送されるデータの加工処理(コンテンツ保護のための処理)を行うということができる。
なお図14では、IDEインタフェースにHDDを設けずに、外部に設けられたHDDレコーダ900に、ストリームデータが保存される。
デジタル放送復調回路820は、チャネルデコーダ822、デスクランブラ824を含む。チャネルデコーダ822は、アンテナ910で受信されたデジタル放送の受信波から1チャネル分のストリームデータを抽出する。デスクランブラ824は、スクランブル処理されたストリームデータに対して該スクランブル処理を解除する処理を行う。デスクランブラ824は、図13のストリームインタフェース640に接続される。
物理層コントローラ830は、図13の物理層インタフェース620に接続され、HDDレコーダ900との間で、IEEE1394規格に準拠した物理層のデータ転送制御を行う。
フラッシュROM840は、図13のCPUマクロ700に接続される。このフラッシュROM840には、CPUマクロ700が実行するプログラム及びパラメータ(コンテンツ保護のためのパラメータ)が暗号化された状態で記憶される。
MPEGデコーダ870は、図13のストリームインタフェース642に接続され、データ転送制御装置600からのストリームデータをデコードし、デジタルテレビ920に出力する。
ユーザは、操作部850を操作することで、デジタル放送の受信チャネルの指定などを行うことができる。また、表示部860に表示される情報を見ることで、現在の受信チャネルなどを確認できる。
この電子機器800は、IEEE1394バス又はUSB2.0などの汎用(高速)シリアルバスを介してHDDレコーダ900に接続されている。そしてデジタル放送復調回路820からのMPEG(Moving Picture Experts Group)規格に準拠したストリームデータを、HDDレコーダ900に保存したり、MPEGデコーダ870でデコードしてデジタルテレビ920に映像を出力させたりできる。
HDDレコーダ900へのストリームデータの記録時においては、アンテナ910で受信されたMPEG規格に準拠したストリームデータ(TSパケット)が、データ転送制御装置600、IEEE1394(USB2.0)を介してHDDレコーダ900に書き込まれる。
一方、HDDレコーダ900のストリームデータの再生時においては、IEEE1394のバスを介してHDDレコーダ900からMPEG規格に準拠したストリームデータ(TSパケット、アイソクロナスデータ)が読み出される。そして、読み出されたMPEG規格に準拠したストリームデータを、MPEGデコーダ870がデコードする。これにより、デジタルテレビ920に映像が映し出される。
なお、本実施形態が適用される電子機器は図14及び図15に示す電子機器に限定されない。例えば、HDDレコーダ、DVDレコーダ、ビデオテープレコーダ(HDD内蔵)、光ディスク(DVD)レコーダ、デジタルビデオカメラ、パーソナルコンピュータ或いは携帯型情報端末などの種々の電子機器に適用できる。また図14では、HDDを内蔵しないものとして説明したが、HDDを内蔵させることも可能である。またHDDレコーダ900に代えてDVDレコーダ等の記録装置であってもよい。
図14の構成によれば、汎用的なデバッガを用いて低コストなシステム開発ができるようになる。しかも、デバッガからの不正なアクセスによるリバースエンジニアリングを防止でき、ライセンス化された極秘情報を確実に保護できるようになる。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
更に、上記の実施形態では、主として半導体装置に内蔵するメモリからの読み出しについて説明したが、当業者であれば該メモリへの書き込みについても同様に実現できる。
更に本実施形態の半導体装置の構成も図1、図5等で説明した構成に限定されず、種々の変形実施が可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
本実施形態の半導体装置の原理的構成の構成図。 マスク回路の構成例の回路図。 マスク回路の他の構成例の回路図。 マスク回路の更に他の構成例の回路図。 本実施形態の半導体装置の詳細な構成例及び該半導体装置を用いたシステムの構成例のブロック図。 アクセス制御部の構成例のブロック図。 比較部の動作を説明するためのハードウェア記述言語の記載例を示す図。 外部システムの機能ブロック図の構成例を示す図。 図8の外部システムによって行われる照合用パスワードデータの書き込み処理のフローの一例を示す図。 図8の外部システムによって行われるソースコードの書き込み処理のフローの一例を示す図。 図5のシステムの動作シーケンスの一例を示す図。 図5のシステムの動作シーケンスの他の例を示す図。 本実施形態における半導体装置が適用されたデータ転送制御装置の構成例のブロック図。 図13のデータ転送制御装置を含む電子機器のブロック図の例。 図14の電子機器の外観図の例を示す図。
符号の説明
10、200 半導体装置、12 デバッグイネーブル信号入力端子、20 メモリ、
30 セキュリティ回路、40 CPUマクロ、
42 CPUコア(中央演算処理装置)、44 セレクタ、50 マスク回路、
100 デバッガ、210 RAM、220 アクセス制御部、230 比較部、
240 パスワードデータ保持部、250 秘密固有データ保持部、
260 パスワードデータ生成部、270 一方向暗号化処理部、
280 復号化処理部、282 復号化鍵データ保持部、
284 復号化鍵固有データ保持部、286 復号化鍵データ生成部、
300 フラッシュROM、310 照合用パスワードデータ、
320 ソースコード(暗号化)、330 復号化用データ

Claims (13)

  1. 中央演算処理装置と、
    前記中央演算処理装置がアクセスするメインメモリと、
    前記中央演算処理装置のエミュレーション機能を有し前記中央演算処理装置に代行して前記メインメモリへのアクセスを行うデバッガの前記メインメモリへのアクセス又は前記中央演算処理装置の前記メインメモリへのアクセスを制限するセキュリティ回路と、
    前記デバッガのデバッグ機能をイネーブルにするためのデバッグイネーブル信号が入力されるデバッグイネーブル信号入力端子とを含み、
    前記デバッグイネーブル信号がインアクティブのとき、
    前記デバッガから前記半導体装置へのアクセス信号を無効にすると共に、前記セキュリティ回路が前記中央演算処理装置の前記メインメモリへのアクセスを許可し、
    前記デバッグイネーブル信号がアクティブのとき、
    前記デバッガから前記半導体装置へのアクセス信号を有効にし、前記セキュリティ回路が前記デバッガの前記メインメモリへのアクセスを許可することを特徴とする半導体装置。
  2. 請求項1において、
    前記デバッグイネーブル信号がアクティブのとき、
    前記デバッガから前記半導体装置へのアクセス信号を有効にし、
    前記セキュリティ回路が前記メインメモリへのアクセスを不許可にした後に、前記アクセス信号の少なくとも一部により表される入力データが所定のデータであることを条件に、前記セキュリティ回路が前記デバッガの前記メインメモリへのアクセスを許可することを特徴とする半導体装置。
  3. 請求項2において、
    予め秘密固有データが設定される秘密固有データ保持部と、
    前記秘密固有データと前記入力データとに基づいて暗号化パスワードデータを生成する暗号化パスワードデータ生成部とを含み、
    予め設定された照合用パスワードデータと前記暗号化パスワードデータとが一致したとき、前記セキュリティ回路が前記デバッガの前記メインメモリへのアクセスを許可することを特徴とする半導体装置。
  4. 請求項3において、
    前記暗号化パスワードデータ生成部が、
    前記秘密固有データと前記入力データとに基づく一方向暗号化処理によって前記暗号化パスワードデータを生成することを特徴とする半導体装置。
  5. 請求項2乃至4のいずれかにおいて、
    前記デバッガの前記メインメモリへのアクセスが不許可となったとき、
    前記半導体装置をハードウェアリセットすることを条件に、前記デバッガからの次のアクセス信号を受け付けることを特徴とする半導体装置。
  6. 請求項1乃至5のいずれかにおいて、
    復号化鍵データを記憶する復号化鍵データ保持部と、
    不揮発性メモリから読み出されて前記メインメモリに書き込まれるソースコードの復号化処理を、前記復号化鍵データを用いて行う復号化処理部とを含み、
    前記セキュリティ回路が前記メインメモリへのアクセスを許可したときに、前記中央演算処理装置又は前記デバッガが、前記復号化処理部の復号化処理後のソースコードを読み込むことを特徴とする半導体装置。
  7. 請求項6において、
    予め復号化鍵固有データが設定される復号化鍵固有データ保持部を含み、
    予め設定される復号化用データと前記復号化鍵固有データとに基づいて前記復号化鍵データを生成し、該復号化鍵データを前記復号化鍵データ保持部に保持させることを特徴とする半導体装置。
  8. 請求項1乃至7のいずれかにおいて、
    前記セキュリティ回路が、
    前記デバッガ又は前記中央演算処理装置の前記メインメモリへのアクセスを許可するとき、前記デバッガ又は前記中央演算処理装置が出力するアクセス信号のマスクを解除し、
    前記デバッガ又は前記中央演算処理装置の前記メインメモリへのアクセスを不許可にするとき、前記デバッガ又は前記中央演算処理装置が出力するアクセス信号をマスクすることを特徴とする半導体装置。
  9. 請求項6又は7記載の半導体装置と、
    汎用シリアルバスインタフェースとを含み、
    前記半導体装置が、
    前記不揮発性メモリに記憶されたソースコードが前記メインメモリに転送され記憶された後に、前記中央演算処理装置が、前記メインメモリが記憶した前記ソースコードに基づいて、前記汎用シリアルバスインタフェースを介して転送されるデータの加工処理を行うことを特徴とする電子機器。
  10. 中央演算処理装置がアクセスするソースコードがメインメモリに記憶される半導体装置のアクセス制御方法であって、
    前記中央演算処理装置のエミュレーション機能を有し前記中央演算処理装置に代行して前記メインメモリへのアクセスを行うデバッガのデバッグ機能をイネーブルにするためのデバッグイネーブル信号がインアクティブのとき、前記デバッガから前記半導体装置へのアクセス信号を無効にすると共に、前記中央演算処理装置の前記メインメモリへのアクセスを許可するステップと、
    前記デバッグイネーブル信号がアクティブのとき、前記デバッガからの前記半導体装置へのアクセス信号を有効にし、前記デバッガの前記メインメモリへのアクセスを許可するステップとを含むことを特徴とする半導体装置のアクセス制御方法。
  11. 請求項10において、
    前記デバッガの前記メインメモリへのアクセスを許可するステップでは、
    前記デバッガの前記メインメモリへのアクセスを不許可にした後に、前記アクセス信号の少なくとも一部により表される入力データが所定のデータであることを条件に、前記デバッガの前記メインメモリへのアクセスを許可することを特徴とする半導体装置のアクセス制御方法。
  12. 請求項11において、
    予め設定された秘密固有データと前記入力データとに基づいて暗号化パスワードデータを生成するステップを含み、
    予め設定された照合用パスワードデータと前記暗号化パスワードデータとが一致したとき、前記デバッガの前記メインメモリへのアクセスを許可することを特徴とする半導体装置のアクセス制御方法。
  13. 請求項12において、
    前記デバッガの前記メインメモリへのアクセスが不許可となったとき、
    前記半導体装置をハードウェアリセットすることを条件に、前記デバッガからの次のアクセス信号を受け付けることを特徴とする半導体装置のアクセス制御方法。
JP2004125735A 2004-04-21 2004-04-21 半導体装置、電子機器及び半導体装置のアクセス制御方法 Expired - Fee Related JP3804670B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004125735A JP3804670B2 (ja) 2004-04-21 2004-04-21 半導体装置、電子機器及び半導体装置のアクセス制御方法
US11/108,991 US20050268174A1 (en) 2004-04-21 2005-04-19 Semiconductor device, electronic apparatus, and access control method of the semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004125735A JP3804670B2 (ja) 2004-04-21 2004-04-21 半導体装置、電子機器及び半導体装置のアクセス制御方法

Publications (2)

Publication Number Publication Date
JP2005309758A true JP2005309758A (ja) 2005-11-04
JP3804670B2 JP3804670B2 (ja) 2006-08-02

Family

ID=35426816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004125735A Expired - Fee Related JP3804670B2 (ja) 2004-04-21 2004-04-21 半導体装置、電子機器及び半導体装置のアクセス制御方法

Country Status (2)

Country Link
US (1) US20050268174A1 (ja)
JP (1) JP3804670B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233725A (ja) * 2006-03-01 2007-09-13 Freescale Semiconductor Inc 集積回路、ウェハ及び集積回路の製造方法
JP2008071250A (ja) * 2006-09-15 2008-03-27 Ricoh Co Ltd アクセス制御装置
JP2014048904A (ja) * 2012-08-31 2014-03-17 Fuji Electric Co Ltd 制御装置、そのデータ保護方法およびデータ保護解除方法
US9722786B2 (en) 2012-08-21 2017-08-01 Ictk Co., Ltd. Apparatus and method for processing authentication information

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370212B2 (en) 2003-02-25 2008-05-06 Microsoft Corporation Issuing a publisher use license off-line in a digital rights management (DRM) system
US20060242406A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Protected computing environment
US8074287B2 (en) * 2004-04-30 2011-12-06 Microsoft Corporation Renewable and individualizable elements of a protected environment
US8347078B2 (en) 2004-10-18 2013-01-01 Microsoft Corporation Device certificate individualization
US8336085B2 (en) 2004-11-15 2012-12-18 Microsoft Corporation Tuning product policy using observed evidence of customer behavior
US8438645B2 (en) 2005-04-27 2013-05-07 Microsoft Corporation Secure clock with grace periods
US8725646B2 (en) 2005-04-15 2014-05-13 Microsoft Corporation Output protection levels
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
US20060265758A1 (en) 2005-05-20 2006-11-23 Microsoft Corporation Extensible media rights
US7363564B2 (en) * 2005-07-15 2008-04-22 Seagate Technology Llc Method and apparatus for securing communications ports in an electronic device
US7844997B2 (en) * 2006-01-12 2010-11-30 Honeywell International Inc. Securing standard test access port with an independent security key interface
GB2450505A (en) * 2007-06-26 2008-12-31 Symbian Software Ltd Authorised debugging
EP2761463A1 (en) * 2011-09-30 2014-08-06 Newman Infinite, Inc. Apparatus, method and computer-readable storage medium for securing javascript
US20130159193A1 (en) * 2011-12-19 2013-06-20 General Instrument Corporation Method and apparatus for delivering content in a communication system
TWI498737B (zh) * 2013-03-29 2015-09-01 Mstar Semiconductor Inc 用於主機板控制模組之除錯權限判斷方法及相關主機板控制模組
CN104112095B (zh) * 2013-04-18 2017-09-22 晨星半导体股份有限公司 用于主机板控制模块的除错权限判断方法及主机板控制模块
KR101488616B1 (ko) 2013-09-06 2015-02-06 (주) 아이씨티케이 식별키 생성 장치 및 방법
KR101489091B1 (ko) * 2013-09-30 2015-02-04 (주) 아이씨티케이 반도체 공정을 이용한 식별키 생성 장치 및 방법
WO2015053440A1 (ko) * 2013-10-08 2015-04-16 (주) 아이씨티케이 식별 키 생성 장치 및 방법
KR101882289B1 (ko) * 2013-10-28 2018-07-30 주식회사 아이씨티케이 홀딩스 인증 정보 처리 장치 및 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4409056B2 (ja) * 2000-06-30 2010-02-03 富士通株式会社 Lsi,lsiを搭載した電子装置、デバッグ方法、lsiのデバッグ装置
JP2003177938A (ja) * 2001-12-07 2003-06-27 Fujitsu Ltd 電子装置及びそのデバッグ認証方法
US7444476B2 (en) * 2001-07-24 2008-10-28 Texas Instruments Incorporated System and method for code and data security in a semiconductor device
ES2611408T3 (es) * 2002-10-31 2017-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Implementación y utilización segura de datos de seguridad específicos de dispositivo

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007233725A (ja) * 2006-03-01 2007-09-13 Freescale Semiconductor Inc 集積回路、ウェハ及び集積回路の製造方法
JP2008071250A (ja) * 2006-09-15 2008-03-27 Ricoh Co Ltd アクセス制御装置
US9722786B2 (en) 2012-08-21 2017-08-01 Ictk Co., Ltd. Apparatus and method for processing authentication information
US10193701B2 (en) 2012-08-21 2019-01-29 Ictk Holdings Co., Ltd. Apparatus and method for processing authentication information
US10848328B2 (en) 2012-08-21 2020-11-24 Ictk Holdings Co., Ltd. Apparatus and method for processing authentication information
JP2014048904A (ja) * 2012-08-31 2014-03-17 Fuji Electric Co Ltd 制御装置、そのデータ保護方法およびデータ保護解除方法

Also Published As

Publication number Publication date
JP3804670B2 (ja) 2006-08-02
US20050268174A1 (en) 2005-12-01

Similar Documents

Publication Publication Date Title
JP3804670B2 (ja) 半導体装置、電子機器及び半導体装置のアクセス制御方法
US7055038B2 (en) Method and apparatus for maintaining secure and nonsecure data in a shared memory system
US9397834B2 (en) Scrambling an address and encrypting write data for storing in a storage device
EP1370084B1 (en) System for protecting security registers and method thereof
US20080301467A1 (en) Memory Security Device
US20110154061A1 (en) Data secure memory/storage control
US8064600B2 (en) Encoded digital video content protection between transport demultiplexer and decoder
US20200342091A1 (en) Authentication and control of encryption keys
US20100293392A1 (en) Semiconductor device having secure memory controller
WO2012139481A1 (zh) 一种基于条件接收技术的终端
JP2004152123A (ja) 半導体集積回路装置、並びにプログラム引き渡し方法及びそのシステム
KR20030071460A (ko) 메모리카드
US8245307B1 (en) Providing secure access to a secret
JP2006523049A (ja) パーソナルビデオレコーダにおけるデジタル音声/映像データの暗号化/復号化のためのチップ毎のユニーク識別子
KR100798927B1 (ko) 스마트카드 기반의 복제방지 기능을 가진 데이터 저장장치, 그의 데이터 저장 및 전송 방법
JP2007501481A (ja) 暗号化指示情報を有する記録媒体
JP2007310601A (ja) マイクロコンピュータおよびそのソフトウェア保護方法
US7975141B2 (en) Method of sharing bus key and apparatus therefor
JP2000236358A (ja) データ転送装置、データ転送システムおよび記録媒体
TWI393006B (zh) 用於碼傾印保護之安全系統及安全方法
JP2008009717A (ja) 情報処理端末およびコンテンツ書き込みシステム
EP3945437B1 (en) Method and system for improving efficiency of protecting multi-content process
JP4359182B2 (ja) 計算機処理装置およびインタフェース機構
US20240169098A1 (en) Secure Chip-Wide Transmission
JP2008003774A (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050805

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20050805

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20050816

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051207

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060203

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060501

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100519

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110519

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120519

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130519

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees