JP2007074507A - 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法 - Google Patents

暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法 Download PDF

Info

Publication number
JP2007074507A
JP2007074507A JP2005260637A JP2005260637A JP2007074507A JP 2007074507 A JP2007074507 A JP 2007074507A JP 2005260637 A JP2005260637 A JP 2005260637A JP 2005260637 A JP2005260637 A JP 2005260637A JP 2007074507 A JP2007074507 A JP 2007074507A
Authority
JP
Japan
Prior art keywords
encryption
decryption
processing
circuit
memory
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.)
Withdrawn
Application number
JP2005260637A
Other languages
English (en)
Inventor
Tomonori Kumagai
友則 熊谷
Tomohiro Uchida
朋宏 内田
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 JP2005260637A priority Critical patent/JP2007074507A/ja
Publication of JP2007074507A publication Critical patent/JP2007074507A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 機密性を維持しながら暗号化/復号化処理のシーケンスを変更できる暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法を提供する。
【解決手段】 暗号化/復号化装置10は、第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う第1の暗号化/復号化回路20と、第2のアルゴリズムに従って暗号化された状態で外部メモリ50に記憶されている制御プログラム情報が読み出された場合に、該制御プログラム情報に対し第2のアルゴリズムに従って復号化処理を行う復号化回路30と、復号化された制御プログラム情報を記憶するメモリ40と、メモリ40に対して制御プログラム情報の読み出し及び書き込みを制御するメモリI/F42とを含む。第1の暗号化/復号化回路20は、制御プログラム情報に基づいて、暗号化/復号化処理のうちソフトウェア処理部分を実行する処理部22と、暗号化/復号化処理のうちハードウェア処理部分を実行するハードウェア回路24とを含む。
【選択図】 図1

Description

本発明は、暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法に関する。
近年、家庭においても高品質なデジタルコンテンツを利用できるようになっている。例えば、MPEG(Moving Picture Experts Group、より具体的にはMPEG2)ストリームを配信するBSデジタル放送等のデジタル放送が脚光を浴び、デジタル放送チューナやデジタル放送のコンテンツの記録/再生装置等の電子機器の普及が著しい。また記録媒体を利用したコンテンツの再生、録音、録画が可能となり、コンテンツデータを携帯機器に取り込めるようになっている。
このようにコンテンツデータの普及が進む一方で、コンテンツの保護の必要性が急速に高まっている。そのため、コンテンツの内容がデジタル的に不正に複製されるのを防止すべく、コンテンツデータを処理する電子機器にはコンテンツの複製防止技術が導入されている。この複製防止技術には暗号化/復号化処理において鍵が利用されるため、この鍵を機密情報として管理することが求められる。
このような機密情報については、例えば暗号化/復号化装置としての半導体装置内に書き換え可能な不揮発性メモリを内蔵させ、該不揮発性メモリに機密情報を書き込んだり、予め固定的に機密情報を埋め込んだりすることが考えられる。また特許文献1には、複数のユーザ間で予め定められた共通の情報を合成し、該情報を入力することで共通の鍵生成関数に基づいてハッシングを行って鍵を生成する技術が開示されている。
特開平2−56136号公報
しかしながら、半導体装置に内蔵させた不揮発性メモリに機密情報を書き込むようにすると、半導体装置自体のコスト高を招いてしまう。また半導体装置内に固定的に機密情報を埋め込むと、半導体装置毎に機密情報を異ならせることが困難となる。更に特許文献1に開示されている技術では、ユーザ数が増加した場合に複数のユーザ間で共通の情報を変更する必要が生じ、量産される半導体装置内で扱う機密情報を埋め込みには適さないと考えられる。そしてユーザの機密情報については、半導体装置の製造メーカ側に対して完全に秘匿できないという問題がある。
また機密性を維持したまま、暗号化/復号化処理のシーケンスを柔軟に変更できることが望ましい。この場合、暗号化/復号化処理には鍵の情報が深く関わるために、外部で鍵の情報が推定されることを防止する必要がある。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その第1の目的とするところは、機密性を維持しながら暗号化/復号化処理のシーケンスを変更できる暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法を提供することにある。
また本発明の第2の目的は、製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法を提供することにある。
上記課題を解決するために本発明は、
第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う第1の暗号化/復号化回路と、
第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化/復号化処理を制御する制御プログラム情報が該外部メモリから読み出された場合に、該制御プログラム情報に対し前記第2のアルゴリズムに従って復号化処理を行う復号化回路と、
前記復号化処理の結果の妥当性を判定するための妥当性判定回路と、
前記復号化回路によって復号化された前記制御プログラム情報を記憶するメモリと、
前記メモリに対して前記制御プログラム情報の読み出し及び書き込みを制御するメモリインタフェースとを含み、
前記第1の暗号化/復号化回路が、
前記メモリから読み出された制御プログラム情報に基づいて、前記暗号化/復号化処理のうちソフトウェア処理部分を実行する処理部と、
前記暗号化/復号化処理のうちハードウェア処理部分を実行するハードウェア回路とを含む暗号化/復号化装置に関係する。
また本発明に係る暗号化/復号化装置では、
前記メモリインタフェースは、
前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに書き込む制御を行った後に、該メモリから該制御プログラム情報を読み出す制御を行って前記第1の暗号化/復号化回路に出力することができる。
また本発明に係る暗号化/復号化装置では、
イネーブル状態のときに、前記復号化回路によって復号化された前記制御プログラム情報を前記メモリインタフェースに転送する第1の転送制御回路を含み、
前記メモリインタフェースは、
前記第1の転送制御回路がイネーブル状態からディセーブル状態に変化したとき、該メモリから該制御プログラム情報を読み出す制御を行って前記第1の暗号化/復号化回路に出力することができる。
上記のいずれかの発明によれば、機密性を維持したまま、暗号化/復号化処理のシーケンスを容易に変更できるようになる。また、暗号化/復号化処理に深く関わる鍵の情報を復号化された状態で暗号化/復号化装置の外部に取り出されることがなくなり、暗号化/復号化装置の外部において鍵の情報が推定されることを防止できるようになる。
また本発明に係る暗号化/復号化装置では、
前記暗号化/復号化装置のハードウェアリセットがアクティブになった後に前記第1の転送制御回路が一度ディセーブル状態になったとき、前記復号化回路の動作を停止させることができる。
また本発明に係る暗号化/復号化装置では、
前記暗号化/復号化装置の前記第1の転送制御回路がディセーブルになったとき、前記妥当性確認回路にて、前記第2の復号結果が妥当であることを確認し、妥当である場合は前記第1の暗号化/復号化回路の使用を許可し、妥当でない場合は前記第1の暗号化/復号化回路の使用を禁止することができる。
これらの発明によれば、制御プログラム情報を一旦メモリに展開すれば復号化回路による復号化処理を不要にできる場合、無駄な消費電力を削減できる。また、不正に制御プログラム情報が展開されて、意図しないタイミングで復号化処理してしまうケースを完全に排除できるようにもなる。
また本発明に係る暗号化/復号化装置では、
前記外部メモリからデータの読み出しを行うホストとのインタフェース処理を行うホストインタフェースを含み、
前記第1の暗号化/復号化回路が、
暗号化インタフェースを含み、
前記暗号化インタフェースは、前記処理部からの指示に基づいて前記ハードウェア回路からの生成情報を前記ホストインタフェースに出力するか、前記メモリインタフェースに出力するかを切り替えることができる。
また本発明に係る暗号化/復号化装置では、
前記第1の暗号化/復号化回路は、
前記制御プログラム情報の中から、ホストが指定した処理を実行することができる。
また本発明に係る暗号化/復号化装置では、
前記第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う第2の暗号化/復号化回路を含み、
前記第1及び第2の暗号化/復号化回路の各回路が、
前記制御プログラム情報の中から、ホストが指定した処理を実行することができる。
ここで、制御プログラム情報により第1の暗号化/復号化回路の暗号化/復号化処理の流れを制御できるようになると、暗号化/復号化装置の外部のホストが、制御プログラム情報の内容によっては第1の暗号化/復号化回路の暗号化/復号化処理の途中結果、最終結果又は鍵の情報を取り出せるようになるかもしれない。しかしながら本発明によれば、このような事態を回避するために、制御プログラム情報の中からホストが処理を指定できるようにしているので、第1の暗号化/復号化回路の暗号化/復号化処理の途中結果等を外部に取り出される事態を回避し、且つホストの処理負荷の軽減も実現させることが可能となる。
また本発明に係る暗号化/復号化装置では、
前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体とのインタフェース処理を行う記録媒体インタフェースと、
前記記録媒体インタフェースと前記第1及び第2の暗号化/復号化回路との間のデータ転送を制御する第2の転送制御回路とを含むことができる。
本発明によれば、機密性を維持しながら記録媒体に格納されたコンテンツの暗号化/復号化処理のシーケンスを変更できる暗号化/復号化装置を提供できる。
また本発明は、
ホストと、
上記のいずれか記載の暗号化/復号化装置と、
前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体に接続するための媒体接続部とを電子機器に関係する。
本発明によれば、機密性を維持しながら暗号化/復号化処理のシーケンスを変更できる暗号化/復号化装置が適用された電子機器を提供できる。また本発明によれば、製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置が適用された電子機器を提供できる。
また本発明は、暗号化/復号化処理を制御する制御プログラム情報に基づいて前記暗号化/復号化処理のうちソフトウェア処理部分を実行する処理部と、前記暗号化/復号化処理のうちハードウェア処理部分を実行するハードウェア回路と、メモリとを含む暗号化/復号化装置の制御方法であって、
第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記制御プログラム情報を該外部メモリから読み出して、該制御プログラム情報に対し前記第2のアルゴリズムに従って復号化処理を行い、
前記復号化処理の結果の妥当性判定処理を行い、
前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに記憶し、
前記メモリに記憶された前記制御プログラム情報に基づいて、前記暗号化/復号化処理のうちソフトウェア処理部分を実行させる暗号化/復号化装置の制御方法に関係する。
また本発明に係る暗号化/復号化装置の制御方法では、
前記暗号化/復号化装置のハードウェアリセットがアクティブになった後に、復号化された前記制御プログラム情報を前記メモリに転送する制御が一度ディセーブル状態になったとき、復号化処理の動作を停止させることができる。
また本発明に係る暗号化/復号化装置の制御方法では、
前記暗号化/復号化装置の前記第1の転送制御がディセーブルになったとき、前記妥当性確認処理にて、前記第2の復号結果が妥当であることを確認し、妥当である場合は前記暗号化/復号化処理を許可し、妥当でない場合は暗号化/復号化処理を禁止することができる。
また本発明に係る暗号化/復号化装置の制御方法では、
前記制御プログラム情報の中から、ホストが指定した処理を実行させることで前記暗号化/復号化処理を行うことができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. 暗号化/復号化装置
図1に、本実施形態の暗号化/復号化装置の原理的な構成を示す。
本実施形態における暗号化/復号化装置10は、第1の暗号化/復号化回路20と、復号化回路30と、メモリ40と、メモリインタフェース(Interface:I/F)42とを含む。そして暗号化/復号化装置10は、暗号化/復号化装置10の外部に設けられた外部メモリ50に格納された制御プログラム情報に応じて実行されるシーケンスに従って、コンテンツデータの暗号化/復号化処理を行う。この制御プログラム情報により、暗号化/復号化処理の流れが制御される。
第1の暗号化/復号化回路20は、第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う。復号化回路30は、第2のアルゴリズムに従って暗号化された状態で外部メモリ50に記憶されている制御プログラム情報が外部メモリ50から読み出された場合に、該制御プログラム情報に対し第2のアルゴリズムに従って復号化処理を行う。即ち、制御プログラム情報(広義には暗号化/復号化情報)の機密性を維持させるために、外部メモリ50には、第2のアルゴリズムに従って暗号化された状態で該暗号化/復号化情報が格納される。そのため、復号化回路30は、外部メモリ50から読み出された制御プログラム情報に対し、第2のアルゴリズムに従って復号化処理を行う。
メモリ40は、復号化回路30によって復号化された制御プログラム情報を記憶する。このメモリ40に格納された制御プログラム情報の記憶領域は、暗号化/復号化装置10の外部からアクセス不可能な領域である。そして、メモリ40から読み出された制御プログラム情報が第1の暗号化/復号化回路20に供給され、第1の暗号化/復号化回路20は該制御プログラム情報に従って、コンテンツデータの暗号化/復号化処理を行う。
メモリI/F42は、メモリ40に対して制御プログラム情報の読み出し及び書き込みを制御する。メモリI/F42は、復号化回路30によって復号化された制御プログラム情報をメモリ40に書き込む制御を行った後に、該メモリ40から該制御プログラム情報を読み出す制御を行って第1の暗号化/復号化回路20に出力する。第1のアルゴリズムは、例えば公知のC2(Cryptomeria Cipher)のアルゴリズムとすることができる。第2のアルゴリズムは、例えば公知のAES(Advanced Encryption Standard)のアルゴリズムとすることができる。なお、第1及び第2のアルゴリズムは、異なる鍵を用いるのであれば同じアルゴリズムであってもよい。
第1の暗号化/復号化回路20は、処理部22と、ハードウェア回路24とを含む。処理部22は、メモリ40から読み出された制御プログラム情報に基づいて、第1の暗号化/復号化回路20によって行われる暗号化/復号化処理のうちソフトウェア処理部分を実行する。このような処理部22では、中央演算処理装置(Central Processing Unit:CPU)やシーケンサ等のハードウェアが、メモリ40からの制御プログラム情報に対応した処理(制御)を行うようになっている。ハードウェア回路24は、第1の暗号化/復号化回路20によって行われる暗号化/復号化処理のうちハードウェア処理部分を実行する。このため、暗号化/復号化処理のシーケンスを容易に変更できる。また、暗号化/復号化処理に深く関わる鍵の情報を復号化された状態で暗号化/復号化装置10の外部に取り出されることがなくなり、暗号化/復号化装置10の外部において鍵の情報が推定されることを防止できる。
このような暗号化/復号化装置10は、更にホストI/F32、第1の転送制御回路34を含むことができる。ホストI/F32は、外部メモリ50に記憶されされたデータの読み出し制御を行い、該データを暗号化/復号化装置10に出力する制御を行うホスト60との間のインタフェース処理を行う。このホストI/F32は、復号化回路30及び第1の暗号化/復号化回路20に接続される。第1の転送制御回路34は、復号化回路30及びメモリI/F42の間に設けられ、復号化回路30によって復号化されたデータをメモリI/F42に転送する制御を行う。第1の転送制御回路34は、イネーブル信号Runningによりイネーブル状態に設定されたとき、復号化回路30によって復号化された制御プログラム情報をメモリI/F42に転送する。そしてメモリI/F42は、第1の転送制御回路34がイネーブル信号Runningによりイネーブル状態からディセーブル状態に設定されたとき、メモリ40から制御プログラム情報を読み出す制御を行って第1の暗号化/復号化回路20に出力する。
また第1の暗号化/復号化回路20は、更に暗号化I/F26を含むことができる。暗号化I/F26は、ホストI/F32とメモリI/F42との間に設けられる。暗号化I/F26は、処理部22及びハードウェア回路24に接続され、メモリ40からの制御プログラム情報を処理部22に出力したり、ホスト60からのコマンドを該処理部22に出力したりできる。
また暗号化/復号化装置10は、暗号化/復号化装置10の外部に設けられた外部メモリ50に制御プログラム情報とは別に格納された鍵の情報(広義には暗号化/復号化情報)に基づいて、コンテンツデータの暗号化/復号化処理を行うことができる。例えばコンテンツデータが第1のアルゴリズムに従って暗号化されている状態のとき、暗号化/復号化装置10は、鍵の情報である暗号化/復号化情報に基づいて第1のアルゴリズムに従って復号化処理を行う。また例えばコンテンツデータが暗号化されていない状態のとき、暗号化/復号化装置10は、鍵の情報である暗号化/復号化情報に基づいて、第1のアルゴリズムに従って暗号化処理を行う。このように暗号化/復号化情報は、第1のアルゴリズムの暗号化/復号化処理を行うための鍵の情報とすることができる。
この場合には、本実施形態における構成によれば、コンテンツデータの暗号化/復号化処理に必要な暗号化/復号化情報の機密性を維持できる。また鍵の情報の変更が必要になった場合でも、量産される半導体装置内で機密性を維持しながら機密情報を扱うことができる。
更に本実施形態の暗号化/復号化装置10では、以下のように制御することが望ましい。
図2に、本実施形態の暗号化/復号化装置10の制御方法の一例のタイミング図を示す。ここで暗号化/復号化装置10は、ハードウェア的に入力されるハードウェアリセットRSTがアクティブになったとき、初期状態に設定されるものとする。また、復号化回路30は、イネーブル信号EN1により動作のイネーブル状態又は動作のディセーブル状態が設定され、第1の暗号化/復号化回路20は、イネーブル信号EN2により動作のイネーブル状態又は動作のディセーブル状態に設定されるものとする。
暗号化/復号化装置10のハードウェアリセットRSTがアクティブになると、上述のように暗号化/復号化装置10は初期状態に設定される(SEQ1)。その後、ホスト60によって外部メモリ50から読み出された制御プログラム情報は、復号化回路30に供給される。このとき復号化回路30は、イネーブル信号EN1により動作のイネーブル状態に設定され、復号化処理を開始する。処理結果は、イネーブル信号EN1と同様にアクティブに設定されるイネーブル信号Runningにより第1の転送制御回路34がメモリI/F42を介して、メモリ40に転送される(SEQ2)。
そしてデータが終了すると、復号化回路30は、イネーブル信号EN1により動作のディセーブル状態に設定され、イネーブル信号EN1と同様に非アクティブに設定されるイネーブル信号Runningにより第1の転送制御回路34の動作がディセーブル状態に設定される(SEQ3)。これ以降、イネーブル信号EN1により、復号化回路30の動作は停止される。即ち、暗号化/復号化装置10のハードウェアリセットRSTがアクティブになった後に第1の転送制御回路34が一度ディセーブル状態になったとき、復号化回路30の動作を停止させる。こうすることで、制御プログラム情報を一旦メモリ40に展開すれば復号化回路30による復号化処理を不要にできる場合、無駄な消費電力を削減できる。また、不正に制御プログラム情報が展開されて、意図しないタイミングで復号化処理してしまうケースを完全に排除できるようにもなる。
ところで、制御プログラム情報により第1の暗号化/復号化回路20の暗号化/復号化処理の流れを制御できるようになると、暗号化/復号化装置10の外部のホスト60が、制御プログラム情報の内容によっては第1の暗号化/復号化回路20の暗号化/復号化処理の途中結果、最終結果又は鍵の情報を取り出せるようになるかもしれない。本実施形態では、このような事態を回避するために、制御プログラム情報の中からホスト60がコマンドで所望の処理を指定できるようにしている。これにより、ホスト60の処理負荷の軽減も実現させることが可能となる。
図3に、本実施形態の制御プログラム情報の指定方法の説明図を示す。但し、図3において、図1と同一部分には同一符号を付し、適宜説明を省略する。
本実施形態では、制御プログラム情報としてのシーケンスコードは、1又は複数のシーケンスブロックから構成される。各シーケンスブロックは、1又は複数の命令列を含む。ホスト60によって暗号化された状態で外部メモリ50から読み出されたシーケンスコードは、暗号化/復号化装置10の復号化回路30によって復号化される。その後、復号化されたシーケンスコードは、メモリ40の所定の記憶領域に格納されて展開される。メモリ40から各シーケンスブロックの各命令が読み出され、第1の暗号化/復号化回路20の処理部22によって解読される。そして、処理部22は、解読した命令に対応した制御(処理)を行う。処理部22が一連の命令に対応した制御を行うことで、シーケンスブロックが、目的とする処理を実行できるようになっている。
そして本実施形態においては、ホスト60が、暗号化/復号化装置10に対してコマンドを発行できるようになっている。このコマンドは、暗号化/復号化装置10において、メモリ40に記憶された1又は複数のシーケンスブロックのうち1つのシーケンスブロックを指定できる。即ち、ホスト60は、処理部22において実行させる処理を実現する命令列を含むシーケンスブロックをコマンドで指定するだけで第1の暗号化/復号化回路20の処理を変更できる。そのためホスト60に対して、例えば第1の暗号化/復号化回路20の暗号化/復号化処理の途中結果等を出力させる必要がなくなる。これは、ホスト60が、第1の暗号化/復号化回路20の暗号化/復号化処理の処理途中で生成された中間鍵を管理する必要が無くなることも意味する。その結果、ホスト60の処理負荷を軽減させると共に機密性を維持させる効果が得られる。
また、例えば本実施形態の暗号化/復号化装置を半導体装置として製造する製造メーカが関知しないように、該半導体装置のユーザ(顧客)が乱数データを用いて制御プログラム情報等の暗号化/復号化情報を外部メモリ50に格納させてもよい。このとき、暗号化/復号化情報が、暗号化対象情報と予め用意された事前共有鍵と乱数データとに基づいて生成される。そして、外部メモリ50から暗号化/復号化情報と乱数データとが対となって読み出され、復号化回路30が、暗号化/復号化情報の事前共有鍵に基づいて生成された共有鍵と乱数データとに基づいて復号化処理を行い、第1の暗号化/復号化回路20が、復号化された暗号化対象情報に基づいて暗号化/復号化処理を行う。この場合、暗号化対象情報としてコンテンツデータの暗号化/復号化処理に必要な鍵の情報等のユーザの機密情報を採用することで、製造メーカ側に対して完全にユーザの機密情報を秘匿できる暗号化/復号化装置10を提供できる。
以下では、本実施形態の暗号化/復号化装置10が適用される暗号化/復号化システムの構成例について説明する。
2. 暗号化/復号化システム
暗号化/復号化システムでは、ユーザの機密情報の他に、暗号化/復号化装置(半導体装置)の製造メーカの機密情報(ユーザによる変更を望まない情報)も、互いに秘匿した状態で暗号化/復号化装置に設定できるようになっている。従って、ユーザに秘匿した状態で製造メーカの機密情報を反映させて暗号化/復号化装置を動作させることができる。また、製造メーカ側に秘匿した状態でユーザの機密情報を反映させて暗号化/復号化装置を動作させることができる。以下では、ユーザの機密情報が、CPRM(Content Protection for Recordable Media)のデバイス鍵の情報であるものとするが、本実施形態ではこれに限定されるものではない。また製造メーカの機密情報が、暗号化/復号化回路の動作制御を行うための制御プログラム情報としてのシーケンスコードであるものとするが、本実施形態ではこれに限定されるものではない。
図4に、本実施形態の暗号化/復号化システムの構成例のブロック図を示す。ここでは、第1のアルゴリズムとしてC2のアルゴリズム、第2のアルゴリズムとしてAESのアルゴリズムが採用されるものとする。
本実施形態の暗号化/復号化システム100は、シーケンスコード暗号化装置200、デバイス鍵用事前共有鍵生成装置300、デバイス鍵暗号化装置400、外部メモリ50としての不揮発性メモリ500、CPUを含むホスト600、暗号化/復号化装置10としての暗号化/復号化装置700を含む。製造メーカ側では、シーケンスコード暗号化装置200及びデバイス鍵用事前共有鍵生成装置300が用いられる。シーケンスコード暗号化装置200及びデバイス鍵用事前共有鍵生成装置300の機能は、パーソナルコンピュータ上で動作するアプリケーションプログラム(ソフトウェア)によって実現される。ユーザ側では、デバイス鍵暗号化装置400が、不揮発性メモリ500、ホスト600及び暗号化/復号化装置700と同様に用いられる。デバイス鍵暗号化装置400の機能は、パーソナルコンピュータ上で動作するアプリケーションプログラム(ソフトウェア)によって実現される。
(製造メーカ側)
シーケンスコード暗号化装置200は、予めシーケンスコード用事前共有鍵KEY−S0、IV−S0(初期値)を有している。このシーケンスコード用事前共有鍵KEY−S0、IV−S0はシーケンスコードの暗号化/復号化処理の共有鍵の生成に用いられ、同じシーケンスコード用事前共有鍵KEY−S0、IV−S0が暗号化/復号化装置700に埋め込まれている。
まず製造メーカ側では、独自に決めた所定ビットの第1の乱数データRN1をシーケンスコード暗号化装置200に設定する。この第1の乱数データRN1は、製造メーカ側においてユーザ毎に管理することが望ましい。シーケンスコード暗号化装置200では、AES部220において、シーケンスコード用事前共有鍵KEY−S0、IV−S0に対応したシーケンスコード用暗号化処理の鍵KEY−S及びシーケンスコード用暗号化処理の初期値IV−Sが、第1の乱数データRN1に基づいて生成される。即ち、AES部220は、第1の乱数データRN1の長さだけCBCモードのAESアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵KEY−Sとして設定し、最後から1つ前のブロックを初期値IV−Sと設定する。
またシーケンスコード暗号化装置200には、製造メーカ側の機密情報としてシーケンスコードが入力される。このシーケンスコードは、予め決められた妥当性チェック値VCK1が付加されて、AES部220に入力される。AES部220は、例えば公知のCBC(Cipher Block Chaining)モードのAES方式で妥当性チェック値VCK1が付加されたシーケンスコードの暗号化処理を行う。この暗号化処理では、シーケンスコード用暗号化処理の鍵KEY−S及びシーケンスコード用暗号化処理の初期値IV−Sが用いられる。CBCモードでは、処理中のブロック以外のブロックのデータを当該ブロックの処理に反映させるため、初期値を異ならせることで入力データが同じであっても出力データを異ならせることができる。
第1の乱数データRN1とAES部220によって生成された暗号化処理後のデータとを連結することで第1の処理情報が生成され、該第1の処理情報が不揮発性メモリ500に書き込まれる。
このように第1の乱数データRN1を用いて初期値IV−S、鍵KEY−Sを生成することで、鍵の解読を困難にさせることができる。また、第1の乱数データRN1と暗号化処理後のデータとを連結するようにしたので、乱数データとシーケンスコードとの境界を判別しにくくして、不揮発性メモリ500に格納される第1の処理情報の解読を格段に困難にさせることができる。
更に製造メーカ側では、デバイス鍵用事前共有鍵生成装置300において、デバイス鍵用事前共有鍵KEY−D0、IV−D0が生成される。このデバイス鍵用事前共有鍵KEY−D0、IV−D0を用いて、ユーザ側の機密情報であるCPRMのデバイス鍵の暗号化/復号化処理に用いられる鍵KEY−Dと初期値IV−Dとが生成される。デバイス鍵用事前共有鍵生成装置300では、複数の事前共有鍵と第1の乱数データRN1の一部(例えば第1の乱数データRN1内の特定のMビット(Mは整数)のデータ)とを用いて共有鍵を生成する。即ち、共有鍵は、乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、復号化回路においては、乱数データの一部に基づいて、複数の事前共有鍵を用いて生成された共有鍵を用いて復号化処理が行われる。
図5に、デバイス鍵用事前共有鍵生成装置300の機能ブロックの例を示す。
デバイス鍵用事前共有鍵生成装置300は、セレクタ310、第1〜第Nの事前共有鍵320−1〜320−N(Nは整数)を含む。
第1〜第Nの事前共有鍵320−1〜320−Nのいずれかが、セレクタ310に供給される第1の乱数データRN1内の特定のMビット(Mは整数)に基づいて、1組のデバイス鍵用事前共有鍵KEY−D0、IV−D0としてデバイス鍵暗号化装置400に設定される。
ここで、第1〜第Nの事前共有鍵320−1〜Nは、乱数データRN1内の特定ビット数Mで選択されるため、N≦2とする。
なお暗号化/復号化装置700もまた、このデバイス鍵用事前共有鍵生成装置300と同じ機能を実現できる回路を有する。
(ユーザ側)
図4に戻って説明を続ける。一方、ユーザ側のデバイス鍵暗号化装置400には、上述のデバイス鍵用事前共有鍵KEY−D0、IV−D0が設定される。このデバイス鍵用事前共有鍵KEY−D0、IV−D0はデバイス鍵の暗号化/復号化処理の共有鍵の生成に用いられる。
ユーザ側では、製造メーカ側が関知しないように独自に決めた所定ビットの第2の乱数データRN2をデバイス鍵暗号化装置400に設定する。デバイス鍵暗号化装置400では、AES部420において、デバイス鍵用事前共有鍵KEY−D0,IV−D0に対応したデバイス鍵用暗号化処理の鍵KEY−D及びデバイス鍵用暗号化処理の初期値IV−Dが、第2の乱数データRN2に基づいて生成される。即ち、AES部420は、第2の乱数データRN2の長さだけCBCモードのAESアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵KEY−Dとして設定し、最後から1つ前のブロックを初期値IV−Dと設定する。
またデバイス鍵暗号化装置400には、ユーザ側の機密情報としてCPRMのデバイス鍵が入力される。このデバイス鍵は、予め決められた妥当性チェック値VCK2が付加されて、AES部420に入力される。AES部420は、例えば公知のCBCモードのAES方式で妥当性チェック値VCK2が付加されたデバイス鍵の暗号化処理を行う。この暗号化処理では、デバイス鍵用暗号化処理の鍵KEY−D及びデバイス鍵用暗号化処理の初期値IV−Dが用いられる。
第2の乱数データRN2とAES部420によって生成された暗号化処理後のデータとを連結することで第2の処理情報が生成され、該第2の処理情報が不揮発性メモリ500に書き込まれる。
このように第2の乱数データRN2を用いて初期値IV−D、鍵KEY−Dを生成することで、鍵の解読を困難にさせることができる。また、第2の乱数データRN2と暗号化処理後のデータとを連結するようにしたので、乱数データとデバイス鍵との境界を判別しにくくして、不揮発性メモリ500に格納される第2の処理情報の解読を格段に困難にさせることができる。
以上のように不揮発性メモリ500に設定された第1及び第2の処理情報は、所定の順序でホスト600によって読み出され、暗号化/復号化装置700に出力される。
図6に、暗号化/復号化装置700のうちシーケンスコード及びデバイス鍵の復号化処理に関わるブロック構成の一例を示す。
暗号化/復号化装置700は、AESマクロ部710、メモリ部750を含む。AESマクロ部710は、ホスト600によって不揮発性メモリ500から順次読み出された第1及び第2の処理情報を解析する。即ち、AESマクロ部710は、まず、抽出した第1の乱数データRN1に基づいてシーケンスコード用の復号化処理のための初期値、鍵を生成後、該初期値及び鍵を用いてシーケンスコードの復号化処理を行って復号化したシーケンスコードをメモリ部750に格納する。次に、AESマクロ部710は、抽出した第2の乱数データRN2に基づいてデバイス鍵用の復号化処理のための初期値、鍵を生成後、該初期値及び鍵を用いてデバイス鍵の復号化処理を行って復号化したデバイス鍵をメモリ部750に格納する。
このようなAESマクロ部710は、デバイス鍵用事前共有鍵生成部712、シーケンスコード用事前共有鍵保持レジスタ(制御プログラム情報用事前共有鍵保持レジスタ)714、AESコア部716、シーケンスコード用復号化処理レジスタ718、デバイス鍵用復号化処理レジスタ724、妥当性判定回路726を含むことができる。
デバイス鍵用事前共有鍵生成部712は、図5に示す製造メーカ側のデバイス鍵用事前共有鍵生成装置300と同じ機能を有し、フリップフロップや組み合わせ回路等のハードウェア回路により実現される。シーケンスコード用事前共有鍵保持レジスタ714には、製造メーカ側のシーケンスコード暗号化装置200に設定されるシーケンスコード用事前共有鍵KEY−S0、IV−S0が設定されている。AESコア部716は、AESのアルゴリズムに従って復号化処理を行う。
シーケンスコード用復号化処理レジスタ718には、AESコア部716による暗号化処理において順次生成されるシーケンスコード用復号化処理の初期値IV−S及びシーケンスコード用復号化処理の鍵KEY−Sが設定される。またデバイス鍵用復号化処理レジスタ724には、AESコア部716による暗号化処理において順次生成されるデバイス鍵用復号化処理の初期値IV−D及びデバイス鍵用復号化処理の鍵KEY−Dが設定される。
AESコア部716では、シーケンスコード用の復号化処理後にデバイス鍵用の復号化処理が行われる。即ち、まずホスト600は、不揮発性メモリ500から第1の乱数データRN1とAESのアルゴリズムで暗号化されたシーケンスコード及び妥当性チェック値VCK1とを読み出し、暗号化/復号化装置700に対し、第1の乱数データRN1、シーケンスコード及び妥当性チェック値VCK1の順に設定する。続いて、ホスト600は、不揮発性メモリ500から第2の乱数データRN2とAESのアルゴリズムで暗号化されたデバイス鍵及び妥当性チェック値VCK2とを読み出し、暗号化/復号化装置700に対し、第2の乱数データRN2、デバイス鍵及び妥当性チェック値VCK2の順に設定する。
暗号化/復号化装置700に入力された第1の乱数データRN1内の特定のMビット(Mは整数)はデバイス鍵用事前共有鍵生成部712に供給される。デバイス鍵用事前共有鍵生成部712は、図5のデバイス鍵用事前共有鍵生成装置300と同様に1組のデバイス鍵用事前共有鍵KEY−D0、IV−D0を生成する。
AESコア部716は、シーケンスコード用事前共有鍵保持レジスタ714に保持されたシーケンスコード用事前共有鍵KEY−S0、IV−S0に対応したシーケンスコード用復号化処理の鍵KEY−S及びシーケンスコード用復号化処理の初期値IV−Sを、第1の乱数データRN1に基づいて生成し、シーケンスコード用復号化処理レジスタ718に設定する。より具体的には、第1の乱数データRN1の長さだけCBCモードのAESアルゴリズムの暗号化処理を行い、最後から2つ前のブロックから最後のブロックまでの出力を鍵KEY−S(3種類)とし、最後から3つ前のブロックを初期値IV−Sとして、シーケンスコード用復号化処理レジスタ718に設定する。即ち、AESマクロ部(復号化回路)710が、シーケンスコード用事前共有鍵(制御プログラム情報用事前共有鍵)を用いてシーケンスコードの復号化処理を行う。
続いて、AESコア部716は、デバイス鍵用事前共有鍵生成部712によって生成されたデバイス鍵用事前共有鍵KEY−D0、IV−D0に対応したデバイス鍵用復号化処理の鍵KEY−D及びデバイス鍵用復号化処理の初期値IV−Dを、第2の乱数データRN2に基づいて生成し、デバイス鍵用復号化処理レジスタ724に設定する。より具体的には、第2の乱数データRN2の長さだけCBCモードのAESアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵KEY−Dとし、最後から1つ前のブロックを初期値IV−Dとして、デバイス鍵用復号化処理レジスタ724に設定する。即ち、AESマクロ部(復号化回路)710が、第1の乱数データRN1に基づいて複数のデバイス鍵用事前供給鍵を用いて生成されたデバイス鍵用共有鍵を用いてデバイス鍵の復号化処理を行う。
その後、AESコア部716では、シーケンスコード用復号化処理レジスタ718に設定された初期値IV−S、鍵KEY−Sを用いて、CBCモードのAESアルゴリズムに従って、シーケンスコード及び妥当性チェック値VCK1の復号化処理を行う。次に、AESコア部716では、デバイス鍵用復号化処理レジスタ724に設定された初期値IV−D、鍵KEY−Dを用いて、CBCモードのAESアルゴリズムに従って、デバイス鍵及び妥当性チェック値VCK2の復号化処理を行う。そしてメモリ部750に、AESコア部716で復号化されたシーケンスコード及びデバイス鍵を書き込む。
このとき妥当性判定回路726には、事前に妥当性チェック値の正当性を判定するために妥当性確認値VCK1、VCK2が埋め込まれており、AESコア部716で復号化された妥当性チェック値VCK1と妥当性確認値VCK1が一致し、且つAESコア部716で復号化された妥当性チェック値VCK2と妥当性確認値VCK2が一致したことを条件に、正当性であると判断する。正当性が否定された場合、暗号化/復号化装置700の少なくとも一部の機能を停止させる。
正当性が肯定された場合、暗号化/復号化装置700では、図示しない暗号化/復号化回路において、メモリ部750に格納されたデバイス鍵を用いて、メモリ部750に格納されたシーケンスコードに従ったコンテンツデータの暗号化処理又は復号化処理が行われる。より具体的には、妥当性判定回路で正当性が肯定されたことを条件に、暗号化/復号化装置700は、図示しない暗号化/復号化回路において、メモリ部750に格納されたデバイス鍵を用いて、メモリ部750に格納されたシーケンスコードに従ったコンテンツデータの暗号化処理又は復号化処理を行う。
なお、妥当性判定回路726において妥当性確認値と妥当性チェック値とが不一致のとき(正当性が否定されたとき)、暗号化/復号化装置700のハードウェアリセットがアクティブになるまで、(例えば図7のイネーブル信号EN2により)図示しない暗号化/復号化回路の動作を停止させることが望ましい。こうすることで、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。不正に正当性が肯定されてしまうと、デバイス鍵やシーケンスコードの秘匿性が低下してしまう。
或いは、妥当性判定回路726において妥当性確認値と妥当性チェック値とを比較した後、その比較結果にかかわらず、暗号化/復号化装置700のハードウェアリセットがアクティブになるまで、(例えば図7のイネーブル信号EN1により)復号化回路としてのAESマクロ部の動作を停止させることが望ましい。こうすることでも、本来であれば復号化処理は一度だけで済む点に着目し、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。
或いはまた、暗号化/復号化装置700のハードウェアリセットがアクティブになった後にAES_DMAC(第1の転送制御回路)780が一度ディセーブル状態になったとき、(例えば図7のイネーブル信号EN1により)AESマクロ部(復号化回路)710の動作を停止させてもよい。AESマクロ部710は、一旦シーケンスコード及びデバイス鍵を復号化してRAM750に書き込んだ後は動作させる必要がなくなるからであり、無駄な消費電力を削減できる効果がある。
以上のように、暗号化/復号化情報として、暗号化/復号化処理のシーケンスコード(制御プログラム情報)を含み、暗号化/復号化回路が、該シーケンスコードに基づいて暗号化/復号化処理を行うことができる。
なお図4では、シーケンスコード及びデバイス鍵をそれぞれ暗号化した状態で不揮発性メモリ500に設定するものとして説明したが、シーケンスコード及びデバイス鍵の一方を暗号化した状態で不揮発性メモリ500に設定してもよい。
2.1 暗号化/復号化装置の構成例
図7に、図6の暗号化/復号化装置700のハードウェア構成例のブロック図を示す。図7において、図6と同一部分には同一符号を付し、適宜説明を省略する。
暗号化/復号化装置700は、ホスト600とのインタフェース処理を行うホストI/F720、C2のアルゴリズムに従って暗号化処理又は復号化処理を行うC2マクロ部730(暗号化/復号化回路)、記録媒体としてのSDメモリカード900とのインタフェース処理を行うSDメモリカードI/F(記録媒体I/F)740を含む。ホストI/F720とSDメモリカードI/F740は、内部バス760に接続される。この内部バス760には、AESマクロ部710、C2マクロ部730もまた接続される。
また暗号化/復号化装置700は、メモリ部(メモリ)としてのRAM750との間でインタフェース処理を行うRAMI/F(メモリI/F)770を含む。RAMI/F770とAESマクロ部710との間にはAES_DMAC(第1の転送制御回路)780が設けられる。RAMI/F770は、C2マクロ部730に接続される。更に暗号化/復号化装置700では、内部バス760をバイパスするためにC2マクロ部730とSDメモリカードI/F740との間にSD_DMAC(第2の転送制御回路)790が設けられる。このような暗号化/復号化装置700は、制御部800を有し、制御部800が暗号化/復号化装置700の各部の制御を司る。
SDメモリカード900には、暗号化された状態でコンテンツデータが格納される。暗号化/復号化装置700は、SDメモリカード900に格納されたコンテンツデータを復号化処理したり、コンテンツデータを暗号化処理してSDメモリカード900に格納したりする。
このような暗号化/復号化装置700の処理に先立って、まずホスト600は、RAM610に格納されたプログラムに従って、まず不揮発性メモリとしてのフラッシュROM500から、上記の第1及び第2の処理情報(第1の乱数データRN1、シーケンスコード及び妥当性チェック値VCK1、第2の乱数データRN2、デバイス鍵及び妥当性チェック値VCK2)を読み出し、ホストI/F720を介してAESマクロ部710で復号化処理を行う。復号化処理結果は、AES_DMAC780により、RAMI/F770を介してRAM750に転送され、RAM750に書き込まれる。即ち、AES_DMAC780は、イネーブル状態のときに、復号化回路としてのAESマクロ部710によって復号化されたシーケンスコードをRAMI/F770に転送する。この結果、図6に示すように、RAM750には、復号化処理されたシーケンスコード及びCPRMのデバイス鍵が書き込まれる。
そして、RAMI/F770は、イネーブル信号DMARunning(図1のイネーブル信号Runningに相当)によりAES_DMAC780がイネーブル状態からディセーブル状態に変化したとき、RAM750からシーケンスコードを読み出す制御を行ってC2マクロ部730に出力する。或いは、RAMI/F770は、復号化回路としてのAESマクロ部710によって復号化されたシーケンスコードをRAM750に書き込む制御を行った後に、該RAM750からシーケンスコードを読み出す制御を行ってC2マクロ部730に出力する。
図8に、図7のAESマクロ部710のハードウェア構成例を示す。但し、図8において、図7と同一部分には同一符号を付し、適宜説明を省略する。
AESマクロ部710は、入力FIFO760、出力FIFO762、AES演算部764を含む。入力FIFO760には、ホストI/F720からのデータが入力される。出力FIFO762には、AES演算部764の出力データが入力され、RAMI/F770にデータを出力する。出力FIFO762に格納されたデータは、妥当性判定回路726において妥当性確認値VCK1、VCK2との比較が行われ、妥当性判定回路726において正当性が否定された場合に、入力FIFO760へのデータの書き込みを禁止する(データ入力をディセーブル状態に設定する)。
AES演算部764は、AESコア部716の他に、カウンタ765、組み込み回路766、鍵レジスタ767、初期値レジスタ768を含む。カウンタ765は、所定ビット数を単位としてデータ数をカウントし、そのカウント値に応じた制御信号cnt2を出力する。制御信号cnt2は、AES演算部764内のスイッチ回路のスイッチ制御を行うものである。組み込み回路766は、図6のデバイス鍵用事前共有鍵生成部712、シーケンスコード用事前共有鍵保持レジスタ714の機能を有する。鍵レジスタ767及び初期値レジスタ768には、AESコア部716の暗号化処理において求められる共有鍵及び初期値がそれぞれ格納される。
AES演算部764には、制御部800から、シーケンスコードの復号化処理又はデバイス鍵の復号化処理を指定する制御信号cnt1が入力される。制御信号cnt1は、組み込み回路766内のスイッチ回路のスイッチ制御を行うものである。
図9及び図10に、図8のAESマクロ部710のシーケンスコードの復号処理の動作フローの一例を示す。
まず、カウンタ765のカウント値が初期化され(ステップS10)、ホスト600からの第1の乱数データRN1を所定ビット単位で受け取る(ステップS11)。カウンタ765のカウント値が0のとき(ステップS12:Y)、第1の乱数データRN1内の特定のMビット(Mは整数)を組み込み回路766に出力する(ステップS13)。組み込み回路766では、第1の乱数データRN1内の特定のMビット(Mは整数)に基づいて、デバイス鍵用復号化処理の鍵と初期値が用意される。
ステップS12においてカウント値が0ではないとき(ステップS12:N)、又はステップS13以降では、AESコア部716でAESの暗号化処理が行われる(ステップS14)。このときカウンタ765は、所定のビット数を単位としてカウント値をインクリメントする。
次に、カウンタ765のカウント値が7より小さいとき(ステップS15:Y)、ステップS11に戻り、カウント値が7以上のとき(ステップS15:N)、カウント値が7であれば(ステップS16:Y)、AESコア部716の出力を初期値レジスタ768に格納するように制御信号cnt2を生成し(ステップS17)、ステップS11に戻る。またカウント値が8であれば(ステップS18:Y)、AESコア部716の出力を鍵レジスタ767に格納するように制御信号cnt2を生成し(ステップS21)、ステップS11に戻る。
こうしてカウント値が8を超えて鍵レジスタ767への格納が終了すると、AESコア部716が初期化され(ステップS24)、シーケンスコードの復号化処理が開始される(ステップS25)。そして、データ終了となるまで(ステップS27:N)、AES暗号化処理が行われる(ステップS26)。データ終了のとき(ステップS27:Y)、妥当性判定回路726において妥当性判定が行われる(ステップS28)。
妥当性判定において正当性が肯定されたとき(ステップS29:Y)、デバイス鍵処理(ステップS30)を行い、正当性が否定されたとき(ステップS29:N)、暗号化/復号化装置700の機能が無効化されて(ステップS31)、一連の処理が終了する(エンド)。
図10及び図12に、図8のAESマクロ部710により行われる図10のデバイス鍵処理の動作フローの一例を示す。
まず、カウンタ765のカウント値が初期化され(ステップS40)、ホスト600からのデータを所定ビット単位で受け取る(ステップS41)。
続いてAESコア部716でAESの暗号化処理が行われる(ステップS42)。このときカウンタ765は、所定のビット数を単位としてカウント値をインクリメントする。
次に、カウンタ765のカウント値が7より小さいとき(ステップS43:Y)、ステップS41に戻り、カウント値が7以上のとき(ステップS43:N)、カウント値が7であれば(ステップS44:Y)、AESコア部716の出力を初期値レジスタ768に格納するように制御信号cnt2を生成し(ステップS45)、ステップS41に戻る。またカウント値が8であれば(ステップS46:Y)、AESコア部716の出力を鍵レジスタ767に順次格納するように制御信号cnt2を生成し(ステップS49、ステップS50、ステップS51)、ステップS41に戻る。
こうしてカウント値が8を超えて鍵レジスタ767への格納が終了すると、AESコア部716が初期化され(ステップS52)、デバイス鍵の復号化処理が開始される(ステップS53)。そして、データ終了となるまで(ステップS55:N)、AES暗号化処理が行われる(ステップS54)。データ終了のとき(ステップS55:Y)、妥当性判定回路726において妥当性判定が行われる(ステップS56)。
妥当性判定において正当性が肯定されたとき(ステップS57:Y)、暗号化/復号化装置700ではコンテンツデータの暗号化/復号化処理(ステップS58)が開始される。一方、正当性が否定されたとき(ステップS57:N)、暗号化/復号化装置700の機能が無効化されて(ステップS59)、一連の処理が終了する(エンド)。
以上のようにAESマクロ部710によってRAM750に書き込まれたシーケンスコード及びデバイス鍵は、RAMI/F770を介してC2マクロ部730に出力される。C2マクロ部730は、シーケンスコードに従って、デバイス鍵を用いて暗号化処理又は復号化処理を行う。
例えばSDメモリカードI/F740、ホストI/F720を介してホスト600のRAM610に転送されたSDメモリカード900のコンテンツデータは、ホスト600により順次暗号化/復号化装置700に送られ、上述のようにC2マクロ部730において、シーケンスコードに従って、デバイス鍵を用いた復号化処理が施される。
なお、C2マクロ部730は、SDメモリカードI/F740、SD_DMAC790を介して、直接SDメモリカード900からコンテンツデータを受け取り、上述のように、シーケンスコードに従って、デバイス鍵を用いた復号化処理を行ってもよい。この場合、ホスト600の処理負荷を軽減できる。
また、例えばC2マクロ部730において、シーケンスコードに従って、デバイス鍵を用いた暗号化処理が施されたコンテンツデータが、ホストI/F720を介して一旦RAM610に保持され、ホスト600から順次ホストI/F720、SDメモリカードI/F740を介し、SDメモリカード900に格納する。
なお、C2マクロ部730は、上述のようにシーケンスコードに従って、デバイス鍵を用いた暗号化処理後のコンテンツデータを、SD_DMAC790、SDメモリカードI/F740を介して、直接SDメモリカード900に格納するようにしてもよい。この場合、ホスト600の処理負荷を軽減できる。
2.2 シーケンスコードの復号
次に、本実施形態におけるシーケンスコードについて説明する。
図13に、本実施形態におけるシーケンスコードの説明図を示す。
図7のC2マクロ部730は、C2のアルゴリズムに従った暗号化/復号化処理のうちソフトウェア処理部分を実行するシーケンサ732(広義にはソフトウェア処理部、処理部)と、該暗号化/復号化処理のうちハードウェア処理部分を実行するハードウェア回路734とを含む。シーケンサ732は、RAM750に格納されたシーケンスコードを解読し、該シーケンスコードに対応した処理を行う。ハードウェア回路734は、C2演算回路736、C2_DMAC737、C2I/F(暗号化I/F)738を含む。C2演算回路736は、公知のC2アルゴリズムに従った暗号化/復号化処理を行う。C2_DMAC737は、C2演算回路736とC2I/F378との間のデータ転送を制御する。
C2I/F738は、シーケンサ(処理部)732からの指示に基づいてハードウェア回路734からの生成情報をホストI/F720に出力するか、RAMI/F770に出力するかを切り替えることができる。従って、C2マクロ部730は、処理結果をRAM750に出力したり、ホストI/F720に出力したりすることができる。
RAM750には、復号化処理されたシーケンスコードの記憶領域やデバイス鍵の記憶領域の他に、暗号化/復号化処理のテンポラリ領域が確保されている。シーケンスコードは、インデックスとシーケンスブロックとからなる。シーケンスコードの記憶領域には、一連の命令の並びが記述されたシーケンスブロックを指定するインデックスが複数種類、記憶されている。
図14に、インデックスとシーケンスブロックの一例を示す。
インデックスは、該インデックスが指定するシーケンスブロックの命令数と、該シーケンスブロックの先頭の命令の記憶領域を特定するためのオフセットアドレスとを含む。このようなインデックスにより指定されるシーケンスブロックは、命令列が順番に記憶されている。
各命令は、入力指定データ、鍵指定データ、出力指定データを含む。入力指定データは、RAM750の所定の領域を指定したり、ホスト600からの入力データを指定したり、直前の演算結果等を指定できる。鍵指定データは、予め決められたRAM750の記憶領域に格納された鍵のうち、どの鍵を使用するかを指定できる。出力指定データは、RAM750の所定の領域を指定したり、所定のレジスタを指定したりできる。従って、各命令により、入力指定データで指定された場所のデータに対し、鍵指定データで特定された鍵を用いて各命令に対応した処理を行って、出力指定データで指定された場所に処理結果を格納できる。
そのため、例えばホスト600によって1つのインデックスが指定されると、シーケンサ732は、そのインデックスで指定された記憶領域に記憶された命令を順次読み出し、各命令に対応した処理を行うことができる。こうすることで、ホスト600は、例えばホストからのコマンドによりインデックスを指定するだけで、簡単にシーケンスブロックの指定を変更できる。即ち、C2マクロ部730は、RAM750に展開されたシーケンスコードの中からホスト600が指定した処理を実行できる。そして、シーケンスコードの復号化処理において、複数のインデックスと、各インデックスに対応したシーケンスブロックの命令列とをRAM750に展開することで、C2マクロ部730における処理の変更、調整等が容易に行えるようになる。
2.3 CPRMへの適用例
次に、本実施形態の暗号化/復号化装置700を、SDメモリカードを用いたCPRMによる暗号化/復号化処理に適用した例について説明する。
図15に、CPRMによる暗号化/復号化処理のフローの一例を示す。 図15において暗号化/復号化装置700の電源が投入されて初期化されると、上述のように、まずシーケンスコード及びCPRMのデバイス鍵のダウンロードが行われる(ステップS60)。
そしてSDメモリカードの挿入の有無を監視し(ステップS62:N)、SDメモリカードの挿入が検出されたとき(ステップS62:Y)、認証と鍵交換処理が行われる(ステップS63)。
認証及び鍵交換が終了すると、SDメモリカード内のコンテンツデータの暗号化/復号化処理を行う(ステップS65)。その後、終了するまで(ステップS66:N)、処理を継続し、終了すると(ステップS66:Y)、一連の処理を終了する(エンド)。
図16に、図15のCPRMによる暗号化/復号化処理を行う暗号化/復号化装置700を模式的に示す。
暗号化/復号化装置700は、シーケンサ732、メモリ部としてのRAM750を含み、SDメモリカード900との間で認証処理を行った後、該SDメモリカード900に記録されたコンテンツの復号化処理を行ってRAM750に展開したり、RAM750のコンテンツデータの暗号化処理を行ってSDメモリカード900に格納したりする。
図17に、処理を実現するシーケンスコードの一例の概略説明図を示す。
例えば認証、鍵交換処理を行う際は、ホスト600はシーケンス番号1を選択する。シーケンサ732は、シーケンス番号1を実行するために、まず認証演算1を実施する。認証演算1ではSDメモリカード900から入力された認証用データに対し、デバイス鍵を鍵として利用し、その演算結果をRAM750の記憶領域(Area1)に格納する。続いて、シーケンサ732は認証演算2を実施する。認証演算2ではホスト600から入力された認証用データに対し、先ほど演算しRAM750の記憶領域(Area1)に格納しておいたデータを鍵として利用し、その演算結果をRAMの記憶領域(Area2)に格納する。以上のような処理により、認証、鍵交換処理を終了する。
また、引き続きコンテンツの暗号処理を実施する際は、ホスト600はシーケンス番号2を選択する。シーケンサ732は、シーケンス番号2を実行するために、C2暗号演算を実施する。C2暗号演算ではホスト600から入力されたコンテンツデータを、先ほど演算しRAMの記憶領域(Area2)に格納しておいたデータを鍵として利用し、その演算結果をSDメモリカード900に転送する。以上のような処理により、コンテンツデータの暗号処理を終了する。
コンテンツの復号処理についてもまた、同様である。
なお、ここに挙げたシーケンスコードの処理の一例は、あくまでも概要を説明する為に簡略化した例であり、実際の製品においては、CPRMの規格に準拠した処理を実現する為にさらに複雑なシーケンス処理を実施することができる。
2.4 変形例
図18に、本実施形態の変形例における暗号化/復号化装置のハードウェア構成例のブロック図を示す。
図7の暗号化/復号化装置700では、暗号化/復号化回路としてC2マクロ部730を備えていたが、本実施形態の変形例では図7のC2マクロ部を第1のC2マクロ部730(第1の暗号化/復号化回路)とする一方、更に第2のC2マクロ部820(第2の暗号化/復号化回路)を備えることができる。第1及び第2のC2マクロ部730、820は同じ構成を有し、それぞれ個別に制御される。
この場合、本変形例における暗号化/復号化装置1000は制御部810を含み、制御部810は暗号化/復号化装置1000の各部を制御する。更に暗号化/復号化装置1000は、セレクタ1010、アービタ1020を含むことができる。セレクタ1010は、SD_DMAC790と第1及び第2のC2マクロ部730、810との間に設けられ、SDメモリカードI/F740と第1のC2マクロ部730との間のデータ転送、又はSDメモリカードI/F740と第2のC2マクロ部820との間のデータ転送を切り替えることができる。アービタ1020は、RAMI/F770と第1及び第2のC2マクロ部730、810との間に設けられる。アービタ1020は、第1及び第2のマクロ部730、810のRAM750に対するアクセス要求を調停し、第1及び第2のマクロ部730、810の1つのRAM750に対するアクセスを、RAMI/F770を介して実現させる。このような構成を有することで、ホスト600を介さずに、SDメモリカードI/F740と第1又は第2のC2マクロ部730、810との間でデータの転送が可能となる。この場合も、C2マクロ部730、810のそれぞれは、RAM750に展開されたシーケンスコードの中からホスト600が指定した処理を実行できる。
そして、第2のC2マクロ部820でAKEを行い、第1のC2マクロ部730でコンテンツデータの暗号化/復号化処理を行うことが可能となる。或いは第1及び第2のC2マクロ部730、810の一方でコンテンツの暗号化処理を行い、第1及び第2のC2マクロ部730、810の他方でコンテンツの復号化処理を行うことができる。
この場合、図示しない妥当性判定回路において妥当性確認値と妥当性チェック値とが不一致のとき(正当性が否定されたとき)、暗号化/復号化装置1000のハードウェアリセットがアクティブになるまで、(例えば図7のイネーブル信号EN21、EN22により)第1及び第2のC2マクロ部730、810の動作を停止させることが望ましい。こうすることで、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。不正に正当性が肯定されてしまうと、デバイス鍵やシーケンスコードの秘匿性が低下してしまう。
3. 電子機器
図19に、本実施形態又はその変形例における暗号化/復号化装置が適用された電子機器の構成例のブロック図を示す。
電子機器1200は、不揮発性メモリ1210、ホスト1220、暗号化/復号化装置1230、記録媒体接続部1240を含む。不揮発性メモリ1210は、図7のフラッシュROM500の機能を実現する。ホスト1220は、図7のホスト600の機能を実現する。暗号化/復号化装置1230は、図7の暗号化/復号化装置700又は図19の暗号化/復号化装置1000の機能を実現する。記録媒体接続部1240は、SDメモリカード等の記録媒体を電気的に接続するための物理的な形状及び電気的なインタフェース仕様を有する。
まず、暗号化/復号化装置1230では、不揮発性メモリ1210に格納されたシーケンスコード及びデバイス鍵を、上述のように展開する。その後、記録媒体1250が記録媒体接続部1240に接続されたとき、例えば記録媒体1250に格納されたコンテンツデータがホスト1220に読み出されて、図示しないRAMに格納される。そして、暗号化/復号化装置1230が、該RAMからコンテンツデータを読み出しながら、既に展開したシーケンスコード及びデバイス鍵を用いて復号化処理を行う。この復号化処理されたコンテンツデータは、電子機器1200の図示しない再生装置において再生される。
また電子機器1200の図示しない録音録画装置により取り込まれたコンテンツデータは、暗号化/復号化装置1230により、既に展開されたシーケンスコード及びデバイス鍵を用いて暗号化処理され、ホスト1220の図示しないRAMに書き込まれる。その後、ホスト1220は、該RAMから暗号化処理されたコンテンツデータを読み出し、該コンテンツデータを、記録媒体接続部1240を介して記録媒体1250に書き込む。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
本実施形態の暗号化/復号化装置の原理的な構成図。 本実施形態の暗号化/復号化装置の制御方法の一例のタイミング図。 本実施形態の制御プログラム情報の指定方法の説明図。 本実施形態の暗号化/復号化システムの構成例のブロック図。 デバイス鍵用事前共有鍵生成装置の機能ブロックの例を示す図。 暗号化/復号化装置のうちシーケンスコード及びデバイス鍵の復号化処理に関わるブロック構成の一例を示す図。 図6の暗号化/復号化装置のハードウェア構成例のブロック図。 図7のAESマクロ部のハードウェア構成例を示す図。 図8のAESマクロ部のシーケンスコードの復号処理の動作フローの一例を示す図。 図8のAESマクロ部のシーケンスコードの復号処理の動作フローの一例を示す図。 図8のAESマクロ部により行われる図10のデバイス鍵処理の動作フローの一例を示す図。 図8のAESマクロ部により行われる図10のデバイス鍵処理の動作フローの一例を示す図。 本実施形態におけるシーケンスコードの説明図。 インデックスとシーケンスブロックの一例を示す図。 CPRMによる暗号化/復号化処理のフローの一例を示す図。 図15のCPRMによる暗号化/復号化処理を行う暗号化/復号化装置の模式的な構成図。 シーケンスコードの一例の説明図。 本実施形態の変形例における暗号化/復号化装置のハードウェア構成例のブロック図。 本実施形態における電子機器の構成例のブロック図。
符号の説明
10、700 暗号化/復号化装置、 20 第1の暗号化/復号化回路、
22 処理部、 24 ハードウェア回路、 26 暗号化I/F、
30 復号化回路、 32 ホストI/F、 34 第1の転送制御回路、
40 メモリ、 42 メモリI/F、 50 外部メモリ、 60 ホスト、
100 暗号化/復号化システム、 200 シーケンスコード暗号化装置、
220、420 AES部、 300 デバイス鍵用事前共有鍵生成装置、
400 デバイス鍵暗号化装置、 500 不揮発性メモリ(フラッシュROM)、
600 ホスト、 610 RAM、 710 AESマクロ部、
720 ホストI/F、 730 C2マクロ部、 740 SDメモリカードI/F、
750 メモリ部(RAM)、 770 RAMI/F、 780 AES_DMAC、
790 SD_DMAC、 800、810 制御部、 900 SDメモリカード

Claims (14)

  1. 第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う第1の暗号化/復号化回路と、
    第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化/復号化処理を制御する制御プログラム情報が該外部メモリから読み出された場合に、該制御プログラム情報に対し前記第2のアルゴリズムに従って復号化処理を行う復号化回路と、
    前記復号化処理の結果の妥当性を判定するための妥当性判定回路と、
    前記復号化回路によって復号化された前記制御プログラム情報を記憶するメモリと、
    前記メモリに対して前記制御プログラム情報の読み出し及び書き込みを制御するメモリインタフェースとを含み、
    前記第1の暗号化/復号化回路が、
    前記メモリから読み出された制御プログラム情報に基づいて、前記暗号化/復号化処理のうちソフトウェア処理部分を実行する処理部と、
    前記暗号化/復号化処理のうちハードウェア処理部分を実行するハードウェア回路とを含むことを特徴とする暗号化/復号化装置。
  2. 請求項1において、
    前記メモリインタフェースは、
    前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに書き込む制御を行った後に、該メモリから該制御プログラム情報を読み出す制御を行って前記第1の暗号化/復号化回路に出力することを特徴とする暗号化/復号化装置。
  3. 請求項1又は2において、
    イネーブル状態のときに、前記復号化回路によって復号化された前記制御プログラム情報を前記メモリインタフェースに転送する第1の転送制御回路を含み、
    前記メモリインタフェースは、
    前記第1の転送制御回路がイネーブル状態からディセーブル状態に変化したとき、該メモリから該制御プログラム情報を読み出す制御を行って前記第1の暗号化/復号化回路に出力することを特徴とする暗号化/復号化装置。
  4. 請求項3において、
    前記暗号化/復号化装置のハードウェアリセットがアクティブになった後に前記第1の転送制御回路が一度ディセーブル状態になったとき、前記復号化回路の動作を停止させることを特徴とする暗号化/復号化装置。
  5. 請求項4において、
    前記暗号化/復号化装置の前記第1の転送制御回路がディセーブルになったとき、前記妥当性確認回路にて、前記第2の復号結果が妥当であることを確認し、妥当である場合は前記第1の暗号化/復号化回路の使用を許可し、妥当でない場合は前記第1の暗号化/復号化回路の使用を禁止することを特徴とする暗号化/復号化装置。
  6. 請求項1乃至5のいずれかにおいて、
    前記外部メモリからデータの読み出しを行うホストとのインタフェース処理を行うホストインタフェースを含み、
    前記第1の暗号化/復号化回路が、
    暗号化インタフェースを含み、
    前記暗号化インタフェースは、前記処理部からの指示に基づいて前記ハードウェア回路からの生成情報を前記ホストインタフェースに出力するか、前記メモリインタフェースに出力するかを切り替えることを特徴とする暗号化/復号化装置。
  7. 請求項1乃至6のいずれかにおいて、
    前記第1の暗号化/復号化回路は、
    前記制御プログラム情報の中から、ホストが指定した処理を実行することを特徴とする暗号化/復号化装置。
  8. 請求項1乃至7のいずれかにおいて、
    前記第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う第2の暗号化/復号化回路を含み、
    前記第1及び第2の暗号化/復号化回路の各回路が、
    前記制御プログラム情報の中から、ホストが指定した処理を実行することを特徴とする暗号化/復号化装置。
  9. 請求項1乃至8のいずれかにおいて、
    前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体とのインタフェース処理を行う記録媒体インタフェースと、
    前記記録媒体インタフェースと前記第1及び第2の暗号化/復号化回路との間のデータ転送を制御する第2の転送制御回路とを含むことを特徴とする暗号化/復号化装置。
  10. ホストと、
    請求項1乃至9のいずれか記載の暗号化/復号化装置と、
    前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体に接続するための媒体接続部とを含むことを特徴とする電子機器。
  11. 暗号化/復号化処理を制御する制御プログラム情報に基づいて前記暗号化/復号化処理のうちソフトウェア処理部分を実行する処理部と、前記暗号化/復号化処理のうちハードウェア処理部分を実行するハードウェア回路と、メモリとを含む暗号化/復号化装置の制御方法であって、
    第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記制御プログラム情報を該外部メモリから読み出して、該制御プログラム情報に対し前記第2のアルゴリズムに従って復号化処理を行い、
    前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに記憶し、
    前記復号化処理の結果の妥当性判定処理を行い、
    前記メモリに記憶された前記制御プログラム情報に基づいて、前記暗号化/復号化処理のうちソフトウェア処理部分を実行させることを特徴とすることを暗号化/復号化装置の制御方法。
  12. 請求項11において、
    前記暗号化/復号化装置のハードウェアリセットがアクティブになった後に、復号化された前記制御プログラム情報を前記メモリに転送する制御が一度ディセーブル状態になったとき、復号化処理の動作を停止させることを特徴とする暗号化/復号化装置の制御方法。
  13. 請求項12において、
    前記暗号化/復号化装置の前記第1の転送制御がディセーブルになったとき、前記妥当性確認処理にて、前記第2の復号結果が妥当であることを確認し、妥当である場合は前記暗号化/復号化処理を許可し、妥当でない場合は暗号化/復号化処理を禁止することを特徴とする暗号化/復号化装置の制御方法。
  14. 請求項項11乃至13のいずれかにおいて、
    前記制御プログラム情報の中から、ホストが指定した処理を実行させることで前記暗号化/復号化処理を行うことを特徴とする暗号化/復号化装置の制御方法。
JP2005260637A 2005-09-08 2005-09-08 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法 Withdrawn JP2007074507A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005260637A JP2007074507A (ja) 2005-09-08 2005-09-08 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005260637A JP2007074507A (ja) 2005-09-08 2005-09-08 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法

Publications (1)

Publication Number Publication Date
JP2007074507A true JP2007074507A (ja) 2007-03-22

Family

ID=37935550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005260637A Withdrawn JP2007074507A (ja) 2005-09-08 2005-09-08 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法

Country Status (1)

Country Link
JP (1) JP2007074507A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5487966B2 (ja) * 2007-07-03 2014-05-14 日本電気株式会社 データ暗号化/復号化処理方法およびデータ処理装置
JP2022016621A (ja) * 2014-03-19 2022-01-21 ブルーフィン ペイメント システムズ エルエルシー 暗号化装置のフィンガープリントを作成するシステム及び方法
CN114513357A (zh) * 2022-02-15 2022-05-17 成都国信安信息产业基地有限公司 嵌入式设备的集成控制方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5487966B2 (ja) * 2007-07-03 2014-05-14 日本電気株式会社 データ暗号化/復号化処理方法およびデータ処理装置
JP2022016621A (ja) * 2014-03-19 2022-01-21 ブルーフィン ペイメント システムズ エルエルシー 暗号化装置のフィンガープリントを作成するシステム及び方法
JP7253173B2 (ja) 2014-03-19 2023-04-06 ブルーフィン ペイメント システムズ エルエルシー 暗号化装置のフィンガープリントを作成するシステム及び方法
CN114513357A (zh) * 2022-02-15 2022-05-17 成都国信安信息产业基地有限公司 嵌入式设备的集成控制方法及系统

Similar Documents

Publication Publication Date Title
JP4856400B2 (ja) 記憶装置及び情報処理端末
TWI298591B (en) System and method for securing executable code
EP3355232B1 (en) Input/output data encryption
US20040172538A1 (en) Information processing with data storage
JP5417092B2 (ja) 暗号化属性を用いて高速化された暗号法
JP2010028485A (ja) 情報処理装置、認証方法及び記憶媒体
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
US20110022850A1 (en) Access control for secure portable storage device
WO2006013924A1 (ja) 記録再生装置、記録媒体処理装置、再生装置、記録媒体、コンテンツ記録再生システム、及びコンテンツ記録再生方法
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524969A5 (ja)
US7657034B2 (en) Data encryption in a symmetric multiprocessor electronic apparatus
US20100241870A1 (en) Control device, storage device, data leakage preventing method
JP2007108833A (ja) 複数パスワード記憶装置及びパスワード管理方法
JP2007074507A (ja) 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法
KR101126596B1 (ko) 단일 및 다중 aes 동작을 지원하기 위한 듀얼 모드 aes 장치 및 방법
JP2010092202A (ja) Usbインタフェースを用いた記憶装置
JP2007074506A (ja) 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法
JP2007336446A (ja) データ暗号化装置
JP2007074505A (ja) 暗号化/復号化装置、電子機器及び暗号化/復号化方法
JP2004199689A (ja) 不安全なpciバスを介した安全なメディア・カードの運用
JP4738546B2 (ja) データ漏洩防止システムおよびデータ漏洩防止方法
JP2005354602A (ja) データ記憶装置及び暗号化装置
JP2003177971A (ja) 物理媒体上にデジタル・データを記憶するため、また読み取るための方法およびデバイス
JP2006351160A (ja) コンピュータシステム、及びディスク装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081202