(57)【要約】【課題】  暗号化及び復号化処理の負荷を分担することでスループットを向上させる暗号化／復号化装置、通信コントローラ及び電子機器を提供する。【解決手段】  暗号化／復号化装置１００は、入力データ及び出力データが格納される記憶部１１０、第１の暗号化及び復号化処理を行う第１の暗号化／復号化処理部１２０、第２の暗号化及び復号化処理を行う第２の暗号化／復号化処理部１３０を含む。入力データに対し第１及び第２の暗号化／復号化処理部１２０、１３０の一方が行った第１又は第２の復号化処理後の復号化データを記憶部１１０に格納する。復号化データに対し第１及び第２の暗号化／復号化処理部１２０、１３０の他方が行った第１又は第２の暗号化処理後のデータを出力データとして記憶部１１０に格納する。記憶部１１０の復号化データの記憶領域が、暗号化／復号化装置１００の外部からアクセス不可となるように構成される。【選択図】      図７
2006217369.tif 000002
【特許請求の範囲】
【請求項１】
第１の暗号化処理後の入力データが入力され第２の暗号化処理後の出力データを出力し、或いは前記第２の暗号化処理後の入力データが入力され前記第１の暗号化処理後の出力データを出力するための暗号化／復号化装置であって、
前記入力データ及び前記出力データを記憶するための記憶部と、
前記第１の暗号化処理及び第１の復号化処理を行う第１の暗号化／復号化処理部と、
前記第２の暗号化処理及び第２の復号化処理を行う第２の暗号化／復号化処理部とを含み、
前記記憶部から読み出された前記入力データに対して前記第１及び第２の暗号化／復号化処理部の一方が行った前記第１又は第２の復号化処理後の復号化データを前記記憶部に格納すると共に、
前記記憶部から読み出された前記第１又は第２の復号化処理後の前記復号化データに対して前記第１及び第２の暗号化／復号化処理部の他方が行った前記第１又は第２の暗号化処理後のデータを前記出力データとして前記記憶部に格納し、
前記記憶部の記憶領域のうち前記復号化データの記憶領域が、前記暗号化／復号化装置の外部からアクセス不可となるように構成されることを特徴とする暗号化／復号化装置。
【請求項２】
第１の暗号化処理後の入力データが入力され第２の暗号化処理後の出力データを出力し、或いは前記第２の暗号化処理後の入力データが入力され前記第１の暗号化処理後の出力データを出力するための暗号化／復号化装置であって、
前記暗号化／復号化装置の外部からアクセス可能な記憶部であって前記入力データを記憶するための第１の記憶部と、
前記第１の暗号化処理及び第１の復号化処理を行う第１の暗号化／復号化処理部と、
前記第２の暗号化処理及び第２の復号化処理を行う第２の暗号化／復号化処理部と、
前記暗号化／復号化装置の外部からアクセス不可能な記憶部であって前記入力データに対する前記第１又は第２の復号化処理後の復号化データを記憶するための第２の記憶部と、
前記暗号化／復号化装置の外部からアクセス可能な記憶部であって前記出力データを記憶するための第３の記憶部とを含み、
前記入力データに対して前記第１及び第２の暗号化／復号化処理部の一方が行った前記第１又は第２の復号化処理後の前記復号化データを前記第２の記憶部に格納すると共に、
前記第１又は第２の復号化処理後の前記復号化データに対して前記第１及び第２の暗号化／復号化処理部の他方が行った前記第１又は第２の暗号化処理後のデータを前記出力データとして前記第３の記憶部に格納することを特徴とする暗号化／復号化装置。
【請求項３】
請求項２において、
前記第１〜第３の記憶部の各記憶部が、
１つのメモリ空間内に分割された記憶領域に割り当てられ、
各記憶領域が、
可変であることを特徴とする暗号化／復号化装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記入力データに付加されたヘッダ情報を解析するヘッダ解析部を含み、
前記入力データに対し前記第１及び第２の復号化処理のうち前記ヘッダ情報に対応した復号化処理、及び前記復号化データに対し前記第１及び第２の暗号化処理のうち前記ヘッダ情報に対応した暗号化処理の少なくとも１つの処理を行うことを特徴とする暗号化／復号化装置。
【請求項５】
請求項４において、
前記ヘッダ情報に基づいて第１の動作モードが指定されたとき、
前記第１の暗号化／復号化処理部が、前記入力データに対して行った前記第１の復号化処理後のデータを前記復号化データとして生成し、
前記第２の暗号化／復号化処理部が、前記復号化データに対して行った前記第２の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化／復号化装置。
【請求項６】
請求項４又は５において、
前記ヘッダ情報に基づいて第２の動作モードが指定されたとき、
前記第２の暗号化／復号化処理部が、前記入力データに対して行った前記第２の復号化処理後のデータを前記復号化データとして生成し、
前記第１の暗号化／復号化処理部が、前記復号化データに対して行った前記第１の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化／復号化装置。
【請求項７】
請求項４乃至６のいずれかにおいて、
前記ヘッダ情報に基づいて第３の動作モードが指定されたとき、
前記第２の暗号化／復号化処理部が、前記入力データに対して行った前記第２の復号化処理後のデータを前記出力データとして生成することを特徴とする暗号化／復号化装置。
【請求項８】
請求項４乃至７のいずれかにおいて、
前記ヘッダ情報に基づいて第４の動作モードが指定されたとき、
前記第１の暗号化／復号化処理部が、前記入力データに対して行った前記第１の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化／復号化装置。
【請求項９】
請求項４乃至８のいずれかにおいて、
前記ヘッダ情報に基づいて第５の動作モードが指定されたとき、
前記第２の暗号化／復号化処理部が、前記入力データに対して行った前記第２の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化／復号化装置。
【請求項１０】
請求項４乃至９のいずれかにおいて、
前記ヘッダ情報に基づいて第６の動作モードが指定されたとき、
前記第１の暗号化／復号化処理部が、前記入力データに対して行った前記第１の復号化処理後のデータを前記出力データとして生成することを特徴とする暗号化／復号化装置。
【請求項１１】
請求項１乃至１０のいずれかにおいて、
前記暗号化／復号化装置の動作を制御するためのコントローラと、
前記第１及び第２の暗号化処理を行うための暗号鍵と前記第１及び第２の復号化処理を行うための復号鍵とを生成するためのデータを有するプログラムであって前記コントローラの動作を指定するためのプログラムを格納するためのプログラムメモリとを含み、
前記復号化データがプログラムデータとして前記プログラムメモリに転送された後、前記コントローラが前記プログラムデータに基づいて前記暗号化／復号化装置の動作を制御することを特徴とする暗号化／復号化装置。
【請求項１２】
請求項１乃至１１のいずれかにおいて、
前記第１の暗号化／復号化処理部が、
ＡＥＳ（Advanced Encryption Standard）に準拠した暗号化処理及び復号化処理を行い、
前記第２の暗号化／復号化処理部が、
ＤＥＳ（Data Encryption Standard）に準拠した暗号化処理及び復号化処理を行うことを特徴とする暗号化／復号化装置。
【請求項１３】
ネットワークを介してレイヤ構造の通信データを送受信するための通信コントローラであって、
前記通信データの送信処理及び受信処理を行う通信処理部と、
請求項１乃至１２のいずれか記載の暗号化／復号化装置とを含み、
前記通信データの受信時には、
前記通信処理部によって解析されたヘッダ情報のレイヤより上位のレイヤの前記第１の暗号化処理後のデータを前記入力データとして前記暗号化／復号化装置が前記第１の復号化処理した後に前記第２の暗号化処理したデータを前記出力データとして出力し、
前記通信データの送信時には、
送信データを前記入力データとして前記暗号化／復号化装置が前記第２の復号化処理した後に前記第１の暗号化処理したデータを前記出力データとして出力し、前記通信処理部が該出力データに、上位レイヤのヘッダ情報を付加して前記ネットワークに送信することを特徴とする通信コントローラ。
【請求項１４】
請求項１３記載の通信コントローラと、
前記第２の暗号化処理及び第２の復号化処理を行う処理部とを含み、
前記通信データの受信時には、
前記通信コントローラが、前記処理部に対して前記第２の暗号化処理後のデータを供給し、
前記通信データの送信時には、
前記処理部が、前記第２の暗号化処理後のデータを前記入力データとして前記通信コントローラに供給することを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化／復号化装置、通信コントローラ及び電子機器に関する。
【背景技術】
【０００２】
近年、ＭＰＥＧ（Moving Picture Experts Group、より具体的にはＭＰＥＧ２）ストリームを配信するＢＳデジタル放送等のデジタル放送が脚光を浴び、デジタル放送チューナやデジタル放送のコンテンツの記録／再生装置等の電子機器の普及が著しい。このため、コンテンツの内容がデジタル的に不正に複製されるのを防止すべく、コンテンツの複製防止技術が導入されている。
【０００３】
デジタル放送チューナと記録／再生装置は、例えばＩＥＥＥ（Institute of Electrical and Electronics Engineers）１３９４に代表される汎用高速シリアルインタフェースを介して接続される。ＩＥＥＥ１３９４向けの複製防止技術として、例えばＤＴＣＰ（Digital Transmission Content Protect）規格が策定されている。現在では、このＤＴＣＰ規格が、インターネットの普及等に伴うＡＶネットワークの複製防止技術として利用されている（例えばＤＴＣＰｏｖｅｒＩＰ）。
【０００４】
このようなＡＶネットワークにおけるコンテンツを保護する装置として、例えば特許文献１〜特許文献２に開示されている装置がある。特許文献１には、入力パケットのうち、著作権保護が必要なパケットのペイロードについては既に暗号化されているのでそのまま装置外部のＰＣＩバスに出力し、著作権保護が不要なパケットについてはペイロードを暗号化した後に該ＰＣＩバスに出力する暗号化手段を含む装置が開示されている。特許文献２には、入力パケットをヘッダとペイロードとに分割し、該ペイロードを暗号化した後に、該ヘッダと暗号化されたペイロードとを合成して装置外部の記録媒体に記録させる装置が開示されている。
【特許文献１】特開２００１−８６４８１号公報
【特許文献２】特開２００３−３１９３２２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述のように、ＡＶネットワークの複製防止技術として利用されるＤＴＣＰ規格では、ＤＥＳ（Data Encryption Standard）に代わる米国の次世代標準化暗号化アルゴリズムであるＡＥＳ（Advanced Encryption Standard）を採用する必要がある。ＡＥＳは、ＤＥＳに比べて解読されにくい。
【０００６】
しかしながら、ＡＥＳの暗号化アルゴリズムに従った暗号化及び復号化処理の負荷は、ＤＥＳの暗号化アルゴリズムに従った暗号化及び復号化処理の負荷より重い。そのためＡＥＳの暗号化及び復号化処理をソフトウェアで実現した場合、スループットの低下を招く。従って、スループットを向上させるためにはＡＥＳの暗号化処理及び復号化処理をハードウェアで実現することが望ましい。
【０００７】
その一方、パケットを復号化したデータを装置の外部に出力すると、コンテンツの内容がデジタル的に不正に複製される恐れがあり、装置外部では暗号化した状態で出力する必要がある。
【０００８】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その第１の目的とするところは、暗号化及び復号化処理の負荷を分担することでスループットを向上させる暗号化／復号化装置、通信コントローラ及び電子機器を提供することにある。
【０００９】
また本発明の第２の目的は、不正に複製されることなくコンテンツの暗号化及び復号化処理を高速に実現する暗号化／復号化装置、通信コントローラ及び電子機器を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために本発明は、
第１の暗号化処理後の入力データが入力され第２の暗号化処理後の出力データを出力し、或いは前記第２の暗号化処理後の入力データが入力され前記第１の暗号化処理後の出力データを出力するための暗号化／復号化装置であって、
前記入力データ及び前記出力データを記憶するための記憶部と、
前記第１の暗号化処理及び第１の復号化処理を行う第１の暗号化／復号化処理部と、
前記第２の暗号化処理及び第２の復号化処理を行う第２の暗号化／復号化処理部とを含み、
前記記憶部から読み出された前記入力データに対して前記第１及び第２の暗号化／復号化処理部の一方が行った前記第１又は第２の復号化処理後の復号化データを前記記憶部に格納すると共に、
前記記憶部から読み出された前記第１又は第２の復号化処理後の前記復号化データに対して前記第１及び第２の暗号化／復号化処理部の他方が行った前記第１又は第２の暗号化処理後のデータを前記出力データとして前記記憶部に格納し、
前記記憶部の記憶領域のうち前記復号化データの記憶領域が、前記暗号化／復号化装置の外部からアクセス不可となるように構成される暗号化／復号化装置に関係する。
【００１１】
本発明においては、暗号化／復号化装置の入力データ及び出力データが、第１又は第２の暗号化処理後のデータとなる。その際、入力データを第１又は第２の復号化処理した後の復号化データは、暗号化／復号化装置の外部からアクセス不可の記憶領域にバッファリングされる。従って、本発明によれば、暗号化／復号化装置に対して入力データを設定する処理部において、第１及び第２の暗号化／復号化処理部の処理負荷を軽減できると共に、該処理部との間で暗号化された状態でデータをやり取りできる。そのため、データがデジタル的に不正に複製されることなく、処理部のスループットの向上に貢献できるようになり、コンテンツの暗号化及び復号化処理を高速に実現する暗号化／復号化装置を提供できるようになる。
【００１２】
また本発明は、
第１の暗号化処理後の入力データが入力され第２の暗号化処理後の出力データを出力し、或いは前記第２の暗号化処理後の入力データが入力され前記第１の暗号化処理後の出力データを出力するための暗号化／復号化装置であって、
前記暗号化／復号化装置の外部からアクセス可能な記憶部であって前記入力データを記憶するための第１の記憶部と、
前記第１の暗号化処理及び第１の復号化処理を行う第１の暗号化／復号化処理部と、
前記第２の暗号化処理及び第２の復号化処理を行う第２の暗号化／復号化処理部と、
前記暗号化／復号化装置の外部からアクセス不可能な記憶部であって前記入力データに対する前記第１又は第２の復号化処理後の復号化データを記憶するための第２の記憶部と、
前記暗号化／復号化装置の外部からアクセス可能な記憶部であって前記出力データを記憶するための第３の記憶部とを含み、
前記入力データに対して前記第１及び第２の暗号化／復号化処理部の一方が行った前記第１又は第２の復号化処理後の前記復号化データを前記第２の記憶部に格納すると共に、
前記第１又は第２の復号化処理後の前記復号化データに対して前記第１及び第２の暗号化／復号化処理部の他方が行った前記第１又は第２の暗号化処理後のデータを前記出力データとして前記第３の記憶部に格納する暗号化／復号化装置に関係する。
【００１３】
本発明においては、暗号化／復号化装置の入力データ及び出力データが、第１又は第２の暗号化処理後のデータとなる。その際、入力データを第１又は第２の復号化処理した後の復号化データは、暗号化／復号化装置の外部からアクセス不可の第２の記憶部にバッファリングされる。従って、本発明によれば、暗号化／復号化装置に対して入力データを設定する処理部において、第１及び第２の暗号化／復号化処理部の処理負荷を軽減できると共に、該処理部との間で暗号化された状態でデータをやり取りできる。そのため、データがデジタル的に不正に複製されることなく、処理部のスループットの向上に貢献できるようになり、コンテンツの暗号化及び復号化処理を高速に実現する暗号化／復号化装置を提供できるようになる。
【００１４】
また本発明に係る暗号化／復号化装置では、
前記第１〜第３の記憶部の各記憶部が、
１つのメモリ空間内に分割された記憶領域に割り当てられ、
各記憶領域が、
可変であってもよい。
【００１５】
本発明によれば、第１の暗号化及び復号化処理、第２の暗号化及び復号化処理の処理単位に応じて各記憶部の記憶領域を設定できるようになるので、記憶部の記憶領域を有効活用できるようになる。
【００１６】
また本発明に係る暗号化／復号化装置では、
前記入力データに付加されたヘッダ情報を解析するヘッダ解析部を含み、
前記入力データに対し前記第１及び第２の復号化処理のうち前記ヘッダ情報に対応した復号化処理、及び前記復号化データに対し前記第１及び第２の暗号化処理のうち前記ヘッダ情報に対応した暗号化処理の少なくとも１つの処理を行うことができる。
【００１７】
本発明によれば、入力データに付加されたヘッダ情報に基づいて、暗号化処理及び復号化処理の制御を行うことができるようになるので、暗号化／復号化装置の構成及び制御の簡素化を図ることができるようになる。
【００１８】
また本発明に係る暗号化／復号化装置では、
前記ヘッダ情報に基づいて第１の動作モードが指定されたとき、
前記第１の暗号化／復号化処理部が、前記入力データに対して行った前記第１の復号化処理後のデータを前記復号化データとして生成し、
前記第２の暗号化／復号化処理部が、前記復号化データに対して行った前記第２の暗号化処理後のデータを前記出力データとして生成することができる。
【００１９】
本発明によれば、第１の暗号化処理後のデータを入力データとし、第２の暗号化処理後のデータを出力データとすることができるので、第１の暗号化処理から第２の暗号化処理への暗号化方式のブリッジ機能を高速に実現できる暗号化／復号化装置を提供できるようになる。
【００２０】
また本発明に係る暗号化／復号化装置では、
前記ヘッダ情報に基づいて第２の動作モードが指定されたとき、
前記第２の暗号化／復号化処理部が、前記入力データに対して行った前記第２の復号化処理後のデータを前記復号化データとして生成し、
前記第１の暗号化／復号化処理部が、前記復号化データに対して行った前記第１の暗号化処理後のデータを前記出力データとして生成することができる。
【００２１】
本発明によれば、第２の暗号化処理後のデータを入力データとし、第１の暗号化処理後のデータを出力データとすることができるので、第２の暗号化処理から第１の暗号化処理への暗号化方式のブリッジ機能を高速に実現できる暗号化／復号化装置を提供できるようになる。
【００２２】
また本発明に係る暗号化／復号化装置では、
前記ヘッダ情報に基づいて第３の動作モードが指定されたとき、
前記第２の暗号化／復号化処理部が、前記入力データに対して行った前記第２の復号化処理後のデータを前記出力データとして生成することができる。
【００２３】
本発明によれば、第２の復号化処理前のデータを入力データとし、第２の復号化処理後のデータを出力データとすることができるので、第２の復号化処理を行う復号器の機能を高速に実現できる暗号化／復号化装置を提供できるようになる。
【００２４】
また本発明に係る暗号化／復号化装置では、
前記ヘッダ情報に基づいて第４の動作モードが指定されたとき、
前記第１の暗号化／復号化処理部が、前記入力データに対して行った前記第１の暗号化処理後のデータを前記出力データとして生成することができる。
【００２５】
本発明によれば、第１の暗号化処理前のデータを入力データとし、第１の暗号化処理後のデータを出力データとすることができるので、第１の暗号化処理を行う暗号器の機能を高速に実現できる暗号化／復号化装置を提供できるようになる。
【００２６】
また本発明に係る暗号化／復号化装置では、
前記ヘッダ情報に基づいて第５の動作モードが指定されたとき、
前記第２の暗号化／復号化処理部が、前記入力データに対して行った前記第２の暗号化処理後のデータを前記出力データとして生成することができる。
【００２７】
本発明によれば、第２の暗号化処理前のデータを入力データとし、第２の暗号化処理後のデータを出力データとすることができるので、第２の暗号化処理を行う暗号器の機能を高速に実現できる暗号化／復号化装置を提供できるようになる。
【００２８】
また本発明に係る暗号化／復号化装置では、
前記ヘッダ情報に基づいて第６の動作モードが指定されたとき、
前記第１の暗号化／復号化処理部が、前記入力データに対して行った前記第１の復号化処理後のデータを前記出力データとして生成することができる。
【００２９】
本発明によれば、第１の復号化処理前のデータを入力データとし、第１の復号化処理後のデータを出力データとすることができるので、第１の復号化処理を行う復号器の機能を高速に実現できる暗号化／復号化装置を提供できるようになる。
【００３０】
また本発明に係る暗号化／復号化装置では、
前記暗号化／復号化装置の動作を制御するためのコントローラと、
前記第１及び第２の暗号化処理を行うための暗号鍵と前記第１及び第２の復号化処理を行うための復号鍵とを生成するためのデータを有するプログラムであって前記コントローラの動作を指定するためのプログラムを格納するためのプログラムメモリとを含み、
前記復号化データがプログラムデータとして前記プログラムメモリに転送された後、前記コントローラが前記プログラムデータに基づいて前記暗号化／復号化装置の動作を制御することができる。
【００３１】
本発明によれば、プログラムデータを暗号化した状態でプログラムメモリに転送できるため、秘匿性を低下させることなく制御可能な暗号化／復号化装置を提供できるようになる。
【００３２】
また本発明に係る暗号化／復号化装置では、
前記第１の暗号化／復号化処理部が、
ＡＥＳ（Advanced Encryption Standard）に準拠した暗号化処理及び復号化処理を行い、
前記第２の暗号化／復号化処理部が、
ＤＥＳ（Data Encryption Standard）に準拠した暗号化処理及び復号化処理を行うことができる。
【００３３】
また本発明は、
ネットワークを介してレイヤ構造の通信データを送受信するための通信コントローラであって、
前記通信データの送信処理及び受信処理を行う通信処理部と、
上記のいずれか記載の暗号化／復号化装置とを含み、
前記通信データの受信時には、
前記通信処理部によって解析されたヘッダ情報のレイヤより上位のレイヤの前記第１の暗号化処理後のデータを前記入力データとして前記暗号化／復号化装置が前記第１の復号化処理した後に前記第２の暗号化処理したデータを前記出力データとして出力し、
前記通信データの送信時には、
送信データを前記入力データとして前記暗号化／復号化装置が前記第２の復号化処理した後に前記第１の暗号化処理したデータを前記出力データとして出力し、前記通信処理部が該出力データに、上位レイヤのヘッダ情報を付加して前記ネットワークに送信する通信コントローラに関係する。
【００３４】
本発明によれば、不正に複製されることなくコンテンツの暗号化及び復号化処理を高速に実現する暗号化／復号化装置を含む通信コントローラを提供できる。
【００３５】
また本発明は、
上記記載の通信コントローラと、
前記第２の暗号化処理及び第２の復号化処理を行う処理部とを含み、
前記通信データの受信時には、
前記通信コントローラが、前記処理部に対して前記第２の暗号化処理後のデータを供給し、
前記通信データの送信時には、
前記処理部が、前記第２の暗号化処理後のデータを前記入力データとして前記通信コントローラに供給する電子機器に関係する。
【００３６】
本発明によれば、不正に複製されることなくコンテンツの暗号化及び復号化処理を高速に実現する通信コントローラを含む電子機器を提供できる。
【発明を実施するための最良の形態】
【００３７】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００３８】
１．  通信システム
図１に、本実施形態における暗号化／復号化装置を含む通信システムの構成例を示す。
【００３９】
この通信システムは、デジタルコンテンツを含む通信データが送受信される電子機器１０、２０を含む。電子機器１０及び電子機器２０は、ネットワークを介して接続される。コンテンツデータの不正な複製、不正な取り出し、又は不正な改ざんを防止するため、電子機器１０及び電子機器２０の間では、ＤＴＣＰ規格に準拠したアルゴリズムで暗号化されたコンテンツデータが送受信される。
【００４０】
図１では、例えば電子機器１０及び電子機器２０は、イーサネット（登録商標）ケーブルを介して接続され、レイヤ構造の通信データを送受信するが、無線ネットワークを介してレイヤ構造の通信データを送受信してもよい。電子機器２０の構成は、電子機器１０の構成と同様にすることができる。図１は、電子機器１０の構成要部のみを示している。
【００４１】
電子機器１０は、メインＣＰＵ（Central Processing Unit）（広義には処理部）４０、通信コントローラ（ネットワークコントローラ）５０を含む。メインＣＰＵ４０は、電子機器１０の全体の制御を司る。通信コントローラ５０は、イーサネット（登録商標）ケーブルを介して送受信される通信データの送信処理及び受信処理を行う。
【００４２】
通信コントローラ５０は、上位レイヤ解析部として動作するＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）処理部（広義には通信処理部）６０と暗号化／復号化装置（或いは暗号化復号化装置、暗号化・復号化装置）１００とを含む。
【００４３】
ＴＣＰ／ＩＰ処理部６０は、イーサネット（登録商標）ケーブルを介して伝送されるコンテンツデータに付加されたＴＣＰ／ＩＰヘッダの生成及び解析を行う。
【００４４】
暗号化／復号化装置１００は、ＤＴＣＰ規格で規定されたＡＥＳのアルゴリズムに従った暗号化及び復号化処理を行い、メインＣＰＵ４０の処理負荷を軽減させる。更に、暗号化された状態でメインＣＰＵ４０との間でコンテンツデータのやりとりを行うため、暗号化／復号化装置１００は、ＡＥＳの暗号化及び復号化処理の他に、メインＣＰＵ４０との間で予め取り決めたアルゴリズムの暗号化及び復号化処理も行うことができるようになっている。本実施形態における暗号化／復号化装置１００は、メインＣＰＵ４０との間でＤＥＳのアルゴリズムの暗号化及び復号化処理を行う。
【００４５】
１．１  ＤＴＣＰ
図２に、図１の電子機器１０、２０間で行われるＤＴＣＰ規格に準拠した処理の一例を示す。
【００４６】
ＤＴＣＰ規格では、まずソース（Source）と呼ばれるコンテンツデータの送信側の機器とシンク（Sink）と呼ばれるコンテンツデータの受信側の機器との間で認証処理を行い、認証された機器同士でコンテンツ鍵Ｋｃが共有される。
【００４７】
即ち、まず暗号化されたコンテンツデータを復号化するため、受信側機器が送信側機器に対して認証要求を行う（ＳＥＱ１）。
【００４８】
これに伴って、ソースとシンクとの間で機器認証が行われる（ＳＥＱ２）。この機器認証は、公開鍵暗号技術を用いたFull Authenticationと、共通鍵暗号技術を用いたRestricted Authenticationとがあり、コンテンツデータの複製制限情報や機器の特性等に応じて使い分けられ、例えば、イーサネット（登録商標）ケーブル上で転送されるコンテンツデータの保護に使用されるＤＴＣＰ ｏｖｅｒ ＩＰ規格ではFull Authenticationのみ使用することが許可されている。
【００４９】
機器認証の結果、両方の機器が互いに相手側の機器を認証した場合、鍵交換が行われる（ＳＥＱ３）。この結果、両方の機器の間で乱数Ｎｃと交換鍵Ｋｘとが共有される。そして各機器において次式に示す関数を用いて、それぞれ別個にコンテンツ鍵Ｋｃを生成する（ＳＥＱ４、ＳＥＱ５）。
【００５０】
Ｋｃ＝Ｆｕｎｃ（Ｋｘ，Ｃ，Ｎｃ）      ・・・（１）
ここで、各機器では、予め決められた関数Ｆｕｎｃ（）と定数Ｃとを用いて、コンテンツ鍵Ｋｃを求める。
【００５１】
その後、送信側機器が、コンテンツ鍵Ｋｃを用いて、ＡＥＳのアルゴリズムに従ってコンテンツデータの暗号化処理を行って、受信側機器に送信する（ＳＥＱ６、ＳＥＱ７）。受信側機器は、コンテンツ鍵Ｋｃを用いて、受信したコンテンツデータの復号化処理を行って、コンテンツデータを取得する。
【００５２】
その後は、同様に、認証されている機器同士で、コンテンツ鍵Ｋｃを用いてコンテンツデータの暗号化処理及び復号化処理を行って、コンテンツデータのやりとりを行う。
【００５３】
コンテンツデータは、ＰＣＰ（Protected Content Packets）単位で送信側機器と受信側機器との間で送受信され、このＰＣＰ単位で鍵更新が行われる。
【００５４】
従って、コンテンツ鍵Ｋｃを用いて暗号化処理及び復号化処理（ＳＥＱ９、ＳＥＱ１０）を行った後、ＰＣＰ単位のコンテンツデータの暗号化処理が終了すると、送信側機器は、コンテンツ鍵の更新を行う。また受信側機器においても、ＰＣＰ単位のコンテンツデータの復号化処理が終了すると、コンテンツ鍵の更新を行う。送信側機器及び受信側機器は、次式に示す関数を用いて、更新後のコンテンツ鍵Ｋｃ´を生成する（ＳＥＱ１１、ＳＥＱ１２）。
【００５５】
Ｋｃ´＝Ｆｕｎｃ（Ｋｘ，Ｃ，Ｎｃ＋１）      ・・・（２）
そして、再び、送信側機器が、コンテンツ鍵Ｋｃ´を用いて、ＡＥＳのアルゴリズムに従ってコンテンツデータの暗号化処理を行って、受信側機器に送信する（ＳＥＱ１３）。受信側機器は、コンテンツ鍵Ｋｃ´を用いて、受信したコンテンツデータの復号化処理を行って、コンテンツデータを取得する（ＳＥＱ１４）。
【００５６】
その後、同様に、認証されている機器同士で、ＰＣＰ単位でコンテンツ鍵Ｋｃ´を用いてコンテンツデータの暗号化処理及び復号化処理を行って、コンテンツデータのやりとりを行う。
【００５７】
なおＤＴＣＰ規格の詳細は、「Digital Transmission Content Protection Specification Volume1 (Informational Version)」(Revision 1.3, January 7, 2004)と「DTCP Volume 1 Supplement E Mapping DTCP to IP (Informational Version)」(Revision 1.0, November 24, 2003)に記載されている。
【００５８】
本実施形態において、上記の認証処理はメインＣＰＵ４０において行い、ＡＥＳの暗号化及び復号化処理（コンテンツ鍵の生成も含む）を暗号化／復号化装置１００において行うことができる。また、暗号化／復号化装置１００の内部又は外部にアクセラレータを設けて、該アクセラレータが該認証処理を行うようにしてもよい。
【００５９】
１．２  動作の概要
図３に、図１の通信システムにおける各種のパケットの構成例を示す。
【００６０】
イーサネット（登録商標）ケーブルを介して、受信側機器として電子機器１０で受信されたパケットは、ＡＥＳで暗号化されたコンテンツデータに、ＰＣＰヘッダ、ＨＴＴＰ（Hypertext Transfer Protocol）ヘッダ、ＴＣＰ／ＩＰヘッダが付加されたデータである。ＴＣＰ／ＩＰ処理部６０は、ＴＣＰ／ＩＰヘッダの宛先等の解析や、ＴＣＰ／ＩＰヘッダの生成及び付加する処理を行う。
【００６１】
メインＣＰＵ４０とＴＣＰ／ＩＰ処理部６０との間では、ＴＣＰ／ＩＰヘッダが付加されるレイヤより上位のレイヤのデータがやり取りされる。メインＣＰＵ４０は、ＨＴＴＰヘッダの解析や、ＨＴＴＰヘッダの生成及び付加する処理を行う。更にメインＣＰＵ４０は、暗号化／復号化装置１００の制御用のＣＯＭヘッダを生成する。またメインＣＰＵ４０は、ＰＣＰヘッダを拡張したＰＣＰＥｘｔｅｎｄヘッダを生成し、ＰＣＰＥｘｔｅｎｄヘッダ及びＣＯＭヘッダを暗号化されたコンテンツデータに付加したパケットデータを暗号化／復号化装置１００に供給する。ここで、ＰＣＰＥｘｔｅｎｄヘッダは、ＰＣＰヘッダの情報をそのまま含む。
【００６２】
暗号化／復号化装置１００は、メインＣＰＵ４０との間で暗号化された状態でコンテンツデータを受信するために、暗号化処理及び復号化処理を行う。より具体的には、メインＣＰＵ４０を介してＴＣＰ／ＩＰ処理部６０との間で送受信されるコンテンツデータについては、暗号化／復号化装置１００は、メインＣＰＵ４０との間で、ＤＴＣＰ規格で規定されたＡＥＳのアルゴリズムで暗号化処理されたコンテンツデータの送受信を行う。また、ＴＣＰ／ＩＰ処理部６０に供されることなく、メインＣＰＵ４０との間で送受信されるコンテンツデータについては、暗号化／復号化装置１００は、メインＣＰＵ４０との間で予め取り決められたアルゴリズムで暗号化処理されたコンテンツデータの送受信を行う。本実施形態では、暗号化／復号化装置１００とメインＣＰＵ４０との間で、予めＤＥＳのアルゴリズムを用いることが取り決められているものとする。
【００６３】
図４に、図１の通信システムにおけるコンテンツデータの受信処理の一例のシーケンスを示す。
【００６４】
まず、通信コントローラ５０では、ＡＥＳのアルゴリズムで暗号化されたコンテンツデータを含むパケットが受信される。ＴＣＰ／ＩＰ処理部６０は、該パケットのＴＣＰ／ＩＰヘッダの送信元や受信先等を解析し（ＳＥＱ３０）、自分宛のパケットであると判別すると、ＴＣＰ／ＩＰヘッダが付加されるレイヤより上位のレイヤのデータ、及び送信元や受信先を識別するための情報を、メインＣＰＵ４０に供給する（ＳＥＱ３１）。
【００６５】
メインＣＰＵ４０では、必要に応じてＨＴＴＰヘッダを解析し（ＳＥＱ３２）、ＴＣＰ／ＩＰ処理部６０より転送されてきた情報を基に、コンテンツデータの供給元を判別して、該供給元に対応した識別情報ＩＤを含むＣＯＭヘッダを生成し、ＰＣＰヘッダを含むＰＣＰＥｘｔｅｎｄヘッダを生成する。メインＣＰＵ４０は、コンテンツデータに、ＰＣＰＥｘｔｅｎｄヘッダ及びＣＯＭヘッダを付加し（ＳＥＱ３３）、通信コントローラ５０の暗号化／復号化装置１００に対して送信する（ＳＥＱ３４）。
【００６６】
暗号化／復号化装置１００では、ＣＯＭヘッダを解析し（ＳＥＱ３５）、その解析結果に基づいて、コンテンツデータをＡＥＳのアルゴリズムで復号化処理後（ＳＥＱ３６）、該復号化処理後のコンテンツデータをＤＥＳのアルゴリズムで暗号化処理する（ＳＥＱ３７）。ＡＥＳの復号化処理時には、ＣＯＭヘッダの識別情報ＩＤに応じた鍵が用いられる。ＤＥＳのアルゴリズムで暗号化処理されたコンテンツデータは、メインＣＰＵ４０に送信される（ＳＥＱ３８）。
【００６７】
メインＣＰＵ４０は、ＤＥＳのアルゴリズムで暗号化されたコンテンツデータを受信後、ＤＥＳのアルゴリズムで復号化処理する（ＳＥＱ３９）。
【００６８】
このように受信処理時には、メインＣＰＵ４０と通信コントローラ５０との間で、コンテンツデータは、ＡＥＳ又はＤＥＳのアルゴリズムで暗号化された状態でやり取りされる。そのため、不正にコンテンツデータが複製されることなく、電子機器２０から送信されたコンテンツデータを取得できる。
【００６９】
そして暗号化／復号化装置１００が、処理負荷の重いＡＥＳのアルゴリズムの復号化処理をメインＣＰＵ４０に代わって行う。メインＣＰＵ４０と暗号化／復号化装置１００との間で暗号化された状態でコンテンツデータをやり取りするが、メインＣＰＵ４０は、ＡＥＳのアルゴリズムより処理負荷の軽いＤＥＳのアルゴリズムで復号化処理を行うことができればよいので、メインＣＰＵ４０の処理能力を他の処理に割り当てることができ、スループットを向上させることができる。
【００７０】
加えて、暗号化／復号化装置１００は、ＤＴＣＰなどの規格に従った鍵生成、あるいは更新作業を担うことが可能であるため、メインＣＰＵは、暗号化／復号化装置１００との間でのみ鍵管理を行うだけでよい。
【００７１】
更に、通信コントローラ５０のＴＣＰ／ＩＰ処理部６０でＴＣＰ／ＩＰヘッダを解析後、一旦メインＣＰＵ４０に渡した後に、通信コントローラ５０の暗号化／復号化装置１００にＰＣＰヘッダ以降の上位のレイヤを戻すようにしている。こうすることで、ＨＴＴＰヘッダが付加されるレイヤとＰＣＰヘッダが付加されるレイヤとの間の中間レイヤが今後設けられた場合でも、ハードウェア構成を変更する必要がなく、柔軟に対応できる。なぜなら、ソフトウェアで実現されるメインＣＰＵ４０の機能に、ＨＴＴＰヘッダが付加されるレイヤのみならず、該中間レイヤの解析機能を容易に追加できるからである。
【００７２】
また、図１の構成例では、ＴＣＰ／ＩＰ処理部６０と暗号化／復号化装置１００が、通信コントローラ５０に含まれているが、ＴＣＰ／ＩＰ処理部６０と暗号化／復号化装置１００機能が、それぞれ独立した機能部として構成されていても良い。
【００７３】
図５に、図１の通信システムにおけるコンテンツデータの送信処理の一例のシーケンスを示す。
【００７４】
まず、メインＣＰＵ４０は、電子機器２０に送信したいコンテンツデータを、ＤＥＳのアルゴリズムで暗号化処理する（ＳＥＱ５０）。そして、メインＣＰＵ４０は、送信先に対応した識別情報ＩＤを指定すると共に、暗号化／復号化装置１００においてＤＥＳで復号化処理後にＡＥＳで暗号化処理を行う旨の制御情報を含むＰＣＰＥｘｔｅｎｄヘッダ、ＣＯＭヘッダを生成し、該ＰＣＰＥｘｔｅｎｄヘッダ及びＣＯＭヘッダが付加されたコンテンツデータを通信コントローラ５０に送信する（ＳＥＱ５１、ＳＥＱ５２）。
【００７５】
通信コントローラ５０の暗号化／復号化装置１００は、ＣＯＭヘッダを解析し（ＳＥＱ５３）、その解析結果に基づいて、コンテンツデータをＤＥＳのアルゴリズムで復号化処理後（ＳＥＱ５４）、該復号化処理後のコンテンツデータをＡＥＳのアルゴリズムで暗号化処理する（ＳＥＱ５５）。ＡＥＳの暗号化処理時には、ＣＯＭヘッダの識別情報ＩＤに応じた鍵が用いられる。ＡＥＳのアルゴリズムで暗号化処理されたコンテンツデータは、メインＣＰＵ４０に送信される（ＳＥＱ５６）。
【００７６】
メインＣＰＵ４０では、識別情報ＩＤに対応した送信先を指定したＨＴＴＰヘッダを作成し、ＰＣＰＥｘｔｅｎｄヘッダをＰＣＰヘッダに変換する。そして、ＰＣＰヘッダ、ＨＴＴＰヘッダをコンテンツデータに付加し（ＳＥＱ５７）、ＴＣＰ／ＩＰ処理部６０に送信する（ＳＥＱ５８）。
【００７７】
ＴＣＰ／ＩＰ処理部６０は、電子機器２０に対応した送信先を特定するＴＣＰ／ＩＰヘッダを付加し（ＳＥＱ５９）、電子機器２０に対して送信する。
【００７８】
このように送信処理時においても、メインＣＰＵ４０と通信コントローラ５０との間で、コンテンツデータは、ＡＥＳ又はＤＥＳのアルゴリズムで暗号化された状態でやり取りされる。そのため、不正にコンテンツデータが複製されることなく、コンテンツデータを電子機器２０に送信できる。
【００７９】
そして暗号化／復号化装置１００が、処理負荷の重いＡＥＳのアルゴリズムの暗号化処理をメインＣＰＵ４０に代わって行う。メインＣＰＵ４０と暗号化／復号化装置１００との間で暗号化された状態でコンテンツデータをやり取りするが、メインＣＰＵ４０は、ＡＥＳのアルゴリズムより処理負荷の軽いＤＥＳのアルゴリズムで暗号化処理を行うことができればよいので、メインＣＰＵ４０の処理能力を他の処理に割り当てることができ、スループットを向上させることができる。
【００８０】
更に、通信コントローラ５０の暗号化／復号化装置１００においてコンテンツデータをＡＥＳのアルゴリズムで暗号化して一旦メインＣＰＵ４０に渡した後に、通信コントローラ５０のＴＣＰ／ＩＰ処理部６０に戻すようにしている。こうすることで、ＨＴＴＰヘッダが付加されるレイヤとＰＣＰヘッダが付加されるレイヤとの間の中間レイヤが今後設けられた場合でも、ハードウェア構成を変更する必要がなく、柔軟に対応できる。なぜなら、ソフトウェアで実現されるメインＣＰＵ４０の機能に、ＨＴＴＰヘッダが付加されるレイヤのみならず、該中間レイヤのヘッダの生成及び追加機能を容易に追加できるからである。
【００８１】
なおメインＣＰＵ４０と暗号化／復号化装置１００との間でやり取りされるコンテンツデータは、パケットのバッファリングサイズ等を考慮して、複数個に分割してもよい。
【００８２】
図６に、図１の通信システムにおける各種のパケットの構成の他の例を示す。
【００８３】
このように、各パケットには、ＣＯＭヘッダが付加される。分割された最初のパケットにのみＰＣＰＥｘｔｅｎｄヘッダが付加される。
【００８４】
以上のようなパケットの分割は、ＰＣＰＥｘｔｅｎｄヘッダが付加されているか否かを判別するための情報をＣＯＭヘッダに付加することで容易に実現できる。
【００８５】
２．  暗号化／復号化装置
図７に、図１の暗号化／復号化装置１００の構成例のブロック図を示す。
【００８６】
暗号化／復号化装置１００は、ＡＥＳのアルゴリズムに従った暗号化処理後（第１の暗号化処理後）の入力データが入力され、ＤＥＳのアルゴリズムに従った暗号化処理後（第２の暗号化処理後）の出力データを出力する。或いは、暗号化／復号化装置１００は、ＤＥＳのアルゴリズムに従った暗号化処理後（第２の暗号化処理後）の入力データが入力され、ＡＥＳのアルゴリズムに従った暗号化処理後（第１の暗号化処理後）の出力データを出力する。
【００８７】
暗号化／復号化装置１００は、記憶部１１０と、ＡＥＳ処理部（広義には、第１の暗号化／復号化処理部）１２０と、ＤＥＳ処理部（広義には、第２の暗号化／復号化処理部）１３０とを含む。記憶部１１０には、暗号化／復号化装置１００の入力データ及び出力データが格納される。記憶部１１０の機能は、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）等のメモリ素子、レジスタ回路、ＦＩＦＯ（First-In First-Out）機能を有するメモリ素子等により実現される。
【００８８】
ＡＥＳ処理部１２０は、ＡＥＳのアルゴリズムに従った暗号化処理（第１の暗号化処理）及びＡＥＳのアルゴリズムに従った復号化処理（第１の復号化処理）を行う。
【００８９】
ＤＥＳ処理部１３０は、ＤＥＳのアルゴリズムに従った暗号化処理（第２の暗号化処理）及びＤＥＳのアルゴリズムに従った復号化処理（第２の復号化処理）を行う。
【００９０】
そして暗号化／復号化装置１００は、記憶部１１０から読み出された入力データに対してＡＥＳ処理部１２０及びＤＥＳ処理部１３０の一方が行ったＡＥＳ又はＤＥＳのアルゴリズムに従った復号化処理後の復号化データを記憶部に格納する。そして暗号化／復号化装置１００は、記憶部１１０から読み出された復号化データに対してＡＥＳ処理部１２０及びＤＥＳ処理部１３０の他方が行ったＡＥＳ又はＤＥＳのアルゴリズムに従った暗号化処理後のデータを出力データとして記憶部１１０に格納する。このとき、記憶部１１０の記憶領域のうち復号化データの記憶領域が、暗号化／復号化装置１００の外部からアクセス不可となるように構成される。
【００９１】
このような暗号化／復号化装置１００は、切換回路１５０を含むことができる。切換回路１５０は、入力データをＡＥＳ処理部１２０又はＤＥＳ処理部１３０に供給するための経路切り換えを行うことができる。また切換回路１５０は、ＡＥＳ処理部１２０で行われた暗号化又は復号化処理後のデータを、記憶部１１０の出力データの記憶領域又は復号化データの記憶領域に供給するための経路切り換えを行うことができる。更に切換回路１５０は、ＤＥＳ処理部１３０で行われた暗号化又は復号化処理後のデータを、記憶部１１０の出力データの記憶領域又は復号化データの記憶領域に供給するための経路切り換えを行うことができる。
【００９２】
暗号化／復号化装置１００は、コントローラ１６０によって制御される。例えばコントローラ１６０は、ＡＥＳ処理部１２０の暗号化及び復号化処理のための鍵の設定、ＤＥＳ処理部１３０の暗号化及び復号化処理のための鍵の設定を行うことができる。コントローラ１６０の機能はＣＰＵによって実現され、プログラムメモリ１７０に記憶されたプログラムに従って暗号化／復号化装置１００の制御を行う。
【００９３】
図８（Ａ）、図８（Ｂ）に、ＡＥＳ処理部１２０の処理の概要のフローを示す。
【００９４】
図８（Ａ）に、ＡＥＳ処理部１２０によって行われる暗号化処理の概要を示す。コントローラ１６０は、図２で説明したようにして取得したコンテンツ鍵Ｋｃに基づいて拡張処理を行ってラウンド毎の鍵Ｋ０、Ｋ１・・・、ＫＮｒを生成する。そしてＡＥＳ処理部１２０は、平文である入力データの１２８ビット分の長さを１ブロックとして、ブロック単位にラウンド毎に鍵を変更しながら暗号化操作をしていく。
【００９５】
初段暗号化操作では、鍵Ｋ０を用いてAddRoundkey操作が行われる。その後、ラウンド１〜ラウンド（Ｎｒ−１）まで、各ラウンド毎の鍵を用いてSubBytes操作、ShiftRows操作、MixColumns操作及びAddRoundKey操作を行い、最終段暗号化操作では、SubBytes操作、ShiftRows操作及びAddRoundkey操作が行われる。
【００９６】
図８（Ｂ）に、ＡＥＳ処理部１２０によって行われる復号化処理の概要を示す。コントローラ１６０は、図２で説明したようにして取得したコンテンツ鍵Ｋｃに基づいて拡張処理を行ってラウンド毎の鍵ｉＫＮｒ、ｉＫＮｒ−１・・・、ｉＫ０を生成する。そしてＡＥＳ処理部１２０は、暗号文である入力データの１２８ビット分の長さを１ブロックとして、ブロック単位にラウンド毎に鍵を変更しながら復号化操作をしていく。
【００９７】
初段復号化操作では、鍵ｉＫＮｒを用いてAddRoundkey操作が行われる。その後、ラウンド（Ｎｒ−１）〜ラウンド１まで、各ラウンド毎の鍵を用いてInvShiftrows操作、InvSubBytes操作、AddRoundkey操作及びInvMixColumns操作を行い、最終段復号化操作では、InvShifRows操作、InvSubBytes操作及びAddRoundkey操作が行われる。
【００９８】
なお暗号化操作及び復号化操作における各操作の内容の詳細は、例えば「Announcing the ADVANCED ENCRYPTION STANDARD(AES)」（November 26,2001、FIPS PUB 197）に記載されているため、その説明は省略する。
【００９９】
このようにＡＥＳ処理部１２０の処理は同じ操作を繰り返し行うため、ハードウェア化した場合により一層の処理の高速化を図ることができる。
【０１００】
図９に、ＤＥＳ処理部１３０によって行われる暗号化処理の概要を示す。
【０１０１】
暗号化／復号化装置１００は、メインＣＰＵ４０との間で共通秘密鍵を共有しており、該共通秘密鍵に基づいて各ラウンド毎を保持している。そしてＤＥＳ処理部１３０は、平文である入力データの６４ビット分の長さを１ブロックとして、ブロック単位にラウンド毎に鍵を変更しながら暗号化操作をしていく。
【０１０２】
初段暗号化操作では、初期転置やビット分割等の暗号化操作が行われる。その後、ラウンド１〜ラウンド１６まで、拡大転置、各ラウンド毎の鍵を用いた排他的論理和演算、圧縮換字変換、転置処理等の暗号化操作を行い、最終段暗号化操作では、ビットの入れ替え及び最終転置が行われる。
【０１０３】
なおＤＥＳ処理部１３０で行われる復号化処理は、図９に示す手順と逆の手順で各操作を行うことで実現できる。この場合、鍵は暗号化処理とは逆に、Ｋ１６、Ｋ１５、・・・、Ｋ１の順番で用いる。
【０１０４】
ＤＥＳ処理部１３０における各操作の内容もまた公知であるため、その説明は省略する。
【０１０５】
このようにＤＥＳ処理部１３０の処理は同じ操作を繰り返し行うため、ハードウェア化した場合により一層の処理の高速化を図ることができる。
【０１０６】
以上のように、図７に示す暗号化／復号化装置１００は、ＡＥＳ及びＤＥＳのアルゴリズムの暗号化処理及び復号化処理を行うことができる上に、入力データ及び出力データの暗号化及び復号化方式を変更できる。従って、暗号化／復号化装置１００に入力される入力データ、及び暗号化／復号化装置１００から出力された出力データは、ＡＥＳ又はＤＥＳのアルゴリズムで暗号化処理された後のデータとすることができる。
【０１０７】
そのため記憶部１１０のうち入力データ及び出力データの記憶領域が、暗号化／復号化装置１００の外部からアクセス可能に構成されていても、入力データ及び出力データが不正に複製されることがない。また、復号化データを、暗号化／復号化装置１００の外部からアクセス不可となる記憶部１１０の記憶領域に格納したため、復号化データが不正に複製されることがない。
【０１０８】
なお図７において、記憶部１１０は、第１〜第３の記憶部１１２、１１４、１１６の各記憶部が、それぞれ別個に設けられていてもよい。第１の記憶部１１２は、暗号化／復号化装置１００の外部からアクセス可能な記憶部であって入力データを記憶する。第２の記憶部１１４は、暗号化／復号化装置１００の外部からアクセス不可能な記憶部であって入力データに対するＡＥＳ又はＤＥＳのアルゴリズムに従った復号化処理後の復号化データを記憶する。第３の記憶部１１６は、暗号化／復号化装置１００の外部からアクセス可能な記憶部であって出力データを記憶する。
【０１０９】
そして、暗号化／復号化装置１００は、ＡＥＳ処理部１２０及びＤＥＳ処理部１３０の一方が復号化データを第２の記憶部１１２に格納すると共に、ＡＥＳ処理部１２０及びＤＥＳ処理部１３０の他方が復号化データに対して行ったＡＥＳ又はＤＥＳのアルゴリズムに従った暗号化処理後のデータを出力データとして第３の記憶部１１６に格納する。
【０１１０】
また、第１〜第３の記憶部１１２、１１４、１１６の各記憶部が、それぞれ入力エリア（InputArea）、中間エリア（MediumArea）、出力エリア（OutputArea）として、１つのメモリ空間内に分割された記憶領域に割り当てられ、各記憶領域が、可変であってもよい。
【０１１１】
図１０に、各記憶領域が可変に設定される図７の記憶部１１０の構成例を示す。
【０１１２】
記憶部１１０の記憶領域のうちベースアドレスBaseAddrを基準に、入力エリア、中間エリア及び出力エリアの各記憶領域が特定される。暗号化／復号化装置１００は、図示しない制御レジスタとしての記憶領域設定レジスタを含み、メインＣＰＵ４０が該記憶領域設定レジスタの設定内容を変更する。
【０１１３】
例えば記憶領域設定レジスタは、中間エリア開始位置設定レジスタ、中間エリア終了位置設定レジスタ、出力エリア終了位置設定レジスタを含むことができる。中間エリア開始位置設定レジスタには、中間エリア開始アドレスMedStartAddrが設定される。中間エリア終了位置設定レジスタには、中間エリア終了アドレスMedEndAddrが設定される。出力エリア終了位置設定レジスタには、出力エリア終了アドレスOutEndAddrが設定される。この結果、記憶部１１０の記憶領域のうちアドレスBaseAddrからアドレス（MedStartAddr-1）までの記憶領域を、入力エリアの記憶領域とすることができる。記憶部１１０の記憶領域のうちアドレスMedStartAddrからアドレスMedEndAddrまでの記憶領域を、中間エリアの記憶領域とすることができる。記憶部１１０の記憶領域のうちアドレス(MedEndAddr+1)からアドレスOutEndAddr（又は(OutEndAddr-1)）までの記憶領域を、出力エリアの記憶領域とすることができる。
【０１１４】
メインＣＰＵ４０は、コンテンツデータを分割する単位に基づいて、中間エリア開始位置設定レジスタ、中間エリア終了位置設定レジスタ及び出力エリア終了位置設定レジスタの各レジスタの設定内容を変更することが望ましい。ベースアドレスBaseAddrを変更できるようにすれば、記憶部１１０の任意の位置に入力エリア、中間エリア及び出力エリアの各記憶領域を設定できる。
【０１１５】
なお暗号化／復号化装置１００では、入力エリア、中間エリア及び出力エリアの各エリアがリングバッファとしてアクセスされる。各エリアは、データの読み出し位置を指定するリードポインタ（InAreaRdPtr、MedAreaRdPtr、OutAreaRdPtr）と、データの書き込み位置を指定するライトポインタ（InAreaWrPtr、MedAreaWrPtr、OutAreaWrPtr）とにより管理される。そして、各ポインタがエリアの最終アドレスに到達すると、ポインタの更新時に該エリアの開始アドレスに設定されるようになっている。
【０１１６】
２．１  ＣＯＭヘッダ
本実施形態では、メインＣＰＵ４０によってＣＯＭヘッダが付加されたコンテンツデータが暗号化／復号化装置１００に設定される。暗号化／復号化装置１００は、ＣＯＭヘッダを解析することで、コンテンツデータに応じた暗号化処理及び復号化処理を行う。
【０１１７】
そのため図７に示す暗号化／復号化装置１００は、ヘッダ解析部１８０を含むことができる。ヘッダ解析部１８０は、入力エリア（第１の記憶部）に設定されたコンテンツデータに付加されたＣＯＭヘッダを検出し、該ＣＯＭヘッダの内容を解析する。そして暗号化／復号化装置１００は、入力データに対しＡＥＳ及びＤＥＳの復号化処理のうちＣＯＭヘッダに対応した復号化処理、及び復号化データに対しＡＥＳ及びＤＥＳの暗号化処理のうちＣＯＭヘッダに対応した暗号化処理の少なくとも１つの処理を行う。ヘッダ解析部１８０を含むことによって、暗号化／復号化装置１００の処理手順を指定するためにメインＣＰＵ４０がアクセス可能な制御レジスタ等を設ける必要がなくなり、暗号化／復号化装置１００の制御及び構成の簡素化を図ることができるようになる。
【０１１８】
図１１に、本実施形態におけるＣＯＭヘッダの構成例を示す。
【０１１９】
ＣＯＭヘッダは、１６ビット長のＳＹＮＣフィールド、４ビット長のＩＤフィールド、４ビット長のＴｒａｎＴＹＰＥフィールド、１ビットのＥｘＦｌｇフィールド、３２ビット長のＰａｃｋｅｔＬｅｎｇｔｈフィールドを含む。
【０１２０】
ＳＹＮＣフィールドには、ＣＯＭヘッダであることを確認するための同期パターン「Ａ５Ａ５ｈ（ｈは１６進数表示であることを示す）」が設定される。この同期パターンのパターンマッチングを行うことで、メインＣＰＵ４０との間の同期ずれが検出される。
【０１２１】
ＩＤフィールドには、通信相手を判別するための識別情報ＩＤが設定される。この識別情報ＩＤを判別することで、暗号化／復号化装置１００は、ＡＥＳ処理部１２０においてコンテンツデータに対応した鍵を変更できる。
【０１２２】
ＴｒａｎＴＹＰＥフィールドには、ＡＥＳ処理部１２０及びＤＥＳ処理部１３０で行われる暗号化処理及び復号化処理のタイプを指定する情報が設定される。この情報を設定することで、動作モードを変更でき、例えば図４又は図５に示すようにコンテンツデータの暗号化処理及び復号化処理の順序を変更したりすることができるようになる。
【０１２３】
ＥｘＦｌｇフィールドには、ＰＣＰＥｘｔｅｎｄフィールドが付加されている事を示す情報が設定される。この情報を参照することで、ＰＣＰの区切りの位置を特定できるようになり、鍵更新の基準タイミングとすることができる。
【０１２４】
ＰａｃｋｅｔＬｅｎｇｔｈフィールドには、このＣＯＭヘッダが付加されているパケットのサイズを示す情報が設定される。この情報は、パケットのうちＣＯＭヘッダを除くデータのサイズを示す。
【０１２５】
ここで、ＩＤフィールドに設定される識別情報ＩＤについて説明する。
【０１２６】
図１２に、本実施形態における暗号化／復号化装置を含む電子機器１０が適用された通信システムの他の構成例を示す
図１で説明したように電子機器同士がイーサネット（登録商標）ケーブルを介して接続できるため、電子機器１０は、電子機器２０の他に電子機器３０との間でコンテンツデータの送受信を行うことも可能となる。
【０１２７】
電子機器１０は、電子機器２０が送信するコンテンツデータと電子機器３０が送信するコンテンツデータとを区別する必要がある。電子機器間ではＤＴＣＰ規格で規定されたように機器認証を行う必要があり、認証された電子機器間で共有される鍵が異なるからである。従って、電子機器１０は、電子機器２０で用いられる共有鍵と電子機器３０で用いられる共有鍵とを区別して管理しておく必要がある。
【０１２８】
そのため、電子機器１０では、送信元を特定すると、送信元に対応した識別情報ＩＤを付与し、該識別情報ＩＤに対応した鍵を用いてＡＥＳのアルゴリズムに従った復号化処理を行うことができるようになっている。
【０１２９】
従って、図１３に示すように識別情報ＩＤが異なるパケットが電子機器１０に送信されてきた場合であっても、電子機器１０の暗号化／復号化装置１００では、識別情報ＩＤ毎に管理された鍵を、コンテンツデータに応じて変更しながら、正しく復号化されたコンテンツデータを得ることができる。
【０１３０】
次にＴｒａｎＴＹＰＥフィールドに設定される情報について説明する。
【０１３１】
図１４に、図１１のＴｒａｎＴＹＰＥフィールドの説明図を示す。
【０１３２】
図１５（Ａ）〜図１５（Ｄ）、図１６（Ａ）〜図１６（Ｃ）及び図１７に、ＴｒａｎＴＹＰＥフィールドの設定情報に対応した動作モードの説明図を示す。図１５（Ａ）〜図１５（Ｄ）、図１６（Ａ）〜図１６（Ｃ）及び図１７において、図７と同一部分には同一符号を付し、適宜説明を省略する。
【０１３３】
上述のように、暗号化／復号化装置１００は、ＴｒａｎＴＹＰＥフィールドの設定情報に対応した動作モードで動作する。
【０１３４】
ＴｒａｎＴＹＰＥフィールドに０ｈが設定されたとき、暗号化／復号化装置１００は、デバッグ用のモードとして動作する。即ち、図１５（Ａ）に示すように、メインＣＰＵ40によって書き込まれたコンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをそのまま中間エリア（第２の記憶部）に出力し、中間エリアにコンテンツデータが格納される。そして、中間エリアから再びコンテンツデータが読み出されて切換回路１５０に供給された後、切換回路１５０は、該コンテンツデータをそのまま出力エリア（第３の記憶部）に出力し、出力エリアに出力データとして該コンテンツデータが格納される。その結果、メインＣＰＵ４０によって読み出される出力データは、入力データと同じデータとなる。
【０１３５】
ＴｒａｎＴＹＰＥフィールドに１ｈが設定されたとき、暗号化／復号化装置１００は、第２の動作モードとして動作する。即ち、図１５（Ｂ）に示すように、メインＣＰＵ４０が、入力データとしてＤＥＳの暗号化処理後のコンテンツデータを入力エリア（第１の記憶部）に格納する。そして、コンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをＤＥＳ処理部１３０に供給する。ＤＥＳ処理部１３０は、該コンテンツデータに対し、ＤＥＳのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路１５０に供給する。切換回路１５０は、復号化データを中間エリア（第２の記憶部）に出力し、中間エリアに復号化データが格納される。そして、中間エリアから再び復号化データが読み出されて切換回路１５０に供給された後、切換回路１５０は、該復号化データをＡＥＳ処理部１２０に供給する。ＡＥＳ処理部１２０は、該復号化データに対し、ＡＥＳのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを出力データとして切換回路１５０に供給する。切換回路１５０は、該出力データを出力エリア（第３の記憶部）に出力し、出力エリアに出力データが格納される。その結果、メインＣＰＵ４０によって読み出される出力データがＡＥＳの暗号化処理後のデータであるのに対し、メインＣＰＵ４０が格納した入力データはＤＥＳの暗号化処理後のデータとなる。例えば通信コントローラ５０がコンテンツデータの送信処理を行う場合に、暗号化／復号化装置１００は、第２の動作モードに設定される。
【０１３６】
ＴｒａｎＴＹＰＥフィールドに２ｈが設定されたとき、暗号化／復号化装置１００は、第３の動作モードとして動作する。即ち、図１５（Ｃ）に示すように、メインＣＰＵ４０が、入力データとしてＤＥＳの暗号化処理後のコンテンツデータを入力エリア（第１の記憶部）に格納する。そして、コンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをＤＥＳ処理部１３０に供給する。ＤＥＳ処理部１３０は、該コンテンツデータに対し、ＤＥＳのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路１５０に供給する。切換回路１５０は、復号化データを出力データとして出力エリア（第３の記憶部）に出力し、出力エリアに出力データが格納される。その結果、メインＣＰＵ４０によって読み出される出力データがＤＥＳの復号化処理後のデータであるのに対し、メインＣＰＵ４０が格納した入力データはＤＥＳの復号化処理前のデータとなる。例えば暗号化／復号化装置１００をＤＥＳの復号器として用いる場合に、暗号化／復号化装置１００は第３の動作モードに設定される。
【０１３７】
ＴｒａｎＴＹＰＥフィールドに３ｈが設定されたとき、暗号化／復号化装置１００は、第４の動作モードとして動作する。即ち、図１５（Ｄ）に示すように、メインＣＰＵ４０によって格納されたコンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをＡＥＳ処理部１２０に供給する。ＡＥＳ処理部１２０は、該コンテンツデータに対し、ＡＥＳのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを切換回路１５０に供給する。切換回路１５０は、暗号化処理後のデータを出力データとして出力エリア（第３の記憶部）に出力し、出力エリアに出力データが格納される。その結果、メインＣＰＵ４０によって読み出される出力データがＡＥＳの暗号化処理後のデータであるのに対し、メインＣＰＵ４０が格納した入力データはＡＥＳの暗号化処理前のデータとなる。例えば暗号化／復号化装置１００をＡＥＳの暗号器として用いる場合に、暗号化／復号化装置１００は第４の動作モードに設定される。
【０１３８】
ＴｒａｎＴＹＰＥフィールドに４ｈが設定されたとき、暗号化／復号化装置１００は、第１の動作モードとして動作する。即ち、図１６（Ａ）に示すように、メインＣＰＵ４０が、入力データとしてＡＥＳの暗号化処理後のコンテンツデータを入力エリア（第１の記憶部）に格納する。そして、コンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをＡＥＳ処理部１２０に供給する。ＡＥＳ処理部１２０は、該コンテンツデータに対し、ＡＥＳのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路１５０に供給する。切換回路１５０は、復号化データを中間エリア（第２の記憶部）に出力し、中間エリアに復号化データが格納される。そして、中間エリアから再び復号化データが読み出されて切換回路１５０に供給された後、切換回路１５０は、該復号化データをＤＥＳ処理部１３０に供給する。ＤＥＳ処理部１３０は、該復号化データに対し、ＤＥＳのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを出力データとして切換回路１５０に供給する。切換回路１５０は、該出力データを出力エリア（第３の記憶部）に出力し、出力エリアに出力データが格納される。その結果、メインＣＰＵ４０から読み出される出力データがＤＥＳの暗号化処理後のデータであるのに対し、メインＣＰＵ４０が格納した入力データはＡＥＳの暗号化処理後のデータとなる。例えば通信コントローラ５０がコンテンツデータの受信処理を行う場合に、暗号化／復号化装置１００は、第１の動作モードに設定される。
【０１３９】
ＴｒａｎＴＹＰＥフィールドに５ｈが設定されたとき、暗号化／復号化装置１００は、第５の動作モードとして動作する。即ち、図１６（Ｂ）に示すように、メインＣＰＵ４０によって格納されたコンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをＤＥＳ処理部１３０に供給する。ＤＥＳ処理部１３０は、該コンテンツデータに対し、ＤＥＳのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを出力データとして切換回路１５０に供給する。切換回路１５０は、出力データを出力エリア（第３の記憶部）に出力し、出力エリアに出力データが格納される。その結果、メインＣＰＵ４０によって読み出される出力データがＤＥＳの暗号化処理後のデータであるのに対し、メインＣＰＵ４０が格納した入力データはＤＥＳの暗号化処理前のデータとなる。例えば暗号化／復号化装置１００をＤＥＳの暗号器として用いる場合に、暗号化／復号化装置１００は第５の動作モードに設定される。
【０１４０】
ＴｒａｎＴＹＰＥフィールドに６ｈが設定されたとき、暗号化／復号化装置１００は、第６の動作モードとして動作する。即ち、図１６（Ｃ）に示すように、メインＣＰＵ４０が、入力データとしてＡＥＳの暗号化処理後のコンテンツデータを入力エリア（第１の記憶部）に格納する。そして、コンテンツデータ（入力データ）が入力エリア（第１の記憶部）から読み出されて切換回路１５０に供給される。切換回路１５０は、該コンテンツデータをＡＥＳ処理部１２０に供給する。ＡＥＳ処理部１２０は、該コンテンツデータに対し、ＡＥＳのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路１５０に供給する。切換回路１５０は、復号化データを出力データとして出力エリア（第３の記憶部）に出力し、出力エリアに出力データが格納される。その結果、メインＣＰＵ４０によって読み出される出力データがＡＥＳの復号化処理後のデータであるのに対し、メインＣＰＵ４０が格納する入力データはＡＥＳの復号化処理前のデータとなる。例えば暗号化／復号化装置１００をＡＥＳの復号器として用いる場合に、暗号化／復号化装置１００は第６の動作モードに設定される。
【０１４１】
以上のように、第１及び第２の動作モードでは、メインＣＰＵ４０と暗号化／復号化装置１００との間で暗号化された状態のコンテンツデータをやり取りできる上に、単なるＡＥＳ又はＤＥＳの暗号器又は復号器として機能させることも可能となる。
【０１４２】
更に本実施形態では、以下に説明するようにプログラム復号モードとして動作させることもできる。
【０１４３】
即ち、ＴｒａｎＴＹＰＥフィールドに７ｈが設定されたとき、暗号化／復号化装置１００は、プログラム復号モードとして動作する。プログラム復号モードでは、コントローラ１６０の動作を指定する暗号化されたプログラムデータが、メインＣＰＵ４０から供給される場合に、暗号化／復号化装置１００が該プログラムデータを復号化処理後にプログラムメモリ１７０に転送する。
【０１４４】
そのため、図１７に示すように、メインＣＰＵ４０に、予めＤＥＳのアルゴリズムで暗号化されたプログラムデータを記憶するフラッシュＲＯＭ（Read Only Memory）４２が接続され、コントローラ１６０に、予めブート用のプログラムコードを記憶するブートＲＯＭ１６２が接続されることが望ましい。フラッシュＲＯＭ４２に格納されるプログラムデータは、ＡＥＳ及びＤＥＳの暗号化処理を行うための暗号鍵とＡＥＳとＤＥＳの復号化処理を行うための復号鍵とを生成するためのデータを有し、コントローラ１６０の動作を指定するためのプログラムデータである。従って、復号化データがプログラムデータとしてプログラムメモリ１７０に転送された後、コントローラ１６０が該プログラムデータに基づいて暗号化／復号化装置１００の動作を制御することができる。
【０１４５】
図１８に、プログラム復号モードにおけるシーケンスを示す。
【０１４６】
まず、リセット信号が入力されメインＣＰＵ４０が初期化されると、フラッシュＲＯＭ４２から、予め暗号化されたプログラムデータを取り出す（ＳＥＱ６０）。同様にしてコントローラ１６０もまた初期化され、ブートＲＯＭ１６２に格納されたブート用のプログラムコードで動作を開始し（ＳＥＱ６１）、暗号化／復号化装置１００の各部の初期化を行う（ＳＥＱ６２）。なおブート用のプログラムコードには、予めＤＥＳの復号化鍵が設定されているものとする。
【０１４７】
メインＣＰＵ４０は、続いてＴｒａｎＴＹＰＥフィールドが７ｈに設定されたＣＯＭヘッダを該プログラムデータに付加して（ＳＥＱ６３）、入力エリアに設定する（ＳＥＱ６４）。
【０１４８】
暗号化／復号化装置１００は、ＣＯＭヘッダを解析し（ＳＥＱ６５）、ＴｒａｎＴＹＰＥフィールドが７ｈに設定されてプログラム復号モードに指定されたことを判別すると、入力エリアから暗号化されたプログラムデータを読み出して切換回路１５０に供給する。切換回路１５０は、該プログラムデータをＤＥＳ処理部１３０に出力する。ＤＥＳ処理部１３０は、該プログラムデータを、ＤＥＳのアルゴリズムに従った復号化処理を行い（ＳＥＴ６６）、復号化データとして切換回路１５０に出力する。切換回路１５０は、この復号化データを中間エリアに出力し、中間エリアには復号化データが格納される（ＳＥＱ６７）。
【０１４９】
中間エリアに格納された復号化データは、プログラムメモリ１７０に転送され（ＳＥＱ６８）、その後中間エリアの内容がクリアされる（ＳＥＱ６９）。そして、コントローラ１６０は、プログラムメモリ１７０に新たに格納されたプログラムデータで動作を開始する（ＳＥＱ７０）。
【０１５０】
プログラムメモリ１７０に格納されるプログラムデータは、上述のようにＡＥＳの鍵生成を行うための手順やデータを含むため、メインＣＰＵ４０から暗号化／復号化装置１００に供給されるときには暗号化された状態でなければならない。従って、プログラム復号モードを用いることで、ＡＥＳの鍵生成を行うための手順やデータの機密性を維持しながら、例えば中間エリアとしての第２の記憶部１１４を有効に利用できる。
【０１５１】
２．２  ＰＣＰＥｘｔｅｎｄヘッダ
本実施形態では、「DTCP Volume 1 Supplement E Mapping DTCP to IP (Informational Version)」(Revision 1.0, November 24, 2003)に規定されたＰＣＰヘッダを、ＰＣＰＥｘｔｅｎｄヘッダに拡張している。
【０１５２】
図１９に、ＰＣＰＥｘｔｅｎｄヘッダとＰＣＰヘッダの説明図を示す。
【０１５３】
ＣＡフィールドには、ＰＣＰヘッダのＣ＿Ａフィールドの情報が設定される。Ｃ＿Ａフィールドには、１２８ビット長を１ブロックとするＡＥＳか、オプショナルなアルゴリズムかを指定する情報が設定される。
【０１５４】
ＥＭＩフィールドには、ＰＣＰヘッダのＥ−ＥＭＩフィールドの情報が設定される。Ｅ−ＥＭＩフィールドには、Copy-never、Copy-one-generation、No-more-copies、Copy-free等の複製制限に関する情報が設定される。
【０１５５】
ＥｘｃｈａｎｇｅＫｅｙＬａｂｅｌフィールドには、ＰＣＰヘッダのexchange_key_labelフィールドの情報が設定される。exchange_key_labelフィールドには、交換鍵Ｋｘが設定される。
【０１５６】
Ｎｃフィールドには、ＰＣＰヘッダのＮｃフィールドの情報が設定される。Ｎｃフィールドには、式（１）、式（２）で用いられる乱数が設定される。
【０１５７】
ＣｏｎｔｅｎｔＬｅｎｇｔｈフィールドには、ＰＣＰヘッダのＣＬフィールドの情報が設定される。ＣＬフィールドには、コンテンツデータのバイト長が設定される。
【０１５８】
ＰＣＰＥｘｔｅｎｄヘッダがＰＣＰヘッダと異なる点は、Ｒｅｓｅｒｖｅｄフィールドが３ビットから１９ビットに拡張された点である。こうすることで、ＣＯＭヘッダ及びＰＣＰＥｘｔｅｎｄヘッダを含むパケットの長さを、ＡＥＳの処理単位である１６バイトの倍数とすることができ、回路構成の簡素化を図ることができるようになる。
【０１５９】
２．３  ハードウェア構成例
次に、本実施形態における暗号化／復号化装置１００のハードウェア構成例について説明する。
【０１６０】
図２０に、図７の暗号化／復号化装置１００のハードウェア構成例のブロック図を示す。
【０１６１】
図２０のHostが、図７のメインＣＰＵ４０に相当する。図２０のCPUが、図７のコントローラ１６０の機能を実現する。図２０のMEMが、図７のプログラムメモリ１７０の機能を実現する。図２０のBootROMが、図１７のブートＲＯＭ１６２の機能を実現する。図２０のSRAMが、図７の記憶部１１０の機能を実現する。図２０のSRAMにおいてInputAreaが、第１の記憶部１１２としての入力エリアに相当する。図２０のSRAMにおいてMediumAreaが、第２の記憶部１１４としての中間エリアに相当する。図２０のSRAMにおいてOutputAreaが、第３の記憶部１１６としての出力エリアに相当する。図２０のMainSeqが、図７のヘッダ解析部１８０の機能を実現する。図２０のＡＥＳが、図７のＡＥＳ処理部１２０の機能を実現する。図２０のＤＥＳが、図７のＤＥＳ処理部１３０の機能を実現する。図２０のMUXが、図７の切換回路１５０の機能を実現する。
【０１６２】
Hostからの入力データは、HostI/Fに入力される。HostI/Fは、入力データの入力インタフェース処理（Hostとの間の入力処理や、信号のバッファリング）や、出力データの出力インタフェース処理（Hostとの間の出力処理や、信号のバッファリング）を行う。HostI/Fを介して入力された入力データは、HostIFIFOでバッファリングされる。HostOFIFOでバッファリングされた出力データは、HostI/Fを介して出力される。
【０１６３】
SRAMI/F1は、HostIFIFOからコンテンツデータを読み出すと共に、SRAMに対して書き込みアドレスAD1、書き込みデータWD1を出力し、SRAMのInputAreaのうちアドレスAD1で指定された記憶領域に書き込みデータWD1を順次書き込む。
【０１６４】
PtrCtlは、SRAMのInputAreaの書き込みポインタInAreaWrPtr及び読み出しポインタInAreaRdPtrを更新する制御を行う。またPtrCtlは、SRAMのMedAreaの書き込みポインタMedAreaWrPtr及び読み出しポインタMedAreaRdPtr、SRAMのOutAreaの書き込みポインタOutAreaWrPtr及び読み出しポインタOutAreaRdPtrを更新する制御も行う。
【０１６５】
SRAMI/F2は、InputAreaからの読み出しデータを、MUX又はMainSeqのHdrRegに対して出力する。より具体的には、SRAMI/F2は、InDMAC1に対して読み出し要求Rq1を出力し、InDMAC1からの読み出し承認Rk1を受けて、SRAMに対して読み出しアドレスAD2を出力してInputAreaの読み出しポインタInAreaRdPtrで指定された領域のデータを読み出しデータRD2として読み出す。そして、コンテンツデータを、InDMAC1からの読み出し承認Rk1に従ってデータInD1としてMUXに順次出力していく。
【０１６６】
またＣＯＭヘッダのデータサイズが既知であるため、PtrCtlは、読み出しポインタInAreaRdPtrに基づいてＣＯＭヘッダの書き込みが終了したことを検出できる。そこで、ＣＯＭヘッダの内容を解析するため、MainSeqは、ＣＯＭヘッダの書き込みの終了を検出すると、SRAMI/F2を介してInputAreaに書き込まれたＣＯＭヘッダのデータをHdrRegに書き込むことができる。
【０１６７】
SRAMに設定されたMediumAreaに対しては、SRAMI/F3が、同様に書き込みアドレスAD3を出力して、MUXからのデータを書き込む。SRAMI/F3は、OutDMAC1に対して書き込み要求Wq1を出力し、OutDMAC1からの書き込み承認Wk 1を受けて、SRAMに対して書き込みアドレスAD3を出力してMediumAreaの書き込みポインタMedAreaWrPtrで指定された領域に、書き込みデータWD5を順次書き込む。
【０１６８】
また同様にSRAMI/F4が、読み出しアドレスAD4を出力して、MediumAreaから読み出しデータRD4を読み出して、MUXに順次出力する。より具体的には、SRAMI/F4は、InDMAC2に対して読み出し要求Rq2を出力し、InDMAC2からの読み出し承認Rk2を受けて、SRAMに対して読み出しアドレスAD4を出力してMediumAreaの読み出しポインタMedAreaRdPtrで指定された領域のデータを読み出しデータRD4として読み出す。そして、コンテンツデータを、InDMAC2からの読み出し承認Rk2に従ってデータInD2としてMUXに順次出力していく。
【０１６９】
SRAMに設定されたOutputAreaに対しては、SRAMI/F5が、同様に書き込みアドレスAD5を出力して、MUXからのデータを書き込む。SRAMI/F5は、OutDMAC2に対して書き込み要求Wq2を出力し、OutDMAC1からの書き込み承認Wk2を受けて、SRAMに対して書き込みアドレスAD5を出力してOutputAreaの書き込みポインタOutAreaWrPtrで指定された領域に、書き込みデータWD5を順次書き込む。
【０１７０】
そして、SRAMI/F6が、読み出しアドレスAD6を出力して、OutputAreaから読み出しデータRD6を読み出して、HostOFIFOに順次出力する。
【０１７１】
このようにSRAMのInputAreaからMUX、MUXからSRAMのMediumArea、SRAMのMediumAreaからMUX、MUXからSRAMのOutputAreaのデータ転送は、それぞれInDMAC1、OutDMAC1、InDMAC2、OutDMAC2が行う。InDMAC1、OutDMAC1、InDMAC2、OutDMAC2のそれぞれの転送制御情報は、ControlRegに設定される。
【０１７２】
MainSeqは、HdrRegの設定データを解析して、InDMAC1、OutDMAC1、InDMAC2、OutDMAC2のそれぞれの転送制御情報を、ControlRegに設定する。また、MainSeqは、MUXの転送経路を選択するための選択信号selを出力する。選択信号selに基づいて、図１４〜図１７で説明した転送経路が設定される。MainSeqは、AESに対してデコード／エンコード信号enxde、識別信号idを出力し、DESに対してデコード／エンコード信号enxdeを出力する。デコード／エンコード信号enxdeは、暗号化処理をするか、復号化処理をするかを指示する信号であり、CPUによるＰＣＰＥｘｔｅｎｄヘッダの解析結果に基づいて生成される。識別信号idは、上述の識別情報ＩＤを示す信号であり、ＣＯＭヘッダの解析結果に基づいて生成される。
【０１７３】
InDMAC1は、SRAMI/F2からのデータInD1をAESiFIFOにバッファリングさせ、AESにデータを供給できる。InDMAC2は、SRAMI/F4からのデータInD2をAESiFIFOにバッファリングさせ、AESにデータを供給できる。OutDMAC1は、AESからのデータRSLD1がバッファリングされたAESoFIFOから、SRAMI/F3にデータを供給できる。OutDMAC2は、AESからのデータRSLD1がバッファリングされたAESoFIFOから、SRAMI/F5にデータを供給できる。
【０１７４】
或いは、InDMAC1は、SRAMI/F2からのデータIn D1をDESiFIFOにバッファリングさせ、DESにデータを供給できる。InDMAC2は、SRAMI/F4からのデータInD2をDESiFIFOにバッファリングさせ、DESにデータを供給できる。OutDMAC1は、DESからのデータRSLD2がバッファリングされたDESoFIFOから、SRAMI/F3にデータを供給できる。OutDMAC2は、DESからのデータRSLD2がバッファリングされたDESoFIFOから、SRAMI/F5にデータを供給できる。
【０１７５】
そのためMUXからAESに対して、転送経路に応じて処理要求Cq1を出力し、AESからは処理承認Ca1が入力される。またMUXからAESに対して、転送経路に応じて結果要求Rsq1を出力し、AESからは結果承認Rsa1が入力される。
【０１７６】
またMUXからDESに対して、転送経路に応じて処理要求Cq2を出力し、DESからは処理承認Ca2が入力される。またMUXからDESに対して、転送経路に応じて結果要求Rsq2を出力し、DESからは結果承認Rsa2が入力される。
【０１７７】
AESは、InDMAC1又はInDMAC2からの処理要求Cq1に従ってAESiFIFOからデータを読み出す。そしてAESは、OutDMAC1又はOutDMAC2からの結果要求Rsq1に従って、暗号化処理又は復号化処理後のデータをAESoFIFOに出力する。MUXは、処理要求Cq1、処理承認Ca1について、InDMAC1、InDMAC2のいずれか１つとAESとの間の転送経路を切り換える。またMUXは、結果要求Rsq1、結果承認Rsa1についてもまた、OutDMAC1、OutDMAC2のいずれか１つとAESとの間の転送経路を切り換える。
【０１７８】
DESは、InDMAC1又はInDMAC2からの処理要求Cq2に従ってDESiFIFOからデータを読み出す。そしてDESは、OutDMAC1又はOutDMAC2からの結果要求Rsq2に従って、暗号化処理又は復号化処理後のデータをDESoFIFOに出力する。MUXは、処理要求Cq2、処理承認Ca2について、InDMAC1、InDMAC2のいずれか１つとDESとの間の転送経路を切り換える。またMUXは、結果要求Rsq2、結果承認Rsa2についてもまた、OutDMAC1、OutDMAC2のいずれか１つとDESとの間の転送経路を切り換える。
【０１７９】
以上のように、SRAMの各エリアとAES及びDESとの間にMUXが設けられ、４つのDMACがデータ転送を行う。そして、データの転送経路は、MainSeqによって設定される。
【０１８０】
図２１に、図２０のMainSeqの動作説明図を示す。
【０１８１】
MainSeqは、図２１に示す状態遷移図に従って動作する。即ち、各ステート間を遷移し、遷移先のステートに対応した制御信号を暗号化／復号化装置１００の各部に対して出力する。
【０１８２】
IDLEステートでは、例えばSRAMに対してデータが入出力され、内部でデータ転送等が行われない状態である。IDLEステートにおいて、InputAreaにデータの設定が開始され、ＣＯＭヘッダのデータサイズ分のデータが設定されたとき、ＣＯＭヘッダが検出されたことを示すHDRDETステートに遷移する。
【０１８３】
HDRDETステートでは、ＣＯＭヘッダの解析が行われる。即ち、図１１に示すＣＯＭヘッダの情報に基づいて、ＴｒａｎＴＹＰＥフィールドの情報に対応した転送経路の設定、ＰａｃｋｅｔＬｅｎｇｔｈフィールドの情報に対応したInDAMC1、OutDMAC1、InDMAC2、OutDMAC2の転送データサイズ等の設定を行う。
【０１８４】
HDRDETステートにおいて、ＣＯＭヘッダのＥｘＦｌｇフィールドの情報に基づいてＰＣＰＥｘｔｅｎｄヘッダが付加されていると判断されるとき、PCPHDRDETステートに遷移する。またHDRDETステートにおいて、ＣＯＭヘッダのＥｘＦｌｇフィールドの情報に基づいてＰＣＰＥｘｔｅｎｄヘッダが付加されていないと判断されるとき、TRANDATAステートに遷移する。
【０１８５】
PCPHDRDETステートへの遷移が、ＰＣＰ単位で行われる鍵更新の基準タイミングとなる。図２０では、MainSeqが、ＥｘＦｌｇフィールドの情報に基づいてＰＣＰＥｘｔｅｎｄヘッダが付加されていると検出したとき、CPUに対して割り込み要求を通知する。CPUは、更新される鍵を再生成し、内部バスiBusを介してiBusI/Fを介してAESのKeyRAMに設定する。AESは、KeyRAMに設定された鍵を用いて暗号化又は復号化処理を行うようになっている。このような鍵更新が終了すると、ＰＣＰＥｘｔｅｎｄヘッダの解析完了を通知するため、CPUは、iBus及びiBusI/Fを介して、ControlRegに含まれる起動制御レジスタをアクセスする。該起動制御レジスタへのアクセスに伴い、MainSeqは、TRANDATAステートに遷移する。
【０１８６】
TRANDATAステートでは、各DMACがSRAMからデータの転送を介して、AES又はDESが暗号化又は復号化処理を行い、最終的にOutputArea又はMediumAreaに処理結果のデータが格納されていく。こうして、転送と暗号化又は復号化処理とが完了したときIDLEステートに遷移する。
【０１８７】
３．  変形例
なお本実施形態では、暗号化／復号化装置１００が、ＡＥＳ及びＤＥＳの２種類のアルゴリズムに対応した暗号化及び復号化処理を行うものとして説明したが、３種類以上のアルゴリズムに対応した暗号化及び復号化処理を行うものであってもよい。
【０１８８】
図２２に、本実施形態の変形例における暗号化／復号化装置の構成例のブロック図を示す。図２２において、図７と同一部分には同一符号を付し、適宜説明を省略する。
【０１８９】
本変形例における暗号化／復号化装置３００は、ＡＥＳ処理部１２０及びＤＥＳ処理部１３０の他に、Ｍ６処理部３１０を含む。Ｍ６処理部３１０は、Ｍ６と呼ばれる共通鍵を用いた暗号アルゴリズムに従った暗号化処理及び復号化処理を行う。
【０１９０】
ヘッダ解析部３２０は、図７のヘッダ解析部１８０の機能を有し、ＣＯＭヘッダのＴｒａｎＴＹＰＥに対応した転送経路の設定処理を行うことができる。
【０１９１】
切換回路３３０は、図７の切換回路１５０の機能を有し、ヘッダ解析部３２０の解析結果に基づいて、データの転送経路の切り換えを行う。
【０１９２】
本変形例では、本実施形態と同様に、ＡＥＳ、ＤＥＳのみならず、ＡＥＳ、ＤＥＳ、Ｍ６のいずれか１つ又は２つのアルゴリズムに従った暗号化又は復号化処理を行うことができる。この場合、少なくとも１つのアルゴリズムの処理部の機能が、ディセーブル状態に設定される。
【０１９３】
また本変形例では、中間エリアである第２の記憶部１４４を介して３つのアルゴリズムの処理部の暗号化又は復号化処理を行ってもよい。
【０１９４】
コントローラ３４０及びプログラムメモリ３５０は、図７のコントローラ１６０及びプログラムメモリ１７０の機能を有し、Ｍ６処理部３１０の暗号鍵及び復号鍵を生成する処理を行うことができるようになっている。
【０１９５】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、本発明は上述のＡＥＳ、ＤＥＳ、Ｍ６に適用されるものに限らず、暗号化及び復号化処理のアルゴリズムに限定されるものではない。また図１に示したネットワークの種類に限定されるものではない。
【０１９６】
また図１、図７、図２０及び図２２の各ブロックをすべて含む必要はなく、その一部のブロックが省略された構成であってもよい。
【０１９７】
更にまた、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０１９８】
【図１】本実施形態における暗号化／復号化装置を含む通信システムの構成例の図。
【図２】図１の電子機器間で行われるＤＴＣＰ規格に準拠した処理の一例の図。
【図３】図１の通信システムにおける各種のパケットの構成例を示す図。
【図４】図１の通信システムにおけるコンテンツデータの受信処理の一例のシーケンスを示す図。
【図５】図１の通信システムにおけるコンテンツデータの送信処理の一例のシーケンスを示す図。
【図６】図１の通信システムにおける各種のパケットの構成の他の例を示す図。
【図７】図１の暗号化／復号化装置の構成例のブロック図。
【図８】図８（Ａ）、図８（Ｂ）はＡＥＳ処理部の処理の概要のフローを示す図。
【図９】図７のＤＥＳ処理部の処理の概要のフローを示す図。
【図１０】各記憶領域が可変に設定される図７の記憶部の構成例を示す図。
【図１１】本実施形態におけるＣＯＭヘッダの構成例を示す図。
【図１２】本実施形態における暗号化／復号化装置を含む電子機器が適用された通信システムの他の構成例を示す図。
【図１３】図１１のＩＤフィールドの説明図。
【図１４】図１１のＴｒａｎＴＹＰＥフィールドの説明図。
【図１５】図１５（Ａ）〜図１５（Ｄ）は、ＴｒａｎＴＹＰＥフィールドの設定情報に対応した動作モードの説明図。
【図１６】図１６（Ａ）〜図１６（Ｃ）は、ＴｒａｎＴＹＰＥフィールドの設定情報に対応した動作モードの説明図。
【図１７】ＴｒａｎＴＹＰＥフィールドの設定情報に対応した動作モードの説明図。
【図１８】プログラム復号モードにおけるシーケンスを示す図。
【図１９】ＰＣＰＥｘｔｅｎｄヘッダとＰＣＰヘッダの説明図。
【図２０】図７の暗号化／復号化装置のハードウェア構成例のブロック図。
【図２１】図２０のＭainＳeqの動作説明図。
【図２２】本実施形態の変形例における暗号化／複合化装置の構成例のブロック図。
【符号の説明】
【０１９９】
１０、２０  電子機器、  ４０  メインＣＰＵ、  ５０  通信コントローラ、
６０  ＴＣＰ／ＩＰ処理部、  １００  暗号化／復号化装置、  １１０  記憶部、
１１２  第１の記憶部、  １１４  第２の記憶部、  １１６  第３の記憶部、
１２０  ＡＥＳ処理部、  １３０  ＤＥＳ処理部、  １５０、３３０  切換回路、
１６０、３４０  コントローラ、  １７０、３５０  プログラムメモリ、
１８０、３２０  ヘッダ解析部、  ３１０  Ｍ６処理部
【図１】
2006217369.tif 000003
【図２】
2006217369.tif 000004
【図３】
2006217369.tif 000005
【図４】
2006217369.tif 000006
【図５】
2006217369.tif 000007
【図６】
2006217369.tif 000008
【図７】
2006217369.tif 000009
【図８】
2006217369.tif 000010
【図９】
2006217369.tif 000011
【図１０】
2006217369.tif 000012
【図１１】
2006217369.tif 000013
【図１２】
2006217369.tif 000014
【図１３】
2006217369.tif 000015
【図１４】
2006217369.tif 000016
【図１５】
2006217369.tif 000017
【図１６】
2006217369.tif 000018
【図１７】
2006217369.tif 000019
【図１８】
2006217369.tif 000020
【図１９】
2006217369.tif 000021
【図２０】
2006217369.tif 000022
【図２１】
2006217369.tif 000023
【図２２】
2006217369.tif 000024