JP2007074505A - 暗号化/復号化装置、電子機器及び暗号化/復号化方法 - Google Patents

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

Info

Publication number
JP2007074505A
JP2007074505A JP2005260635A JP2005260635A JP2007074505A JP 2007074505 A JP2007074505 A JP 2007074505A JP 2005260635 A JP2005260635 A JP 2005260635A JP 2005260635 A JP2005260635 A JP 2005260635A JP 2007074505 A JP2007074505 A JP 2007074505A
Authority
JP
Japan
Prior art keywords
encryption
decryption
information
key
processing
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
JP2005260635A
Other languages
English (en)
Inventor
Tomonori Kumagai
友則 熊谷
Taro Tanaka
太郎 田中
Mitsuhiro Matsuo
光浩 松尾
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 JP2005260635A priority Critical patent/JP2007074505A/ja
Publication of JP2007074505A publication Critical patent/JP2007074505A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置、電子機器及び暗号化/復号化方法を提供する。
【解決手段】 暗号化/復号化装置10は、第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う暗号化/復号化回路16と、第2のアルゴリズムに従って暗号化された状態で外部メモリ20に記憶されている暗号化/復号化処理用の暗号化/復号化情報が該外部メモリから読み出された場合に、該暗号化/復号化情報に対し前記第2のアルゴリズムに従って復号化処理を行う復号化回路12と、復号化回路12によって復号化された暗号化/復号化情報を記憶するメモリ14とを含む。暗号化/復号化回路16は、コンテンツデータに対し、メモリ14に記憶された暗号化/復号化情報に基づいて暗号化/復号化処理を行う。
【選択図】 図1

Description

本発明は、暗号化/復号化装置、電子機器及び暗号化/復号化方法に関する。
近年、家庭においても高品質なデジタルコンテンツを利用できるようになっている。例えば、MPEG(Moving Picture Experts Group、より具体的にはMPEG2)ストリームを配信するBSデジタル放送等のデジタル放送が脚光を浴び、デジタル放送チューナやデジタル放送のコンテンツの記録/再生装置等の電子機器の普及が著しい。また記録媒体を利用したコンテンツの再生、録音、録画が可能となり、コンテンツデータを携帯機器に取り込めるようになっている。
このようにコンテンツデータの普及が進む一方で、コンテンツの保護の必要性が急速に高まっている。そのため、コンテンツの内容がデジタル的に不正に複製されるのを防止すべく、コンテンツデータを処理する電子機器にはコンテンツの複製防止技術が導入されている。この複製防止技術には暗号化/復号化処理において鍵が利用されるため、この鍵を機密情報として管理することが求められる。
このような機密情報については、例えば暗号化/復号化装置としての半導体装置内に書き換え可能な不揮発性メモリを内蔵させ、該不揮発性メモリに機密情報を書き込んだり、予め固定的に機密情報を埋め込んだりすることが考えられる。また特許文献1には、複数のユーザ間で予め定められた共通の情報を合成し、該情報を入力することで共通の鍵生成関数に基づいてハッシングを行って鍵を生成する技術が開示されている。
特開平2−56136号公報
しかしながら、半導体装置に内蔵させた不揮発性メモリに機密情報を書き込むようにすると、半導体装置自体のコスト高を招いてしまう。また半導体装置内に固定的に機密情報を埋め込むと、半導体装置毎に機密情報を異ならせることが困難となる。更に引用文献1に開示されている技術では、ユーザ数が増加した場合に複数のユーザ間で共通の情報を変更する必要が生じ、量産される半導体装置内で扱う機密情報を埋め込みには適さないと考えられる。そしてユーザの機密情報については、半導体装置の製造メーカ側に対して完全に秘匿できないという問題がある。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、例えば製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置、電子機器及び暗号化/復号化方法を提供することにある。
上記課題を解決するために本発明は、
第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う暗号化/復号化回路と、
第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化/復号化処理用の暗号化/復号化情報が該外部メモリから読み出された場合に、該暗号化/復号化情報に対し前記第2のアルゴリズムに従って復号化処理を行う復号化回路と、
前記復号化回路によって復号化された前記暗号化/復号化情報を記憶するメモリとを含み、
前記暗号化/復号化回路が、
コンテンツデータに対し、前記メモリに記憶された暗号化/復号化情報に基づいて前記暗号化/復号化処理を行う暗号化/復号化装置に関係する。
ここで、第1及び第2のアルゴリズムは、同じ鍵を用いるのでなければ同じアルゴリズムであってもよい。
本発明においては、第2のアルゴリズムに従って暗号化された状態で外部メモリに暗号化/復号化情報を格納しておき、復号化回路において該暗号化/復号化情報に対して第2のアルゴリズムに従って復号化処理を行わせる。そして暗号化/復号化回路において、コンテンツデータに対して、該暗号化/復号化情報に基づいて暗号化/復号化処理を行わせるようにした。これにより、暗号化/復号化装置の製造メーカ側に暗号化/復号化処理に必要な鍵等の暗号化/復号化情報を知らせる必要がなく、例えば製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置を提供できる。
また本発明に係る暗号化/復号化装置では、
前記暗号化/復号化情報が、
暗号化対象情報と事前共有鍵と乱数データとに基づいて生成され、
前記暗号化/復号化情報と前記乱数データとが対となって前記外部メモリから読み出され、
前記復号化回路が、
前記暗号化/復号化情報の前記事前共有鍵に基づいて生成された共有鍵と前記乱数データとを用いて前記復号化処理を行い、
前記暗号化/復号化回路が、
前記復号化回路によって復号化された前記暗号化対象情報に基づいて前記暗号化/復号化処理を行うことができる。
本発明においては、事前共有鍵とユーザ側が勝手に決めることができる乱数データとを用いて暗号化/復号化情報を生成し、外部メモリに暗号化/復号化情報として格納し、暗号化/復号化回路が、復号化回路によって復号化された暗号化対象情報に基づいてコンテンツデータに対する暗号化/復号化処理を行う。これにより、ユーザ側が管理すべき情報量を削減した状態でより秘匿性を向上させ、例えば製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置を提供できる。
また本発明に係る暗号化/復号化装置では、
前記共有鍵は、
前記乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、
前記復号化回路が、
前記乱数データの一部に基づいて、予め暗号化/復号化装置内に用意された複数の事前共有鍵を用いて生成された共有鍵を用いて前記復号化処理を行うことができる。
本発明によれば、簡易な構成で、解読が困難な暗号化/復号化処理を実現する暗号化/復号化装置を提供できる。
また本発明に係る暗号化/復号化装置では、
前記暗号化/復号化情報が、
前記暗号化/復号化処理の制御プログラム情報を含み、
前記暗号化/復号化回路が、
該制御プログラム情報に基づいて前記暗号化/復号化処理を行うことができる。
本発明によれば、暗号化/復号化装置の製造メーカ側が、ユーザ側に秘匿した状態で暗号化/復号化処理の少なくとも一部のシーケンスを変更できるようになり、処理の変更等を容易に行うことができる。また勝手にユーザ側でシーケンスが変更されて悪用される事態を回避できるようになる。
また本発明に係る暗号化/復号化装置では、
前記制御プログラム情報の暗号化/復号化処理用の制御プログラム情報用事前共有鍵が保持される制御プログラム情報用事前共有鍵保持レジスタを含み、
前記暗号化/復号化情報が、
第1の乱数データと前記暗号化/復号化処理の制御プログラム情報とに基づいて生成された第1の処理情報と、
第2の乱数データとデバイス鍵とに基づいて生成された第2の処理情報とを含み、
前記復号化回路が、
前記制御プログラム情報用事前共有鍵保持レジスタに保持された前記制御プログラム情報用事前共有鍵を用いて前記制御プログラム情報の復号化処理を行うと共に、
前記第1の乱数データに基づいて複数のデバイス鍵用事前供給鍵を用いて生成されたデバイス鍵用共有鍵を用いて前記デバイス鍵の復号化処理を行うことができる。
本発明によれば、例えばユーザに秘匿した状態で製造メーカの機密情報を反映させて暗号化/復号化装置を動作させることができる。更に製造メーカ側に秘匿した状態でユーザの機密情報を反映させて暗号化/復号化装置を動作させることができる。
また本発明に係る暗号化/復号化装置では、
前記外部メモリからデータの読み出しを行うホストとのインタフェース処理を行うホストインタフェースと、
前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体とのインタフェース処理を行う記録媒体インタフェースとを含み、
前記復号化回路が、
前記ホストインタフェースを介して入力された暗号化/復号化情報に対し前記復号化処理を行い、
前記暗号化/復号化回路が、
前記記録媒体インタフェースを介して入力された前記コンテンツデータに対して該暗号化/復号化情報に基づいて復号化処理を行い、又は該暗号化/復号化情報に基づいて暗号化処理されたコンテンツデータを前記記録媒体インタフェースを介して前記記録媒体に出力することができる。
本発明によれば、記録媒体に格納されたコンテンツデータを、例えば製造メーカ側に対し機密情報を秘匿でき、且つ低コストで保護できる暗号化/復号化装置を提供できる。
また本発明は、
ホストと、
上記のいずれか記載の暗号化/復号化装置と、
前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体に接続するための媒体接続部とを含む電子機器に関係する。
本発明によれば、例えば製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化/復号化装置が適用された電子機器を提供できる。
また本発明は、
外部メモリに記憶されている暗号化/復号化情報に基づいてコンテンツデータを保護するための暗号化/復号化方法であって、
第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化/復号化情報を読み出して、該暗号化/復号化情報に対し前記第2のアルゴリズムに従って復号化処理を行い、
該復号化処理において復号化された前記暗号化/復号化情報を内蔵するメモリに記憶し、
コンテンツデータに対し、前記メモリに記憶された暗号化/復号化情報に基づいて、第1のアルゴリズムに従った暗号化/復号化処理を行う暗号化/復号化方法に関係する。
また本発明に係る暗号化/復号化方法では、
前記暗号化/復号化情報が、
暗号化対象情報と事前共有鍵と乱数データとに基づいて生成され、
前記暗号化/復号化情報と前記乱数データとが対となって前記外部メモリから読み出され、
前記暗号化/復号化情報の前記事前共有鍵に基づいて生成された共有鍵と前記乱数データとに基づいて前記復号化処理を行い、復号化された前記暗号化/復号化情報の前記暗号化対象情報に基づいて前記暗号化/復号化処理を行うことができる。
また本発明に係る暗号化/復号化方法では、
前記共有鍵は、
前記乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、
前記復号化回路が、
前記乱数データの一部に基づいて、複数の事前共有鍵を用いて生成された共有鍵を用いて前記復号化処理を行うことができる。
また本発明に係る暗号化/復号化方法では、
前記暗号化/復号化情報が、
前記暗号化/復号化処理の制御プログラム情報を含み、
該制御プログラム情報に基づいて前記暗号化/復号化処理を行うことができる。
また本発明に係る暗号化/復号化方法では、
予め前記制御プログラム情報の暗号化/復号化処理用の制御プログラム情報用事前共有鍵共有鍵を保持し、
前記暗号化/復号化情報が、
第1の乱数データと前記暗号化/復号化処理の制御プログラム情報とに基づいて生成された第1の処理情報と、
第2の乱数データとデバイス鍵とに基づいて生成された第2の処理情報とを含み、
前記制御プログラム情報用事前共有鍵を用いて前記制御プログラム情報の復号化処理を行うと共に、前記第1の乱数データに基づいて複数のデバイス鍵用事前共有鍵を用いて生成されたデバイス鍵用共有鍵を用いて前記デバイス鍵の復号化処理を行うことができる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. 暗号化/復号化装置
図1に、本実施形態の暗号化/復号化装置の原理的な構成を示す。
本実施形態における暗号化/復号化装置10は、復号化回路12、メモリ14、暗号化/復号化回路16を含む。そして暗号化/復号化装置10は、暗号化/復号化装置10の外部に設けられた外部メモリ20に格納された暗号化/復号化情報に基づいて、コンテンツデータの暗号化/復号化処理を行う。例えばコンテンツデータが第1のアルゴリズムに従って暗号化されている状態のとき、暗号化/復号化装置10は、暗号化/復号化情報に基づいて第1のアルゴリズム(例えば公知のC2(Cryptomeria Cipher))に従って復号化処理を行う。また例えばコンテンツデータが暗号化されていない状態のとき、暗号化/復号化装置10は、暗号化/復号化情報に基づいて、第1のアルゴリズムに従って暗号化処理を行う。このような暗号化/復号化情報は、第1のアルゴリズムの暗号化/復号化処理を行うための鍵の情報とすることができる。また暗号化/復号化情報は、該鍵の情報と該暗号化/復号化処理の少なくとも一部のシーケンスを変更するための制御プログラム情報とすることができる。
このとき、暗号化/復号化情報の機密性を維持させるために、外部メモリ20には、第2のアルゴリズム(例えば公知のAES(Advanced Encryption Standard))に従って暗号化された状態で該暗号化/復号化情報が格納される。そのため、復号化回路12は、外部メモリ20から読み出された暗号化/復号化情報に対し、第2のアルゴリズムに従って復号化処理を行う。ここで、第1及び第2のアルゴリズムは、異なる鍵を用いるのであれば同じアルゴリズムであってもよい。
メモリ14には、復号化回路12によって復号化された暗号化/復号化情報が格納される。このメモリ14に格納された暗号化/復号化情報の記憶領域は、暗号化/復号化装置10の外部からアクセス不可能な領域である。そして、メモリ14から読み出された暗号化/復号化情報が暗号化/復号化回路16に供給され、暗号化/復号化回路16は該暗号化/復号化情報に基づいて、第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う。
こうすることで、コンテンツデータの暗号化/復号化処理に必要な暗号化/復号化情報の機密性を維持できる。また鍵の情報の変更等の暗号化/復号化情報の変更が必要になった場合でも、量産される半導体装置内で機密性を維持しながら機密情報を扱うことができる。
更に、例えば本実施形態の暗号化/復号化装置を半導体装置として製造する製造メーカが関知しないように、該半導体装置のユーザ(顧客)が乱数データを用いて暗号化/復号化情報を外部メモリ20に格納させてもよい。このとき、暗号化/復号化情報が、暗号化対象情報と予め用意された事前共有鍵と乱数データとに基づいて生成される。そして、外部メモリ20から暗号化/復号化情報と乱数データとが対となって読み出され、復号化回路12が、暗号化/復号化情報の事前共有鍵に基づいて生成された共有鍵と乱数データとに基づいて復号化処理を行い、暗号化/復号化回路16が、復号化された暗号化対象情報に基づいて暗号化/復号化処理を行う。この場合、暗号化対象情報としてコンテンツデータの暗号化/復号化処理に必要な鍵の情報等のユーザの機密情報を採用することで、製造メーカ側に対して完全にユーザの機密情報を秘匿できる暗号化/復号化装置10を提供できる。
以下では、本実施形態の暗号化/復号化装置10が適用される暗号化/復号化システムの構成例について説明する。
2. 暗号化/復号化システム
暗号化/復号化システムでは、ユーザの機密情報の他に、暗号化/復号化装置(半導体装置)の製造メーカの機密情報(ユーザによる変更を望まない情報)も、互いに秘匿した状態で暗号化/復号化装置に設定できるようになっている。従って、ユーザに秘匿した状態で製造メーカの機密情報を反映させて暗号化/復号化装置を動作させることができる。また、製造メーカ側に秘匿した状態でユーザの機密情報を反映させて暗号化/復号化装置を動作させることができる。以下では、ユーザの機密情報が、CPRM(Content Protection for Recordable Media)のデバイス鍵の情報であるものとするが、本実施形態ではこれに限定されるものではない。また製造メーカの機密情報が、暗号化/復号化回路の動作制御を行うための制御プログラム情報としてのシーケンスコードであるものとするが、本実施形態ではこれに限定されるものではない。
図2に、本実施形態の暗号化/復号化システムの構成例のブロック図を示す。ここでは、第1のアルゴリズムとしてC2のアルゴリズム、第2のアルゴリズムとしてAESのアルゴリズムが採用されるものとする。
本実施形態の暗号化/復号化システム100は、シーケンスコード暗号化装置200、デバイス鍵用事前共有鍵生成装置300、デバイス鍵暗号化装置400、外部メモリ20としての不揮発性メモリ500、中央演算処理装置(Central Processing Unit: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は整数)のデータ)とを用いて共有鍵を生成する。即ち、共有鍵は、乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、復号化回路においては、乱数データの一部に基づいて、複数の事前共有鍵を用いて生成された共有鍵を用いて復号化処理が行われる。
図3に、デバイス鍵用事前共有鍵生成装置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と同じ機能を実現できる回路を有する。
(ユーザ側)
図2に戻って説明を続ける。一方、ユーザ側のデバイス鍵暗号化装置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に出力される。
図4に、暗号化/復号化装置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は、図3に示す製造メーカ側のデバイス鍵用事前共有鍵生成装置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は、図3のデバイス鍵用事前共有鍵生成装置300と同様に1組のデバイス鍵用事前共有鍵KEY−D0、IV−D0を生成する。
AESコア部716は、シーケンスコード用事前共有鍵保持レジスタ714に保持されたシーケンスコード用事前共有鍵KEY−S0、IV−S0に対応したシーケンスコード用復号化処理の鍵KEY−S及びシーケンスコード用復号化処理の初期値IV−Sを、第1の乱数データRN1に基づいて生成し、シーケンスコード用復号化処理レジスタ718に設定する。より具体的には、第1の乱数データRN1の長さだけCBCモードのAESアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵KEY−Sとし、最後から1つ前のブロックを初期値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のハードウェアリセットがアクティブになるまで、(例えば図5のイネーブル信号EN2により)図示しない暗号化/復号化回路の動作を停止させることが望ましい。こうすることで、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。不正に正当性が肯定されてしまうと、デバイス鍵やシーケンスコードの秘匿性が低下してしまう。
或いは、妥当性判定回路726において妥当性確認値と妥当性チェック値とを比較した後、その比較結果にかかわらず、暗号化/復号化装置700のハードウェアリセットがアクティブになるまで、(例えば図5のイネーブル信号EN1により)復号化回路としてのAESマクロ部の動作を停止させることが望ましい。こうすることでも、本来であれば復号化処理は一度だけで済む点に着目し、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。
或いはまた、暗号化/復号化装置700のハードウェアリセットがアクティブになった後にAES_DMAC(第1の転送制御回路)780が一度ディセーブル状態になったとき、(例えば図5のイネーブル信号EN1により)AESマクロ部(復号化回路)710の動作を停止させてもよい。AESマクロ部710は、一旦シーケンスコード及びデバイス鍵を復号化してRAM750に書き込んだ後は動作させる必要がなくなるからであり、無駄な消費電力を削減できる効果がある。
以上のように、暗号化/復号化情報として、暗号化/復号化処理のシーケンスコード(制御プログラム情報)を含み、暗号化/復号化回路が、該シーケンスコードに基づいて暗号化/復号化処理を行うことができる。
なお図2では、シーケンスコード及びデバイス鍵をそれぞれ暗号化した状態で不揮発性メモリ500に設定するものとして説明したが、シーケンスコード及びデバイス鍵の一方を暗号化した状態で不揮発性メモリ500に設定してもよい。
2.1 暗号化/復号化装置の構成例
図5に、図4の暗号化/復号化装置700のハードウェア構成例のブロック図を示す。図5において、図4と同一部分には同一符号を付し、適宜説明を省略する。
暗号化/復号化装置700は、ホスト600とのインタフェース処理を行うホストインタフェース(Interface:I/F)720、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に転送する。この結果、図4に示すように、RAM750には、復号化処理されたシーケンスコード及びCPRMのデバイス鍵が書き込まれる。
そして、RAMI/F770は、イネーブル信号DMARunningによりAES_DMAC780がイネーブル状態からディセーブル状態に変化したとき、RAM750からシーケンスコードを読み出す制御を行ってC2マクロ部730に出力する。或いは、RAMI/F770は、復号化回路としてのAESマクロ部710によって復号化されたシーケンスコードをRAM750に書き込む制御を行った後に、該RAM750からシーケンスコードを読み出す制御を行ってC2マクロ部730に出力する。
図6に、図5のAESマクロ部710のハードウェア構成例を示す。但し、図6において、図5と同一部分には同一符号を付し、適宜説明を省略する。
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は、図4のデバイス鍵用事前共有鍵生成部712、シーケンスコード用事前共有鍵保持レジスタ714の機能を有する。鍵レジスタ767及び初期値レジスタ768には、AESコア部716の暗号化処理において求められる共有鍵及び初期値がそれぞれ格納される。
AES演算部764には、制御部800から、シーケンスコードの復号化処理又はデバイス鍵の復号化処理を指定する制御信号cnt1が入力される。制御信号cnt1は、組み込み回路766内のスイッチ回路のスイッチ制御を行うものである。
図7及び図8に、図6の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への格納が終了すると(ステップS18:N)、AESコア部716が初期化され(ステップS24)、シーケンスコードの復号化処理が開始される(ステップS25)。そして、データ終了となるまで(ステップS27:N)、AES暗号化処理が行われる(ステップS26)。データ終了のとき(ステップS27:Y)、妥当性判定回路726において妥当性判定が行われる(ステップS28)。
妥当性判定において正当性が肯定されたとき(ステップS29:Y)、デバイス鍵処理(ステップS30)を行い、正当性が否定されたとき(ステップS29:N)、暗号化/復号化装置700の機能が無効化されて(ステップS31)、一連の処理が終了する(エンド)。
図9及び図10に、図6のAESマクロ部710により行われる図8のデバイス鍵処理の動作フローの一例を示す。
まず、カウンタ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)、ステップS41に戻る。
こうしてカウント値が8を超えて鍵レジスタ767への格納が終了すると(ステップS46:N)、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 シーケンスコードの復号
次に、本実施形態におけるシーケンスコードについて説明する。
図11に、本実施形態におけるシーケンスコードの説明図を示す。
図5の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には、復号化処理されたシーケンスコードの記憶領域やデバイス鍵の記憶領域の他に、暗号化/復号化処理のテンポラリ領域が確保されている。シーケンスコードは、インデックスとシーケンスブロックとからなる。シーケンスコードの記憶領域には、一連の命令の並びが記述されたシーケンスブロックを指定するインデックスが複数種類、記憶されている。
図12に、インデックスとシーケンスブロックの一例を示す。
インデックスは、該インデックスが指定するシーケンスブロックの命令数と、該シーケンスブロックの先頭の命令の記憶領域を特定するためのオフセットアドレスとを含む。このようなインデックスにより指定されるシーケンスブロックは、命令列が順番に記憶されている。
各命令は、入力指定データ、鍵指定データ、出力指定データを含む。入力指定データは、RAM750の所定の領域を指定したり、ホスト600からの入力データを指定したり、直前の演算結果等を指定できる。鍵指定データは、予め決められたRAM750の記憶領域に格納された鍵のうち、どの鍵を使用するかを指定できる。出力指定データは、RAM750の所定の領域を指定したり、所定のレジスタを指定したりできる。従って、各命令により、入力指定データで指定された場所のデータに対し、鍵指定データで特定された鍵を用いて各命令に対応した処理を行って、出力指定データで指定された場所に処理結果を格納できる。
そのため、例えばホスト600によって1つのインデックスが指定されると、シーケンサ732は、そのインデックスで指定された記憶領域に記憶された命令を順次読み出し、各命令に対応した処理を行うことができる。こうすることで、ホスト600は、例えばホストからのコマンドによりインデックスを指定するだけで、簡単にシーケンスブロックの指定を変更できる。即ち、C2マクロ部730は、RAM750に展開されたシーケンスコードの中からホスト600が指定した処理を実行できる。そして、シーケンスコードの復号化処理において、複数のインデックスと、各インデックスに対応したシーケンスブロックの命令列とをRAM750に展開することで、C2マクロ部730における処理の変更、調整等が容易に行えるようになる。
2.3 CPRMへの適用例
次に、本実施形態の暗号化/復号化装置700を、SDメモリカードを用いたCPRMによる暗号化/復号化処理に適用した例について説明する。
図13に、CPRMによる暗号化/復号化処理のフローの一例を示す。
図13において暗号化/復号化装置700の電源が投入されて初期化されると、上述のように、まずシーケンスコード及びCPRMのデバイス鍵のダウンロードが行われる(ステップS60)。
そしてSDメモリカードの挿入の有無を監視し(ステップS62:N)、SDメモリカードの挿入が検出されたとき(ステップS62:Y)、認証と鍵交換処理が行われる(ステップS63)。
認証及び鍵交換が終了すると、SDメモリカード内のコンテンツデータの暗号化/復号化処理を行う(ステップS65)。その後、終了するまで(ステップS66:N)、処理を継続し、終了すると(ステップS66:Y)、一連の処理を終了する(エンド)。
図14に、図13のCPRMによる暗号化/復号化処理を行う暗号化/復号化装置700を模式的に示す。
暗号化/復号化装置700は、シーケンサ732、メモリ部としてのRAM750を含み、SDメモリカード900との間で認証処理を行った後、該SDメモリカード900に記録されたコンテンツの復号化処理を行ってRAM750に展開したり、RAM750のコンテンツデータの暗号化処理を行ってSDメモリカード900に格納したりする。
図15に、処理を実現するシーケンスコードの一例の概略説明図を示す。
例えば認証、鍵交換処理を行う際は、ホスト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 変形例
図16に、本実施形態の変形例における暗号化/復号化装置のハードウェア構成例のブロック図を示す。
図5の暗号化/復号化装置700では、暗号化/復号化回路としてC2マクロ部730を備えていたが、本実施形態の変形例では図5の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、820との間に設けられ、SDメモリカードI/F740と第1のC2マクロ部730との間のデータ転送、又はSDメモリカードI/F740と第2のC2マクロ部820との間のデータ転送を切り替えることができる。アービタ1020は、RAMI/F770と第1及び第2のC2マクロ部730、820との間に設けられる。アービタ1020は、第1及び第2のマクロ部730、820のRAM750に対するアクセス要求を調停し、第1及び第2のマクロ部730、820の1つのRAM750に対するアクセスを、RAMI/F770を介して実現させる。このような構成を有することで、ホスト600を介さずに、SDメモリカードI/F740と第1又は第2のC2マクロ部730、820との間でデータの転送が可能となる。この場合も、C2マクロ部730、820のそれぞれは、RAM750に展開されたシーケンスコードの中からホスト600が指定した処理を実行できる。
そして、第2のC2マクロ部820でAKEを行い、第1のC2マクロ部730でコンテンツデータの暗号化/復号化処理を行うことが可能となる。或いは第1及び第2のC2マクロ部730、820の一方でコンテンツの暗号化処理を行い、第1及び第2のC2マクロ部730、820の他方でコンテンツの復号化処理を行うことができる。
この場合、図示しない妥当性判定回路において妥当性確認値と妥当性チェック値とが不一致のとき(正当性が否定されたとき)、暗号化/復号化装置1000のハードウェアリセットがアクティブになるまで、(例えば図5のイネーブル信号EN21、EN22により)第1及び第2のC2マクロ部730、820の動作を停止させることが望ましい。こうすることで、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。不正に正当性が肯定されてしまうと、デバイス鍵やシーケンスコードの秘匿性が低下してしまう。
3. 電子機器
図17に、本実施形態又はその変形例における暗号化/復号化装置が適用された電子機器の構成例のブロック図を示す。
電子機器1200は、不揮発性メモリ1210、ホスト1220、暗号化/復号化装置1230、記録媒体接続部1240を含む。不揮発性メモリ1210は、図5のフラッシュROM500の機能を実現する。ホスト1220は、図5のホスト600の機能を実現する。暗号化/復号化装置1230は、図5の暗号化/復号化装置700又は図16の暗号化/復号化装置1000の機能を実現する。記録媒体接続部1240は、SDメモリカード等の記録媒体を電気的に接続するための物理的な形状及び電気的なインタフェース仕様を有する。
まず、暗号化/復号化装置1230では、不揮発性メモリ1210に格納されたシーケンスコード及びデバイス鍵を、上述のように展開する。その後、記録媒体1250が記録媒体接続部1240に接続されたとき、例えば記録媒体1250に格納されたコンテンツデータがホスト1220に読み出されて、図示しないRAMに格納される。そして、暗号化/復号化装置1230が、該RAMからコンテンツデータを読み出しながら、既に展開したシーケンスコード及びデバイス鍵を用いて復号化処理を行う。この復号化処理されたコンテンツデータは、電子機器1200の図示しない再生装置において再生される。
また電子機器1200の図示しない録音録画装置により取り込まれたコンテンツデータは、暗号化/復号化装置1230により、既に展開されたシーケンスコード及びデバイス鍵を用いて暗号化処理され、ホスト1220の図示しないRAMに書き込まれる。その後、ホスト1220は、該RAMから暗号化処理されたコンテンツデータを読み出し、該コンテンツデータを、記録媒体接続部1240を介して記録媒体1250に書き込む。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
本実施形態の暗号化/復号化装置の原理的な構成図。 本実施形態の暗号化/復号化システムの構成例のブロック図。 デバイス鍵用事前共有鍵生成装置の機能ブロックの例を示す図。 暗号化/復号化装置のうちシーケンスコード及びデバイス鍵の復号化処理に関わるブロック構成の一例を示す図。 図4の暗号化/復号化装置のハードウェア構成例のブロック図。 図5のAESマクロ部のハードウェア構成例を示す図。 図6のAESマクロ部のシーケンスコードの復号処理の動作フローの一例を示す図。 図6のAESマクロ部のシーケンスコードの復号処理の動作フローの一例を示す図。 図6のAESマクロ部により行われる図8のデバイス鍵処理の動作フローの一例を示す図。 図6のAESマクロ部により行われる図8のデバイス鍵処理の動作フローの一例を示す図。 本実施形態におけるシーケンスコードの説明図。 インデックスとシーケンスブロックの一例を示す図。 CPRMによる暗号化/復号化処理のフローの一例を示す図。 図13のCPRMによる暗号化/復号化処理を行う暗号化/復号化装置の模式的な構成図。 シーケンスコードの一例の説明図。 本実施形態の変形例における暗号化/復号化装置のハードウェア構成例のブロック図。 本実施形態における電子機器の構成例のブロック図。
符号の説明
10、700 暗号化/復号化装置、 12 復号化回路、 14 メモリ、
16 暗号化/復号化回路、 20 外部メモリ、 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 (12)

  1. 第1のアルゴリズムに従ってコンテンツデータの暗号化/復号化処理を行う暗号化/復号化回路と、
    第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化/復号化処理用の暗号化/復号化情報が該外部メモリから読み出された場合に、該暗号化/復号化情報に対し前記第2のアルゴリズムに従って復号化処理を行う復号化回路と、
    前記復号化回路によって復号化された前記暗号化/復号化情報を記憶するメモリとを含み、
    前記暗号化/復号化回路が、
    コンテンツデータに対し、前記メモリに記憶された暗号化/復号化情報に基づいて前記暗号化/復号化処理を行うことを特徴とする暗号化/復号化装置。
  2. 請求項1において、
    前記暗号化/復号化情報が、
    暗号化対象情報と事前共有鍵と乱数データとに基づいて生成され、
    前記暗号化/復号化情報と前記乱数データとが対となって前記外部メモリから読み出され、
    前記復号化回路が、
    前記暗号化/復号化情報の前記事前共有鍵に基づいて生成された共有鍵と前記乱数データとを用いて前記復号化処理を行い、
    前記暗号化/復号化回路が、
    前記復号化回路によって復号化された前記暗号化対象情報に基づいて前記暗号化/復号化処理を行うことを特徴とする暗号化/復号化装置。
  3. 請求項2において、
    前記共有鍵は、
    前記乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、
    前記復号化回路が、
    前記乱数データの一部に基づいて、予め暗号化/復号化装置内に用意された複数の事前共有鍵を用いて生成された共有鍵を用いて前記復号化処理を行うことを特徴とする暗号化/復号化装置。
  4. 請求項1乃至3のいずれかにおいて、
    前記暗号化/復号化情報が、
    前記暗号化/復号化処理の制御プログラム情報を含み、
    前記暗号化/復号化回路が、
    該制御プログラム情報に基づいて前記暗号化/復号化処理を行うことを特徴とする暗号化/復号化装置。
  5. 請求項4において、
    前記制御プログラム情報の暗号化/復号化処理用の制御プログラム情報用事前共有鍵が保持される制御プログラム情報用事前共有鍵保持レジスタを含み、
    前記暗号化/復号化情報が、
    第1の乱数データと前記暗号化/復号化処理の制御プログラム情報とに基づいて生成された第1の処理情報と、
    第2の乱数データとデバイス鍵とに基づいて生成された第2の処理情報とを含み、
    前記復号化回路が、
    前記制御プログラム情報用事前共有鍵保持レジスタに保持された前記制御プログラム情報用事前共有鍵を用いて前記制御プログラム情報の復号化処理を行うと共に、
    前記第1の乱数データに基づいて複数のデバイス鍵用事前供給鍵を用いて生成されたデバイス鍵用共有鍵を用いて前記デバイス鍵の復号化処理を行うことを特徴とする暗号化/復号化装置。
  6. 請求項1乃至5のいずれかにおいて、
    前記外部メモリからデータの読み出しを行うホストとのインタフェース処理を行うホストインタフェースと、
    前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体とのインタフェース処理を行う記録媒体インタフェースとを含み、
    前記復号化回路が、
    前記ホストインタフェースを介して入力された暗号化/復号化情報に対し前記復号化処理を行い、
    前記暗号化/復号化回路が、
    前記記録媒体インタフェースを介して入力された前記コンテンツデータに対して該暗号化/復号化情報に基づいて復号化処理を行い、又は該暗号化/復号化情報に基づいて暗号化処理されたコンテンツデータを前記記録媒体インタフェースを介して前記記録媒体に出力することを特徴とする暗号化/復号化装置。
  7. ホストと、
    請求項1乃至6のいずれか記載の暗号化/復号化装置と、
    前記第2のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体に接続するための媒体接続部とを含むことを特徴とする電子機器。
  8. 外部メモリに記憶されている暗号化/復号化情報に基づいてコンテンツデータを保護するための暗号化/復号化方法であって、
    第2のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化/復号化情報を読み出して、該暗号化/復号化情報に対し前記第2のアルゴリズムに従って復号化処理を行い、
    該復号化処理において復号化された前記暗号化/復号化情報を内蔵するメモリに記憶し、
    コンテンツデータに対し、前記メモリに記憶された暗号化/復号化情報に基づいて、第1のアルゴリズムに従った暗号化/復号化処理を行うことを特徴とする暗号化/復号化方法。
  9. 請求項8において、
    前記暗号化/復号化情報が、
    暗号化対象情報と事前共有鍵と乱数データとに基づいて生成され、
    前記暗号化/復号化情報と前記乱数データとが対となって前記外部メモリから読み出され、
    前記暗号化/復号化情報の前記事前共有鍵に基づいて生成された共有鍵と前記乱数データとに基づいて前記復号化処理を行い、復号化された前記暗号化/復号化情報の前記暗号化対象情報に基づいて前記暗号化/復号化処理を行うことを特徴とする暗号化/復号化方法。
  10. 請求項9において、
    前記共有鍵は、
    前記乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、
    前記復号化回路が、
    前記乱数データの一部に基づいて、複数の事前共有鍵を用いて生成された共有鍵を用いて前記復号化処理を行うことを特徴とする暗号化/復号化方法。
  11. 請求項8乃至10のいずれかにおいて、
    前記暗号化/復号化情報が、
    前記暗号化/復号化処理の制御プログラム情報を含み、
    該制御プログラム情報に基づいて前記暗号化/復号化処理を行うことを特徴とする暗号化/復号化方法。
  12. 請求項11において、
    予め前記制御プログラム情報の暗号化/復号化処理用の制御プログラム情報用事前共有鍵共有鍵を保持し、
    前記暗号化/復号化情報が、
    第1の乱数データと前記暗号化/復号化処理の制御プログラム情報とに基づいて生成された第1の処理情報と、
    第2の乱数データとデバイス鍵とに基づいて生成された第2の処理情報とを含み、
    前記制御プログラム情報用事前共有鍵を用いて前記制御プログラム情報の復号化処理を行うと共に、前記第1の乱数データに基づいて複数のデバイス鍵用事前共有鍵を用いて生成されたデバイス鍵用共有鍵を用いて前記デバイス鍵の復号化処理を行うことを特徴とする暗号化/復号化方法。
JP2005260635A 2005-09-08 2005-09-08 暗号化/復号化装置、電子機器及び暗号化/復号化方法 Withdrawn JP2007074505A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=37935548

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2007074505A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008259170A (ja) * 2007-03-31 2008-10-23 Lenovo Singapore Pte Ltd 磁気記録装置、暗号化方法、および暗号化用プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008259170A (ja) * 2007-03-31 2008-10-23 Lenovo Singapore Pte Ltd 磁気記録装置、暗号化方法、および暗号化用プログラム
JP4635038B2 (ja) * 2007-03-31 2011-02-16 レノボ・シンガポール・プライベート・リミテッド 磁気記録装置、暗号化方法、および暗号化用プログラム

Similar Documents

Publication Publication Date Title
US20040172538A1 (en) Information processing with data storage
US20090125726A1 (en) Method and Apparatus of Providing the Security and Error Correction Capability for Memory Storage Devices
JP5417092B2 (ja) 暗号化属性を用いて高速化された暗号法
US20040177257A1 (en) Data processing device and data processing method
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
JPH11272561A (ja) 記憶媒体のデータ保護方法、その装置及びその記憶媒体
JP2006277411A (ja) プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP2007213478A (ja) 半導体メモリおよびデータアクセス方法
WO2006013924A1 (ja) 記録再生装置、記録媒体処理装置、再生装置、記録媒体、コンテンツ記録再生システム、及びコンテンツ記録再生方法
WO2013031270A1 (en) Authenticator, authenticatee and authentication method
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524969A5 (ja)
US7657034B2 (en) Data encryption in a symmetric multiprocessor electronic apparatus
US20100241870A1 (en) Control device, storage device, data leakage preventing method
JP2004199688A (ja) 安全なドライバ
JP2007108833A (ja) 複数パスワード記憶装置及びパスワード管理方法
JP2007074507A (ja) 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法
JP2007074506A (ja) 暗号化/復号化装置、電子機器及び暗号化/復号化装置の制御方法
JP2007336446A (ja) データ暗号化装置
JP2004199689A (ja) 不安全なpciバスを介した安全なメディア・カードの運用
JP2007074505A (ja) 暗号化/復号化装置、電子機器及び暗号化/復号化方法
JPH11205304A (ja) プログラムの不正使用防止方法
JP2007193800A (ja) カード認証システムのセキュリティレベルを向上させる装置及び方法
JP2006330126A (ja) 暗号化処理方法、および復号化処理方法
JP4738546B2 (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