JP2006217369A - 暗号化/復号化装置、通信コントローラ及び電子機器 - Google Patents

暗号化/復号化装置、通信コントローラ及び電子機器 Download PDF

Info

Publication number
JP2006217369A
JP2006217369A JP2005029226A JP2005029226A JP2006217369A JP 2006217369 A JP2006217369 A JP 2006217369A JP 2005029226 A JP2005029226 A JP 2005029226A JP 2005029226 A JP2005029226 A JP 2005029226A JP 2006217369 A JP2006217369 A JP 2006217369A
Authority
JP
Japan
Prior art keywords
encryption
data
decryption
processing
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005029226A
Other languages
English (en)
Inventor
Tomonori Kumagai
友則 熊谷
伸之 ▲斎▼藤
Nobuyuki Saito
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 JP2005029226A priority Critical patent/JP2006217369A/ja
Priority to US11/345,386 priority patent/US20070180270A1/en
Publication of JP2006217369A publication Critical patent/JP2006217369A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0464Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload using hop-by-hop encryption, i.e. wherein an intermediate entity decrypts the information and re-encrypts it before forwarding it
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】 暗号化及び復号化処理の負荷を分担することでスループットを向上させる暗号化/復号化装置、通信コントローラ及び電子機器を提供する。
【解決手段】 暗号化/復号化装置100は、入力データ及び出力データが格納される記憶部110、第1の暗号化及び復号化処理を行う第1の暗号化/復号化処理部120、第2の暗号化及び復号化処理を行う第2の暗号化/復号化処理部130を含む。入力データに対し第1及び第2の暗号化/復号化処理部120、130の一方が行った第1又は第2の復号化処理後の復号化データを記憶部110に格納する。復号化データに対し第1及び第2の暗号化/復号化処理部120、130の他方が行った第1又は第2の暗号化処理後のデータを出力データとして記憶部110に格納する。記憶部110の復号化データの記憶領域が、暗号化/復号化装置100の外部からアクセス不可となるように構成される。
【選択図】 図7

Description

本発明は、暗号化/復号化装置、通信コントローラ及び電子機器に関する。
近年、MPEG(Moving Picture Experts Group、より具体的にはMPEG2)ストリームを配信するBSデジタル放送等のデジタル放送が脚光を浴び、デジタル放送チューナやデジタル放送のコンテンツの記録/再生装置等の電子機器の普及が著しい。このため、コンテンツの内容がデジタル的に不正に複製されるのを防止すべく、コンテンツの複製防止技術が導入されている。
デジタル放送チューナと記録/再生装置は、例えばIEEE(Institute of Electrical and Electronics Engineers)1394に代表される汎用高速シリアルインタフェースを介して接続される。IEEE1394向けの複製防止技術として、例えばDTCP(Digital Transmission Content Protect)規格が策定されている。現在では、このDTCP規格が、インターネットの普及等に伴うAVネットワークの複製防止技術として利用されている(例えばDTCPoverIP)。
このようなAVネットワークにおけるコンテンツを保護する装置として、例えば特許文献1〜特許文献2に開示されている装置がある。特許文献1には、入力パケットのうち、著作権保護が必要なパケットのペイロードについては既に暗号化されているのでそのまま装置外部のPCIバスに出力し、著作権保護が不要なパケットについてはペイロードを暗号化した後に該PCIバスに出力する暗号化手段を含む装置が開示されている。特許文献2には、入力パケットをヘッダとペイロードとに分割し、該ペイロードを暗号化した後に、該ヘッダと暗号化されたペイロードとを合成して装置外部の記録媒体に記録させる装置が開示されている。
特開2001−86481号公報 特開2003−3193221号公報
上述のように、AVネットワークの複製防止技術として利用されるDTCP規格では、DES(Data Encryption Standard)に代わる米国の次世代標準化暗号化アルゴリズムであるAES(Advanced Encryption Standard)を採用する必要がある。AESは、DESに比べて解読されにくい。
しかしながら、AESの暗号化アルゴリズムに従った暗号化及び復号化処理の負荷は、DESの暗号化アルゴリズムに従った暗号化及び復号化処理の負荷より重い。そのためAESの暗号化及び復号化処理をソフトウェアで実現した場合、スループットの低下を招く。従って、スループットを向上させるためにはAESの暗号化処理及び復号化処理をハードウェアで実現することが望ましい。
その一方、パケットを復号化したデータを装置の外部に出力すると、コンテンツの内容がデジタル的に不正に複製される恐れがあり、装置外部では暗号化した状態で出力する必要がある。
本発明は、以上のような技術的課題に鑑みてなされたものであり、その第1の目的とするところは、暗号化及び復号化処理の負荷を分担することでスループットを向上させる暗号化/復号化装置、通信コントローラ及び電子機器を提供することにある。
また本発明の第2の目的は、不正に複製されることなくコンテンツの暗号化及び復号化処理を高速に実現する暗号化/復号化装置、通信コントローラ及び電子機器を提供することにある。
上記課題を解決するために本発明は、
第1の暗号化処理後の入力データが入力され第2の暗号化処理後の出力データを出力し、或いは前記第2の暗号化処理後の入力データが入力され前記第1の暗号化処理後の出力データを出力するための暗号化/復号化装置であって、
前記入力データ及び前記出力データを記憶するための記憶部と、
前記第1の暗号化処理及び第1の復号化処理を行う第1の暗号化/復号化処理部と、
前記第2の暗号化処理及び第2の復号化処理を行う第2の暗号化/復号化処理部とを含み、
前記記憶部から読み出された前記入力データに対して前記第1及び第2の暗号化/復号化処理部の一方が行った前記第1又は第2の復号化処理後の復号化データを前記記憶部に格納すると共に、
前記記憶部から読み出された前記第1又は第2の復号化処理後の前記復号化データに対して前記第1及び第2の暗号化/復号化処理部の他方が行った前記第1又は第2の暗号化処理後のデータを前記出力データとして前記記憶部に格納し、
前記記憶部の記憶領域のうち前記復号化データの記憶領域が、前記暗号化/復号化装置の外部からアクセス不可となるように構成される暗号化/復号化装置に関係する。
本発明においては、暗号化/復号化装置の入力データ及び出力データが、第1又は第2の暗号化処理後のデータとなる。その際、入力データを第1又は第2の復号化処理した後の復号化データは、暗号化/復号化装置の外部からアクセス不可の記憶領域にバッファリングされる。従って、本発明によれば、暗号化/復号化装置に対して入力データを設定する処理部において、第1及び第2の暗号化/復号化処理部の処理負荷を軽減できると共に、該処理部との間で暗号化された状態でデータをやり取りできる。そのため、データがデジタル的に不正に複製されることなく、処理部のスループットの向上に貢献できるようになり、コンテンツの暗号化及び復号化処理を高速に実現する暗号化/復号化装置を提供できるようになる。
また本発明は、
第1の暗号化処理後の入力データが入力され第2の暗号化処理後の出力データを出力し、或いは前記第2の暗号化処理後の入力データが入力され前記第1の暗号化処理後の出力データを出力するための暗号化/復号化装置であって、
前記暗号化/復号化装置の外部からアクセス可能な記憶部であって前記入力データを記憶するための第1の記憶部と、
前記第1の暗号化処理及び第1の復号化処理を行う第1の暗号化/復号化処理部と、
前記第2の暗号化処理及び第2の復号化処理を行う第2の暗号化/復号化処理部と、
前記暗号化/復号化装置の外部からアクセス不可能な記憶部であって前記入力データに対する前記第1又は第2の復号化処理後の復号化データを記憶するための第2の記憶部と、
前記暗号化/復号化装置の外部からアクセス可能な記憶部であって前記出力データを記憶するための第3の記憶部とを含み、
前記入力データに対して前記第1及び第2の暗号化/復号化処理部の一方が行った前記第1又は第2の復号化処理後の前記復号化データを前記第2の記憶部に格納すると共に、
前記第1又は第2の復号化処理後の前記復号化データに対して前記第1及び第2の暗号化/復号化処理部の他方が行った前記第1又は第2の暗号化処理後のデータを前記出力データとして前記第3の記憶部に格納する暗号化/復号化装置に関係する。
本発明においては、暗号化/復号化装置の入力データ及び出力データが、第1又は第2の暗号化処理後のデータとなる。その際、入力データを第1又は第2の復号化処理した後の復号化データは、暗号化/復号化装置の外部からアクセス不可の第2の記憶部にバッファリングされる。従って、本発明によれば、暗号化/復号化装置に対して入力データを設定する処理部において、第1及び第2の暗号化/復号化処理部の処理負荷を軽減できると共に、該処理部との間で暗号化された状態でデータをやり取りできる。そのため、データがデジタル的に不正に複製されることなく、処理部のスループットの向上に貢献できるようになり、コンテンツの暗号化及び復号化処理を高速に実現する暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記第1〜第3の記憶部の各記憶部が、
1つのメモリ空間内に分割された記憶領域に割り当てられ、
各記憶領域が、
可変であってもよい。
本発明によれば、第1の暗号化及び復号化処理、第2の暗号化及び復号化処理の処理単位に応じて各記憶部の記憶領域を設定できるようになるので、記憶部の記憶領域を有効活用できるようになる。
また本発明に係る暗号化/復号化装置では、
前記入力データに付加されたヘッダ情報を解析するヘッダ解析部を含み、
前記入力データに対し前記第1及び第2の復号化処理のうち前記ヘッダ情報に対応した復号化処理、及び前記復号化データに対し前記第1及び第2の暗号化処理のうち前記ヘッダ情報に対応した暗号化処理の少なくとも1つの処理を行うことができる。
本発明によれば、入力データに付加されたヘッダ情報に基づいて、暗号化処理及び復号化処理の制御を行うことができるようになるので、暗号化/復号化装置の構成及び制御の簡素化を図ることができるようになる。
また本発明に係る暗号化/復号化装置では、
前記ヘッダ情報に基づいて第1の動作モードが指定されたとき、
前記第1の暗号化/復号化処理部が、前記入力データに対して行った前記第1の復号化処理後のデータを前記復号化データとして生成し、
前記第2の暗号化/復号化処理部が、前記復号化データに対して行った前記第2の暗号化処理後のデータを前記出力データとして生成することができる。
本発明によれば、第1の暗号化処理後のデータを入力データとし、第2の暗号化処理後のデータを出力データとすることができるので、第1の暗号化処理から第2の暗号化処理への暗号化方式のブリッジ機能を高速に実現できる暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記ヘッダ情報に基づいて第2の動作モードが指定されたとき、
前記第2の暗号化/復号化処理部が、前記入力データに対して行った前記第2の復号化処理後のデータを前記復号化データとして生成し、
前記第1の暗号化/復号化処理部が、前記復号化データに対して行った前記第1の暗号化処理後のデータを前記出力データとして生成することができる。
本発明によれば、第2の暗号化処理後のデータを入力データとし、第1の暗号化処理後のデータを出力データとすることができるので、第2の暗号化処理から第1の暗号化処理への暗号化方式のブリッジ機能を高速に実現できる暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記ヘッダ情報に基づいて第3の動作モードが指定されたとき、
前記第2の暗号化/復号化処理部が、前記入力データに対して行った前記第2の復号化処理後のデータを前記出力データとして生成することができる。
本発明によれば、第2の復号化処理前のデータを入力データとし、第2の復号化処理後のデータを出力データとすることができるので、第2の復号化処理を行う復号器の機能を高速に実現できる暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記ヘッダ情報に基づいて第4の動作モードが指定されたとき、
前記第1の暗号化/復号化処理部が、前記入力データに対して行った前記第1の暗号化処理後のデータを前記出力データとして生成することができる。
本発明によれば、第1の暗号化処理前のデータを入力データとし、第1の暗号化処理後のデータを出力データとすることができるので、第1の暗号化処理を行う暗号器の機能を高速に実現できる暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記ヘッダ情報に基づいて第5の動作モードが指定されたとき、
前記第2の暗号化/復号化処理部が、前記入力データに対して行った前記第2の暗号化処理後のデータを前記出力データとして生成することができる。
本発明によれば、第2の暗号化処理前のデータを入力データとし、第2の暗号化処理後のデータを出力データとすることができるので、第2の暗号化処理を行う暗号器の機能を高速に実現できる暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記ヘッダ情報に基づいて第6の動作モードが指定されたとき、
前記第1の暗号化/復号化処理部が、前記入力データに対して行った前記第1の復号化処理後のデータを前記出力データとして生成することができる。
本発明によれば、第1の復号化処理前のデータを入力データとし、第1の復号化処理後のデータを出力データとすることができるので、第1の復号化処理を行う復号器の機能を高速に実現できる暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記暗号化/復号化装置の動作を制御するためのコントローラと、
前記第1及び第2の暗号化処理を行うための暗号鍵と前記第1及び第2の復号化処理を行うための復号鍵とを生成するためのデータを有するプログラムであって前記コントローラの動作を指定するためのプログラムを格納するためのプログラムメモリとを含み、
前記復号化データがプログラムデータとして前記プログラムメモリに転送された後、前記コントローラが前記プログラムデータに基づいて前記暗号化/復号化装置の動作を制御することができる。
本発明によれば、プログラムデータを暗号化した状態でプログラムメモリに転送できるため、秘匿性を低下させることなく制御可能な暗号化/復号化装置を提供できるようになる。
また本発明に係る暗号化/復号化装置では、
前記第1の暗号化/復号化処理部が、
AES(Advanced Encryption Standard)に準拠した暗号化処理及び復号化処理を行い、
前記第2の暗号化/復号化処理部が、
DES(Data Encryption Standard)に準拠した暗号化処理及び復号化処理を行うことができる。
また本発明は、
ネットワークを介してレイヤ構造の通信データを送受信するための通信コントローラであって、
前記通信データの送信処理及び受信処理を行う通信処理部と、
上記のいずれか記載の暗号化/復号化装置とを含み、
前記通信データの受信時には、
前記通信処理部によって解析されたヘッダ情報のレイヤより上位のレイヤの前記第1の暗号化処理後のデータを前記入力データとして前記暗号化/復号化装置が前記第1の復号化処理した後に前記第2の暗号化処理したデータを前記出力データとして出力し、
前記通信データの送信時には、
送信データを前記入力データとして前記暗号化/復号化装置が前記第2の復号化処理した後に前記第1の暗号化処理したデータを前記出力データとして出力し、前記通信処理部が該出力データに、上位レイヤのヘッダ情報を付加して前記ネットワークに送信する通信コントローラに関係する。
本発明によれば、不正に複製されることなくコンテンツの暗号化及び復号化処理を高速に実現する暗号化/復号化装置を含む通信コントローラを提供できる。
また本発明は、
上記記載の通信コントローラと、
前記第2の暗号化処理及び第2の復号化処理を行う処理部とを含み、
前記通信データの受信時には、
前記通信コントローラが、前記処理部に対して前記第2の暗号化処理後のデータを供給し、
前記通信データの送信時には、
前記処理部が、前記第2の暗号化処理後のデータを前記入力データとして前記通信コントローラに供給する電子機器に関係する。
本発明によれば、不正に複製されることなくコンテンツの暗号化及び復号化処理を高速に実現する通信コントローラを含む電子機器を提供できる。
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1. 通信システム
図1に、本実施形態における暗号化/復号化装置を含む通信システムの構成例を示す。
この通信システムは、デジタルコンテンツを含む通信データが送受信される電子機器10、20を含む。電子機器10及び電子機器20は、ネットワークを介して接続される。コンテンツデータの不正な複製、不正な取り出し、又は不正な改ざんを防止するため、電子機器10及び電子機器20の間では、DTCP規格に準拠したアルゴリズムで暗号化されたコンテンツデータが送受信される。
図1では、例えば電子機器10及び電子機器20は、イーサネット(登録商標)ケーブルを介して接続され、レイヤ構造の通信データを送受信するが、無線ネットワークを介してレイヤ構造の通信データを送受信してもよい。電子機器20の構成は、電子機器10の構成と同様にすることができる。図1は、電子機器10の構成要部のみを示している。
電子機器10は、メインCPU(Central Processing Unit)(広義には処理部)40、通信コントローラ(ネットワークコントローラ)50を含む。メインCPU40は、電子機器10の全体の制御を司る。通信コントローラ50は、イーサネット(登録商標)ケーブルを介して送受信される通信データの送信処理及び受信処理を行う。
通信コントローラ50は、上位レイヤ解析部として動作するTCP/IP(Transmission Control Protocol/Internet Protocol)処理部(広義には通信処理部)60と暗号化/復号化装置(或いは暗号化復号化装置、暗号化・復号化装置)100とを含む。
TCP/IP処理部60は、イーサネット(登録商標)ケーブルを介して伝送されるコンテンツデータに付加されたTCP/IPヘッダの生成及び解析を行う。
暗号化/復号化装置100は、DTCP規格で規定されたAESのアルゴリズムに従った暗号化及び復号化処理を行い、メインCPU40の処理負荷を軽減させる。更に、暗号化された状態でメインCPU40との間でコンテンツデータのやりとりを行うため、暗号化/復号化装置100は、AESの暗号化及び復号化処理の他に、メインCPU40との間で予め取り決めたアルゴリズムの暗号化及び復号化処理も行うことができるようになっている。本実施形態における暗号化/復号化装置100は、メインCPU40との間でDESのアルゴリズムの暗号化及び復号化処理を行う。
1.1 DTCP
図2に、図1の電子機器10、20間で行われるDTCP規格に準拠した処理の一例を示す。
DTCP規格では、まずソース(Source)と呼ばれるコンテンツデータの送信側の機器とシンク(Sink)と呼ばれるコンテンツデータの受信側の機器との間で認証処理を行い、認証された機器同士でコンテンツ鍵Kcが共有される。
即ち、まず暗号化されたコンテンツデータを復号化するため、受信側機器が送信側機器に対して認証要求を行う(SEQ1)。
これに伴って、ソースとシンクとの間で機器認証が行われる(SEQ2)。この機器認証は、公開鍵暗号技術を用いたFull Authenticationと、共通鍵暗号技術を用いたRestricted Authenticationとがあり、コンテンツデータの複製制限情報や機器の特性等に応じて使い分けられ、例えば、イーサネット(登録商標)ケーブル上で転送されるコンテンツデータの保護に使用されるDTCP over IP規格ではFull Authenticationのみ使用することが許可されている。
機器認証の結果、両方の機器が互いに相手側の機器を認証した場合、鍵交換が行われる(SEQ3)。この結果、両方の機器の間で乱数Ncと交換鍵Kxとが共有される。そして各機器において次式に示す関数を用いて、それぞれ別個にコンテンツ鍵Kcを生成する(SEQ4、SEQ5)。
Kc=Func(Kx,C,Nc) ・・・(1)
ここで、各機器では、予め決められた関数Func()と定数Cとを用いて、コンテンツ鍵Kcを求める。
その後、送信側機器が、コンテンツ鍵Kcを用いて、AESのアルゴリズムに従ってコンテンツデータの暗号化処理を行って、受信側機器に送信する(SEQ6、SEQ7)。受信側機器は、コンテンツ鍵Kcを用いて、受信したコンテンツデータの復号化処理を行って、コンテンツデータを取得する。
その後は、同様に、認証されている機器同士で、コンテンツ鍵Kcを用いてコンテンツデータの暗号化処理及び復号化処理を行って、コンテンツデータのやりとりを行う。
コンテンツデータは、PCP(Protected Content Packets)単位で送信側機器と受信側機器との間で送受信され、このPCP単位で鍵更新が行われる。
従って、コンテンツ鍵Kcを用いて暗号化処理及び復号化処理(SEQ9、SEQ10)を行った後、PCP単位のコンテンツデータの暗号化処理が終了すると、送信側機器は、コンテンツ鍵の更新を行う。また受信側機器においても、PCP単位のコンテンツデータの復号化処理が終了すると、コンテンツ鍵の更新を行う。送信側機器及び受信側機器は、次式に示す関数を用いて、更新後のコンテンツ鍵Kc´を生成する(SEQ11、SEQ12)。
Kc´=Func(Kx,C,Nc+1) ・・・(2)
そして、再び、送信側機器が、コンテンツ鍵Kc´を用いて、AESのアルゴリズムに従ってコンテンツデータの暗号化処理を行って、受信側機器に送信する(SEQ13)。受信側機器は、コンテンツ鍵Kc´を用いて、受信したコンテンツデータの復号化処理を行って、コンテンツデータを取得する(SEQ14)。
その後、同様に、認証されている機器同士で、PCP単位でコンテンツ鍵Kc´を用いてコンテンツデータの暗号化処理及び復号化処理を行って、コンテンツデータのやりとりを行う。
なおDTCP規格の詳細は、「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)に記載されている。
本実施形態において、上記の認証処理はメインCPU40において行い、AESの暗号化及び復号化処理(コンテンツ鍵の生成も含む)を暗号化/復号化装置100において行うことができる。また、暗号化/復号化装置100の内部又は外部にアクセラレータを設けて、該アクセラレータが該認証処理を行うようにしてもよい。
1.2 動作の概要
図3に、図1の通信システムにおける各種のパケットの構成例を示す。
イーサネット(登録商標)ケーブルを介して、受信側機器として電子機器10で受信されたパケットは、AESで暗号化されたコンテンツデータに、PCPヘッダ、HTTP(Hypertext Transfer Protocol)ヘッダ、TCP/IPヘッダが付加されたデータである。TCP/IP処理部60は、TCP/IPヘッダの宛先等の解析や、TCP/IPヘッダの生成及び付加する処理を行う。
メインCPU40とTCP/IP処理部60との間では、TCP/IPヘッダが付加されるレイヤより上位のレイヤのデータがやり取りされる。メインCPU40は、HTTPヘッダの解析や、HTTPヘッダの生成及び付加する処理を行う。更にメインCPU40は、暗号化/復号化装置100の制御用のCOMヘッダを生成する。またメインCPU40は、PCPヘッダを拡張したPCPExtendヘッダを生成し、PCPExtendヘッダ及びCOMヘッダを暗号化されたコンテンツデータに付加したパケットデータを暗号化/復号化装置100に供給する。ここで、PCPExtendヘッダは、PCPヘッダの情報をそのまま含む。
暗号化/復号化装置100は、メインCPU40との間で暗号化された状態でコンテンツデータを受信するために、暗号化処理及び復号化処理を行う。より具体的には、メインCPU40を介してTCP/IP処理部60との間で送受信されるコンテンツデータについては、暗号化/復号化装置100は、メインCPU40との間で、DTCP規格で規定されたAESのアルゴリズムで暗号化処理されたコンテンツデータの送受信を行う。また、TCP/IP処理部60に供されることなく、メインCPU40との間で送受信されるコンテンツデータについては、暗号化/復号化装置100は、メインCPU40との間で予め取り決められたアルゴリズムで暗号化処理されたコンテンツデータの送受信を行う。本実施形態では、暗号化/復号化装置100とメインCPU40との間で、予めDESのアルゴリズムを用いることが取り決められているものとする。
図4に、図1の通信システムにおけるコンテンツデータの受信処理の一例のシーケンスを示す。
まず、通信コントローラ50では、AESのアルゴリズムで暗号化されたコンテンツデータを含むパケットが受信される。TCP/IP処理部60は、該パケットのTCP/IPヘッダの送信元や受信先等を解析し(SEQ30)、自分宛のパケットであると判別すると、TCP/IPヘッダが付加されるレイヤより上位のレイヤのデータ、及び送信元や受信先を識別するための情報を、メインCPU40に供給する(SEQ31)。
メインCPU40では、必要に応じてHTTPヘッダを解析し(SEQ32)、TCP/IP処理部60より転送されてきた情報を基に、コンテンツデータの供給元を判別して、該供給元に対応した識別情報IDを含むCOMヘッダを生成し、PCPヘッダを含むPCPExtendヘッダを生成する。メインCPU40は、コンテンツデータに、PCPExtendヘッダ及びCOMヘッダを付加し(SEQ33)、通信コントローラ50の暗号化/復号化装置100に対して送信する(SEQ34)。
暗号化/復号化装置100では、COMヘッダを解析し(SEQ35)、その解析結果に基づいて、コンテンツデータをAESのアルゴリズムで復号化処理後(SEQ36)、該復号化処理後のコンテンツデータをDESのアルゴリズムで暗号化処理する(SEQ37)。AESの復号化処理時には、COMヘッダの識別情報IDに応じた鍵が用いられる。DESのアルゴリズムで暗号化処理されたコンテンツデータは、メインCPU40に送信される(SEQ38)。
メインCPU40は、DESのアルゴリズムで暗号化されたコンテンツデータを受信後、DESのアルゴリズムで復号化処理する(SEQ39)。
このように受信処理時には、メインCPU40と通信コントローラ50との間で、コンテンツデータは、AES又はDESのアルゴリズムで暗号化された状態でやり取りされる。そのため、不正にコンテンツデータが複製されることなく、電子機器20から送信されたコンテンツデータを取得できる。
そして暗号化/復号化装置100が、処理負荷の重いAESのアルゴリズムの復号化処理をメインCPU40に代わって行う。メインCPU40と暗号化/復号化装置100との間で暗号化された状態でコンテンツデータをやり取りするが、メインCPU40は、AESのアルゴリズムより処理負荷の軽いDESのアルゴリズムで復号化処理を行うことができればよいので、メインCPU40の処理能力を他の処理に割り当てることができ、スループットを向上させることができる。
加えて、暗号化/復号化装置100は、DTCPなどの規格に従った鍵生成、あるいは更新作業を担うことが可能であるため、メインCPUは、暗号化/復号化装置100との間でのみ鍵管理を行うだけでよい。
更に、通信コントローラ50のTCP/IP処理部60でTCP/IPヘッダを解析後、一旦メインCPU40に渡した後に、通信コントローラ50の暗号化/復号化装置100にPCPヘッダ以降の上位のレイヤを戻すようにしている。こうすることで、HTTPヘッダが付加されるレイヤとPCPヘッダが付加されるレイヤとの間の中間レイヤが今後設けられた場合でも、ハードウェア構成を変更する必要がなく、柔軟に対応できる。なぜなら、ソフトウェアで実現されるメインCPU40の機能に、HTTPヘッダが付加されるレイヤのみならず、該中間レイヤの解析機能を容易に追加できるからである。
また、図1の構成例では、TCP/IP処理部60と暗号化/復号化装置100が、通信コントローラ50に含まれているが、TCP/IP処理部60と暗号化/復号化装置100機能が、それぞれ独立した機能部として構成されていても良い。
図5に、図1の通信システムにおけるコンテンツデータの送信処理の一例のシーケンスを示す。
まず、メインCPU40は、電子機器20に送信したいコンテンツデータを、DESのアルゴリズムで暗号化処理する(SEQ50)。そして、メインCPU40は、送信先に対応した識別情報IDを指定すると共に、暗号化/復号化装置100においてDESで復号化処理後にAESで暗号化処理を行う旨の制御情報を含むPCPExtendヘッダ、COMヘッダを生成し、該PCPExtendヘッダ及びCOMヘッダが付加されたコンテンツデータを通信コントローラ50に送信する(SEQ51、SEQ52)。
通信コントローラ50の暗号化/復号化装置100は、COMヘッダを解析し(SEQ53)、その解析結果に基づいて、コンテンツデータをDESのアルゴリズムで復号化処理後(SEQ54)、該復号化処理後のコンテンツデータをAESのアルゴリズムで暗号化処理する(SEQ55)。AESの暗号化処理時には、COMヘッダの識別情報IDに応じた鍵が用いられる。AESのアルゴリズムで暗号化処理されたコンテンツデータは、メインCPU40に送信される(SEQ56)。
メインCPU40では、識別情報IDに対応した送信先を指定したHTTPヘッダを作成し、PCPExtendヘッダをPCPヘッダに変換する。そして、PCPヘッダ、HTTPヘッダをコンテンツデータに付加し(SEQ57)、TCP/IP処理部60に送信する(SEQ58)。
TCP/IP処理部60は、電子機器20に対応した送信先を特定するTCP/IPヘッダを付加し(SEQ59)、電子機器20に対して送信する。
このように送信処理時においても、メインCPU40と通信コントローラ50との間で、コンテンツデータは、AES又はDESのアルゴリズムで暗号化された状態でやり取りされる。そのため、不正にコンテンツデータが複製されることなく、コンテンツデータを電子機器20に送信できる。
そして暗号化/復号化装置100が、処理負荷の重いAESのアルゴリズムの暗号化処理をメインCPU40に代わって行う。メインCPU40と暗号化/復号化装置100との間で暗号化された状態でコンテンツデータをやり取りするが、メインCPU40は、AESのアルゴリズムより処理負荷の軽いDESのアルゴリズムで暗号化処理を行うことができればよいので、メインCPU40の処理能力を他の処理に割り当てることができ、スループットを向上させることができる。
更に、通信コントローラ50の暗号化/復号化装置100においてコンテンツデータをAESのアルゴリズムで暗号化して一旦メインCPU40に渡した後に、通信コントローラ50のTCP/IP処理部60に戻すようにしている。こうすることで、HTTPヘッダが付加されるレイヤとPCPヘッダが付加されるレイヤとの間の中間レイヤが今後設けられた場合でも、ハードウェア構成を変更する必要がなく、柔軟に対応できる。なぜなら、ソフトウェアで実現されるメインCPU40の機能に、HTTPヘッダが付加されるレイヤのみならず、該中間レイヤのヘッダの生成及び追加機能を容易に追加できるからである。
なおメインCPU40と暗号化/復号化装置100との間でやり取りされるコンテンツデータは、パケットのバッファリングサイズ等を考慮して、複数個に分割してもよい。
図6に、図1の通信システムにおける各種のパケットの構成の他の例を示す。
このように、各パケットには、COMヘッダが付加される。分割された最初のパケットにのみPCPExtendヘッダが付加される。
以上のようなパケットの分割は、PCPExtendヘッダが付加されているか否かを判別するための情報をCOMヘッダに付加することで容易に実現できる。
2. 暗号化/復号化装置
図7に、図1の暗号化/復号化装置100の構成例のブロック図を示す。
暗号化/復号化装置100は、AESのアルゴリズムに従った暗号化処理後(第1の暗号化処理後)の入力データが入力され、DESのアルゴリズムに従った暗号化処理後(第2の暗号化処理後)の出力データを出力する。或いは、暗号化/復号化装置100は、DESのアルゴリズムに従った暗号化処理後(第2の暗号化処理後)の入力データが入力され、AESのアルゴリズムに従った暗号化処理後(第1の暗号化処理後)の出力データを出力する。
暗号化/復号化装置100は、記憶部110と、AES処理部(広義には、第1の暗号化/復号化処理部)120と、DES処理部(広義には、第2の暗号化/復号化処理部)130とを含む。記憶部110には、暗号化/復号化装置100の入力データ及び出力データが格納される。記憶部110の機能は、SRAM(Static Random Access Memory)やDRAM(Dynamic Random Access Memory)等のメモリ素子、レジスタ回路、FIFO(First-In First-Out)機能を有するメモリ素子等により実現される。
AES処理部120は、AESのアルゴリズムに従った暗号化処理(第1の暗号化処理)及びAESのアルゴリズムに従った復号化処理(第1の復号化処理)を行う。
DES処理部130は、DESのアルゴリズムに従った暗号化処理(第2の暗号化処理)及びDESのアルゴリズムに従った復号化処理(第2の復号化処理)を行う。
そして暗号化/復号化装置100は、記憶部110から読み出された入力データに対してAES処理部120及びDES処理部130の一方が行ったAES又はDESのアルゴリズムに従った復号化処理後の復号化データを記憶部に格納する。そして暗号化/復号化装置100は、記憶部110から読み出された復号化データに対してAES処理部120及びDES処理部130の他方が行ったAES又はDESのアルゴリズムに従った暗号化処理後のデータを出力データとして記憶部110に格納する。このとき、記憶部110の記憶領域のうち復号化データの記憶領域が、暗号化/復号化装置100の外部からアクセス不可となるように構成される。
このような暗号化/復号化装置100は、切換回路150を含むことができる。切換回路150は、入力データをAES処理部120又はDES処理部130に供給するための経路切り換えを行うことができる。また切換回路150は、AES処理部120で行われた暗号化又は復号化処理後のデータを、記憶部110の出力データの記憶領域又は復号化データの記憶領域に供給するための経路切り換えを行うことができる。更に切換回路150は、DES処理部130で行われた暗号化又は復号化処理後のデータを、記憶部110の出力データの記憶領域又は復号化データの記憶領域に供給するための経路切り換えを行うことができる。
暗号化/復号化装置100は、コントローラ160によって制御される。例えばコントローラ160は、AES処理部120の暗号化及び復号化処理のための鍵の設定、DES処理部130の暗号化及び復号化処理のための鍵の設定を行うことができる。コントローラ160の機能はCPUによって実現され、プログラムメモリ170に記憶されたプログラムに従って暗号化/復号化装置100の制御を行う。
図8(A)、図8(B)に、AES処理部120の処理の概要のフローを示す。
図8(A)に、AES処理部120によって行われる暗号化処理の概要を示す。コントローラ160は、図2で説明したようにして取得したコンテンツ鍵Kcに基づいて拡張処理を行ってラウンド毎の鍵K、K・・・、KNrを生成する。そしてAES処理部120は、平文である入力データの128ビット分の長さを1ブロックとして、ブロック単位にラウンド毎に鍵を変更しながら暗号化操作をしていく。
初段暗号化操作では、鍵Kを用いてAddRoundkey操作が行われる。その後、ラウンド1〜ラウンド(Nr−1)まで、各ラウンド毎の鍵を用いてSubBytes操作、ShiftRows操作、MixColumns操作及びAddRoundKey操作を行い、最終段暗号化操作では、SubBytes操作、ShiftRows操作及びAddRoundkey操作が行われる。
図8(B)に、AES処理部120によって行われる復号化処理の概要を示す。コントローラ160は、図2で説明したようにして取得したコンテンツ鍵Kcに基づいて拡張処理を行ってラウンド毎の鍵iKNr、iKNr−1・・・、iKを生成する。そしてAES処理部120は、暗号文である入力データの128ビット分の長さを1ブロックとして、ブロック単位にラウンド毎に鍵を変更しながら復号化操作をしていく。
初段復号化操作では、鍵iKNrを用いてAddRoundkey操作が行われる。その後、ラウンド(Nr−1)〜ラウンド1まで、各ラウンド毎の鍵を用いてInvShiftrows操作、InvSubBytes操作、AddRoundkey操作及びInvMixColumns操作を行い、最終段復号化操作では、InvShifRows操作、InvSubBytes操作及びAddRoundkey操作が行われる。
なお暗号化操作及び復号化操作における各操作の内容の詳細は、例えば「Announcing the ADVANCED ENCRYPTION STANDARD(AES)」(November 26,2001、FIPS PUB 197)に記載されているため、その説明は省略する。
このようにAES処理部120の処理は同じ操作を繰り返し行うため、ハードウェア化した場合により一層の処理の高速化を図ることができる。
図9に、DES処理部130によって行われる暗号化処理の概要を示す。
暗号化/復号化装置100は、メインCPU40との間で共通秘密鍵を共有しており、該共通秘密鍵に基づいて各ラウンド毎を保持している。そしてDES処理部130は、平文である入力データの64ビット分の長さを1ブロックとして、ブロック単位にラウンド毎に鍵を変更しながら暗号化操作をしていく。
初段暗号化操作では、初期転置やビット分割等の暗号化操作が行われる。その後、ラウンド1〜ラウンド16まで、拡大転置、各ラウンド毎の鍵を用いた排他的論理和演算、圧縮換字変換、転置処理等の暗号化操作を行い、最終段暗号化操作では、ビットの入れ替え及び最終転置が行われる。
なおDES処理部130で行われる復号化処理は、図9に示す手順と逆の手順で各操作を行うことで実現できる。この場合、鍵は暗号化処理とは逆に、K16、K15、・・・、Kの順番で用いる。
DES処理部130における各操作の内容もまた公知であるため、その説明は省略する。
このようにDES処理部130の処理は同じ操作を繰り返し行うため、ハードウェア化した場合により一層の処理の高速化を図ることができる。
以上のように、図7に示す暗号化/復号化装置100は、AES及びDESのアルゴリズムの暗号化処理及び復号化処理を行うことができる上に、入力データ及び出力データの暗号化及び復号化方式を変更できる。従って、暗号化/復号化装置100に入力される入力データ、及び暗号化/復号化装置100から出力された出力データは、AES又はDESのアルゴリズムで暗号化処理された後のデータとすることができる。
そのため記憶部110のうち入力データ及び出力データの記憶領域が、暗号化/復号化装置100の外部からアクセス可能に構成されていても、入力データ及び出力データが不正に複製されることがない。また、復号化データを、暗号化/復号化装置100の外部からアクセス不可となる記憶部110の記憶領域に格納したため、復号化データが不正に複製されることがない。
なお図7において、記憶部110は、第1〜第3の記憶部112、114、116の各記憶部が、それぞれ別個に設けられていてもよい。第1の記憶部112は、暗号化/復号化装置100の外部からアクセス可能な記憶部であって入力データを記憶する。第2の記憶部114は、暗号化/復号化装置100の外部からアクセス不可能な記憶部であって入力データに対するAES又はDESのアルゴリズムに従った復号化処理後の復号化データを記憶する。第3の記憶部116は、暗号化/復号化装置100の外部からアクセス可能な記憶部であって出力データを記憶する。
そして、暗号化/復号化装置100は、AES処理部120及びDES処理部130の一方が復号化データを第2の記憶部112に格納すると共に、AES処理部120及びDES処理部130の他方が復号化データに対して行ったAES又はDESのアルゴリズムに従った暗号化処理後のデータを出力データとして第3の記憶部116に格納する。
また、第1〜第3の記憶部112、114、116の各記憶部が、それぞれ入力エリア(InputArea)、中間エリア(MediumArea)、出力エリア(OutputArea)として、1つのメモリ空間内に分割された記憶領域に割り当てられ、各記憶領域が、可変であってもよい。
図10に、各記憶領域が可変に設定される図7の記憶部110の構成例を示す。
記憶部110の記憶領域のうちベースアドレスBaseAddrを基準に、入力エリア、中間エリア及び出力エリアの各記憶領域が特定される。暗号化/復号化装置100は、図示しない制御レジスタとしての記憶領域設定レジスタを含み、メインCPU40が該記憶領域設定レジスタの設定内容を変更する。
例えば記憶領域設定レジスタは、中間エリア開始位置設定レジスタ、中間エリア終了位置設定レジスタ、出力エリア終了位置設定レジスタを含むことができる。中間エリア開始位置設定レジスタには、中間エリア開始アドレスMedStartAddrが設定される。中間エリア終了位置設定レジスタには、中間エリア終了アドレスMedEndAddrが設定される。出力エリア終了位置設定レジスタには、出力エリア終了アドレスOutEndAddrが設定される。この結果、記憶部110の記憶領域のうちアドレスBaseAddrからアドレス(MedStartAddr-1)までの記憶領域を、入力エリアの記憶領域とすることができる。記憶部110の記憶領域のうちアドレスMedStartAddrからアドレスMedEndAddrまでの記憶領域を、中間エリアの記憶領域とすることができる。記憶部110の記憶領域のうちアドレス(MedEndAddr+1)からアドレスOutEndAddr(又は(OutEndAddr-1))までの記憶領域を、出力エリアの記憶領域とすることができる。
メインCPU40は、コンテンツデータを分割する単位に基づいて、中間エリア開始位置設定レジスタ、中間エリア終了位置設定レジスタ及び出力エリア終了位置設定レジスタの各レジスタの設定内容を変更することが望ましい。ベースアドレスBaseAddrを変更できるようにすれば、記憶部110の任意の位置に入力エリア、中間エリア及び出力エリアの各記憶領域を設定できる。
なお暗号化/復号化装置100では、入力エリア、中間エリア及び出力エリアの各エリアがリングバッファとしてアクセスされる。各エリアは、データの読み出し位置を指定するリードポインタ(InAreaRdPtr、MedAreaRdPtr、OutAreaRdPtr)と、データの書き込み位置を指定するライトポインタ(InAreaWrPtr、MedAreaWrPtr、OutAreaWrPtr)とにより管理される。そして、各ポインタがエリアの最終アドレスに到達すると、ポインタの更新時に該エリアの開始アドレスに設定されるようになっている。
2.1 COMヘッダ
本実施形態では、メインCPU40によってCOMヘッダが付加されたコンテンツデータが暗号化/復号化装置100に設定される。暗号化/復号化装置100は、COMヘッダを解析することで、コンテンツデータに応じた暗号化処理及び復号化処理を行う。
そのため図7に示す暗号化/復号化装置100は、ヘッダ解析部180を含むことができる。ヘッダ解析部180は、入力エリア(第1の記憶部)に設定されたコンテンツデータに付加されたCOMヘッダを検出し、該COMヘッダの内容を解析する。そして暗号化/復号化装置100は、入力データに対しAES及びDESの復号化処理のうちCOMヘッダに対応した復号化処理、及び復号化データに対しAES及びDESの暗号化処理のうちCOMヘッダに対応した暗号化処理の少なくとも1つの処理を行う。ヘッダ解析部180を含むことによって、暗号化/復号化装置100の処理手順を指定するためにメインCPU40がアクセス可能な制御レジスタ等を設ける必要がなくなり、暗号化/復号化装置100の制御及び構成の簡素化を図ることができるようになる。
図11に、本実施形態におけるCOMヘッダの構成例を示す。
COMヘッダは、16ビット長のSYNCフィールド、4ビット長のIDフィールド、4ビット長のTranTYPEフィールド、1ビットのExFlgフィールド、32ビット長のPacketLengthフィールドを含む。
SYNCフィールドには、COMヘッダであることを確認するための同期パターン「A5A5h(hは16進数表示であることを示す)」が設定される。この同期パターンのパターンマッチングを行うことで、メインCPU40との間の同期ずれが検出される。
IDフィールドには、通信相手を判別するための識別情報IDが設定される。この識別情報IDを判別することで、暗号化/復号化装置100は、AES処理部120においてコンテンツデータに対応した鍵を変更できる。
TranTYPEフィールドには、AES処理部120及びDES処理部130で行われる暗号化処理及び復号化処理のタイプを指定する情報が設定される。この情報を設定することで、動作モードを変更でき、例えば図4又は図5に示すようにコンテンツデータの暗号化処理及び復号化処理の順序を変更したりすることができるようになる。
ExFlgフィールドには、PCPExtendフィールドが付加されている事を示す情報が設定される。この情報を参照することで、PCPの区切りの位置を特定できるようになり、鍵更新の基準タイミングとすることができる。
PacketLengthフィールドには、このCOMヘッダが付加されているパケットのサイズを示す情報が設定される。この情報は、パケットのうちCOMヘッダを除くデータのサイズを示す。
ここで、IDフィールドに設定される識別情報IDについて説明する。
図12に、本実施形態における暗号化/復号化装置を含む電子機器10が適用された通信システムの他の構成例を示す
図1で説明したように電子機器同士がイーサネット(登録商標)ケーブルを介して接続できるため、電子機器10は、電子機器20の他に電子機器30との間でコンテンツデータの送受信を行うことも可能となる。
電子機器10は、電子機器20が送信するコンテンツデータと電子機器30が送信するコンテンツデータとを区別する必要がある。電子機器間ではDTCP規格で規定されたように機器認証を行う必要があり、認証された電子機器間で共有される鍵が異なるからである。従って、電子機器10は、電子機器20で用いられる共有鍵と電子機器30で用いられる共有鍵とを区別して管理しておく必要がある。
そのため、電子機器10では、送信元を特定すると、送信元に対応した識別情報IDを付与し、該識別情報IDに対応した鍵を用いてAESのアルゴリズムに従った復号化処理を行うことができるようになっている。
従って、図13に示すように識別情報IDが異なるパケットが電子機器10に送信されてきた場合であっても、電子機器10の暗号化/復号化装置100では、識別情報ID毎に管理された鍵を、コンテンツデータに応じて変更しながら、正しく復号化されたコンテンツデータを得ることができる。
次にTranTYPEフィールドに設定される情報について説明する。
図14に、図11のTranTYPEフィールドの説明図を示す。
図15(A)〜図15(D)、図16(A)〜図16(C)及び図17に、TranTYPEフィールドの設定情報に対応した動作モードの説明図を示す。図15(A)〜図15(D)、図16(A)〜図16(C)及び図17において、図7と同一部分には同一符号を付し、適宜説明を省略する。
上述のように、暗号化/復号化装置100は、TranTYPEフィールドの設定情報に対応した動作モードで動作する。
TranTYPEフィールドに0hが設定されたとき、暗号化/復号化装置100は、デバッグ用のモードとして動作する。即ち、図15(A)に示すように、メインCPU40によって書き込まれたコンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをそのまま中間エリア(第2の記憶部)に出力し、中間エリアにコンテンツデータが格納される。そして、中間エリアから再びコンテンツデータが読み出されて切換回路150に供給された後、切換回路150は、該コンテンツデータをそのまま出力エリア(第3の記憶部)に出力し、出力エリアに出力データとして該コンテンツデータが格納される。その結果、メインCPU40によって読み出される出力データは、入力データと同じデータとなる。
TranTYPEフィールドに1hが設定されたとき、暗号化/復号化装置100は、第2の動作モードとして動作する。即ち、図15(B)に示すように、メインCPU40が、入力データとしてDESの暗号化処理後のコンテンツデータを入力エリア(第1の記憶部)に格納する。そして、コンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをDES処理部130に供給する。DES処理部130は、該コンテンツデータに対し、DESのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路150に供給する。切換回路150は、復号化データを中間エリア(第2の記憶部)に出力し、中間エリアに復号化データが格納される。そして、中間エリアから再び復号化データが読み出されて切換回路150に供給された後、切換回路150は、該復号化データをAES処理部120に供給する。AES処理部120は、該復号化データに対し、AESのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを出力データとして切換回路150に供給する。切換回路150は、該出力データを出力エリア(第3の記憶部)に出力し、出力エリアに出力データが格納される。その結果、メインCPU40によって読み出される出力データがAESの暗号化処理後のデータであるのに対し、メインCPU40が格納した入力データはDESの暗号化処理後のデータとなる。例えば通信コントローラ50がコンテンツデータの送信処理を行う場合に、暗号化/復号化装置100は、第2の動作モードに設定される。
TranTYPEフィールドに2hが設定されたとき、暗号化/復号化装置100は、第3の動作モードとして動作する。即ち、図15(C)に示すように、メインCPU40が、入力データとしてDESの暗号化処理後のコンテンツデータを入力エリア(第1の記憶部)に格納する。そして、コンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをDES処理部130に供給する。DES処理部130は、該コンテンツデータに対し、DESのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路150に供給する。切換回路150は、復号化データを出力データとして出力エリア(第3の記憶部)に出力し、出力エリアに出力データが格納される。その結果、メインCPU40によって読み出される出力データがDESの復号化処理後のデータであるのに対し、メインCPU40が格納した入力データはDESの復号化処理前のデータとなる。例えば暗号化/復号化装置100をDESの復号器として用いる場合に、暗号化/復号化装置100は第3の動作モードに設定される。
TranTYPEフィールドに3hが設定されたとき、暗号化/復号化装置100は、第4の動作モードとして動作する。即ち、図15(D)に示すように、メインCPU40によって格納されたコンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをAES処理部120に供給する。AES処理部120は、該コンテンツデータに対し、AESのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを切換回路150に供給する。切換回路150は、暗号化処理後のデータを出力データとして出力エリア(第3の記憶部)に出力し、出力エリアに出力データが格納される。その結果、メインCPU40によって読み出される出力データがAESの暗号化処理後のデータであるのに対し、メインCPU40が格納した入力データはAESの暗号化処理前のデータとなる。例えば暗号化/復号化装置100をAESの暗号器として用いる場合に、暗号化/復号化装置100は第4の動作モードに設定される。
TranTYPEフィールドに4hが設定されたとき、暗号化/復号化装置100は、第1の動作モードとして動作する。即ち、図16(A)に示すように、メインCPU40が、入力データとしてAESの暗号化処理後のコンテンツデータを入力エリア(第1の記憶部)に格納する。そして、コンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをAES処理部120に供給する。AES処理部120は、該コンテンツデータに対し、AESのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路150に供給する。切換回路150は、復号化データを中間エリア(第2の記憶部)に出力し、中間エリアに復号化データが格納される。そして、中間エリアから再び復号化データが読み出されて切換回路150に供給された後、切換回路150は、該復号化データをDES処理部130に供給する。DES処理部130は、該復号化データに対し、DESのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを出力データとして切換回路150に供給する。切換回路150は、該出力データを出力エリア(第3の記憶部)に出力し、出力エリアに出力データが格納される。その結果、メインCPU40から読み出される出力データがDESの暗号化処理後のデータであるのに対し、メインCPU40が格納した入力データはAESの暗号化処理後のデータとなる。例えば通信コントローラ50がコンテンツデータの受信処理を行う場合に、暗号化/復号化装置100は、第1の動作モードに設定される。
TranTYPEフィールドに5hが設定されたとき、暗号化/復号化装置100は、第5の動作モードとして動作する。即ち、図16(B)に示すように、メインCPU40によって格納されたコンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをDES処理部130に供給する。DES処理部130は、該コンテンツデータに対し、DESのアルゴリズムに従った暗号化処理を行い、暗号化処理後のデータを出力データとして切換回路150に供給する。切換回路150は、出力データを出力エリア(第3の記憶部)に出力し、出力エリアに出力データが格納される。その結果、メインCPU40によって読み出される出力データがDESの暗号化処理後のデータであるのに対し、メインCPU40が格納した入力データはDESの暗号化処理前のデータとなる。例えば暗号化/復号化装置100をDESの暗号器として用いる場合に、暗号化/復号化装置100は第5の動作モードに設定される。
TranTYPEフィールドに6hが設定されたとき、暗号化/復号化装置100は、第6の動作モードとして動作する。即ち、図16(C)に示すように、メインCPU40が、入力データとしてAESの暗号化処理後のコンテンツデータを入力エリア(第1の記憶部)に格納する。そして、コンテンツデータ(入力データ)が入力エリア(第1の記憶部)から読み出されて切換回路150に供給される。切換回路150は、該コンテンツデータをAES処理部120に供給する。AES処理部120は、該コンテンツデータに対し、AESのアルゴリズムに従った復号化処理を行い、復号化処理後のデータを復号化データとして切換回路150に供給する。切換回路150は、復号化データを出力データとして出力エリア(第3の記憶部)に出力し、出力エリアに出力データが格納される。その結果、メインCPU40によって読み出される出力データがAESの復号化処理後のデータであるのに対し、メインCPU40が格納する入力データはAESの復号化処理前のデータとなる。例えば暗号化/復号化装置100をAESの復号器として用いる場合に、暗号化/復号化装置100は第6の動作モードに設定される。
以上のように、第1及び第2の動作モードでは、メインCPU40と暗号化/復号化装置100との間で暗号化された状態のコンテンツデータをやり取りできる上に、単なるAES又はDESの暗号器又は復号器として機能させることも可能となる。
更に本実施形態では、以下に説明するようにプログラム復号モードとして動作させることもできる。
即ち、TranTYPEフィールドに7hが設定されたとき、暗号化/復号化装置100は、プログラム復号モードとして動作する。プログラム復号モードでは、コントローラ160の動作を指定する暗号化されたプログラムデータが、メインCPU40から供給される場合に、暗号化/復号化装置100が該プログラムデータを復号化処理後にプログラムメモリ170に転送する。
そのため、図17に示すように、メインCPU40に、予めDESのアルゴリズムで暗号化されたプログラムデータを記憶するフラッシュROM(Read Only Memory)42が接続され、コントローラ160に、予めブート用のプログラムコードを記憶するブートROM162が接続されることが望ましい。フラッシュROM42に格納されるプログラムデータは、AES及びDESの暗号化処理を行うための暗号鍵とAESとDESの復号化処理を行うための復号鍵とを生成するためのデータを有し、コントローラ160の動作を指定するためのプログラムデータである。従って、復号化データがプログラムデータとしてプログラムメモリ170に転送された後、コントローラ160が該プログラムデータに基づいて暗号化/復号化装置100の動作を制御することができる。
図18に、プログラム復号モードにおけるシーケンスを示す。
まず、リセット信号が入力されメインCPU40が初期化されると、フラッシュROM42から、予め暗号化されたプログラムデータを取り出す(SEQ60)。同様にしてコントローラ160もまた初期化され、ブートROM162に格納されたブート用のプログラムコードで動作を開始し(SEQ61)、暗号化/復号化装置100の各部の初期化を行う(SEQ62)。なおブート用のプログラムコードには、予めDESの復号化鍵が設定されているものとする。
メインCPU40は、続いてTranTYPEフィールドが7hに設定されたCOMヘッダを該プログラムデータに付加して(SEQ63)、入力エリアに設定する(SEQ64)。
暗号化/復号化装置100は、COMヘッダを解析し(SEQ65)、TranTYPEフィールドが7hに設定されてプログラム復号モードに指定されたことを判別すると、入力エリアから暗号化されたプログラムデータを読み出して切換回路150に供給する。切換回路150は、該プログラムデータをDES処理部130に出力する。DES処理部130は、該プログラムデータを、DESのアルゴリズムに従った復号化処理を行い(SET66)、復号化データとして切換回路150に出力する。切換回路150は、この復号化データを中間エリアに出力し、中間エリアには復号化データが格納される(SEQ67)。
中間エリアに格納された復号化データは、プログラムメモリ170に転送され(SEQ68)、その後中間エリアの内容がクリアされる(SEQ69)。そして、コントローラ160は、プログラムメモリ170に新たに格納されたプログラムデータで動作を開始する(SEQ70)。
プログラムメモリ170に格納されるプログラムデータは、上述のようにAESの鍵生成を行うための手順やデータを含むため、メインCPU40から暗号化/復号化装置100に供給されるときには暗号化された状態でなければならない。従って、プログラム復号モードを用いることで、AESの鍵生成を行うための手順やデータの機密性を維持しながら、例えば中間エリアとしての第2の記憶部114を有効に利用できる。
2.2 PCPExtendヘッダ
本実施形態では、「DTCP Volume 1 Supplement E Mapping DTCP to IP (Informational Version)」(Revision 1.0, November 24, 2003)に規定されたPCPヘッダを、PCPExtendヘッダに拡張している。
図19に、PCPExtendヘッダとPCPヘッダの説明図を示す。
CAフィールドには、PCPヘッダのC_Aフィールドの情報が設定される。C_Aフィールドには、128ビット長を1ブロックとするAESか、オプショナルなアルゴリズムかを指定する情報が設定される。
EMIフィールドには、PCPヘッダのE−EMIフィールドの情報が設定される。E−EMIフィールドには、Copy-never、Copy-one-generation、No-more-copies、Copy-free等の複製制限に関する情報が設定される。
ExchangeKeyLabelフィールドには、PCPヘッダのexchange_key_labelフィールドの情報が設定される。exchange_key_labelフィールドには、交換鍵Kxが設定される。
Ncフィールドには、PCPヘッダのNcフィールドの情報が設定される。Ncフィールドには、式(1)、式(2)で用いられる乱数が設定される。
ContentLengthフィールドには、PCPヘッダのCLフィールドの情報が設定される。CLフィールドには、コンテンツデータのバイト長が設定される。
PCPExtendヘッダがPCPヘッダと異なる点は、Reservedフィールドが3ビットから19ビットに拡張された点である。こうすることで、COMヘッダ及びPCPExtendヘッダを含むパケットの長さを、AESの処理単位である16バイトの倍数とすることができ、回路構成の簡素化を図ることができるようになる。
2.3 ハードウェア構成例
次に、本実施形態における暗号化/復号化装置100のハードウェア構成例について説明する。
図20に、図7の暗号化/復号化装置100のハードウェア構成例のブロック図を示す。
図20のHostが、図7のメインCPU40に相当する。図20のCPUが、図7のコントローラ160の機能を実現する。図20のMEMが、図7のプログラムメモリ170の機能を実現する。図20のBootROMが、図17のブートROM162の機能を実現する。図20のSRAMが、図7の記憶部110の機能を実現する。図20のSRAMにおいてInputAreaが、第1の記憶部112としての入力エリアに相当する。図20のSRAMにおいてMediumAreaが、第2の記憶部114としての中間エリアに相当する。図20のSRAMにおいてOutputAreaが、第3の記憶部116としての出力エリアに相当する。図20のMainSeqが、図7のヘッダ解析部180の機能を実現する。図20のAESが、図7のAES処理部120の機能を実現する。図20のDESが、図7のDES処理部130の機能を実現する。図20のMUXが、図7の切換回路150の機能を実現する。
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に順次出力していく。
またCOMヘッダのデータサイズが既知であるため、PtrCtlは、読み出しポインタInAreaRdPtrに基づいてCOMヘッダの書き込みが終了したことを検出できる。そこで、COMヘッダの内容を解析するため、MainSeqは、COMヘッダの書き込みの終了を検出すると、SRAMI/F2を介してInputAreaに書き込まれたCOMヘッダのデータを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に基づいて、図14〜図17で説明した転送経路が設定される。MainSeqは、AESに対してデコード/エンコード信号enxde、識別信号idを出力し、DESに対してデコード/エンコード信号enxdeを出力する。デコード/エンコード信号enxdeは、暗号化処理をするか、復号化処理をするかを指示する信号であり、CPUによるPCPExtendヘッダの解析結果に基づいて生成される。識別信号idは、上述の識別情報IDを示す信号であり、COMヘッダの解析結果に基づいて生成される。
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のいずれか1つとAESとの間の転送経路を切り換える。またMUXは、結果要求Rsq1、結果承認Rsa1についてもまた、OutDMAC1、OutDMAC2のいずれか1つとAESとの間の転送経路を切り換える。
DESは、InDMAC1又はInDMAC2からの処理要求Cq2に従ってDESiFIFOからデータを読み出す。そしてDESは、OutDMAC1又はOutDMAC2からの結果要求Rsq2に従って、暗号化処理又は復号化処理後のデータをDESoFIFOに出力する。MUXは、処理要求Cq2、処理承認Ca2について、InDMAC1、InDMAC2のいずれか1つとDESとの間の転送経路を切り換える。またMUXは、結果要求Rsq2、結果承認Rsa2についてもまた、OutDMAC1、OutDMAC2のいずれか1つとDESとの間の転送経路を切り換える。
以上のように、SRAMの各エリアとAES及びDESとの間にMUXが設けられ、4つのDMACがデータ転送を行う。そして、データの転送経路は、MainSeqによって設定される。
図21に、図20のMainSeqの動作説明図を示す。
MainSeqは、図21に示す状態遷移図に従って動作する。即ち、各ステート間を遷移し、遷移先のステートに対応した制御信号を暗号化/復号化装置100の各部に対して出力する。
IDLEステートでは、例えばSRAMに対してデータが入出力され、内部でデータ転送等が行われない状態である。IDLEステートにおいて、InputAreaにデータの設定が開始され、COMヘッダのデータサイズ分のデータが設定されたとき、COMヘッダが検出されたことを示すHDRDETステートに遷移する。
HDRDETステートでは、COMヘッダの解析が行われる。即ち、図11に示すCOMヘッダの情報に基づいて、TranTYPEフィールドの情報に対応した転送経路の設定、PacketLengthフィールドの情報に対応したInDAMC1、OutDMAC1、InDMAC2、OutDMAC2の転送データサイズ等の設定を行う。
HDRDETステートにおいて、COMヘッダのExFlgフィールドの情報に基づいてPCPExtendヘッダが付加されていると判断されるとき、PCPHDRDETステートに遷移する。またHDRDETステートにおいて、COMヘッダのExFlgフィールドの情報に基づいてPCPExtendヘッダが付加されていないと判断されるとき、TRANDATAステートに遷移する。
PCPHDRDETステートへの遷移が、PCP単位で行われる鍵更新の基準タイミングとなる。図20では、MainSeqが、ExFlgフィールドの情報に基づいてPCPExtendヘッダが付加されていると検出したとき、CPUに対して割り込み要求を通知する。CPUは、更新される鍵を再生成し、内部バスiBusを介してiBusI/Fを介してAESのKeyRAMに設定する。AESは、KeyRAMに設定された鍵を用いて暗号化又は復号化処理を行うようになっている。このような鍵更新が終了すると、PCPExtendヘッダの解析完了を通知するため、CPUは、iBus及びiBusI/Fを介して、ControlRegに含まれる起動制御レジスタをアクセスする。該起動制御レジスタへのアクセスに伴い、MainSeqは、TRANDATAステートに遷移する。
TRANDATAステートでは、各DMACがSRAMからデータの転送を介して、AES又はDESが暗号化又は復号化処理を行い、最終的にOutputArea又はMediumAreaに処理結果のデータが格納されていく。こうして、転送と暗号化又は復号化処理とが完了したときIDLEステートに遷移する。
3. 変形例
なお本実施形態では、暗号化/復号化装置100が、AES及びDESの2種類のアルゴリズムに対応した暗号化及び復号化処理を行うものとして説明したが、3種類以上のアルゴリズムに対応した暗号化及び復号化処理を行うものであってもよい。
図22に、本実施形態の変形例における暗号化/復号化装置の構成例のブロック図を示す。図22において、図7と同一部分には同一符号を付し、適宜説明を省略する。
本変形例における暗号化/復号化装置300は、AES処理部120及びDES処理部130の他に、M6処理部310を含む。M6処理部310は、M6と呼ばれる共通鍵を用いた暗号アルゴリズムに従った暗号化処理及び復号化処理を行う。
ヘッダ解析部320は、図7のヘッダ解析部180の機能を有し、COMヘッダのTranTYPEに対応した転送経路の設定処理を行うことができる。
切換回路330は、図7の切換回路150の機能を有し、ヘッダ解析部320の解析結果に基づいて、データの転送経路の切り換えを行う。
本変形例では、本実施形態と同様に、AES、DESのみならず、AES、DES、M6のいずれか1つ又は2つのアルゴリズムに従った暗号化又は復号化処理を行うことができる。この場合、少なくとも1つのアルゴリズムの処理部の機能が、ディセーブル状態に設定される。
また本変形例では、中間エリアである第2の記憶部144を介して3つのアルゴリズムの処理部の暗号化又は復号化処理を行ってもよい。
コントローラ340及びプログラムメモリ350は、図7のコントローラ160及びプログラムメモリ170の機能を有し、M6処理部310の暗号鍵及び復号鍵を生成する処理を行うことができるようになっている。
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。例えば、本発明は上述のAES、DES、M6に適用されるものに限らず、暗号化及び復号化処理のアルゴリズムに限定されるものではない。また図1に示したネットワークの種類に限定されるものではない。
また図1、図7、図20及び図22の各ブロックをすべて含む必要はなく、その一部のブロックが省略された構成であってもよい。
更にまた、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
本実施形態における暗号化/復号化装置を含む通信システムの構成例の図。 図1の電子機器間で行われるDTCP規格に準拠した処理の一例の図。 図1の通信システムにおける各種のパケットの構成例を示す図。 図1の通信システムにおけるコンテンツデータの受信処理の一例のシーケンスを示す図。 図1の通信システムにおけるコンテンツデータの送信処理の一例のシーケンスを示す図。 図1の通信システムにおける各種のパケットの構成の他の例を示す図。 図1の暗号化/復号化装置の構成例のブロック図。 図8(A)、図8(B)はAES処理部の処理の概要のフローを示す図。 図7のDES処理部の処理の概要のフローを示す図。 各記憶領域が可変に設定される図7の記憶部の構成例を示す図。 本実施形態におけるCOMヘッダの構成例を示す図。 本実施形態における暗号化/復号化装置を含む電子機器が適用された通信システムの他の構成例を示す図。 図11のIDフィールドの説明図。 図11のTranTYPEフィールドの説明図。 図15(A)〜図15(D)は、TranTYPEフィールドの設定情報に対応した動作モードの説明図。 図16(A)〜図16(C)は、TranTYPEフィールドの設定情報に対応した動作モードの説明図。 TranTYPEフィールドの設定情報に対応した動作モードの説明図。 プログラム復号モードにおけるシーケンスを示す図。 PCPExtendヘッダとPCPヘッダの説明図。 図7の暗号化/復号化装置のハードウェア構成例のブロック図。 図20のMainSeqの動作説明図。 本実施形態の変形例における暗号化/複合化装置の構成例のブロック図。
符号の説明
10、20 電子機器、 40 メインCPU、 50 通信コントローラ、
60 TCP/IP処理部、 100 暗号化/復号化装置、 110 記憶部、
112 第1の記憶部、 114 第2の記憶部、 116 第3の記憶部、
120 AES処理部、 130 DES処理部、 150、330 切換回路、
160、340 コントローラ、 170、350 プログラムメモリ、
180、320 ヘッダ解析部、 310 M6処理部

Claims (14)

  1. 第1の暗号化処理後の入力データが入力され第2の暗号化処理後の出力データを出力し、或いは前記第2の暗号化処理後の入力データが入力され前記第1の暗号化処理後の出力データを出力するための暗号化/復号化装置であって、
    前記入力データ及び前記出力データを記憶するための記憶部と、
    前記第1の暗号化処理及び第1の復号化処理を行う第1の暗号化/復号化処理部と、
    前記第2の暗号化処理及び第2の復号化処理を行う第2の暗号化/復号化処理部とを含み、
    前記記憶部から読み出された前記入力データに対して前記第1及び第2の暗号化/復号化処理部の一方が行った前記第1又は第2の復号化処理後の復号化データを前記記憶部に格納すると共に、
    前記記憶部から読み出された前記第1又は第2の復号化処理後の前記復号化データに対して前記第1及び第2の暗号化/復号化処理部の他方が行った前記第1又は第2の暗号化処理後のデータを前記出力データとして前記記憶部に格納し、
    前記記憶部の記憶領域のうち前記復号化データの記憶領域が、前記暗号化/復号化装置の外部からアクセス不可となるように構成されることを特徴とする暗号化/復号化装置。
  2. 第1の暗号化処理後の入力データが入力され第2の暗号化処理後の出力データを出力し、或いは前記第2の暗号化処理後の入力データが入力され前記第1の暗号化処理後の出力データを出力するための暗号化/復号化装置であって、
    前記暗号化/復号化装置の外部からアクセス可能な記憶部であって前記入力データを記憶するための第1の記憶部と、
    前記第1の暗号化処理及び第1の復号化処理を行う第1の暗号化/復号化処理部と、
    前記第2の暗号化処理及び第2の復号化処理を行う第2の暗号化/復号化処理部と、
    前記暗号化/復号化装置の外部からアクセス不可能な記憶部であって前記入力データに対する前記第1又は第2の復号化処理後の復号化データを記憶するための第2の記憶部と、
    前記暗号化/復号化装置の外部からアクセス可能な記憶部であって前記出力データを記憶するための第3の記憶部とを含み、
    前記入力データに対して前記第1及び第2の暗号化/復号化処理部の一方が行った前記第1又は第2の復号化処理後の前記復号化データを前記第2の記憶部に格納すると共に、
    前記第1又は第2の復号化処理後の前記復号化データに対して前記第1及び第2の暗号化/復号化処理部の他方が行った前記第1又は第2の暗号化処理後のデータを前記出力データとして前記第3の記憶部に格納することを特徴とする暗号化/復号化装置。
  3. 請求項2において、
    前記第1〜第3の記憶部の各記憶部が、
    1つのメモリ空間内に分割された記憶領域に割り当てられ、
    各記憶領域が、
    可変であることを特徴とする暗号化/復号化装置。
  4. 請求項1乃至3のいずれかにおいて、
    前記入力データに付加されたヘッダ情報を解析するヘッダ解析部を含み、
    前記入力データに対し前記第1及び第2の復号化処理のうち前記ヘッダ情報に対応した復号化処理、及び前記復号化データに対し前記第1及び第2の暗号化処理のうち前記ヘッダ情報に対応した暗号化処理の少なくとも1つの処理を行うことを特徴とする暗号化/復号化装置。
  5. 請求項4において、
    前記ヘッダ情報に基づいて第1の動作モードが指定されたとき、
    前記第1の暗号化/復号化処理部が、前記入力データに対して行った前記第1の復号化処理後のデータを前記復号化データとして生成し、
    前記第2の暗号化/復号化処理部が、前記復号化データに対して行った前記第2の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化/復号化装置。
  6. 請求項4又は5において、
    前記ヘッダ情報に基づいて第2の動作モードが指定されたとき、
    前記第2の暗号化/復号化処理部が、前記入力データに対して行った前記第2の復号化処理後のデータを前記復号化データとして生成し、
    前記第1の暗号化/復号化処理部が、前記復号化データに対して行った前記第1の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化/復号化装置。
  7. 請求項4乃至6のいずれかにおいて、
    前記ヘッダ情報に基づいて第3の動作モードが指定されたとき、
    前記第2の暗号化/復号化処理部が、前記入力データに対して行った前記第2の復号化処理後のデータを前記出力データとして生成することを特徴とする暗号化/復号化装置。
  8. 請求項4乃至7のいずれかにおいて、
    前記ヘッダ情報に基づいて第4の動作モードが指定されたとき、
    前記第1の暗号化/復号化処理部が、前記入力データに対して行った前記第1の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化/復号化装置。
  9. 請求項4乃至8のいずれかにおいて、
    前記ヘッダ情報に基づいて第5の動作モードが指定されたとき、
    前記第2の暗号化/復号化処理部が、前記入力データに対して行った前記第2の暗号化処理後のデータを前記出力データとして生成することを特徴とする暗号化/復号化装置。
  10. 請求項4乃至9のいずれかにおいて、
    前記ヘッダ情報に基づいて第6の動作モードが指定されたとき、
    前記第1の暗号化/復号化処理部が、前記入力データに対して行った前記第1の復号化処理後のデータを前記出力データとして生成することを特徴とする暗号化/復号化装置。
  11. 請求項1乃至10のいずれかにおいて、
    前記暗号化/復号化装置の動作を制御するためのコントローラと、
    前記第1及び第2の暗号化処理を行うための暗号鍵と前記第1及び第2の復号化処理を行うための復号鍵とを生成するためのデータを有するプログラムであって前記コントローラの動作を指定するためのプログラムを格納するためのプログラムメモリとを含み、
    前記復号化データがプログラムデータとして前記プログラムメモリに転送された後、前記コントローラが前記プログラムデータに基づいて前記暗号化/復号化装置の動作を制御することを特徴とする暗号化/復号化装置。
  12. 請求項1乃至11のいずれかにおいて、
    前記第1の暗号化/復号化処理部が、
    AES(Advanced Encryption Standard)に準拠した暗号化処理及び復号化処理を行い、
    前記第2の暗号化/復号化処理部が、
    DES(Data Encryption Standard)に準拠した暗号化処理及び復号化処理を行うことを特徴とする暗号化/復号化装置。
  13. ネットワークを介してレイヤ構造の通信データを送受信するための通信コントローラであって、
    前記通信データの送信処理及び受信処理を行う通信処理部と、
    請求項1乃至12のいずれか記載の暗号化/復号化装置とを含み、
    前記通信データの受信時には、
    前記通信処理部によって解析されたヘッダ情報のレイヤより上位のレイヤの前記第1の暗号化処理後のデータを前記入力データとして前記暗号化/復号化装置が前記第1の復号化処理した後に前記第2の暗号化処理したデータを前記出力データとして出力し、
    前記通信データの送信時には、
    送信データを前記入力データとして前記暗号化/復号化装置が前記第2の復号化処理した後に前記第1の暗号化処理したデータを前記出力データとして出力し、前記通信処理部が該出力データに、上位レイヤのヘッダ情報を付加して前記ネットワークに送信することを特徴とする通信コントローラ。
  14. 請求項13記載の通信コントローラと、
    前記第2の暗号化処理及び第2の復号化処理を行う処理部とを含み、
    前記通信データの受信時には、
    前記通信コントローラが、前記処理部に対して前記第2の暗号化処理後のデータを供給し、
    前記通信データの送信時には、
    前記処理部が、前記第2の暗号化処理後のデータを前記入力データとして前記通信コントローラに供給することを特徴とする電子機器。
JP2005029226A 2005-02-04 2005-02-04 暗号化/復号化装置、通信コントローラ及び電子機器 Pending JP2006217369A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005029226A JP2006217369A (ja) 2005-02-04 2005-02-04 暗号化/復号化装置、通信コントローラ及び電子機器
US11/345,386 US20070180270A1 (en) 2005-02-04 2006-02-02 Encryption/decryption device, communication controller, and electronic instrument

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005029226A JP2006217369A (ja) 2005-02-04 2005-02-04 暗号化/復号化装置、通信コントローラ及び電子機器

Publications (1)

Publication Number Publication Date
JP2006217369A true JP2006217369A (ja) 2006-08-17

Family

ID=36980189

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005029226A Pending JP2006217369A (ja) 2005-02-04 2005-02-04 暗号化/復号化装置、通信コントローラ及び電子機器

Country Status (2)

Country Link
US (1) US20070180270A1 (ja)
JP (1) JP2006217369A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009164895A (ja) * 2008-01-07 2009-07-23 Alpine Electronics Inc 暗号認証処理方法及び装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101233469B (zh) * 2005-07-21 2013-06-05 克莱夫公司 存储器加锁系统
JP4893040B2 (ja) * 2006-03-17 2012-03-07 ソニー株式会社 暗号化データ記録装置
JP2009064055A (ja) * 2007-09-04 2009-03-26 Hitachi Ltd 計算機システム及びセキュリティ管理方法
US20100174913A1 (en) * 2009-01-03 2010-07-08 Johnson Simon B Multi-factor authentication system for encryption key storage and method of operation therefor
US9286493B2 (en) * 2009-01-07 2016-03-15 Clevx, Llc Encryption bridge system and method of operation thereof
JP5811602B2 (ja) * 2010-12-16 2015-11-11 ソニー株式会社 画像生成装置、プログラム、画像表示システム、および画像表示装置
US9729309B2 (en) * 2012-12-19 2017-08-08 Intel Corporation Securing data transmission between processor packages
US9230137B2 (en) * 2013-05-30 2016-01-05 Dell Products, L.P. Secure original equipment manufacturer (OEM) identifier for OEM devices
US10181124B2 (en) 2013-05-30 2019-01-15 Dell Products, L.P. Verifying OEM components within an information handling system using original equipment manufacturer (OEM) identifier
CA2916478C (en) * 2013-06-21 2020-07-28 Arris Technology, Inc. Dtcp converter for hls
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805706A (en) * 1996-04-17 1998-09-08 Intel Corporation Apparatus and method for re-encrypting data without unsecured exposure of its non-encrypted format
US6393568B1 (en) * 1997-10-23 2002-05-21 Entrust Technologies Limited Encryption and decryption system and method with content analysis provision
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
US7080037B2 (en) * 1999-09-28 2006-07-18 Chameleon Network Inc. Portable electronic authorization system and method
US7184549B2 (en) * 2000-01-14 2007-02-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for encryption, method and apparatus for decryption, and computer-readable medium storing program
IL161027A0 (en) * 2001-09-28 2004-08-31 High Density Devices As Method and device for encryption/decryption of data on mass storage device
JP2003281071A (ja) * 2002-03-20 2003-10-03 Seiko Epson Corp データ転送制御装置、電子機器及びデータ転送制御方法
US7333615B1 (en) * 2002-06-26 2008-02-19 At&T Delaware Intellectual Property, Inc. Encryption between multiple devices
JP2005003844A (ja) * 2003-06-11 2005-01-06 Matsushita Electric Ind Co Ltd データ送受信装置、及びデータ送受信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009164895A (ja) * 2008-01-07 2009-07-23 Alpine Electronics Inc 暗号認証処理方法及び装置

Also Published As

Publication number Publication date
US20070180270A1 (en) 2007-08-02

Similar Documents

Publication Publication Date Title
JP2006217369A (ja) 暗号化/復号化装置、通信コントローラ及び電子機器
JP2006229863A (ja) 暗号化/復号化装置、通信コントローラ及び電子機器
US7242766B1 (en) Method and system for encrypting and decrypting data using an external agent
US8983061B2 (en) Method and apparatus for cryptographically processing data
JP2008113172A (ja) コンテンツ送信装置、コンテンツ受信装置及びコンテンツ暗号化方法
US20040146158A1 (en) Cryptographic systems and methods supporting multiple modes
US20030039354A1 (en) FIFO architecture with in-place cryptographic service
WO1998048543A1 (fr) Procede de transfert de donnees
US20070033399A1 (en) Transmitting/receiving system and method, transmitting apparatus and method, receiving apparatus and method, and program used therewith
JP2000287192A (ja) 情報配信装置、受信装置及び通信方法
TW200948074A (en) Method, apparatus and system for deciphering media content stream
JP2000004256A (ja) ストリ―ムデ―タ処理システムおよびストリ―ムデ―タの制限方法
JP2006523049A (ja) パーソナルビデオレコーダにおけるデジタル音声/映像データの暗号化/復号化のためのチップ毎のユニーク識別子
US8355504B2 (en) AV communication control circuit for realizing copyright protection with respect to radio LAN
JP4910324B2 (ja) 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
KR20040040381A (ko) 통신 장치 및 통신 방법
US8311220B2 (en) AV data transmission apparatus and AV data transmission method
JP2008124935A (ja) 送信装置、受信装置、情報通信システム
JP2007041756A (ja) 情報処理装置および方法、プログラム、並びに、セキュリティチップ
KR20100135505A (ko) 컨텐츠 암호화 방법, 컨텐츠 복호화 방법 및 이를 적용한 전자기기
JP4277833B2 (ja) コンテンツ暗号化装置、コンテンツ暗号化方法
JP2007306171A (ja) 情報処理システムおよび方法、情報処理装置および方法、並びにプログラム
JP3742518B2 (ja) バスブリッジおよび記録媒体
JP5361031B2 (ja) 暗号認証処理方法及び装置
JP2005190350A (ja) コンテンツ送信装置及びコンテンツ送信方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080609

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080609

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090331