JP4608931B2 - 情報処理装置および方法、プログラム、並びに記録媒体 - Google Patents

情報処理装置および方法、プログラム、並びに記録媒体 Download PDF

Info

Publication number
JP4608931B2
JP4608931B2 JP2004122524A JP2004122524A JP4608931B2 JP 4608931 B2 JP4608931 B2 JP 4608931B2 JP 2004122524 A JP2004122524 A JP 2004122524A JP 2004122524 A JP2004122524 A JP 2004122524A JP 4608931 B2 JP4608931 B2 JP 4608931B2
Authority
JP
Japan
Prior art keywords
data
transfer
initial vector
unit
sector
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
Application number
JP2004122524A
Other languages
English (en)
Other versions
JP2005223874A (ja
Inventor
聡 木谷
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.)
Sony Corp
Original Assignee
Sony 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
Priority to JP2004122524A priority Critical patent/JP4608931B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Priority to PCT/JP2005/000061 priority patent/WO2005067198A1/ja
Priority to EP05703329A priority patent/EP1701469A4/en
Priority to KR1020067013488A priority patent/KR101108526B1/ko
Priority to CN200580005635XA priority patent/CN1922817B/zh
Priority to US10/596,887 priority patent/US7685647B2/en
Priority to TW094100428A priority patent/TW200535815A/zh
Publication of JP2005223874A publication Critical patent/JP2005223874A/ja
Application granted granted Critical
Publication of JP4608931B2 publication Critical patent/JP4608931B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • 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/78Protecting 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
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61PSPECIFIC THERAPEUTIC ACTIVITY OF CHEMICAL COMPOUNDS OR MEDICINAL PREPARATIONS
    • A61P31/00Antiinfectives, i.e. antibiotics, antiseptics, chemotherapeutics
    • A61P31/04Antibacterial agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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
    • H04L9/0841Key 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 involving Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key 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 involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • 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/2107File encryption

Description

本発明は、情報処理装置および方法、プログラム、並びに記録媒体に関し、特に、暗号化に関わる処理を実行する際に用いて好適な情報処理装置および方法、プログラム、並びに記録媒体に関する。
さまざまな装置で、デジタルデータを授受することが一般的になりつつあるが、デジタルデータは、不正に利用されても、その質(例えば、画質や音質)が劣化しないため、不正に利用されないための対策が必要とされる。(例えば、特許文献1参照)
また近年普及しつつあるDVD(Digital Versatile Disc)等の記録媒体では、1枚の記録媒体(ディスク)に、例えば映画1本分の大量のデータをデジタル情報として記録することが可能である。このように映像情報等をデジタル情報として記録することが可能となると、不正なコピーを防止して著作権者の保護を図ることが益々重要になってくる。
そこで、例えば、DVDにビデオコンテンツを格納したDVDビデオでは、著作権保護技術として、CSS(Content Scramble System)方式が採用されている。図1は、CSS方式を用いて暗号化されたデータが記録されている記録媒体と、その記録媒体を再生する装置の構成の一例を示す図である。
図1においては、記録媒体として、ディスク11を例に挙げて図示してある。ディスク11には、ディスク11を識別するためのディスクキー(Secured Disc Key)21、記録されているデータの所定の単位毎に設けられているタイトルキー(Encrypted Title Key)22、および、データ(Scrambled Data)23が記録されている。タイトルキー22は、例えば、ディスク11に映画が記録されているような場合、チャプター(Chapter)毎に設けられる。
ディスクキー21とタイトルキー22は、暗号化された状態(または、容易に読み出すことが(盗用することが)できない状態)でディスク11に記録されている。また、データ23は、タイトルキー22を用いたスクランブル(Scramble)がかけられた状態でディスク11に記録されている。
プレーヤ12は、ディスク11に記録されているキーやデータを読み出すことにより、データ23の再生を行う。プレーヤ23は、復号(Decrypt)部32、復号部33、デスクランブル(DeScramble)部34、および、デコーダ(Decoder)35を有する構成とされている。また、プレーヤ12は、マスタキー(Master Key)31を管理する管理部(不図示)も有している。
復号部32は、ディスク11から読み出されたディスクキー21を、マスタキー31を用いて復号し、その復号したディスクキー21を復号部33に供給する。復号部33には、ディスク11から読み出されたタイトルキー22も供給される。復号部33は、復号されたディスクキー21により、暗号化されているタイトルキー22を復号する。復号されたタイトルキー22は、デスクランブル部34に供給される。デスクランブル部34には、ディスク11から読み出されたデータ23も供給される。
ディスク11から読み出され、プレーヤ12に供給されるデータ23は、所定の圧縮方式(例えば、MPEG(Moving Picture Expert Group)方式)で圧縮され、さらにタイトルキー22を用いたスクランブルがかけられた状態のものである。そこで、まず、デスクランブル部34は、タイトルキー22を用いて、データ23にかけられているスクランブルを解除する。
スクランブルが解除されたデータ23は、デコーダ35に供給される。デコーダ35は、所定のデコード方式(例えば、MPEG方式)により、デスクランブル部34からのデータ23をデコードする。デコードされたデータ36は、図示されていないディスプレイなどに供給される。
図1に示したプレーヤ12は、例えば、DVDなどのディスク11を専用に再生するような機器であるが、そのような専用のプレーヤ12に限らず、例えば、パーソナルコンピュータなどもディスク11を再生する機能を有している場合がある。
図2は、DVDなどのディスク11をパーソナルコンピュータなどで再生する場合の構成例を示す図である。ここでは、ディスク11に記録されているデータを読み出す装置をドライブ装置51とし、ドライブ装置51により読み出されたデータを処理する装置をホスト(Host)52と記述する。図2に示したドライブ装置51やホスト52には、アプリケーションなどにより実現される機能も含まれている。
ディスク11には、図1に示した場合と同様に、ディスクキー21、タイトルキー22、および、データ23が記録されている。ドライブ装置51は、認証(Authentication)処理部62、バス暗号化(Bus Encrypt)部62、および、バス暗号化部63を有する構成とされている。
ホスト52は、認証処理部71、バス復号(Bus Decrypt)部72、バス復号部73、復号(Decrypt)部74、復号部75、デスクランブル部76、および、デコーダ77を有する構成とされている。また、ホスト52は、マスタキー31を管理する管理部(不図示)も有している。
ドライブ装置51の認証処理部51とホスト52の認証処理部71は、相互認証処理を実行し、その認証処理が正常に行われたときだけ、データの授受を行う。認証処理が正常に行われると、セッションキーと称されるキーが、それぞれの認証処理部61,71において発行(共用)される。
認証処理が正常に行われた後の時点で、ディスク11から読み出されたディスクキー21は、ドライブ装置51のバス暗号化部62により暗号化される。バス暗号化部62には、認証処理部61において発行されたセッションキーも供給される。バス暗号化部62は、読み出されたディスクキー21を、セッションキーを用いて暗号化し、ホスト71に対して出力する。
同様に、バス暗号化部63は、ディスク11から読み出されたタイトルキー22を、認証処理部61が発行したセッションキーを用いて暗号化し、ホスト52に対して出力する。ディスク11から読み出されたデータ23は、直接的に、ドライブ装置51からホスト52に対して供給される。
ホスト52のバス復号部72は、ドライブ装置51のバス暗号化部62から供給された暗号化されているディスクキー21を、認証処理部71により発行されたセッションキーを用いて復号する。復号されたディスクキー21は、復号部74に供給される。復号部74には、マスタキー31も供給される。復号部74は、バス復号部72から供給されたディスクキー21を、マスタキー31を用いて復号し、その復号したディスクキー21を復号部75に供給する。
復号部75には、バス復号部73からのタイトルキー22も供給されるが、そのタイトルキー22は、バス復号部73が、認証処理部71により発行されたセッションキーを用いて復号したものである。
復号部75は、復号されたディスクキー21により、暗号化されているタイトルキー22を復号する。復号されたタイトルキー22は、デスクランブル部76に供給される。デスクランブル部76には、ディスク11から読み出されたデータ23も供給される。
ディスク11から読み出されるデータ23は、所定の圧縮方式で圧縮され、さらにタイトルキー22を用いたスクランブルがかけられた状態のものである。そこでまず、デスクランブル部76は、供給されたタイトルキー22を用いて、データ23にかけられているスクランブルを解除する。
スクランブルが解除されたデータ23は、デコーダ77に供給される。デコーダ77は、所定のデコード方式(例えば、MPEG方式)により、供給されたデータ23をデコードする。デコードされたデータ36は、図示されていないディスプレイなどに供給される。
このように、ディスク11がセットされるドライブ装置51と、ディスク11に記録されているデータを処理するホスト52により、ディスク11に記録されているデータ23の再生の処理が実行される場合、認証処理が行われ、その認証処理が正常に行われた後に、暗号化されたキーやデータの授受が行われる。
認証処理が行われた後に、実際のデータの授受が行われるのは、ドライブ装置51とホスト52は、所定のバス(不図示)により接続されているが、そのバスを介して授受されるデータが盗用されないようにするためである。
ここで、認証処理部61と認証処理部71との間で行われる認証処理について、図3のフローチャートを参照して説明を加える。ステップS11において、ディスク11が、ドライブ装置51に挿入(セット)されたか否かが判断される。ステップS11において、ディスク11が、ドライブ装置51に挿入されたと判断されるまで、待機状態が維持される(ステップS11における処理が繰り返される)。
ステップS11において、ディスク11が、ドライブ装置51に挿入されたと判断された場合、ステップS12に処理が進められる。ステップS12において、認証処理部61と認証処理部71により、相互認証の処理が実行される。この相互認証の処理が正常に終了されなければ、これ以降の処理は実行されない。
相互認証の処理が正常に終了されると、認証処理部61と認証処理部71のそれぞれにおいて、セッションキーが生成される。このような相互認証の処理とセッションキーの発生の処理が完了したか否かが、ステップS13において判断される。ステップS13において、ステップS12における処理は完了したと判断されるまで、ステップS12の処理が繰り返され、完了したと判断された場合、ステップS14に処理が進められる。
ステップS14において、スクランブルされたデータの授受(ドライブ装置51からの出力)が許可された状態に設定される。この場合、スクランブルされたデータとは、データ23(図2)のことであり、このデータ23のドライブ装置51からホスト52への出力が許可された状態に設定される。
“許可された状態”ということについて説明を加える。データ23の読み出しは、ホスト52からの指示に基づいてドライブ装置51が行う。許可される前の状態において、ドライブ装置51は、仮にホスト52からデータ23の読み出し(出力)の指示を受けたとしても、エラーを返すだけで、データ23の出力は行わない。
許可された後の状態においては、ホスト52からデータ23の読み出した指示されれば、ドライブ装置51は、ディスク11からデータ23を読み出し、ホスト52に対して出力を行う。
このような状態に設定されると、ディスク11がドライブ装置51から排出されるなどの割り込み処理が発生しない限り、スクランブルされたデータ23の再生の処理が繰り返し行われる。
スクランブルされたデータ23の出力が許可された状態にされると、ステップS15において、ディスク11がドライブ装置51から排出された否かの判断が継続的に行われる。そして、ステップS15において、ディスク11がドライブ装置51から排出されたと判断されると、ステップS11に処理が戻され、それ以降の処理が繰り返される。
なお、ドライブがリセットされた場合や、電源がオフの状態にされた場合も、再生の処理が終了され、必要に応じ、ステップS11に処理が戻され、それ以降の処理が繰り返される。
このようにして、ドライブ装置51とホスト52との間で認証処理が正常に終了されると、ドライブ装置51側では、ディスク11が排出されるまで、その挿入されているディスク11からデータ23を読み出し、その読み出したデータ23をホスト52に出力するという処理を、ホスト52からの指示がある限り継続的に行なわれる。
ここで、バス暗号化部62などの暗号化部において行われる公知の暗号化技術について説明を加える。暗号化の方式は、さまざまなものが提案されている。ここでは、CBC(Cipher Block Chaining)方式を例に挙げて、暗号化(復号)の方式について説明する。
暗号化の一方式であるCBC方式は、ブロック連鎖のための一つの技法であり、排他的論理和演算により、平文の現在のブロックに暗号文の前のブロックを付加して、暗号文の各ブロックを作成する方式である。図4は、CBC方式を用い暗号化を行う回路の一例を示す図である。
暗号化すべきデータは、所定の単位(例えば、ブロック暗号方式としてAES(Advanced Encryption Standard)を用いた場合は16バイト)毎にブロック化される。そして、第1のブロックは、排他的論理和回路101−1に供給され、第1のブロックに続く第2のブロックは、排他的論理和回路101−2に供給され、第2のブロックに続く第3のブロックは、排他的論理和回路101−3に供給されというように、所定の段数(ここでは、N段とする)だけ設けられた排他的論理和回路101−1乃至101−Nに順次、ブロック化された平文のデータが入力される。
排他的論理和回路101−1から出力された第1のブロックは、暗号化部102−1に供給される。暗号化部102−1は、鍵Ekで供給された第1のブロックを暗号化する。このようにして、第1のブロックは暗号化される。
暗号化部102−1から出力された暗号化された第1のブロックは、排他的論理和回路101−2にも供給され、第2のブロックとの間で排他的論理和が演算される。その結果は、暗号化部102−2に供給され、同じく鍵Ekで暗号化される。
このように、CBC方式における暗号化は、1つ前で暗号化したブロックと暗号化対象の現在の平文のブロックとの排他的論理和が演算されてから、そのブロックに対して所定の暗号化鍵での暗号化が行なわれるようになっている。結果の暗号文は次のブロックとの排他的論理和の演算に使われることになる。このように前のブロックと次々に連鎖させることにより暗号文が生成される。
第2のブロック以降は、前のブロックとの排他的論理和が演算されるが、第1のブロックは、前のブロックが存在しないため、前のブロックとの排他的論理和を演算することができない。そこで、第1のブロックに対しては、初期ベクトル(IV:Initializing Vector)を与えて排他的論理和を演算するように構成される。
次に、CBC方式を用い復号を行う回路(例えば、バス復号部72(図2))について、図5を参照して説明する。
上述したようにして暗号化されたデータは、所定の単位(例えば、ブロック暗号方式としてAES(Advanced Encryption Standard)を用いた場合は16バイト)毎にブロック化されている。ブロック化されているデータの内、第1のブロックは、復号部122−1に供給され、第1のブロックに続く第2のブロックは、復号部122−2に供給され、第2のブロックに続く第3のブロックは、復号部122−3に供給されというように、所定の段数(ここでは、N段とする)だけ設けられた復号部122−1乃至122−Nに順次、暗号化されたブロック単位のデータが入力される。
各復号部122−1乃至122−Nは、入力されたデータを鍵Dkで復号する。各復号部122−1乃至122−Nから出力されたデータは、対応する排他的論理和回路121−1乃至121−Nに供給される。排他的論理和回路121−2乃至121−Nには、前の段の復号部122−1乃至122−N-1に供給されるデータも供給される。
このように、CBC方式の復号は、1つ前の暗号化されているブロックと復号対象の現在の復号されたブロックとの排他的論理和が演算されることにより、最終的な復号が行われる。
第2のブロック以降は、前のブロックとの排他的論理和が演算されるが、第1のブロックは、前のブロックが存在しないため、前のブロックとの排他的論理和を演算することができない。そこで、第1のブロックに対しては、初期ベクトルIVを与えて、排他的論理和が演算される構成とされている。
このようにして、暗号化、復号が行われている。
特許第3252706号明細書
ところで、図2に示したように、ドライブ装置51とホスト52によりディスク11に記録されているデータ23の再生の処理が実行される場合、図3のフローチャートを参照して説明したように、ドライブ装置51とホスト52における相互認証の処理が正常に終了されると、ドライブ装置51からのデータ23の出力が許可された状態にされる。
ここで、図6を参照して説明するに、ホスト52側でアプリケーションAが起動され、そのアプリケーションAにより、認証処理部71で行う認証処理が実行される場合を考える。アプリケーションAによるドライブ装置51との認証処理が正常に実行されると、ドライブ装置51からディスク11からデータ23が読み出され、出力されるといった処理が許可された状態にされる。
許可された状態のときに、ディスク11がドライブ装置51から排出されるなどの状況が発生しない限り、ドライブ装置51からデータ23が出力されるといった処理が許可された状態が維持される。そのような許可が維持されている状態のときに、アプリケーションBがホスト52側で起動されたとする。そして、アプリケーションAにかわり、アプリケーションBにより、データ23の読み出しの指示などの処理が開始されたとする。
ドライブ装置51とアプリケーションBは、認証処理を行っていないにもかかわらず、ドライブ装置51は、データ23の出力が許可された状態に維持されているため、ドライブ装置51からホスト52(アプリケーションB)に対して、データ23は出力されてしまう。その結果、例えば、ホスト52が有するHDD(Hard Disc Drive)141にデータ23が記憶されるといった処理が、アプリケーションBにより実行される可能性がある。
このHDD141に対するデータ23の記憶が不正な処理であっても、ドライブ装置51は、アプリケーションBの指示に基づき、データ23を出力してしまう。よって、このような不正を防ぐことができないといった課題があった。
また、HDD141に記憶されたデータ23は、スクランブルがかけられた状態であるため、そのままでは再生することができないが、スクランブルを解除するアプリケーションなども存在しているため、実質的には、HDD141にデータ23が記憶された時点で、不正に利用されてしまうことを防ぐことができないといった課題があった。
このように、一旦、正常に認証処理が行われ、ドライブ装置51側でデータ23の出力が許可された状態にされると、データ23が盗用されてしまう可能性があるといった課題があった。
図7を参照し、他のデータの盗用について説明する。ドライブ装置51とホスト52は、所定のバスにより接続され、そのバスを介してデータ23の授受を行うように構成されている。図6を参照して説明した場合と同様に、アプリケーションAにより、ドライブ装置51との認証処理が行われる。そして、その認証処理が正常に行われると、ドライブ装置51からデータ23を出力するといった処理を実行することが許可された状態とされる。
バス上を授受されるデータをモニタする機能をホスト52が有していると、そのモニタ151により、バス上で授受されているデータ23をモニタする(取得する)ことが可能である。換言すれば、ドライブ装置51から出力されたデータ23は、アプリケーションAとモニタ151に供給されるといった状態にすることが可能である。
そのため、ホスト52側で、モニタ151により取得されたデータ23を、HDD141に記憶させるといった処理を実行することも可能となる。よって、このようにしてデータ23が盗用されてしまう可能性もある。
このように、バス上を授受されるデータが、モニタ機能により盗用されてしまう可能性があるといった課題があった。
バス上のデータが盗用されてしまうようなことを防ぐために、バスを介して授受されるデータ23を暗号化する方法も提案されている。図8を参照して説明する。ドライブ装置51側からホスト52に出力されるデータを転送データ171と記述する。
転送データ171は、2048バイト(2Kバイト)のデータパケット(data Packet)とされる。上述したように、ドライブ装置51とホスト52は、所定のバスで接続されているわけだが、そのバスをコントロールするバスインタフェース183は、所定の単位量のデータを取り扱うように規定されている。その単位量は、例えば、ATAPI(AT Attachement with Packet Interface)をバスインタフェース183として用いた場合、2048バイトと規定されている。
そこで、転送データ171を2048バイトで構成されるデータパケットとした場合、図8に示すように、1パケットは、16バイトの初期ベクトルIVと2032バイトのデータから構成される。このようなデータパケットのうち、2032バイトのデータ部分が、暗号化部181により暗号化される。暗号化部181は、図8には図示していないが、認証処理部181(図2)により発行されるセッションキーKsを用いて暗号化を行う。
暗号化部181は、例えば、CBC方式を用いて暗号化を行う。CBC方式に基づいて暗号化を行う場合、暗号化部181の内部構成例は、図4に示したようになる。図4を参照して説明したように、暗号化部181は、初期ベクトルIVも用いて暗号化を行う。すなわち、暗号化部181は、転送データ171のデータパケットの内、2038バイトのデータ部分を、同じくデータパケット内に含まれる16バイトの初期ベクトルIVと、認証処理部181により発行されるセッションキーKsを用いて暗号化を行う。
暗号化部181により暗号化されたデータパケットも、2048バイトのデータである。よって、その暗号化されたデータパケットは、バスインタフェース183により取り扱うことができる。データ部分が暗号化されたデータパケットは、ホスト52側の復号部182に供給される。復号部182は、供給されたデータパケットに含まれる初期ベクトルIVと、認証処理部71(図2)により発行されるセッションキーKsを用いて、暗号化されているデータの復号を行う。
このようにして、ホスト52側は、暗号化されたデータを受信するが、そのデータと共に供給される初期ベクトルIVを用いて復号することができるため、ホスト52側において、ドライブ装置51側から出力されたデータを再生することができる。
このように、バスインタフェース183上で授受されるデータを、暗号化されたデータとすることにより、仮に、バスインタフェース183を介して授受されるデータが盗聴されても、暗号化を解くことができなければ、盗用されることがなく、結果として、データが不正に利用されるような不都合が発生するようなことを防ぐことが可能となる。しかしながら、以下のような問題点がある。
再度、図8を参照するに、初期ベクトルIVは、転送データ171に含まれている。転送データ171に初期ベクトルIVを含ませる場合、ディスク11に、他のデータと共に書き込まれている。よって、初期ベクトルIVをランダムに変化させることができない(書き込まれている初期ベクトルIVをそのまま用いなくてはならず、変化させることができない)といった問題があった。
また、ディスク11に初期ベクトルIVが書き込まれているのではなく、ドライブ装置51側でランダムに初期ベクトルIVを発生させ、その初期ベクトルIVを転送データ171内に含ませるようにすることも考えられ。しかしながら、転送データ171に初期ベクトルIVを含ませる場合、暗号化されるデータと区別するために、例えば、ヘッダなどを付けなくてはならないなどの条件がある。
そのような条件があるために、ドライブ装置51側で、ランダムに初期ベクトルIVを発生させるようにしても、ランダムに変化させることに対する制限があり、結果的には、ランダムに初期ベクトルIVを発生させるということに対してそのランダム性を保証することができない(固定パターンになってしまう)といった問題があった。
初期ベクトルIVをランダムに変化させることができない場合、換言すれば、初期ベクトルIVとして固定パターンが用いられるようにすると、以下のような問題が発生する可能性がある。
例えば、電子メールを例に挙げて考える。電子メールの書式には、宛先、送信元、件名、本文といったような一連のパターンがある。そのようなパターンがあるようなデータ(平文)を暗号化した場合、暗号化されたデータ自体もパターンがあるデータとなってしまう。第3者(攻撃者)が、そのようなパターンに注目することにより、暗号文から平文の一部を解読することが可能である。
また、音楽データなどで、その音楽データを繰り返し再生するような場合、結果として同じ平文を同じように暗号化することになり、暗号化されたデータ自体も同じ結果となる。そのため、上述した場合と同様に、暗号文から平分を解読することが可能である。
そこで、パターンがあるような平文(同一のデータを複数回暗号化するような場合)でも、暗号化されたデータ(暗号文)にパターンがないようにするために、最初のブロックに初期ベクトルIVを加えるようにする。初期ベクトルIVを加えて暗号化を実行することにより、平文のブロックに同じパターンがあっても暗号文には同じパターンが発生しないので、暗号解読を困難にさせることが出来る。また、単一の鍵で大量のデータを暗号化した場合に暗号鍵が予測しやすくなる、という解読行為を、初期ベクトルIVを加えて暗号化を行うようにすることで防止することができるという効果もある。
このような理由で最初のブロックに初期ベクトルIVが加えられ、その後の暗号化が行われるように構成されている場合が多い。
そして、初期ベクトルIVを適当に更新させることで、平文のデータが特別なパターンのデータであることを特定させることを困難とし、データのすり替え、データの改竄行為を防止することができるとされている。(参考文献:NIST Special Publication 800-38A 2001 Edition, Recommendation for Block Cipher Modes of Operation, Methods and Techniques, APPENDIX C Generation of Counter Blocks)
よって、同じ初期ベクトルIVが繰り返し用いられると、結果として、初期ベクトルIVを適当に更新させることで、平文のデータが特別なパターンのデータであることを特定させることを困難とし、データのすり替え、データの改竄行為を防止することができないといった課題があった。
また、上述したように、初期ベクトルIVは、更新される方が好ましいといった課題があった。
そこで、初期ベクトルIVを更新できるようにした場合、図9に示すようなデータの授受の方法が考えられる。すなわち、図9に示した例では、転送データ191は、2048バイトのデータから構成され、そのデータに、16バイトの初期ベクトルIVが付加される。そして、初期ベクトルIVが付加された結果、2064バイトにされたデータが、バスインタフェース183を介して授受される。
初期ベクトルIVを転送データ191に付加する構成とすることにより(転送データ191に初期ベクトルIVを予め含めるような構成としないことにより)、初期ベクトルIVを、ドライブ装置51側でランダムに発生し、そのランダムに発生された初期ベクトルIVを付加させることができるようになる。
しかしながら、このようにして初期ベクトルIVをデータに付加することは、例えば 2048バイト単位のPC Drive Interface に、2064バイト(IV=16バイトの場合)という特殊なセクタサイズを持ち込むことになり、標準的なフォーマットから外れてしまうこととなる。そのために、共通の ATAPI Device Driver を利用できない、UDF(Universal Data Format)で扱うことのできるセクタサイズである2048バイトや4096バイトに当てはまらないためUDF FS Driverを利用できないなど、パーソナルコンピュータにおける環境との相性がよくないといった課題があった。
相性が良くないといったことを解決するためには、ハードウェア的に、ソフトウェア的にも特殊なものに変えなくてはならないなど、コスト的に割高になり、互換性を取りづらい、処理的に手間がかかるといった課題もあった。
本発明はこのような状況に鑑みてなされたものであり、認証処理が正常に終了し、ドライブ装置側からデータが出力されることが許可された状態にされた後においても、その許可状態を解除できるようにし、データの盗用を防ぐことを目的とする。また、汎用なバスを用いた場合においても、初期ベクトルIVを更新できるようにし、そのバス上で授受されるデータが盗用されないようなセキュリティを高めることを目的とする。
本発明の情報処理装置は、他の装置へのデータの転送を制御する転送制御手段と、前記転送制御手段が前記データの転送を制御した回数をカウントするカウント手段と、前記カウント手段によりカウントされた回数が、所定の閾値以上になったか否かを判断する第1の判断手段と、前記第1の判断手段により前記回数が前記閾値以上になったと判断された場合、前記転送制御手段に、前記データの転送を停止するように指示を出す第1の指示手段と、前記転送制御手段により転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成する生成手段と、前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断する第2の判断手段と、前記第2の判断手段により前記初期ベクトルの供給が指示されたと判断された場合、前記生成手段に前記初期ベクトルの生成を指示するとともに、前記カウンタ手段によりカウントされている前記回数をリセットするように指示を出す第2の指示手段とを備えることを特徴とする。
前記第1の指示手段による指示が出された場合、他の装置に対してデータの転送が停止されたことを示すメッセージを出力する出力手段をさらに備えるようにすることができる。
本発明の情報処理方法は、転送制御手段、カウント手段、第1の判断手段、第1の指示手段、生成手段、第2の判断手段、および第2の指示手段を少なくとも備える情報処理装置の情報処理方法において、前記転送制御手段が、他の装置へのデータの転送を制御前記カウント手段が、前記データの前記他の装置への転送が制御された回数をカウント前記第1の判断手段が、カウントされた回数が、所定の閾値以上になったか否かを判断前記第1の指示手段が、前記回数が前記閾値以上になったと判断された場合、前記転送制御手段における前記データの転送が停止されるように指示を出前記生成手段が、前記転送制御手段で転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成前記第2の判断手段が、前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断前記第2の指示手段が、前記他の装置から、前記初期ベクトルの供給が指示されたと判断された場合、前記生成手段に前記初期ベクトルが生成されるように指示するとともに、前記カウンタ手段によりカウントされている前記回数がリセットされるように指示を出すステップを含む。
本発明のプログラムは、他の装置へのデータの転送を制御する転送制御ステップと、前記転送制御ステップの処理で前記データの転送が制御された回数をカウントするカウントステップと、前記カウントステップの処理によりカウントされた回数が、所定の閾値以上になったか否かを判断する第1の判断ステップと、前記第1の判断ステップの処理で前記回数が前記閾値以上になったと判断された場合、前記転送制御ステップにおける処理で、前記データの転送が停止されるように指示を出す第1の指示ステップと、前記転送制御ステップの処理で転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成する生成ステップと、前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断する第2の判断ステップと、前記第2の判断ステップの処理で前記初期ベクトルの供給が指示されたと判断された場合、前記生成ステップによる処理で前記初期ベクトルが生成されるように指示するとともに、前記カウンタステップの処理によりカウントされている前記回数がリセットされるように指示を出す第2の指示ステップとを含む。
本発明の記録媒体のプログラムは、他の装置へのデータの転送を制御する転送制御ステップと、前記転送制御ステップの処理で前記データの転送が制御された回数をカウントするカウントステップと、前記カウントステップの処理によりカウントされた回数が、所定の閾値以上になったか否かを判断する第1の判断ステップと、前記第1の判断ステップの処理で前記回数が前記閾値以上になったと判断された場合、前記転送制御ステップにおける処理で、前記データの転送が停止されるように指示を出す第1の指示ステップと、前記転送制御ステップの処理で転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成する生成ステップと、前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断する第2の判断ステップと、前記第2の判断ステップの処理で前記初期ベクトルの供給が指示されたと判断された場合、前記生成ステップによる処理で前記初期ベクトルが生成されるように指示するとともに、前記カウンタステップの処理によりカウントされている前記回数がリセットされるように指示を出す第2の指示ステップとを含む。
本発明の情報処理装置および方法、並びにプログラムにおいては、初期ベクトルの供給の指示が定期的に行われなければ、データの授受が停止される。
本発明によれば、装置間での転送路上におけるセキュリティを高めることが可能となる。
また、本発明によれば、記録媒体を扱う装置とその装置からのデータを扱う他の装置との間で認証処理が行われた後、記録媒体を扱う装置側で、記録媒体から読み出したデータを他の装置に出力することが許可された状態にされても、その状態を解除(更新)することが可能となる。もって、一旦、他の装置へのデータの出力が許可された状態であっても、その後の不正なアクセスによるデータの流出を防ぐことが可能となる。
また、本発明によれば、暗号化の際に用いられる初期ベクトルをランダムに更新することができ、同一のデータを暗号化しても、同一の暗号文が生成されるようなことを防ぐことが可能となる。もってデータのすり替え、データの改竄行為などの不正な処理を防止することができる。
また、本発明によれば、初期ベクトルを更新するようにしても、汎用のバスインタフェースおよびOS(Operating System)で標準的に用意されたUDF FS Driverを利用できる。もって、初期ベクトルを更新できるようにするために、装置間の環境を変更しなくてはならないといったような不都合が発生するようなことを防ぐことができる。
以下に、本発明の実施の形態について図面を参照して説明する。
図10は、本発明を適用したシステムの一実施の形態の構成を示す図である。
図10に示したシステムは、所定の記録媒体に記録されたデータを再生する(読み出す)システムの構成例を示している。図10に示したシステムは、データを供給するドライブ装置301と、データの供給を受けるホスト302から構成されている。
ディスク303は、例えば、CD-ROM ( Compact Disc-ROM )、CD-R(Compact Disc-Recordable)、CD-RW ( Compact Disc-ReWritable )、DVD-ROM ( Digital Versatile Disc-ROM )、DVD-R ( Digital Versatile Disc-Recordable )、DVD-RW (Digital Versatile Disc-Rerecordable )、DVD+R ( DVD+Recordable )、DVD+RW ( DVD+ReWritable )、DVD-RAM(Digital Versatile Disk-Random Access Memory)、Blu-Ray Discなどである。また、本発明の適用範囲はこれらの記録媒体に限定されるものではなく、他の形態(記録方式、形状など)の記録媒体を扱うシステムにも適用可能である。
ドライブ装置301とホスト302は、所定のインタフェースによりデータの授受が行えるように接続されている。所定のインタフェースとしては、例えば、ATAPI(AT Attachment with Packet Interface)を用いることができる。ATAPIは、IDE(Integrated Drive Electronics)や、ATA(AT Attachment)インタフェースにCD−ROMドライブなどハードディスク以外の周辺機器を接続するためのデータ転送方式に従ったインタフェースであり、例えばSCSIから流用したコマンドをパケット化してIDEインタフェースに渡すことで周辺機器の制御を可能とする。同様のコマンドパケットはUSB ( Universal Serial Bus ) や IEEE1394 などの物理インタフェースへも適用可能である。
ドライブ装置301は、認証処理部311、暗号化部312、セクタ転送制御部313、セクタ転送カウンタ314、乱数発生部315、メッセージ伝達部316、コマンド処理部317、および、アクセス処理部318を含む構成とされている。
ホスト302は、認証処理部321、復号部322を含む構成とされている。
ドライブ装置301の認証処理部311とホスト302の認証処理部321により、相互認証に関わる処理が実行される。
暗号化部312には、アクセス処理部318による処理により、ディスク303から読み出されたセクタデータ351と、認証処理部311からセッションキーKsが供給される。また、暗号化部312には、乱数発生部315により発生された乱数が、初期ベクトルIVとして供給される。
なお、乱数発生部315により発生された乱数を、そのまま初期ベクトルIVとして用いても良いが、乱数と他のデータ(例えば、ディスク303から読み出されるPSN(Physical Sector Number)など)が用いられて生成されるものを初期ベクトルIVとして用いられるようにしても良く、そのような処理を実行する部分を、ドライブ装置301内に設けるようにしても良い。
暗号化部313は、供給されたセクタデータ351をセッションキーKsと初期ベクトルIVを用いて暗号化し、セクタ転送制御部313に供給する。セクタ転送制御部313は、暗号化されたセクタデータ351を、ホスト303の復号部322に対して供給する。よって、ドライブ装置301からホスト303に供給されるデータは、暗号化されたセクタデータ351である。
暗号化部312からは、セクタ転送カウンタ314にもデータが出力される。セクタ転送カウンタ314は、ホスト302に対して出力されたセクタデータ(暗号化部312から出力されたセクタデータ351)の数をカウントするように構成されている。換言すれば、セクタ転送カウンタ314は、セクタ転送制御部313がセクタデータの転送を制御した回数をカウントする。
また、セクタ転送カウンタ314は、予め設定されたカウント数の最大値(Nmaxとする)を管理しており、カウントしているセクタ数(カウンタ値N)が、その最大値を超えないか否かを常に監視している。
セクタ転送カウンタ314は、N≧Nmaxになった場合、セクタ転送制御部313に対して、ホスト302へのセクタデータ351の出力を停止するように指示を出す。このような指示を出すとともに、セクタ転送カウンタ314は、コマンド処理部317に対して、アクセス処理部318によるディスク303へのアクセスを停止するように指示を出す。
セクタ転送制御部313は、セクタ転送カウンタ314からセクタデータ351の出力の停止の指示を受けた場合、メッセージ伝達部316に対して、メッセージ362(この場合、エラーメッセージ)をホスト302に対して出力するように指示を出す。
一方、ホスト303の復号部322は、ドライブ装置301からインタフェースを介して暗号化されたセクタデータ351の供給をうける。復号部322は、ドライブ装置301から、セクタデータ351とは別の経路(詳細は図11を参照して後述する)で、乱数発生部315により発生された初期ベクトルIVも供給される。
復号部322は、認証処理部331から供給されるセッションキーKsと、ドライブ装置301から供給された初期ベクトルIVを用いて復号処理を実行し、セクタデータ361を生成する。
ホスト302からは、コマンドパケット363が必要に応じて、ドライブ装置301に対して供給される。このコマンドパケット363は、例えば、ディスク303からデータの読み出しを指示するリードコマンド(Read command)、ディスク303へのデータの書き込みを指示するライトコマンド(Write command)、初期ベクトルIVの発行を指示するレポートキーコマンド(Report Key command)などがある。
図11を参照して、セクタデータ351が授受される経路と、その他のデータが授受される経路について説明する。PC driver391は、例えば、初期ベクトルIVの生成、暗号化セクタデータの作成、転送セクタデータの作成などを制御するドライバーである。PC driver391からのデータは、Optical Disc driver392に渡される。
Optical Disc driver392は、光ディスク(Optical Disc)の読み出しや書き込みを制御するドライバーである。光ディスクがDVDなどの記録媒体である場合、その光ディスクに書き込まれているデータ(ファイル)は、UDF(Universal Data Format)に準拠したものとされている。よって、Optical Disc driver392により読み出された(制御された)データ(ファイル)は、UDF FS driver393の制御により、Optical Disc file reader394を介して、Video/Audio Playback function395に渡される。
Video/Audio Playback function395は、例えば、転送セクタデータの取得、初期ベクトルIVの取得、暗号化セクタデータの復号を制御する。
このように、セクタデータなどの映像や音声に関わるデータは、UDF FS driver393を介して授受されるが、その他の、例えば、初期ベクトルIVやその初期ベクトルIVを発行させるためのコマンドなどのデータは、UDF FS driver393を介さずに授受される。このUDF FS driver393を介さずに行われるデータの授受の経路は、Microsoft Windows (登録商標)においてはSCSI PASS Throughなどと称されている。
図10において、ドライブ装置301とホスト302との間に図示されている線のうち、太線で示した経路が、UDF FS driver393を介してデータの授受が行われる経路(以下、適宜、UDF経路と称する)を示し、細線で示した経路が、その他のデータの授受が行われる経路(SCSI PASS Through、以下、適宜、パス経路と称する)を示すとする。
図10に示したように、セクタ転送制御部313から復号部322への経路がUDF経路である。認証処理部311と認証処理部321との間で行われる認証処理に必要とされるデータの授受は、パス経路を介して行われる。また、メッセージ伝達部316から出力されるメッセージ362は、パス経路を介して授受される。また、初期ベクトルIVも、パス経路を介して授受される。
UDF FS driver393は、2048バイトのデータ、または、2048バイトの整数倍のデータ容量のデータを取り扱う。よって、UDF経路を介して授受されるデータは、2048バイトまたはその倍数のデータしか通すことができない。
これに対し、パス経路は、基本的にデータの容量にかかわらず授受することが可能である。よって、16バイトで構成される初期ベクトルIVなどを授受をするのに適した経路である。
図10に示した構成のドライブ装置301の動作について、図12と図13のフローチャートを参照して説明する。ステップS31において、ドライブ装置301にディスク303が、挿入されたか否かが判断される。ステップS31において、ドライブ装置301にディスク303が挿入されたと判断された場合、ステップS32に処理が進められ、ホスト302において所定のアプリケーションが起動されたか否かが判断される。
所定のアプリケーションとは、ドライブ装置301に挿入されたディスク303からデータを読み出す、または、書き込むために必要とされるアプリケーションである。
ステップS32において、ホスト302において所定のアプリケーションが起動されたと判断された場合、ステップS33に処理が進められる。ステップS33において、ドライブ装置301とホスト302との間で相互認証処理が実行され、セッションキーKsが、ドライブ装置301とホスト302で、それぞれ生成(共用)される。ステップS34において、セッションキーKsの生成が完了したか否かが判断される。セッションキーKsの生成が完了されるまで、ステップS33とステップS34の処理が繰り返される。
そして、ステップS34において、セッションキーKsの生成が完了したと判断されると、ステップS35に処理が進められ、ドライブ装置301のセクタ転送カウンタ314のカウンタ値Nが、予め設定されているカウンタ値Nの最大値である値Nmaxに設定される(N=Nmaxに設定される)。
このように、N=Nmaxに設定されると、セクタ転送カウンタ314の指示により、セクタ転送制御部313からホスト302へのデータの出力が許可されない状態に設定される。
ステップS36において、ホスト302から初期ベクトルIVの転送要求があったか否かが判断される。この判断は、コマンド処理部317が、ホスト302側から、コマンドパケット363を受信したか否かを判断し、かつ、受信したコマンドパケット363が、初期ベクトルIVの転送要求を示すものであるか否かを判断することにより行われる。
ステップS36において、初期ベクトルIVの転送要求があったと判断されるまで、ステップS36の処理が繰り返される。そして、ステップS36において、初期ベクトルIVの転送要求があったと判断された場合、ステップ37に処理が進められ、初期ベクトルIVの生成が行われる。
コマンド処理部317は、ホスト302からのコマンドパケット363を受信し、そのコマンドパケット363を解析することにより、初期ベクトルIVの転送要求であると判断すると、そのことを、乱数発生部315に知らせる。そのような知らせを受けた乱数発生部315は、ステップS37の処理として、初期ベクトルIVを生成する。
乱数発生部315は乱数を発生するが、その乱数が、そのまま初期ベクトルIVとされる。または、発生された乱数と所定の情報(例えば、初期ベクトルIVの転送要求を指示するコマンドパケット363に含まれる情報)などを用い、排他的論理和を算出するなどの処理が実行されることにより、初期ベクトルIVが発生されるようにしても良い。
乱数発生部315は、初期ベクトルIVを生成すると共に、セクタ転送カウンタ314に対して、カウンタ数Nを0に設定し直すように指示を出す。このような指示を受け取ったセクタ転送カウンタ314は、ステップS38の処理として、カウンタ値Nを0に設定し直す。このようにセクタ転送カウンタ314のカウンタ値Nが、0に設定されると、セクタ転送制御部313からのデータの出力が許可された状態に変更される。
乱数発生部315により生成された初期ベクトルIVは、ステップS39において、ホスト302に供給される。この初期ベクトルIVの供給(転送)は、パス経路を介して行われるため、例えば、初期ベクトルIVが16バイトで構成される場合であっても、その16バイトの初期ベクトルIVをドライブ装置301とホスト302側で授受することが可能である。
ステップS33乃至S39の処理のうち、初期ベクトルIVの授受に関わる処理について、図14を参照して説明を加える。
ホスト302は、ステップS101において、ドライブ装置301は、ステップS111において、それぞれ相互認証(Authentication)を行う。この相互認証が正常に行われた場合のみ、次のステップに処理が進められる。また、この相互認証の結果、ドライブ装置301の認証処理部311とホスト302の認証処理部321との、それぞれにおいてセッションキーKsが生成される(共有される)ことになる。
ホスト302は、ステップS102において、コマンドパケット363を生成し、ドライブ装置301に対して出力する。ステップS102において生成され、出力されるコマンドパケット363は、REPORT KEY commandであり、このREPORT KEY commandは、ここでは、初期ベクトルIVの転送を要求するものであるとする。
そのようなREPORT KEY commandを、ステップS112の処理として受信したドライブ装置301は、ステップS113において、初期ベクトルIVを生成する。生成された初期ベクトルIVは、ステップS114において、ドライブ装置301からホスト302に対して出力される。この出力される初期ベクトルIVは、そのままホスト302側に出力される。
このようにしてドライブ装置301から出力された初期ベクトルIVを、ホスト303は、ステップS103において受信する。
このように、ドライブ装置301からホスト302に転送される初期ベクトルIVを、暗号化などの処理を施さずに、そのまま転送されるようにしても良いが、暗号化が施された状態で転送されるようにしてももちろん良い。
初期ベクトルIVは、乱数発生部315により乱数を用いて発生されるため、ランダムに変化される値である。また、初期ベクトルIVは、セッションキーKsと異なり、秘匿する必要性は低いと考えられる。このようなことを考慮し、図14を参照して説明したように、転送される初期ベクトルIVは、そのまま転送されるようにしても良い。
しかしながら、初期ベクトルIVは、予測不可能であることが好ましいという条件がある。その条件を満たすために、転送される初期ベクトルIVを暗号化し、より安全性を高めるようにしてももちろん良い。
より安全性を高めて初期ベクトルIVが転送されるようにした場合、図15に示すように処理が行われる。ホスト302側で行われるステップS131乃至S133における処理は、基本的に、図14におけるステップS101乃至S103と同様に行われるが、ステップS103において受信される初期ベクトルIVは、暗号化されているため、受信された後に、復号という処理が実行される点が異なる。
ドライブ装置301側で行われるステップS141乃至S144における処理も、基本的に、図14におけるステップS111乃至S114と同様であるが、ステップS143において、初期ベクトルIVが生成されたあと、その初期ベクトルIVが、セッションキーKsが用いられて暗号化され、その暗号化された初期ベクトルIV(E[Ks,IV])が、ステップS144における処理としてホスト302側に転送される点が異なる。
このようにして、ホスト302側から初期ベクトルIVの転送要求があると、ドライブ装置301は、初期ベクトルIVを生成し、ホスト302側に転送する。もちろん、ドライブ装置301は、生成した初期ベクトルIVを、ホスト302側に転送するだけでなく、自己の暗号化部312(図10)にも供給する。
図12のフローチャートの処理の説明に戻り、ステップS39における初期ベクトルIVの転送の処理が終了されると、ステップS40(図13)に処理が進められる。ステップS40において、初期ベクトルIVの再発行要求があったか否かが判断される。ステップS40において、初期ベクトルIVの再発行要求があったと判断された場合、ステップS41乃至S43の処理が実行される。
ステップS41乃至S43は、基本的に、ステップS37乃至ステップS38の処理と同様であるが、図16を参照して説明を加える。ホスト301は、ステップS161において、初期ベクトルIVの再発行要求をドライブ装置301に対して出す。この再発行要求は、コマンドパケット363が出力されることにより行われるが、このコマンドパケット363は、例えば、図14のステップS102において発行されるREPORT KEY commandと同じである。
ドライブ装置301は、ステップS171において、REPORT KEY commandを受信すると、ステップS172において、初期ベクトルIVを再生成する。初期ベクトルIVの再生成は、図14のステップS113、または、図15のステップS143の処理と同様に行われる。そして、再生成された初期ベクトルIVは、ステップS173において、ホスト302側に転送される。この転送時に、初期ベクトルIVは、暗号化が施されて転送されるようにしても良いし、そのまま転送されるようにしても良い。
図13のフローチャートの説明に戻り、ステップS40において、初期ベクトルIVの再発行要求はないと判断された場合、または、ステップS43における処理として初期ベクトルIVの転送に関わる処理が終了した場合、ステップS44に処理が進められる。
ステップS44において、セクタデータ351の転送要求があったか否かが判断される。この判断は、コマンド処理部317が、ホスト302側から、コマンドパケット363を受信したか否かを判断し、かつ、受信したコマンドパケット363が、セクタデータ351の転送を要求するものであるか否かを判断することにより行われる。
ステップS44において、セクタデータ351の転送要求はないと判断された場合、ステップ40に処理が戻され、それ以降の処理が繰り返される。一方、ステップS44において、セクタデータ351の転送要求があったと判断された場合、ステップ45に処理が進められる。
ステップS45において、セクタ転送カウンタ314のカウンタ値Nが、N>Nmaxという関係を満たすか否かが判断される。ステップS45において、N>Nmaxという関係は満たされていないと判断された場合、ステップS46に処理が進められる。N>Nmaxという関係が満たされていない状態、すなわち、N<Nmaxという関係を満たす状態のときには、セクタ転送制御部313からのデータの出力(ホスト302側へのデータの転送)が許可されている状態である。
そこで、ステップS46においては、セクタ転送制御部313からホスト302側へのデータの転送が行われる。まず、コマンド処理部317の指示により、アクセス処理部318が、ディスク303からセクタデータ351の読み出しの制御を行う。アクセス処理部318の制御により、ディスク303から読み出されたセクタデータ351は、暗号化部312に供給される。
暗号化部312は、認証処理部311から供給されるセッションキーKsと、乱数発生部315から供給される初期ベクトルIVを用いて、セクタデータ351を暗号化する。暗号化されたセクタデータ351は、セクタ転送制御部313の制御により、ホスト302に転送される。この際、セクタデータ351が転送される経路は、UDF経路であり、そのデータ量は、2048バイト(または、2048の整数倍のバイト数)とされている。
暗号化部312からデータが出力されると、その情報は、セクタ転送カウンタ314に供給される。セクタ転送カウンタ314は、ステップS47において、自己が管理しているカウンタ値Nを、N+1の値に更新し、その更新された値を新たなカウンタ値Nと設定する。セクタ転送カウンタ314におけるカウンタ値Nの更新が終了されると、ステップS40に処理が戻され、それ以降の処理が繰り返される。
このセクタデータ351の転送に関わる処理について、図17のタイミングチャートを参照して、説明を加える。ホスト302は、ステップS201において、リードコマンド(READ command)を発行する。リードコマンドは、ディスク303からセクタデータ351を指示する際に発行されるコマンドである。また、後述するように、ディスク303にデータを書き込む際にはライトコマンド(WRITE command)が発行される。
発行されるリードコマンドは、例えば、図18に示したデータ構成を有するコマンドパケット363の一種である。コマンドの詳細はINCITS T10 WORKING DRAFT “MultiMedia Command Set-4 (MMC-4)” に記述がある。
図18に示したコマンドパケット363は、リードコマンドまたはライトコマンドの形式を示すものである。図18に示したコマンドパケット363内のデータのうち、以下の説明に必要な部分のデータについて説明を加える。
“Operation Code”には、リードコマンドであるか、ライトコマンドであるかを示すデータが書き込まれる。よって、この部分に書き込まれているデータを参照することで、ホスト302からコマンドを受け取ったドライブ装置301は、リードコマンドであるか、ライトコマンドであるかを判別することが可能となっている。また、“Operation Code”は、1バイトのデータである
“Logical Block Address”には、コマンドパケット363がリードコマンドである場合には、読み出すべきアドレスの開始LBAが書き込まれ、コマンドパケット363がライトコマンドである場合には、書き込むべきアドレスの開始LBAが書き込まれている。また、“Logical Block Address”は、4バイトのデータである。
“Transfer Length”には、コマンドパケット363がリードコマンドである場合には、読み出しセクタ数を指示するデータが書き込まれ、コマンドパケット363がライトコマンドである場合には、書き込みセクタ数を指示するデータが書き込まれる。また、“Transfer Length”は、4バイトのデータである。
ステップS201において、ホスト302から発行されるコマンドパケット363は、“Operation Code”がリードコマンドを示す値が記載されているコマンドである。ここでは、その発行されるリードコマンドに含まれる“Transfer Length”は“N1”であるコマンドが発行されたとする。
ステップS201における処理で発行されたリードコマンドは、ステップS231において、ドライブ装置301のコマンド処理部317に供給される。コマンド処理部317は、供給されたコマンドの“Operation Code”を参照し、リードコマンドであることを認識する。そして、“Logical Block Address”を参照し、データの読み出しを開始するアドレスを認識し、“Transfer Length”を参照して、この場合、“Transfer Length”=N3ということを認識する。
コマンド処理部317は、認識結果を、アクセス処理部318に供給する。アクセス処理部318は、コマンド処理部317からの認識結果に基づき、ディスク303からのデータの読み出しを制御する。アクセス処理部318における処理としては、アドレスの変換処理などがある。
アクセス処理部318は、LBA/PSN変換を行う。LBAは、Logical Block Addressの略であり、PSNは、Physical Sector Numberの略である。LBAは、論理的なアドレスを示し、例えば、リードコマンドに含まれ、ディスク303上の読み出すべきデータの物理媒体に依存せずにドライブ装置301とホスト302との間で共通的に扱うことを可能とする論理的なアドレスを示す。
LBAに対し、PSNは、物理的なアドレスを示す。コマンドパケット363には、LBAが含まれるが、このLBAは、ディスク303上の論理的なアドレスを示し、実際の物理的なアドレスは示していないため、物理媒体から読み出した物理的なアドレスを示すPSNから共通に扱える論理的なアドレスへ変換するといった処理が、必要に応じ行われる。その変換処理を、アクセス処理部318は行う。
なお、ディスク303上のユーザに開放された記録領域であるユーザデータエリア(不図示)の物理セクタに対して、例えば、ある物理セクタ番号の物理セクタを基準として、シーケンシャルな論理セクタ番号の論理セクタが、順次割り当てられる。変換方法の事例はINCITS T10 WORKING DRAFT “MultiMedia Command Set-4 (MMC-4)” に記述がある。
LBAがPSNに変換されると、ステップS232の処理として、その変換されたPSNが指し示すディスク303上の位置が検索される。この検索の結果、ピックアップ(不図示)がディスク303上の、読み出すべき位置に移動されるなどの処理が実行され、ディスク303からセクタデータ351が読み出される。読み出されたセクタデータ351は、暗号化部312に供給される。
暗号化部312には、認証処理部311からセッションキーKsが供給され、乱数発生部315から初期ベクトルIVも供給される。暗号化部312は、供給されたセッションキーKsと初期ベクトルIVを用いてセクタデータ351を暗号化する。暗号化されたセクタデータ351(この場合、Encrypted Sector Data #1)は、ステップS232の処理として、セクタ転送制御部313の制御のもと、ホスト302の復号部322に対して出力される。
復号部322は、供給されたEncrypted Sector Data #1を、認証処理部321から供給されるセッションキーKsと、ドライブ装置301の乱数発生部315から供給された初期ベクトルIVを用いて復号し、セクタデータ361を生成する。このようにして生成されたセクタデータ361は、図示されていないアプリケーションソフトウェアやディスプレイやスピーカに提供される。
このような処理がドライブ装置301とホスト302間で繰り返される。ドライブ装置301から、順次、Physical Sector Data が読み出される。すなわち、ディスク303側からは、ドライブ装置301の検索制御に応じて順次、連続的にセクタデータが読み出されドライブ装置301に供給される。
ドライブ装置301は、ステップS233乃至S240の各ステップの処理において、順次、読み出したセクタデータを暗号化し、ホスト302の要求(リードコマンドの発行)に応じてホスト302に供給する。
ドライブ装置301は、ホスト302に対してセクタデータを転送する際、セクタ転送カウンタ314により管理されているカウンタ値Nの更新処理なども行う。例えば、ステップS232の処理として、セクタデータ351が暗号化されてホスト302側に転送されると、セクタ転送カウンタ314のカウンタ値Nは、1だけ増加された値に更新される(ステップ47の処理)。よって、このようなカウンタ値Nの更新の処理が繰り返される(セクタデータが、順次、ホスト302側に転送されると)、カウンタ値Nの値が、閾値Nmaxよりも大きくなる(N>Nmaxを満たす)ときがある。
図17を参照するに、(N1+N2)<Nmax<(N1+N2+N3)と設定されていたとする。このような場合、ステップS240において、(N1+N2+1)番目のセクタデータが出力された後の時点(セクタ転送カウンタ314が管理するカウンタ値Nが、(N1+N2+1)となった後の時点)で、継続的に、セクタデータがディスク303から読み出され、暗号化され、転送されという処理が繰り返されると、カウンタ値Nの値は、順次1つづ増加されるので、N>Nmaxという条件を満たすようになる。
N>Nmaxという条件が満たされると、すなわち、ステップS45(図13)において、YESと判断されると、ステップS48(図17においては、ステップS241)に処理が進められる。
ステップ48(ステップS241)において、エラーメッセージ(Error Message)がドライブ装置301からホスト302側に出力される。ドライブ装置301のセクタ転送カウンタ314は、自己がカウントしているカウンタ値Nが、閾値Nmaxよりも大きくなったと判断したとき、セクタ転送制御部313に対して、暗号化部312から供給されるデータをホスト301側に出力しないように指示を出す。
セクタ転送制御部313は、セクタ転送カウンタ314から、出力停止の指示を受けると、セクタデータの出力を停止すると共に、メッセージ伝達部316に対して、出力停止の指示を受けたことを知らせる。メッセージ伝達部316は、セクタ転送制御部313から、出力停止の指示を受けたという知らせを受けると、エラーメッセージを作成し、ホスト302に対して送信する。このエラーメッセージは、ホスト302に、指示されたデータの供給はできないということを認識させるためのメッセージである。
このようなメッセージが出力されると、ドライブ装置301側からはデータが出力されない状態とされる。換言すれば、ドライブ装置301側で、認証処理が正常に行われた結果、データの出力が許可された状態であっても、その状態が解除され、許可されない状態に変更される。
このように、本実施の形態によれば、一度設定されたデータ出力の許可という状況を変更することが可能である。よって、エラーメッセージが出力された後、ホスト302から、ディスク303からのデータの読み出しが指示されても、その指示に対応して、データが読み出されることはない。
エラーメッセージが出力されると、ドライブ装置301からホスト302へのデータの出力が停止される。このようなデータの出力が停止されてしまような状況が発生しないようにするためには、ホスト302側で、初期ベクトルIVの発行要求が、所定のタイミングでドライブ装置301に対して出されればよい。
すなわち、初期ベクトルIVの発行が要求されれば(例えば、ステップS40(図13))、セクタ転送カウンタ314のカウンタ値Nが0にリセットされる(ステップS42)。その結果、N>Nmaxという条件が満たされることを回避できるため、エラーメッセージが出力されるような状況が発生する(ステップS48)ようなことを回避することができる。
ホスト302は、定期的に初期ベクトルIVの発行の要求を出す。定期的とは、例えば、初期ベクトルIVの発行を要求した後、転送を指示したデータ量の累計が所定のデータ量(例えば、16Mbyte(8K Sector))を超える毎に要求されるということである。または、初期ベクトルIVの発行を要求した後、所定の時間が経過する毎に要求されるということである。
いずれにしても、ホスト302は、所定のタイミングで、初期ベクトルIVの発行の要求を出す。よって、正常に(正当に)処理が実行されている間、ドライブ装置301側では、ステップS41乃至S43の処理が定期的に行われることになり、定期的にセクタ転送カウンタ314のカウンタ値Nが0に設定されることになる。
このようにすることで、少なくとも以下のような問題を解決することができる。
ドライブ装置301とホスト302との間で一旦、相互認証が成功したら、ドライブ装置301は、相手(ホスト302において起動されているアプリケーションなど)が正当であろうが、正当でなかろうが、保護されたデータを相手側の指示に従って出力してしまうといった問題。
バスを第3者が観測し、保護されたデータを横取りして解読し平文化してしまうといった問題(不正に利用されてしまうという問題)。
このような問題を解決するために、上述したように、まず、保護されたデータ(ディスク303に記録されているセクタデータ351)をドライブ装置301からホスト302にバス転送する際、その保護されたデータをセッションキーKsで暗号化してから転送するようにした。このことにより、仮に、バスを第3者が観測し、保護されたデータを横取りしたとしても、そのデータを解読し平文化することを困難にすることが可能となる。
そして、データを暗号化する際、初期ベクトルIVを適用するようにした。またその初期ベクトルIVは、乱数を用いてランダムに変更されるようにした。このようにすることで、仮に、第3者が何らかの方法で、保護されたデータを横取りしたとしても、そのデータを解読し平文化することをより困難にすることが可能となる。
また、初期ベクトルIVが変更されるようすることで、平文データが特別なデータであることを特定させることを困難にすることが可能となる。このことは、データのすり替えや、データの改竄など、不正な行為を防止できることを意味する。さらに、初期ベクトルIVを適宜更新させることで、大量のデータを単一の鍵で暗号化した場合に、暗号鍵(セッションキーKs)が予測されやすくなるといった問題を解決することが可能となる。
また、上述したように、本実施の形態によれば、ホスト302側から適切に初期ベクトルIVの更新が指示されなければ、データの供給が停止されるため、ドライブ装置301とホスト302との間で一旦、相互認証が成功したら、ドライブ装置301は、相手(ホスト302において起動されているアプリケーションなど)が正当であろうが、正当でなかろうが、保護されたデータを相手側の指示に従って出力してしまうといった問題を解決することができる。
すなわち、正当なドライブ装置301は、正当なホスト302にのみ、保護されたデータを転送するように制御することが可能となる。
上述した実施の形態においては、初期ベクトルIVが更新されるとしたが、暗号化に用いられるセッションキーKs自体が更新されるようにしても良い。換言すれば、ホスト302からは、初期ベクトルIVの再発行の指示が出されるのではなく、セッションキーKsの再発行の処理が出されるようにしても良い。
しかしながら、セッションキーKsは、相互認証が正常に終了されなければ生成されないため、セッションキーKsの更新に係る処理時間や処理能力を考慮すると、初期ベクトルIVの方を更新する方が好ましいと考えられる。
上述した実施の形態においては、ディスク303からデータを読み出す(再生)の場合を例に挙げて説明したが、本発明はデータの再生にのみ適用範囲が限定されるわけではない。すなわち、本発明を、ディスク303へのデータの書き込み(記録)に適用することも可能である。
図19は、本発明を記録装置に適用した場合のシステム構成例を示す図である。
図19に示し記録装置のドライブ装置401は、ホスト402から供給されるデータを、セットされているディスク303に記録する。ドライブ装置401は、認証処理部411、復号部412、セクタ転送制御部413、セクタ転送カウンタ414、乱数発生部415、メッセージ伝達部416、コマンド処理部417、および、アクセス処理部418を含む構成とされている。
ホスト402は、認証処理部421、暗号化部422を含む構成とされている。
図19に示した記録装置の構成は、図10に示した再生装置の構成と同様な部分が多いので、その詳細な説明は省略し、異なる部分についてのみ説明を加える。
図19に示した記録装置は、ディスク403にセクタデータを451を記録する。この記録されるセクタデータ451は、ホスト402側から供給されるセクタデータ461である。ホスト402の暗号化部422は、図示されていない記録媒体またはハードディスクドライブなどから読み出されたセクタデータ461を、認証処理部421から供給されるセッションキーKsを用いて暗号化する。
暗号化部422により暗号化されたセクタデータ461は、ドライブ装置401のセクタ転送制御部413に供給される。セクタ転送制御部413は、供給されたセクタデータ461を、復号部412に供給する。復号部412は、供給されたセクタデータ461を、認証処理部411から供給されるセッションキーKsを用いて復号する。復号されたセクタデータ461は、セクタデータ451として、アクセス処理部418の制御のもと、ディスク403に記録される。
セクタ転送カウンタ414は、セクタ転送制御部413から出力され、復号部412に供給されたセクタ数をカウントする。その他の部分に関しては、図10に示した再生装置の対応する部分と、基本的に同様な構成であり、その動作も同様である。
図19に示した記録装置のドライブ装置401は、既に図12、図13のフローチャートを参照して説明した処理と、基本的に同様な処理を実行するため、詳細な説明は省略する。ここでは、再度、図12、図13のフローチャートを参照し、異なる処理のみに説明を加える。
ドライブ装置401は、ステップS44において、セクタデータの記録の要求があったか否かを判断する。この判断は、コマンド処理部417が、ホスト402側から、コマンドパケット463を受信したか否かを判断し、かつ、受信したコマンドパケット463が、セクタデータ461の書き込みを要求するもの(すなわち、ライトコマンド)であるか否かを判断することにより行われる。
また、ステップS46においては、暗号化されたセクタデータ461が供給されるため、復号部412における復号処理が行われ、その復号されたセクタデータ461(451)がディスク403に書き込まれる処理が実行される。その他の処理については、基本的に同様であり、ホスト402から定期的に初期ベクトルIVの発行要求が出されなければ、ドライブ装置401側における書き込みの処理が停止される(ホスト403からのデータの出力が停止される)ように制御される。
よって、ホスト402側で管理している保護されたデータが、不正に出力されること、そして、ディスク403に書き込まれてしまとことを防ぐことが可能となる。
図20のタイミングチャートを参照して、図19に示した記録装置における、データの記録に関わる処理について説明を加えるが、基本的な処理は、図17に示したタイミングチャートと同様であるので、その詳細な説明は省略する。異なる処理としては、ステップS301において、ホスト402から、データの書き込みを指示するライトコマンド(WRITE command)が送信される。
また、ステップS302において、ホスト402の暗号化部422は、セクタデータ461をセッションキーKsを用いて暗号化し、その暗号化したデータ(Encrypted Sector Data#1)を、ドライブ装置401に対して送信する。ドライブ装置401のセクタ転送制御部423は、供給されたEncrypted Sector Data #1を、復号部412に供給する。
復号部412は、認証処理部411から供給されるセッションキーKsと、乱数発生部415から供給された初期ベクトルIVを用いて復号し、セクタデータ451を生成する。このようにして生成されたセクタデータ451は、アクセス処理部418の制御に基づき、ディスク403に書き込まれる。
このような処理が行われると共に、セクタ転送カウンタ414は、セクタ転送制御部413から出力されたセクタ数をカウントする。そして、そのカウントされているカウンタ値Nが、Nmax以上になったか否かの判断を行う。カウンタ値Nが大きくなると、すなわち、セクタデータが、順次、セクタ転送制御部413から出力されると、カウンタ値Nの値が、閾値Nmaxよりも大きくなる(N>Nmaxを満たす)ときがある。
図20を参照するに、(N1+N2)<Nmax<(N1+N2+N3)と設定されていたとする。このような場合、ステップS340において、(N1+N2+1)番目のセクタデータが受信された後の時点(セクタ転送カウンタ414が管理するカウンタ値Nが、(N1+N2+1)となった後の時点)で、継続的に、セクタデータがディスク403に書き込まれるという処理が繰り返されると、カウンタ値Nの値は、順次1つづ増加されるので、N>Nmaxという条件を満たすようになる。
N>Nmaxという条件が満たされると、すなわち、ステップS45(図13)において、YESと判断されると、ステップS48(図20においては、ステップS341)に処理が進められる。
ステップ48(ステップS341)において、エラーメッセージ(Error Message)がドライブ装置401からホスト402側に出力される。ドライブ装置401のセクタ転送カウンタ414は、自己がカウントしているカウンタ値Nが、閾値Nmaxよりも大きくなったと判断したとき、セクタ転送制御部413に対して、復号部412にデータを出力しないように指示を出す。
セクタ転送制御部413は、セクタ転送カウンタ414から、出力停止の指示を受けると、セクタデータの出力を停止すると共に、メッセージ伝達部416に対して、出力停止の指示を受けたことを知らせる。メッセージ伝達部416は、セクタ転送制御部413から、出力停止の指示を受けたという知らせを受けると、エラーメッセージを作成し、ホスト402に対して送信する。このエラーメッセージは、ホスト402に、指示されたデータの書き込みはできないということを認識させるためのメッセージである。
このようなメッセージが出力されると、ドライブ装置401側からはデータが入力されない状態とされる。また、エラーメッセージを受け取ったホスト402は、データを出力しない状態とされる。
このように処理が行われることで、既に説明した再生装置の場合と同様の効果を望むことが可能である。
このように、本発明を適用することにより、ドライブ装置とホストとの間で行われるデータの授受に関し、セキュリティを向上させることが可能となる。
なお、上述した実施の形態においては、再生装置(図10)と記録装置(図19)をそれぞれ別な構成として図示および説明したが、再生装置と記録装置を同一の装置内に納めることも可能である。同一の装置内に納めるようにした場合、再生装置内と記録装置内において同一の処理を実行する、例えば、乱数発生部315(415)などは、再生装置と記録装置で共用される構成としても、もちろん良い。
なお、上述した実施の形態においては、暗号化および復号の方式として、CBC方式を例に挙げて説明したが、本発明は、CBC方式にのみ適用できることを示すものではない。例えば、CFB(Cipher Feed Back)方式、OFB(Output Feed Block)方式などに対しても本発明を適用することはできる。
実施例1においては、ドライブ装置301(401)側で初期ベクトルIVを生成する場合を例にあげて説明したが、実施例2とし、ホスト側で初期ベクトルIVを生成する場合について説明する。
図21は、実施例2におけるシステムの構成を示す図である。ドライブ装置501は、認証処理部511、復号部512、入力制御部513、セクタ転送カウンタ514、リセット処理部515、メッセージ伝達部516、コマンド処理部517、および、アクセス処理部518を含む構成とされている。
ホスト502は、認証処理部521、暗号化部522、セクタ転送カウンタ523、乱数発生部524、および、スイッチ525を含む構成とされている。
図21に示したシステムにおいては、ホスト502からドライブ装置501に対して、暗号化された状態のセクタデータ561が供給され、そのセクタデータ561が、復号された後に、セクタデータ551としてディスク503に書き込まれる。
ドライブ装置501の認証処理部511とホスト502の認証処理部521により、相互認証に関わる処理が実行される。
ホスト502の暗号化部522には、ディスク503に書き込まれるセクタデータ561と、認証処理部511からセッションキーKsが供給される。また、暗号化部522には、乱数発生部524により発生された乱数が、初期ベクトルIVとして供給される。暗号化部522は、供給されたセクタデータ561をセッションキーKsと初期ベクトルIVを用いて暗号化し、ドライブ装置501に送信する。
ドライブ装置501の入力制御部513は、ホスト502から、暗号化されたセクタデータ561を入力した場合、復号部512に転送する。復号部512には、ホスト502から、セクタデータ561とは別の経路で、乱数発生部524により発生された初期ベクトルIVも供給される。
復号部512は、認証処理部511から供給されるセッションキーKsと、ホスト502から供給される初期ベクトルIVを用いて復号処理を実行し、セクタデータ551(セクタデータ561と同一のデータ)を生成する。生成されたセクタデータ551は、ディスク503に書き込まれる。この書き込みは、アクセス処理部518の制御のもと行われる。
ホスト502は、セクタデータ561を出力する際、セクタ転送カウンタ523により、転送する(転送した)セクタ数をカウントするように構成されている。そして、そのカウント数に応じ、スイッチ525を切り換えるように構成されている。詳細は後述するが、カウント数(以下、適宜、カウント値Nとする)が、所定の数(以下、適宜、閾値Nmaxとする)に達する前の時点で、センドキーコマンド563により、初期ベクトルIVを転送するように構成されている。
同様に、ドライブ装置501側にも、セクタ転送カウンタ514が設けられている。セクタ転送カウンタ514は、入力制御部513から復号部512に供給されたセクタ数をカウントしている。セクタ転送カウンタ514は、カウント数(以下、適宜、カウント値Mとする)が所定の数(以下、適宜、閾値Mmaxとする)に達した場合、入力制御部513にセクタデータを入力しないように指示を出すとともに、メッセージ伝達部516に対してメッセージの伝達を指示する。
なお、ホスト502のセクタ転送カウンタ523に設定されている閾値Nmaxは、ドライブ装置514のセクタ転送カウンタ514に設定されている閾値Mmaxよりも小さい値とされている(Nmax<Mmaxという条件を満たす値とされている)。
また、ここでは、セクタ転送カウンタ514は、カウント値Mが閾値Mmaxに達した場合、入力制御部513にセクタデータを入力しないように指示を出すとして説明を続けるが、入力制御部513に、入力されたセクタデータを復号部512に転送しないように指示を出すようにしても良い。
セクタ転送カウンタ514のカウント値Mをリセットする(0にする)ために、リセット処理部515が設けられている。リセット処理部515に対する指示は、コマンド処理部517により出される。
このような構成を有するシステムにより行われる処理について説明する。まず、図22のタイミングチャートを参照して、初期ベクトルIVに係る処理について説明する。ホスト502は、ステップS501において、ドライブ装置501は、ステップS521において、それぞれ相互認証(Authentication)を行う。この相互認証が正常に行われた場合のみ、次のステップに処理が進められる。また、この相互認証の結果、ドライブ装置501の認証処理部511とホスト502の認証処理部521との、それぞれにおいてセッションキーKsが生成される(共有される)ことになる。
ホスト502は、ステップS502において、センドキーコマンド(SEND KEY command)563を生成し、ドライブ装置501に対して出力する。ステップS502において生成され、出力されるセンドキーコマンド563は、初期ベクトルIVの転送するためのものである。
ステップS503において、初期ベクトルIVが生成され、転送される。この初期ベクトルIVは、センドキーコマンド563により転送される。ドライブ装置501は、ステップS522,S523により、センドキーコマンド563および初期ベクトルIVを受信する。コマンド処理部517は、受信したセンドキーコマンド563を、リセット処理部515に供給する。
リセット処理部515は、センドキーコマンド563が供給された場合、セクタ転送カウンタ514に対して、カウント値Mをリセットするように(0に戻すように)指示を出す。また、センドキーコマンド563に含まれる初期ベクトルIVは、復号部512に供給される。
このようにして、ドライブ装置501とホスト502の両方で、共通のセッションキーKsと初期ベクトルIVが共用される。共通のセッションキーKsと初期ベクトルIVが共用された後の処理について、図23のタイミングチャートを参照して説明する。
ステップS551において、ホスト502から、セクタデータの書き込みを指示するライトコマンド(WRITE command)が送信される。また、ステップS552において、ホスト502の暗号化部522は、セクタデータ561をセッションキーKsと初期ベクトルIVを用いて暗号化し、その暗号化したデータ(Bus-Encrypted Sector Data)を、ドライブ装置501に対して送信する。ドライブ装置501の入力制御部513は、供給されたBus-Encrypted Sector Dataを、復号部512に供給する。
復号部512は、認証処理部511から供給されるセッションキーKsと、乱数発生部524により発生され、供給された初期ベクトルIVを用いて復号し、セクタデータ551を生成する。このようにして生成されたセクタデータ551は、アクセス処理部518の制御に基づき、ディスク503に書き込まれる。
このような処理が行われると共に、ホスト502側のセクタ転送カウンタ523は、送信されたセクタ数をカウントする。そして、そのカウントされているカウンタ値Nが、Nmax以上になったか否かの判断を行う。カウンタ値Nが大きくなると、すなわち、セクタデータが、順次、送信されると、カウンタ値Nの値が、閾値Nmaxよりも大きくなる(N>Nmaxを満たす)ときがある。
そのような状況になると、ホスト502からは、センドキーコマンド563が送信される。図23のタイミングチャートにおいては、ステップS555のタイミングでセンドキーコマンド563が送信されている。
ホスト502から送信されたセンドキーコマンド563は、ステップS585においてドライブ装置501に受信される。ドライブ装置501のセクタ転送カウンタ514は、センドキーコマンド563が受信されたことによりリセットされる。よって、ホスト502から適切なタイミングでセンドキーコマンド563が出力されている間は、セクタ転送カウンタ514によるカウント値Mが閾値Mmax以上になることはないため、入力制御部513によりデータの入力が拒否されるような状況が発生するようなことがないため、ディスク503へのセクタデータの書き込みは継続的に行われることになる。
次に、ドライブ装置501とホスト502の、それぞれの処理について説明を加える。図24と図25のフローチャートを参照して、ホスト502側の処理について説明する。ホスト502は、ステップS601において、所定のアプリケーションが起動されているか否かを判断する。所定のアプリケーションとは、ここでは、ドライブ装置501に挿入されたディスク503に対してデータを書き込むために必要とされるアプリケーションである。
ステップS601において、アプリケーションは起動されていると判断された場合、ステップS602において、ドライブ装置501にディスク503が、挿入されているか否かが判断される。ステップS602において、ドライブ装置501にディスク503が挿入されていると判断された場合、ステップS503に処理が進められ、ドライブ装置501とホスト502との間で相互認証処理が実行され、セッションキーKsが、ドライブ装置501とホスト502で、それぞれ生成(共用)される。
ステップS604において、セッションキーKsの生成が完了したか否かが判断される。セッションキーKsの生成が完了されるまで、ステップS603とステップS604の処理が繰り返される。
そして、ステップS604において、セッションキーKsの生成が完了したと判断されると、ステップS605に処理が進められ、初期ベクトルIVが生成される。そして、ステップS606において、センドキーコマンド563が生成される。このようにして生成されたセンドキーコマンド563を用いて、初期ベクトルIVが、ステップS607の処理としてドライブ装置501側に送信される。
ステップS608において、セクタ転送カウンタ523のカウンタ値Nが0にセットされる。ステップS609(図25)において、ライトコマンド(WRITE command)を送信するか否かが判断される。ライトコマンドではなく他のコマンドを送信すると判断された場合、ステップS610において、他のコマンドに対する処理が実行される。
一方、ステップS609において、ライトコマンドを送信すると判断された場合、ステップS611において、セクタ転送カウンタ523によりカウントされているカウント値Nが、N+Lに更新される。このLは、ライトコマンドに含まれるTransfer Lengthの部分に書き込まれている数値である。このTransfer Lengthは、上述したように書き込みセクタ数を指示するデータであるため、Lが示す値は、その時点に送信されるセクタデータ数に対応していることになる。
ステップS612において、セクタ転送カウンタ523によりカウントされているカウンタ値Nが、閾値Nmaxよりも大きくなったか否か(N>Nmaxの条件を満たすか否か)が判断される。ステップS612において、N>Nmaxの条件を満たすと判断された場合、ステップS613に処理が進められる。N>Nmaxの条件を満たす状況とは、ここでは、センドキーコマンド563や初期ベクトルIVを送信する(更新する)タイミングであることを示している。
ステップS613乃至S616の処理は、ステップS606乃至S608の処理と同様である。すなわち、センドキーコマンド563や初期ベクトルIVが新たに生成され、ドライブ装置501側に送信される処理である。
一方、ステップS612において、N>Nmaxの条件を満たさないと判断された場合、ステップS617に処理が進められ、ライトコマンドが生成され、送信される。そして、ステップS618において、セクタデータ561が、暗号化部522により暗号化され、その暗号化されたセクタデータ561が、ドライブ装置501側に送信される。
このような処理が、ホスト502側で行われる一方で、ドライブ装置501側では、図26、図27に示すフローチャートの処理が実行される。
ドライブ装置501は、ステップS631において、ディスク503が挿入されているか否かを判断する。ステップS631において、ドライブ装置501にディスク503が挿入されていると判断された場合、ステップS632に処理が進められる。ステップS632において、ホスト502側で所定のアプリケーションが起動されているか否かが判断される。
ステップS632において、アプリケーションは起動されていると判断された場合、ステップS633において、ドライブ装置501とホスト502との間で相互認証処理が実行され、セッションキーKsが、ドライブ装置501とホスト502で、それぞれ生成(共用)される。
ステップS634において、セッションキーKsの生成が完了したか否かが判断される。セッションキーKsの生成が完了されるまで、ステップS633とステップS634の処理が繰り返される。そして、ステップS634において、セッションキーKsの生成が完了したと判断されると、ステップS635に処理が進められる。
ステップS635において、セクタ転送カウンタ514のカウンタ値Mが閾値Mmaxに設定される。このように、M=Mmaxに設定されると、セクタ転送カウンタ514の指示により、入力制御部513でホスト502からのデータの入力が許可されない状態に設定される。
ステップS636(図27)において、センドキーコマンド(SEND KEY command)563を受信したか否かが判断され、受信したと判断された場合、ステップS637に処理が進められる。ステップS637において、センドキーコマンド563により送信されてきた初期ベクトルIVが受信される。センドキーコマンド563が受信されることで、リセット処理部515から、セクタ転送カウンタ514に対して、カウンタ数Mを0にリセットするように指示が出される。
このような指示を受け取ったセクタ転送カウンタ514は、ステップS638の処理として、カウンタ値Mを0にリセットする。このようにセクタ転送カウンタ514のカウンタ値Mが、0に設定される(閾値Mmax以下の状態にされる)ことにより、入力制御部613へのデータの入力が許可された状態にされる。
ステップS639において、初期ベクトルIVが、復号部512に供給される。ステップS640において、ライトコマンド564を受信したか否かが判断され、受信していないと判断されると、ステップS636に戻り、それ以降の処理が繰り返される。一方、ステップS640において、ライトコマンド564を受信したと判断した場合、ステップS641に処理が進められる。
ステップS641において、セクタ転送カウンタ514のカウンタ値MにTransfer Lengthの値Lを加算した値(M+L)が、閾値Mmax以上であるか否か(M+L>Mmaxという条件を満たすか否か)が判断される。ステップS641において、M+L>Mmaxという条件は満たされていないと判断された場合、ステップS642に処理が進められ、カウンタ値MがM+Lに更新される。M+L>Mmaxという条件が満たされていない状況とは、入力制御部513においてデータの入力が許可された状態を示す。
ステップS643において、暗号化されているセクタデータ561が受信される。そして、受信されたセクタデータ561は、復号部512において復号され、セクタデータ551として、ディスク503に書き込まれる。
一方、ステップS641において、M+L>Mmaxという条件を満たすと判断された場合、ステップS644に処理が進められる。M+L>Mmaxという条件が満たされる状態になると、セクタ転送カウンタ514から入力制御部513に対してセクタデータの入力の停止が指示されるとともに、メッセージ伝達部516に対してメッセージの送信が指示される。
メッセージ伝達部516から送信されるメッセージは、セクタデータの入力を許可しない(従って、ディスク503へのセクタデータの書き込みを許可しない)ということをホスト502に認識させるためのエラーメッセージである。ステップS644において、エラーメッセージが送信された後、ステップS636に処理が戻され、それ以降の処理が繰り返される。
このようなエラーメッセージが出されることにより、ホスト502がドライブ装置501の状態を認識し、センドキーコマンドを発行し、初期ベクトルIVを供給すれば、すなわち、ステップS636において、センドキーコマンドを受信したと判断されれば、ステップS637以降に処理が進められるので、再度、セクタデータの入力が許可された状態に設定し直される。
このように、ホスト502側で、初期ベクトルIVを生成し、また、その初期ベクトルIVの有効期間(寿命)を管理できるようにすることで、ドライブ装置とホストとの間で行われるデータの授受に関し、セキュリティを向上させることが可能となる。
また、実施例2のようにした場合においても、実施例1の場合と同様な効果を得ることが可能である。
上述した一連の処理は、それぞれの機能を有するハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
記録媒体は、その記録媒体を扱うパーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROMやハードディスクなどで構成される。
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
従来の再生装置の一例の構成を示す図である。 従来の再生装置の他の構成例を示す図である。 認証処理について説明するためのフローチャートである。 暗号化を行う回路の構成例を示す図である。 復号を行う回路の構成例を示す図である。 従来の再生装置における問題点を説明するための図である。 従来の再生装置における問題点を説明するための図である。 初期ベクトルIVを授受する際の問題点を説明するための図である。 初期ベクトルIVを授受する際の問題点を説明するための図である。 本発明を適用したシステムの一実施の形態の構成を示す図である。 データの授受に係わるドライバーについて説明するための図である。 ドライブ装置の動作について説明するためのフローチャートである。 図12のフローチャートに続くフローチャートである。 初期ベクトルIVの授受に関するタイミングチャートである。 初期ベクトルIVの授受に関するタイミングチャートである。 初期ベクトルIVの授受に関するタイミングチャートである。 データの授受に関するタイミングチャートである。 コマンドパケットの構成を示す図である。 本発明を適用したシステムの他の実施の形態の構成を示す図である。 データの授受に関するタイミングチャートである。 実施例2における記録装置の構成を示す図である。 初期ベクトルIVの授受に関するタイミングチャートである。 初期ベクトルIVの授受に関するタイミングチャートである。 ホストの動作について説明するためのフローチャートである。 図24のフローチャートに続くフローチャートである。 ドライブ装置の動作について説明するためのフローチャートである。 図26のフローチャートに続くフローチャートである。
符号の説明
301 ドライブ装置, 302 ホスト, 303 ディスク, 311 認証処理部, 312 暗号化部, 313 セクタ転送制御部, 314 セクタ転送カウンタ, 315 乱数発生部, 316 メッセージ伝達部, 317 コマンド処理部, 318 アクセス処理部, 321 認証処理部、 322 復号部, 401 ドライブ装置, 402 ホスト, 403 ディスク, 411 認証処理部, 412 復号部, 413 セクタ転送制御部, 414 セクタ転送カウンタ, 415 乱数発生部, 416 メッセージ伝達部, 417 コマンド処理部, 418 アクセス処理部, 421 認証処理部、 422 暗号化部

Claims (5)

  1. 他の装置へのデータの転送を制御する転送制御手段と、
    前記転送制御手段が前記データの転送を制御した回数をカウントするカウント手段と、
    前記カウント手段によりカウントされた回数が、所定の閾値以上になったか否かを判断する第1の判断手段と、
    前記第1の判断手段により前記回数が前記閾値以上になったと判断された場合、前記転送制御手段に、前記データの転送を停止するように指示を出す第1の指示手段と、
    前記転送制御手段により転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成する生成手段と、
    前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断する第2の判断手段と、
    前記第2の判断手段により前記初期ベクトルの供給が指示されたと判断された場合、前記生成手段に前記初期ベクトルの生成を指示するとともに、前記カウンタ手段によりカウントされている前記回数をリセットするように指示を出す第2の指示手段と
    を備えることを特徴とする情報処理装置。
  2. 前記第1の指示手段による指示が出された場合、前記他の装置に対して前記データの転送が停止されたことを示すメッセージを出力する出力手段を
    さらに備えることを特徴とする請求項1に記載の情報処理装置。
  3. 転送制御手段、カウント手段、第1の判断手段、第1の指示手段、生成手段、第2の判断手段、および第2の指示手段を少なくとも備える情報処理装置の情報処理方法において、
    前記転送制御手段が、他の装置へのデータの転送を制御
    前記カウント手段が、前記データの前記他の装置への転送が制御された回数をカウント
    前記第1の判断手段が、カウントされた回数が、所定の閾値以上になったか否かを判断
    前記第1の指示手段が、前記回数が前記閾値以上になったと判断された場合、前記転送制御手段における前記データの転送が停止されるように指示を出
    前記生成手段が、前記転送制御手段で転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成
    前記第2の判断手段が、前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断
    前記第2の指示手段が、前記他の装置から、前記初期ベクトルの供給が指示されたと判断された場合、前記生成手段に前記初期ベクトルが生成されるように指示するとともに、前記カウンタ手段によりカウントされている前記回数がリセットされるように指示を出す
    ステップを含むことを特徴とする情報処理方法。
  4. 他の装置へのデータの転送を制御する転送制御ステップと、
    前記転送制御ステップの処理で前記データの転送が制御された回数をカウントするカウントステップと、
    前記カウントステップの処理によりカウントされた回数が、所定の閾値以上になったか否かを判断する第1の判断ステップと、
    前記第1の判断ステップの処理で前記回数が前記閾値以上になったと判断された場合、前記転送制御ステップにおける処理で、前記データの転送が停止されるように指示を出す第1の指示ステップと、
    前記転送制御ステップの処理で転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成する生成ステップと、
    前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断する第2の判断ステップと、
    前記第2の判断ステップの処理で前記初期ベクトルの供給が指示されたと判断された場合、前記生成ステップによる処理で前記初期ベクトルが生成されるように指示するとともに、前記カウンタステップの処理によりカウントされている前記回数がリセットされるように指示を出す第2の指示ステップと
    を含む処理をコンピュータに実行させることを特徴とするプログラム。
  5. 他の装置へのデータの転送を制御する転送制御ステップと、
    前記転送制御ステップの処理で前記データの転送が制御された回数をカウントするカウントステップと、
    前記カウントステップの処理によりカウントされた回数が、所定の閾値以上になったか否かを判断する第1の判断ステップと、
    前記第1の判断ステップの処理で前記回数が前記閾値以上になったと判断された場合、前記転送制御ステップにおける処理で、前記データの転送が停止されるように指示を出す第1の指示ステップと、
    前記転送制御ステップの処理で転送が制御される前記データの暗号化または復号に用いられる初期ベクトルを生成する生成ステップと、
    前記他の装置から、前記初期ベクトルの供給が指示されたか否かを判断する第2の判断ステップと、
    前記第2の判断ステップの処理で前記初期ベクトルの供給が指示されたと判断された場合、前記生成ステップによる処理で前記初期ベクトルが生成されるように指示するとともに、前記カウンタステップの処理によりカウントされている前記回数がリセットされるように指示を出す第2の指示ステップと
    を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
JP2004122524A 2004-01-09 2004-04-19 情報処理装置および方法、プログラム、並びに記録媒体 Expired - Fee Related JP4608931B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP2004122524A JP4608931B2 (ja) 2004-01-09 2004-04-19 情報処理装置および方法、プログラム、並びに記録媒体
EP05703329A EP1701469A4 (en) 2004-01-09 2005-01-06 INFORMATION PROCESSING DEVICE
KR1020067013488A KR101108526B1 (ko) 2004-01-09 2005-01-06 정보 처리 장치
CN200580005635XA CN1922817B (zh) 2004-01-09 2005-01-06 信息处理装置
PCT/JP2005/000061 WO2005067198A1 (ja) 2004-01-09 2005-01-06 情報処理装置
US10/596,887 US7685647B2 (en) 2004-01-09 2005-01-06 Information processing apparatus
TW094100428A TW200535815A (en) 2004-01-09 2005-01-07 Information processing device and method, program, and recording medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004004798 2004-01-09
JP2004122524A JP4608931B2 (ja) 2004-01-09 2004-04-19 情報処理装置および方法、プログラム、並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2005223874A JP2005223874A (ja) 2005-08-18
JP4608931B2 true JP4608931B2 (ja) 2011-01-12

Family

ID=34752105

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004122524A Expired - Fee Related JP4608931B2 (ja) 2004-01-09 2004-04-19 情報処理装置および方法、プログラム、並びに記録媒体

Country Status (7)

Country Link
US (1) US7685647B2 (ja)
EP (1) EP1701469A4 (ja)
JP (1) JP4608931B2 (ja)
KR (1) KR101108526B1 (ja)
CN (1) CN1922817B (ja)
TW (1) TW200535815A (ja)
WO (1) WO2005067198A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4643978B2 (ja) * 2004-12-01 2011-03-02 ルネサスエレクトロニクス株式会社 スクランブル回路、デ・スクランブル回路及び方法、並びにディスク装置
JP4482630B2 (ja) 2005-11-21 2010-06-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 通信装置および通信方法
KR100798921B1 (ko) 2005-12-07 2008-01-29 한국전자통신연구원 Mac 보안 서비스망에서의 보안 채널 제어 방법 및 이를구현하는 단말 장치
US7724899B2 (en) 2005-12-07 2010-05-25 Electronics And Telecommunications Research Insitute Method for controlling security channel in MAC security network and terminal using the same
KR20090000184A (ko) * 2007-01-25 2009-01-07 삼성전자주식회사 유비쿼터스 오디오 재생 및 서비스 방법 및 시스템
WO2009046088A1 (en) 2007-10-01 2009-04-09 Neology, Inc. Systems and methods for preventing transmitted cryptographic parameters from compromising privacy
CN101178933B (zh) * 2007-12-05 2010-07-28 苏州壹世通科技有限公司 一种闪存阵列装置
IL191169A0 (en) * 2008-04-30 2009-02-11 Privacy Inside Ltd A method and a system for data verification and/or authentication
US8769373B2 (en) 2010-03-22 2014-07-01 Cleon L. Rogers, JR. Method of identifying and protecting the integrity of a set of source data
KR101380895B1 (ko) 2012-06-12 2014-04-10 한국전자통신연구원 보안 서비스 제공 장치 및 이를 이용한 보안 서비스 방법
US8924730B2 (en) * 2012-07-12 2014-12-30 Xsette Technology, Inc. Digital watermarking for secure transmission between a source component and a node device
JP6693417B2 (ja) * 2014-08-28 2020-05-13 ソニー株式会社 リーダライタ装置、情報処理装置、およびデータ転送制御方法、並びにプログラム
US11080409B2 (en) * 2018-11-07 2021-08-03 Ngd Systems, Inc. SSD content encryption and authentication
US11797531B2 (en) * 2020-08-04 2023-10-24 Micron Technology, Inc. Acceleration of data queries in memory

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335040A (ja) * 1995-06-02 1996-12-17 Fujitsu Ltd 暗号化処理方式
JPH1065662A (ja) * 1996-04-01 1998-03-06 Sony Corp データ復号方法および装置、認証方法、記録媒体、ディスク製造方法、記録方法、並びに記録装置
JP2000330872A (ja) * 1999-03-15 2000-11-30 Sony Corp データ処理装置、データ処理システムおよびその方法
JP2001306401A (ja) * 2000-01-14 2001-11-02 Matsushita Electric Ind Co Ltd 認証通信装置及び認証通信システム
JP2001521697A (ja) * 1997-04-22 2001-11-06 ドイッチェ テレコム アーゲー 符号化方法および符号化装置
JP2002091828A (ja) * 2000-09-18 2002-03-29 Sharp Corp データ処理装置および記憶装置、並びに、それらを使用したデータ転送システム
JP2005505873A (ja) * 2001-10-12 2005-02-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ブロックとして記憶されるユーザデータを読み取る又は書き込む装置及び方法
JP2005157930A (ja) * 2003-11-28 2005-06-16 Matsushita Electric Ind Co Ltd 機密情報処理システムおよびlsi

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345508A (en) * 1993-08-23 1994-09-06 Apple Computer, Inc. Method and apparatus for variable-overhead cached encryption
US5883958A (en) 1996-04-01 1999-03-16 Sony Corporation Method and device for data decryption, a method and device for device identification, a recording medium, a method of disk production, and a method and apparatus for disk recording
MY131509A (en) 1999-03-15 2007-08-30 Sony Corp Data processing method, apparatus and system for encrypted- data transfer
KR100723765B1 (ko) 2000-01-14 2007-05-30 마츠시타 덴끼 산교 가부시키가이샤 인증통신장치 및 인증통신 시스템
DE60224826T2 (de) * 2001-10-30 2008-05-15 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren, system, einrichtung und computerprogramm für gegenseitige authentifizierung und inhaltsschutz

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08335040A (ja) * 1995-06-02 1996-12-17 Fujitsu Ltd 暗号化処理方式
JPH1065662A (ja) * 1996-04-01 1998-03-06 Sony Corp データ復号方法および装置、認証方法、記録媒体、ディスク製造方法、記録方法、並びに記録装置
JP2001521697A (ja) * 1997-04-22 2001-11-06 ドイッチェ テレコム アーゲー 符号化方法および符号化装置
JP2000330872A (ja) * 1999-03-15 2000-11-30 Sony Corp データ処理装置、データ処理システムおよびその方法
JP2001306401A (ja) * 2000-01-14 2001-11-02 Matsushita Electric Ind Co Ltd 認証通信装置及び認証通信システム
JP2002091828A (ja) * 2000-09-18 2002-03-29 Sharp Corp データ処理装置および記憶装置、並びに、それらを使用したデータ転送システム
JP2005505873A (ja) * 2001-10-12 2005-02-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ブロックとして記憶されるユーザデータを読み取る又は書き込む装置及び方法
JP2005157930A (ja) * 2003-11-28 2005-06-16 Matsushita Electric Ind Co Ltd 機密情報処理システムおよびlsi

Also Published As

Publication number Publication date
CN1922817A (zh) 2007-02-28
EP1701469A1 (en) 2006-09-13
US20070143592A1 (en) 2007-06-21
TWI319570B (ja) 2010-01-11
JP2005223874A (ja) 2005-08-18
CN1922817B (zh) 2011-10-05
EP1701469A4 (en) 2011-11-09
KR20060130087A (ko) 2006-12-18
WO2005067198A1 (ja) 2005-07-21
TW200535815A (en) 2005-11-01
KR101108526B1 (ko) 2012-01-30
US7685647B2 (en) 2010-03-23

Similar Documents

Publication Publication Date Title
KR101108526B1 (ko) 정보 처리 장치
US7421742B2 (en) Signal processing system, recording method, program, recording medium, reproduction device and information processing device
JP4327865B2 (ja) コンテンツ処理装置、暗号処理方法及びプログラム
JP5256235B2 (ja) アクセスを制限する方法
KR100994772B1 (ko) 저장 매체의 데이터 복사 및 재생 방법
JP2000315177A (ja) コンテンツ管理方法およびコンテンツ管理装置
JP4600042B2 (ja) 記録再生装置およびデータ処理装置
JP2005140823A (ja) 情報処理装置、制御方法、プログラム、並びに記録媒体
US8234718B2 (en) Method and apparatus for forbidding use of digital content against copy control information
US20050076225A1 (en) Method and apparatus for verifying the intergrity of system data
JP2005529422A5 (ja)
JP2006172147A (ja) コンテンツ保護方法及びその方法を用いた情報記録再生装置
TWI271618B (en) Apparatus and method for reading or writing user data
JP4560086B2 (ja) コンテンツデータ記録再生装置
JP2007058749A (ja) 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
JP4367166B2 (ja) ドライブ装置、再生処理装置、情報記録媒体、およびデータ処理方法、並びにコンピュータ・プログラム
JP2006217218A (ja) 著作権鍵管理方法
US20050144466A1 (en) Apparatus and method for rendering user data
JP3862935B2 (ja) データ処理装置およびデータ処理方法
JP2009033433A (ja) デジタルデータ記録/再生方法及び記録再生装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100708

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100824

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: 20100914

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: 20100927

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees