JP4755472B2 - データ転送方法及びシステム - Google Patents
データ転送方法及びシステム Download PDFInfo
- Publication number
- JP4755472B2 JP4755472B2 JP2005283878A JP2005283878A JP4755472B2 JP 4755472 B2 JP4755472 B2 JP 4755472B2 JP 2005283878 A JP2005283878 A JP 2005283878A JP 2005283878 A JP2005283878 A JP 2005283878A JP 4755472 B2 JP4755472 B2 JP 4755472B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- key
- usage pass
- transfer
- devices
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 624
- 238000012546 transfer Methods 0.000 title claims description 363
- 230000008569 process Effects 0.000 claims description 559
- 238000012545 processing Methods 0.000 claims description 142
- 238000012795 verification Methods 0.000 claims description 23
- 238000003672 processing method Methods 0.000 claims description 19
- 230000002457 bidirectional effect Effects 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims 1
- 238000011084 recovery Methods 0.000 description 63
- 230000005540 biological transmission Effects 0.000 description 57
- 230000006870 function Effects 0.000 description 50
- 230000009471 action Effects 0.000 description 23
- 230000003068 static effect Effects 0.000 description 13
- 230000005856 abnormality Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0869—Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3271—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
- H04L9/3273—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response for mutual authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2129—Authenticate client device independently of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
- H04L2209/603—Digital right managament [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Description
可搬型の記憶装置を接続できる記録再生装置において、記憶装置に記録されたデータの著作権を保護するためには、記憶装置に記録されたデータを、著作権者が主張する条件の範囲を超えて再生できないように、記録再生装置及び記憶装置にセキュリティ対策を施すことが重要である。セキュリティ対策を機器に施す際には、その装置の内部及び外部から自由にアクセス可能な領域で行なわれるデータの授受に関しては、データの授受が行われる装置の間で認証処理を行ったり、データ自体に暗号化処理等を施したりして、平文で自由にデータへのアクセスが行われることがないようにする必要がある。一方で、このような認証処理や暗号化処理が厳重になるほど、利用者がデータ利用要求を発してから、実際に利用が出来るようになるまでに多くの処理が必要となり、結果としてデータの再生を円滑に行うことができない事態が生じる可能性がある。
2つには、複数の鍵と利用条件を連続的に送信するような状況についてあまり考慮されておらず、それゆえこれらのデータを送信する度に、転送元と転送先の両機器で、負荷の高い公開鍵暗号演算を行わなければならない。
4つには、2つの機器間で鍵や利用条件を転送する場合、認証処理と、鍵や利用条件の転送の方向が固定されており、逆向きの転送を行うためには、認証処理も逆方向で最初からやり直さなくてはならない。これでは、記録再生装置及び記憶装置の双方に大きな負荷を与える。
好ましい例では、前記複数の転送処理方法は、所定の情報を一方の装置から他方の装置に対して一定方向へ転送する第1転送モードと、所定の情報を一方の装置と他方の装置との間で双方向に転送する第2転送モード、を含み、
選択されたいずれかの転送モードに従って転送された所定の情報を受信した側の装置は、共有の鍵データを用いて所定の情報を復号化し、復号化された所定の情報を用いて、取得されたコンテンツデータを復号処理する。
また、好ましい例では、暗号化されたコンテンツデータを復号するための鍵データと、コンテンツデータを復号するための条件を含む所定の情報を一方の装置から他方の装置へ転送する転送処理方法において、両装置間のデータ転送を制御する処理手段の制御によって、両方の装置に対して、装置が持つデータの転送機能に関する問合せを行い、問合せの結果、両装置間のデータ転送に関して、所定の情報の転送を一方の方向へ行なう第1転送モードか、又は所定の情報の転送を双方向に行なう第2転送モードか、のいずれかの転送モードを設定し、両方の装置で相互に正当性の認証処理を行い、認証処理の結果、正当な場合に両方の装置で鍵データを共有し、共有された鍵データを用いて、一方の装置で所定の情報を暗号化し、選択された転送モードに従って、一方の装置で暗号化された所定の情報を他方の装置へ転送する転送処理方法として構成される。
また、好ましくは、所定の情報の転送処理時において、両方の装置は、所定の情報の処理に関連するトランザクションログを生成して、記憶手段に記憶し、正当性の認証処理時に鍵データが失われた場合、両方の装置は記憶手段に記憶されたトランザクションログを参照して共有すべき鍵データを生成し、他方の装置へ送る。
また、好ましくは、他方の装置は、記憶手段に記憶されたトランザクションログを参照して、トランザクションログに記録されている処理段階情報と所定の情報の存在状態情報を連結して、一方の装置へ送信し、
一方の装置は、受信した情報を検証して、改竄が行われていないことを確認した後、記憶手段に格納されたトランザクションログを参照して、トランザクションログに記録されている転送前の復号可能条件を、現在存在している所定の情報に上書きする。
また、好ましい例では、前記第2転送モードに設定された場合、前記正当性の認証処理において、他方の装置は、自身の公開鍵が含まれる証明書を一方の装置へ送信し、
一方の装置では、受信した証明書の正当性を検証して、一時的な共通鍵暗号化のための鍵である第1チャレンジ鍵を生成し、受信した公開鍵を用いて第1チャレンジ鍵を暗号化し、生成された暗号化データに自身の公開鍵を含む証明書を連結して、他方の装置に送信し、
他方の装置では、受信したデータを、自身の秘密鍵を用いて復号し、第1チャレンジ鍵を取得し、かつ、一時的な共通鍵暗号化のための鍵である第2チャレンジ鍵を生成し、第2チャレンジ鍵と自身に埋め込まれている公開鍵と連結して、受信した公開鍵で暗号化し、得られた暗号化データに対して、自身の証明書失効リストを連結し、連結したデータを受信した第1チャレンジ鍵で暗号化し、暗号化したデータを一方の装置へ送信し、
一方の装置は、受信したデータを第1チャレンジ鍵で復号し、証明書失効リスト中にあるリストの発行日情報と自身の証明書失効リストが持つ発効日情報とを比較し、その結果、受信した他方の装置の証明書失効リストの発行日が新しければ、他方の装置の証明書失効リストを自らのリストとして更新し、
かつ、復号化したデータから証明書失効リストを除いたデータを自身の秘密鍵で復号化し、更に、一時的な共通鍵暗号化のための鍵である0次第1セッション鍵を生成し、先に受信した他方の装置の公開鍵及び第2チャレンジ鍵で暗号化し、暗号化されたデータを他方の装置へ送信し、
他方の装置は、受信した暗号化データを第2チャレンジ鍵で復号し、この復号化データに一方の装置の証明書失効リストが含まれていた場合は、自らの証明書失効リストを受信した証明書失効リストにより更新し、かつ、証明書失効リスト以外の復号化データを自身に埋め込まれている秘密鍵で復号化し、0次第1セッション鍵を取得する。
また、好ましい例では、前記第2転送モードに設定された場合、前記所定の情報の転送処理において、他方の装置は、n次第2セッション鍵を生成し、以前に生成されたn-1次第2セッション鍵と、その時点で最新のm次第1セッション鍵を用いて、n次第2セッション鍵を暗号化して、暗号化データを一方の装置へ送信し、
一方の装置は、受信した暗号化データをその時点で最新のm次第1セッション鍵及びn-1次第2セッション鍵で復号化し、かつ、転送対象となる所定の情報の識別子、転送における自身の役割、送信予定の所定の情報、及び他方の装置における所定の情報の記録先アドレスを、トランザクションログに記録し、
かつ、所定の情報にその利用目的(少なくとも複製、移動、再生のいずれかを含む)を示すパラメータ及びチェックサムを連結し、n次第2セッション鍵と共有鍵で暗号化し、暗号化されたデータを他方の装置へ送信し、
他方の装置は、受信した暗号化データを共有鍵及びn次第2セッション鍵で復号化し、
復号化されたデータを他方の装置内の記憶領域へ記録する。
また、好ましくは、前記所定の情報は、コンテンツデータの復号化を許容するため条件を含むライセンス情報であって、ライセンス情報を受信した他方の装置は、一方の装置から送信され、記憶手段に記憶していたコンテンツデータを、ライセンス情報を用いて復号化する。
また、好ましくは、前記一方の装置は、取得したコンテンツデータを記録再生する、記録モジュール及び再生モジュールを有する記録再生装置であり、前記他方の装置は、記録再生装置に接続されて、記録再生装置から転送されるコンテンツデータを記憶する記憶装置であり、所定の情報は記録再生装置がコンテンツデータを取得する時に取得され、かつ記憶装置に記録されたコンテンツデータは記憶装置から記録再生装置に転送されて、再生モジュールで再生される。
両方の装置で相互に正当性の認証処理を行い、認証処理の結果、正当な場合に両方の装置で鍵データを共有する認証過程(a)と、共有された鍵データを用いて、一方の装置で所定の情報を暗号化し、暗号化された所定の情報を一方の装置から他方の装置へ転送する転送過程(b)とを有し、
(a)認証処理においては:
他方の装置は、自身の公開鍵が含まれる証明書を一方の装置へ送信し、
一方の装置では、受信した証明書の正当性を検証して、一時的な共通鍵暗号化のための鍵である第1チャレンジ鍵を生成し、受信した公開鍵を用いて第1チャレンジ鍵を暗号化し、生成された暗号化データに自身の公開鍵を含む証明書を連結して、他方の装置に送信し、
他方の装置では、受信したデータを、自身の秘密鍵を用いて復号し、第1チャレンジ鍵を取得し、かつ、一時的な共通鍵暗号化のための鍵である第2チャレンジ鍵を生成し、第2チャレンジ鍵と自身に埋め込まれている公開鍵と連結して、受信した公開鍵で暗号化し、得られた暗号化データに対して、自身の証明書失効リストを連結し、連結したデータを受信した第1チャレンジ鍵で暗号化し、暗号化したデータを一方の装置へ送信し、
一方の装置は、受信したデータを第1チャレンジ鍵で復号し、証明書失効リスト中にあるリストの発行日情報と自身の証明書失効リストが持つ発効日情報とを比較し、その結果、受信した他方の装置の証明書失効リストの発行日が新しければ、他方の装置の証明書失効リストを自らのリストとして更新し、
かつ、復号化したデータから証明書失効リストを除いたデータを自身の秘密鍵で復号化し、更に、一時的な共通鍵暗号化のための鍵である0次第1セッション鍵を生成し、先に受信した他方の装置の公開鍵及び第2チャレンジ鍵で暗号化し、暗号化されたデータを他方の装置へ送信し、
他方の装置は、受信した暗号化データを第2チャレンジ鍵で復号し、この復号化データに一方の装置の証明書失効リストが含まれていた場合は、自らの証明書失効リストを受信した証明書失効リストにより更新し、かつ、証明書失効リスト以外の復号化データを自身に埋め込まれている秘密鍵で復号化し、0次第1セッション鍵を取得する処理を行ない、
(b)転送過程においては:
他方の装置は、n次第2セッション鍵を生成し、以前に生成されたn-1次第2セッション鍵と、その時点で最新のm次第1セッション鍵を用いて、n次第2セッション鍵を暗号化して、暗号化データを一方の装置へ送信し、
一方の装置は、受信した暗号化データをその時点で最新のm次第1セッション鍵及びn-1次第2セッション鍵で復号化し、かつ、転送対象となる所定の情報の識別子、転送における自身の役割、送信予定の所定の情報、及び他方の装置における所定の情報の記録先アドレスを、トランザクションログに記録し、
かつ、所定の情報にその利用目的(少なくとも複製、移動、再生のいずれかを含む)を示すパラメータを連結し、n次第2セッション鍵と共有鍵で暗号化し、暗号化されたデータを他方の装置へ送信し、
他方の装置は、受信した暗号化データを共有鍵及びn次第2セッション鍵で復号化し、
復号化されたデータを他方の装置内の記憶領域へ記録する処理を行なう、転送方法である。
一例では、前記所定の情報には、自身がどのような種類のものに対して出力可能なものであるかを示すフォーマットと、それぞれそれぞれに一意に割り当てられた識別子と、コンテンツデータの利用を制限するための条件を示す情報と、暗号化されたコンテンツデータを解くための鍵データと、関連するコンテンツデータを特定するための識別子と、及びコンテンツの著作権情報が含まれる。
本発明は、また、上記の方法における処理動作をコンピュータ上で実行するためのプログラムとしても把握される。
また、本発明は、上記方法の処理動作を行なうシステムとしても把握される。
また、正当な装置の間で、当該所定の情報を安全に転送することができる。不正な装置へ所定の情報を転送することは転送元の装置によって拒絶され、また不正な装置から所定の情報が送られた場合には、転送先の装置はその受信を拒絶できる。
更に、当該所定の情報を、一方の装置から他方の装置へ転送するシステムにおいて、転送先の装置が有する失効した証明書のリストの方が、転送元の装置が有するリストより新しかった場合、それらの装置間で相互認証処理を実行する間に、転送元のリストで、転送先のリストを更新することができる。
前提として、保護が必要なデータは暗号化されること、及び、該データを復号するために必要な鍵データと、復号が許容される条件を1つにまとめられ、それは利用者が自由にアクセスすることができない記憶領域に記録される。この鍵データと、復号が許容される条件を関連付けたものを、以下の例ではユーセジパス(Usage Pass)と呼ぶ。
本発明は、Usage Passを一方のモジュールから他方のモジュールへ転送する場合の、さまざまな処理及びその処理系列について開示するものである。処理系列の種類は2種類ある。その1つは、Usage Passの転送方向が一意に決まるUT(Unidirectional Transfer mode)モードであり、他の1つは双方向にUsage Passを転送することができるBT(Bidirectional Transfer mode)モードである。好ましい例として、このUsage Passの特徴的な転送方法を、2つの機器、例えば記録再生装置と記憶装置の間の転送に適用した場合について述べる。
以上が、UTモードにおける認証処理である。これをUT Connection stageと呼ぶ。UT Connection stageを完了すると、0次Primal セッション鍵、0次Inceptive セッション鍵、Inceptive Device公開鍵による暗号化と同秘密鍵による復号化の過程で得られる共有Inceptive Device鍵が共有される。
まず、Primal Deviceにおいて、目的のUsage Passを、Usage Pass転送用モジュールに準備する。続いて、ホストモジュールは目的のUsage Passを識別するための識別子(UPID)をInceptive Deviceへ送る。
続いて、Usage Pass送信用モジュールに準備されたUsage Passから、実際に送信するUsage Passを生成後、該Usage Passに利用目的(複製、移動、再生のいずれか)を示すパラメータやChecksumを連結し、n次Inceptive セッション鍵と共有Inceptive Device鍵で暗号化する。暗号化を終えると、Primal Transaction Logにおける転送処理段階要素をSCに更新し、そのデータをInceptive Deviceへ送信する。
以上が、UTモードにおけるUsage Pass転送処理である。これをUT Transfer stageと呼ぶ。以上に説明したように、UTモードではUsage Passの転送方向は、Primal DeviceからInceptive Deviceに固定されている。
異常時には、UT Connection stageにおいて共有された0次Primal セッション鍵、0次Inceptive セッション鍵、共有Device鍵は、記録再生装置及び記憶装置から失われてしまうので、新たにこれらの鍵を共有しなければならない。ただし、UT Connection stageを実行する必要はなく、以下に記す処理を実行すれば良い。
Inceptive Deviceは、受信したデータを復号し、新しい0次Primal セッション鍵及び共有Devce鍵を得る。
以上が、UTモードにおける再認証処理である。これを、UT Reconnection stageと呼ぶ。UT Reconnection stageを完了すると、新しい0次Primal セッション鍵、Inceptive Device公開鍵による暗号化と同秘密鍵による復号化の過程で得られる新しい共有Inceptive Device鍵が共有される。
ホストモジュールが、復旧対象のUsage PassのUPIDを、Inceptive Deviceに送信する。Inceptive Deviceでは、UPIDを用いて、Inceptive Transaction Logを検索する。その結果、UPIDを含むInceptive Transaction Logが見つかると、Transaction Logに記録されている処理段階情報とUsage Passの存在状態情報を連結し、Primal Deviceへ送信する。この時送信されるデータには、データ、0次Primal セッション鍵、Inceptive Transaction Logに記録されていたInceptive セッション鍵から計算されたHash値も連結される。
以上が、UTモードにおけるUsage Passの復旧処理である。これを、UT Recovery stageと呼ぶ。このstageを完了すると、Primal Deviceには、送信を行う前のUsage Passが存在するようになる。
BTモードでは、Usage Passを転送する方向が固定されておらず、Primal DeviceとInceptive Deviceの双方が、Usage Passの送受信を実行できる。BTモードの下で、記録再生装置にあって相互認証処理やUsage Passの送受信処理を実行するモジュールをPrimal Device、記憶装置にあって相互認証処理やUsage Passの送受信処理を実行するモジュールをInceptive Deviceと呼ぶ。Device Class証明書をInceptive Device Class証明書、Device Class公開鍵をInceptive Device Class公開鍵と呼ぶ。
続いてInceptive Deviceは、一時的な共通鍵暗号化のための鍵であるInceptive セッション鍵を生成する。この鍵の生成を終えると、自身に埋め込まれているInceptive Device公開鍵と連結し、受信したPrimal Device Class鍵で暗号化する。更に、得られたデータ(即ち、Primal Device Class鍵で暗号化されたデータ)に対し、自身に記録されている失効Device Classリスト(Inceptive RDCL)を連結し、受信したPrimal Challenge鍵で暗号化する。以上の処理を終了すると、得られたデータをPrimal Deviceへ送信する。
Primal Deviceは、受信したデータをPrimal Device秘密鍵及び0次Primal セッション鍵で復号し、0次Inceptive セッション鍵を得る。続いて、Inceptive Device公開鍵、0次Inceptive セッション鍵、0次Primal セッション鍵、Inceptive Device Class証明書に含まれる一部のパラメータを、Primal Connection Logに記録する。
以上が、BTモードにおける認証処理である。これをBT Connection stageと呼ぶ。BT Connection stageを完了すると、0次Primal セッション鍵、0次Inceptive セッション鍵、Primal Device公開鍵による暗号化と同秘密鍵による復号化の過程で得られる共有Primal Device鍵、及びInceptive Device公開鍵による暗号化と同秘密鍵による復号化の過程で得られる共有Inceptive Device鍵が共有される。
まず、Primal Deviceにおいて、目的のUsage Passを、Usage Pass転送用モジュールに準備する。
続いて、Inceptive Deviceは、Usage Passを暗号化するためのn次Inceptive セッション鍵を生成する。この鍵の生成を終えると、1つ前のPrimal DeviceからInceptive DeviceへのUsage Pass転送時に生成したInceptive セッション鍵(n-1次Inceptive セッション鍵)と、その時点で最新のPrimal セッション鍵で暗号化し、Primal Deviceへ送信する。
続いて、Usage Pass送信用モジュールに準備されたUsage Passから、実際に送信するUsage Passを生成する。そして、Inceptive DeviceにおけるUsage Passの記録先アドレスをTransaction Logに記録した後、Usage Passに利用目的(複製、移動、再生のいずれか)を示すパラメータやChecksumを連結し、n次Inceptive セッション鍵と共有Inceptive Device鍵で暗号化する。暗号化を終えると、データをInceptive Deviceへ送信する。
Inceptive Deviceは、受信したデータを共有Inceptive Device鍵及びn次Inceptive セッション鍵で復号する。そして、該データをInceptive Device内のUsage Pass記憶領域へ記録する。
以上が、BTモードにおけるPrimal DeviceからInceptive DeviceへのUsage Pass転送処理である。これをBT PI Transfer stageと呼ぶ。
まず、Inceptive Deviceにおいて、目的のUsage Passを、Usage Pass転送用モジュールに準備する。
続いてInceptive Deviceは、Usage Passに対し、データ暗号鍵部分を0で置き換え、Usage Passの状態情報を連結した(該データをMasked Usage Passと呼ぶ)後、データに最新のPrimal セッション鍵とInceptive セッション鍵連結してHash値計算する。そして、得られたHash値を、Masked Usage Passに連結し、Primal Deviceへ送信する。
Primal Deviceは、受信したデータを共有Primal Device鍵及びm次Primal セッション鍵で復号する。
以上が、BTモードにおけるInceptive DeviceからPrimal DeviceへのUsage Pass転送処理である。これをBT IP Transfer stageと呼ぶ。
異常時には、BT Connection stageにおいて共有された0次Primal セッション鍵、0次Inceptive セッション鍵、共有Primal Device鍵、共有Inceptive Device鍵は、記録再生装置及び記憶装置から失われてしまうので、新たにこれらの鍵を共有しなければならない。ただし、BT Connection stageを実行する必要はなく、以下に記す処理を実行すれば良い。
以上が、BTモードにおける再認証処理である。これを、BT Reconnection stageと呼ぶ。BT Reconnection stageを完了すると、新しい0次Primal セッション鍵、0次Inceptive セッション鍵、Primal Device公開鍵による暗号化と同秘密鍵による復号化の過程で得られる新しい共有Primal Device鍵Primal Device公開鍵による暗号化と同秘密鍵による復号化の過程で得られる新しい共有Inceptive Device鍵が共有される。
BT PI Transfer stageで転送されたUsage Passを転送処理実行前の状態に戻す処理を行うにあたり、まず初めにHostが復旧対象のUsage PassのUPIDを、Primal Deviceに送信する。
Inceptive Deviceは、受信したアドレスでアクセスされるUsage Pass記憶領域へアクセスし、Usage Passの記録状態を調べる。そして、その結果をUsage Pass Statusに設定する。次に、UPID、検索されたUsage Passの復号可能条件、生成されたUsage Pass Status、Usage Passの記録先アドレスを連結し、Primal Deviceへ送信する。この時送信されるデータには、該データ、m次Primal セッション鍵、n次Inceptive セッション鍵から計算されたHash値も連結される。
以上が、BTモードにおけるBT PI Transfer stageに対するUsage Passの復旧処理である。これを、BT PI Recovery stageと呼ぶ。このstageを完了すると、Primal Deviceには、送信を行う前のUsage Passが存在するようになる。
BT PI Transfer stageで転送されたUsage Passを転送処理実行前の状態に戻す処理を行うにあたり、まず初めにホストモジュールが復旧対象のUsage PassのUPIDを、Primal Deviceに送信する。
Primal Deviceは、このUPIDを用いて、Primal Transaction Logを検索する。その結果、このUPIDを含むPrimal Transaction Logが見つかると、Logに記録されているInceptive DeviceにおけるUsage Passの記録先アドレス(転送対象のUsage Passが元来記録されていた領域を指し示すアドレス)をInceptive Deviceへ送信する。
上記検証に並行して、Inceptive Deviceでは、n次Inceptive セッション鍵の生成を行う。この鍵の生成を終えると、n-1次Inceptive セッション鍵及びm次Primal セッション鍵で暗号化し、Primal Deviceへ送信する。
以上が、BTモードにおけるBT IP Transfer stageに対するUsage Passの復旧処理である。これを、BT IP Recovery stageと呼ぶ。このstageを完了すると、Inceptive Deviceには、送信を行う前のUsage Passが存在するようになる。
検証を終えると、受信したUPIDを含むPrimal Transaction Logを検索する。Logが見出されると、そのLogに記録されている転送前の復号可能条件を、現在Usage Pass送信用モジュールに用意されているUsage Passに上書きする。
以上が、BTモードにおけるBT PI Transfer stageに対するUsage Passの復旧処理である。これを、BT PI Recovery stageと呼ぶ。該stageを完了すると、Primal Deviceには、送信を行う前のUsage Passが存在するようになる。
システム構成
まず、図1及び図2を用いて、一実施例におけるデータ記録再生装置及びそれに接続可能な記憶装置を含むシステムの全体構成について説明する。
この実施例は、放送されたディジタル映像データや、配信サーバ(Distribution Server)から配信されたディジタルデータ、また他の機器と接続したディジタル信号線を介して送信されたディジタルデータを脱着可能な記憶装置に記録し、また記憶装置に記憶されたデジタルデータを、記録再生装置のディスプレイ装置やスピーカーなどで再生する記録再生システムに適用した例について説明する。以下では、ディジタルデータ記録再生装置を単に記録再生装置といい、記録再生装置が受信する映像や音楽、テキストなどのディジタルデータを、コンテンツデータという。ここで、コンテンツデータを記録する脱着可能な記憶装置は、例えば、磁気ディスク装置や半導体メモリデバイスなどであり、何れも本発明に特徴的な制御機能を有する。以下では、記憶装置として磁気ディスク装置を例に説明するが、これに限るものではない、以下に説明するような本発明に特徴的な機能を有するものであれば、磁気ディスク装置以外の他の周知な記憶装置にも適用できる。
放送波に乗せられて送信されるコンテンツデータや、他の媒体に記録されているコンテンツデータは、一般的には独自に規定された方式で暗号化されている。また、データには、その復号制御情報も含まれていることが多い。これらのデータを、アンテナ131やディジタル信号線132を介して記録再生装置112が取り込む場合、記録モジュール102は、規定された方式に従ってコンテンツデータを復号し、また復号制御情報を取り出す。取り出された復号制御情報は、本実施例において定める特定の形式を持った1つのデータにまとめられる。これを、以下ではUsage Passと呼ぶ。Usage Passの具体的な構造については、後に図4を用いて説明する。
磁気ディスク装置には、インタフェース部220を介してデータが入出力される。Usage Passのような保護が必要なデータ以外のデータが外部から入力される場合、コントローラ230を介して、ヘッド部202から磁気ディスク円盤200上に記録される。暗号化されたコンテンツデータも、このフローに従って、磁気ディスク円盤200上に記録される。読み出す場合は、前述を逆にデータが流れる。コントローラ200は、プロセッサ(PU)231からも制御される。Usage Pass転送モジュール221や制限記憶コントローラ222なども、プロセッサ231によって制御される。図2では、制限記憶部223は磁気ディスク円盤200とは別に設けられているが、暗号化されたコンテンツデータの読み出しと書き込みとは異なる特殊なアクセス方法でのみアクセスが許容されていて、また本装置を分解等し内部のデータを直接読み出す等を行うことが不可能な構成になっていれば、制限記憶部は磁気ディスク円盤200上に設けても良い。
図3は、図1及び図2に示した機器において、記録モジュール102、再生モジュール103、及びUsage Pass転送モジュール221の間でUsage Pass転送を実行する際、それを暗号化するために用いられる鍵データ、及び配信するデータ等の一覧を示すものである。
通常、鍵データXが対称暗号用の鍵データである場合は、対象のデータは鍵データXを用いて暗号化されており、その復号も同一の鍵データXを用いて行われる。一方、鍵データXが非対称暗号用の秘密鍵あるいは公開鍵であった場合は、暗号化対象のデータは、Xとは異なるこれらに対応する公開鍵あるいは秘密鍵Yを用いて暗号化されている。Yを用いて暗号化されたデータは、Xを用いて復号される。以下では、非対称暗号用公開鍵データを公開鍵、非対称暗号用秘密鍵データを秘密鍵、対称暗号用鍵データを共通鍵と略す。
データに電子署名が付けられている場合、データを一部に含むデータ集合のハッシュ値が、公開鍵Xに対応する秘密鍵Yで暗号化されていることを意味する。
尚、本明細書中でK_xのように表記されているものは、全ての図ではxは添え字として表現されている。
コンテンツデータを暗号化および復号するための鍵は、コンテンツ鍵K_cである。配信サーバ150、記録モジュール102、再生モジュール103、Usage Pass転送モジュール 221には、それぞれ個別に互いに認証を行うための電子署名付き公開鍵KP_dcがそれぞれ割り当てられる。ただし、ホストセキュリティマネージャ 111を全体として1つの対タンパ性を持つ機能単位として実装する場合、ホストセキュリティマネージャ 111に対して1つのKP_dcを割り当てても良い。
各デバイスに対しては、個別に埋め込まれる公開鍵KP_dと、鍵で暗号化されたデータを復号するための秘密鍵K_dも埋め込まれる。以降では、これらをDevice公開鍵、Device秘密鍵と呼ぶ。Device公開鍵とDevice秘密鍵は、全てのデバイスに異なったものが埋め込まれる。
尚、公開鍵による暗号化の過程では、暗号化に用いられる公開鍵を元にして、1つの共通鍵が生成される。これは、*KP_dのように表される。同様に、秘密鍵による復号化の過程では、復号に用いられる秘密鍵を元にして、1つの共通鍵が生成される。これは、*K_dのように表される。*KP_dと*K_dは、実際には同一の値であり、*KP_dで暗号化されたデータは、*K_dで復号することができる。これらの共通鍵を、それぞれ共有Device公開鍵及び共有Device秘密鍵と呼ぶ。これらの鍵の生成方法については、後に公開鍵暗号化方法に関する説明をする際、更に詳細に説明する。
尚、UTモードではUsage Passの転送方向が一意に確定してしまうと以前に述べたが、その方向は常にPrimal DeviceからInceptive Deviceである。従ってUTモードでは、記録モジュール102は常にPrimal Deviceとなり、再生モジュール 103は常にInceptive Deviceとなる。一方、磁気ディスク装置は、記録モジュールから送信されたUsage Passを記録する場合はInceptive Deviceとなり、コンテンツデータの復号再生などを目的に自身からUsage Passを再生モジュールへ送信する場合は、Primal Deviceとなる。
Usage Passの構造について、図4を用いて説明する。
Usage Passには、自身がどのような種類のモジュールに出力可能なものであるかを示すUsage Pass Format400、それぞれに一意に割り当てられた識別子UPID401、対象コンテンツデータの利用を制限するための条件402及び404、暗号化されたコンテンツデータを解くための鍵データK_c 403、対応するコンテンツデータを特定するための識別子CID405、コンテンツの著作権情報406が含まれる。対象コンテンツデータの利用を制限するための条件には、Usage Passの転送元で内容を解釈しその出力を制御するための制御情報UR_s 4020(Usage Passの転送元には、通常記録モジュールや磁気ディスク装置がなりうる)と、再生モジュール 103がUsage Pass及びコンテンツデータを受信後、モジュールにおけるコンテンツデータの復号処理を制御するための制限情報UR_p 4040とがある。UR_s 4020には、Usage Passが複製された場合の世代情報を表すGeneration Count、自身からUsage Passの複製可能な回数を表すCopy Count、自身のUsage Passを使ってコンテンツデータの復号可能な回数を表すPlay Countなどが含まれる。
図5を用いて、UTモードでのUsage Pass転送が実行可能なUsage Pass転送モジュール221の構成について説明する。
Usage Pass転送モジュール530の中には、他のデバイスとの間で相互認証を行う場合に、自身がPrimal Deviceとなって必要な処理を行うための機能を持ったモジュール500、自身がPrimal DeviceとなってUsage Passの転送を行うための機能を持ったモジュール501、自身がInceptive Deviceとなって必要な処理を行うための機能を持ったモジュール502、自身がInceptive DeviceとなってUsage Passの転送を行うための機能を持ったモジュール503、利用者の意思による書き換えが行えないような静的な記憶領域504、Usage Pass転送を実行した際、処理が正常に終了しなかった場合に、対象のUsage Passが転送元デバイス及び転送先デバイスいずれからも失われてしまうことを避けるための、Usage Passの復旧機能を有するモジュール505、及び制限記憶コントローラ222へUsage Passを送信する前に一時的にそれを蓄積しておいたり、制限記憶部から読み出したUsage Passを一時的に蓄積しておいたりするためのUsage Pass Buffer 510が設けられている。認証用モジュール 500及び502、Usage Pass暗号化及び送信用モジュール 501、Usage Pass受信及び復号化モジュール503、Usage Pass復旧用モジュール505などは、必要に応じて、記憶領域504へアクセスする。記憶領域504は、保護情報領域と呼ばれる。
磁気ディスク装置の外部と各モジュールとの間でのデータのやりとりは、インタフェース520及びバス540を介して行なわれる。PU521は、図2における231と同じものである。
図6を用いて、UTモードでのUsage Pass送信が実行可能な記録モジュール 102の構成について説明する。尚、UTモードによるUsage Passの転送を行う機能を記録再生装置で実現する場合は、図1における保護情報転送モジュール104は、特に必要ではないため、描かれていない。
UTモードでは、記録モジュールは常にPrimal Deviceとなる。そこで、記録モジュール 625の中には、他のデバイスとの間で相互認証を行う場合に、自身がPrimal Deviceとなって必要な処理を行うための機能を持ったモジュール600、自身がPrimal DeviceとなってUsage Passの送信を行うための機能を持ったモジュール601、Usage Pass送信処理を実行した際、処理が正常に終了しなかった場合に、対象のUsage Passが転送元デバイス及び転送先デバイスいずれからも失われてしまうことを避けるための、Usage Passの復旧機能を有するモジュール605、及び外部からコンテンツデータ及び利用権情報を入手し、コンテンツ鍵を生成し、鍵でコンテンツを暗号化し、鍵を含むUsage Passを生成する機能を有するモジュール606が設けられている。暗号化されたコンテンツは、モジュール606からデータバス640へ、External Storage Interface 620を介して、磁気ディスク装置へ記録される。
各モジュールが実際に持っている機能については、図17から図20を用いて相互認証処理及びUsage Pass転送処理を具体的に説明する中で、詳細に説明する。また、保護情報領域504に記録されるデータの種類等については、図8を用いて後で説明する。
図7を用いて、UTモードでのUsage Pass受信が実行可能な再生モジュール103の構成について説明する。記録モジュールと同様に、UTモードでUsage Passの転送を行う機能を記録再生装置で実現する場合は、図1における保護情報転送モジュール104は、特に必要ではないため、描かれていない。
各モジュールが実際に持っている機能については、図17から図20を用いて相互認証処理及びUsage Pass転送処理を具体的に説明する中で、詳細に説明する。また、保護情報領域504に記録されるデータの種類等については、図8を用いて後で説明する。
図8を用いて、記録再生装置におけるUTモード用の保護情報領域の構成を説明する。
記憶領域819は、記録モジュール102がアクセスする領域である。一方、記憶領域839は、再生モジュール103がアクセスする領域である。記憶領域819と839には、同じ種類のデータが保持もしくは記録される。それらは、次の通りである。
801及び821は、Device Class証明書である。Device Class証明書801には、Device Class公開鍵800が、同様にDevice Class証明書821にはDevice Class公開鍵820が含まれる。Device Class証明書は、含まれるDevice Class公開鍵の正当性を証明するものであり、電子署名が含まれる。電子署名部は、認証局秘密鍵K_CAで暗号化されている。
以上の証明書及び鍵情報は、初期の実装時に埋め込まれているもので、後で更新されるものではない。
図9を用いて、磁気ディスク装置におけるUTモード用の保護情報領域の構成を説明する。図示するように、Usage Pass転送モジュール221内に設けられる保護情報領域504に記録されるデータは、図8における記録モジュール用に保持及び記録されるProtected Information819、あるいは再生モジュール用に保持及び記録されるProtected Information839と同じである。つまり、1つのDevice Class証明書901、1つの認証局公開鍵903、1つのDevice Class秘密鍵904、1つのDevice公開鍵905、1つのDevice秘密鍵906が埋め込まれ、また1つのRDCLを記録する領域902、適切な数のTransaction Logを記録する領域が設けられる。Device Class証明書901とそれぞれの鍵903、904、905、906は、磁気ディスク装置がPrimal Deviceとなる場合もInceptive Deviceとなる場合も利用される。Transaction Log記録領域も同様である。RDCLの更新は、磁気ディスク装置がPrimal Deviceとなる場合もInceptive Deviceとなる場合も、更新されうる。RDCLの更新基準は、後に図17を用いて説明する。
図10を用いて、制限記憶部223の構成について説明する。制限記憶部223は、磁気ディスク装置の中にあって、記録モジュールや他の磁気ディスク装置から送られてきたUsage Passを記録し、保持する部分である。Usage Passの記録は、制限記憶コントローラ222によって制御される。制限記憶部223は、Usage Pass本体が記録される領域1000、1010、1020等と、Usage Passの有効性を示すフラグを記録する領域1001、1011、1021等から成る。以降、フラグを有効性指示フラグと呼ぶ。1001に書き込まれた有効性指示フラグは領域1000に書き込まれたUsage Passの有効性を、1011に書き込まれた有効性指示フラグは領域1010に書き込まれたUsage Passの有効性を、1021に書き込まれた有効性指示フラグは領域1020に書き込まれたUsage Passの有効性を示すものである。Usage Pass及び有効性指示フラグを記録する領域は、前記のようにペアを構成し、前記と同様に制限記憶部223内に多数設けられる。各々の有効性指示フラグ領域には、フラグとペアとなっている領域に有効なUsage Passが書き込まれると、制限記憶コントローラ 222によって、「有効」を示す値が記録される。一方、一度書き込まれたUsage Passを再生モジュールや他の磁気ディスク装置へ出力して後は、領域には「無効」を示す値が記録される。また、完全な初期状態においては、「未記録」を示す値が記録される。尚、制限記憶部に記録されているUsage Passの読み出しは、制限記憶コントローラ 222によって行われる。
図11を用いて、BTモードでのUsage Pass転送が実行可能なUsage Pass転送モジュールの構成について説明する。
BTモードでは、磁気ディスク装置は常にInceptive Deviceとなる。そこで、Usage Pass転送モジュール1130の中には、他のデバイスとの間で相互認証を行う場合に、自身がInceptive Deviceとなって必要な処理を行うための機能を持ったモジュール 1102、自身がInceptive DeviceとなってUsage Passの転送を行うための機能を持ったモジュール1103、利用者の意思による書き換えが行えないような静的な記憶領域1104、Usage Pass転送を実行した際、処理が正常に終了しなかった場合に、対象のUsage Passが転送元Device及び転送先Deviceいずれからも失われてしまうことを避けるための、Usage Passの復旧機能を有するモジュール1105、及び制限記憶コントローラ222へUsage Passを送信する前に一時的にそれを蓄積しておいたり、制限記憶部から読み出したUsage Passを一時的に蓄積しておいたりするためのUsage Pass Buffer 1110が設けられている。また、静的な記憶領域1104は、UTモードの場合と同様に保護情報領域と呼ばれる。ただし、ここに記録されるデータは、504に記録されるデータとは、若干異なる。認証用モジュール1100は、必要に応じて、記憶領域へアクセスする。
図12を用いて、BTモードでのUsage Pass送信が実行可能な記録モジュール102の構成について説明する。
BTモードでは、Host Security Manager111全体が常にPrimal Deviceとして動作し、Usage Passは、Host Security Manager111に対して双方向に流れる。そこで、記録モジュール1225は、Usage Passを出力するために必要な機能のみ包含し、Inceptive Deviceとの間で相互認証を行うための機能などは、保護情報転送モジュール104が含む構成とした方が適切である。そこで記録モジュールには、自身がPrimal DeviceとなってUsage Passの送信を行うための機能を持ったモジュール1201、Usage Pass送信処理を実行した際、処理が正常に終了しなかった場合に、対象のUsage Passが転送元デバイス及び転送先デバイスいずれからも失われてしまうことを避けるための、Usage Passの復旧機能を有するモジュール1205、及び外部からコンテンツデータ及び利用権情報を入手し、コンテンツ鍵を生成し、鍵でコンテンツを暗号化し、鍵を含むUsage Passを生成する機能を有するモジュール1206が設けられている。暗号化されたコンテンツデータは、モジュール1206からデータバス1240へ、External Storage Interface1220を介して、磁気ディスク装置へ記録される。
各モジュールが実際に持っている機能については、図22から図27を用いて相互認証処理及びUsage Pass転送処理を具体的に説明する中で、詳細に説明する。また、保護情報領域 1204に記録されるデータの種類等については、図15を用いて後で説明する。
図13を用いて、BTモードでのUsage Pass受信が実行可能な再生モジュール103の構成について説明する。
BTモードでは、再生モジュールは、記録モジュールと同様に、常にPrimal Deviceとなる。記録モジュールについて説明した際にも述べたように、ホストセキュリティマネージャがPrimal DeviceとなってInceptive Deviceと相互認証を行うための機能は、保護情報転送モジュール104が担う。そこで、再生モジュール1325には、自身がPrimal DeviceとなってUsage Passの受信を行うための機能を持ったモジュール1303、Usage Pass受信処理を実行した際、処理が正常に終了しなかった場合に、対象のUsage Passが転送元デバイス及び転送先デバイスいずれからも失われてしまうことを避けるための、Usage Passの復旧機能を有するモジュール1305及び1301、及び受信したUsage Passから、Usage Passに含まれるUR_pに記載されている内容を解釈し、それに従って暗号化されたコンテンツデータを復号する機能を有するモジュール1306が設けられている。この時、暗号化されたコンテンツデータは、External Storage Interface 1320及びデータバス1340を介して、モジュール1306に送信される。復号されたコンテンツデータは、保護されたデータ通信路等を通る形で、モジュール1306から直接再生モジュール外へ出力される。
各モジュールが実際に持っている機能については、図22から図27を用いて相互認証処理及びUsage Pass転送処理を具体的に説明する中で、詳細に説明する。また、保護情報領域1304に記録されるデータの種類等については、図15を用いて後で説明する。
図14を用いて、BTモード用の保護情報転送モジュールの構成について説明する。
記録モジュールや再生モジュールに関する説明においても述べたように、BTモードでは、保護情報転送モジュールがInceptive Deviceとの間の相互認証を実行する構成の方が適切である。そこで、保護情報転送モジュール1410には、自身がPrimal DeviceとなってInceptive Deviceとの間で相互認証処理を実行するためのモジュール1400、再生モジュール1416の中のUsage Pass受信用モジュール1403が生成した最新のセッション鍵を一時的に保持し、必要に応じて記録モジュール内のUsage Pass送信用モジュールへ送信するモジュール1405が含まれる。尚、Usage Pass受信用モジュール1403における最新のセッション鍵生成タイミング、及びUsage Pass送信用モジュール1401におけるセッション鍵の利用方法などについては、図23及び図24を用いて処理シーケンスを説明する際に、詳細に述べる。
図15を用いて、記録再生装置におけるBTモード用の保護情報領域の構成を説明する。
BTモードは、Usage Passを転送する向きに拠らず、ホストセキュリティマネージャ111が全体として常にPrimal Deviceとなり、磁気ディスク装置が常にInceptive DeviceとなってUsage Pass転送をいずれの方向にも実行できるように考案された方式である。それ故、通常記録モジュール102と再生モジュール103は、1つの保護情報領域を共有する形で実装した方が、記録再生装置に設ける静的記憶領域を小さくすることができる。
1503は認証局公開鍵、1504はDevice Class秘密鍵、1505はDevice公開鍵、1506はDevice秘密鍵である。
以上の証明書及び鍵情報は、初期の実装時に埋め込まれているもので、後で更新されるものではない。
図16を用いて、磁気ディスク装置におけるBTモード用の保護情報領域の構成を説明する。
前述の通り、BTモードは、Usage Passを転送する向きに拠らず、ホストセキュリティマネージャ 111が全体として常にPrimal Deviceとなり、磁気ディスク装置が常にInceptive DeviceとなってUsage Pass転送をいずれの方向にも実行できるように考案された方式である。
図示の通り、Usage Pass転送モジュール内に設けられる保護情報領域に記録されるデータは、Transaction Logを除き、ホストセキュリティマネージャ 111に記録されるデータと同一である。つまり、1601はDevice Class公開鍵1600を含むDevice Class証明書であり、1603は認証局公開鍵、1604はDevice Class秘密鍵、1605はDevice公開鍵、1606はDevice秘密鍵、そして1610はConnection Logの記録領域である。
上記の証明書及び鍵情報は、初期の実装時に埋め込まれているもので、後で更新されるものではない点、及びConnection LogはUsage Passを実行しようとするデバイス間で行われる相互認証処理において更新される点も、ホストセキュリティマネージャ111内の保護情報領域101と同じである。
Usage Pass転送を実行するためには、まず初めに、ホストモジュール110が仲介する形で、自身に接続されている脱着可能な記憶装置125,126及び自身に備わっているホストセキュリティマネージャ111に対して、UTモードあるいはBTモードいずれの方式でUsage Pass転送を実行するか、を設定する必要がある。図17は、これを実現するために各Deviceもしくはモジュールに求められる処理及び機能を、ホストモジュールが発行する命令とそれに付随して流れるデータの流れという観点で示したものである。
尚、図17では、ホストモジュールを介して接続されている2つのDeviceを、便宜的にDevice1、Device2と呼んでいるが、これらはいずれも、ホストセキュリティマネージャ(より機能を特定して記録モジュールあるいは再生モジュールの場合もある)、脱着可能な記憶装置内のUsage Pass転送モジュールのいずれかである。これらのモジュールであれば、何れでもよい。
次に、ホストモジュール110は、Device1に対しても同様の命令17010を発行する。Device1は、Device2と同様に、自身がUTモードによるUsage Pass転送を実行する機能とBTモードによるUsage Pass転送を実行する機能のいずれか、もしくは双方を有しているかを、応答17011としてホストモジュール110へ通知する。
図28において、PUT USAGE PASSの後には、ホストモジュールからDevice2にUsage Passが転送され、GET USAGE PASSの後には、Device 2からホストモジュールにUsage Passが転送される。太線で示す命令群(*1、*2、*3印の命令)は、それ自体に処理順序が規定されおり、不規則な順序で命令を受信しても、Device2はそれを失敗させる(abort)。しかし、途中に、細線で示す命令(**1、**2、**3印の命令)が来ても、それは失敗させない。太線の命令群は、それ自体規定された順序を守ってDevice2に命令が送られる限り、問題はないからである。
このような状況において、Device2はChannel IDを使って太線で示す処理系列と細線で示す処理系列を判別する。つまり、同時並列的な処理とは、このような状況を想定しており、太線で示す命令だけ先に初めから最後まで実行しUsage Pass転送を終了してから細線で示す処理を実行するというようなやり方ではなく、上記のように、お互いに属する命令が間に差し挟まれながら全体として処理を行なうような状況をいう。尚、上記のように2つの処理系列に限らず、3つ以上がお互い差し挟まれながら実行される場合も該当する。
例えば、記録再生装置に唯一の脱着型記憶装置が接続されていたとする。このような状況において、UTモードで記録モジュール102から記憶装置(例えば125、以下同じ)へのUsage Passの書き込み行いながら、同様にUTモードで記憶装置125から再生モジュール103へ、既に記録されているUsage Passの読み出しを行うような場合、記憶装置125では、それぞれのUsage Pass転送処理を分離して管理できるようにする必要がある。このような二つの処理系列に異なるChannel識別子を割り当てることで、脱着型の記憶装置は、ホストモジュール110から送信されてきた命令が、どちらの処理系列に関連するものなのかを判断できるようになる。
Device2及びDevice1は、それぞれデータ17021及び17031を受信すると、Channel識別子と、この識別子に関連付けられた制限アクセスモードを設定する処理を、17022及び17032において実行する。
必要なUsage Pass転送処理を終えると、ホストモジュール110は、Device2とDevice1に対し、それぞれクローズチャネル(CLOSE CHANNEL)命令17050及び17060命令を発行する。この命令には、付随してChannel識別子17051及び17061がそれぞれのDeviceに送信される。それぞれのDeviceは、命令を受信すると、命令に続いて受信したChannel識別子で特定される処理系列に関する状態情報をすべてリセットし、Channel識別子も開放する。一度Channel識別子が開放されると、再度OPEN CHANNEL命令によってChannel識別子及び制限アクセスモードを設定しない限り、Deviceは認証処理やUsage Pass転送を実行するためにホストモジュールが発行する命令において、Channel識別子が指定されても、命令に関する処理を中断する。
相互認証及びUsage Pass転送に関する詳細な処理シーケンスについて説明する前に、本発明の実施例で用いられる公開鍵暗号化の方法について説明する。
本実施例では、公開鍵暗号化の方法として楕円暗号を利用する。楕円暗号は、2次元のある楕円曲線の方程式で表される曲線上の固定点(これをベースポイントG = (Gx, Gy)と呼ぶ)に対し、そのn倍点、すなわちGをn回加算するという演算を暗号化に際して利用するものである。ここで用いられる加算法は、通常の十進法の加算方式と異なり、Gを整数回加算した結果は、Gとは異なる楕円曲線上の点となるようなものである。
(E1) Device2からDevice1へ、KPuを送信する。
(E2) Device1において、あるランダム自然数rを生成する。
(E3) r × G = R = (Rx, Ry)を計算する。
(E4) r × KPu = P = (Px, Py)を計算する
(E5) Px, Pyを用いて、ある自然数*KPuを生成する: *KPu = f(Px, Py) ここで、関数fは、事前に決めてあれば、任意でよい。
(E6) *KPuを共通鍵として用い、暗号化対象のメッセージMを、対称暗号化する: E(*KPu, M)
(E7) (6)で得られたデータに、(3)で得られたデータを連結し、Device2へ送信する。送信されるデータは、Rx || Ry || E(*KPu, M)である。ここで、*KPuを共有Device公開鍵と呼ぶ。
(D1) Rx, Ry, KPrを用いて、Pを計算する: KPr × R = KPr × r × G = r × (KPr × G) = r × KPu = P = (Px, Py)
(D2) Px, Pyを用いて、*KPrを求める。ここで、*KPrと*KPuは、全く同一の数である。前者は、KPrを用いて得られたという意味で、*KPrと表現されている: *KPr = f(Px, Py)
(D3) r × KPu = P = (Px, Py)を求める。
(D4) *KPrを共通鍵として用い、受信したデータを、対称復号化する: D(*KPr, E(*KPu, M)), 本発明では、これをD(KPr, E(KPu, M))と記載する。ここで、*KPrを共有Device秘密鍵と呼ぶ。
以上に説明した、共通鍵*KPu、*KPrを共有するためのアルゴリズムは、一般にはECDHアルゴリズムと呼ばれている。
図18から図27には、UTモード及びBTモードでの、相互認証処理シーケンス及びUsage Pass転送処理シーケンスを示す。これらの図中では、短縮形として以下の表記が用いられる。
ID: Usage Pass Identifier(識別子)
DCC: Device Class Certificate
PD.C.key: Primal Deviceで生成されるChallenge鍵
ID.C.key: Inceptive Deviceで生成されるChallenge鍵
PD.S.key: Primal Deviceで生成されるセッション鍵
ID.S.key: Inceptive Deviceで生成されるセッション鍵
RDCL: 失効させられたDevice Classのリスト
UP: Usage Pass
UPL: Usage Pass Locationの略で、Primal Deviceに記録されている、あるいはInceptive Deviceに記録する予定の、Usage Passのアドレスである。アドレッシングの方法は、さまざまな機器毎とに異なるので、ここでは特定しない。
MUP: Masked Usage Pass.Usage Pass中のコンテンツ鍵の部分が0に置き換えられたUsage Passに、Usage Pass Stautsを連結したもの。
AI: Action Indicator.ENCRYPT USAGE PASS COPY/MOVE/PLAYのいずれの命令を受信したかを示すもの。詳細は、図19、図23、図24の説明において述べる。
CKS: Checksum。Usage Passを暗号化して転送する際、転送元においてUsage PassとAction Indicatorを連結したデータから計算し、データに対して連結するもの。詳細は、図19、図23、図24の説明において述べる。
TL: Transaction Log
CL: Connection Log
TS_UT: UTモードにおいて用いられるTransaction Status.詳細は、図21の説明において述べる。
TS_BT: BTモードにおいて用いられるTransaction Status.詳細は、図21の説明において述べる。
Status:
SS: Session Status.Usage Passの転送処理の段階.詳細は、図21の説明において述べる。
UPS: Usage Pass Status。Usage Passの検索あるいは読み出しを行なった結果判明した、記録されているUsage Passの状態。図10における有効性指示フラグに記載されている値と同一である。有効、無効、未記録の3状態がある。
図18を用いて、UTモードにおける、Primal DeviceとInceptive Deviceの間で相互認証を行う場合の処理シーケンスについて説明する。
尚、UTモードにおける相互認証処理段階のことを、以下ではUTコネクションステージ(Connection stage)と呼ぶ。二つの脱着可能な記憶装置間でUsage Passを転送するということは、Primal Deviceが記憶装置125におけるモジュール500、Inceptive Deviceが記憶装置126におけるモジュール502であるような場合である。記録モジュールなどで新たに生成したUsage Passを、脱着可能な記憶装置へ記録するような場合は、Primal Deviceがモジュール600、Inceptive Deviceがモジュール502である。磁気ディスク装置に記録されているUsage Passを再生モジュールへ送信し、コンテンツデータの復号や再生などを行う場合は、Primal Deviceがモジュール500、Inceptive Deviceがモジュール702となる。これらの関係は、図19から図21におけるUTモードでの各処理シーケンスについての説明でも同様である。
ホストモジュール110は、DCC(K_CA, KP_dc[I])を受信すると、Primal Deviceに対しデバイスクラス証明書検証(VERIFY DEVICE CLASS CERTIFICATE)命令18010を発行し、それに続いてDCC(K_CA, KP_dc[I])をPrimal Deviceへ送信する(18012)
Primal Deviceは、DCC(K_CA, KP_dc[I])を受信すると、18012に示す1つの処理(処理UT1.1.1)を実行する。
処理UT1.1.1: DCC(K_CA, KP_dc[I])の検証を行う。検証は、証明書中のデータに対して改竄が行われていないか、及び含まれる証明書を特定する番号が、自身に記録されているRDCL_[P]に載っていないか、を調査することによって達成される。改竄の有無は、KP_dc[I]を含む電子署名部以外のデータのハッシュ値を計算した後、それがDCC(K_CA, KP_dc[I])における電子署名部をKP_CAで復号した結果と一致しているか否かで判定される。両者が一致していた場合、改竄は行われていないことになる。証明書を特定する番号がRDCL_[P]に載っていた場合、認証処理は中断される。
処理UT1.2.1: Challenge鍵K_ch[P]を生成する。
処理UT1.2.2: 処理UT1.2.1で生成したK_ch[P]を、DCC(K_CA, KP_dc[I])中のKP_dc[I]で暗号化する。得られるデータは、E(KP_dc[I], K_ch[P])である。
処理UT1.2.3: 処理UT1.2.2で得られたデータに対し、自身に埋め込まれているDevice Class証明書を連結。得られるデータは、E(KP_dc[I], K_ch[P]) || DCC(K_CA, KP_dc[P])である。
ホストモジュールは、E(KP_dc[I], K_ch[P]) || DCC(K_CA, KP_dc[P])を受信すると、Inceptive Deviceに対してPUT PRIMAL DEVICE CHALLENGE KEY UT CONNECTION命令18030命令を発行後、受信したデータをInceptive Deviceに送信する(18031)。
処理UT1.3.1: DCC(K_CA, KP_dc[P])を検証する。検証手段は、処理UT1.1.1で説明した方法と同じである。但し、参照するRDCLは、RDCL_[I]である。
処理UT1.3.2: 受信したデータのうち、E(KP_dc[I], K_ch[P])を分離し、復号する。復号は、自身の保護情報領域に埋め込まれているK_dc[I]を用いて行う。
処理UT1.3.3: 処理UT1.3.2の結果として、K_ch[P]が正当な形で含まれていたかどうかを確認する。確認は、次のようにして行う。まず、処理UT1.3.2においてK_ch[P]を暗号化する際、K_ch[P]に対し固有の番号を連結して暗号化するということをあらかじめ規定しておく。そして、処理UT1.3.2において受信したデータを復号した際、その結果において、規定された番号が得られれば、データの破壊等は起こっていないと判断する。
処理UT1.4.1: 0次セッション鍵K_s[I]0を生成する。
処理UT1.4.2: 処理UT1.4.1で生成したK_s[I]0に対し、自身に埋め込まれているDevice公開鍵KP_d[I]を連結し、処理UT1.3.1で受信したKP_dc[P]で暗号化する。暗号化によって得られたデータに、自身に記録されているRDCL_[I]を連結し、得られたデータ全体を処理UT1.3.3で得られたK_ch[P]で暗号化する。最終的に得られるデータは、E(K_ch[P], E(KP_dc[P], K_s[I]0 || KP_d[I]) || RDCL_[I])である。
ホストモジュールは、E(K_ch[P], E(KP_dc[P], K_s[I]0 || KP_d[I]) || RDCL_[I])を受信すると、Primal Deviceに対して、インセンプティブデバイスセッションキーUTコネクション送信(PUT INCEPTIVE DEVICE SESSION KEY UT CONNECTION)命令18050を発行後、受信したデータをPrimal Deviceへ送信する(18051)。
処理UT1.5.1: 受信したデータを、K_ch[P]で復号する。K_ch[P]は、処理UT1.2.1において自身で生成された鍵である。
処理UT1.5.2: 処理UT1.5.1の結果から、RDCL_[I]を分離し、RDCL_[I]が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理UT1.5.3: 自身に記録されているRDCL_[P]と、送信されたRDCL_[I]について、それらが発行された日付情報を比較する。RDCLの発行日情報は、RDCL内に含まれるものとする。比較した結果、受信したRDCL_[I]の発行日情報が、自身に記録されているRDCL_[P]の発行日情報より新しかった場合は、RDCL_[P]をRDCL_[I]で上書きする。
処理UT1.5.4: 残りのデータE(KP_dc[P], K_s[I]0 || KP_d[I])を、K_dc[P]で復号する。
処理UT1.5.5: 処理UT1.5.4で得られたデータについて、K_s[I]0 || KP_d[I]が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理UT1.6.1: 0次セッション鍵K_s[P]0生成する。
処理UT1.6.2: 処理UT1.6.1で生成したK_s[P]0を、処理UT1.5.5で受信した0次セッション鍵K_s[I]0で暗号化する。得られるデータはE(K_s[I]0, K_s[P]0)である。ここで、処理UT1.5.3におけるRDCL_[P]とRDCL_[I]の発行日情報の比較の結果、RDCL_[P]の発行日の方が新しかった場合は、E(K_s[I]0, K_s[P]0)に対し、RDCL_[P]を連結後、得られたデータ全体を処理UT1.5.5で得られたKP_d[I]で暗号化する。最終的に得られるデータは、E(KP_d[I], E(K_s[I]0, K_s[P]0 || KP_d[P]) || RDCL_[P])である。
ホストモジュール110は、E(KP_d[I], E(K_s[I]0, K_s[P]0 || KP_d[P]) || RDCL_[P])を受信すると、Inceptive Deviceに対してPUT PRIMAL DEVICE SESSION KEY UT CONNECTION命令18070命令を発行後、受信したデータをDeviceに送信する(18071)。
処理UT1.7.1: 受信したデータを、K_d[I]で復号する。K_d[I]は、自身の保護情報領域に埋め込まれている。
処理UT1.7.2: 処理UT1.7.1の結果にRDCL_[P]が含まれていた場合、データを分離し、データが正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理UT1.7.3: 処理UT1.7.1と処理UT1.7.2の結果、受信したデータにRDCL_[P]が含まれていて、それが正当な形で含まれていたことが確認できた場合、自身に記録されているRDCL_[I]を、受信したRDCL_[P]で上書きする。
処理UT1.7.4: 残りのデータE(K_s[I]0, K_s[P]0)を、K_s[I]0で復号する。K_s[I]0は、処理UT1.4.1において、自身で生成した鍵データである。
処理UT1.7.5: 処理UT1.7.4で得られたデータについて、K_s[P]0が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
UTモードにより、Primal DeviceとInceptive Deviceの間で相互認証が完了すると、Primal DeviceからInceptive Deviceに対して、Usage Passを転送することができる。次に、図19を用いて、Usage Passの転送処理シーケンスについて説明する。尚、UTモードにおけるUsage Pass転送処理段階のことを、以下ではUT Transfer stageと呼ぶ。
処理UT2.1.1: 転送対象のUsage Passを、Usage Pass送信用モジュール内へ準備する。例えば、Primal Deviceが磁気ディスク装置であった場合、目的のUsage Passを制限記憶部 223からUsage Pass Buffer 510を介してモジュール501内に送るような処理に相当する。同様に、Primal Deviceが記録モジュールであった場合、目的のUsage PassをUsage Pass Creator and Content Encrypter606からモジュール601へ送るような処理に相当する。
処理UT2.2.1: セッション鍵K_s[I]nを生成する。セッション鍵は、Usage Pass転送を行う度に生成される共通鍵であり、その意味から、nはn回目のUsage Pass転送用に生成されたことであることを意味する。n ≧ 1である。
処理UT2.2.2: Transaction Logを生成する。ここで記録されるのは、転送対象Usage PassのUsage Pass識別子、処理UT2.2.1で生成したセッション鍵K_s[I]n、Session Statusである。要素には、Usage Passを受信する準備が整ったという意味で、RP(Receive Prepared)が設定される。残りの要素には、不定U(Unspecified)が記録される。
処理UT2.2.3: 処理UT2.2.1で生成したK_s[I]nを、1つ前のUsage Pass転送実行時に生成したセッション鍵K_s[I]n-1及びConnection stageにおいてPrimal Deviceで生成された0次セッション鍵K_s[P]0を用いて、暗号化する。本処理の前に一度のUsage Pass転送が行われていない場合は、Connection stage中の処理UT1.4.1において自身で生成した0次セッション鍵を用いる。得られるデータは、E(K_s[P]0, E(K_s[I]n-1, K_s[I]n))である。
ホストモジュール110は、E(K_s[P]0, E(K_s[I]n-1, K_s[I]n))を受信すると、Primal Deviceに対して、インセプティブデバイスセッション鍵UT転送送信(PUT INCEPTIVE DEVICE SESSION KEY UT TRANSFER)命令19040を発行した後、受信したデータにUsage Pass識別子を連結し、Primal Deviceへ送信する(19041)。送信されるデータは、UPID || E(K_s[P]0, E(K_s[I]n-1, K_s[I]n))である。
処理UT2.3.1: 受信したUPIDと、処理UT2.1.1でUsage Pass送信用モジュール内に準備したUsage PassのUPIDが一致しているか調べる。一致していなければ、ここでUsage Pass転送処理を中断する。
処理UT2.3.2: 受信したデータを、K_s[P]0及びK_s[I]n-1で復号する。K_s[P]0は処理UT1.6.1において自身で生成したものであり、K_s[I]n-1は処理UT.2.2.3において説明したものと同じである。
処理UT2.3.3: 処理UT2.3.2で得られたデータについて、K_s[I]nが正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理UT2.3.4: Transaction Logを生成する。ここで記録されるのは、転送対象Usage PassのUsage Pass識別子、処理UT1.1.1で得たInceptive DeviceのDevice Class証明書に含まれるType Map、処理処理UT2.3.3で得たセッション鍵K_s[I]n、Session Status、転送対象Usage PassのUR_s、処理UT2.1.1で読み出したUsage PassのUsage Pass Locationである。Session Statusには、Usage Passを送信する準備が整ったという意味で、SP(Send Prepared)が設定される。
処理UT2.4.2: 処理UT2.4.1において生成された送信用Usage Passに対し、受信した命令がENCRYPT USAGE PASS COPY/MOVE/PLAYのいずれであるかを示す識別子情報Action Indicator、及びUsage Pass || Action Indicatorに対するChecksumを計算し、連結する。連結処理の後、得られたデータをK_s[I]n及び*KP_d[I]を用いて暗号化する。即ち、共通鍵による二重暗号化である。得られるデータは、E(*KP_d[I], E(K_s[I]n, Usage Pass || Action Indicator || Checksum))である。尚、Checksumの計算は、例えば次のように行えば良い。
まず、計算対象とするデータUsage Pass || Action Indicatorを、固定長ごとに分割する。そして、得られたそれぞれのブロックデータを全て足し合わせた後、全てのビット値を反転し、更に1を加える。これは、Usage Pass || Action Indicatorの2の補数を求めていることに他ならない。検証時は、Checksumを含めたデータ全体Usage Pass || Action Indicator || Checksumを先と同じ固定長に分割後、各ブロックデータを全て足し合わせる。その結果が0となれば、途中でデータに変化がないということになる。
処理UT2.5.1: Transaction LogにおけるSession Statusを更新する。Usage Passの送信が完了したことで、Session StatusをSC(Send Completed)に設定する。
処理UT2.5.2: 処理2.4.2において生成されたデータE(*KP_d[I], E(K_s[I]n, Usage Pass || Action Indicator || Checksum))をホストモジュールへ送信する。
処理UT2.5.3: 元のUsage Pass中のUR_sを規定に従って変更する。Primal Deviceが磁気ディスク装置であった場合は、UR_sが変更されたUsage Passを、Usage Passが制限記憶部中で元来記録されていた場所に、上書きする。尚、命令19050がENCRYPT USAGE PASS MOVEであった場合、有効性指示フラグの値は「無効」にされる。
処理UT2.5.1: 受信したデータを、*K_d[I]及びK_s[I]nで復号する。*K_d[I]は、処理UT1.7.1において得た共通鍵である。また、K_s[I]nは処理UT2.2.1において自身で生成したセッション鍵である。
処理UT2.5.2: 処理UT2.5.1で得られたデータについて、Usage Pass || Action Indicator || Checksumが正当な形で含まれていたかどうかを確認する。確認は、Checksumを検証すること及び処理UT1.3.3に記した手段を用いて行われる。Checksumによる検証方法は、処理UT2.4.2に記載してある。
処理UT2.5.3: Transaction LogにおけるSession Status及びUsage Pass Locationを更新する。Session Status には、Usage Passの受信が完了したということを表すRC(Receive Completed)を設定する。Usage Pass Locationには、Usage Passの記録先アドレスを記載する。
その後、Inceptive DeviceにおけるUsage Passの受信もしくは制限記憶部223への記録が正常に終了したか否かを確認するために、ホストモジュール110は、Inceptive Deviceに対し、実行ステータスチェック(CHECK EXECUTION STATUS)命令19080を発行しても良い。Inceptive Deviceからホストモジュールへは、実行状態が19081において送信される。
以上のように、UT Transfer stageを繰り返すことにより、Connection stageを繰り返し行わなくても、連続的にUsage Pass転送を実行することができる。
Primal DeviceとInceptive Deviceの間で1回以上のUT Transfer stageが行われ、両Deviceの間でセッション鍵K_s[I]nの共有及び鍵のTransaction Logへの記録が終了した後、記録再生装置に異常が発生して、Usage Pass送信用モジュール及び同受信用モジュールからセッション鍵が失われてしまった場合、Connection stageと比べ、少ない処理で相互認証を再完了することができる。
次に、図20を用いて、この再相互認証処理について説明する。尚、UTモードにおける本処理段階のことを、以下ではUT Reconnection stageと呼ぶ。
上記の場合、ホストモジュール110は、まずPrimal Deviceに対し、トランザクションログ再認証検索(SEARCH TRANSACTION LOG RECONNECTION)命令20020を発行する。そして、命令に続き、20001で送信中であったUsage PassのUsage Pass識別子を、送信する(20021)。
Primal Deviceは、識別子を受信すると、20022に示す下記の1つの処理を実行する。
処理UT3.1.1: 保護情報領域の中で、識別子と同じ識別子値が記録されているTransaction Logを検索する。
処理UT3.2.1: 新しい0次セッション鍵K_s[P]0'を生成する。
処理UT3.2.2: 処理UT3.2.1で生成したK_s[P]0'を、処理UT3.1.1で見出された自身のTransaction Logに記録されているセッション鍵K_s[I]TL及びDevice公開鍵KP_d[I]TLで暗号化する。鍵K_s[I]TL及びKP_d[I]TLは、Transaction Logに記録されていた鍵データであるということを表している。最終的に得られるデータは、E(KP_d[I]TL, E(K_s[I]TL, K_s[P]0'))である。
処理UT3.2.2における暗号化を終えると、Primal Deviceは、その暗号化されたデータをホストモジュールへ送信する(20032)。
Inceptive Deviceは、E(KP_d[I]TL, E(K_s[I]TL, K_s[P]0'))を受信すると、20042に示す下記の3つの処理を実行する。
処理UT3.3.1: 保護情報領域の中で、識別子と同じ識別子値が記録されているTransaction Logを検索する。
処理UT3.3.2: 受信したデータを復号する。復号は、自身の保護情報領域に埋め込まれているK_d[I]及び処理UT3.3.1で見出されたTransaction Log中に含まれるセッション鍵K_s[I]TLである。
処理UT3.3.3: 処理UT3.3.2の結果として、K_s[P]0'が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理UT3.3.2が完了すると、*KP_d[I](*K_d[I]と同じ)、K_s[P]0'の共有が完了する。以上の処理に続いてUT Transfer stageを実行する場合、K_s[I]n-1としては、K_s[I]TLを用いる。
UT Transfer stageにおいてUsage Passの移動が行われている最中に、記録再生装置に電源断などの異常が発生して、Primal DeviceからもInceptive Deviceからも転送処理中のUsage Passが失われてしまった場合や、Primal DeviceからInceptive Deviceに対して再生用のUsage Pass転送を行い、Primal DeviceにおけるUsage PassのPlay Countは減ぜられたが、Inceptive Deviceでは全く再生を実行しなかった場合などに、Primal Deviceに元来存在したUsage PassのPlay Countを伴った形で、Usage Passを復旧することができるような仕組みを設けることは有意義である。
次に、図21を用いて、このようなUsage Pass復旧処理について説明する。UTモードにおける本処理段階のことを、以下ではUT Recovery stageと呼ぶ。
Primal Deviceは、識別子を受信すると、21022に示す4つの処理を実行する。
処理UT4.1.1: 保護情報領域の中で、識別子と同じ識別子値が記録されているTransaction Logを検索する。
処理UT4.1.2: 処理UT.4.1.1で見出されたTransaction Logに記録されていたUsage Pass Locationで指定される制限記憶部中のUsage Pass記憶領域を検索する。
処理UT4.1.3: 処理UT4.1.2で見出されたUsage Passについて、その有効性指示フラグの値を調べ、Usage Pass Statusに「有効」「無効」「未記録」のいずれかの値を設定する。
処理UT4.1.4: UTモード用Transaction Statusを生成する。Transaction Statusは、復旧対象Usage PassのUPID || Transaction Log中に記録されているSession Status || 処理UT4.1.3で設定したUsage Pass Status || Hash値である。ここでHash値は、K_s[P]0' || K_s[I]TL || UPID || Session Status || Usage Pass Statusから計算される。本処理で生成されたTransaction Statusを、以下ではUT Transaction Statusと呼ぶ。
ホストモジュール110は、Transaction Statusを受信すると、Primal Deviceに対し、トランザクションステータスUT復旧検証(VERIFY TRANSACTION STATUS UT RECOVERY)命令21040を発行し、続いて受信したデータを送信する(21041)。送信されるデータは、UT Transaction Statusである。
処理UT4.2.1: UT Transaction Statusの検証と、UT Transaction Statusに含まれるUsage Pass識別子、Session Status、Usage Pass Statusの確認を行う。UT Transaction Statusの検証は、データに含まれるHash値を、自身が保持しているK_s[P]0'とK_s[I]TLから計算することによって行う。計算結果が含まれているHash値と一致すれば、データの改竄は行われていないと判断される。また、Usage Pass識別子は、今回復旧対象のものであるどうかの確認、Session Status及びUsage Pass Statusは復旧可否を判定するために用いられる。Session StatusがRPであった場合や、Session StatusがRPであるがUsage Pass Statusが「無効」や「未記録」であった場合は、Primal Deviceにおける復旧処理(下記処理4.2.2)が行われる。
処理UT4.2.2: 保護情報領域の中で、識別子と同じ識別子値が記録されているTransaction Logを検索する。
処理UT4.2.3: Usage Pass復旧処理を実行する。Usage Passの復旧は、対象のUsage Passの有効性指示フラグが「無効」となっていた場合はそれを「有効」にし、復旧対象のUsage PassのUR_sを、処理UT4.2.2で見出されたTransaction Logに記録されていたUR_sで上書きすることによって達成される。
処理UT4.2.2が完了すると、Primal Deviceには、送信する以前のUsage Passが存在するようになる。
次に、図22を参照して、BTモードにおける、Primal DeviceとInceptive Deviceの間で相互認証を行う場合の処理シーケンスについて説明する。尚、BTモードにおける相互認証処理段階のことを、以下ではBT Connection stageと呼ぶ。
図11から図13の説明でも述べたように、BTモードでは、Primal Deviceは記録再生装置内のホストセキュリティマネージャ111全体である。Managerに含まれるモジュールの中で、相互認証処理は保護情報転送モジュール内のモジュール1400が、Usage Passの送信や受信は記録モジュールと再生モジュール内のモジュール1201やモジュール1303が担う。また、Inceptive Deviceは、磁気ディスク装置内のUsage Pass転送モジュール1130である。これらの関係は、以後図22から図27において説明するBTモードでの各処理シーケンスにおいても同様である。
ホストモジュール110は、DCC(K_CA, KP_dc[I])を受信すると、Primal Deviceに対してVERIFY DEVICE CLASS CERTIFICATE命令22010を発行し、それに続いてDCC(K_CA, KP_dc[I])をPrimal Deviceへ送信する(22012)。
処理BT1.1.1: DCC(K_CA, KP_dc[I])を検証する。証明書について改竄が行われていないか、及び含まれる証明書を特定する番号が自身に記録されているRDCL_[P]に載っていないか、検証する。検証方法は、UT1.1.1に記載した方法と同じである。
処理BT1.1.2: Challenge鍵K_ch[P]を生成する。
処理BT1.1.3:処理BT1.1.3で生成したK_ch[P]を、DCC(K_CA, KP_dc[I])中のKP_dc[I]で暗号化する。この暗号方式は、公開鍵暗号化である。得られるデータは、E(KP_dc[I], K_ch[P])である。
処理BT1.1.4: 処理BT1.1.3で得られたデータに対し、自身に埋め込まれているDevice Class証明書を連結。得られるデータは、E(KP_dc[I], K_ch[P]) || DCC(K_CA, KP_dc[P])である。
ホストモジュール110は、E(KP_dc[I], K_ch[P]) || DCC(K_CA, KP_dc[P])を受信すると、Inceptive Deviceに対してPUT PRIMAL DEVICE CHALLENGE KEY BT CONNECTION命令22040命令を発行後、受信したデータをInceptive Deviceに送信する(22041)。
処理BT1.2.1: DCC(K_CA, KP_dc[P])を検証する。検証手段は、処理UT1.1.1で説明した方法と同じである。但し、参照するRDCLは、RDCL_[I]である。
処理BT1.2.2: 受信したデータのうち、E(KP_dc[I], K_ch[P])を分離し、復号する。復号は、自身の保護情報領域に埋め込まれているK_dc[I]を用いて行う。
処理BT1.2.3: 処理BT1.2.2の結果として、K_ch[P]が正当な形で含まれていたかどうかを確認する。確認の方法は、処理UT1.3.3に記載した方法と同じである。
処理BT1.3.1: Challenge鍵K_ch[I]を生成する。
処理BT1.3.2: 処理BT1.3.1で生成したK_ch[I]に対し、自身に埋め込まれているDevice公開鍵KP_d[I]を連結し、処理BT1.2.1で受信したKP_dc[P]で暗号化する。暗号化によって得られたデータに、自身に記録されているRDCL_[I]を連結し、得られたデータ全体を処理BT1.2.3で得られたK_ch[P]で暗号化する。最終的に得られるデータは、E(K_ch[P], E(KP_dc[P], K_ch[I] || KP_d[I]) || RDCL_[I])である。
ホストモジュール110は、E(K_ch[P], E(KP_dc[P], K_ch[I] || KP_d[I]) || RDCL_[I])を受信すると、Primal Deviceに対しPUT INCEPTIVE DEVICE CHALLENGE KEY BT CONNECTION命令22060を発行した後、受信したデータをPrimal Deviceへ送信する(22061)。
処理BT1.4.1: 受信したデータを、K_ch[P]で復号する。K_ch[P]は、処理BT1.1.2において自身で生成された鍵である。
処理BT1.4.2: 処理UT1.4.1の結果から、RDCL_[I]を分離し、RDCL_[I]が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT1.4.3: 自身に記録されているRDCL_[P]と、送信されたRDCL_[I]について、それらが発行された日付情報を比較する。RDCLの発行日情報は、RDCL内に含まれるものとする。比較した結果、受信したRDCL_[I]の発行日情報が、自身に記録されているRDCL_[P]の発行日情報より新しかった場合は、RDCL_[P]をRDCL_[I]で上書きする。
処理BT1.4.4: 残りのデータE(KP_dc[P], K_ch[I] || KP_d[I])を、K_dc[P]で復号する。
処理BT1.4.5: 処理BT1.4.4で得られたデータについて、K_ch[I] || KP_d[I]が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.2.3に記したものと同じである。
処理BT1.4.6: 0次セッション鍵K_s[P]0生成する。
処理BT1.4.7: 処理BT1.4.6で生成したK_s[P]0に自身に埋め込まれているDevice公開鍵KP_d[P]を連結し、処理BT1.4.5で受信したDevice公開鍵KP_d[I]で暗号化する。得られるデータはE(KP_d[I], K_s[P]0 || KP_d[P])である。ここで、処理BT1.4.3におけるRDCL_[P]とRDCL_[I]の発行日情報の比較の結果、RDCL_[P]の発行日の方が新しかった場合は、E(KP_d[I], K_s[P]0 || KP_d[P])に対し、RDCL_[P]を連結後、得られたデータ全体を処理BT1.4.5で得られたK_ch[I]で暗号化する。最終的に得られるデータは、E(K_ch[I], E(KP_d[I], K_s[P]0 || KP_d[P]) || RDCL_[P])である。
ホストモジュール110は、E(K_ch[I], E(KP_d[I], K_s[P]0 || KP_d[P]) || RDCL_[P])を受信すると、Inceptive Deviceに対してPUT PRIMAL DEVICE SESSION KEY BT CONNECTION命令22080命令を発行後、受信したデータをDeviceに送信する(22081)。
処理BT1.5.1: 受信したデータを、K_ch[I]で復号する。K_ch[I]は、処理BT1.3.1において、自身で生成した鍵データである。
処理BT1.5.2: 処理BT1.5.1の結果にRDCL_[P]が含まれていた場合、データを分離し、データが正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT1.5.3: 処理BT1.5.1と処理BT1.5.2の結果、受信したデータにRDCL_[P]が含まれていて、それが正当な形で含まれていたことが確認できた場合、自身に記録されているRDCL_[I]を、受信したRDCL_[P]で上書きする。
処理BT1.5.4: 残りのデータE(KP_d[I], K_s[P]0 || KP_d[P])を、K_d[I]0で復号する。K_d[I]は、自身の保護情報領域に埋め込まれている。
処理BT1.5.5: 処理UT1.5.4で得られたデータについて、K_s[P]0 || KP_d[P]が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT1.6.1: 0次セッション鍵K_s[I]0を生成する。
処理BT1.6.2: Connection Logに、処理BT1.5.5で受信したK_s[P]0及びKP_d[P]、処理BT1.6.1で生成したK_s[I]0、処理BT1.2.1で受信したDCC(K_CA, KP_dc[P])に含まれていたPrimal DeviceのType Map TM_[P]を記録する。
処理BT1.6.3: 処理BT1.6.1で生成したK_s[I]0を、処理BT1.5.5で受信したK_s[P]0及びKP_d[P]で暗号化する。得られるデータは、E(KP_d[P], E(K_s[P]0, K_s[I]0))である。
ホストモジュール110は、E(KP_d[P], E(K_s[P]0, K_s[I]0))を受信すると、Primal Deviceに対してPUT INCEPTIVE DEVICE SESSION KEY BT CONNECTION命令22100命令を発行後、受信したデータをDeviceに送信する(22101)。
処理BT1.7.1: 受信したデータを、K_d[P]及びK_s[P]0で復号する。K_d[P]は、自身の保護情報領域に埋め込まれている鍵データであり、K_s[P]0は処理BT1.4.6において自身で生成した鍵データである。
処理UT1.7.2: 処理UT1.7.1で得られたデータについて、K_s[I]0が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT1.7.3: Connection Logに、処理BT1.4.5で受信したKP_d[I]、処理BT1.7.2で受信したK_s[I]0、処理BT1.4.6で生成したK_s[P]0、処理BT1.1.1で受信したDCC(K_CA, KP_dc[I])に含まれていたPrimal DeviceのType Map TM_[I]を記録する。
以上処理BT1.7.3までを完了すると、共有Device公開鍵*KP_d[P](共有Device秘密鍵*K_d[P]と同じ)、K_s[P]0、K_s[I]0の共有が完了する。
BTモードにより、Primal DeviceとInceptive Deviceの間で相互認証が完了すると、Primal DeviceからInceptive Deviceあるいはその逆の方向に関して、Usage Passを転送することができる。
まず、Primal DeviceからInceptive DeviceへUsage Passを転送する場合について、図23を用いて説明する。記録モジュール102がPrimal Deviceとなって、磁気ディスク装置にUsage Passを転送する場合が、その一例である。尚、BTモードにおけるPrimal DeviceからInceptive DeviceへのUsage Pass転送処理段階のことを、以下ではBT PI Transfer stageと呼ぶ。
処理BT2.1.1: 転送対象のUsage Passを、Usage Pass送信用モジュール内へ準備する。Primal Deviceが記録モジュールである場合、目的のUsage PassをUsage Pass Creator and Content Encrypter 606からモジュール 601へ送るような処理に相当する。
処理BT2.2.1: セッション鍵K_s[I]nを生成する。ここでnは、ここでnは、BT Connection stage完了後、本処理がn回目のBT PI Transfer stageであることを意味する。
処理BT2.2.2: 処理BT2.2.1で生成したK_s[I]nを、1つ前のUsage Pass転送実行時に生成したセッション鍵K_s[I]n-1及びPrimal Deviceにおいて生成された最新のセッション鍵K_s[P]mを用いて、暗号化する。K_s[P]mは、Inceptive DeviceからPrimal Deviceに対してUsage Pass転送処理が実行される度に生成されるものであり、BT Connection stageが完了してから、m回の転送処理が実行されたことを意味する。Inceptive DeviceからPrimal DeviceへのUsage Pass転送処理シーケンスの詳細は、図24を用いて後述する。もし、一度もInceptive DeviceからPrimal Deviceに対してUsage Pass転送処理が実行されていなかった場合は、BT Connection stageにおいて共有される0次セッション鍵K_s[P]0を、K_s[P]mとして用いる。得られるデータは、E(K_s[P]m, E(K_s[I]n-1, K_s[I]n))である。
ホストモジュール110は、E(K_s[P]m, E(K_s[I]n-1, K_s[I]n))を受信すると、Primal Deviceに対しPUT INCEPTIVE DEVICE SESSION KEY BT TRANSFER命令22030を発行し、続いて受信したデータをPrimal Deviceへ送信する(23031)。
処理BT2.3.1: 受信したデータを、K_s[P]m及びK_s[I]n-1で復号する。両鍵データについては、処理BT2.2.2で説明した通りである。
処理BT2.3.2: 処理BT2.3.1で得られたデータについて、K_s[I]nが正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT2.3.3: Transaction Logを生成する。BTモードでのUsage Pass転送処理では、Primal DeviceのみTransaction Logの記録を行う。BTモードにおけるTransaction Logの要素は、転送対象Usage PassのUsage Pass識別子、当Usage Pass転送処理におけるPrimal Deviceの役割(即ち、Usage Pass転送元「Source」であるか、同転送先「Destination」であるか)、Primal DeviceがUsage Passの転送先であった場合のみ受信予定のUsage Passの受信以前のUR_s、Primal DeviceがUsage Passの転送元であった場合のみ送信予定のUsage Passの送信以前のUsage Pass、Primal DeviceがUsage Passの転送先であった場合は同転送元におけるUsage Pass Location(読み出し元のアドレス)、Primal DeviceがUsage Passの転送元であった場合は同転送先におけるUsage Pass Location(記録先のアドレス)である。それらのうち、ここで記録されるのは、転送対象Usage PassのUsage Pass識別子、このUsage Pass転送処理におけるPrimal Deviceの役割「Source」(図中では短縮形「S」)、送信対象Usage Passの送信前の当該Usage Pass、Usage PassのUsage Pass Location(記録先アドレス)である。
処理BT2.4.1: Inceptive Deviceに対して送信するUsage Passを、処理BT2.1.1においてUsage Pass送信用モジュール内に準備されたUsage Passを元に、生成する。通常、UPIDやK_cなどはそのまま複製され、UR_sのみ規定に従う形で変更される。
処理BT2.4.2: Transaction LogにおけるUsage Pass Locationに、23041で受信したInceptive DeviceでのUsage Passの記録先アドレスを記録する。
処理BT2.4.3: 処理BT2.4.1において生成された送信用Usage Passに対し、受信した命令がENCRYPT USAGE PASS COPY/MOVE/PLAYのいずれであるかを示す識別子情報Action Indicator、及びUsage Pass || Action Indicatorに対するChecksumを計算し、連結する。連結処理の後、得られたデータをK_s[I]n及び*KP_d[I]を用いて暗号化する。即ち、共通鍵による二重暗号化である。得られるデータは、E(*KP_d[I], E(K_s[I]n, Usage Pass || Action Indicator || Checksum))である。Checksumの計算は、UT2.4.2に記載した通りである。
ホストモジュール110はE(*KP_d[I], E(K_s[I]n, Usage Pass || Action Indicator || Checksum))を受信すると、Inceptive Deviceに対しPUT USAGE PASS命令23060を発行し、続いてE(*KP_d[I], E(K_s[I]n, Usage Pass || Action Indicator || Checksum))を送信する(23061)。
処理BT2.5.1: 受信したデータを、*K_d[I]及びK_s[I]nで復号する。*K_d[I]は、処理BT1.5.4において得た共通鍵である。また、K_s[I]nは処理BT2.2.1において自身で生成したセッション鍵である。
処理BT2.5.2: 処理UT2.5.1で得られたデータについて、Usage Pass || Action Indicator || Checksumが正当な形で含まれていたかどうかを確認する。確認は、Checksumを検証すること及び処理UT1.3.3に記した手段を用いて行われる。Checksumによる検証方法は、処理UT2.4.2に記載してある。
処理UT2.5.3: 受信したUsage Passを制限記憶部へ記録する。Usage Passの記録を行う際には、有効性指示フラグを「有効」に設定する。
その後、Inceptive Deviceにおける制限記憶部223へのUsage Passの記録が正常に終了したか否かを確認するために、ホストモジュールは、Inceptive Deviceに対し、CHECK EXECUTION STATUS命令23070を発行しても良い。Inceptive Deviceからホストモジュールへは、実行状態が23071において送信される。
以上に記したBT Transfer stageを繰り返すことにより、Connection stageを繰り返し行わなくても、Primal DeviceからInceptive Deviceに対し、連続的にUsage Pass転送を実行することができる。
次に、図24を参照して、Inceptive DeviceからPrimal DeviceへUsage Passを転送する場合について説明する。磁気ディスク装置がPrimal Deviceとなって、再生モジュール104にUsage Passを転送する場合が、その一例である。尚、BTモードにおけるInceptive DeviceからPrimal DeviceへのUsage Pass転送処理段階のことを、以下ではBT IP Transfer stageと呼ぶ。
処理BT3.1.1: 制限記憶部において指定されたアドレスから転送対象のUsage Passを読み出し、Usage Pass Buffer 1110へ送信する。
処理BT3.2.1: READ USAGE PASS命令24000で制限記憶部から読み出したUsage PassからMasked Usage Passを生成し、それに対しGET MASKED USAGE PASS WITH KEYED HASH命令24010を受信した時点で最新のセッション鍵K_s[P]m-1及びK_s[I]nを連結したデータを元に、Hash値を計算する。命令24000で複数のUsage Passを一度に読み出している場合は、個々のUsage Passに対してHash値を計算する。
処理BT3.2.2: 処理BT3.2.1で生成した個々のHash値を、個々のMasked Usage Passに連結する。得られるデータは、MUP || H(K_s[P]m-1 || K_s[I]n || MUP)である。
ホストモジュール110は、MUP || H(K_s[P]m-1 || K_s[I]n || MUP)受信すると、Primal Deviceに対し、PUT MASKED USAGE PASS WITH KEYED HASH命令を発行し、続いてデータをPrimal Deviceへ送信する。
処理BT3.3.1: 受信したデータについて、改竄が行われていないかどうかを検証する。自身が保持しているセッション鍵K_s[P]m-1及びK_s[I]n及び受信したMUPを用いてHash値H(K_s[P]m-1 || K_s[I]n || MUP)を計算し、それが受信したHasht値と一致していれば、改竄が行われていないと判断する。
処理BT3.3.1をPrimal Deviceが実行中、ホストモジュールは処理が終了するタイミングを予測し、適切なタイミングで、Primal Deviceに対し、CREATE PRIMAL DEVICE SESSION KEY BT TRANSFER命令24030を発行し、続いて転送対象Usage PassのUsage Pass識別子を送信する(24031)。
処理BT3.4.1: 24031で受信したUsage Pass識別子と、24021で受信したMasked Usage PassのUsage Pass識別子が一致しているか確認する。
処理BT3.4.2: Transaction Logを生成する。ここで記録されるのは、転送対象Usage PassのUsage Pass識別子、当Usage Pass転送処理におけるPrimal Deviceの役割「Destination」(図中では短縮形「D」)、24021で受信したMasked Usage Pass中に含まれるUR_s、Inceptive Device中の制限記憶部におけるUsage Pass Location(記録元アドレス)である。
処理BT3.4.3: セッション鍵K_s[P]mを生成する。ここでmは、BT Connection stage完了後、m回目のBT IP Transfer stageにおいて生成されたセッション鍵であることを意味する。
処理BT3.4.4: 処理BT3.4.3で生成したK_s[P]mを、1つ前のUsage Pass転送実行時に生成したセッション鍵K_s[P]m-1及びInceptive Deviceにおいて生成された最新のセッション鍵K_s[P]nを用いて、暗号化する。K_s[I]nは、BT PI Transfer stageが実行される度に生成されるものであり、BT Connection stageが完了してから、n回の転送処理が実行されたことを意味する。尚、BT PI Transfer stageについては、図23を用いて前節で説明済みである。もし、一度もPrimal DeviceからInceptive Deviceに対してUsage Pass転送処理が実行されていなかった場合は、BT Connection stageにおいて共有される0次セッション鍵K_s[I]0を、K_s[I]nとして用いる。得られるデータは、E(K_s[I]n, E(K_s[P]m-1, K_s[P]m))である。
ホストモジュール110は、E(K_s[I]n, E(K_s[P]m-1, K_s[P]m))を受信すると、Inceptive Deviceに対しPUT PRIMAL DEVICE SESSION KEY BT TRANSFER命令24050を発行後、受信したデータをInceptive Deviceへ送信する(24051)。
処理BT3.5.1: 受信したデータを、K_s[I]n及びK_s[P]m-1で復号する。両鍵データについては、処理BT3.2.1及び処理BT3.4.4で説明した通りである。
処理BT3.5.2: 処理UT3.5.1で得られたデータについて、K_s[P]mが正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
そこで、この命令を受信すると、Inceptive Deviceは、24062に示す下記の2つの処理を実行する。
処理BT3.6.1: Primal Deviceに対して送信するUsage Passを、処理BT3.1.1においてUsage Pass Bufferへ送信されたUsage Passを元に、モジュール 1103内に生成する。通常、UPIDやK_cなどはそのまま複製され、UR_sのみ規定に従う形で変更される。
処理BT3.6.2: 処理BT3.6.1において生成された送信用Usage Passに対し、受信した命令がENCRYPT USAGE PASS COPY/MOVE/PLAYのいずれであるかを示す識別子情報Action Indicator、及びUsage Pass || Action Indicatorに対するChecksumを計算し、連結する。連結処理の後、得られたデータをK_s[P]m及び*KP_d[P]を用いて暗号化する。即ち、共通鍵による二重暗号化である。得られるデータは、E(*KP_d[P], E(K_s[P]m, Usage Pass || Action Indicator || Checksum))である。Checksumの計算は、UT2.4.2に記載した通りである。
処理BT3.7.1: Usage Pass Buffer中のUsage PassのUR_sを、規定に従って変更する。そして、Usage PassをUsage Passが制限記憶部中で元来記録されていた場所に、上書きする。尚、命令24060がENCRYPT USAGE PASS MOVEであった場合、有効性指示フラグの値は「無効」にされる。
ホストモジュール110はE(*KP_d[P], E(K_s[P]m, Usage Pass || Action Indicator || Checksum))を受信すると、Primal Deviceに対しPUT USAGE PASS命令24080を発行し、またDeviceに対し、E(*KP_d[P], E(K_s[P]m, Usage Pass || Action Indicator || Checksum))を送信する(24081)。
処理BT3.8.1: 受信したデータを、*K_d[P]及びK_s[P]mで復号する。*K_d[P]は、処理BT1.7.1において得た共通鍵である。また、K_s[P]mは処理BT3.4.3において自身で生成したセッション鍵である。
処理BT3.8.2: 処理UT3.8.1で得られたデータについて、Usage Pass || Action Indicator || Checksumが正当な形で含まれていたかどうかを確認する。確認は、Checksumを検証すること及び処理UT1.3.3に記した手段を用いて行われる。Checksumによる検証方法は、処理UT2.4.2に記載した通りである。
以上に記したBT Transfer stageを繰り返すことにより、Connection stageを繰り返し行わなくても、Inceptive DeviceからPrimal Deviceに対し、連続的にUsage Pass転送を実行することができる。
Primal DeviceとInceptive Deviceの間で1度BT Connection stageが行われ、両Deviceの間で互いの共有Device公開鍵KP_d[P]及びKP_d[I]、0次セッション鍵K_s[P]0及びK_s[I]0、の共有及び鍵のConnection Logへの記録が終了した後、記録再生装置に電源供給停止等の異常が発生して、Usage Pass送信用モジュール及び同受信用モジュールからセッション鍵が失われてしまった場合、Connection stageと比べ、少ない処理で相互認証を再完了することができる。この再相互認証処理について、図25を用いて説明する。尚、BTモードにおける本処理段階のことを、以下ではBT Reconnection stageと呼ぶ。
この場合、ホストモジュール110は、まずPrimal Deviceに対し、CREATE PRIMAL DEVICE SESSION KEY BT RECONNECTION命令25010を発行する。
Primal Deviceは、命令を受信すると、25011に示す下記の2つの処理を実行する。
処理BT4.1.1: 新しい0次セッション鍵K_s[P]0'を生成する。
処理BT4.1.2: 処理BT4.1.1で生成したK_s[P]0'を、自身のConnection Logに記録されているセッション鍵K_s[I]CL及びDevice公開鍵KP_d[I]CLで暗号化する。鍵K_s[I]CL及びKP_d[I]CLは、Connection Logに記録されていた鍵データであるということを表している。最終的に得られるデータは、E(KP_d[I]CL, E(K_s[I]CL, K_s[P]0'))である。
ホストモジュール110は、E(KP_d[I]CL, E(K_s[I]CL, K_s[P]0'))を受信すると、Inceptive Deviceに対してPUT PRIMAL DEVICE SESSION KEY BT RECONNECTION命令25030命令を発行した後、受信したデータをInceptive Deviceに送信する(25031)。
Inceptive Deviceは、E(KP_d[I]CL, E(K_s[I]CL, K_s[P]0'))を受信すると、25032に示す下記の2つの処理を実行する。
処理BT4.2.1: 受信したデータを復号する。復号は、自身の保護情報領域に埋め込まれているK_d[I]及びConnection Log中に含まれるセッション鍵K_s[I]CLである。
処理BT4.2.2: 処理UT4.2.1の結果として、K_s[P]0'が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT4.3.1: 新しい0次セッション鍵K_s[I]0'を生成する。
処理BT4.3.2: 処理BT4.3.1で生成したK_s[I]0'を、自身のConnection Logに記録されているセッション鍵K_s[P]CL及びDevice公開鍵KP_d[P]CLで暗号化する。鍵K_s[P]CL及びKP_d[P]CLは、Connection Logに記録されていた鍵データであるということを表している。最終的に得られるデータは、E(KP_d[P]CL, E(K_s[P]CL, K_s[I]0'))である。
処理BT4.3.3: 処理BT4.2.2で受信したK_s[P]0'、処理BT4.3.1で生成したK_s[I]0'を、Connection Logに上書き記録する。KP_d[P]及びTM_[P]は、そのまま保持する。
ホストモジュール110は、E(KP_d[P]CL, E(K_s[P]CL, K_s[I]0'))を受信すると、Primal Deviceに対してPUT INCEPTIVE DEVICE SESSION KEY BT RECONNECTION命令25050命令を発行後、受信したデータをPrimal Deviceに送信する(25051)。
Primal Deviceは、E(KP_d[P]CL, E(K_s[P]CL, K_s[I]0'))を受信すると、25052に示す下記の3つの処理を実行する。
処理BT4.4.1: 受信したデータを復号する。復号は、自身の保護情報領域に埋め込まれているK_d[P]及びConnection Log中に含まれるセッション鍵K_s[P]CLである。
処理BT4.4.2: 処理UT4.4.1の結果として、K_s[I]0'が正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT4.4.3: 処理BT4.4.2で受信したK_s[I]0'、処理BT4.1.1で生成したK_s[P]0'を、Connection Logに上書き記録する。KP_d[I]及びTM_[I]は、そのまま保持する。
BT PI Transfer stageにおいてUsage Passの移動が行われている最中に、記録再生装置に異常が発生して、Primal DeviceからもInceptive Deviceからも転送処理中のUsage Passが失われてしまった場合、Primal Deviceにおいて、元来存在したものと同じUR_sを伴った形で、Usage Passを復旧する。このUsage Pass復旧処理について、図26を用いて説明する。BTモードにおける本処理段階のことを、以下ではBT PI Recovery stageと呼ぶ。
Primal Deviceは、識別子を受信すると、26032に示す下記の1つの処理を実行する。
処理BT5.1.1: 保護情報領域の中で、識別子と同じ識別子値が記録されているTransaction Logを検索する。
ホストモジュール110は、Usage Pass Location情報を受信すると、Inceptive Deviceに対し、SEARCH USAGE PASS BT RECOVERY命令26050を発行し、続いて受信したデータを送信する(26051)。
処理BT5.2.1: 制限記憶部において、受信したUsage Pass Locationで指定される制限記憶部中のUsage Pass記憶領域を検索する。
処理BT5.2.2: 処理UT5.2.1で見出されたUsage Passについて、その有効性指示フラグの値を調べ、Usage Pass Statusに「有効」「無効」「未記録」のいずれかの値を設定する。
処理BT5.2.3: BTモード用Transaction Statusを生成する。Transaction Statusは、復旧対象Usage PassのUPID || 処理BT5.2.1で見出されたUsage PassのUR_s || 処理BT5.2.2で設定したUsage Pass Status || 26041で受信したUsage Pass Location || Hash値である。ここでHash値は、K_s[P]m || K_s[I]n || UPID || UR_s || Usage Pass Status || Usage Pass Locationから計算される。ここで用いられるK_s[P]m |及びK_s[I]nは、Connection stageあるいはReconnection stage完了後、その時点で共有されている最新のセッション鍵である。stage完了後、m回のBT PI Transfer stage及びn回のBT IP Transfer stageが実行されたことを意味している。本処理で生成されるTransaction Statusを、以下ではBT PI Transaction Statusと呼ぶ。
ホストモジュール110は、BT PI Transaction Statusを受信すると、Primal Deviceに対し、VERIFY TRANSACTION STATUS BT PI RECOVERY命令26070を発行し、続いて受信したBT PI Transaction Statusを送信する(26071)。
Primal Deviceは、BT PI Transaction Statusを受信すると、26072に示す下記の2つの処理を実行する。
処理BT5.3.1: BT PI Transaction Statusの検証と、BT PI Transaction Statusに含まれるUsage Pass識別子、Usage Pass Status、Usage Pass Locationの確認を行う。BT PI Transaction Statusの検証は、データに含まれるHash値を、自身が保持しているK_s[P]mとK_s[I]nから計算することによって行う。計算結果が含まれているHash値と一致すれば、データの改竄は行われていないと判断される。また、Usage Pass識別子は、今回復旧対象のものであるどうかの確認、Usage Pass Statusは復旧可否の判定、Usage Pass Locationは自身に記録されていたUsage Pass Locationで指定される制限記憶部内のUsage Pass記憶領域を正しく検索したかを確認するために用いられる。Usage Pass Statusが「無効」や「未記録」であった場合は、Primal Deviceにおいて、Usage Passの復旧処理が行われる。一方、Usage Pass Locationが、自身のTransaction Logに記録されていたものと異なっていた場合は、Usage Passの復旧処理は行われない。
処理UT5.3.2: Usage Pass復旧処理を実行する。Usage Passの復旧は、対象のUsage Passの有効性指示フラグが「無効」となっていた場合はそれを「有効」にし、復旧対象のUsage Passを、Transaction Logに記録されていたUsage Passで上書きすることによって達成される。
処理BT5.3.2が完了すると、Primal Deviceには、送信する以前のUsage Passが存在するようになる。
BT IP Transfer stageにおいてUsage Passの移動が行われている最中に、記録再生装置に異常が発生して、Primal DeviceからもInceptive Deviceからも転送処理中のUsage Passが失われてしまった場合、Inceptive Deviceにおいて、元来存在したものと同じUR_sを伴った形で、Usage Passを復旧することができる。このUsage Pass復旧処理について、図27を用いて説明する。BTモードにおける本処理段階のことを、以下ではBT IP Recovery stageと呼ぶ。
Primal Deviceは、識別子を受信すると、27032に示す下記の1つの処理を実行する。
処理BT6.1.1: 保護情報領域の中で、識別子と同じ識別子値が記録されているTransaction Logを検索する。
ホストモジュール110は、Usage Pass Location情報を受信すると、Inceptive Deviceに対し、SEARCH USAGE PASS BT RECOVERY命令27050を発行し、続いて受信したデータを送信する(27051)。
処理BT6.2.1: 制限記憶部において、受信したUsage Pass Locationで指定される制限記憶部中のUsage Pass記憶領域を検索する。
処理BT6.2.2: 処理UT6.2.1で見出されたUsage Passについて、その有効性指示フラグの値を調べ、Usage Pass Statusに「有効」「無効」「未記録」のいずれかの値を設定する。
処理BT6.2.3: BTモード用Transaction Statusを生成する。Transaction Statusは、復旧対象Usage PassのUPID || 処理BT6.2.1で見出されたUsage PassのUR_s || 処理BT6.2.2で設定したUsage Pass Status || 27041で受信したUsage Pass Location || Hash値である。ここでHash値は、K_s[P]m || K_s[I]n-1 || UPID || UR_s || Usage Pass Status || Usage Pass Locationから計算される。ここで用いられるK_s[P]m |及びK_s[I]n-1は、Connection stageあるいはReconnection stage完了後、その時点で共有されている最新のセッション鍵である。stage完了後、m回のBT PI Transfer stage及びn-1回のBT IP Transfer stageが実行されたことを意味している。本処理で生成されるTransaction Statusを、以下ではBT IP Transaction Statusと呼ぶ。
ホストモジュール110は、BT IP Transaction Statusを受信すると、Primal Deviceに対し、VERIFY TRANSACTION STATUS BT IP RECOVERY命令27070を発行し、続いて受信したBT IP Transaction Statusを送信する(27071)。
処理BT6.3.1: BT IP Transaction Statusの検証と、BT IP Transaction Statusに含まれるUsage Pass識別子、UR_s、Usage Pass Status、Usage Pass Locationの確認を行う。BT IP Transaction Statusの検証は、データに含まれるHash値を、自身が保持しているK_s[P]mとK_s[I]n-1から計算することによって行う。計算結果が含まれているHash値と一致すれば、データの改竄は行われていないと判断される。また、Usage Pass識別子は、今回復旧対象のものであるどうかの確認、UR_s及びUsage Pass Statusは復旧可否の判定、Usage Pass Locationは自身に記録されていたUsage Pass Locationで指定される制限記憶部内のUsage Pass記憶領域を正しく検索したかを確認するために用いられる。Usage Pass Statusが「無効」であったり、BT IP Transaction Statusに含まれるUR_sを処理BT6.1.1で見出されたTransaction Logに記録されているUR_sに照らし合わせた結果、Inceptive Deviceに残っている目的のUsage PassのUR_sが変化してしまっていることが判明したりした場合は、以降のUsage Pass復旧処理が実行される。
Inceptive Deviceは、命令を受信すると、27081に示す下記の2つの処理を実行する。
処理BT6.4.1: セッション鍵K_s[I]nを生成する。ここでnは、ここでnは、BT Connection stage完了後、本処理がn回目のBT IP Transfer stageであることを意味する。
処理BT6.4.2: 処理BT6.4.1で生成したK_s[I]nを、1つ前のUsage Pass転送実行時に生成したセッション鍵K_s[I]n-1及びPrimal Deviceにおいて生成された最新のセッション鍵K_s[P]mを用いて、暗号化する。K_s[P]mは、BT Connection stageが完了してから、m回のBT IP Transfer stageが実行されたことを意味する。もし、一度もInceptive DeviceからPrimal Deviceに対してUsage Pass転送処理が実行されていなかった場合は、BT Reconnection stageにおいて共有される0次セッション鍵K_s[P]0'を、K_s[P]mとして用いる。得られるデータは、E(K_s[P]m, E(K_s[I]n-1, K_s[I]n))である。
ホストモジュール110は、E(K_s[P]m, E(K_s[I]n-1, K_s[I]n))を受信すると、Primal Deviceに対しPUT INCEPTIVE DEVICE SESSION KEY BT RETRANSFER命令27100を発行し、続いて受信したデータをPrimal Deviceへ送信する(27101)。
処理BT6.5.1: 受信したデータを、K_s[P]m及びK_s[I]n-1で復号する。両鍵データについては、処理BT6.2.3で説明した通りである。
処理BT6.5.2: 処理BT6.5.1で得られたデータについて、K_s[I]nが正当な形で含まれていたかどうかを確認する。確認するための手段は、処理UT1.3.3に記したものと同じである。
処理BT6.6.1: 処理BT6.2.1で見出されたTransaction Logに記録されているUPIDとUR_sを連結し、Usage Pass送信用モジュール1301へ送信する。
処理BT6.6.2: 処理BT6.6.1においてUsage Pass送信用モジュール 1301に準備されたUPID || UR_sについて、Checksumを計算し、データに連結する。そして、得られたデータを、K_s[I]n及び*KP_d[I]を用いて暗号化する。即ち、共通鍵による二重暗号化である。得られるデータは、E(*KP_d[I], E(K_s[I]n, UPID || UR_s || Checksum))である。Checksumの計算は、UT2.4.2に記載した通りである。
ホストモジュール110はE(*KP_d[I], E(K_s[I]n, UPID || UR_s || Checksum))を受信すると、Inceptive Deviceに対しRECOVER USAGE PASS命令27130を発行し、続いてE(*KP_d[I], E(K_s[I]n, UPID || UR_s || Checksum))及びデータの書き込み先Usage Pass Locationを送信する(27131)。
処理BT6.7.1: 受信したデータE(*KP_d[I], E(K_s[I]n, UPID || UR_s || Checksum))を、*K_d[I]及びK_s[I]nで復号する。*K_d[I]は、Reconnection stage 27021において得た共通鍵である。また、K_s[I]nは処理BT6.4.1において自身で生成したセッション鍵である。
処理BT6.7.2: 処理BT6.7.1で得られたデータについて、UPID || UR_s || Checksumが正当な形で含まれていたかどうかを確認する。確認は、Checksumを検証すること及び処理UT1.3.3に記した手段を用いて行われる。Checksumによる検証方法は、処理UT2.4.2に記載してある。
処理BT6.7.3: 受信したUsage Pass Locationで指定される制限記憶部のUsage Pass記録領域からUsage PassをUsage Pass Bufferへ読み出し、Usage PassのUPIDが、処理BT6.7.2で復号した結果得られたUPIDと一致するか確認する。一致しない場合は、処理を中断する。
処理BT6.7.4: 受信したUsage Passを制限記憶部へ記録する。Usage Passの記録を行う際には、有効性指示フラグを「有効」に設定する。
処理BT6.7.2が完了すると、Inceptive Deviceには、送信する以前のUsage Passが存在するようになる。
例えば、上記実施例において説明された命令やモジュール等の呼び名は、あくまで一例であって上記の例に限定されない。例えば、上記実施例におけるユーセジパス(Usage Pass)は、ライセンス情報、或いは機密情報と呼ばれる場合もあろう。
110:ホストモジュール 111:ホストセキュリティマネージャ 112:記録再生装置 150:配信サーバ 125,126:磁気ディスク装置
221:ユーザパス転送モジュール 222:制限記憶制御部 223:制限記憶部 231:プロセッサ
Claims (13)
- 暗号化されたコンテンツデータを復号化する鍵データと、前記コンテンツデータの利用条件を含む所定の情報を一方の装置から他方の装置へ転送し、或いは2つの装置の装置間でデータ転送を行うために与えられた、予め決められた複数の転送処理モードから1つの転送処理モードを選択する転送処理方法であって、この転送処理方法は、
前記2つの装置間で相互認証を行い、
認証の過程で得られた共通鍵データを用いて、前記2つの装置のうち一方の装置で所定の情報を暗号化し、
選択された転送処理モードに従って、前記2つの装置のうち一方の装置で暗号化された所定の情報を他方の装置へ転送し、
予め決められた複数の転送処理モードは、前記2つの装置のうち一方の装置から他方の装置に対して前記所定の情報を一方向へ転送する第1転送モード、及び前記2つの装置間における前記所定の情報の双方向転送が可能な第2転送モードであり、前記第1及び前記第2転送モードから選択されたいずれかの転送モードに従って前記所定の情報を受信したいずれか一方の装置は、共通鍵データを用いて前記所定の情報を復号化し、復号化された前記所定の情報を用いて、受信した前記コンテンツデータを復号化する転送処理方法。 - 請求項1に記載の方法であって、前記第1転送モードは、先に認証を行う認証情報を送信した前記2つの装置のうち一方の装置から他方の装置へ前記制御情報を一方向へ転送する方法。
- 暗号化されたコンテンツデータを復号化する鍵データと、前記コンテンツデータを使用する条件を含む所定の情報を一方の装置から他方の装置へ転送する転送処理方法であって、この転送処理方法は、2つの装置間のデータ転送を制御する処理装置の制御によって、前記2つの装置に対して、これら装置のそれぞれの内部データの転送機能に関する問合せを行い、問合せの結果、前記2つの装置間のデータ転送の前に、前記2つの装置のうち一方の装置から他方の装置へ所定の情報を一方向へ転送する第1転送モード、及び前記2つの装置間における所定の情報の双方向の転送が可能な第2転送モードのいずれかの転送モードを選択し、前記2つの装置間で相互の認証を行い、認証の結果、前記2つの装置が正当な場合は、前記2つの装置間で鍵データを共有し、この共有された鍵データを用いて、前記2つの装置のうち一方の装置で所定の情報を暗号化し、選択された転送モードに従って、前記2つの装置のうち一方の装置で暗号化された所定の情報を他方の装置へ転送する方法。
- 請求項3に記載の方法であって、所定の情報の転送時において、前記2つの装置の両方の装置は、前記所定の情報の処理に関連するトランザクションログを生成して、このトランザクションログを記憶装置に記憶し、正当性の認証時に鍵データが失われた場合、前記2つの装置はそれぞれ記憶装置に記憶された適切な前記トランザクションログを参照して共有すべき鍵データを生成し、この共有の鍵データを他方の装置へ送る方法。
- 請求項4に記載の方法であって、前記他方の装置は、前記記憶装置に記憶された前記トランザクションログを参照して、このトランザクションログに記録されている処理段階情報と前記所定の情報の存在状態情報を連結して、連結された情報を送信し、前記2つの装置のうち一方の装置は、受信した情報を検証して、改竄が行われていないことを確認した後、前記記憶装置に格納された適切な前記トランザクションログを参照して、前記トランザクションログに記録されている転送前のデータの復号条件を、現在存在している所定の情報により上書きする方法。
- 請求項1又は3に記載の方法であって、前記第2転送モードが選択された場合、正当性の認証時において、他方の装置は、自身の公開鍵が含まれる証明書を2つの装置のうち一方の装置へ送信し、前記2つの装置のうち一方の装置では、受信した証明書の正当性を検証して、一時的な共通鍵暗号化の鍵である第1チャレンジ鍵を生成し、受信した公開鍵を用いて前記第1チャレンジ鍵を暗号化し、生成された暗号化データに自身の公開鍵を含む証明書を連結して、連結したデータを他方の装置に送信し、この他方の装置では、受信したデータを、自身の秘密鍵を用いて復号化して前記第1チャレンジ鍵を取得し、一時的な共通鍵暗号化の鍵である第2チャレンジ鍵を生成し、この第2チャレンジ鍵と自身の情報領域に埋め込まれている公開鍵を連結して、受信した公開鍵で暗号化を行い、得られた暗号化データに対して、他方の装置に記録された証明書失効リストを連結し、連結したデータを前記第1チャレンジ鍵で暗号化し、暗号化したデータを前記2つの装置のうち一方の装置へ送信し、前記2つの装置のうち一方の装置は、受信したデータを前記第1チャレンジ鍵で復号化し、証明書失効リストにある発行日を比較し、その結果、受信した証明書失効リストの発行日が前記2つの装置のうち一方の装置に記録された証明書失効リストの発効日より新しければ、その装置の証明書失効リストを受信した証明書失効リストにより更新し、かつ、前記2つの装置のうち一方の装置はすべての復号化したデータから証明書失効リストを除いたデータを自身の秘密鍵で復号化し、更に、一時的な共通鍵暗号化の鍵である0次第1セッション鍵を生成し、先に受信した他方の装置の公開鍵及び前記第2チャレンジ鍵で暗号化を行い、暗号化されたデータを前記他方の装置へ送信し、この他方の装置は、受信した暗号化データを前記第2チャレンジ鍵で復号化し、この復号化データに前記2つの装置のうち一方の装置の証明書失効リストが含まれていた場合は、前記他方の装置に記録された証明書失効リストを受信した証明書失効リストにより更新し、この証明書失効リスト以外のすべての復号化データを自身の情報領域に埋め込まれている秘密鍵で復号化して前記0次第1セッション鍵を取得する方法。
- 請求項2又は3に記載の方法であって、前記第2転送モードが選択された場合、所定の情報の転送時において、前記他方の装置は、n次第2セッション鍵を生成し、以前に生成されたn−1次第2セッション鍵と、その時点で最新のm次第1セッション鍵を用いて、n次第2セッション鍵を暗号化して、暗号化データを前記2つの装置のうち一方の装置へ送信し、前記2つの装置のうち一方の装置は、暗号化したデータを受信した後、暗号化データをその時点で最新のm次第1セッション鍵及びn−1次第2セッション鍵を用いて復号化し、転送対象となる所定の情報の識別子、転送における自身の役割、送信予定の所定の情報、及び他方の装置における所定の情報の記録先アドレスを、トランザクションログに記録し、かつ、前記2つの装置のうち一方の装置は、所定の情報にその利用目的(つまり、少なくとも複製、移動、再生のいずれかを含む)を示すパラメータ及びチェックサムを連結し、n次第2セッション鍵と共有鍵で暗号化を行い、暗号化されたデータを他方の装置へ送信し、この他方の装置は、暗号化データを受信した後、暗号化データを共有鍵及びn次第2セッション鍵を用いて復号化し、復号化されたデータを前記他方の装置の内部記憶領域に記録する方法。
- 請求項1又は3に記載の方法であって、前記所定の情報は、前記コンテンツデータの復号化を許容する条件を含むライセンス情報であって、ライセンス情報を受信した他方の装置は、前記2つの装置のうち一方の装置から送信され、前記記憶装置に記憶された前記コンテンツデータを、前記ライセンス情報を用いて復号化する方法。
- 請求項1又は3に記載の方法であって、前記2つの装置のうち一方の装置は、取得した前記コンテンツデータをそれぞれ記録再生する、記録モジュール及び再生モジュールを有する記録再生装置であり、他方の装置は、前記記録再生装置に接続されて、前記記録再生装置から転送される前記コンテンツデータを記憶する記憶装置であり、前記所定の情報は、前記記録再生装置が前記コンテンツデータを取得する時に取得され、前記記憶装置に記録されたコンテンツデータは前記記憶装置から前記記録再生装置に転送されて、再生モジュールで再生される方法。
- 請求項1又は3に記載の方法であって、所定の情報には、自身がどのような種類のモジュールに対して出力可能なものであるかを示すフォーマットと、特定の情報に一意に割り当てられた識別子と、前記コンテンツデータの利用を制限する条件と、暗号化されたコンテンツデータを復号化する鍵データと、関連するコンテンツデータを特定する識別子と、及び前記コンテンツの著作権情報が含まれる方法。
- 暗号化されたコンテンツデータを復号化する鍵データと、前記コンテンツデータを使用する条件を含む所定の情報を処理して、前記鍵データ及び前記所定の情報を一方の装置から他方の装置へ転送する処理方法であって、この処理方法は、
2つの装置間で相互に正当性を認証し、認証の結果、両方の装置が正当な場合は、前記2つの装置間で鍵データを共有する認証過程(a)と、共有された鍵データを用いて、前記2つの装置のうち一方の装置で所定の情報を暗号化し、暗号化された所定の情報を前記2つの装置のうち一方の装置から他方の装置へ転送する転送過程(b)とを有し、(a)認証過程においては、他方の装置は、自身の公開鍵が含まれる証明書を前記2つの装置のうち一方の装置へ送信し、前記2つの装置のうち一方の装置では、受信した証明書の正当性を検証して、一時的な共通鍵暗号化の鍵である第1チャレンジ鍵を生成し、受信した公開鍵を用いて第1チャレンジ鍵を暗号化し、生成された暗号化データに自身の公開鍵を含む証明書を連結して、連結したデータを他方の装置へ送信し、他方の装置では、受信したデータを、自身の秘密鍵を用いて復号化して前記第1チャレンジ鍵を取得し、一時的な共通鍵暗号化の鍵である第2チャレンジ鍵を生成し、この第2チャレンジ鍵と自身の情報領域に埋め込まれている公開鍵を連結して、受信した公開鍵で暗号化を行い、得られた暗号化データに対して、他方の装置に記録された証明書失効リストを連結し、連結した2組のデータを前記第1チャレンジ鍵で暗号化し、暗号化したデータを2つの装置のうち一方の装置へ送信し、前記2つの装置のうち一方の装置は、受信したデータを前記第1チャレンジ鍵で復号化し、証明書失効リストにある発行日を比較し、その結果、受信した前記証明書失効リストの発行日が2つの装置のうち一方の装置に記録された証明書失効リストの発行日より新しければ、受信した証明書失効リストにより2つの装置のうち一方の装置に記録された前記証明書失効リストを更新し、かつ、前記2つの装置のうち一方の装置は、すべての復号化したデータから前記証明書失効リストを除いたデータを自身の秘密鍵で復号化し、更に、一時的な共通鍵暗号化の鍵である0次第1セッション鍵を生成し、先に受信した他方の装置の公開鍵及び前記第2チャレンジ鍵で暗号化を行い、暗号化されたデータを前記他方の装置へ送信し、この他方の装置は、受信した暗号化データを前記第2チャレンジ鍵で復号化し、復号化データに前記2つの装置のうち一方の装置の証明書失効リストが含まれていた場合は、自らの証明書失効リストを受信した証明書失効リストを用いて更新し、証明書失効リスト以外の復号化データのすべてを自身の情報領域に埋め込まれている秘密鍵で復号化して0次第1セッション鍵を取得し、(b)転送過程においては、他方の装置は、n次第2セッション鍵を生成し、先に生成されたn−1次第2セッション鍵と、その時点で最新のm次第1セッション鍵を用いて、n次第2セッション鍵を暗号化して、暗号化データを前記2つの装置のうち一方の装置へ送信し、前記2つの装置のうち一方の装置は、暗号化したデータを受信した後、暗号化データをその時点で最新のm次第1セッション鍵及びn−1次第2セッション鍵を用いて復号化し、転送対象となる所定の情報の識別子、転送における自身の役割、送信予定の所定の情報、及び他方の装置における所定の情報の記録先アドレスを、トランザクションログに記録し、かつ、前記2つの装置のうち一方の装置は、所定の情報に、その利用目的(つまり、少なくとも複製、移動、再生のいずれかを含む)を示すパラメータ及びチェックサムを連結し、n次第2セッション鍵と共有鍵で暗号化を行い、暗号化されたデータを前記他方の装置へ送信し、この他方の装置は、暗号化データを受信した後、受信した暗号化データを共有鍵及びn次第2セッション鍵を用いて復号化し、復号化されたデータを他方の装置の内部記憶領域に記録する方法。 - 請求項11に記載の方法であって、所定の情報には、自身がどのような種類のモジュールに対して出力可能なものであるかを示すフォーマットと、特定の情報に一意に割り当てられた識別子と、前記コンテンツデータの利用を制限する条件と、暗号化されたコンテンツデータを復号化する鍵データと、関連するコンテンツデータを特定する識別子と、及びコンテンツの著作権情報が含まれる方法。
- 請求項1、3又は11に記載の方法においてコンピュータ処理を実行するプログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005283878A JP4755472B2 (ja) | 2005-09-29 | 2005-09-29 | データ転送方法及びシステム |
TW095130998A TW200718144A (en) | 2005-09-29 | 2006-08-23 | Method and system for transferring data |
EP06017824A EP1770577A1 (en) | 2005-09-29 | 2006-08-25 | Method and system for transferring data |
KR1020060090547A KR20070036667A (ko) | 2005-09-29 | 2006-09-19 | 데이터 전송 방법 및 시스템 |
CN2006101595946A CN101047495B (zh) | 2005-09-29 | 2006-09-28 | 用于传送数据的方法和系统 |
US11/541,463 US20070168663A1 (en) | 2005-09-29 | 2006-09-29 | Method and system for transferring data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005283878A JP4755472B2 (ja) | 2005-09-29 | 2005-09-29 | データ転送方法及びシステム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007096783A JP2007096783A (ja) | 2007-04-12 |
JP2007096783A5 JP2007096783A5 (ja) | 2008-10-23 |
JP4755472B2 true JP4755472B2 (ja) | 2011-08-24 |
Family
ID=37684366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005283878A Expired - Fee Related JP4755472B2 (ja) | 2005-09-29 | 2005-09-29 | データ転送方法及びシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070168663A1 (ja) |
EP (1) | EP1770577A1 (ja) |
JP (1) | JP4755472B2 (ja) |
KR (1) | KR20070036667A (ja) |
CN (1) | CN101047495B (ja) |
TW (1) | TW200718144A (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007235323A (ja) * | 2006-02-28 | 2007-09-13 | Toshiba Corp | 高度機密情報の保存/記録方法、高度機密情報を利用する再生装置および高度機密情報を格納するメモリ |
JP5139028B2 (ja) | 2007-10-24 | 2013-02-06 | エイチジーエスティーネザーランドビーブイ | コンテンツデータ管理システム及び方法 |
JP5209945B2 (ja) * | 2007-12-12 | 2013-06-12 | 株式会社日立製作所 | 記憶装置、暗号化コンテンツの有効化方法及び端末装置 |
US8619977B2 (en) * | 2008-01-15 | 2013-12-31 | Inside Secure | Representation change of a point on an elliptic curve |
US8082582B2 (en) * | 2008-05-21 | 2011-12-20 | Mediatek Inc. | Authorization system of navigation device and associated authorization method |
CN102577422A (zh) * | 2009-09-29 | 2012-07-11 | 松下电器产业株式会社 | 视频/声音信号发送系统和视频/声音信号切换和分配装置 |
CN101815290B (zh) * | 2010-03-08 | 2014-02-05 | 北京英福生科技有限公司 | 一种运动监测数据的安全传输方法 |
JP5648531B2 (ja) * | 2010-03-09 | 2015-01-07 | ソニー株式会社 | サーバ装置、クライアント装置、配信方法、プログラム |
US9344489B2 (en) * | 2011-07-10 | 2016-05-17 | Blendology Limited | Electronic data sharing device and method of use |
US9497682B2 (en) | 2013-06-07 | 2016-11-15 | Intel Corporation | Central processing unit and methods for supporting coordinated multipoint transmission in an LTE network |
US10277559B2 (en) * | 2014-05-21 | 2019-04-30 | Excalibur Ip, Llc | Methods and systems for data traffic control and encryption |
US9584492B2 (en) * | 2014-06-23 | 2017-02-28 | Vmware, Inc. | Cryptographic proxy service |
CN105320894A (zh) * | 2014-08-01 | 2016-02-10 | 国家电网公司 | 一种保护传输数据和存储数据的方法及装置 |
EP3696988B1 (en) * | 2016-11-04 | 2022-09-21 | Telefonaktiebolaget LM Ericsson (publ) | Methods and systems for beam tracking process management using indices and corresponding systems |
CN108735043B (zh) * | 2018-08-03 | 2021-05-28 | 苏州承儒信息科技有限公司 | 一种教育用递进式作业提交设备及其工作方法 |
US11038698B2 (en) * | 2018-09-04 | 2021-06-15 | International Business Machines Corporation | Securing a path at a selected node |
EP3874391A1 (en) | 2018-11-27 | 2021-09-08 | Assa Abloy Ab | Device engagement connection system with verification |
CN113114610B (zh) * | 2020-01-13 | 2022-11-01 | 杭州萤石软件有限公司 | 一种取流方法、装置及设备 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003509729A (ja) * | 1999-09-16 | 2003-03-11 | ハンスルソフト コーポレーション リミテッド | ディジタル音楽ファイルに基づいて楽器を演奏するための方法及び装置 |
AU1557401A (en) * | 1999-12-02 | 2001-06-12 | Fujitsu Limited | Memory card and data distribution system using it |
WO2001043339A1 (fr) * | 1999-12-07 | 2001-06-14 | Sanyo Electric Co., Ltd. | Dispositif de reproduction de donnees |
US7061899B2 (en) * | 2001-05-01 | 2006-06-13 | Hewlett-Packard Development Company, L.P. | Method and apparatus for providing network security |
EP1535423A2 (en) * | 2002-08-28 | 2005-06-01 | Matsushita Electric Industrial Co., Ltd. | Key delivery for operating an home network |
US20050154889A1 (en) * | 2004-01-08 | 2005-07-14 | International Business Machines Corporation | Method and system for a flexible lightweight public-key-based mechanism for the GSS protocol |
JP4576853B2 (ja) * | 2004-03-05 | 2010-11-10 | ソニー株式会社 | 情報処理装置、および認証処理方法、並びにコンピュータ・プログラム |
WO2005124582A1 (en) * | 2004-03-22 | 2005-12-29 | Samsung Electronics Co., Ltd. | Method and apparatus for digital rights management using certificate revocation list |
JP4663436B2 (ja) * | 2004-07-21 | 2011-04-06 | 三洋電機株式会社 | コンテンツ利用情報送信方法およびその方法を利用可能なコンテンツ利用情報提供装置およびコンテンツ利用情報享受装置 |
JP4795727B2 (ja) * | 2005-06-14 | 2011-10-19 | ヒタチグローバルストレージテクノロジーズネザーランドビーブイ | コンテンツの利用端末を制限する方法、記憶装置およびシステム |
US7958370B2 (en) * | 2005-09-29 | 2011-06-07 | Hitachi Global Storage Technologies, Netherlands, B.V. | System and device for managing control data |
-
2005
- 2005-09-29 JP JP2005283878A patent/JP4755472B2/ja not_active Expired - Fee Related
-
2006
- 2006-08-23 TW TW095130998A patent/TW200718144A/zh unknown
- 2006-08-25 EP EP06017824A patent/EP1770577A1/en not_active Withdrawn
- 2006-09-19 KR KR1020060090547A patent/KR20070036667A/ko not_active Application Discontinuation
- 2006-09-28 CN CN2006101595946A patent/CN101047495B/zh not_active Expired - Fee Related
- 2006-09-29 US US11/541,463 patent/US20070168663A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN101047495B (zh) | 2012-07-04 |
KR20070036667A (ko) | 2007-04-03 |
TW200718144A (en) | 2007-05-01 |
JP2007096783A (ja) | 2007-04-12 |
CN101047495A (zh) | 2007-10-03 |
US20070168663A1 (en) | 2007-07-19 |
EP1770577A1 (en) | 2007-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5036406B2 (ja) | コンテンツデータ管理システム及び方法 | |
JP4848163B2 (ja) | コンテンツデータ管理システム及び装置 | |
US7958370B2 (en) | System and device for managing control data | |
CN101047495B (zh) | 用于传送数据的方法和系统 | |
JP4555046B2 (ja) | データ転送システム及びデータ転送方法 | |
JP5139028B2 (ja) | コンテンツデータ管理システム及び方法 | |
TW514845B (en) | Data storage regenerator and data storage processing method and program providing media | |
CN102084373B (zh) | 备份存储在安全存储设备中的数字内容 | |
JP4884535B2 (ja) | 装置間でのデータオブジェクトの転送 | |
US20080162947A1 (en) | Methods of upgrading a memory card that has security mechanisms that prevent copying of secure content and applications | |
JP2003067256A (ja) | データ保護方法 | |
JP2008009631A (ja) | 記憶装置及び記憶方法 | |
US20060106721A1 (en) | Method for retransmitting or restoring contents key for decrypting encrypted contents data | |
US20060069650A1 (en) | Device and method for reproducing encrypted contents | |
US8156339B2 (en) | Method for transmission/reception of contents usage right information in encrypted form, and device thereof | |
JP2002368735A (ja) | マスタ用ic装置、マスタ用ic装置のためのバックアップ用ic装置、マスタ用ic装置にダミー鍵を与えるダミー鍵格納装置、マスタ用ic装置とバックアップ用ic装置とのための補助装置、及び二つ以上の補助装置を用いた鍵バックアップシステム | |
JP5076546B2 (ja) | コンテンツデータ管理システム及び装置 | |
JP2010146635A (ja) | コンテンツ記録再生装置並びにコンテンツの書き込み及び読み出し方法 | |
US8345868B2 (en) | Data transfer system, data transfer method, data transmission device and data receiving device | |
JP4604523B2 (ja) | データの移管方法およびデータの保管装置 | |
JP3843566B2 (ja) | ユーザ認証装置および方法 | |
JP2022098615A (ja) | データ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080904 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080904 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110517 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110527 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140603 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |