信息处理装置的制作方法

文档序号:7633957阅读:84来源:国知局
专利名称:信息处理装置的制作方法
技术领域
本发明涉及一种信息处理装置、信息处理方法、程序和记录媒体。本发明尤其涉及一种信息处理装置、信息处理方法、程序和记录媒体,用于执行与加密相关联的过程。
背景技术
对不同种类的装置,其间交换数字数据正变得很平常。在这种趋势下,采取措施对付违法使用数字数据已经变得必要,该数字数据正当或者不正当使用或复制时本质上质量(即,图像和声音质量)并未损坏(例如,参考专利文献1)。
当今随着DVD(数字通用盘)和类似记录媒体获得广泛的接受,易于在一片这样的媒体(如盘)上,作为数字信息记录很大数量的数据如电影。在电影信息或类似的数据可以作为数字信息记录的情形,阻止非法复制以保护版权持有者的利益正变得更加重要。
DVD视频(即,装满视频内容的DVD)采用CSS(内容加扰系统)作为版权保护技术。图1是显示记录媒体以及用于从那个媒体再现数据的装置的结构的方块图,在该记录媒体上记录由CSS技术加密的数据。
图1指示盘11作为典型的记录媒体。盘11保留被保护的盘密钥21,用于识别盘11;加密的标题密钥22,它以预先确定的间隔嵌入在数据中;以及加扰数据23。起说明作用地,如果在盘11上记录电影,说明性地为每章提供标题密钥22。
盘密钥21和标题密钥22以加密格式(或者以防止滥用取回的方式)记录在盘11上。数据23在盘11上记录时通过使用标题密钥22加扰。
播放器12通过从盘11读取密钥和数据再现数据23。播放器23包含解密设备32和33、解扰设备34和译码器35。播放器12也包含管理主密钥31的管理设备(未显示)。
解密设备32通过使用主密钥31对从盘11读取的盘密钥21解密,并且提供解密的盘密钥21给解密设备33。从盘11取回的标题密钥22也提供给解密设备33。解密设备33使用解密的盘密钥21,对加密的标题密钥22解密。解密的标题密钥22馈送给解扰设备34。从盘11取回的数据23也提供给解扰设备34。
通过使用标题密钥22加扰之前,要从盘密钥21读取并提供给播放器12的数据23已经由预先确定的压缩标准(如,MPEG(移动图像专家组)标准)压缩。解扰设备34使用标题密钥22对数据23解扰。
解扰的数据23提供给译码器35。译码器35根据预先确定的译码标准(如,MPEG标准),对来自解扰设备34的数据23译码。译码的数据36提供给未显示的显示单元或类似设备。
图1中显示的播放器12是说明性的专门从盘11如DVD再现数据的设备。或者,专用播放器12可以由能够从盘11再现数据的个人计算机代替。
图2显示一设置的结构,在该设置中盘11如DVD说明性地由个人计算机或类似设备播放。在这个设置中,驱动单元51从盘11读取数据,并且主机52处理由驱动单元51读出的数据。图2中显示的驱动单元51和主机52包括可以由应用软件实现的功能。
正如在图1的设置中,盘11保留盘密钥21、标题密钥22和数据23。构造驱动单元51以包括认证处理设备62和总线加密设备62和63。
主机52包含认证处理设备71、总线解密设备72和73、解密设备74和75、解扰设备76和译码器77。主机52也包含管理主密钥31的管理设备(未显示)。
驱动单元51的认证处理设备51和主机52的认证处理设备71互相认证。只有当互相认证的过程正常完成时,数据才能在驱动单元51和主机52之间发送和接收。成功的认证过程之后,认证处理设备61和71(为共享使用)每个发出称为会话密钥的密钥。
正常的认证过程之后,从盘11读取的盘密钥21由驱动单元51的总线加密设备62加密。也提供由认证处理设备61发出的会话密钥给总线加密设备62。总线加密设备62使用会话密钥加密取回的盘密钥21,并且输出加密的盘密钥21到主机71。
同样地,通过使用由认证处理设备61发出的会话密钥,总线加密设备63加密从盘11读取的标题密钥22,并且输出加密的标题密钥22到主机52。从盘11取回的数据23从驱动单元51直接提供给主机52。
通过使用由认证处理设备71发出的会话密钥,主机52的总线解密设备72解密从驱动单元51的总线加密设备62发送的加密盘密钥21。解密的盘密钥21馈送给解密单元74。主密钥31也馈送给解密单元74。解密单元74使用主密钥31对从总线解密设备72提供的盘密钥21解密,并且发送解密的盘密钥21给解密设备75。
也从总线解密设备73提供标题密钥22给解密设备75。标题密钥22,使用由认证处理设备71发出的会话密钥,已经由总线解密设备73解密。
解密设备75使用解密的盘密钥21解密加密的标题密钥22。解密的标题密钥22提供给解扰设备76。解扰设备76也被提供从盘11读取的数据23。
从盘11取回的数据23已经由预先确定的压缩算法压缩,并且通过使用标题密钥22加扰。解扰设备76首先使用提供的标题密钥22对数据23解扰。
解扰的数据23提供给译码器77。译码器77由预先确定的译码标准(如,MPEG标准)对提供的数据23译码。译码的数据36提供给未显示的显示单元或类似的设备。
如所述,在进行再现从盘11取回的数据23之前,装载了盘11的驱动单元51和用于处理盘11上保存的数据的主机52互相认证。成功的认证过程之后,加密的密钥和数据在驱动单元51和主机52之间发送和接收。
应该注意数据只有在认证过程之后实际上才在驱动单元51和主机52之间发送和接收。那是因为设计由适当的总线(未显示)连接的驱动单元51和主机52,以阻止数据从那个总线违法抽取(tap)。
参考图3的流程图,下面给出的是认证处理设备61和71之间执行的认证过程的另外的说明。在步骤S11中,进行检查以确定是否盘11装载(即,放)入驱动单元51。在步骤S11中,保持待命状态直到发现盘11装载到驱动单元51中(即,重复步骤S11的过程)。
如果在步骤S11中发现盘11装载到驱动单元51中,到达步骤S12。在步骤S12中,认证处理设备61和71互相认证。除非并且直到互相认证的过程正常完成,将不执行随后的步骤。
成功的互相认证过程之后,认证处理设备61和71每个产生会话密钥。在步骤S13中,进行检查以确定是否互相认证的过程已经正常结束并且成功完成会话密钥产生。重复步骤S12的过程直到在步骤S13发现它完成。其后,控制传递给步骤S14。
在步骤S14中,建立这样的状态在该状态中,授权发送和接收加扰的数据(即,从驱动单元51输出)。在这种情况下,加扰的数据是数据23(图2),该数据被授权从驱动单元51输出到主机52。
将对下面的“授权”状态进行更多的说明。在来自主机52的指令下,驱动单元51读取授权状态中的数据23。在这样的授权还未进行的情形,驱动单元51不输出数据23,而是在接收到来自主机52的读取(输出)数据23的指令时返回差错消息。
通过授权状态有效并且从主机52提供指令,驱动单元51从盘11取回数据23。取回的数据23输出到主机52。
一旦建立了授权状态,重复加扰数据23的再现,除非产生来自驱动单元51的中断条件,如盘11的卸载。
通过授权加扰数据23输出,到达步骤S15。在步骤S15中,连续地进行检查以确定是否盘11从驱动单元51卸载。当发现盘11从驱动单元51卸载时,控制返回到步骤S11并且重复随后的步骤。
当驱动器复位或断电时,数据再现也终止。然后按需要重新到达步骤S11,并且重复随后的步骤。
如所述,驱动单元51和主机52之间的互相认证正常终止之后,驱动单元51从装载的盘11持续读取数据23并且输出取回的数据23到主机52,直到盘11被卸载。过程继续,除非并且直到由主机52给出另一个指令。
这里将对一些已知的加密技术进行简要的评论,该加密由加密设备如总线加密设备62执行。已经提出各种加密算法。下面说明称为CBC(密码块链接)的一种这样的加密(和解密)算法。
CBC加密算法是这样一种技术它涉及将未加密形式的每个数据块和前面的加密形式的数据块异或,以便产生每个加密数据块。图4显示用于由CBC算法加密的典型电路。
要加密的目标数据以预先确定的增量(例如16字节,如果使用AES(高级加密标准)作为块加密方案)转换为块。第一个块提供给XOR电路101-1,第一个块之后的第二个块馈送给另一个XOR电路101-2,第二个块之后的第三个块发送给另一个XOR电路101-3等等。提供与预先确定的级数(在这个例子中是N级)相等的XOR电路,使得未加密形式的数据块可以连续地输入到XOR电路101-1到101-N。
从XOR电路101-1输出的第一个块提供给加密设备102-1。加密设备102-1使用密钥Ek加密提供的第一个块。因而,第一个块被加密。
从加密设备102-1输出的加密的第一个块也发送到XOR电路101-2,用于与第二个块的异或操作。异或操作的结果馈送给另一个加密设备102-2,该设备使用相同的密钥Ek加密提供的数据。
根据CBC加密,如上所概述,未加密形式的每个数据块与前面的加密形式的数据块异或。作为结果的数据块通过使用预先确定的加密密钥加密。这样加密的数据块与下一个数据块异或。因而每个当前块连续地链接到前面的块以产生加密形式的数据。
尽管第二个和随后的数据块每个与前面的块异或,第一个块不能与显然不存在的它前面的块异或。因而引入初始化向量(IV)并与第一个块异或。
下面参考图5说明的是根据CBC算法的解密电路(例如,总线解密设备72(图2))。
如上所述,加密的数据以预先确定的增量(例如16字节,如果使用AES(高级加密标准)作为块加密方案)转换为块。第一个数据块提供给解密设备122-1,第一个块之后的第二个块馈送给另一个解密设备122-2,第二个块之后的第三个块发送给另一个解密设备122-3,等等。提供与预先确定的级数(在这个例子中是N级)相等的解密设备,使得加密形式的数据块可以连续地输入到解密设备122-1到122-N。
解密设备122-1到122-N每个使用密钥Dk分别解密输入数据。从解密设备122-1到122-N输出的数据分别提供给XOR电路121-1到121-N。也提供这样的数据给XOR电路121-2到121-N,该数据分别馈送给前面的解密块122-1到122-N-1。
如所述,当每个解密形式的目标数据块与前面的加密形式的数据块异或时,完成根据CBC算法的解密。
虽然第二个和随后的数据块每个与前面的块异或,但第一个块不能与显然不存在的它前面的块异或。因而引入初始化向量(IV)并与第一个块异或。
前面的说明已经给出加密和解密通常如何执行的概述。
日本专利号3252706

发明内容
在数据23要由如图2中所示的驱动单元51结合主机52从盘11再现的情形,驱动单元51和主机52之间的互相认证的过程成功之后,数据23被授权从驱动单元51输出。上面参考图3的流程图说明了该过程。
假设主机52启动应用A并且这样启动的应用A提示认证处理设备71执行认证过程。在这种情况下,由应用A关于驱动单元51正常执行认证过程导致这样一种状态数据23被授权从盘11读取并且由驱动单元51输出。
在那个状态中,数据23被授权连续地由驱动单元51输出,除非并且直到盘11从驱动单元51卸载。现在假设授权状态有效,应用B由主机52启动,并且应用B代替应用A开始给出指令,包括用于读出数据23的一个指令。
在那种情况下,驱动单元51和应用B不互相认证。但是,因为驱动单元51保持在数据23被授权输出的状态,所以让数据23从驱动单元51输出到主机52(即,应用B)。作为结果,数据23可以由应用B记录到作为主机52一部分的硬盘驱动器(HDD)141。
虽然数据23记录到HDD 141上是非法的,但驱动单元51在来自应用B的指令下进行输出数据23。使用现有设置不检查这种滥用。
存储在HDD 141上的数据23被加扰并且不能照原来的样子再现。尽管如此,因为存在用于解扰数据的应用,一旦数据23记录到HDD 141上,实际上不可能阻止非法使用它。
如所述,一旦认证过程正常完成并且授权数据23从驱动单元51输出,数据23变得容易被盗取。
下面参考图7说明其它的数据滥用。驱动单元51和主机52由合适的总线互联,并且其间在那条总线上交换数据23。如在上面参考图6说明的情况下,主机侧的应用A与驱动单元51执行互相认证。正常完成认证过程之后,数据23被授权从驱动单元51输出。
如果主机52具有监视器151用于监视那条总线上发送和接收的数据,那么可以使用监视器151从总线获得(即,监视)数据23。换句话说,从驱动单元51输出的数据23可以提供给应用A和监视器151两者。
因而主机52可能在HDD 141上存储由监视器151获得的数据23。这是另一种可以滥用数据23的方式。
如所述,现有设置可以使监视功能被利用来盗取或滥用总线上交换的数据。
已经提出加密数据23的方法,使得总线上交换的数据23将不被从总线上盗取。这里参考图8说明一种这样的方法。在随后的说明中,从驱动单元51输出到主机52的数据将称为传递数据171。
传递数据171以每个2048(2K字节)字节的数据分组处理。如上所述,在驱动单元51和主机52由合适的总线互联的情形,安装用于控制总线的总线接口183以处理预定增量的数据。作为说明地,如果总线接口183基于ATAPI(具有分组接口的AT连接),那么规定数据增量是2048字节。
如果假设传递数据171以2048字节的数据分组出现,那么每个分组由16字节的初始化向量IV和2032字节的数据部分组成,如图8中所示。在这个数据分组中,2032字节的数据部分由加密设备181加密。虽然未在图8中显示,但加密设备181使用由认证处理设备181(见图2)发出的会话密钥Ks加密每个数据部分。
加密设备181说明性地通过使用CBC算法执行它的加密过程。基于CBC的加密要求加密设备181内部如图4中所示构造。如上面参考图4说明的,加密设备181执行加密时也利用初始化向量IV。即,给定传递数据171的每个数据分组,加密设备181使用包括在同一数据分组中的16字节初始化向量IV、以及由认证处理设备181发出的会话密钥Ks,加密2038字节的数据部分。
由加密设备181加密的数据分组每个是可以由总线接口183处理的2048字节的数据分组。其数据部分加密的每个数据分组被提供给主机52的解密设备182。解密设备182使用包括在提供的数据分组中的初始化向量IV、和由认证处理设备71(图2)发出的会话密钥Ks,解密加密的数据。
虽然主机52接收到加密的数据,那个数据可以由主机52使用与所述数据一起提供的初始化向量IV解密。主机52可以以这种方式再现从驱动单元51输出的数据。
当通过总线接口183交换的数据被加密时,数据将不被滥用,只要它不被解密,即使通过总线接口183交换的数据被抽取。以这种方式,假定阻止数据的盗用。但是,这种方法存在一些问题,这一点将在下面的说明中概述。
再参考图8,初始化向量IV是传递数据171的一部分。当初始化向量IV要包括在传递数据171中时,该向量与其它数据一起写到盘11。那意味着初始化向量IV不能随机改变(即,必须照原来的样子而不变地使用写在盘上的初始化向量IV)。
可能的是没有初始化向量IV写在盘11上,使驱动单元51随机产生初始化向量IV,以便使向量IV包括在传递数据171中。但是,这是施加限制条件的情形当初始化向量IV要包括在传递数据171中时,必须说明性地给该向量提供不同于要加密的数据的头等。
在那种条件下,可以安排驱动单元51随机产生初始化向量IV,但是要受到对随机化的向量产生的某些限制。最后,不保证驱动单元51总能在随机基础上产生初始化向量IV(即,在初始化向量产生期间可能出现固定模式)。
如果初始化向量IV不能随机变化,即如果初始化向量产生期间预期出现固定模式,就可能存在下面的问题。
说明性地,电子邮件的格式具有固定的模式,该模式包括接收者的地址、发送者的地址、主题和消息。如果那个模式的数据(纯文本)被加密,加密的数据也呈现可能引起第三方(即攻击者)注意的模式。然后第三方可以进行至少部分地解密加密的数据。
在另一个为了重复再现预备音乐数据的例子中,预备的加密涉及重复地加密相同纯文本数据,这导致包含重复模式的加密数据。正如在前面的例子中,加密数据呈现易于受到滥用解密的模式。
在这样的环境下,在有要加密的具有固定模式的纯文本数据(例如,对于要加密多次的相同数据)的情形,用初始化向量IV补充第一个数据块,以便消除可能出现在加密数据中的任何相似的模式。加密时增加初始化向量IV到第一个块,阻止如纯文本数据块中的相同模式形成,这将使最后的解密更加困难。作为另一个好处,加密时增加初始化向量IV使预测单一密钥容易,该密钥可以用来加密大量的数据。
正是因为这些原因,在加密随后的块之前经常增加初始化向量IV到第一个数据块。
以合适的间隔更新初始化向量IV,使确定给定纯文本数据是否具有特定模式更困难。这有助于阻止肆无忌惮的数据替换或窜改。(参考文献NISTSpecial Publication 800-38A 2001 Edition,Recommendation for Block CipherModes of Operation,Methods and Techniques,APPENDIX C Generation ofCounter Blocks)。
换句话说,如果重复使用相同的初始化向量IV,该实践不能提供上述周期性更新向量IV的好处。作为结果,重复使用相同的初始化向量IV,使得难以确定给定纯文本数据是否具有特定模式,并且不能阻止数据替换或窜改。
显然,最好如上所述更新初始化向量IV。
在进行安排以更新初始化向量IV的情形,可以设计出如图9中所示的方法从而发送和接收数据。在图9的例子中,传递数据191由2048字节的数据块组成,每个块补充16字节的初始化向量IV。增加的向量IV补足可以通过总线接口183发送和接收的2064字节数据块。
当初始化向量IV添加到传递数据191时(即,在初始化向量IV预先不包括在传递数据191中的情形),可以安排驱动单元51随机产生向量IV。然后,随机产生的初始化向量IV添加到传递数据191。
但是,添加初始化向量IV到数据意味着将特殊的扇区大小2064字节(其中IV=16字节)引入到PC驱动接口,该接口处理通常增量为2048字节的数据。这里创建的是与个人计算机(PC)的环境不兼容的非标准的格式。不兼容的环境包括共同使用的ATAPI设备驱动器和处理2048字节或4096字节扇区大小的UDF(通用数据格式)FS驱动器。
与PC环境的不兼容性必须通过就硬件和/或软件作特殊修改来解决。这种工作是昂贵和费力的。修改之后,数据处理的速度一定要降低。
已经设计出本发明以便解决前述问题,并且本发明的目的之一是使得需要时能够取消授权由驱动单元输出的数据的状态,以便阻止数据被盗。本发明的另一个目的是提供安全性增强安排,甚至在使用通用总线的设置中也允许更新初始化向量IV,使得在那条总线上交换的数据将不被盗取。
在执行该发明中并且根据本发明的一个实施例,提供一种信息处理装置,包括传递控制装置,用于控制数据的传递;计数装置,用于对所述传递控制装置已经控制所述数据的传递的次数计数;第一确定装置,用于确定是否由所述计数装置计数的次数至少等于预先确定的阈值;第一指令装置,如果由所述第一确定装置发现所述次数至少等于所述阈值,那么该第一指令装置发指令给所述传递控制装置以停止所述数据的传递;产生装置,用于产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递由所述传递控制装置控制;第二确定装置,用于确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递由所述传递控制装置控制;以及第二指令装置,如果由所述第二确定装置发现提供所述初始化向量的指令被给出,那么该第二指令装置发指令给所述产生装置以产生所述初始化向量,同时发指令给所述计数装置以复位已经计数的次数。
最好,本发明的信息处理装置进而可以包括输出装置,如果指令由第一指令装置给出,那么该输出装置输出消息到外部装置,该消息说数据的传递被停止。
根据本发明的另一个实施例,提供一种信息处理方法,包含以下步骤控制数据的传递;对所述传递控制步骤已经控制所述数据的传递的次数计数;第一次确定在所述计数步骤中计数的次数是否至少等于预先确定的阈值;如果在所述第一次确定步骤中发现所述次数至少等于所述阈值,那么在所述传递控制步骤中第一次发出指令以停止所述数据的传递;产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递在所述传递控制步骤中控制;第二次确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递在所述传递控制步骤中控制;以及如果在所述第二次确定步骤中发现提供所述初始化向量的指令被给出,那么在所述产生步骤中第二次发出指令以产生所述初始化向量,同时在所述计数步骤中给出指令以复位已经计数的次数。
根据本发明进一步的实施例,提供一种程序,用于使计算机执行包含下述步骤的过程控制数据的传递;对所述传递控制步骤已经控制所述数据的传递的次数计数;第一次确定在所述计数步骤中计数的次数是否至少等于预先确定的阈值;如果在所述第一次确定步骤中发现所述次数至少等于所述阈值,那么在所述传递控制步骤中第一次发出指令以停止所述数据的传递;产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递在所述传递控制步骤中控制;第二次确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递在所述传递控制步骤中控制;以及如果在所述第二次确定步骤中发现提供所述初始化向量的指令被给出,那么在所述产生步骤中第二次发出指令以产生所述初始化向量,同时在所述计数步骤中给出指令以复位已经计数的次数。
根据本发明更进一步的实施例,提供一种记录媒体,它记录计算机可读的程序,用于使计算机执行包含下述步骤的过程控制数据的传递;对所述传递控制步骤已经控制所述数据的传递的次数计数;第一次确定在所述计数步骤中计数的次数是否至少等于预先确定的阈值;如果在所述第一次确定步骤中发现所述次数至少等于所述阈值,那么在所述传递控制步骤中第一次发出指令以停止所述数据的传递;产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递在所述传递控制步骤中控制;第二次确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递在所述传递控制步骤中控制;以及如果在所述第二次确定步骤中发现提供所述初始化向量的指令被给出,那么在所述产生步骤中第二次发出指令以产生所述初始化向量,同时在所述计数步骤中给出指令以复位已经计数的次数。
在使用根据本发明的信息处理装置、信息处理方法和程序的情形,数据的发送和接收将被停止,除非周期性地给出提供初始化向量的指令。
因此根据本发明,在用于在装置间发送和接收数据的总线上增强了安全性。
根据本发明,在如下两个装置(一方面一个装置用于从记录媒体读取数据,而另一方面另一个装置用于处理从数据读取装置接收的数据)之间的认证过程之后,授权数据读取装置输出取回的数据到另一个装置,但是需要时授权的状态被设置为取消(或更新)。这使得在授权数据读取装置输出数据到另一个装置之后,可能阻止由于非法访问的数据泄露。
根据本发明,可以随机更新加密中使用的初始化向量。那意味着重复加密相同的数据将不导致产生相同的加密句。这有助于阻止数据替换、窜改或其它的数据非法使用。
此外,根据本发明,更新初始化向量不妨碍使用通用总线接口以及UDFFS驱动器,它们由OS(操作系统)作为标准提供。不需要在互连的装置之间的环境中做费力的修改以便更新初始化向量。


图1是显示典型的再现装置的结构的方块图。
图2是显示典型的再现装置的另一个结构的方块图。
图3是组成认证过程的步骤的流程图。
图4是用于加密的典型电路的电路图。
图5是用于解密的典型电路的电路图。
图6是说明典型的再现装置的问题的示意图。
图7是说明典型的再现装置的另一个问题的示意图。
图8是说明发送和接收初始化向量IV时遇到的问题的示意图。
图9是说明发送和接收初始化向量IV时遇到的另一个问题的示意图。
图10是作为本发明的一个实施例实现的系统的方块图。
图11是说明发送和接收数据中涉及的驱动器的示意图。
图12是组成由驱动单元执行的过程的步骤的流程图。
图13是延续图12的流程图的流程图。
图14是关于初始化向量IV的发送和接收的时序图。
图15是关于初始化向量IV的发送和接收的另一个时序图。
图16是关于初始化向量IV的发送和接收的另一个时序图。
图17是关于数据的发送和接收的时序图。
图18是显示命令分组的结构的示意图。
图19是作为本发明的实施例的变化实现的系统的方块图。
图20是关于数据的发送和接收的另一个时序图。
图21是显示作为本发明的第二个实施例实现的记录装置的结构的方块图。
图22关于初始化向量IV的发送和接收的另一个时序图。
图23关于初始化向量IV的发送和接收的另一个时序图。
图24是组成由主机执行的过程的步骤的流程图。
图25是延续图24的流程图的流程图。
图26是组成由驱动单元执行的另一个过程的步骤的流程图。
图27是延续图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加密设备。
具体实施例方式
现在将说明本发明的优选实施例。下面作为本发明的优选实施例说明的如下对应于
权利要求
优选实施例的说明基本提供支持所要求保护内容的特定例子。如果下面说明的作为优选实施例的本发明的任何例子没有严格对应的权利要求,这不意味着所述例子与权利要求无关。相反地,如果以下说明的本发明的任何例子具有特别对应的权利要求,这不意味着所述例子限于那个权利要求或与其它权利要求无关。
进一步地,下面的优选实施例的说明不要求包括对应于全部权利要求的所有例子。换句话说,以下的说明不限制或否定任何发明实体,该实体未被本发明的权利要求涵盖,但是在将来可以通过分案申请或通过修改由本申请人增加或生成。
根据本发明的一个优选实施例,提供一种信息处理装置,它至少包括传递控制装置(如图10中用于执行图13中的步骤S46的扇区传递控制设备313),用于控制数据的传递;计数装置(如图10中用于执行图13中的步骤S47的扇区传递计数器314),用于对传递控制装置已经控制数据传递的次数计数;第一确定装置(如图10中用于执行图13中的步骤S45的扇区传递计数器314),用于确定由计数装置计数的次数是否至少等于预先确定的阈值;第一指令装置(如图10中的扇区传递计数器314),如果由第一确定装置发现所述次数至少等于所述阈值,那么该第一指令装置给传递控制装置发指令以停止数据的传递;产生装置(如图10中用于执行图13中的步骤S41的随机数产生设备315),用于产生在加密或解密数据中使用的初始化向量,该数据的传递由传递控制装置控制;第二确定装置(如图10中用于执行图13中的步骤S40的命令处理设备317),用于确定是否由外部装置给出提供初始化向量的指令,向和从该装置发送和接收数据,该数据的传递由传递控制装置控制;以及第二指令装置(如图10中用于执行图13中的步骤S42的随机数产生设备315),如果由第二确定装置发现提供初始化向量的指令被给出,那么该第二指令装置发指令给产生装置以产生初始化向量,同时发指令给计数装置以复位已经计数的次数。
最好,本发明的信息处理装置可以进而包括输出装置(如图10中用于执行图13中的步骤S48的消息转发设备316),如果指令由第一指令装置给出,那么该第一指令装置输出消息到外部装置,该消息说数据的传递被停止。
现在将参考

本发明的优选实施例。
图10是作为本发明的第一个实施例实现的系统的方块图。
图10中显示的系统是再现(即,读出)记录在记录媒体上的数据的系统。图10的系统由提供数据的驱动单元301和接收提供的数据的主机302组成。
盘303是这样的记录媒体中的任何一种,如CD-ROM(致密盘-ROM)、CD-R(可记录致密盘)、CD-RW(可重写致密盘)、DVD-ROM(数字通用盘-ROM)、DVD-R(可记录数字通用盘)DVD-RW(可重记录数字通用盘)、DVD+R(DVD+可记录)、DVD+RW(DVD+可重写)、DVD-RAM(数字通用盘-随机访问存储器)和B1u-Ray(蓝光)盘。本发明的范围不限于这些记录媒体,并且可应用到用于处理其它类型记录媒体的其它系统(在记录方法或者媒体形状方面)。
驱动单元301和主机302通过合适的接口互连,该接口用于在驱动单元301和主机302之间发送和接收数据。接口可以说明性地是ATAPI(具有分组接口的AT附件)。ATAPI是基于数据传递协议的接口,用于连接CD-ROM驱动器或除了硬盘驱动器的其它外围设备到IDE(集成驱动电子组件)和ATA(AT附件)接口。说明性地,ATAPI设置将兼容SCSI的命令变为分组,用于传递到IDE(集成驱动电子组件)接口以便控制外围设备。类似的命令分组也可以结合这样的物理接口如USB(通用串行总线)或IEEE 1394使用。
驱动单元301包括认证处理设备311、加密设备312、扇区传递控制设备313、扇区传递计数器314、随机数产生设备315、消息转发设备316、命令处理设备317和访问处理设备318。
主机302包括认证处理设备321和解密设备322。
驱动单元301中的认证处理设备311和主机302中的认证处理设备321互相认证。
在访问处理设备318的控制下,给加密设备312提供从盘303读取的扇区数据351和来自认证处理设备311的会话密钥Ks。也给加密设备312馈送由随机数产生设备315作为初始化向量IV产生的随机数。
由随机数产生设备315产生的随机数可以不改变地用作初始化向量IV。或者,可以作出安排以便从随机数和其它数据(如从盘303读取的PSN(物理扇区号))得出初始化向量IV。可以在驱动单元301内安装这样的安排。
加密设备313使用会话密钥Ks和初始化向量IV加密提供的扇区数据351,并且发送加密的数据到扇区传递控制设备313。扇区传递控制设备313传递加密的扇区数据351到主机303中的解密设备322。即,从驱动单元301提供给主机303的数据是加密的扇区数据351。
加密设备312也输出数据到扇区传递计数器314。构造扇区传递计数器314,以便对输出到主机302的扇区数据(即,从加密设备312输出的扇区数据351)的数目计数。换句话说,扇区传递计数器314对扇区传递控制设备313已经控制扇区数据传递的次数计数。
扇区传递计数器314管理预先确定的最大计数(称为Nmax)。在操作中,扇区传递计数器314连续地检查以了解正在计数的扇区的数目(计数器值N)是否超过预先确定的最大输出计数。
如果发现扇区计数至少等于最大计数(N≥Nmax),扇区传递计数器314发指令给扇区传递控制设备313以停止输出扇区数据351到主机302。同时,扇区传递计数器314发指令给命令处理设备317,以停止访问处理设备318访问盘303。
从扇区传递计数器314发指令以停止输出扇区数据351,扇区传递控制设备313发指令给消息转发设备316,以输出消息362(在这种情况下为差错消息)给主机302。
同时,从驱动单元301通过接口提供加密的扇区数据351给主机303中的解密设备322。也馈送由随机数产生设备315产生的初始化向量IV给解密设备322,该向量IV在不同于传输扇区数据351的路径上发送(随后将参考图11更多说明关于这个安排)。
解密设备322使用从认证处理设备331馈送的会话密钥Ks和从驱动单元301发送的初始化向量IV,执行它的解密过程。解密设备322通过这个过程产生扇区数据361。
需要时主机302提供命令分组363给驱动单元301。命令分组363说明性地包括读命令,给出从盘303读数据的指令;写命令,给出写数据到盘303的指令;以及报告密钥命令,给出发初始化向量IV的指令。
下面参考图11说明的是扇区数据351发送和接收的路径和其它数据发送和接收的路径。在图11中,PC驱动器391是控制初始化向量IV的产生、加密的扇区数据的产生和传递扇区数据的创建的驱动器。来自PC驱动器391的数据移交给光盘驱动器392。
光盘驱动器392是控制向和从光盘写和读数据的操作的驱动器。如果光盘是记录媒体,如DVD,那么数据(即文件)以UDF(通用数据格式)写到那个盘。因此,由光盘驱动器392取回(即控制)的数据(文件),在UDF FS驱动器393的控制下,通过光盘文件阅读器394传递到视频/音频回放功能395。
视频/音频回放功能395说明性地控制传递扇区数据的获得、初始化向量IV的获得以及加密的扇区数据的解密。
如所述,通过UDF FS驱动器393如此发送和接收包括扇区数据的视频和音频数据。其它数据如初始化向量IV和用于发出向量IV的命令的发送和接收,不通过UDF FS驱动器393,而是通过另一个路径,如Microsoft Windows(注册商标)下所谓的SCSI PASS Through。
图10中驱动单元301和主机302之间画的线中,粗线表示通过UDF FS驱动器393发送和接收数据的路径(以下合适时称为UDF路径);细线表示以别的方式发送和接收数据的路径(通过SCSI PASS Through;以下合适时称为通过路径)。
如图10中所示,连接扇区传递控制设备313和解密设备322的路径是UDF路径。认证处理设备311和认证处理设备321之间的认证过程需要的数据在通过路径上发送和接收。从消息转发设备316输出的消息也在通过路径上发送和接收。而且,初始化向量IV在通过路径上交换。
UDF FS驱动器393处理以2048字节或2048字节的整数倍为增量的数据。即,UDF路径只允许以2048字节或2048字节的整数倍为增量的数据通过。
另一方面,通过路径基本上能够让数据发送和接收而不管数据大小。在这方面,通过路径适合发送和接收16字节的初始化向量IV。
现在将参考图12和13的流程图说明图10中所示的驱动单元301如何工作。在步骤S31中,进行检查以确定盘303是否装载到驱动单元301中。如果在步骤S31中发现盘303装载到驱动单元301中,到达步骤S32。在步骤S32中,进行检查以确定预先确定的应用是否由主机302启动。
预先确定的应用是向或从装载在驱动单元301中的盘303写或读数据需要的应用。
如果在步骤S32中发现预先确定的应用由主机302启动,就到达步骤S33。在步骤S33中,驱动单元301和主机302互相认证,并且由驱动单元301和主机302产生会话密钥Ks(为共享使用)。在步骤S34中,进行检查以确定会话密钥Ks的产生是否完成。重复步骤S33和S34直到发现会话密钥Ks的产生完成。
如果在步骤S34中发现会话密钥Ks的产生完成,就到达步骤S35。在步骤S35中,驱动单元301中的扇区传递计数器314上的计数器值N被设置为作为最大计数器值的数Nmax(即,N=Nmax)。
计数器值N被设置为Nmax之后,扇区传递计数器314发指令以阻止数据从扇区传递控制设备313输出到主机302。
在步骤S36中,进行检查以确定主机302是否已经请求传递初始化向量IV。由命令处理设备317完成检查,以确定是否从主机302接收到命令分组363以及是否接收的命令分组363表示传递初始化向量IV的请求。
重复步骤S36直到检测到传递初始化向量IV的请求。当在步骤S36中发现进行初始化向量传递请求时,到达步骤S37。在步骤S37中,产生初始化向量IV。
更特别地,通过命令处理设备317从主机302接收命令分组363,并且分析它以了解是否它表示所述请求,从而检测到传递初始化向量IV的请求。一旦检测到请求,命令处理设备317通知随机数产生设备315检测到请求。得到这样的通知,随机数产生设备315在步骤S37中产生初始化向量IV。
随机数产生设备315产生随机数,它可以不改变地作为初始化向量IV使用,或者与预先确定的信息(如包含在命令分组363中请求传递初始化向量IV的信息)异或,以便产生初始化向量IV。
除了产生初始化向量IV,随机数产生设备315发指令给扇区传递计数器314,以复位计数器值N到零。接收到指令后,扇区传递计数器314在步骤S38中初始化计数器值N到零。当扇区传递计数器314上计数器值N初始化到零时,扇区传递控制设备313切换到授权数据输出的状态。
在步骤S39中,由随机数产生设备315产生的初始化向量IV提供给主机302。因为初始化向量IV在通过路径上放置(即,传递),所以初始化向量IV可以在驱动单元301和主机302之间发送和接收,即使初始化向量是16字节长。
现在将参考图14更详细地说明步骤S33和S39之间发生的初始化向量IV的发送和接收。
主机302和驱动单元301分别在步骤S101和S111中互相认证。只有在互相认证成功完成之后,控制才传递给下一个步骤。互相认证之后,驱动单元301中的认证处理设备311和主机302中的认证处理设备321每个产生会话密钥Ks(用于共享使用)。
在步骤S102中,主机302产生命令分组363并且输出它到驱动单元301。在步骤S102中产生并输出的命令分组363组成报告密钥命令,在这个例子中,该命令请求初始化向量IV的传递。
在步骤S112中,驱动单元301接收报告密钥命令。在步骤S113中,驱动单元301产生初始化向量IV。在步骤S114中,驱动单元301输出产生的初始化向量IV到主机302。初始化向量IV不改变地输出到主机302。
在步骤S103中,主机303接收从驱动单元301输出的初始化向量IV。
如所述,初始化向量IV可以不改变地从驱动单元301传递到主机302。或者,初始化向量IV在输出到主机302时可以加密。
初始化向量IV是随机改变的数,因为它由随机数产生设备315使用随机数产生。与会话密钥Ks不同,初始化向量IV不需要特别地隐藏。因为那个原因,如上参考图14所述,初始化向量IV可以以不加密的形式传递。
仍然存在显然的前提,推荐初始化向量IV最好不可预测。最好通过初始化向量IV的传递之前将其加密来满足该前提,以便改善安全性。
如果传递之前为了更高的安全性要加密初始化向量IV,就如图15中所示发生涉及的步骤。在主机302一侧,基本上以与图14中的步骤S101到S103相同的方式执行步骤S131到S133。差别是在步骤S103中接收的初始化向量IV接收时需要解密,因为它已经加密。
在驱动单元301的一侧,基本上以与图14中的步骤S111到S114相同的方式执行步骤S141到S144。差别是初始化向量IV在步骤S143中产生之后,它使用会话密钥Ks被加密,并且加密的初始化向量IV(E[Ks,IV])在步骤S144中传递到主机302。
当主机302发出传递初始化向量IV的请求时,驱动单元301如所述产生初始化向量IV,并传递它到主机302。不必说,驱动单元301将产生的初始化向量IV不仅传递到主机302,而且传递到驱动单元301内的加密设备312(图10)。
返回到图12的流程图的说明,在完成步骤S39中的初始化向量IV的传递之后,到达步骤S40(图13)。在步骤S40中,进行检查以确定是否进行再发初始化向量IV的请求。如果在步骤S40中发现进行初始化向量重发请求,就执行步骤S41到S43。
步骤S41到S43基本上与步骤S37到S38相同。下面参考图16更多说明关于该过程的这部分。在步骤S161中,主机301请求驱动单元301重发初始化向量IV。重发请求以正在输出的命令分组363的形式进行。说明性地,命令分组363与图14的步骤S102中发出的报告密钥命令相同。
在步骤S171中,驱动单元301接收报告密钥命令。在步骤S172中,驱动单元301再产生初始化向量IV。初始化向量IV的重新产生以与图14的步骤S113或图15的步骤S143相同的方式执行。在步骤S173中,重新产生的初始化向量IV传递到主机302。初始化向量IV可以加密或不改变地传递。
返回到图13的流程图的说明,如果在步骤S40中未检测到重发初始化向量IV的请求,或者如果在步骤S43中完成了与初始化向量IV的传递相关联的处理,那么到达步骤S44。
在步骤S44中,进行检查以确定是否进行传递扇区数据351的请求。检查由命令处理设备317完成,以确定是否从主机302接收到命令分组363、以及是否接收的命令分组363组成传递扇区数据351的请求。
如果在步骤S44中未检测到传递扇区数据351的请求,就重新到达步骤S40并且重复随后的步骤。如果在步骤S44中检测到传递扇区数据351的请求,就到达步骤S45。
在步骤S45中,进行检查以确定扇区传递计数器314上的计数器值N是否大于计数Nmax(即,N>Nmax的条件)。如果在步骤S45中未发现计数器值N大于计数Nmax,就到达步骤S46。只要计数器值N保持小于计数Nmax(即,满足N<Nmax的条件),扇区传递控制设备313被授权输出数据(即,被允许传递数据到主机302)。
在步骤S46中,扇区传递控制设备313传递数据到主机302。更特别地,在来自命令处理设备317的指令下,访问处理设备318控制扇区数据351从盘303的读取。在访问处理设备318的控制下,从盘303读取的扇区数据351提供给加密设备312。
加密设备312使用从认证处理设备311提供的会话密钥Ks和来自随机数产生设备315的初始化向量IV,加密扇区数据351。加密的扇区数据351在扇区传递控制设备313的控制下传递到主机302。在这种情况下,扇区数据351以2048字节(或2048字节的整数倍)的增量在UDF路径上传递。
当数据从加密设备312输出时,通知其扇区传递计数器314。在步骤S47中,扇区传递计数器314通过将值N增1(N+1)更新要管理的计数器值N,并且确定更新的值N作为新的计数器值N。扇区传递计数器314上的计数器值N更新之后,重新到达步骤S40并重复随后的步骤。
现在将参考图17的时序图关于传递扇区数据351说明更多。在步骤S201中,主机302发读命令。这是发出的从盘303读取扇区数据351的命令。写数据到盘303时将发出写命令,这一点随后将说明。
这里发出的读命令是一种类型的命令分组363,说明性地包含图18中所示的数据结构。在INCITS T10 WORKING DRAFT“Multimedia CommandSet-4(MMC-4).”中有命令的更多细节。
图18中所示的命令分组363表示读或写命令的格式。图18中显示的命令分组363中的数据字段中,这里将说明后面的说明中需要的那些。
“操作码”字段是容纳指示这个命令是读命令还是写命令的数据的字段。因此参考这个字段中所写的数据,允许已经从主机302接收到命令的驱动单元301确定接收的命令是读命令还是写命令。“操作码”字段占有1字节数据。
“逻辑块地址”字段是容纳开始读数据的位置的起始LBA的字段。如果命令分组363组成写命令,那么开始写数据的位置的起始LBA放在这个字段中。“逻辑块地址”字段占有4字节数据。
“传递长度”字段是这样的字段如果命令分组363是读命令,就容纳用于指明要读的扇区数的数据,或者如果命令分组363是写命令,就容纳用于指明要写的扇区数的数据。“传递长度”字段占有4字节数据。
在步骤S201中由主机302发出的命令分组363是这样的命令,在该命令中“操作码”字段具有指明读命令的值。这里假定包括在发出的读命令中的“传递长度”字段包含“N1”。
在步骤S201中发出的读命令在步骤S231中提供给驱动单元301的命令处理设备317。命令处理设备317参考提供的命令中的“操作码”字段,并且识别出这是读命令。然后命令处理设备317参考“逻辑块地址”字段以识别出开始读数据的地址,并且参考“传递长度”字段来发现在这种情况下“传递长度”=N3。
命令处理设备317发送识别的结果给访问处理设备318。根据由命令处理设备317给出的识别结果,访问处理设备318控制从盘303的数据读取。访问处理设备318说明性地执行地址翻译。
更特别地,访问处理设备318执行LBA/PSN翻译。LBA表示“逻辑块地址”,而PSN表示“物理扇区号”。LBA指明逻辑地址并且说明性地包括在读命令中。这是可以由驱动单元301和主机302以独立于盘303的物理媒体的方式共同处理的逻辑地址,从该盘303读数据。
如与LBA相反,PSN指明物理地址。虽然命令分组363包括LBA,这个地址只表示盘303上的逻辑地址;为了两方之间共同使用,需要时从盘303读取的实际物理地址PSN翻译为合适的逻辑地址。从物理地址(PSN)到逻辑地址(LBA)的翻译或相反翻译由访问处理设备318执行。
说明性地,关于盘303上具有特定物理扇区号的物理扇区,具有顺序的逻辑扇区号的逻辑扇区,被连续地分配给组成用户数据区一对用户可用的记录区一(未显示)的物理扇区。上述地址翻译的例子在INCITS T10WORKINGDRAFT“Multimedia Command Set-4(MMC-4).”中说明。
从LBA到PSN的翻译之后,在步骤S232中搜索盘303上由翻译的PSN指明的位置。搜索之后,光拾取(未显示)移到读数据的位置并执行其它有关操作,使得从盘303读取扇区数据351。这样取回的扇区数据351提供给加密设备312。
给加密设备312提供来自认证处理设备311的会话密钥Ks以及来自随机数产生设备315的初始化向量IV。加密设备312使用提供的会话密钥Ks和初始化向量IV进行加密扇区数据351。在步骤S232中,加密的扇区数据351(在这个例子中加密的扇区数据#1),在扇区传递控制设备313的控制下输出到主机302的解密设备322。
解密设备322通过使用从认证处理设备321提供的会话密钥Ks和来自驱动单元301的随机数产生设备315的初始化向量IV,解密提供的加密的扇区数据#1。以这种方式产生的扇区数据361发送到未显示的应用软件、显示单元或扬声器。
在驱动单元301和主机302之间重复上面的步骤。由驱动单元301读取一系列的物理扇区数据。即,在驱动单元301的寻道(seek)控制下从盘303读取扇区数据的序列,并提供给驱动单元301。
在步骤S233到S240中,应请求(即,响应发出的读命令)驱动单元301连续地加密取回的扇区数据,并且提供加密的数据给主机302。
传递扇区数据到主机302时,驱动单元301同时更新由扇区传递计数器314管理的计数器值N。说明性地,当在步骤S232中加密扇区数据351并且传递到主机302时,扇区传递计数器314上的计数器值N为更新增大1(如在步骤S47中执行的)。当重复计数器值N的更新时(即,当扇区数据连续地传递到主机302时),就到了计数器值N变得大于阈值Nmax(即,满足N>Nmax的条件)的时刻。
参考图17,假定进行设置使得(N1+N2)<Nmax<(N1+N2+N3)。在那种情况下,第(N1+N2+1)扇区数据在步骤S240中输出之后(即,由扇区传递计数器314管理的计数器值N已经达到(N1+N2+1)之后),连续地从盘303读取扇区数据,并且重复地加密和传递。随着计数器值N重复地增大1,最终满足N>Nmax的条件。
当满足N>Nmax的条件时,即当在步骤S45(图13)中的检查结果是肯定的(“是”)时,到达步骤S48(图17中的步骤S241)。
在步骤S48中(在步骤S241中),驱动单元301输出差错消息到主机302。如果驱动单元301中的扇区传递计数器314发现它正在计数的计数器值N大于阈值Nmax,那么扇区传递计数器314发指令给扇区传递控制设备313,以阻止由加密设备312发送的数据输出到主机301。
从扇区传递计数器314得到输出停止指令时,扇区传递控制设备313停止输出扇区数据,并且通知消息转发设备316已经接收到输出停止指令。从扇区传递控制设备313接收到那个通知后,消息转发设备316产生差错消息并发送它到主机302。这个差错消息使主机302认识到不能提供指明的数据。
消息表示驱动单元301不输出数据的状态。换句话说,现在取消了这样的状态,在该状态中作为由驱动单元301成功完成认证过程的结果授权数据输出,并且不允许输出数据。
因此上述实施例使改变已经建立的状态以便授权数据输出成为可能。差错消息输出之后,主机302可以发出指令以从盘303读取数据,但是将没有数据被读取以相应那个指令。
差错消息输出之后,停止从驱动单元301到主机302的数据发送。为了避免以这种方式停止数据输出,主机302只需要请求驱动单元301以适当的时控的方式发出初始化向量IV。
更特别地,请求发送初始化向量IV(如在图13的步骤S40中)复位扇区传递计数器314上的计数器值N到零(在步骤S42中)。这阻止满足N>Nmax的条件,从而阻止差错消息的输出(在步骤S48中)。
主机302周期性地请求发出初始化向量IV。周期性地进行请求说明性地表示每个发出初始化向量IV的请求之后,当发现积累的要传递的数据的数量超过预先确定的数据数量(如16M字节(或8K扇区))时,进行另一个对初始化向量IV发出的请求。或者,每个发出初始化向量IV的请求之后,另一个对IV发出的请求在预先确定的一段时间过去之后进行。
在任何情况下,主机302请求初始化向量IV以适合的时控方式发出。在过程正在正常(即合法地)执行时,驱动单元301周期性地执行步骤S41到S43。这导致扇区传递计数器314上的计数器值N周期性地复位到零。
如上所述采取的措施至少解决了下面的问题一旦驱动单元301和主机302已经互相认证,驱动单元301就输出被保护的数据到接收方(如由主机302启动的应用),如由该方指令的,而不管该方合法或不合法。另一个问题是连接两方的总线可能被第三方抽头,该第三方可能从总线盗窃数据并解密盗用的数据(用于非法使用)。
如所述,即从驱动单元301通过总线传递数据到主机302之前,首先通过使用会话密钥Ks加密被保护的数据(即,记录在盘303上的扇区数据351)来解决上面问题。对为盗窃数据而抽头总线的不道德的第三方,这使得难以将保护形式的被盗数据解密为纯文本数据。
另外,通过使用初始化向量IV加密感兴趣的数据,该初始化向量IV使用随机数随机改变。对以某种方式盗窃了被保护数据的第三方,这使得更难以将它解密为纯文本数据。
使初始化向量IV变化使第三方难于确定是否目标纯文本数据是特殊数据。这有助于阻止数据替换、窜改或其它数据滥用。适当地更新初始化向量IV,在使用单一密钥加密大量数据的情况下,可能避开使加密密钥(即会话密钥Ks)转变得容易预测的问题。
根据这个实施例,如上所述,停止数据的提供,除非主机302发指令以适当更新初始化向量IV。因此可能回避这样的问题一旦两方已经互相认证,就让驱动单元301输出被保护的数据到主机302,而不管是否接收方(如由主机302启动的应用)是否合法。
即,控制合法的驱动单元301以便只传递被保护的数据给合法的主机302。
尽管显示上面的实施例更新初始化向量IV,但或者可能更新会话密钥Ks用于加密。换句话说,主机302可以不发指令来重复地更新发出的初始化向量IV,而是发指令来重复地更新会话密钥Ks。
尽管如此,因为会话密钥Ks只在互相认证的过程成功完成之后产生,考虑到更新会话密钥Ks将需要的处理时间和性能,可能最好更新初始化向量IV。
虽然显示上面的实施例从盘303读取(即,再现)目标数据,但这不表示本发明的范围限于数据的再现。也可以将本发明应用于写(即,记录)数据到盘303。
图19是本发明应用到记录装置时有效的典型系统配置的方块图。
参考图19,记录装置中的驱动单元401写来自主机402的数据到驱动单元401中装载的盘303。驱动单元401包括认证处理设备411、解密设备412、扇区传递控制设备413、扇区传递计数器414、随机数产生设备415、消息转发设备416、命令处理设备417和访问处理设备418。
主机402包括认证处理设备421和加密设备422。
图19中显示的记录装置的结构基本上与图10中指示的再现装置的结构相同,因此将不进一步详细说明。下面只说明两个装置间的主要结构区别。
在图19的记录装置中,扇区数据451记录到盘403。要记录的扇区数据451由从主机402提供的扇区数据461组成。使用由认证处理设备421提供的会话密钥Ks,主机402的加密设备422加密从未显示的记录媒体或硬盘驱动器取回的扇区数据461。
由加密设备422加密的扇区数据461提供给扇区传递控制设备413。扇区传递控制设备413转发提供的扇区数据461给解密设备412。解密设备412通过使用从认证处理设备411提供的会话密钥Ks,解密接收的扇区数据461。这样解密的扇区数据461在访问处理设备418的控制下记录到盘403。
扇区传递计数器414对从扇区传递控制设备413输出到解密设备412的扇区数计数。记录装置的其它组件基本上与图10中显示的再现装置的配对物相同,并且它们的工作基本相同。
图19中的记录装置的驱动单元401基本执行与图12和13中的流程图相同的步骤,因此将不进一步说明这些步骤。以下通过重新参考图12和13的流程图,只说明由驱动单元401执行的不同步骤。
在步骤S44中,驱动单元401检查以确定是否存在记录扇区数据的请求。由命令处理设备417完成检查,确定是否从主机402接收到命令分组463、以及接收的命令分组463是否组成请求写扇区数据461的命令(即写命令)。
在步骤S46中,加密的扇区数据461提供给解密设备412并由其解密。解密的扇区数据461(451)写到盘403。其它步骤基本上与由再现装置执行的步骤相同。除非主机402周期性地请求发初始化向量IV,停止由驱动单元401写数据(停止从主机402的数据输出)。
上面的措施使得可能阻止主机402管理之下的被保护的数据非法输出并写到盘403。
下面参考图20的时序图说明与由图19中显示的记录装置记录数据相关联的步骤。基本处理与图17的时序图中的相同,因此将不进一步详细说明。主要的差别是在步骤S301中,主机402发送指明写数据的写命令。
在步骤S302中,主机402的加密设备422使用会话密钥Ks加密扇区数据461,并且发送加密的数据(加密的扇区数据#1)到驱动单元401。驱动单元401的扇区传递控制设备423转发提供的加密扇区数据#1给解密设备412。
解密设备412通过使用从认证处理设备411提供的会话密钥Ks、和由随机数产生设备415提供的初始化向量IV,解密提供的数据,从而产生扇区数据451。这样产生的扇区数据451在访问处理设备418的控制下写到盘403。
在上面的处理期间,扇区传递计数器414对从扇区传递控制设备413输出的扇区数计数,并且检查以确定是否正在计数的计数器值N已经变得大于值Nmax。当计数器值N变大时(即,当扇区数据连续地从扇区传递控制设备413输出时),就到了计数器值N变得大于阈值Nmax(即,满足N>Nmax的条件)的时刻。
参考图20,假定进行设置使得(NI+N2)<Nmax<(N1+N2+N3)。在那种情况下,在步骤S340中接收到第(N1+N2+1)扇区数据之后(即,由扇区传递计数器414管理的计数器值N已经达到(N1+N2+1)之后),扇区数据连续地写到盘403。然后随着计数器值N重复地增大1,最终满足N>Nmax的条件。
当满足N>Nmax的条件时,即当在步骤S45(图13)中的检查结果是肯定的(“是”)时,到达步骤S48(图20中的步骤S341)。
在步骤S48中(在步骤S341中),驱动单元401输出差错消息到主机402。如果驱动单元401的扇区传递计数器414发现计数器值N大于阈值Nmax,那么扇区传递计数器414发指令给扇区传递控制设备413,以阻止数据输出到解密设备412。
从扇区传递计数器414得到输出停止指令时,扇区传递控制设备413停止输出扇区数据,并且通知消息转发设备416已经接收到停止数据输出的指令。从扇区传递控制设备413接收到那个通知后,消息转发设备416产生差错消息并发送它到主机402。这个差错消息使主机402认识到不能写指明的数据。
所述消息表示没有数据从驱动单元401输入的状态。即,在这个状态下,禁止已经接收到差错消息的的主机402输出任何数据。
当执行上面的步骤时,也提供与由先前说明的再现装置提供的相同的效果。
以上述方式实现本发明有助于增强驱动单元和主机之间数据发送和接收中的安全性。
在前面的说明中,每个作为单独实体显示和说明再现装置(图10)和记录装置(图19)。可替代地,再现装置和记录装置可以安置在同一壳子中。在这种情况下,显然可能的是两个装置共享它们的一些组件,如随机数产生设备315(415),该组件在每个装置中执行相同的功能。
虽然显示上述例子采用CBC方案作为它们的加密和解密算法,但这只是本发明的示例而非限制。或者,本发明可以按照CFB(密码反馈)方案、OFB(输出反馈)方案或其它适合的方案实现。
上述第一个实施例显示驱动单元301(401)产生初始化向量IV。在下面要说明的本发明的第二个实施例中,将显示主机产生初始化向量IV。
图21是显示根据本发明第二个实施例的典型系统配置的的方块图。在该系统中,驱动单元501包括认证处理设备511、解密设备512、输入控制设备513、扇区传递计数器514、复位处理设备515、消息转发设备516、命令处理设备517和访问处理设备518。
系统中的主机502包括认证处理设备521、加密设备522、扇区传递计数器523、随机数产生设备524和开关525。
在图21显示的系统中,主机502提供加密的扇区数据561给驱动单元501。解密之后,扇区数据561作为扇区数据551写到盘503。
驱动单元501中的认证处理设备511和主机502中的认证处理设备521互相认证。
给主机502中的加密设备522提供要写到盘503的扇区数据561、和从认证处理设备511发送的会话密钥Ks。也给加密设备522提供由随机数产生设备524产生的随机数作为初始化向量IV。加密设备522使用会话密钥Ks和初始化向量IV,加密提供的扇区数据561并且发送它到驱动单元501。
从主机502接收加密的扇区数据561后,驱动单元501中的输入控制设备513传递输入数据到解密设备512。也给解密设备512提供由随机数产生设备524产生的初始化向量IV,向量IV在不同于传输扇区数据561的路径的路径上发送。
解密设备512使用从认证处理设备511提供的会话密钥Ks、和从主机502发送的初始化向量IV,执行它的解密过程。通过这个过程,解密设备512产生扇区数据551(与扇区数据561相同的数据)。这样产生的扇区数据551在访问处理设备518的控制下写到盘503。
当主机502输出扇区数据561时,安排扇区传递计数器523对要传递的(已经传递的)扇区数计数。设置开关525依赖于这样计数的扇区数切换。如随后将更详细说明的,在计数的扇区数(以下称为计数器值N)达到预先确定的计数(以下称为阈值Nmax)之前,发出发送密钥命令563以传递初始化向量IV。
在驱动单元501中也提供扇区传递计数器514。扇区传递计数器514对从输入控制设备513发送到解密设备512的扇区数计数。当计数的扇区数(以下称为计数器值M)达到预先确定的计数(以下称为阈值Mmax)时,扇区传递计数器514指令输入控制设备513不输入扇区数据并发指令给消息转发设备516以转发消息。
假定为主机502中的扇区传递计数器523设置的阈值Nmax小于为驱动单元514中的扇区传递计数器514设置的阈值Mmax(条件Nmax<Mmax)。
虽然这里假定当计数器值M到达阈值Mmax时,扇区传递计数器514指令输入控制设备513不输入扇区数据,但可以指令输入控制设备513不传递输入的扇区数据给解密设备512。
提供复位处理设备515,以复位扇区传递计数器514上的计数器值M到零。由命令处理设备517提供指令给复位处理设备515。
现在将说明上述结构的系统如何操作。首先参考图22的时序图要说明的是与初始化向量IV相关联的处理。主机502和驱动单元501分别在步骤S501和S521互相认证。只有成功完成互相认证之后控制才传递给下一个步骤。互相认证之后,驱动单元501中的认证处理设备511和主机502中的认证处理设备521每个产生会话密钥Ks(为共享使用)。
在步骤S502中,主机502产生发送密钥命令563并输出它到驱动单元501。在步骤S502中产生并输出的发送密钥命令563用于传递初始化向量IV。
在步骤S503中,产生并传递初始化向量IV。初始化向量IV的传递通过使用发送密钥命令563执行。驱动单元501分别在步骤S522和S523中接收发送密钥命令563和初始化向量IV。命令处理设备517转发接收的发送密钥命令563给复位处理设备515。
接收到发送密钥命令563之后,复位处理设备515发指令给扇区传递计数器514以复位计数器值M(到零)。发送包括在发送密钥命令563中的初始化向量IV到解密设备512。
如上所述,驱动单元501和主机502共享会话密钥Ks和初始化向量IV。下面参考图23的时序图说明两方之间共享会话密钥Ks和初始化向量IV之后所发生的。
在步骤S551中,主机502发送指示写扇区数据的写命令。在步骤S552中,主机502的加密设备522使用会话密钥Ks和初始化向量IV加密扇区数据561,并且发送加密的数据(总线加密的扇区数据)到驱动单元501。驱动单元501中的输入控制设备513转发提供的总线加密的扇区数据到解密设备512。
解密设备512使用来自认证处理设备511的会话密钥Ks、和由随机数产生设备524产生并提供的初始化向量IV,解密接收到的数据,从而产生扇区数据551。这样产生的扇区数据551在访问处理设备518的控制下写到盘503。
在上面的处理期间,主机502中的扇区传递计数器523对已经发送的扇区数计数,并且检查以确定正在计数的计数器值N是否已经变得大于值Nmax。当计数器值N变大时(即,当连续发送扇区数据时),就到了计数器值N变得大于阈值Nmax(即,满足N>Nmax的条件)的时刻。
当发现计数器值N大于阈值Nmax时,主机502发送发送密钥命令563。在图23的时序图中,在步骤S555中发送发送密钥命令563。
在步骤S585中,从主机502发送的发送密钥命令563由驱动单元501接收。随着发送密钥命令563的接收,复位驱动单元501的扇区传递计数器514。只要发送密钥命令563以适合的时控方式从主机502输出,那么扇区传递计数器514上的计数器值M将不会超过阈值Mmax。这阻止了输入控制设备513拒绝数据输入的状态。因此允许扇区数据连续地写到盘503。
现在将说明驱动单元501和主机502中的每个如何工作。首先通过参考图24和25的流程图说明由主机502执行的处理。在步骤S601中,主机502检查以确定是否正在启动适合的应用。适合的应用是写数据到驱动单元501中装载的盘503必需的应用。
如果在步骤S601中发现启动了应用,到达步骤S602。在步骤S602中,进行检查以确定是否驱动单元501中装载了盘503。如果在步骤S602中发现驱动单元501中装载了盘503,就到达步骤S503,在该步骤中驱动单元501和主机502互相认证。驱动单元501和主机502每个产生会话密钥Ks(用于共享)。
在步骤S604中,进行检查以确定是否完成会话密钥Ks的产生。重复步骤S603和S604直到发现完成会话密钥Ks的产生。
如果在步骤S604中发现完成会话密钥Ks的产生,就到达步骤S605。在步骤S605中,产生初始化向量IV。在步骤S606中,产生发送密钥命令563。在步骤S607中,通过使用产生的发送密钥命令563发送初始化向量IV到驱动单元501。
在步骤S608中,扇区传递计数器523上的计数器值N设置到零。在步骤S609中(图25),进行检查以确定是否要发送写命令。如果发现要发送除了写命令的命令,到达步骤S610。在步骤S610中,执行与其它命令有关的处理。
如果在步骤S609中发现要发送写命令,就到达步骤S611。在步骤S611中,扇区传递计数器523上计数的计数器值N更新到N+L。参考字符L代表写在传递长度字段中作为写命令一部分的值。因为传递长度是指明先前提到的要写的扇区数的数据,所以值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。在步骤S617中,产生并发送写命令。在步骤S618中,由加密设备522加密扇区数据561,并且加密的扇区数据561发送到驱动单元501。
当由主机502正在执行上面的处理时,由驱动单元501执行图26和27的流程图中显示的步骤。
在步骤S631中,驱动单元501检查以确定是否装载盘503。如果在步骤S631中发现驱动单元501中装载了盘503,就到达步骤S632。在步骤S632中,进行检查以确定是否正在由主机502启动适合的应用。
如果在步骤S632中发现所述应用启动了,就到达步骤S633。在步骤S633中,驱动单元501和主机502互相认证。驱动单元501和主机502每个产生会话密钥Ks(为了共享使用)。
在步骤S634中,进行检查以确定是否完成会话密钥Ks的产生。重复步骤S633和S634直到发现会话密钥Ks的产生完成。当在步骤S634中发现会话密钥Ks的产生完成时,到达步骤S635。
在步骤S635中,扇区传递计数器514上的计数器值M设置为阈值Mmax。M=Mmax建立后,扇区传递计数器514发出指令,阻止输入控制设备513从主机502输入数据。
在步骤S636中(图27),进行检查以确定是否接收到发送密钥命令563。如果发现接收到发送密钥命令563,就到达步骤S637。在步骤S637中,接收到初始化向量IV,发送该初始化向量IV以响应发送密钥命令563。在接收到发送密钥命令563的情形,复位处理设备515发指令给扇区传递计数器514以复位计数器值M到零。
得到该指令后,扇区传递计数器514在步骤S638中复位计数器值M到零。当扇区传递计数器514上的计数器值M复位到零时(即,当使计数器值小于阈值Mmax时),授权输入数据到输入控制设备613。
在步骤S639中,提供初始化向量IV给解密设备512。在步骤S640中,进行检查以确定是否接收到写命令564。如果在步骤S640中未发现接收到写命令564,就重新到达步骤S636并重复随后的步骤。如果在步骤S640中发现接收到写命令564,就到达步骤S641。
在步骤S641中,进行检查以确定是否扇区传递计数器514上的计数器值M加上传递长度的值L(即,M+L)大于阈值Mmax(即,是否满足M+L>Mmax的条件)。如果在步骤S641中发现不满足M+L>Mmax的条件,就到达步骤S642。在步骤S642中,计数器值M更新到M+L。M+L>Mmax的条件不满足意味着授权输入数据到输入控制设备513的状态。
在步骤S643中,接收到加密的扇区数据561。接收的扇区数据561由解密设备512解密并写到盘503作为扇区数据551。
如果在步骤S641中发现满足M+L>Mmax的条件,就到达步骤S644。在满足M+L>Mmax的条件的情形,扇区传递计数器514发指令给输入控制设备513,以停止输入扇区数据并指令消息转发设备516发送消息。
要从消息转发设备516发送的消息是差错消息,它使主机502认识到未授权输入扇区数据(即未允许写扇区数据到盘503)。在步骤S644中发送差错消息的情形,重新到达步骤S636并重复随后的步骤。
当输出差错消息时,主机502认识到驱动单元501所处的状态,并且进行发发送密钥命令并提供初始化向量IV。当在步骤S636中发现接收到发送密钥命令时,就到达步骤S637并且执行随后的步骤。这再次导致授权输入扇区数据的状态。
当由主机502产生初始化向量IV从而如所述管理向量IV的有效期(服务生存期)时,驱动单元和主机之间的数据发送和接收中的安全性增强。
因此上述的第二个实施例提供与由先前说明的第一个实施例提供的好处相同的好处。
可以由硬件或软件执行上述步骤和过程的系列。对发生的基于软件的处理,组成软件的程序可以预先并入计算机的专用硬件,或者使用时从合适的记录媒体安装到通用个人计算机等设备中,该设备能够根据安装的程序执行各种功能。
提供给用户的记录媒体不仅作为除处理该媒体的它们的计算机外的封装媒体,并且包括磁盘(包括活动盘)、光盘(包括CD-ROM(致密盘-只读存储器)和DVD(数字通用盘))、磁光盘(包括MD(迷你盘注册商标))或半导体存储器,每个媒体承载必要的程序;而且也以ROM或硬盘驱动器的形式,每个容纳程序并且预先并入用户的计算机。
在这个说明中,说明记录媒体上提供的程序的步骤不仅表示要以说明的顺序(即在时间系列基础上)执行的过程,而且表示可以并行或单独执行而不按时间顺序的过程。
在这个说明中,术语“系统”指由多个组件设备或装置组成的整个配置。
权利要求
1.一种信息处理装置,包含传递控制装置,用于控制数据的传递;计数装置,用于对所述传递控制装置已经控制所述数据的传递的次数计数;第一确定装置,用于确定是否由所述计数装置计数的次数至少等于预先确定的阈值;第一指令装置,如果由所述第一确定装置发现所述次数至少等于所述阈值,那么该第一指令装置发指令给所述传递控制装置以停止所述数据的传递;产生装置,用于产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递由所述传递控制装置控制;第二确定装置,用于确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递由所述传递控制装置控制;以及第二指令装置,如果由所述第二确定装置发现提供所述初始化向量的指令被给出,那么该第二指令装置发指令给所述产生装置以产生所述初始化向量,同时发指令给所述计数装置以复位已经计数的次数。
2.根据权利要求1所述的信息处理装置,进而包含输出装置,如果由所述第一指令装置给出指令,那么该输出装置输出消息到所述外部装置,该消息说所述数据的传递被停止。
3.一种信息处理方法,包含以下步骤控制数据的传递;对所述传递控制步骤已经控制所述数据的传递的次数计数;第一次确定在所述计数步骤中计数的次数是否至少等于预先确定的阈值;如果在所述第一次确定步骤中发现所述次数至少等于所述阈值,那么在所述传递控制步骤中第一次发出指令以停止所述数据的传递;产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递在所述传递控制步骤中控制;第二次确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递在所述传递控制步骤中控制;以及如果在所述第二次确定步骤中发现提供所述初始化向量的指令被给出,那么在所述产生步骤中第二次发出指令以产生所述初始化向量,同时在所述计数步骤中给出指令以复位已经计数的次数。
4.一种程序,用于使计算机执行包含下述步骤的过程控制数据的传递;对所述传递控制步骤已经控制所述数据的传递的次数计数;第一次确定在所述计数步骤中计数的次数是否至少等于预先确定的阈值;如果在所述第一次确定步骤中发现所述次数至少等于所述阈值,那么在所述传递控制步骤中第一次发出指令以停止所述数据的传递;产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递在所述传递控制步骤中控制;第二次确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递在所述传递控制步骤中控制;以及如果在所述第二次确定步骤中发现提供所述初始化向量的指令被给出,那么在所述产生步骤中第二次发出指令以产生所述初始化向量,同时在所述计数步骤中给出指令以复位已经计数的次数。
5.一种记录媒体,它记录计算机可读的程序,用于使计算机执行包含下述步骤的过程控制数据的传递;对所述传递控制步骤已经控制所述数据的传递的次数计数;第一次确定在所述计数步骤中计数的次数是否至少等于预先确定的阈值;如果在所述第一次确定步骤中发现所述次数至少等于所述阈值,那么在所述传递控制步骤中第一次发出指令以停止所述数据的传递;产生初始化向量,用于在加密或解密所述数据中使用,该数据的传递在所述传递控制步骤中控制;第二次确定是否提供所述初始化向量的指令由外部装置给出,向和从该外部装置发送和接收所述数据,该数据的传递在所述传递控制步骤中控制;以及如果在所述第二次确定步骤中发现提供所述初始化向量的指令被给出,那么在所述产生步骤中第二次发出指令以产生所述初始化向量,同时在所述计数步骤中给出指令以复位已经计数的次数。
全文摘要
提供一种能够高安全地发送/接收数据的信息处理设备和方法、程序以及记录媒体。主机由预先确定的总线连接到驱动设备,通过该总线发送和接收数据。主机周期性地请求驱动设备发出用于数据的加密和解密的初始化向量IV,该数据通过总线发送和接收。当驱动设备已经接收到请求时,它产生初始化向量IV并提供它给主机。如果不周期性地执行这样的过程,驱动设备就停止到主机的数据输出。可以应用本发明到个人计算机,该计算机包含用于再现记录在记录媒体上的数据的驱动设备。
文档编号H04L9/10GK1922817SQ20058000563
公开日2007年2月28日 申请日期2005年1月6日 优先权日2004年1月9日
发明者木谷聪 申请人:索尼株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1