JP2005140823A - 情報処理装置、制御方法、プログラム、並びに記録媒体 - Google Patents
情報処理装置、制御方法、プログラム、並びに記録媒体 Download PDFInfo
- Publication number
- JP2005140823A JP2005140823A JP2003374168A JP2003374168A JP2005140823A JP 2005140823 A JP2005140823 A JP 2005140823A JP 2003374168 A JP2003374168 A JP 2003374168A JP 2003374168 A JP2003374168 A JP 2003374168A JP 2005140823 A JP2005140823 A JP 2005140823A
- Authority
- JP
- Japan
- Prior art keywords
- data
- random number
- unit
- initial vector
- generation unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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/06—Cryptographic 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
-
- 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/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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
-
- 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/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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
- H04L9/0841—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 involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—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 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
-
- 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/3236—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 cryptographic hash functions
- H04L9/3242—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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Power Engineering (AREA)
- Multimedia (AREA)
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】 初期ベクトルを生成し、データの暗号化や復号を行う。
【解決手段】 IV生成部62,92には、リードコマンド102に含まれるLBAのデータが供給される。IV生成部62(92)は、供給された4バイトのLBAを、16ビットのデータに、例えば、ハッシュ関数を用いて変換する。IV生成部62により生成された16バイトのデータは、初期ベクトルIVとして暗号化部61に供給される。同様に、IV生成部92により生成された16バイトのデータは、初期ベクトルIVとして復号部91に供給される。暗号化部61と復号部91は、それぞれ供給された初期ベクトルIVと、認証処理部51(81)から供給されるセッションキーKsを用いて、データを暗号化(復号)する。本発明は、所定のインタフェースを介してデータの授受を行うパーソナルコンピュータやドライブ装置に適用できる。
【選択図】図4
【解決手段】 IV生成部62,92には、リードコマンド102に含まれるLBAのデータが供給される。IV生成部62(92)は、供給された4バイトのLBAを、16ビットのデータに、例えば、ハッシュ関数を用いて変換する。IV生成部62により生成された16バイトのデータは、初期ベクトルIVとして暗号化部61に供給される。同様に、IV生成部92により生成された16バイトのデータは、初期ベクトルIVとして復号部91に供給される。暗号化部61と復号部91は、それぞれ供給された初期ベクトルIVと、認証処理部51(81)から供給されるセッションキーKsを用いて、データを暗号化(復号)する。本発明は、所定のインタフェースを介してデータの授受を行うパーソナルコンピュータやドライブ装置に適用できる。
【選択図】図4
Description
本発明は、情報処理装置、制御方法、プログラム、並びに記録媒体に関し、特に、暗号化に関わる処理を実行する際に用いて好適な情報処理装置、制御方法、プログラム、並びに記録媒体に関する。
さまざまな装置で、デジタルデータを授受することが一般的になりつつあるが、デジタルデータは、不正に利用されても、その質(例えば、画質や音質)が劣化しないため、不正に利用されないための対策が必要とされる。(例えば、特許文献1参照)
そこで、デジタルデータを暗号化し、不正利用を防ぐことが行われている。暗号化の方式は、さまざまなものが提案されている。ここでは、CBC(Cipher Block Chaining)方式を例に挙げて、暗号化(復号)の方式について説明する。
暗号化の一方式であるCBC方式は、ブロック連鎖のための一つの技法であり、排他的論理和演算により、平文の現在のブロックに暗号文の前のブロックを付加して、暗号文の各ブロックを作成する方式である。図1は、CBC方式を用い暗号化を行う回路の一例を示す図である。
暗号化すべきデータは、所定の単位(例えば、16バイト)毎にブロック化される。そして、第1のブロックは、排他的論理和回路11−1に供給され、第1のブロックに続く第2のブロックは、排他的論理和回路11−2に供給され、第2のブロックに続く第3のブロックは、排他的論理和回路11−3に供給されというように、所定の段数(ここでは、N段とする)だけ設けられた排他的論理和回路11−1乃至11−Nに順次、ブロック化された平文のデータが入力される。
排他的論理和回路11−1から出力された第1のブロックは、暗号化部12−1に供給される。暗号化部12−1は、鍵Ekで供給された第1のブロックを暗号化する。このようにして、第1のブロックは暗号化される。
暗号化部12−1から出力された暗号化された第1のブロックは、排他的論理和回路11−2にも供給され、第2のブロックとの間で排他的論理和が演算される。その結果は、暗号化部12−2に供給され、同じく鍵Ekで暗号化される。
このように、CBC方式における暗号化は、1つ前で暗号化したブロックと暗号化対象の現在の平文のブロックとの排他的論理和が演算されてから、そのブロックに対して所定の暗号化鍵での暗号化が行なわれるようになっている。結果の暗号文は次のブロックとの排他的論理和の演算に使われることになる。このように前のブロックと次々に連鎖させることにより暗号文が生成される。
第2のブロック以降は、前のブロックとの排他的論理和が演算されるが、第1のブロックは、前のブロックが存在しないため、前のブロックとの排他的論理和を演算することができない。そこで、第1のブロックに対しては、初期ベクトル(IV:Initializing Vector)を与えて排他的論理和を演算するように構成される。
次に、CBC方式を用い復号を行う回路について、図2を参照して説明する。
上述したようにして暗号化されたデータは、所定の単位(例えば、16バイト)毎にブロック化されている。ブロック化されているデータの内、第1のブロックは、復号部22−1に供給され、第1のブロックに続く第2のブロックは、復号部22−2に供給され、第2のブロックに続く第3のブロックは、復号部22−3に供給されというように、所定の段数(ここでは、N段とする)だけ設けられた復号部22−1乃至22−Nに順次、暗号化されたブロック単位のデータが入力される。
各復号部22−1乃至22−Nは、入力されたデータを鍵Dkで復号する。各復号部22−1乃至22−Nから出力されたデータは、対応する排他的論理和回路21−1乃至21−Nに供給される。排他的論理和回路21−2乃至21−Nには、前の段の復号部22−1乃至22−N-1に供給されるデータも供給される。
このように、CBC方式の復号は、1つ前の暗号化されているブロックと復号対象の現在の復号されたブロックとの排他的論理和が演算されることにより、最終的な復号が行われる。
第2のブロック以降は、前のブロックとの排他的論理和が演算されるが、第1のブロックは、前のブロックが存在しないため、前のブロックとの排他的論理和を演算することができない。そこで、第1のブロックに対しては、初期ベクトルIVを与えて、排他的論理和が演算される構成とされている。
このようにして、暗号化、復号が行われている。
特許第3252706号明細書
上述したように、CBC方式で暗号化が行われる際、最初のブロックにはIVが加えられる。しかしながら、最初のブロックには、前のブロックが存在しないので、何も加えないで(IVを加えないで)後段の処理を行うようにしても良いが、そのようにすると以下のような問題点がある。
例えば、電子メールを例に挙げて考える。電子メールの書式には、宛先、送信元、件名、本文といったような一連のパターンがある。そのようなパターンがあるようなデータ(平文)を暗号化した場合、暗号化されたデータ自体もパターンがあるデータとなってしまう。第3者(攻撃者)が、そのようなパターンに注目することにより、暗号文から平文の一部を解読することが可能である。
そこで、パターンがあるような平文でも、暗号化されたデータ(暗号文)にパターンがないようにするために、最初のブロックに初期ベクトルIVを加えるようにする。初期ベクトルIVを加えて暗号化を実行することにより、平文のブロックに同じパターンがあっても暗号文には同じパターンが発生しないので、暗号解読を困難にさせることが出来る。また、単一の鍵で大量のデータを暗号化した場合に暗号鍵が予測しやすくなる、という解読行為を、初期ベクトルIVを加えて暗号化を行うよういすることで防止することができるという効果もある。
このような理由で最初のブロックに初期ベクトルIVが加えられ、その後の暗号化が行われるように構成されている場合が多い。
ところで、所定の記録媒体からデータを読み出すドライブと、そのドライブからのデータの供給を受けるホスト(例えば、パーソナルコンピュータ)の間で、相互認証してセッション鍵を生成し、そのセッション鍵でデータを暗号化して転送する場合がある。このような状況に対して上述したCBC方式を用いることが可能である。そのような場合、初期ベクトルIVを適当に更新させることで、平文のデータが特別なパターンのデータであることを特定させることを困難とし、データのすり替え、データの改竄行為を防止することができるとされている。
ホストとドライブが認証を行うような場合、例えば、そのデータは、(初期ベクトルIV+コンテンツ・データ)という形のデータが形成され、コンテンツ鍵と初期ベクトルIVで暗号鍵が導出され、その暗号鍵でコンテンツデータが暗号化される。
しかしながら、このような読み出しデータ(コンテンツ・データ)に初期ベクトルIVを付加することは、例えば 2048バイト単位のPC Drive Interface に2064バイト(IV=16バイトの場合)という特殊なセクタサイズを持ち込むことになり、標準的なフォーマットから外れてしまうこととなる。そのために、共通の ATAPI Device Driver を利用できないなど、パーソナルコンピュータにおける環境との相性がよくないといった課題があった。相性が良くないといったことを解決するためには、ハードウェア的に、ソフトウェア的にも特殊なものに変えなくてはならないなど、コスト的に割高になり、互換性を取りづらい、処理的に手間がかかるといった課題もあった。
本発明はこのような状況に鑑みてなされたものであり、できる限り既存のものを用いつつも、セキュリティを高めることを目的とする。
本発明の情報処理装置は、所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得手段と、取得手段により取得された情報から初期ベクトルを生成する生成手段と、生成手段により生成された初期ベクトルと所定の鍵を用いたデータの暗号化、または、復号のうちのどちらか一方を実行する実行手段とを備えることを特徴とする。
前記取得手段により取得される所定の情報は、LBA(Logical Block Address)であるようにすることができる。
乱数を生成する乱数生成手段をさらに備え、前記生成手段は、前記情報と乱数生成手段により生成された乱数を用いて、初期ベクトルを生成するようにすることができる。
前記生成手段は、初期ベクトルIVに対するLBAの語長の不足分をパディングした値と生成された乱数との排他的論理和を用いる方法があり、パディングの方法はLBAの連結による方法、LBAをHash関数を通す方法、などがあり、乱数の使い方は、初期ベクトルIVと同じ語長の乱数を生成して、その乱数をそのまま用いる方法や、Hash関数に通された乱数を用いるようにする方法などがある。
本発明の制御方法は、所定の記録媒体が装着される装置か、その装置と接続されデータの授受を制御する装置の、少なくとも一方を制御する制御方法であって、所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得ステップと、取得ステップの処理で取得された情報から初期ベクトルを生成する生成ステップと、生成ステップの処理で生成された初期ベクトルと所定の鍵を用いたデータの暗号化、または、復号のうちのどちらか一方を実行する実行ステップとを含むことを特徴とする。
本発明のプログラムは、所定の記録媒体が装着される装置か、その装置と接続されデータの授受を制御する装置の、少なくとも一方を制御する制御装置のプログラムであって、所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得ステップと、取得ステップの処理で取得された情報から初期ベクトルを生成する生成ステップと、生成ステップの処理で生成された初期ベクトルと所定の鍵を用いたデータの暗号化、または、復号のうちのどちらか一方を実行する実行ステップとを含むことを特徴とする。
本発明の記録媒体は、前記プログラムを記録していることを特徴とする。
本発明の情報処理装置、制御方法、およびプログラムにおいては、所定の記録媒体に対して何らかの操作を実行する際に発行されるコマンドに含まれる情報が用いられて、データの暗号化や復号に用いられる初期ベクトルが生成される。
本発明によれば、セキュリティを高めることが可能となる。
本発明によれば、ホスト側とドライブ側との間での転送路上におけるセキュリティを高めることが可能となる。
また、セキュリティを高めるためのホスト側のオペレーションシステム(OS)などに依存することなく、その為にコスト高になったり、煩わしい処理を行うことになるといった不都合を回避することができ、かつ、セキュリティを向上させることが可能となる。
以下に本発明の最良の形態を説明するが、開示される発明と実施の形態との対応関係を例示すると、次のようになる。明細書中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現し、追加される発明の存在を否定するものではない。
本発明によれば、情報処理装置が提供される。この情報処理装置(例えば、図3のドライブ装置31またはホスト32)は、所定の記録媒体へのデータの書き込みを指示するコマンド(例えば、ライトコマンド104)か、または、所定の記録媒体からのデータの読み出しを指示するコマンド(例えば、リードコマンド102)に含まれる所定の情報を取得する取得手段(例えば、図4のLBA抽出部161)と、取得手段により取得された情報から初期ベクトルを生成する生成手段(例えば、図4のIV生成部92)と、生成手段により生成された初期ベクトルと所定の鍵を用いたデータの暗号化、または、復号のうちのどちらか一方を実行する実行手段(例えば、図4の復号部91)とを備える。
この情報処理装置の取得手段が取得する所定の情報は、LBA(Logical Block Address)であるようにすることができる。
この情報処理装置は、乱数を生成する乱数生成手段(例えば、図18の乱数生成部241)をさらに備え、前記生成手段は、前記情報と乱数生成手段により生成された乱数を用いて、初期ベクトルを生成するようにすることができる。
前記生成手段は、例えば、図30のHash処理部451による処理により、Hash関数に通された乱数を用いるようにすることができる。
また、本発明によれば制御方法が提供される。この制御方法は、所定の記録媒体が装着される装置(例えば、図3のドライブ装置31)か、その装置と接続されデータの授受を制御する装置(例えば、図3のホスト32)の、少なくとも一方を制御する制御方法であって、所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得ステップ(例えば、図9のステップS42)と、取得ステップの処理で取得された情報から初期ベクトルを生成する生成ステップ(例えば、図9のステップS42)と、生成ステップの処理で生成された初期ベクトルと所定の鍵を用いたデータの暗号化、または、復号のうちのどちらか一方を実行する実行ステップ(例えば、図9のステップS45)とを含む。
さらに、本発明によればプログラムが提供される。このプログラムは、所定の記録媒体が装着される装置か、その装置と接続されデータの授受を制御する装置の、少なくとも一方を制御する制御装置のプログラムであって、所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得ステップ(例えば、図9のステップS42)と、取得ステップの処理で取得された情報から初期ベクトルを生成する生成ステップ(例えば、図9のステップS42)と、生成ステップの処理で生成された初期ベクトルと所定の鍵を用いたデータの暗号化、または、復号のうちのどちらか一方を実行する実行ステップ(例えば、図9のステップS45)とを含む。
このプログラムは、記録媒体に記録することができる。
以下に、本発明の実施の形態について図面を参照して説明する。
図3は、本発明を適用したシステムの一実施の形態の構成を示す図である。図3に示したシステムは、記録および再生を行える記録再生装置の構成を示している。また、図3に示したシステムは、図示されていないメディアが装着され、その装着されたメディアから所定のデータを読み出す、または、書き込むドライブ装置31と、読み出されたデータ、または、書き込むデータを処理(制御)するホスト32から構成されている。
メディアは、どのようなものでも良いが、例えば、CD-ROM ( Compact Disc-ROM )、CD-R(Compact Disc-Recordable)、CD-RW ( Compact Disc-ReWritable )、DVD-R ( Digial 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などのディスク状のものが考えられる。また、それらのディスク状のものに本発明を適用範囲は限定されるものではなく、他の形態(記録方式、形状など)の記録媒体でも良い。
また、ドライブ装置31とホスト32は、所定のインタフェースによりデータの授受が行えるように接続されている。所定のインタフェースとは、例えば、ATAPI(AT Attachement with Packet Interface)を用いることができる。ATAPIは、IDE(Integrated Drive Electronics)や、ATA(AT Attachement)インタフェースにCD−ROMドライブなどハードディスク以外の周辺機器を接続するためのデータ転送方式に従ったインタフェースであり、例えばSCSIから流用したコマンドをパケット化してIDEインタフェースに渡すことで周辺機器の制御が可能となる。同様のコマンドパケットはUSB ( Universal Serial Bus ) や IEEE1394 などの物理インタフェースへも適用可能である。
まず、ドライブ装置31は、認証処理部51を有し、ホスト32は、認証処理部81を有する。認証処理部51と認証処理部81により、相互認証に関わる処理が実行される。
所定のメディアからデータを読み出す再生部41は、ドライブ装置31の暗号化部61、IV(Initialization Vector)生成部62、および、メディア読み出し処理部63を含み、ホスト32の復号部91とIV生成部92を含む構成とされている。
再生部41のドライブ装置31側の構成について説明を加える。暗号化部61には、メディア読み出し処理部63による処理により、メディアから読み出されたセクタデータ71と、認証処理部51から暗号化に用いる鍵Ksが供給される。また、暗号化部61には、IV生成部62により生成されたIV(Initialization Vector:以下、初期ベクトルIVと記述する)も供給される。
暗号化部61は、供給されたセクタデータ71を鍵Ksと初期ベクトルIVを用いて暗号化し、ホスト32の復号部91に供給する。よって、ドライブ装置31からホスト32に供給されるデータは、暗号化されたものである。
IV生成部62は、暗号化部61に供給する初期ベクトルIVを、ホスト32から供給されるリードコマンド(Read Command)102に含まれる所定のデータを用いて生成する。この初期ベクトルIVの生成に関する詳細は後述する。
なお、暗号化部61は、図1に示したように、排他的論理和回路11と暗号化部12とを組み合わせることにより構成される。その説明は既にしたので、ここでは省略する。IV生成部62は、図1における排他的論理和回路11−1に供給される初期ベクトルIVを生成する。また、認証処理部51から供給される鍵Ksは、暗号化部12−1乃至12−Nの各部に供給される。
ホスト32に備えられている暗号化部93も、図1に示した構成とされている。
一方、ホスト32の復号部91は、ドライブ装置31からインタフェースを介して暗号化されたセクタデータ71の供給をうける。復号部91は、認証処理部81から供給される鍵KsとIV生成部92により生成された初期ベクトルIVを用いて復号処理を実行し、セクタデータ101(メディアから読み出されたセクタデータ71と同一のデータ)を生成する。IV生成部92は、基本的に、IV生成部62と同様の処理により初期ベクトルIVを生成する。すなわち、リードコマンド102に含まれる所定のデータを用いて初期ベクトルIVが生成される。
なお、復号部91は、図2に示したように、排他的論理和回路21と暗号化部22とを組み合わせることにより構成される。その説明は既にしたので、ここでは省略する。IV生成部92は、図2における排他的論理和回路21−1に供給される初期ベクトルIVを生成する。また、認証処理部51から供給される鍵Ksは、復号部22−1乃至22−Nの各部に供給される。
ドライブ装置31に備えられている復号部64も、図2に示した構成とされている。
次に記録部42の構成について説明を加える。所定のメディアにデータを記録する記録部42は、ドライブ装置31の復号部64、IV生成部65、およびメディア書き込み処理部66を含み、ホスト32の暗号化部93とIV生成部94を含む構成とされている。
ドライブ装置31に装着されたメディアに記録されるセクタデータ103は、記録部42の暗号化部93に供給される。暗号化部93には、認証処理部81から鍵Ksと、IV生成部94から初期ベクトルIVも供給される。暗号化部93は、供給されたセクタデータ103を初期ベクトルIVと鍵を用いて暗号化し、ドライブ装置31の復号部64に供給する。
ホスト32の暗号化部93に供給される初期ベクトルIVは、IV生成部94により生成される。IV生成部94は、ライトコマンド(Write Command)104に含まれるデータを用いて初期ベクトルIVを生成する。
ライトコマンド104は、ドライブ装置31のメディア書き込み処理部66にも供給される。メディア書き込み処理部66は、ライトコマンド104が供給された場合、装着されているメディアに対するデータの書き込みを制御する。また、ライトコマンド104は、ドライブ装置31のIV生成部65にも供給される。
IV生成部65は、IV生成部94と同様に、供給されたライトコマンド104に含まれる所定のデータを用いて初期ベクトルIVを生成し、復号部64に供給する。復号部64には、ホスト32側から暗号化されたセクタデータ103、認証処理部51から鍵Ks、および、IV生成部65から初期ベクトルIVが供給される。
復号部64は、鍵Ksと初期ベクトルIVを用いて、供給された暗号化されたセクタデータ103を復号し、セクタデータ72(セクタデータ103と同一のデータ)を生成する。このようにして復号されたセクタデータ72は、メディア書き込み処理部66の制御のもと、図示されていないメディアに書き込まれる。
図3に示した各部は、ハードウェアで構成しても良いし、ソフトウェアで構成しても良い。
以下に、IV生成部においてどのように初期ベクトルIVを生成するかについて複数の実施の形態を説明する。まず、第1の実施の形態について説明する。図4は、再生部41の詳細な構成を示す図である。図3と同様の部分には、同様の符号を付し、適宜説明を省略する。他の図面に関しても、図3と同様の部分には、同様の符号を付し、適宜説明を省略する。
図4に示したドライブ装置31には、メディアから読み出されるPSN(Physical Sector Number:物理セクタ番号)が、PSN/LBA変換部121に供給される構成とされている。LBAは、Logical Block Addressの略であり、論理的なアドレスを示し、例えば、リードコマンド102に含まれ、メディア上の読み出すべきデータの物理媒体に依存せずにホストとドライブ間で共通的に扱うことを可能とする論理的なアドレスを示す。リードコマンド102には、LBAが含まれるが、このLBAは、メディア上の論理的なアドレスを示し、実際の物理的なアドレスは示していないため、物理媒体から読み出した物理的なアドレスを示すPSNから共通に扱える論理的なアドレスへ変換するといった処理を、PSN/LBA変換部121は行う。
ドライブ装置31は、バッファリング・転送処理部122も追加された構成とされている。このバッファリング・転送処理部122は、暗号化部61により暗号化されたセクタデータ71を、一旦記憶(バッファリング)し、ホスト32側に転送するための処理を実行する。このバッファリング・転送処理部122を設けることにより、一般に先読み動作などと称されるRead Ahead動作を実現することができる。
このような先読み動作を行えるように構成しておくことで、ホスト32側から読み出しの要求を出した際(リードコマンド102を発行した際)、ドライブ装置31側で、時間のかかるメディアへのアクセス時間を、事実上無視できるように扱うことが可能となり、連続読み出し速度を向上させることが可能となる。
ドライブ装置31は、リードコマンド処理部123も設けられている。このリードコマンド処理部123は、ホスト32側から供給されるリードコマンド102を処理するために設けられており、処理結果は、バッファリング・転送処理部122とメディア読み出し処理部63に供給される構成とされている。
ホスト32には、LBA抽出部161が追加された構成とされている。LBA抽出部161は、リードコマンド102に含まれるLBAを抽出し、IV生成部92に供給する。図4に示した再生部41においては、初期ベクトルIVが、リードコマンド102に含まれるデータから生成される場合の構成を示している。
ここで、セクタデータ71やPSN141が読み出されるメディアについて説明する。図5は、メディアがディスク状のものである場合のデータ構造について説明するための図である。図5に示すように、ディスク180は内周からリードインエリア181、ユーザデータエリア182、およびリードアウトエリア183という記録領域を有している。
読出し専用メディアとして、例えば DVD-ROM disc の物理規格はECMA規格 “ ECMA-267 : 120mm DVD-Read Only Disk “ に定義されており、PSNは2KBの各セクタデータのヘッダに記録される。
書き込み可能メディアとして、例えば DVD+RW disc の物理規格はECMA規格 “ ECMA-337 : Data Interchange on 120mm and 80mm Optical Disk using +RW format Capacity 4,7 and 1,6 GB per Side “ に定義されており、未記録ディスクにおけるPSNは ADIP (Address in Pre-grove) へ予め記録され、2KBの各セクタデータを書き込む際にADIPへ記録されているものと同じPSNをヘッダへも記録することで DVD-ROM disc とのデータ互換性をとることを可能とする仕組みとなっている。
これらの DVD 規格でのリードインエリア181は PSN=02FFFFhまでであり、ユーザデータエリア182は PSN=030000h から開始され、ここが LBA=000000h と定義される。この変換を行う PSN/LBA 変換部121の変換方法に関し、INCITS T10 WORKING DRAFT “MultiMedia Command Set-4 (MMC-4)” において各種光ディスクメディアにおける方法が記述されている。
ユーザデータエリア182には、オーディオデータ、静止画データ、ビデオデータトラックやゲームデータなどのコンテンツ自体が記録される。ユーザが自由に読み出し書き込みできるセクタデータ71は、このユーザデータエリア182内のセクタデータである。リードアウトエリア183は、ユーザデータエリア182の終端であることを示す領域である。
ディスク180のリードインエリア181、ユーザデータエリア182、リードアウトエリア183は、図6に示すように、セクタヘッダ191とセクタデータ192から構成されている。ここでは、セクタヘッダ191は、18バイトのデータであり、セクタデータ192は、2048バイトのデータとする。このような、セクタヘッダ191とセクタデータ192の組み合わせによるデータが複数、各データエリアに記録されている。
ドライブ装置31側には、このようなディスク180から読み出されるデータが供給されるわけだが、ホスト32は、図7に示すようなコマンドをドライブ装置31へ転送してドライブ装置31を制御する。コマンドの詳細はINCITS T10 WORKING DRAFT “MultiMedia Command Set-4 (MMC-4)” に記述がある。図7に示したコマンドは、リードコマンド102またはライトコマンド104の形式を示すものである。図7に示したコマンド内のデータのうち、以下の説明に必要な部分のデータについて説明を加える。
“Operation Code”には、リードコマンド102であるか、ライトコマンド104であるかを示すデータが書き込まれる。よって、この部分に書き込まれているデータを参照することで、ホスト32からコマンドを受け取ったドライブ装置31は、リードコマンド102であるか、ライトコマンド104であるかを判別することが可能となっている。また、“Operation Code”は、1バイトのデータである
“Logical Block Address”には、リードコマンド102である場合には、読み出すべきアドレスの開始LBAが書き込まれ、ライトコマンド104である場合には、書き込むべきアドレスの開始LBAが書き込まれている。また、“Logical Block Address”は、4バイトのデータである。
“Transfer Length”には、リードコマンド102である場合には、読み出しセクタ数を指示するデータが書き込まれ、ライトコマンド104である場合には、書き込みセクタ数を指示するデータが書き込まれる。また、“Transfer Length”は、4バイトのデータである。
本実施の形態においては、このようなデータを含むリードコマンド102またはライトコマンド104から初期ベクトルIVが生成される。
LBAとセクタデータの関係について図8を参照して説明する。LBAは、上述したように、リードコマンド102やライトコマンド104に含まれているが、例えば、リードコマンド102に含まれるLBAが示すのは読み出し開始位置である“開始LBA”である。ドライブ装置31は最初のセクタデータとしては、“開始LBA+0”のデータを、ディスク180から読み出しホスト32へ転送することになる。ここで、リードコマンド102に含まれる Transfer Length が“3”の場合、引き続いて“開始LBA+1”のセクタデータをディスク180から読み出しホスト32へ転送し、続いて“開始LBA+2”のセクタデータがディスク180から読み出されホスト32へ転送して、リードコマンド102は完了することになる。
メディア(ディスク180)から読み出されるデータは、上述したセクタデータ192(図6)であるので、そのバイト数は、2048バイトである。このように、1つのLBAが指定されると、1つのセクタデータの固まり(2048バイト単位のデータ)を指定することができるように構成されている。
次に、図4に示した再生部41において行われる処理の概要について、まず、図9のタイミングチャートを参照して説明する。ホスト32は、ステップS11において、ドライブ装置31は、ステップS41において、それぞれ相互認証(Authentication)を行う。この相互認証が正常に行われた場合のみ、次のステップに処理が進められる。また、この相互認証の結果、ドライブ装置31の認証処理部51とホスト32の認証処理部81との、それぞれにおいて鍵Ksが生成される(共有される)ことになる。
ホスト32は、ステップS12において、リードコマンド102を発行する。図7に示したデータ構成のコマンドが発行されるわけだが、ここでは、“LBA”=#1であり、“Transfer Length”=3であるコマンドが発行されたとする。もちろんこの場合、“Operation Code”には、リードコマンド102であることを示すデータが記述されている。
このようなデータを含むリードコマンド102は、LBA抽出部161に供給される。LBA抽出部161は、この場合、“LBA”=#1というデータを抽出する。抽出された“LBA”=#1というデータは、IV生成部92に供給される。IV生成部92は、供給された“LBA”=#1というデータ(特に#1というデータ)を用いて、初期ベクトルIVを生成する。ここでは、“LBA”=#1というデータが用いられて初期ベクトルIVが生成するという説明にとどまり、詳細は後述するとして説明を続ける。
ステップS12における処理で発行されたリードコマンド102は、ステップS42において、ドライブ装置31のリードコマンド処理部123にも供給される。リードコマンド処理部123は供給されたコマンドの“Operation Code”を参照し、リードコマンド102であることを認識し、“Logical Block Address”を参照し、この場合、“LBA”=#1ということを認識し、“Transfer Length”を参照して、この場合、“Transfer Length”=3ということを認識する。
そして、リードコマンド処理部123は、転送開始LBAを示す“LBA”=#1と“Transfer Length”=3というデータをバッファリング・転送処理部122に供給する。バッファリング・転送処理部122は、このようなデータの供給を受けることにより、LBA”=#1からの転送要求があり、転送するセクタ数は、3単位であると設定する。
また、リードコマンド処理部123は、“LBA”=#1というデータを、メディア読み出し処理部63に供給する。メディア読み出し処理部63は、メディアからデータを読み出す処理を制御するわけだが、ここに明示されないLBA/PSN変換によりリードコマンド102で指定されたLBAに対応するPSNを取得する。
即ち、リードコマンド102には、メディア(例えば、ディスク180(図5))から読み出すデータが記録された論理セクタ(群)のLBA(以下、適宜、読み出しLBAという)が含まれ、そのリードコマンド102に含まれる読み出しLBAがPSNに変換される。
このような変換が行われるのは、ドライブ装置31で行われるのは、光ディスク等の記録領域を所定のサイズに分けた物理的な物理セクタが、論理的な論理セクタに割り当てられているからである。そして、外部の装置(この場合、ホスト32)からは、データを読み出すべき(または記録すべき)論理セクタ(LBA)が指定され、ドライブ装置31では、その論理セクタに割り当てられている物理セクタ(PSN)からデータが読み出される(記録される)ようになされているからである。
なお、ディスク180上のユーザに開放された記録領域であるユーザデータエリア182の物理セクタに対して、例えば、ある物理セクタ番号の物理セクタを基準として、シーケンシャルな論理セクタ番号の論理セクタが、順次割り当てられる。変換方法の事例はINCITS T10 WORKING DRAFT “MultiMedia Command Set-4 (MMC-4)” に記述がある。
LBAがPSNに変換されると、ステップS43の処理として、その変換されたPSNが指し示すメディア上の位置が検索される。この検索の結果、ピックアップがメディア上の、読み出すべき位置に移動されるなどの処理が実行され、メディアからデータが読み出される。
ステップS92において、メディアから、データが読み出されるわけだが、この場合、“LBA”=#1に対応するデータである“Physical Sector Data #1”が読み出される。ステップS44において、メディアから読み出されたデータ(セクタデータ71)は、暗号化部61に供給される、と同時にそのセクタデータに対応するPSN141がPSN/LBA変換部121へ供給される。
PSN/LBA変換部121から出力されるLBAは、IV生成部62へ供給され、IV生成部62は初期ベクトルIVを出力する。同時にLBAはバッファリング・転送処理部122へも入力され、バッファリング・転送処理部122はLBAに対応するセクタデータが暗号化部61から受け取る用意をする。
暗号化部61には、認証処理部51から鍵が供給され、IV生成部62から初期ベクトルIVも供給されている。暗号化部61は、これらの鍵と初期ベクトルIVを用いて、セクタデータ71を暗号化する。暗号化されたセクタデータ71(この場合、Encrypted Sector Data #1)は、ステップS45の処理として、バッファリング・転送処理部122を経由してホスト32の復号部91に供給される。
復号部91は、供給されたデータを、認証処理部81から供給される鍵KsとIV生成部92から供給される初期ベクトルIVを用いて復号し、セクタデータ101を生成する。このようにして生成されたセクタデータ101は、図示されていないアプリケーションソフトウェアやディスプレイやスピーカに提供される。
このような処理がメディア、ドライブ装置31、および、ホスト32間で繰り返される。メディア側では、ステップS93乃至S103の各処理で、順次、Physical Sector Data #2乃至#12が読み出される。すなわち、メディア側からは、ドライブ装置31の検索制御に応じて順次、連続的にセクタデータが読み出され、ドライブ装置31に供給される。ドライブ装置31は、ステップS46乃至S50の各ステップの処理において、順次、供給されたセクタデータを受信し、暗号化し、ホスト32の要求に応じてホスト32に供給する。
ステップS15において、ホスト32がステップS12で要求する最後のセクタデータ“Physical Sector Data #3”がドライブ装置31からホスト32へ供給されると、ドライブ装置31は、ステップS51において、ホスト32に対して“Command Complete Status”を送信する。これは、この場合、“Transfer Length”が“3”に設定されおり、ステップS15の処理が行われる時点で、既に“Physical Sector Data”として“#1”乃至“#3”の3つのセクタデータが送信済みの状態であるためである。このような状況のときには、既に要求されたデータは送信(転送)したということを示すステータスを、ドライブ装置31はホスト32に対して送信する。
なお、ドライブ装置31は、ホスト32に対して“Command Complete Status”を送信する一方で、メディアから読み出されているセクタデータを受信し続けているわけだが、その受信し続けられているセクタデータは、順次、暗号化部61による暗号化が施され、バッファリング・転送処理部122にバッファリングされる。
ステップS16の処理として、“Command Complete Status”を受信したホスト32は、ステップ17において、新たなリードコマンド102を発行する。ステップS17において発行されるリードコマンド102は、“LBA”=#4であり、“Transfer Length”=3である。このようなリードコマンド102が発行されると、ステップS50において、バッファリング・転送処理部122にバッファリングされていた“Physical Sector Data #4”がステップS55においてホスト32に供給される。
このように、ホスト32においてリードコマンド102が発行されると、ドライブ装置31においてメディアから読み出されたデータが順次、ホスト32側に供給されるという処理が繰り返される。ドライブ装置31側のステップS50以降の各処理と、ホスト32側のステップS18以降の各処理は、既に説明したステップS44乃至S49、S51における各処理と、ステップS13乃至S16における各処理と、基本的に同様であるので、その説明は省略する。
図10を参照し、再度、ドライブ装置31側の処理およびデータの流れについて説明する。まず、PSN/LBA変換部121により、4バイトで構成されるLBAが、IV生成部62に供給される。IV生成部62は、例えばHash関数を用いて16バイトへデータ拡張し、初期ベクトルIVを生成する。生成された初期ベクトルIVは、暗号化部61に供給される。
暗号化部61には、認証処理部51から鍵Ksも供給される。このように、暗号化部61には、初期ベクトルIVと鍵Ksが供給される。さらに、暗号化部61には、暗号すべきデータとして、2048バイトのSector Dataも供給される。暗号化部61により暗号化された2048バイトのSector Dataは、Encrypted Sector Dataとして、バッファリング・転送処理部122にバッファリングされる。
暗号化部61には、2048バイトのデータが供給され、暗号化され、そして、2048バイトの暗号化されたデータが出力されるとしたが、例えば、暗号化部61が行う暗号化が、CBC(Cipher Block Chaining)方式を用いたものである場合、実際には16バイトに分割されたブロック毎に暗号化が行われ、出力される。
図11は、CBC方式に基づき暗号化部61が暗号化を行う場合の、暗号化部61の内部構成例を示すとともに、データの流れを示す図である。内部構成は、上述したように、図1に示したものと同様に、排他的論理和回路と暗号化部の組み合わせにより構成されている。よって、図1と同じ符号を付し、説明を続ける。
図11に示すように、2048バイトのSector Dataは、16バイト(Byte)毎のデータに分割される。16バイト毎に分割されるので、結果的に、128個のブロックに分割されることになる。図1を参照して既に説明したように、各ブロックは、対応する排他的論理和回路11−1乃至11−128に供給される。そして、各排他的論理和回路11−1乃至11−128から出力されたデータは、対応する暗号化部12−1乃至12−128に供給される。
暗号化部12−1乃至12−128により暗号化されたデータは、Encrypted Sector Dataとして、バッファリング・転送処理部122に出力される。暗号化部12−1乃至12−127から出力されたデータは、後段の排他的論理和回路11−2乃至11−128にも供給される。しかしながら、排他的論理和回路11−1には、前段の暗号化部が存在していないため、前段から供給されるデータはない。そのために、IV生成部62により生成された初期ベクトルIVが、排他的論理和回路11−1に供給される構成とされている。
供給される初期ベクトルIVは、リードコマンド102に含まれるLBAで指定される各セクタのLBAが用いられるため、リードコマンド102が発行される毎に、各セクタに対応する異なる初期ベクトルIVが生成されることになる。例えば、図9を再度参照するに、ホスト31側からステップS12において発行されるリードコマンド102のLBAは“#1”であるが、ステップS17において発行されるリードコマンド102のLBAは“#4”である。よって、“#1”という値のLBAと“#4”という値のLBAが用いられて生成される初期ベクトルIVは、当然異なるものとなる。
また、初期ベクトルIVは、LBAがそのまま流用されるのではなく、ハッシュ関数などを用いてデータ拡張し乱数との排他的論理和を用いて加工されて生成することにより、同一の初期ベクトルIVが生成される確率を低くすることができる。(その説明の詳細は後述する。)仮に同一のSector Dataを暗号化したとしても、初期ベクトルIVが異なるために(初期ベクトルIVが同一のものとなる可能性を低くすることができるために)、暗号化されたものは異なるデータとすることができる。もって、暗号化される前のSector Dataが、暗号化されたデータから推測されてしまう(解読されてしまう)ようなことを防ぐことが可能となる。
また、リードコマンド102で示されるパラメータから初期ベクトルIVを生成することで、例えば、2048バイト単位で処理を行うPC Drive Interface や、ATAPI Device Driverといった既存のインタフェースなどを利用できなくなるといったような不都合が発生するようなことを防ぐことが可能となる。すなわち、本発明を適用して初期ベクトルIVを生成するようにすれば、既存のインタフェース、例えば、ATAPIなどのインタフェースの規格を変更することなく、上記したような特徴を有する初期ベクトルIVを生成することが可能である。
次に、図12を参照し、再度、ホスト32側の処理およびデータの流れについて説明する。まず、LBA抽出部161より、リードコマンド102から4バイトで構成されるLBAが抽出され、IV生成部92に供給される。IV生成部92は、例えばHash関数を用いて16バイトへデータ拡張し、初期ベクトルIVを生成する。
IV生成部92の初期ベクトルIVの生成の仕方は、ドライブ装置31のIV生成部62と、基本的に同様である。すなわち、例えば、IV生成部62がハッシュ関数を用いて初期ベクトルIVを生成するならば、IV生成部92も、ハッシュ関数を用いて初期ベクトルIVを生成する。IV生成部92により生成された初期ベクトルIVは、復号部91に供給される。
復号部91には、認証処理部81から鍵Ksも供給される。この鍵Ksは、ドライブ装置31の認証処理部51が、暗号化部61に供給する鍵Ksと同様のものである。認証処理の過程で生成された鍵を、鍵Ksとして用いることができる。
このように、復号部91には、初期ベクトルIVと鍵Ksが供給される。さらに、復号部91には、復号すべきデータとして、2048バイトのEncrypted Sector Dataも供給される。復号部91により復号された2048バイトのEncrypted Sector Dataは、Sector Dataとして、図示されていないアプリケーションソフトウェアやディスプレイなどに供給される。
復号部91には、2048バイトのデータが供給され、復号され、そして、2048バイトの復号されたデータが出力されるとしたが、暗号化部61と同様に、例えば、復号部91が行う暗号化が、CBC(Cipher Block Chaining)方式を用いたものである場合、実際には16バイトに分割されたブロック毎に復号が行われ、出力される。
図13は、CBC方式に基づき復号部91が復号を行う場合の、復号部91の内部構成例を示すとともに、データの流れを示す図である。内部構成は、上述したように、図2に示したものと同様に、排他的論理和回路と復号部の組み合わせにより構成されている。よって、図2と同じ符号を付し、説明を続ける。
図13に示すように、2048バイトのEncrypted Sector Dataは、16バイト(Byte)毎のデータに分割される。16バイト毎に分割されるので、結果的に、128個のブロックに分割されることになる。図2を参照して既に説明したように、各ブロックは、対応する復号部22−1乃至22−128に供給される。そして、各復号部22−1乃至22−128から出力されたデータは、対応する排他的論理和回路21−1乃至21−128に供給される。
排他的論理和回路21−1乃至21−128により排他的論理和が演算されたデータは、Sector Dataとして、図示されていないディスプレイなどに出力される。復号部22−1乃至22−127に供給されるデータ(Encrypted Sector Data)は、後段の排他的論理和回路21−2乃至21−128にも供給される。しかしながら、排他的論理和回路21−1には、前段の復号部が存在していないため、前段から供給されるデータはない。そのために、IV生成部92により生成された初期ベクトルIVが、排他的論理和回路21−1に供給される構成とされている。
この供給される初期ベクトルIVは、ドライブ装置31の暗号化部61で暗号化を行う際に用いられた初期ベクトルIVと同一のものである。すなわち、IV生成部62とIV生成部92は、同一のリードコマンド102から抽出されたLBAを用い、同一の方式により初期ベクトルIVを生成するため、暗号化部61と復号部91には、同一の初期ベクトルIVが供給されることになる。
次に、メディアにデータを書き込む場合について説明する。図14は、記録部42の詳細な構成を示す図である。図3と同様の部分には、同様の符号を付し、適宜説明を省略する。
ホスト32には、LBA抽出部211が追加された構成とされている。LBA抽出部211は、ライトコマンド104に含まれるLBAを抽出し、IV生成部94に供給する。図14に示した記録部42においては、ライトコマンド104に含まれるLBAから初期ベクトルIVが生成される場合の構成を示している。
LBAは論理的なアドレスを示し、メディア上のデータを書き込むアドレスを示す。ライトコマンド104には、LBAが含まれるが、このLBAは、メディア上の論理的なアドレスを示し、実際の物理的なアドレスは示していないため、物理的なアドレスを示すPSNに変換するといった処理が、ドライブ装置31側では必要となり、その処理は図示されないが、ドライブ装置31の、メディア書き込み処理部66に備える構成とされる。
ドライブ装置31は、バッファリング・転送処理部202も追加された構成とされている。このバッファリング・転送処理部202は、ホスト32側から供給されたデータを書き込むセクタを示すLBAがわかるように一旦記憶(バッファリング)し、メディア書き込み処理部66によるメディア書き込み位置の検索処理、および復号部64が処理をするタイミングで、順次データを供給する。ドライブ装置31は、ライトコマンド処理部203も設けられている。このライトコマンド処理部203は、ホスト32側から供給されるライトコマンド104を処理するために設けられており、処理結果としての書き込み開始セクタを示すLBAと書き込みセクタ数を示す Transfer Length は、バッファリング・転送処理部202とメディア書き込み処理部63に供給される構成とされている。
図14に示した記録部42の構成のうち、まず、ホスト31において行われる処理について、図15を参照して説明する。まず、LBA抽出部211によりライトコマンド104から、4バイトで構成されるLBAが抽出され、IV生成部94に供給される。IV生成部94は、例えば、Hash関数を用いて16バイトへデータ拡張し、初期ベクトルIVを生成する。生成された初期ベクトルIVは、暗号化部93に供給される。
暗号化部93には、認証処理部81から鍵Ksも供給される。このように、暗号化部93には、初期ベクトルIVと鍵Ksが供給される。さらに、暗号化部93には、暗号すべきデータとして、2048バイトのSector Dataも供給される。この供給されるSector Dataは、ホスト32側に備えられている記録装置などから読み出されたものである。暗号化部93により暗号化された2048バイトのSector Dataは、Encrypted Sector Dataとして、ドライブ装置31側に提供される。
このような処理を行う暗号化部93は、既に説明をした暗号化部61と同様の構成とすることができる。すなわち、その構成は、図11に示したような構成とすることができる。
次に、図16を参照し、ホスト32側で暗号化されたデータに関わる処理のについて説明する。まず、ライトコマンド処理部203により、ライトコマンド104から4バイトで構成されるLBAが、IV生成部65に供給される。IV生成部65は、例えばHash関数を用いて16バイトへデータ拡張し、初期ベクトルIVを生成する。
IV生成部65の初期ベクトルIVの生成の仕方は、ホスト32のIV生成部94と、基本的に同様である。すなわち、例えば、IV生成部64がハッシュ関数を用いて初期ベクトルIVを生成するならば、IV生成部65も、ハッシュ関数を用いて初期ベクトルIVを生成する。IV生成部65により生成された初期ベクトルIVは、復号部64に供給される。
復号部64には、認証処理部51から鍵Ksも供給される。この鍵Ksは、ホスト32の認証処理部81が、暗号化部93に供給する鍵Ksと同様のものである。認証処理の過程で生成された鍵を、鍵Ksとして用いることができる。
このように、復号部64には、初期ベクトルIVと鍵Ksが供給される。さらに、復号部64には、復号すべきデータとして、2048バイトのEncrypted Sector Dataも供給される。復号部64により復号された2048バイトのEncrypted Sector Dataは、Sector Dataとして、図示されていないメディアに書き込まれる。
このような処理を行う復号部64は、既に説明をした復号部91と同様の構成とすることができる。すなわち、その構成は、図13に示したような構成とすることができる。
次に、初期ベクトルIVの生成について説明する。上述した実施の形態においては、リードコマンド102やライトコマンド104に含まれるLBAのデータが用いられ、また、ハッシュ関数などが用いられて、初期ベクトルIVが生成されるとして説明したが、ここで、さらに具体的に説明を加える。図3を再度参照するに、初期ベクトルIVを生成する部分は、IV生成部62、IV生成部65、IV生成部92、および、IV生成部94の4箇所ある。
これらの4箇所のIV生成部における初期ベクトルIVの生成の仕方は、いずれも同様であるので、ここでは代表として、IV生成部62を例に挙げて説明する。
図17は、IV生成部62の内部構成例を示す図である。図17に示したIV生成部62は、SHA−1処理部221と切り出し部222から構成されている。SHA−1処理部221について説明するが、SHAは、Secure Hash Algorithmの略である。
SHAは、米国NIST(National Institute of Standard and Technology)で開発され、数度にわたる改訂が行われている。そして、1995年にFIPS180-1として改訂版が出されたが、これは俗に、SHA−1と称されている。SHAに関する詳細は、例えば、ウィリアム・スターリングス著の「暗号とネットワークセキュリティ」といった書籍に記載されている。
SHA−1は、その名の通り、ハッシュ関数を用いた処理を行うアルゴリズムであり、任意のバイト数(ただし、最大長が(2の64乗)ビット以下という条件がある)のメッセージを入力とし、160ビットのメッセージダイジェストを出力する。
このように、SHA−1は、入力として任意のバイト数のメッセージを用いることができるので、例えば、任意の論理フォーマット情報やATAPI Command Packetに含まれる任意の数値を、入力として用いることができる。そこで、図17に示したように、SHA−1に基づく処理を実行するSHA−1処理部221の入力として、4バイトのデータであるLBAを用いる。
上述したように、SHA−1による処理で出力されるメッセージダイジェストは、160ビット(20バイト)である。すなわちこの場合、SHA−1処理部221から出力されるのは、160ビットのデータである。しかしながら、初期ベクトルIVとして必要なのは16バイトのデータである。そこで、SHA−1処理部221から出力された160ビットのデータから、128ビット(16バイト)のデータを切り出す切り出し部222を、SHA−1処理部221の後段に設ける。
切り出し部222から出力されるデータが、この場合、初期ベクトルIVとされる。このように、SHA−1処理部221と切り出し部222から構成されるIV生成部62により、初期ベクトルIVが生成される。
このようにして初期ベクトルIVを生成するのは一実施の形態であり、限定を示すものではない。そこで、他の実施の形態について、図18以降の図を順次参照しながら、さらに説明を続ける。
図18以降の図を参照して説明する実施の形態においては、初期ベクトルIVを生成するのに、LBAだけでなく乱数も用いて生成する。まず、乱数を用いて初期ベクトルIVを生成する場合における特徴について説明を加える。
既に説明した実施の形態においては、リードコマンド102やライトコマンド104に含まれる4バイトのLBAを用いて初期ベクトルIVを生成した。しかしながら、初期ベクトルIVは、16バイトのデータであるので、4バイトのLBAをハッシュ関数を利用することにより16バイトへとデータ拡張する方法を説明した。
ところで、LBAは、セクタ毎に配置されるものである。よって、メディアに対するデータの読み書きが実施されるセクタ間隔で、IV生成部によりハッシュ関数に基づく演算が行われることになる。ドライブ装置31とホスト32にとって、ハッシュ関数に基づく演算を比較的高頻度で実行しなくてはならないというのは、負荷が増すことになり、何らかの不都合が発生することが想定される。例えば、IV生成部による初期ベクトルIVの生成のためにメディアに対するデータの書き込みや、データの読み出しにかかる時間が増すといった不都合が発生することが考えられる。データ拡張をする方法としてLBAが4バイトであるという特徴をいかし、LBAを4回繰り返して16バイトへデータ拡張することも可能であるが、IVが予測可能であることはセキュリティ強度を維持する上で好ましいこととはいえない。
以下に説明する、乱数を用いた初期ベクトルIVの生成においては、LBAのようにセクタごとに処理が必要とされるものに対しては、排他的論理和(EX-OR)を演算するなどの、比較的時間のかからない処理にとどめ、システム全体の処理速度が低下するようなことがないようにし、かつ生成されるIVの予測を困難としてセキュリティ強度を向上させることを目的とする。
図18は、初期ベクトルIVを生成する際、LBAだけでなく乱数も用いて生成する場合の再生部41の構成例を示す図である。また、図19は、初期ベクトルIVを生成する際、乱数も用いて生成する場合の記録部42の構成例を示す図である。図18に示した再生部41のうち、図4に示した再生部41と同様の部分には同様の符号を付し、適宜その説明を省略する。また、図19に示した記録部42のうち、図14に示した記録部42と同様の部分には同様の符号を付し、適宜その説明を省略する。以下の説明においても、再生部41または記録部42の構成を示す図面があるが、それらの図面においても同様であるとする。
図18と図19にそれぞれ示した再生部41と記録部42は、ドライブ装置31側で乱数を生成する場合の構成を示している。
図18に示した再生部41においては、乱数も用いて初期ベクトルIVを生成するために、その乱数を生成する乱数生成部241がドライブ装置31に備えられている。乱数生成部241において生成された乱数は、ドライブ装置31のIV生成部242と、ホスト32のIV生成部251に供給される。IV生成部242とIV生成部251は、共に、リードコマンド102から読み出されるLBAと、乱数生成部241により生成される乱数により、初期ベクトルIVを生成する。
図19に示した記録部42においては、乱数も用いて初期ベクトルIVを生成するために、その乱数を生成する乱数生成部271がドライブ装置31に備えられている。乱数生成部271において生成された乱数は、ドライブ装置31のIV生成部272と、ホスト32のIV生成部281に供給される。IV生成部272とIV生成部281は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部271により生成される乱数により、初期ベクトルIVを生成する。
図18や図19に示したように、乱数を生成する乱数生成部241(271)を、ドライブ装置31側に設けるようにしても良いが、ホスト32側に設けるようにしても良い。図20、図21は、ホスト32側に乱数を生成する乱数生成部が設けた場合の再生部41および記録部42の構成例を示す図である。
図20に示した再生部41においては、乱数を生成する乱数生成部301がホスト32に備えられている。乱数生成部301において生成された乱数は、ホスト32のIV生成部302と、ドライブ装置31のIV生成部311に供給される。IV生成部302とIV生成部311は、共に、リードコマンド102から読み出されるLBAと、乱数生成部301により生成される乱数により、初期ベクトルIVを生成する。
図21に示した記録部42においては、乱数を生成する乱数生成部331がホスト32に備えられている。乱数生成部331において生成された乱数は、ホスト32のIV生成部332と、ドライブ装置31のIV生成部341に供給される。IV生成部332とIV生成部341は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部331により生成される乱数により、初期ベクトルIVを生成する。
図18乃至図21に示した再生部41の構成例または記録部42の構成例は、先読み動作(Read Ahead)や読出し書き込みにおいてデータを一時的に蓄積するバッファリング動作については考慮していない。そこで、図22に示すように、再生部41を、先読み動作に対応した構成にしても良い。図22に示した再生部41は、図4に示した再生部41を参照して既に説明した場合と同様に、先読み動作を実行するためのバッファリング・転送処理部122が、ドライブ装置31に設けられた構成とされている。
また、図22に示した再生部41の構成においては、乱数を生成する乱数生成部361がドライブ装置31に備えられている。乱数生成部361において生成された乱数は、ドライブ装置31のIV生成部362と、ホスト32のIV生成部371に供給される。IV生成部362とIV生成部371は、共に、リードコマンド102から読み出されるLBAと、乱数生成部361により生成される乱数により、初期ベクトルIVを生成する。
図22に示した再生部41の動作について、図23のタイミングチャートを参照して説明する。ホスト32においてはステップS201の処理として、ドライブ装置31においてはステップS231の処理として、相互認証の処理が実行される。相互認証が完了することにより、セッション鍵が生成される。そしてステップS202において、ホスト32からドライブ装置31に対して“REPORT KEY”コマンドが送信される。
“REPORT KEY”コマンドは、相互認証の過程において鍵情報や乱数の供給を要求するときなどに発行されるコマンドである。図22に示した再生部41においては、ドライブ装置31側に、乱数を生成する乱数生成部361が備えられているため、ホスト32は、初期ベクトルIVを生成するのに必要な乱数をドライブ装置31から提供を受けなくてはならない。そこでホスト32は、ステップS202の処理として、“REPORT KEY”コマンドを、ドライブ装置31に対して発行する。
発行された“REPORT KEY”コマンドをステップS232の処理として受信したドライブ装置31は、ステップS233の処理として乱数R(Random Number R)を発行し、ホスト32に供給する。乱数Rは、乱数生成部361により発行される。
この発行された乱数Rを用いて、IV生成部362とIV生成部371は、初期ベクトルIVの生成を即座に開始しても良いが、ドライブ装置31とホスト32の間で乱数Rが交換される過程で乱数Rが改竄され、その結果として正常なデータの読み出し動作や書き込み動作の障害となるようなことを回避するために、ドライブ装置31とホスト32の間で、乱数Rの転送が正しく行われたか否か(改竄などの不正な処理が行われていないか否か)が確認された後に、初期ベクトルIVの生成が開始されるようにする。
ホスト32は、ステップS203において、乱数Rを受信すると、その受信した乱数RのMAC(Message Authentication Code)値を、セッション鍵を用いて計算する。MACについて説明するに、MACは、メッセージを圧縮したようなもので、ハッシュ関数によって生成され、メッセージに付帯される。受信者は送信者と同じプロセスでこれを生成し、メッセージに付帯させることによって、通信途中の改竄などをチェックすることができる。共有鍵を持った送信者のMAC値と受信者が受信したときに生成したMAC値が一致しない場合は、メッセージ盗聴や改竄の恐れがあることを示す。逆に一致する場合、改竄の恐れがないとほぼ断定できる仕組みとなっている。
ここでは、このようなMAC値を用いられた検証が実行されるようにするが、他の検証方法を用いて、乱数Rが改竄されていないか否かのチェックが検証されるようにしても良い。
ホスト32は、ステップS204の処理として、計算したMAC値(MAC[Ks,R])を、“SEND KEY”コマンドでドライブ装置31に対して送信する。ドライブ装置31は、ステップS234の処理として、MAC値(MAC[Ks,R])を受信すると、そのMAC値からセッション鍵でMAC値を計算し、自己が先に送信した乱数Rと一致したか否かを確認する。
この確認において、一致していないと判断された場合には、ドライブ装置31とホスト32間における乱数Rの共有は失敗したと判断され、それ以降の処理は行われない。すなわち、ドライブ装置31は、ホスト32側から、リードコマンド102やライトコマンド104を受信したとしても、その要求には応じない。
一方、ドライブ装置31は、自己が先に送信した乱数Rと一致したと判断した場合、ドライブ装置31とホスト32間における乱数Rの共有は成功したと判断し、それ以降の処理を引き続き実行する。まず、ステップS235においてドライブ装置31は、その後の処理を実行する(ホスト32側からの要求を受け付ける)という意味を含む“Good Status”を、ホスト32に対して送信する。
ホスト32は、このような“Good Status”を、ステップS205において受信すると、ステップS206において、リードコマンド102を発行する。このステップS206以下の処理は、図9のステップS12以降の処理と同様なので、その説明は省略する。ただし、ドライブ装置31とホスト32間で授受されるセクタデータに対して行われる暗号化または復号の処理で、IV生成部362(IV生成部371)が生成する初期ベクトルIVが用いられるが、その初期ベクトルIVは、LBAと乱数Rが用いられて生成される。
このIV生成部362(IV生成部371)における初期ベクトルIVの生成に関しては、図29以降の図面を参照して後述する。
図23を参照した説明では、ドライブ装置31側でMAC値を検証する場合を説明した。図24を参照して、ホスト32側でMAC値を検証する場合を説明する。図24を参照し、既に説明した図23の処理と異なる処理についてのみ説明を加える。ドライブ装置31は、ステップS332において、ホスト32から“REPORT KEY”コマンドを受信すると、乱数Rを生成する。そして、その生成した乱数RのMAC値を、セッション鍵を用いて計算する。さらに、ドライブ装置31は、その生成したMAC値(MAC[Ks,R])と乱数Rの結合データ(R||MAC[Ks,R])を生成し、その値をステップS333の処理として、ホスト32に対して送信する。
ホスト32は、ステップS303において、ドライブ装置31からの結合データ(R|| MAC[Ks,R])を受信すると、その受信した結合データから、乱数Rを抽出するとともに、MAC値も抽出する。そして、ホスト32は、その抽出した乱数Rと自己が管理しているセッション鍵を用いてMAC値を計算する。ホスト32は、受信したデータから抽出したMAC値と、生成したMAC値とを比較することにより、MAC値を検証する。
MAC値の検証の結果、通信途中での改竄などの不正な処理は発生していないと判断されると、抽出された乱数Rを用いた初期ベクトルIVの生成が開始される。そしてステップS304以降の処理、すなわち、所定のメディアからのデータの読み出しに関わる処理が実行される。
なお、ドライブ装置31がステップS333でホスト32へ転送するデータは、セッションキーKsで乱数R を暗号化したデータ E[Ks, R] を転送する方法もある。ホスト32はステップS303で暗号化データ E[Ks, R] を受け取り、これをホスト32のもつセッションキーKsで復号して乱数 R を取得しドライブ装置31と同一の乱数を共有する。この方法は乱数 R の値そのものを秘匿することも可能とし、初期ベクトルIVの予測をより困難とする。
図22乃至図24を参照して、先読み動作を考慮した構成で、かつ乱数を生成する乱数生成部361がドライブ装置31側に備えられている再生部41の構成を説明し、そして、その再生部41における処理について説明した。次に、図25乃至図27を参照して、先読み動作を考慮した構成で、かつ乱数を生成する乱数生成部401がホスト32側に備えられている再生部41の構成と、その再生部41における処理について説明する。
図25に示した再生部41は、図4に示した再生部41を参照して既に説明した場合と同様に、先読み動作を実行するためのバッファリング・転送処理部122が、ドライブ装置31に設けられた構成とされている。
また、図25に示した再生部41は、乱数を生成する乱数生成部401をホスト32側に備えている。乱数生成部401において生成された乱数は、ドライブ装置31のIV生成部411と、ホスト32のIV生成部402に供給される。IV生成部411とIV生成部402は、共に、リードコマンド102から読み出されるLBAと、乱数生成部361により生成される乱数により、初期ベクトルIVを生成する。
図25に示した再生部41の動作について、図26のタイミングチャートを参照して説明する。ホスト32においてはステップS401の処理として、ドライブ装置31においてはステップS431の処理として、相互認証の処理が実行される。相互認証が完了することにより、セッション鍵が生成される。そしてステップS402において、ホスト32からドライブ装置31に対して結合データ(R|| MAC[Ks,R])が生成され、送信される。
ドライブ装置31は、ステップS432において、ホスト32からの結合データ(R|| MAC[Ks,R])を受信すると、その受信した結合データから、乱数Rを抽出するとともに、MAC値も抽出する。そして、ドライブ装置31は、その抽出した乱数Rと自己が管理しているセッション鍵を用いてMAC値を計算する。ドライブ装置31は、受信したデータから抽出したMAC値と、生成したMAC値とを比較することにより、MAC値を検証する。
MAC値の検証の結果、通信途中の改竄などの不正な処理は発生していない判断されると、抽出された乱数Rを用いた初期ベクトルIVの生成が開始される。そしてステップS433において、“Good Status”がホスト32に送信される。“Good Status”が送信されることにより、ステップS404以降の処理、すなわち、所定のメディアからのデータの読み出しに関わる処理が実行される。
なお、ホスト32がステップS402でドライブ装置31へ転送するデータは、セッションキーKs で乱数R を暗号化したデータ E[Ks, R] を転送する方法もある。ドライブ装置31はステップS432で暗号化データ E[Ks, R] を受け取り、これをドライブ装置31のもつセッションキーKsで復号して乱数 R を取得しホスト32と同一の乱数を共有する。この方法は乱数 R の値そのものを秘匿することも可能とし、初期ベクトルIVの予測をより困難とする。また、途中の経路で E[Ks, R] が改竄をされると、ドライブ装置31とホスト32の両者で共通の乱数Rを得ることができず、両者で同一の初期ベクトルIVを生成することができず、結果的に転送データの適切な暗号化・復号ができず、動作に支障をきたすことから、改竄は何ら有益なものとはならない。
図26を参照した説明では、ドライブ装置31側でMAC値を検証する場合、およびセッションキーKsによってホスト32側で暗号化した乱数をドライブ装置31へ転送する方法を説明した。図27を参照して、ホスト32側でMAC値を検証する場合を説明する。図27を参照して、既に説明した図26の処理と異なる処理についてのみ説明を加える。ホスト32は、ステップS502において、乱数Rを乱数生成部401で生成し、“SEND KEY”とともにドライブ装置31に送信する。
また、ホスト32は、ステップS503において、“REPORT KEY”コマンドも、ドライブ装置31に対して送信する。このステップS503において送信される“REPORT KEY”コマンドは、送信した乱数Rに対するMAC値を計算し、返答してくるように指示するために送信される。
ドライブ装置31は、ステップS532において乱数Rを受信し、ステップS533において“REPORT KEY”コマンドを受信する。ドライブ装置31は、受信した乱数RのMAC値を、セッション鍵を用いて計算する。さらに、ドライブ装置31は、その生成したMAC値(MAC[Ks,R])を、ステップS534の処理として、ホスト32に対して送信する。
ホスト32は、ステップS504において、ドライブ装置31からのMAC値を受信すると、その受信したMAC値を検証する。その検証の結果、通信途中において乱数Rなどに対する改竄などはないと判断されると、抽出された乱数Rを用いた初期ベクトルIVの生成が開始される。そしてステップS505以降の処理、すなわち、所定のメディアからのデータの読み出しに関わる処理が実行される。
次に、セッションキーKsによってドライブ装置31側で暗号化した乱数をホスト32へ転送する方法について説明する。図28を参照して、既に説明した図27の処理と異なる処理についてのみ説明を加える。ホスト32は、ステップS602において、乱数Rを乱数生成部401で生成し、これをセッションキーKsで暗号化した E[Ks, R] を“SEND KEY”とともにドライブ装置31に送信する。
ドライブ装置31は、ステップS632において E[Ks, R] 受信し、これをセッションキーKsで復号して乱数Rを得る。ここで、途中の経路で E[Ks, R] が改竄をされると、ドライブ装置31とホスト32の両者で共通の乱数Rを得ることができず、両者で同一の初期ベクトルIVを生成することができず、結果的に転送データの適切な暗号化・復号ができず、動作に支障をきたすことから、改竄は何ら有益なものとはならない。
このように、乱数Rも用いて初期ベクトルIVを生成する場合、乱数Rが正しく転送されたか否かを判断する処理が実行されるようにすることで、実際にドライブ装置31とホスト32間でデータの授受が行われる前の段階で、転送路の安全性などを確認することができる。また、安全性が確認された後でなければ、メディアから読み出された、または、メディアに書き込まれるデータは、ドライブ装置31とホスト32間で授受されないため、データが不正に搾取されるようなことを防ぐことが可能となる。
上述した説明では、単にLBAと乱数Rが用いられて初期ベクトルIVが生成されるとしか説明していないが、ここで、初期ベクトルIVの生成に関し詳細な説明を加える。なお、図18に示したIV生成部242、IV生成部251、図19に示したIV生成部272、IV生成部281、図20に示したIV生成部302、IV生成部311、図21に示したIV生成部332、IV生成部341、図22に示したIV生成部362、IV生成部371、および、図25に示したIV生成部402、IV生成部411は、いずれもLBAと乱数Rを用いて初期ベクトルIVを生成するものであり、その生成の仕方は、基本的に同様であるので、以下の説明においては、代表としてIV生成部242(図18)を例に挙げて説明する。
図29は、IV生成部242の構成例を示す図である。図29に示したIV生成部242は、Padding(パディング)処理部431と排他的論理和回路432から構成されている。リードコマンド102から抽出される、4バイトのLBAは、IV生成部242のPadding処理部431に供給される。最終的に生成される初期ベクトルIVは、16バイトであるので、4バイトのLBAは、Padding処理部431により16バイトのデータにデータ拡張される。
Padding処理部431は、4バイトのLBAを16バイトのデータにデータ拡張するわけだが、そのデータ拡張の仕方には、例えば、上位バイトまたは下位バイトを00hなどの定数で埋める方法がある。または、4バイトのLBAを分解し、その分解したビットを予め設定されている方法で配置し、残りの部分を00hなどの定数で埋めるようにしても良い。さらに4バイトのLBAを4回繰り返すことで16バイトを構成することもでき、こうして作成された16バイトを分解し、その分解したビットを予め設定されている方法で再配置しても良い。どのような方法で、4バイトのLBAを16バイトのデータに変換しても良いが、Padding処理部431から出力されるデータは、16バイトのデータに変換されている。
Padding処理部431から出力されたデータは、排他的論理和回路432に供給される。排他的論理和回路432には、乱数Rも供給される。この乱数Rは、乱数生成部241(図18)により生成されたものである。上述したように乱数Rは16バイトのデータであり、ドライブ装置31とホスト32間で交換される(一方から他方に供給される)ものである。
排他的論理和回路432により、LBAから生成された16バイトのデータと16バイトの乱数Rの排他的論理和が演算され、その演算結果が、16バイトの初期ベクトルIVとされ、暗号化部61や復号部91に供給される。
図30は、IV生成部242の他の構成例を示す図である。図30に示したIV生成部242は、Hash処理部451、Padding処理部452、および、排他的論理和回路453から構成されている。Padding処理部453は、図29に示したPadding処理部431と同様に、4バイトのLBAが入力され、その4バイトのLBAを16バイトのデータにデータ拡張し、排他的論理和回路453に供給する。
図30に示したIV生成部242は、供給される乱数Rに対して、Hash処理部451による処理を施し、排他的論理和回路453に供給する構成とされている。すなわちHash処理部451は、入力された16バイトの乱数Rに対し、SHA−1などの所定のHash関数による演算を施し、その結果得られる16バイトのデータCを排他的論理和回路453に供給する。
排他的論理和回路453の処理は、基本的に、図29に示した排他的論理和回路432と同様であり、入力される16ビットのデータ同士の排他的論理和を演算する。その演算結果が、初期ベクトルIVとされる。
乱数Rは、ドライブ装置31とホスト32間で交換されるため、セッションキーKsで暗号化せずに平文のまま交換する方法を採用した場合はその交換途中で、第3者が観測することが可能である。また、LBAもリードコマンド102に含まれており、そのリードコマンド102は、ドライブ装置31とホスト32間で交換されるため、その交換途中で、第3者が観測することが可能である。観測可能であるために、乱数RやLBAは、第3者に搾取される可能性がある。
しかしながら、図30に示したIV生成部242は、乱数RをHash関数に通し、データCに変換するように構成されている。このデータCは、予測不可能な値である。よって、そのようなデータCを用いて生成される初期ベクトルIVも、予測不可能なものとすることができる。すなわち、仮に乱数RとLBAが第3者に搾取されたとしても、その第3者が、そのようなことから初期ベクトルIVを推測することはできない。結果として、第3者は、ドライブ装置31とホスト32間で授受される暗号化されているデータを搾取しても、そのデータを復号することができないことになる。
もって、ドライブ装置31とホスト32間で授受されるデータが不正に利用されるようなことを防ぐことができ、所定のインタフェースなどのバス上での暗号化の安全性を向上させることが可能となる。
図31は、IV生成部242のさらに他の構成例を示す図である。図31に示したIV生成部242は、Hash処理部471、Padding処理部472、および、排他的論理和回路473から構成されている。この構成は、基本的に、図30に示した構成と同様であるが、Hash処理部471に、認証処理部51(図18)からセッションキーKs(Session Key)が供給される構成とされているのが図30に示したIV生成部242とは異なる。
Hash処理部471は、供給された16バイトの乱数Rに、セッションキーKsを鍵とするHash関数の処理を施し、16バイトのデータCを生成し、排他的論理和回路473に供給する。
このような構成とすることで、図30に示したIV生成部242が有する上述したような効果を得られるだけでなく、次のような効果もある。すなわち、仮に同じ乱数Rが、ドライブ装置31とホスト32間で複数回(連続して)交換されたとしても、ドライブ装置31とホスト32間における相互認証の結果生成されるセッションキーKsは、相互認証毎に異なるものとすることができるため、結果として、同一の乱数Rからでも異なる初期ベクトルIVを生成することが可能となる。よって、よりバスの暗号化の安全性を向上させることが可能となる。
このように、本発明においては、初期ベクトルIVを、リードコマンド102やライトコマンド104に含まれるLBAから生成するようにしたので、既存のインタフェース、例えば、ATAPIなどのインタフェースの規格を変更することなく、データの暗号化や復号に用いられる初期ベクトルIVを生成することが可能となる。
また、その生成される初期ベクトルIVは、Hash関数などによる処理が施されることにより生成されるため、同一の初期ベクトルIVが生成される可能性を低くすることが可能となり、そのような初期ベクトルIVを用いて暗号化されたデータから、容易に平文が推測されるようなことを防ぐことが可能となる。さらに、Hash関数の鍵をセッションキーとすることにより、同一の初期ベクトルIVが生成される可能性を低くすることができる。
ここで、ドライブ装置31とホスト32間で行われる相互認証の結果、生成されるセッションキーKsと初期ベクトルIVの計算のためのSEED(所定の数値、例えば、乱数の生成などのアルゴリズムで使われる初期値)について、図32と図33のフローチャートを参照して説明を加える。
ステップS701において、ドライブ装置31にディスク(ここでは、ドライブ装置31に装着されるメディアはディスク状のものであるとして説明する)が、挿入されたか否かが判断される。ステップS701において、ドライブ装置31にディスクが挿入されたと判断された場合、ステップS701に処理が進められ、ホスト32(ここでは、PC(パーソナルコンピュータ)として説明する)において所定のアプリケーションが起動されたか否かが判断される。
所定のアプリケーションとは、ドライブ装置31に挿入されたディスクからデータを読み出す、または、書き込むために必要とされるアプリケーションである。
ステップS702において、ホスト32において所定のアプリケーションが起動されたと判断された場合、ステップS703に処理が進められる。ステップS703において、ドライブ装置31とホスト32との間で相互認証処理が実行され、セッションキーKsが、ドライブ装置31とホスト32で、それぞれ生成(共用)される。ステップS704において、セッションキーKsの生成が完了したか否かが判断される。セッションキーKsの生成が完了されるまで、ステップS703とステップS704の処理が繰り返される。
そして、ステップS704において、セッションキーKsの生成が完了したと判断されると、ステップS705に処理が進められ、乱数Rの交換が、ドライブ装置31とホスト32間で行われる。その乱数Rの交換が、完了したか否かが、ステップS706において判断される。ステップS706において、ドライブ装置31とホスト32の間で、乱数Rの交換が完了したと判断された場合、ステップS707に処理が進められる。
ステップS707において、初期ベクトルIVの計算のために必要なSEED Cが計算される。その計算が終了されると乱数Rは消去される。ステップS707の処理が終了すると、ステップS708(図33)において、ホスト32側で起動されていた所定のアプリケーション(PCアプリケーション)が終了されたか否かが判断される。ステップS708において、PCアプリケーションは、終了されていないと判断された場合、ステップS709に処理が進められ、ドライブ装置31に挿入されていたディスクは排出されたか否かが判断される。
ステップS709において、ディスクは排出されていないと判断されると、ステップS708に処理が戻され、それ以降の処理が繰り返される。一方、ステップS709において、ディスクが排出されたと判断された場合、ステップS710に進み、ホスト32で生成されたセッションキーKsが消去される。そして、ステップS711において、ホスト32で生成したSEED Cも消去される。
さらに、ステップS712において、ドライブ装置31で生成されたセッションキーKsが削除され、ステップS713において、ドライブ装置31で生成されたSEED Cも削除される。
このように、ディスクが排出された場合、ディスクからのデータの読み出しや、ディスクに対するデータの書き込みは実行できなくなるので、そのような処理を実行するために、ドライブ装置31とホスト32で、それぞれ生成されたセッションキーKsとSEED Cは消去される。このようなデータが消去されると、ステップS701に処理が戻され、それ以降の処理が繰り返される。
一方、ステップS708において、ホスト32側で起動されていたPCアプリケーションが終了されたと判断された場合、ステップS714に処理が進められ、ホスト32で生成されたセッションキーKsが消去される。そして、ステップS715において、ホスト32で生成したSEED Cも消去される。
ステップS716において、ホスト32側でPCアプリケーションが起動されたか否かが判断される。この状態では、まだ、ドライブ装置31にディスクが挿入されている状態であるので、PCアプリケーションが起動されれば、ディスクからのデータの読み出しや、ディスクに対するデータの書き込みが実行できる状態になるので、ステップS716において、PCアプリケーションが起動されたか否か(結果として、ディスクに対する処理が実行できる状態にされたか否か)が判断される。
ステップS716において、PCアプリケーションが起動されたと判断された場合、ステップS703(図32)に処理が戻され、それ以降の処理が繰り返される。一方、ステップS716において、PCアプリケーションは起動されていないと判断された場合、ステップS717に処理が進められ、ドライブ装置31に挿入されているディスクが排出されたか否かが判断される。
ステップS717において、ドライブ装置31に挿入されているディスクが排出されたと判断されるまで、ステップS716とステップS717の処理が繰り返され、ドライブ装置31に挿入されているディスクが排出されたと判断されると、ステップS712に処理が進められる。ステップS712以降の処理については、既に説明したので、ここではその説明を省略する。
このように、セッションキーKsやSEED Cは、必要に応じ生成され、必要がなくなった時点で、即座に消去されるように構成されている。このようにすることで、セッションキーKsが盗用されたり、SEED Cが盗用されるといった不都合が発生する可能性をできる限り低くする。セッションキーKsやSEED Cは、上述した初期ベクトルIVの生成にも関わるデータであるが、セッションキーKsやSEED Cが盗用される可能性を低くすることで、初期ベクトルIVが推測される、盗用される可能性も低くすることが可能となる。
上述した再生部41と記録部42の他の構成について、以下に説明するが、既に説明した構成と同一の部分には同一の符号を付し、その説明を省略する。
図34は、記録部42の他の構成例を示す図である。図34に示した構成においては、乱数を生成する乱数生成部431がドライブ装置31側に備えられた構成とされている。乱数生成部431において生成された乱数は、ドライブ装置31のIV生成部432と、ホスト32のIV生成部441に供給される。IV生成部432とIV生成部441は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部431により生成される乱数により、初期ベクトルIVを生成する。
図35は、記録部42の他の構成例を示す図である。図35に示した構成においては、乱数を生成する乱数生成部461がホスト32側に備えられた構成とされている。乱数生成部461において生成された乱数は、ドライブ装置31のIV生成部471と、ホスト32のIV生成部462に供給される。IV生成部462とIV生成部471は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部461により生成される乱数により、初期ベクトルIVを生成する。
図36は、再生部41の他の構成例を示す図である。図36に示した構成においては、乱数を生成する乱数生成部501がドライブ装置31側に備えられ、同じく乱数を生成する乱数生成部511がホスト32側に備えられた構成とされている。乱数生成部501と乱数生成部511においてそれぞれ生成された乱数は、ドライブ装置31のIV生成部502と、ホスト32のIV生成部512に供給される。IV生成部502とIV生成部512は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部501,511により生成される乱数により、初期ベクトルIVを生成する。
図37は、記録部42の他の構成例を示す図である。図37に示した構成においては、乱数を生成する乱数生成部531がドライブ装置31側に備えられ、同じく乱数を生成する乱数生成部541がホスト32側に備えられた構成とされている。乱数生成部531と乱数生成部541においてそれぞれ生成された乱数は、ドライブ装置31のIV生成部532と、ホスト32のIV生成部542に供給される。IV生成部532とIV生成部542は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部531,531により生成される乱数により、初期ベクトルIVを生成する。
図38は、再生部41の他の構成例を示す図である。図38に示した構成においては、乱数を生成する乱数生成部561がドライブ装置31側に備えられ、同じく乱数を生成する乱数生成部571がホスト32側に備えられた構成とされている。乱数生成部561と乱数生成部571においてそれぞれ生成された乱数は、ドライブ装置31のIV生成部562と、ホスト32のIV生成部572に供給される。IV生成部562とIV生成部572は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部561,571により生成される乱数により、初期ベクトルIVを生成する。
図39は、記録部42の他の構成例を示す図である。図39に示した構成においては、乱数を生成する乱数生成部601がドライブ装置31側に備えられ、同じく乱数を生成する乱数生成部611がホスト32側に備えられた構成とされている。乱数生成部601と乱数生成部611においてそれぞれ生成された乱数は、ドライブ装置31のIV生成部602と、ホスト32のIV生成部612に供給される。IV生成部602とIV生成部612は、共に、ライトコマンド104から読み出されるLBAと、乱数生成部601,611により生成される乱数により、初期ベクトルIVを生成する。
図40のフローチャートを参照し、図38に示した再生部41の動作について説明するが、既に説明した部分と同一の処理については説明を省略する。ステップS833において、乱数生成部561において生成された乱数R1が用いられたMAC値(MAC[Ks,R1])が算出され、ホスト32に送信される
このステップS833における処理とし、MAC値を算出するのではなく、乱数生成部561で生成された乱数R1が、セッションキーKsで暗号化された E[Ks, R1] が生成され、ホスト32に送信されるようにしても良い。
ステップS803において、ドライブ装置31から送信されてきた (MAC[Ks,R1]) または E[Ks, R1] を受信したホスト32は、ステップS804において、乱数生成部571において生成した乱数R2を用いて、MAC値(MAC[Ks,R2])を算出し、ドライブ装置31に、“SEND KEY”とともに送信する。
このステップS804における処理とし、MAC値を算出するのではなく、乱数生成部571で生成された乱数R2が、セッションキーKsで暗号化された E[Ks, R2] が生成され、ドライブ装置31に“SEND KEY”とともに送信されるようにしても良い。
このように、図38に示した再生部42においては、乱数生成部を、ドライブ装置31側とホスト32側で、それぞれ有しているため、それぞれの乱数生成部561,571で生成された乱数R1,R2という2つの乱数が用いられて処理が行われる。このように2つの乱数を用いることで、よりセキュリティを高めることが可能となる。
IV生成部562とIV生成部572は、リードコマンド102から抽出されるLBAと乱数を用いて初期ベクトルIVを生成するわけだが、乱数生成部561で生成され乱数R1を用いるが、または、乱数生成部571で生成される乱数R2を用いるかが問題となる。
そこで、ここでは、乱数R1と乱数R2の排他的論理和を演算し、その結果算出された値を乱数Rとし、その乱数Rを初期ベクトルIVの生成に用いられるようにする。すなわち、IV生成部562とIV生成部572は、供給された乱数R1と乱数R2を排他的論理和を算出してから、初期ベクトルIVの生成を開始する。
乱数R1と乱数R2の組として同一の組が生成される可能性は低く、その結果、同一の乱数Rが生成される可能性も低い。よって、そのような乱数Rを用いて生成される初期ベクトルIVも、同一のものが生成されるという可能性を低くすることができる。もって、よりセキュリティを向上させることが可能となる。
このように、本発明を適用することにより、ドライブ装置31とホスト32との間で行われるデータの授受に関し、セキュリティを向上させることが可能となる。
なお、上述した実施の形態においては、再生部41と記録部42をそれぞれ別な構成として図示および説明したが、再生部41内と記録部42内において同一の処理を実行する、例えば、IV生成部などは、再生部41と記録部42で共用される構成としても、もちろん良い。
なお、上述した実施の形態においては、暗号化および復号の方式として、CBC方式を例に挙げて説明したが、本発明は、CBC方式にのみ適用できることを示すものではない。例えば、CFB(Cipher Feed Back)方式、OFB(Output Feed Block)方式などに対しても本発明を適用することはできる。
上述した一連の処理は、それぞれの機能を有するハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
記録媒体は、その記録媒体を扱うパーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROMやハードディスクなどで構成される。
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
11 排他的論理和回路, 12 暗号化部, 21 排他的論理和回路, 22 復号部, 31 ドライブ装置, 32 ホスト, 51 認証処理部, 41 再生部, 42 記録部, 61 暗号化部, 62 IV生成部, 63 メディア読み出し処理部, 64 復号部, 65 IV生成部, 66 メディア書き込み処理部, 91 復号部, 92 IV生成部, 93 暗号化部, 94 IV生成部, 121 PSN/LBA変換部, 122 バッファリング・転送処理部, 123 リードコマンド処理部, 161 LBA抽出部, 241 乱数生成部
Claims (7)
- 所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得手段と、
前記取得手段により取得された前記情報から初期ベクトルを生成する生成手段と、
前記生成手段により生成された前記初期ベクトルと所定の鍵を用いた前記データの暗号化、または、復号のうちのどちらか一方を実行する実行手段と
を備えることを特徴とする情報処理装置。 - 前記取得手段により取得される前記所定の情報は、LBA(Logical Block Address)である
ことを特徴とする請求項1に記載の情報処理装置。 - 乱数を生成する乱数生成手段を
さらに備え、
前記生成手段は、前記情報と前記乱数生成手段により生成された乱数を用いて、前記初期ベクトルを生成する
ことを特徴とする請求項1に記載の情報処理装置。 - 前記生成手段は、Hash関数に通された乱数を用いる
ことを特徴とする請求項3に記載の情報処理装置。 - 所定の記録媒体が装着される装置か、その装置と接続されデータの授受を制御する装置の、少なくとも一方を制御する制御方法において、
所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得ステップと、
前記取得ステップの処理で取得された前記情報から初期ベクトルを生成する生成ステップと、
前記生成ステップの処理で生成された前記初期ベクトルと所定の鍵を用いた前記データの暗号化、または、復号のうちのどちらか一方を実行する実行ステップと
を含むことを特徴とする制御方法。 - 所定の記録媒体が装着される装置か、その装置と接続されデータの授受を制御する装置の、少なくとも一方を制御する制御装置のプログラムであって、
所定の記録媒体へのデータの書き込みを指示するコマンドか、または、所定の記録媒体からのデータの読み出しを指示するコマンドに含まれる所定の情報を取得する取得ステップと、
前記取得ステップの処理で取得された前記情報から初期ベクトルを生成する生成ステップと、
前記生成ステップの処理で生成された前記初期ベクトルと所定の鍵を用いた前記データの暗号化、または、復号のうちのどちらか一方を実行する実行ステップと
を含むことを特徴とするプログラム。 - 請求項6に記載のプログラムを記録している
ことを特徴とする記録媒体。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003374168A JP2005140823A (ja) | 2003-11-04 | 2003-11-04 | 情報処理装置、制御方法、プログラム、並びに記録媒体 |
US10/979,708 US7492894B2 (en) | 2003-11-04 | 2004-11-02 | Information-processing apparatus, control method, program and recording medium |
KR1020040089146A KR20050043657A (ko) | 2003-11-04 | 2004-11-04 | 정보 처리 장치, 제어 방법, 프로그램, 및 기록 매체 |
CNB2004101037851A CN100550724C (zh) | 2003-11-04 | 2004-11-04 | 信息处理装置、控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003374168A JP2005140823A (ja) | 2003-11-04 | 2003-11-04 | 情報処理装置、制御方法、プログラム、並びに記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005140823A true JP2005140823A (ja) | 2005-06-02 |
Family
ID=34544190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003374168A Pending JP2005140823A (ja) | 2003-11-04 | 2003-11-04 | 情報処理装置、制御方法、プログラム、並びに記録媒体 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7492894B2 (ja) |
JP (1) | JP2005140823A (ja) |
KR (1) | KR20050043657A (ja) |
CN (1) | CN100550724C (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008205989A (ja) * | 2007-02-22 | 2008-09-04 | Hitachi Ltd | コンテンツデータ管理システム及び装置 |
JP2012226711A (ja) * | 2011-04-22 | 2012-11-15 | Sony Corp | 情報処理装置および情報処理方法 |
WO2016103952A1 (ja) * | 2014-12-26 | 2016-06-30 | 株式会社Dnpハイパーテック | 暗号化装置 |
JP2016189626A (ja) * | 2011-08-05 | 2016-11-04 | アップル インコーポレイテッド | ワイヤレスデータ保護のためのシステム及び方法 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2522862A1 (en) | 2003-05-23 | 2005-03-24 | Washington University | Intelligent data storage and processing using fpga devices |
JP2005140823A (ja) * | 2003-11-04 | 2005-06-02 | Sony Corp | 情報処理装置、制御方法、プログラム、並びに記録媒体 |
US7567981B2 (en) * | 2004-01-08 | 2009-07-28 | Uvarta, Inc. | Storage medium |
JP4549303B2 (ja) * | 2005-02-07 | 2010-09-22 | 株式会社ソニー・コンピュータエンタテインメント | パイプラインを用いてメッセージ認証コードを提供する方法および装置 |
EP1864425A4 (en) * | 2005-03-10 | 2011-03-16 | Korea Electronics Telecomm | ENCRYPTING AND DECOMPOSITION DEVICE IN A WIRELESS PORTABLE INTERNET SYSTEM AND METHOD THEREFOR |
US7624428B2 (en) * | 2005-06-30 | 2009-11-24 | Intel Corporation | Apparatus and method for platform-independent identity manageability |
US20070005966A1 (en) * | 2005-06-30 | 2007-01-04 | Selim Aissi | Derivation of a shared keystream from a shared secret |
US20070061893A1 (en) * | 2005-09-09 | 2007-03-15 | Black Jeffery D | Methods and devices for copy protection of software |
KR100703811B1 (ko) * | 2006-02-28 | 2007-04-09 | 삼성전자주식회사 | 휴대용 저장장치 및 휴대용 저장장치의 데이터 관리 방법 |
US8379841B2 (en) | 2006-03-23 | 2013-02-19 | Exegy Incorporated | Method and system for high throughput blockwise independent encryption/decryption |
US8098693B2 (en) * | 2006-05-03 | 2012-01-17 | Himax Technologies Limited | Method of early starting the operation of a descrambler |
US8826023B1 (en) * | 2006-06-30 | 2014-09-02 | Symantec Operating Corporation | System and method for securing access to hash-based storage systems |
US8879727B2 (en) | 2007-08-31 | 2014-11-04 | Ip Reservoir, Llc | Method and apparatus for hardware-accelerated encryption/decryption |
US8189769B2 (en) * | 2007-07-31 | 2012-05-29 | Apple Inc. | Systems and methods for encrypting data |
JP2009276916A (ja) | 2008-05-13 | 2009-11-26 | Sony Corp | 通信装置、通信方法、リーダライタ及び通信システム |
JP5532560B2 (ja) * | 2008-08-25 | 2014-06-25 | ソニー株式会社 | データ変換装置、およびデータ変換方法、並びにプログラム |
KR101601790B1 (ko) | 2009-09-22 | 2016-03-21 | 삼성전자주식회사 | 암호키 선택장치를 구비하는 스토리지 시스템 및 암호 키 선택방법 |
WO2011157144A2 (zh) * | 2011-05-31 | 2011-12-22 | 华为技术有限公司 | 数据读写方法、装置和存储系统 |
US20130103685A1 (en) * | 2011-09-01 | 2013-04-25 | Protegrity Corporation | Multiple Table Tokenization |
US9172529B2 (en) * | 2011-09-16 | 2015-10-27 | Certicom Corp. | Hybrid encryption schemes |
US10263782B2 (en) * | 2011-10-12 | 2019-04-16 | Goldkey Corporation | Soft-token authentication system |
IL224890A0 (en) * | 2013-02-24 | 2013-07-31 | Uri Kaluzhny | Digital signature system |
US9407437B1 (en) * | 2014-03-25 | 2016-08-02 | Amazon Technologies, Inc. | Secure initialization vector generation |
US9800401B2 (en) * | 2014-04-23 | 2017-10-24 | International Business Machines Corporation | Initialization vectors generation from encryption/decryption |
CN105988942B (zh) * | 2015-02-13 | 2018-12-04 | 上海复旦微电子集团股份有限公司 | 地址总线中地址数据转换方法及装置 |
US10219152B2 (en) * | 2015-09-14 | 2019-02-26 | Futurewei Technologies, Inc. | Security architecture and solution for handling internet of things devices in a fifth generation system |
JP6728799B2 (ja) * | 2016-03-11 | 2020-07-22 | 日本電気株式会社 | 暗号通信システム、暗号通信方法、セキュリティチップ、通信装置およびその制御方法と制御プログラム |
US11347895B2 (en) * | 2019-12-03 | 2022-05-31 | Aptiv Technologies Limited | Method and system of authenticated encryption and decryption |
US11743039B2 (en) * | 2021-04-20 | 2023-08-29 | Coinbase Il Rd Ltd. | System and method for data encryption using key derivation |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5255384A (en) * | 1985-02-22 | 1993-10-19 | Intergraph Corporation | Memory address translation system having modifiable and non-modifiable translation mechanisms |
US5243695A (en) * | 1990-05-24 | 1993-09-07 | Rockwell International Corporation | Method and apparatus for generating anti-aliased lines on a video display |
US5204901A (en) * | 1991-08-01 | 1993-04-20 | General Electric Company | Public key cryptographic mechanism |
US5375070A (en) * | 1993-03-01 | 1994-12-20 | International Business Machines Corporation | Information collection architecture and method for a data communications network |
US5619709A (en) * | 1993-09-20 | 1997-04-08 | Hnc, Inc. | System and method of context vector generation and retrieval |
US5604805A (en) * | 1994-02-28 | 1997-02-18 | Brands; Stefanus A. | Privacy-protected transfer of electronic information |
ATE295644T1 (de) * | 1994-07-29 | 2005-05-15 | Canon Kk | Verfahren zur gemeinsamen nutzung einer geheimen information, zur erzeugung einer digitalen unterschrift und zur ausführung einer beglaubigung in einem kommunikationssystem mit mehreren informationsverarbeitungseinrichtungen und kommunikationssystem zur anwendung dieses verfahrens |
US5673319A (en) | 1995-02-06 | 1997-09-30 | International Business Machines Corporation | Block cipher mode of operation for secure, length-preserving encryption |
US5982933A (en) * | 1996-01-12 | 1999-11-09 | Canon Kabushiki Kaisha | Information processing method, information processing apparatus, and storage medium |
US6320966B1 (en) * | 1996-10-23 | 2001-11-20 | Stefanus A. Brands | Cryptographic methods for demonstrating satisfiable formulas from propositional logic |
JPH10303884A (ja) | 1997-04-24 | 1998-11-13 | Fuji Xerox Co Ltd | 暗号化方法 |
JP4123455B2 (ja) | 1998-07-31 | 2008-07-23 | 日本ビクター株式会社 | 情報処理方法及び情報処理装置 |
US6779095B2 (en) * | 2000-06-19 | 2004-08-17 | Storage Technology Corporation | Apparatus and method for instant copy of data using pointers to new and original data in a data location |
JP2002132141A (ja) | 2000-10-20 | 2002-05-09 | Sony Corp | データ記憶装置、およびデータ記録方法、データ再生方法、並びにプログラム提供媒体 |
JP2002202719A (ja) | 2000-11-06 | 2002-07-19 | Sony Corp | 暗号化装置及び方法、復号装置及び方法、並びに記憶媒体 |
US6931543B1 (en) | 2000-11-28 | 2005-08-16 | Xilinx, Inc. | Programmable logic device with decryption algorithm and decryption key |
JP4089171B2 (ja) | 2001-04-24 | 2008-05-28 | 株式会社日立製作所 | 計算機システム |
US7277548B2 (en) * | 2002-10-23 | 2007-10-02 | Ndosa Technologies, Inc. | Cryptographic method and computer program product for use in wireless local area networks |
JP2004201038A (ja) | 2002-12-18 | 2004-07-15 | Internatl Business Mach Corp <Ibm> | データ記憶装置、これを搭載した情報処理装置及びそのデータ処理方法並びにプログラム |
US7055039B2 (en) | 2003-04-14 | 2006-05-30 | Sony Corporation | Protection of digital content using block cipher crytography |
JP2004325677A (ja) | 2003-04-23 | 2004-11-18 | Sony Corp | 暗号処理装置および暗号処理方法、並びにコンピュータ・プログラム |
US7243237B2 (en) | 2003-05-02 | 2007-07-10 | Microsoft Corporation | Secure communication with a keyboard or related device |
JP2005130059A (ja) | 2003-10-22 | 2005-05-19 | Fuji Xerox Co Ltd | 画像形成装置および交換部品 |
JP2005140823A (ja) * | 2003-11-04 | 2005-06-02 | Sony Corp | 情報処理装置、制御方法、プログラム、並びに記録媒体 |
-
2003
- 2003-11-04 JP JP2003374168A patent/JP2005140823A/ja active Pending
-
2004
- 2004-11-02 US US10/979,708 patent/US7492894B2/en not_active Expired - Fee Related
- 2004-11-04 KR KR1020040089146A patent/KR20050043657A/ko not_active Application Discontinuation
- 2004-11-04 CN CNB2004101037851A patent/CN100550724C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008205989A (ja) * | 2007-02-22 | 2008-09-04 | Hitachi Ltd | コンテンツデータ管理システム及び装置 |
JP2012226711A (ja) * | 2011-04-22 | 2012-11-15 | Sony Corp | 情報処理装置および情報処理方法 |
JP2016189626A (ja) * | 2011-08-05 | 2016-11-04 | アップル インコーポレイテッド | ワイヤレスデータ保護のためのシステム及び方法 |
WO2016103952A1 (ja) * | 2014-12-26 | 2016-06-30 | 株式会社Dnpハイパーテック | 暗号化装置 |
JP2016127405A (ja) * | 2014-12-26 | 2016-07-11 | 株式会社Dnpハイパーテック | 暗号化装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100550724C (zh) | 2009-10-14 |
US7492894B2 (en) | 2009-02-17 |
US20050094805A1 (en) | 2005-05-05 |
KR20050043657A (ko) | 2005-05-11 |
CN1674492A (zh) | 2005-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2005140823A (ja) | 情報処理装置、制御方法、プログラム、並びに記録媒体 | |
JP4525350B2 (ja) | 信号処理システム | |
JP4620146B2 (ja) | 情報処理装置及び認証方法 | |
US7328352B2 (en) | Apparatus and method for reading or writing user data | |
KR101108526B1 (ko) | 정보 처리 장치 | |
JP2004220317A (ja) | 相互認証方法、プログラム、記録媒体、信号処理システム、再生装置および情報処理装置 | |
WO2002056535A1 (fr) | Appareil et procede permettant d'enregistrer et de reproduire des informations | |
WO2001078298A1 (fr) | Systeme et procede de traitement d'informations | |
WO2002033880A1 (fr) | Reproduction de donnees/appareil d'enregistrement/procede et procede de mise a jour d'une liste | |
US20050076225A1 (en) | Method and apparatus for verifying the intergrity of system data | |
US7386126B2 (en) | Content protection system, key data generation apparatus, and terminal apparatus | |
JP2008299448A (ja) | データ記憶装置及び暗号鍵に関する情報の更新方法 | |
WO2004046936A1 (ja) | 記録システムおよび方法、記録装置および方法、入力装置および方法、再生システムおよび方法、再生装置および方法、記録媒体、並びにプログラム | |
JP2005352523A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
JP4843563B2 (ja) | 情報記録媒体のセキュリティ方法、情報処理装置及びプログラム | |
WO2003088055A1 (fr) | Procede de traitement de donnees de contenu, dispositif d'enregistrement et dispositif de reproduction | |
JP4505717B2 (ja) | 情報処理装置、制御方法、プログラム、並びに記録媒体 | |
JP4752198B2 (ja) | ドライブ装置、再生処理装置、情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム | |
JP4738546B2 (ja) | データ漏洩防止システムおよびデータ漏洩防止方法 | |
JP4367166B2 (ja) | ドライブ装置、再生処理装置、情報記録媒体、およびデータ処理方法、並びにコンピュータ・プログラム | |
JP2003345660A (ja) | 情報処理装置、情報処理方法、およびコンテンツ入出力処理システム、コンテンツ入出力処理方法、並びにコンピュータ・プログラム | |
JP5318069B2 (ja) | 情報処理装置 | |
JP2005352522A (ja) | 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム | |
JP4738547B2 (ja) | 記憶装置およびデータ漏洩防止方法 | |
JP2009087182A (ja) | 情報記録媒体のセキュリティ方法、情報処理装置及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070226 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070604 |