数据解密电路与方法

文档序号:8397956阅读:487来源:国知局
数据解密电路与方法
【技术领域】
[0001]本发明是关于数据解密电路与方法,尤其是关于利用软件与硬件互相搭配的数据解密电路与方法。
【背景技术】
[0002]请参阅图1,其是习知高频宽数字内容保护(High-Bandwidth Digital ContentProtect1n,以下简称HDCP)的数据解密流程的示意图。请同时参阅图2,其是习知一个传输串流(transport stream, TS)封包的组成示意图。如图2所示,一个传输串流封包200包含TS标头数据、基本封包流(packetized elementary streams,以下简称PES)标头数据以及基本比特流(elementary stream, ES),或称为承载数据(payload)。在HDCP的标准中,TS标头数据包含一个名为承载数据单元起始指示(payload unit start indicator)的旗标,用来指示传输串流封包是否包含PES标头数据。PES标头数据包含用来解密的私有数据(private data),而私有数据主要包含streamCtr (流控制)数据及inputCtr (输入控制)数据。请注意,并非每个传输串流封包皆包含PES标头数据,实作时可以藉由承载数据单元起始指示旗标来判断。当传输串流封包包含PES标头数据时,可以由私有数据中取出inputCtr数据来执行解密程序;当传输串流封包未包含PES标头数据时,inputCtr数据可以依据目前正在解密的数据段(例如长度为16字节)推知,inputCtr数据以HDCP每次解密的数据段为单位递增。请参阅图1,32位的streamCtr数据与64位的虚拟随机数(pseudo-random number)riv的较低的32位做异或(exclusive or, X0R)运算后,再与虚拟随机数riv的较高的32位合并而得到64位的中间数据,该中间数据再与64位的inputCtr数据合并形成具有128位的中间数据p。128位的会话密钥(sess1n key)Ks与128位的常数Ic128做异或运算后的结果与中间数据P —起经由进阶加密标准(Advanced Encrypt1nStandard,以下简称AES)运算后产生128位的密钥。一个数据段(block)长度(128位或16字节)的加密数据与密钥进行异或运算后即可得到该加密数据的原始数据(包含128位或16字节的数据)。上述的虚拟随机数riv及会话密钥Ks为传输串流的传送端与接收端互相沟通后所得的结果。
[0003]如图2所示,一个传输串流封包的长度为188字节,其中TS标头数据的长度为4字节,PES标头数据可能存在或不存在,而且没有固定的长度,如上所述,可以藉由承载数据单元起始指示旗标来判断PES标头数据是否存在。如果PES标头数据存在,其中包含其长度的信息。因此承载数据的长度即传输串流封包的长度(188字节)减去TS标头数据的长度(4字节)及PES标头数据的长度(如果PES标头数据存在)之后所剩余的数据长度。如前述,HDCP每次解密的数据段为16字节,承载数据可能包含若干数据段,然而承载数据的数据量有可能不是16字节的整数倍。因此进行数据解密的过程中,一个传输串流封包很可能会剩余一小段数据(小于16字节)未解密,该未解密的数据必须与下一个传输串流封包中的承载数据的部分数据结合,以形成一个完整的数据段来进行HDCP数据解密程序。
[0004]如果图1所示的HDCP解密程序完全由硬件执行,由于硬件缺乏弹性,上述结合两个原本分属不同传输串流封包的承载数据的动作将造成硬件设计上的困难,必须有额外的电路设计来应付不同的情况,因此容易造成设计上耗时及电路成本增加;而如果HDCP解密程序完全由软件执行,也就是透过程序代码的方式由运算单元(processing unit)来执行,则HDCP解密程序会占用许多运算单元的资源,造成运算单元的负担,可能拖累电子装置的效能。

【发明内容】

[0005]鉴于先前技术的不足,本发明的一目的在于提供一种数据解密电路与一种数据解密方法,以加快解密速度及增加解密流程的弹性。
[0006]本发明揭露了一种数据解密电路,用来解密一目前加密数据封包,该目前加密数据封包包含一标头数据及一承载数据,该数据解密电路包含:一运算单元,用来依据该标头数据及一虚拟随机数产生一第一数据,依据一会话密钥与一常数产生一第二数据,并依据该标头数据产生该承载数据的一长度信息及一起始位置信息;其中,该运算单元藉由执行程序代码来产生该第一数据、该第二数据、该长度信息及该起始位置信息;以及一解密计算电路,耦接该运算单元,用来依据该第一数据及该第二数据产生一解密密钥,以及依据该起始位置信息及该长度信息自该目前加密数据封包中取得该承载数据,并利用该解密密钥解密该承载数据。
[0007]本发明另揭露了一种数据解密方法,用来解密一目前加密数据封包,该目前加密数据封包包含一标头数据及一承载数据,该数据解密方法包含:利用一运算单元以执行程序代码的方式执行以下程序:(I)依据该标头数据及一虚拟随机数产生一第一数据;(2)依据一会话密钥与一常数产生一第二数据;以及(3)依据该标头数据产生该承载数据的一长度信息及一起始位置信息;将该第一数据、该第二数据、该长度信息及该起始位置信息传送至一解密计算电路;以及控制该解密计算电路执行以下程序:(I)依据该第一数据及该第二数据产生一解密密钥;(2)依据该起始位置信息及该长度信息自该目前加密数据封包中取得该承载数据;以及(3)利用该解密密钥解密该承载数据。
[0008]本发明另揭露了一种数据解密电路,用来解密一目前加密数据封包,该目前加密数据封包包含一标头数据及一承载数据,该数据解密电路包含:一运算单元,用来依据该标头数据产生该承载数据的一长度信息及一起始位置信息;其中,该运算单元藉由执行程序代码来产生该长度信息及该起始位置信息;以及一解密计算电路,耦接该运算单元,用来产生一解密密钥,以及依据该起始位置信息及该长度信息自该目前加密数据封包中取得该承载数据,并利用该解密密钥解密该承载数据。
[0009]本发明另揭露了一种数据解密方法,用来解密一目前加密数据封包,该目前加密数据封包包含一标头数据及一承载数据,该数据解密方法包含:控制一运算单元以执行程序代码的方式,依据该标头数据产生该承载数据的一长度信息及一起始位置信息;将该长度信息及该起始位置信息传送至一解密计算电路;以及控制该解密计算电路执行以下程序:(1)产生一解密密钥;(2)依据该起始位置信息及该长度信息自该目前加密数据封包中取得该承载数据;以及(3)以及利用该解密密钥解密该承载数据。
[0010]本发明的数据解密电路与数据解密方法利用软件搭配硬件来进行数据的解密。软件的好处在于具有弹性且容易修改,可以依据不同的加密数据封包的格式,来调整软件的设计,因此可以很容易找出加密数据封包的承载数据的位置。而硬件
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1