网络设备与其传输流封包的解密方法与流程

文档序号:14779134发布日期:2018-06-26 10:15阅读:185来源:国知局
本发明是有关于一种数据解密技术,且特别是有关于一种网络设备与其传输流封包的解密方法。
背景技术
::近来,各种多媒体数据已广泛地被提供给用户装置,如电视、手机、电脑及机顶盒等多媒体串流处理装置。多媒体串流(Streaming)是指将一连串的多媒体数据压缩后,透过网路即时传输影音的一种技术。用户端并不会将多媒体数据实际拷贝一份存放在本机端,而是直接由缓冲存储器(Buffer)读取播放后丢弃,因此可节省本机端磁碟储存空间。一般来说,多媒体提供端系依据国际组织所制定的标准与格式来产生用户端所接收的多媒体串流。像是,多媒体提供端可根据国际标准组织(ISO)基媒体档案格式(BMFF)而以片段档的形式提供多媒体内容。可知的,对于多媒体内容的进行加密、解密、编码、解码、分割、封包化…等串流处理可直接影响多媒体串流处理装置播放多媒体内容的效能。多媒体串流的加解密处理即为维护知识产权而执行,因此多媒体串流处理装置必须利用密钥来解密。举例而言,AES(AdvancedEncryptionStandard)是一种对称式(symmetric)的加密演算法,是透过对每个固定大小的4x4位元区块(16bytes)进行多次交互置换和XOR运算。AES的优点是对于数据量庞大的档案加解密的速度较快,而且容易透过硬件实作且运算所需要的存储器较少。于现今ISO-BMFF的格式标准中,经由AES加密之多个传输流(transportstream,TS)封包内的净荷数据之间是连续且具有关联性的。具体而言,多媒体内容提供端是透过对多媒体内容进行串链连续式的加密运算,再将加密后的密文数据分段并封包化成多个传输流封包。基此,以应用AES加密技术的ISO-BMFF的格式标准来说,由于AES加密技术规范了加解密单位区块的数据长度为16bytes,因此若一个传输流封包内的净荷数据量不是加解密单位区块(例如:16bytes)的整数倍,则该传输流封包的解密过程就会产生无法解密的残余数据(残余数据的数据量例如是1~15bytes)。上述的残余数据需等待多媒体串流处理装置接收到下一个传输流封包才有办法进行解密。也就是说,如何在不大幅更动硬件设计又不增加软件设计负担的情况下,让多媒体串流处理装置可即时且正确的对基于连续式加密运算而产生的传输流封包进行解密实为本领域技术人员所关心的重要议题之一。技术实现要素:有鉴于此,本发明提供一种网络设备与其传输流封包的解密方法,不会受限于传输流封包的净荷数据长度且可提升解密传输流的效能。本发明提供一种传输流封包的解密方法,适用于基于一密文区块链(Cipher-blockchaining)模式进行解密的一网络设备。所述方法包括下列步骤。解析当前传输流封包的包头而获取识别码。若上述的当前传输流封包为加密封包,依据上述的识别码查找对应至识别码的解密必须信息与未解密残余信息。结合上述的未解密残余信息与上述的当前传输流封包的净荷数据而利用上述的解密必须信息进行一解密运算。之后,更新上述的识别码所对应的解密必须信息,并将上述的当前传输流封包的另一未解密残余信息取代上述的未解密残余信息,以储存上述的当前传输流封包的另一未解密残余信息。从另一观点来看,本发明提供一种网络设备,基于一密文区块链模式进行解密。上述的网络设备包括封包接收电路、缓存存储器、暂存存储器,以及处理与解密电路。封包接收电路接收一当前传输流封包。缓存存储器,耦接封包接收电路,储存上述的当前传输流封包。暂存存储器储存解密必须信息与未解密残余信息。处理与解密电路耦接上述的缓存存储器与上述的暂存存储器,解析上述的当前传输流封包的包头而获取一识别码。若上述的当前传输流封包为加密封包,上述的处理与解密电路依据上述的识别码查找对应至识别码的上述的解密必须信息与上述的未解密残余信息,并结合上述的未解密残余信息与上述的当前传输流封包的净荷数据而利用上述的解密必须信息进行解密运算。上述的处理与解密电路更新上述的识别码所对应的解密必须信息,并将上述的当前传输流封包的另一未解密残余信息取代上述的未解密残余信息,以储存上述的当前传输流封包的另一未解密残余信息。基于上述,在本发明的一实施例中,在完成一个传输流封包的解密运算后,上述传输流封包的尾端上无法解密的未解密残余信息与更新后的解密必须信息将储存至暂存存储器。因此,处理与解密电路可在解密下一个传输流封包时依据特定的识别码读取暂存存储器以获取残余数据信息与解密必须信息。之后,藉由结合暂存存储器中的残余数据信息与上述下一个传输流封包中加密过的净荷数据,处理与解密电路可继续对上述下一个传输流封包进行解密运算。如此一来,解密基于密文区块链模式而加密的多媒体串流可在软件无须作额外配置的条件下完成,且解密的效能可大幅提升且不受限于传输流封包内的净荷数据长度。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。附图说明图1是依据本发明一实施例所绘示的网络设备的方块图。图2是依据本发明的一实施例所绘示的传输流封包的解密方法的流程图。图3是依据本发明一实施例所绘示的解密运算的示意图。图4是依据本发明一实施例所绘示的传输流封包的解密方法的示意图。图5是依据本发明的一实施例所绘示的传输流封包的解密方法的流程图。图6是依据本发明的一实施例所绘示的更新解码必须信息与储存未解密残余信息的流程图。附图标记说明200:串流提供者100:网络设备110:封包接收电路120:缓存存储器130:暂存存储器140:处理与解密电路IV1:解密向量CW:金钥C21、C22、C23:密文区块P21、P22、P23:明文区块S301~S304、S501~S510、S601~S605:步骤TS1~TS4、TS1’~TS4’:传输流封包M1、M2、M3:存储器区块S1:起始位元R1:残余数据41:结合密文区块k1:解密金钥IV2:解密向量40:解码运算42:跨包明文区块Px1:第一明文部分Px2:第二明文部分Tb:最末连续位元具体实施方式现将详细参考本示范性实施例,在附图中说明所述示范性实施例之实例。另外,凡可能之处,在图式及实施方式中使用相同标号的元件/构件代表相同或类似部分。图1是依据本发明一实施例所绘示的网络设备的方块图。请参照图1,网络设备100可经由无线或有线网路接收串流提供者200所提供之多媒体串流的多个传输流封包TS,并在对多媒体串流进行解密、解码、解压缩等处理操作后利用多媒体媒体播放装置显示画面或/与播放声音。在一范例实施例中,网络设备100例如是数字机顶盒(SetTopBox,STB)、电视游乐器或DVD播放器等具有多媒体串流处理能力的电子装置,但本发明对此并不限制。在一范例实施例中,网络设备100也可结合多媒体媒体播放装置为智能电视(SmartTV)、连网电视(InternetTV)、智能手机(smartphone)、平板电脑(tabletPC)、笔记型电脑(notebook)、掌上游戏机或桌上型电脑等兼具多媒体串流信号处理与画面显示能力的电子装置。于一范例实施例中,网络设备100包括封包接收电路110、缓存存储器120、暂存存储器130,以及处理与解密电路140。封包接收电路110可以包括有线网路卡与无线网路卡等通信元件。此外,封包接收电路110也可以包括各式信号线,而可透过此些信号线接收多媒体串流。封包接收电路110耦接至缓存存储器120,以将多媒体串流的传输流封包TS暂时性的储存下来。缓存存储器120为一随机存取存储器(RAM),例如是动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM),本发明对此不限制。缓存存储器120耦接至处理与解密电路140。进一步来说,封包接收电路110接收的传输流封包TS可能经过加密处理而包括密文内容,因此处理与解密电路140从缓存存储器120读取包括密文内容的传输流封包TS并进行解密运算而获取明文内容。接着,处理与解密电路140再将解密运算后的传输流封包TS储存至缓存存储器120。然而,在此情形下,术语「电路」不仅涵盖硬件组件,而且可能涵盖相关软件及/或固件组件。一范例实施例中,暂存存储器130为一记忆电路,例如是静态随机存取存储器,但本发明对此不限制。暂存存储器130储存有处理与解密电路140进行解密运算所需的信息,且处理与解密电路140可对暂存存储器130进行数据读取与数据写入操作。以下将以符合ISOBMFF格式的传输流封包为例进行说明,以清楚说明本发明。然而,但本发明并不限制于此,本发明提供的同一概念可由所属领域中的普通技术人员应用至其他格式标准。符合ISOBMFF格式的传输流封包包括包头(header)与净荷(payload),并且可能包括或不包括适配字段栏位(adaptationfield)。基于适配字段栏位的存在与否以及长度,净荷的数据量将小于等于184bytes。净荷里的净荷数据基于标准的规定可能是加密的或未加密的。此外,符合ISOBMFF格式的传输流封包系基于AES算法中的密文区块链(Cipher-blockchaining,CBC)模式来进行加密与解密。密文区块链模式是一种串链的加密方式,第一个数据区块必须加入初始解密向量和金钥进行加密,之后再将加密后的密文(CipherText)作为第二个数据区块的解密向量并利用金钥进行加密第二个数据区块,以此类推下去。对应的,图2是依据本发明一实施例所绘示的解密运算的示意图。请参照图2,第一个密文区块C21依据解密向量IV1与金钥CW被解密而产生明文区块P21,接着,第二个密文区块C22依据第一个密文区块C21与金钥CW被解密而产生明文区块P22。相似的,第三个密文区块C23依据第二个密文区块C22与金钥CW被解密而产生明文区块P23。也就是说,除了第一个密文区块以外,其他密文区块要解密时候所需要的解密向量就是前一个密文区块。再者,各个密文区块的数据长度彼此相同且可视为一加解密单位区块。在此前提下,本发明可针对净荷数据量非为加解密单位区块之整数倍的已加密传输流封包进行解密。图3是依据本发明的一实施例所绘示的传输流封包的解密方法的流程图。本范例实施例的方法适用于图1所示的网络设备100,以下即搭配图1所示的各模组与元件来说明本实施例的详细步骤。当处理与解密电路140从缓存存储器120获取当前传输流封包后,于步骤S301,处理与解密电路140解析当前传输流封包的包头而获取识别码。于此,上述的识别码例如为传输流封包的分组识别符(PacketIdentifier,PID)与传输流识别码(TransportStreamIdentifier,TSID)其中之一或组合。PID系用以标示传输流封包的数据分组属性,而TSID是用以标示传输流的标示码。于一实施例中,处理与解密电路140可透过解析当前传输流封包的包头而获取由包头所承载之PID与TSID,但本发明并不限制于此。于另一实施例中,处理与解密电路140可透过解析当前传输流封包的包头而获取由包头所承载之PID,而TSID可以是网络设备100的软件依据传输流的频道信息或节目信息进行配置而得。之后,于步骤S302,若当前传输流封包为一加密封包,处理与解密电路140依据识别码查找对应至识别码的解密必须信息与未解密残余信息。具体而言,处理与解密电路140可依据当前传输流封包的包头来判断当前传输流封包是否为经过加密处理的加密封包。响应于判定当前传输流封包为加密封包,处理与解密电路140依据当前传输流封包之识别码进行查表,而依据当前传输流封包的识别码从暂存存储器130读取到解密必须信息与未解密残余信息。于一范例实施例中,上述的解密必须信息包括CBC模式所定义的解密金钥与解密向量。未解密残余信息包括位于先前传输流封包尾部的残余数据,上述残余数据的数据长度未达CBC模式所定义的加解密单位区块而无法进行解密运算。此外,于一范例实施例中,未解密残余信息更包括残余数据长度与残余数据记忆地址。接着,在依据识别码从暂存存储器130获取未解密残余信息与解密必须信息之后,于步骤S303,处理与解密电路140结合未解密残余信息与当前传输流封包的净荷数据而利用解密必须信息进行一解密运算,并将解密结果储存回缓存存储器120。需说明的是,若当前传输流封包的净荷数据加上先前传输流封包的残余数据也非为加解密单位区块的整数倍时,于步骤S304,处理与解密电路140将更新识别码所对应的解密必须信息,并将当前传输流封包的另一未解密残余信息取代未解密残余信息,以储存位于当前传输流封包尾部且尚未解密的另一未解密残余信息。图4是依据本发明一实施例所绘示的传输流封包的解密方法的示意图。为清楚说明本发明,于此假设处理与解密电路140可于一个直接存储器存取(DirectMemoryAccess,DMA)周期内获取两个传输流封包,但本发明并不限制于此。一般来说,处理与解密电路140可于一个DMA周期内存取256个传输流封包。请参照图4,于本范例实施例中,于第一DMA周期内,处理与解密电路140从缓存存储器120获取传输流封包TS1与传输流封包TS2,并将解密运算后所产生的传输流封包TS1’与传输流封包TS2’写入至缓存存储器120。相似的,于第二DMA周期内,处理与解密电路140从缓存存储器120获取传输流封包TS3与传输流封包TS4,并将解密运算后所产生的传输流封包TS3’与传输流封包TS4’写入至缓存存储器120。关于如何解密与将解密结果写入缓存存储器120将于后续进一步说明。此外,于本范例实施例中,暂存存储器130包括第一存储器区块M1、第二存储器区块M2、第三存储器区块M3,以及第四存储器区块M4。具体而言,传输流封包TS2内不足以被解密的残余数据R1与其他未解密残余信息将被纪录于第四存储器区块M4,且第二存储器区块M2的解密向量IV2也会被更新为位于残余数据R1之前的最末密文区块。解密金钥k1则是纪录于第三存储器区块M3。于本实施例中,当进入第二DMA周期,处理与解密电路140获取传输流封包TS3并解析传输流封包TS3的包头而获取传输流封包TS3的PID,而流封包TS3的TSID可以是网络设备100的软件依据传输流的节目信息或频道信息而配置。接着,处理与解密电路140可依据传输流封包TS3的识别码进行查表。纪录于第一存储器区块M1的查找表格范例如表(1)所示,但并非用以限定本发明。表(1)TSIDPID第一存储器地址第二存储器地址第三存储器地址tsid1pid1addr1addr2addr3tsid2pid2addr4addr5addr6依据表(1),假设传输流封包TS3的TSID与PID分别为‘tsid1’与‘pid1’,则处理与解密电路140依据传输流封包TS3的TSID与PID查找储存于第一存储器区块M1的查找表,而获取第一存储器地址‘addr1’、第二存储器地址‘addr2’与第三存储器地址‘addr3’。之后,请参照图4,处理与解密电路140依据第一存储器地址‘addr1’读取第二存储器区M2块而获取解密向量IV2,依据第二存储器地址‘addr2’读取第三存储器区块M3而获取解密金钥k1,并依据第三存储器地址‘addr3’读取第四存储器区块M4而获取未解密残余信息。之后,处理与解密电路140结合传输流封包TS3的净荷数据的多个起始位元S1与传输流封包TS2的残余数据R1而产生一结合密文区块41,并利用解密金钥k1与解密向量IV2对结合密文区块41进行解码运算40而获取一跨包明文区块42。需特别说明的是,处理与解密电路140已于第一DMA周期内将先前传输流封包TS2的残余数据R1与经解密先前传输流封包TS2而获取的多个明文区块一并储存至缓冲存储器120。也就是说,于第一DMA周期内的传输流封包TS2’包括尚未解密的数据。因此,于第一DMA周期内,处理与解密电路140利用跨包明文区块42的第一明文部分Px1取代先前传输流封包TS2’的残余数据,以更新缓冲存储器120中先前传输流封包TS2’的至少一最末连续位元Tb。如此一来,先前传输流封包TS2’内的数据皆以完成解密。此外,处理与解密电路140也将跨包明文区块42的第二明文部分Px2纪录至缓冲存储器120,并同样继续对传输流封包TS3内的后续密文区块进行解密。于本实施范例中,处理与解密电路140可透过解析当前传输流封包TS3的包头而计算当前传输流封包TS3的净荷数据长度。例如是依据适配字段栏位的长度进行计算。之后,处理与解密电路140利用当前传输流封包TS3的净荷数据长度与查找到的残余数据R1的残余数据长度(图4以6bytes为例)的总和,而获取当前传输流封包TS3的另一残余数据长度(图4以2bytes为例)。于是,处理与解密电路140依据另一残余数据长度获取当前传输流封包TS3的另一残余数据R2以及另一残余数据记忆地址。之后,透过取代第四存储器区块M4中的传输流封包TS2的未解密残余信息,而储存另一未解密残余信息的另一残余数据长度、另一残余数据,以及另一残余数据记忆地址于第四存储器区块M4。相似的,处理与解密电路140将再次利用当前传输流封包TS3的净荷数据的最末密文区块来更新识别码(例如TSID与PID)所对应之解密向量。如此一来,对应至相同TSID与PID的传输流封包可顺畅的且连续性的被解码。图5是依据本发明的一实施例所绘示的传输流封包的解密方法的流程图。本范例实施例的方法适用于图1所示的网络设备100,以下即搭配图1所示的各模组与元件来说明本实施例的详细步骤。于步骤S501,处理与解密电路140初始化暂存存储器130中的未解密残余信息、解密必须信息,以及纪录有识别码的一查找表至暂存存储器130。于步骤S502,处理与解密电路140解析当前传输流封包的包头而获取当前传输流封包的识别码。于步骤S503,处理与解密电路140判断当前传输流封包是否为加密封包。更具体而言,处理与解密电路140依据包头内的信息来判断当前传输流封包为加密封包或未加密封包。若当前传输流封包为未加密封包(步骤S503判断为否),处理与解密电路140直接将该当前传输封包输出回缓冲存储器120。若当前传输流封包为加密封包(步骤S503判断为是),于步骤S504,处理与解密电路140判断是否依据识别码查找到对应至识别码的解密必须信息。若未查找到解密必须信息(步骤S504判断为否),于步骤S510,处理与解密电路140直接将尚未解密的当前传输封包输出至缓冲存储器120。若查找到解密必须信息(步骤S505判断为否),于步骤S505,处理与解密电路140先输出当前传输流封包的包头与适配字段至缓冲存储器120。需说明的是,包头内用以识别加密与否的指示符会被更改。之后,于步骤S506,处理与解密电路140结合未解密残余信息与当前传输流封包的净荷数据而利用解密必须信息进行解密运算,并将解密结果输出至缓冲存储器120。于步骤S507,处理与解密电路140更新识别码所对应的解密必须信息,并将当前传输流封包的另一未解密残余信息取代未解密残余信息,以储存当前传输流封包的另一未解密残余信息。于步骤S508,处理与解密电路140判断缓冲存储器120内是否尚有传输流封包需要解密。若步骤S508判断为是,回到步骤S502,以继续进行解密下一个传输流封包。图6是依据本发明的一实施例所绘示的更新解码必须信息与储存未解密残余信息的流程图。本范例实施例的方法适用于图1所示的网络设备100,以下即搭配图1所示的各模组与元件来说明本实施例的详细步骤。于步骤S601,处理与解密电路140透过解析当前传输流封包的包头而计算当前传输流封包的净荷数据长度。于步骤S602,处理与解密电路140利用净荷数据长度与查找到的残余数据长度的总和,获取当前传输流封包的另一残余数据长度。于步骤S603,处理与解密电路140依据另一残余数据长度获取该当前传输流封包的另一残余数据以及另一残余数据记忆地址。于步骤S604,处理与解密电路140藉由取代未解密残余信息,而储存另一未解密残余信息的另一残余数据长度、另一残余数据,以及另一残余数据记忆地址。于步骤S605,处理与解密电路140利用当前传输流封包的净荷数据的一最末密文区块来更新识别码所对应的解码向量。综上所述,在本发明的一实施例中,传输流封包的尾端上无法被解密的未解密残余信息与更新后的解密必须信息将被储存至暂存存储器。由于传输流封包之包头内的识别码可用以辨识传输流封包是否属于同一连续性的加密运算而产生出来的,因此本发明可依据上述的识别码读取暂存存储器以获取残余数据信息与解密必须信息,以藉由结合残余数据信息与传输流封包中加密过的净荷数据来进行解密运算。如此一来,在软件无须作额外配置的条件下,解密基于密文区块链模式而加密的多媒体串流可不受限于传输流封包内的净荷数据长度而完成。除了解密效能因为硬件的执行而提升之外,本发明并不会因为传输流封包内夹带着未加密封包而需要额外的配置,再者,由于用以纪录余数据信息与解密必须信息的暂存存储器所需要的记忆容量并不大,因此硬件所需成本不高且不会造成电路面积大幅增加的现象。虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属
技术领域
:中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的权利要求所界定者为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1