首页 / 专利库 / 电信 / 并行总线 / 一种数据处理的方法及装置

一种数据处理的方法及装置

阅读:802发布:2020-05-11

专利汇可以提供一种数据处理的方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 公开一种 数据处理 的方法及装置,涉及通信技术领域,可以解决 存储器 中存储的数据的安全性低的问题。本发明 实施例 通过MED装置接收数据写入命令,对待写入数据进行加密,并对待写入地址进行加扰,然后根据加扰后的待写入地址,将待写入数据的CRC码以及加密后的待写入数据存储至存储器中。本发明实施例提供的方案适于对数据进行处理时采用。,下面是一种数据处理的方法及装置专利的具体信息内容。

1.一种数据处理的方法,其特征在于,所述方法应用于数据处理的系统中,所述系统包括中央处理器CPU、至少一路高级高性能总线AHB、存储加解密MED装置以及存储器,所述方法包括:
所述MED装置接收至少一路AHB转发的数据写入命令;所述数据写入命令中包含待写入数据和待写入地址;
所述MED装置对所述待写入数据进行加密;
所述MED装置对所述待写入地址进行加扰;
所述MED装置确定每个加扰后的待写入地址所属的存储器区域;
所述MED装置并行执行加扰后的待写入地址属于不同存储器区域的数据写入命令;所述MED装置按照优先级从高到低的顺序执行加扰后的待写入地址属于相同存储器区域的数据写入命令;
所述MED装置根据加扰后的待写入地址,将所述待写入数据的循环冗余码校验CRC码以及加密后的待写入数据存储至所述存储器中。
2.根据权利要求1所述的数据处理的方法,其特征在于,在所述MED装置根据加扰后的待写入地址,将所述待写入数据的CRC码以及加密后的待写入数据存储至所述存储器中之后,所述方法还包括:
所述MED装置接收数据读取命令,所述数据读取命令中包含待读取地址;
所述MED装置根据所述待读取地址,从所述存储器中读取待读取数据以及所述待读取数据的CRC码;
所述MED装置根据从所述存储器中读取的所述待读取数据的CRC码对所述待读取数据进行CRC校验;
当所述CRC校验成功时,所述MED装置将解密后的待读取数据通过所述AHB发送至所述CPU。
3.根据权利要求1所述的数据处理的方法,其特征在于,所述MED装置接收数据读取命令,包括:
所述MED装置接收至少一路AHB转发的数据读取命令;
在所述MED装置接收至少一路AHB转发的数据读取命令之后,所述方法还包括:
所述MED装置确定每个待读取地址所属的存储器区域;
所述MED装置并行处理待读取地址属于不同存储器区域的数据读取命令;
所述MED装置按照优先级从高到低的顺序处理待读取地址属于相同存储器区域的数据读取命令。
4.根据权利要求3所述的数据处理的方法,其特征在于,在所述MED装置将解密后的待读取数据通过所述AHB发送至所述CPU之前,所述方法还包括:
S1、所述MED装置将所述待写入数据与第一轮密钥进行异或运算,得到第一加密数据;
S2、所述MED装置将所述第一加密数据分为N组,对所述第一加密数据中的N组数据并行进行S-box处理,得到第二加密数据,N为大于或等于2的正偶数;
S3、所述MED装置对所述第二加密数据进行置换操作,得到第三加密数据;
S4、所述MED装置将所述第三加密数据分为M组,通过M个LFSR对所述第三加密数据中的M组数据并行进行线性变换,得到第四加密数据;
S5、所述MED装置对所述第四加密数据进行移位操作,得到第五加密数据;
S6、所述MED装置将所述第五加密数据与第1+X轮密钥进行异或运算;
S7、将步骤S6得到的运算结果作为第一加密数据,循环执行上述步骤S2至步骤S6,在第一次执行步骤S6时,X=1,每循环执行一次S6,X加1,直至X=Y-2时,所述Y=8,将步骤S6的运算结果作为第六加密数据;
S8、所述MED装置将所述第六加密数据分为N组,对所述第六加密数据中的N组数据并行进行S-box处理,得到第七加密数据;
S9、所述MED装置对所述第七加密数据进行置换操作,得到第八加密数据;
S10、所述MED装置将所述第八加密数据与第Y轮密钥进行异或运算,得到加密完成的待写入数据。
5.根据权利要求4所述的数据处理的方法,其特征在于,所述MED装置对所述待读取数据进行解密,包括:
S1、所述MED装置将所述待读取数据与第Y轮密钥进行异或运算,得到第一解密数据;
S2、所述MED装置将所述第一解密数据进行置换操作,得到第二解密数据;
S3、所述MED装置将所述第二解密数据分为N组,对所述第二解密数据中的N组数据并行进行S-box处理,得到第三解密数据;
S4、所述MED装置将所述第三解密数据与第Y-X轮密钥进行异或运算,得到第四解密数据;
S5、所述MED装置将所述第四解密数据进行移位操作,得到第五解密数据;
S6、所述MED装置将所述第五解密数据分为M组,通过M个LFSR对所述第五解密数据中的M组数据并行进行线性变化,得到第六解密数据;
S7、所述MED装置对所述第六解密数据进行置换操作,得到第七解密数据;
S8、所述MED装置将所述第七解密数据分为N组,对所述第七解密数据中的N组数据进行S-box处理;
S9、所述MED装置将步骤S8得到的处理结果作为第三解密数据,循环执行上述步骤S4至步骤S8,在第一次执行步骤S4时,X=1,每执行一次S4,X加1,直至Y-X=2时,将步骤S8的处理结果作为第八解密数据;
S10、所述MED装置将所述第八解密数据与第一轮密钥进行异或运算,得到解密后的待读取数据。
6.一种数据处理的装置,其特征在于,所述装置应用于存储加解密MED装置中,所述装置包括:
接收单元,还用于接收至少一路AHB转发的数据写入命令,所述数据写入命令中包含待写入数据和待写入地址,并将所述数据写入命令提供给加密单元和加扰单元;
所述加密单元,用于对所述待写入数据进行加密;
所述加扰单元,用于对所述待写入地址进行加扰;
确定单元,用于确定每个加扰后的待写入地址所属的存储器区域;
写入单元,用于并行执行加扰后的待写入地址属于不同存储器区域的数据写入命令;
按照优先级从高到低的顺序执行加扰后的待写入地址属于相同存储器区域的数据写入命令;
所述写入单元,还用于根据所述加扰单元加扰后的待写入地址,将所述待写入数据的循环冗余码校验CRC码以及所述加密单元加密后的待写入数据存储至存储器中。
7.根据权利要求6所述的数据处理的装置,其特征在于,所述装置还包括:读取单元,校验单元,解密单元以及发送单元;
所述接收单元,还用于接收数据读取命令,所述数据读取命令中包含待读取地址,并将所述数据读取命令提供给所述读取单元;
所述读取单元,用于根据所述待读取地址,从所述存储器中读取待读取数据以及所述待读取数据的CRC码;
所述校验单元,用于根据所述读取单元从所述存储器中读取的所述待读取数据的CRC码对所述待读取数据进行CRC校验;
所述解密单元,用于对所述读取单元读取的待读取数据进行解密;
所述发送单元,用于当所述校验单元CRC校验成功时,将所述解密单元解密后的待读取数据通过所述AHB发送至CPU。
8.根据权利要求7所述的数据处理的装置,其特征在于,所述装置还包括:处理单元;
所述接收单元,还用于接收至少一路AHB转发的数据读取命令;
所述确定单元,还用于确定每个待读取地址所属的存储器区域;
所述处理单元,用于并行处理待读取地址属于不同存储器区域的数据读取命令;按照优先级从高到低的顺序处理待读取地址属于相同存储器区域的数据读取命令。
9.根据权利要求8所述的数据处理的装置,其特征在于,
所述加密单元,具体用于执行以下步骤S1至S10:
S1、将所述待写入数据与第一轮密钥进行异或运算,得到第一加密数据;
S2、将所述第一加密数据分为N组,对所述第一加密数据中的N组数据并行进行S-box处理,得到第二加密数据,N为大于或等于2的正偶数;
S3、对所述第二加密数据进行置换操作,得到第三加密数据;
S4、将所述第三加密数据分为M组,通过M个LFSR对所述第三加密数据中的M组数据并行进行线性变换,得到第四加密数据;
S5、对所述第四加密数据进行移位操作,得到第五加密数据;
S6、将所述第五加密数据与第1+X轮密钥进行异或运算;
S7、将步骤S6得到的运算结果作为第一加密数据,循环执行上述步骤S2至步骤S6,在第一次执行步骤S6时,X=1,每循环执行一次S6,X加1,直至X=Y-2时,所述Y=8,将步骤S6的运算结果作为第六加密数据;
S8、将所述第六加密数据分为N组,对所述第六加密数据中的N组数据并行进行S-box处理,得到第七加密数据;
S9、对所述第七加密数据进行置换操作,得到第八加密数据;
S10、将所述第八加密数据与第Y轮密钥进行异或运算,得到加密完成的待写入数据。
10.根据权利要求9所述的数据处理的装置,其特征在于,
所述解密单元,具体用于执行以下步骤S1至S10:
S1、将所述待读取数据与第Y轮密钥进行异或运算,得到第一解密数据;
S2、将所述第一解密数据进行置换操作,得到第二解密数据;
S3、将所述第二解密数据分为N组,对所述第二解密数据中的N组数据并行进行S-box处理,得到第三解密数据;
S4、将所述第三解密数据与第Y-X轮密钥进行异或运算,得到第四解密数据;
S5、将所述第四解密数据进行移位操作,得到第五解密数据;
S6、将所述第五解密数据分为M组,通过M个LFSR对所述第五解密数据中的M组数据并行进行线性变化,得到第六解密数据;
S7、对所述第六解密数据进行置换操作,得到第七解密数据;
S8、将所述第七解密数据分为N组,对所述第七解密数据中的N组数据进行S-box处理;
S9、将步骤S8得到的处理结果作为第三解密数据,循环执行上述步骤S4至步骤S8,在第一次执行步骤S4时,X=1,每执行一次S4,X加1,直至Y-X=2时,将步骤S8的处理结果作为第八解密数据;
S10、将所述第八解密数据与第一轮密钥进行异或运算,得到解密后的待读取数据。

说明书全文

一种数据处理的方法及装置

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种数据处理的方法及装置。

背景技术

[0002] 随着通信技术的不断发展,信息安全越来越得到大家的重视,对于一些重要的数据,一般都需要经过加密之后存储在存储器中,目前一般使用AES(Advanced Encryption Standard,高级加密标准)算法对即将存储在存储器中的数据进行加密。
[0003] 现有技术中,当发送端需要将数据传输至存储器中时,加密装置会采用AES算法对发送端发送的数据进行加密,进而将加密后的数据存储在存储器中,即存储器中存储的是经过AES算法加密后的数据,且数据的物理地址都是顺序排布的,攻击者可以通过对应的物理地址对数据进行定向攻击,或者攻击者可以通过对存储器中的数据进行错误注入来获取存储器中存储的数据,所以,采用现有技术中的加密算法对数据进行加密存储,仍然存在安全性差的问题。

发明内容

[0004] 本发明实施例提供一种数据处理的方法及装置,能够解决存储器中存储的数据的安全性低的问题。
[0005] 为达到上述目的,本发明实施例采用如下技术方案:
[0006] 第一方面,本发明实施例提供了一种数据处理的方法,该方法应用于数据处理的系统中,该系统包括中央处理器CPU、至少一路高级高性能总线AHB、存储加解密MED装置以及存储器,该方法包括:MED装置接收数据写入命令,数据写入命令中包含待写入数据和待写入地址,然后对待写入数据进行加密以及对待写入地址进行加扰,然后根据加扰后的待写入地址,将待写入数据的CRC码以及加密后的待写入数据存储至存储器中。由于在存储数据时使用的是加扰后的待写入地址,即根据加扰前的待写入地址无法读取到对应的数据,也就避免了出现对数据的定向攻击的现象发生,且由于存储待写入数据时还存储了待写入数据的CRC码,当存储器中存储的数据被注入错误后,CRC校验就会失败,当CRC校验失败后,就无法读取存储器中存储的数据,进而保证了存储器中存储的加密数据的安全性。
[0007] 在一种可能的设计中,在MED装置根据加扰后的待写入地址,将待写入数据的CRC码以及加密后的待写入数据存储至存储器中之后,CPU还可以读取存储器中的数据,具体方法为:MED装置接收数据读取命令,数据读取命令中包含待读取地址,然后根据待读取地址,从存储器中读取待读取数据以及待读取数据的CRC码,进而根据从存储器中读取的待读取数据的CRC码对待读取数据进行CRC校验,当CRC校验成功时,MED装置将解密后的待读取数据通过AHB发送至CPU。在读取数据时需对读取的数据进行CRC校验,只有校验成功的数据才能够被CPU读取,当CRC校验失败后,就无法读取存储器中存储的数据,进而保证了存储器中存储的加密数据的安全性。
[0008] 在一种可能的设计中,MED装置可接收至少一路AHB转发的数据写入命令,在MED装置对待写入地址进行加扰之后,MED装置还需确定每个加扰后的待写入地址所属的存储器区域,并行执行加扰后的待写入地址属于不同存储器区域的数据写入命令,按照优先级从高到低的顺序执行加扰后的待写入地址属于相同存储器区域的数据写入命令。可见,采用本发明实施例MED装置可以并行处理多个数据写入命令,提高了数据写入的效率。
[0009] 在一种可能的设计中,MED装置可以接收至少一路AHB转发的数据读取命令,在MED装置接收至少一路AHB转发的数据读取命令之后,MED装置还需确定每个待读取地址所属的存储器区域,并行处理待读取地址属于不同存储器区域的数据读取命令,按照优先级从高到低的顺序处理待读取地址属于相同存储器区域的数据读取命令。可见,采用本发明实施例MED装置可以并行处理多个数据读取命令,提高了数据读取的效率。
[0010] 在一种可能的设计中,MED装置对待写入数据进行加密的方法具体包括以下步骤:
[0011] S1、所述MED装置将所述待写入数据与第一轮密钥进行异或运算,得到第一加密数据;
[0012] S2、所述MED装置将所述第一加密数据分为N组,对所述第一加密数据中的N组数据并行进行S-box处理,得到第二加密数据,N为大于或等于2的正偶数;
[0013] S3、所述MED装置对所述第二加密数据进行置换操作,得到第三加密数据;
[0014] S4、所述MED装置将所述第三加密数据分为M组,通过M个LFSR对所述第三加密数据中的M组数据并行进行线性变换,得到第四加密数据;
[0015] S5、所述MED装置对所述第四加密数据进行移位操作,得到第五加密数据;
[0016] S6、所述MED装置将所述第五加密数据与第1+X轮密钥进行异或运算;
[0017] S7、将步骤S6得到的运算结果作为第一加密数据,循环执行上述步骤S2至步骤S6,在第一次执行步骤S6时,X=1,每循环执行一次S6,X加1,直至X=Y-2时,将步骤S6的运算结果作为第六加密数据;
[0018] S8、所述MED装置将所述第六加密数据分为N组,对所述第六加密数据中的N组数据并行进行S-box处理,得到第七加密数据;
[0019] S9、所述MED装置对所述第七加密数据进行置换操作,得到第八加密数据;
[0020] S10、所述MED装置将所述第八加密数据与第Y轮密钥进行异或运算,得到加密完成的待写入数据。
[0021] 在一种可能的设计中,MED装置对待读取数据进行解密的方法具体可以实现为以下步骤:
[0022] S1、所述MED装置将所述待读取数据与第Y轮密钥进行异或运算,得到第一解密数据;
[0023] S2、所述MED装置将所述第一解密数据进行置换操作,得到第二解密数据;
[0024] S3、所述MED装置将所述第二解密数据分为N组,对所述第二解密数据中的N组数据并行进行S-box处理,得到第三解密数据;
[0025] S4、所述MED装置将所述第三解密数据与第Y-X轮密钥进行异或运算,得到第四解密数据;
[0026] S5、所述MED装置将所述第四解密数据进行移位操作,得到第五解密数据;
[0027] S6、所述MED装置将所述第五解密数据分为M组,通过M个LFSR对所述第五解密数据中的M组数据并行进行线性变化,得到第六解密数据;
[0028] S7、所述MED装置对所述第六解密数据进行置换操作,得到第七解密数据;
[0029] S8、所述MED装置将所述第七解密数据分为N组,对所述第七解密数据中的N组数据进行S-box处理;
[0030] S9、所述MED装置将步骤S8得到的处理结果作为第三解密数据,循环执行上述步骤S4至步骤S8,在第一次执行步骤S4时,X=1,每执行一次S4,X加1,直至Y-X=2时,将步骤S8的处理结果作为第八加密数据;
[0031] S10、所述MED装置将所述第八解密数据与第一轮密钥进行异或运算,得到解密后的待读取数据。
[0032] 采用上述加解密的方法,由于数据加解密过程中可以采用八组S-box并行处理数据,所以可以减少数据处理的时延,相比于现有技术中采用的串行处理方法,可以大大减少加解密过程的时延,提高了对数据加解密的效率,进而提高了访问存储器的性能。
[0033] 另一方面,本发明实施例提供了一种数据处理的装置,该装置可以实现上述方法示例中MED装置所执行的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模
[0034] 在一种可能的设计中,该装置的结构中包括处理器和收发器,该处理器被配置为支持该装置执行上述方法中相应的功能。该收发器用于支持该装置与其他网元之间的通信。该装置还可以包括存储器,该存储器用于与处理器耦合,其保存该装置必要的程序指令和数据。
[0035] 又一方面,本发明实施例提供了一种通信系统,该系统包括上述方面所述的CPU、至少一路AHB、MED装置以及存储器。
[0036] 再一方面,本发明实施例提供了一种计算机存储介质,用于储存为上述MED装置所用的计算机软件指令,其包含用于执行上述方面所设计的程序。
[0037] 与现有技术相比,本申请中的MED装置在存储数据时使用的是加扰后的待写入地址,即根据加扰前的待写入地址无法读取到对应的数据,也就避免了出现对数据的定向攻击的现象发生,且由于存储待写入数据时还存储了待写入数据的CRC码,当存储器中存储的数据被注入错误后,CRC校验就会失败,当CRC校验失败后,就无法读取存储器中存储的数据,进而保证了存储器中存储的加密数据的安全性,且采用本申请中的数据加密方法进一步提高了加密数据的安全性。附图说明
[0038] 图1为本发明实施例提供的一种数据处理的系统的逻辑结构示意图;
[0039] 图2为本发明实施例提供的一种数据处理的方法流程图
[0040] 图3为本发明实施例提供的另一种数据处理的方法流程图;
[0041] 图4为本发明实施例提供的另一种数据处理的方法流程图;
[0042] 图5为本发明实施例提供的另一种数据处理的方法流程图;
[0043] 图6为本发明实施例提供的数据加密过程的示例性示意图;
[0044] 图7为本发明实施例提供的一种数据处理的装置的逻辑结构示意图;
[0045] 图8为本发明实施例提供的另一种数据处理的装置的逻辑结构示意图;
[0046] 图9为本发明实施例提供MED装置的逻辑结构示意图。

具体实施方式

[0047] 为了解决存储器中存储的数据的安全性低的问题,本发明实施例提供一种数据处理的方法,该方法应用于数据处理的系统中,如图1所示,该系统包括:CPU(Central Processing Unit,中央处理器)、至少一路AHB(Advanced High Performance Bus,高级高性能总线)、MED(Memory Encrypt Decrypt,存储加解密)装置以及存储器,其中存储器中包含多个存储区域,图1中示例性的示出了RAM(Random Access Memory,随机存取存储器)1至RAM3这三个存储区域。
[0048] 其中,CPU用于发出对存储器中的数据的数据读写命令。
[0049] AHB用于将CPU发出的数据读写命令分发到MED装置的接口处,图1中示例性地示出了三个AHB,需要说明的是,每路AHB可以连接一个CPU,或者多路CPU可以连接同一个CPU的多个接口,图1中以三个AHB连接同一个CPU为例。
[0050] MED装置中包含数据处理模块以及仲裁模块,此外MED装置还包括多个通信接口,用于并行接收多路AHB转发的数据读写命令。
[0051] 数据处理模块,用于将接收到的采用AMBA协议的格式的数据读写命令转换为RAM接口协议的格式,对待写入数据进行加密,计算待写入数据的CRC(Cyclic Redundancy Code,循环冗余码校验)码,对待写入地址进行加扰;还用于对待读取数据进行解密,对待读取数据进行CRC校验,并将需要返回给CPU的信息由RAM接口协议转换为AMBA协议。
[0052] 存储器,用于存储加密数据。
[0053] 结合图1所示的系统,本发明实施例提供一种数据处理的方法,如图2所示,该方法包括:
[0054] 201、MED装置接收数据写入命令,数据写入命令中包含待写入数据和待写入地址。
[0055] 202、MED装置对待写入数据进行加密。
[0056] 203、MED装置对待写入地址进行加扰。
[0057] 其中,本发明实施例不限制步骤202和步骤203的执行顺序,图1中以先执行步骤202为例。
[0058] 需要说明的是,现有技术中存储器中存储的每一个数据的物理地址都是顺序排布的,攻击者可以找到地址对应的数据进行定向攻击,本发明实施例为了防止数据被定向攻击,需对待写入地址进行加扰,使得存储在存储器中的数据是打乱排布的,例如数据A的待写入地址为地址A,实际存储时,会将数据A存储在地址B对应的存储区域中,地址B为加扰后的待写入地址。为了保证加扰后的待写入地址的离散性和随机性,可以使用线性反馈移位寄存器的方式对待写入地址进行伪随机加扰,加扰前的待写入地址和加扰后的待写入地址存在一一对应的关系,但是数据与数据的实际存储地址不存在任何关系,即使攻击者获得了数据本身也不能确定当前的数据属于哪个数据处理指令,提高了数据的安全性。
[0059] 204、MED装置根据加扰后的待写入地址,将待写入数据的CRC码以及加密后的待写入数据存储至存储器中。
[0060] 需要说明的是,MED装置可以先对待写入数据进行加密,然后计算加密后的待写入数据的CRC码,并将加密后的待写入数据以及加密后的待写入数据的CRC码存储至存储器中的加扰后的待写入地址对应的存储区域;或者,
[0061] MED装置可以先计算待写入数据的CRC码,然后对待写入数据进行加密,并将待写入数据的CRC码以及加密后的待写入数据存储至存储器中的加扰后的待写入地址对应的存储区域。
[0062] 本发明实施例提供的数据处理的方法,MED装置接收数据写入命令,对待写入数据进行加密,并对待写入地址进行加扰,然后根据加扰后的待写入地址,将待写入数据的CRC码以及加密后的待写入数据存储至存储器中。与现有技术中,攻击者可以对数据进行定向攻击或者对数据进行错误注入来获取存储器中存储的数据,导致数据的安全性差相比,本发明实施例在存储数据时使用的是加扰后的待写入地址,即根据加扰前的待写入地址无法读取到对应的数据,也就避免了出现对数据的定向攻击的现象发生,且由于存储待写入数据时还存储了待写入数据的CRC码,当存储器中存储的数据被注入错误后,CRC校验就会失败,当CRC校验失败后,就无法读取存储器中存储的数据,进而保证了存储器中存储的加密数据的安全性。
[0063] 需要说明的是,为了提高数据写入效率,本发明实施例中的MED装置可以并行处理多个数据写入命令,所以在本发明实施例提供的一种实现方式中,如图3所示,上述步骤201,MED装置接收数据写入命令具体可以实现为步骤301。
[0064] 301、MED装置接收至少一路AHB转发的数据写入命令。
[0065] 结合图1所示的系统,不同的master设备可以通过不同的AHB并行发送多个数据写入命令,多路AHB可以将数据写入命令转发至MED装置。
[0066] 需要说明的是,MED装置接收的数据写入命令为基于AMBA协议的,所以为了后续对数据写入命令的处理,需将数据写入命令转换为RAM接口协议的格式。
[0067] 之后MED装置中的数据处理模块需执行上述步骤202至步骤203,对待写入数据进行加密,并对待写入数据进行加扰。
[0068] 然后还需执行步骤302至步骤304,以完成对待写入命令的执行。
[0069] 302、MED装置确定每个加扰后的待写入地址所属的存储器区域。
[0070] 结合图1所示的系统,在MED装置的数据处理模块完成对待写入数据的加密,生成待写入数据的CRC码,并完成对待写入地址的加扰之后,需将这些信息传输至仲裁模块,然后仲裁模块确定每个加扰后的待写入地址所属的存储器区域。
[0071] 303、MED装置并行执行加扰后的待写入地址属于不同存储器区域的数据写入命令。
[0072] 如果仲裁模块确定存在属于不同存储区域的加扰后的待写入地址,则可以将加密后的待写入数据以及待写入数据的CRC码并行写入各自的加扰后的待写入地址所对应的存储区域。
[0073] 例如,待写入命令A中包含待写入地址A,待写入数据A,将待写入地址A加扰后得到地址X;
[0074] 待写入命令B中包含待写入地址B,待写入数据B,将待写入地址B加扰后得到地址Y;
[0075] 待写入命令C中包含待写入地址C,待写入数据C,将待写入地址C加扰后得到地址Z。
[0076] 其中,地址X、地址Y、地址Z分别属于不同的存储区域,则MED装置可以并行将加密后的待写入数据A、加密后的待写入数据B、加密后的待写入数据C分别写入地址X、地址Y和地址Z中。
[0077] 304、MED装置按照优先级从高到低的顺序处理待写入地址属于相同存储器区域的数据写入命令。
[0078] 例如,待写入命令D中包含待写入地址D,待写入数据D,将待写入地址D加扰后得到地址Q;
[0079] 其中,地址Q与地址A属于相同的存储区域,且待写入命令A的优先级高于待写入命令D的优先级,则按照优先级从高到低的顺序,MED装置应先将加密后的待写入数据A写入地址X中,再将加密后的待写入数据D写入地址Q中。
[0080] 以上为对数据写入方法的说明,在已经将数据写入存储器的基础上,MED装置还可以处理数据读取命令,结合图1所示的系统,本发明实施例还提供一种数据处理的方法,如图4所示,该方法包括:
[0081] 401、MED装置接收数据读取命令,数据读取命令中包含待读取地址。
[0082] 402、MED装置根据待读取地址,从存储器中读取待读取数据以及待读取数据的CRC码。
[0083] 403、MED装置根据从存储器中读取的待读取数据的CRC码对待读取数据进行CRC校验。
[0084] 需要说明的是,如果上述步骤204中写入存储器的是加密后的待写入数据的CRC码,则步骤402中读取的是加密的待读取数据,以及加密的待读取数据的CRC码,在CRC校验时,需要先计算加密的待读取数据的CRC码,然后将计算出的CRC码与从存储器中读取的CRC码进行比较,如果相同,则CRC校验成功,然后对待读取数据进行解密,并执行步骤404,将解密后的待读取数据通过AHB发送至CPU,如果不同,则CRC校验失败,向CPU上报警告消息,并将系统复位,结束数据读取操作,向CPU返回全0数据。
[0085] 如果上述步骤204中写入存储器的是加密前的待写入数据的CRC码,则步骤402中读取的是加密的待读取数据,以及未加密的待读取数据的CRC码,在CRC校验时,需要先对待读取数据进行解密,然后计算解密后的待读取数据的CRC码,然后将计算出的CRC码与从存储器中读取的CRC码进行比较,如果相同,则CRC校验成功,执行步骤404,将解密后的待读取数据通过AHB发送至CPU,如果不同,则CRC校验失败,向CPU上报警告消息,并将系统复位,结束数据读取操作,向CPU返回全0数据。
[0086] 404、当CRC校验成功时,MED装置将解密后的待读取数据通过AHB发送至CPU。
[0087] 本发明实施例提供的数据处理的方法,MED装置接收数据读取命令,根据待读取地址,从存储器中读取待读取数据以及待读取数据的CRC码,根据从存储器中读取的待读取数据的CRC码对待读取数据进行CRC校验,当CRC校验成功时,MED装置将解密后的待读取数据通过AHB发送至CPU。与现有技术中,攻击者可以对数据进行错误注入来获取存储器中存储的数据,导致数据的安全性差相比,本发明实施例在读取数据时需对读取的数据进行CRC校验,只有校验成功的数据才能够被CPU读取,当CRC校验失败后,就无法读取存储器中存储的数据,进而保证了存储器中存储的加密数据的安全性。
[0088] 为了提高数据读取效率,本发明实施例中的MED装置还可以并行处理多个数据读取命令,所以在本发明实施例提供的一种实现方式中,如图5所示,上述步骤401,MED装置接收数据写入命令具体可以实现为步骤501。
[0089] 501、MED装置接收至少一路AHB转发的数据读取命令。
[0090] 结合图1所示的系统,CPU可以通过不同的AHB并行发送多个数据读取命令,多路AHB可以将数据读取命令转发至MED装置。
[0091] 需要说明的是,MED接收的数据读取命令为基于AMBA协议的,所以为了后续对数据读取命令的处理,需将数据读取命令转换为RAM接口协议的格式。
[0092] 然后还需执行步骤502至步骤504,以完成对待写入命令的执行。
[0093] 502、MED装置确定每个待写入地址所属的存储器区域。
[0094] 503、MED装置并行处理待写入地址属于不同存储器区域的数据写入命令。
[0095] 504、MED装置按照优先级从高到低的顺序处理待写入地址属于相同存储器区域的数据写入命令。
[0096] 需要说明的是,处理数据写入命令的方法可参考上述步骤402至步骤403,此处不再赘述。
[0097] 为了减少数据加解密过程所需的时间,在保证安全性的前提下提高数据处理效率,本发明实施例采用了一种新的数据加解密算法,以下分别对数据加密算法和数据解密算法进行说明。
[0098] 如图6所示,图6为上述步骤202、MED装置对待写入数据进行加密的过程的示例性示意图。
[0099] 图6所示的加密算法采用的数据位宽为32bit,addr[31:0]代表32bit的待写入地址信息,random[271:0]代表272bit的原始密钥,每次开机重启都会重新生成原始密钥,待写入地址信息和原始密钥通过密钥产生模块可以产生轮密钥。
[0100] 明文M[31:0]为32bit的待写入数据,对待写入数据的加密方法具体为:
[0101] S1、MED装置将待写入数据与第一轮密钥进行异或运算,得到第一加密数据。
[0102] 其中,第一轮密钥为图6中的key[0]。
[0103] S2、MED装置将第一加密数据分为N组,对第一加密数据中的N组数据并行进行S-box处理,得到第二加密数据,N为大于或等于2的正偶数。
[0104] 其中,图6中的N为8,即MED装置可以将32bit的第一加密数据分为8组,每组4bit,对这8组4bit的数据并行进行S-box(Substitution box,实现数据的非线性置换)处理,得到32bit的第二加密数据。
[0105] S3、MED装置对第二加密数据进行置换操作,得到第三加密数据。
[0106] 可以理解的是,在上一步骤中,每个S-box都会输出一组4bit的数据,然后8个S-box输出的数据组成32bit的第三加密数据,本步骤中,需将不同S-box输出的数据的排列顺序进行置换,例如,将第一个S-box输出的4bit数据与第六个S-box输出的4bit数据的位置进行置换,置换之后得到的32bit数据为第三加密数据。
[0107] S4、MED装置将第三加密数据分为M组,通过M个LFSR(Linear Feedback Shifting Register,线性反馈移位寄存器)对第三加密数据中的M组数据并行进行线性变换,得到第四加密数据。
[0108] 在图6所示的例子中,M=4,即将32bit的第三加密数据分为4组,每组8bit,将这4组数据分别输入一个LFSR,由4个LFSR并行对4组数据进行线性变换,然后得到32bit的第四加密数据。
[0109] S5、MED装置对第四加密数据进行移位操作,得到第五加密数据。
[0110] 图6中对第四加密数据右移了五位,即将第四加密数据的最后一位移到第一位,然后将当前的最后一位移到第一位,直至原来的倒数第五位数据被移到第一位,得到第五加密数据。
[0111] S6、MED装置将第五加密数据与第1+X轮密钥进行异或运算。
[0112] S7、将步骤S6得到的运算结果作为第一加密数据,循环执行上述步骤S2至步骤S6,在第一次执行步骤S6时,X=1,每循环执行一次S6,X加1,直至X=Y-2时,将步骤S6的运算结果作为第六加密数据。
[0113] 结合图1,图1中虚线框中的过程是需要循环执行的。
[0114] 可以理解的是,在第一次执行步骤S6时,MED装置将第五加密数据与第二轮密钥进行异或运算,在第二次执行步骤S6时,MED装置将第五加密数据与第三轮密钥进行异或运算,图6中以Y=8为例,所以最后一次执行步骤S6时,MED装置将第五加密数据与第七轮密钥进行异或运算,得到第六加密数据。
[0115] S8、MED装置将第六加密数据分为N组,对第六加密数据中的N组数据并行进行S-box处理,得到第七加密数据。
[0116] 其中,图6中N为8。
[0117] S9、MED装置对第七加密数据进行置换操作,得到第八加密数据;
[0118] S10、MED装置将第八加密数据与第Y轮密钥进行异或运算,得到加密完成的待写入数据。
[0119] 其中,图6中的Y为8,图6中的key[8]为第八轮密钥,加密完成后的待写入数据为图6中的密文C[31:0]。
[0120] 对数据解密的过程与数据加密过程相反,MED装置对待读取数据进行解密的方法具体可以实现为以下步骤:
[0121] S1、MED装置将待读取数据与第Y轮密钥进行异或运算,得到第一解密数据。
[0122] 需要说明的是,对待读取数据进行解密时产生的轮密钥与对该待读取数据加密时产生的轮密钥相同。
[0123] 对应数据加密方法中的举例,Y=8,即MED装置将待读取数据与第八轮密钥进行异或运算,得到第一解密数据。
[0124] S2、MED装置将第一解密数据进行置换操作,得到第二解密数据。
[0125] 其中,置换操作是指对32bit的数据的顺序进行调整。
[0126] S3、MED装置将第二解密数据分为N组,对第二解密数据中的N组数据并行进行S-box处理,得到第三解密数据。
[0127] S4、MED装置将第三解密数据与第Y-X轮密钥进行异或运算,得到第四解密数据。
[0128] 其中,第一次执行S4时,MED装置将第三解密数据与第七轮密钥进行异或运算,第二次执行S4时,MED装置将第三解密数据与第六轮密钥进行异或运算,最后一次执行S4时,MED装置将第三解密数据与第二轮密钥进行异或运算。
[0129] S5、MED装置将第四解密数据进行移位操作,得到第五解密数据。
[0130] S6、MED装置将第五解密数据分为M组,通过M个LFSR对第五解密数据中的M组数据并行进行线性变化,得到第六解密数据。
[0131] 对应数据加密流程,M可以为4。
[0132] S7、MED装置对第六解密数据进行置换操作,得到第七解密数据。
[0133] S8、MED装置将第七解密数据分为N组,对第七解密数据中的N组数据进行S-box处理。
[0134] S9、MED装置将步骤S8得到的处理结果作为第三解密数据,循环执行上述步骤S4至步骤S8,在第一次执行步骤S4时,X=1,每执行一次S4,X加1,直至Y-X=2时,将步骤S8的处理结果作为第八加密数据。
[0135] S10、MED装置将第八解密数据与第一轮密钥进行异或运算,得到解密后的待读取数据。
[0136] 对于本发明实施例,由于数据加解密过程中可以采用八组S-box并行处理数据,所以可以减少数据处理的时延,相比于现有技术中采用的串行处理方法,可以大大减少加解密过程的时延,提高了对数据加解密的效率,进而提高了访问存储器的性能。
[0137] 上述主要从各个网元之间交互的度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如MED装置等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0138] 本发明实施例可以根据上述方法示例对MED装置等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0139] 本发明实施例提供一种数据处理的装置,该装置可以为上述实施例中的MED装置。如图7所示,图7示出了上述实施例中所涉及的装置,如MED装置的一种可能的结构示意图。
该装置包括:接收单元701、加密单元702、加扰单元703、写入单元704。其中,接收单元701用于支持MED装置执行图2中的步骤201、图3中的步骤301、图4中的步骤401以及图5中的步骤
501;加密单元702用于支持MED装置执行图2和图3中的步骤202;加扰单元703用于支持MED装置执行图2和图3中的步骤203;写入单元704用于支持MED装置执行图2中的步骤204以及图3中的步骤303和304。
[0140] 另外,如图8所示,该装置还包括:读取单元705、校验单元706、解密单元707、发送单元708、确定单元709,此外该装置还可以包括处理单元,读取单元705、校验单元706、解密单元707、发送单元708的功能可以集成在该处理单元中。其中,读取单元705用于支持MED装置执行图4中的步骤402;校验单元706用于支持MED装置执行图4中的步骤403;发送单元708用于支持MED装置执行图4中的步骤404;确定单元709用于支持MED装置执行图3中的步骤302以及图5中的步骤502。
[0141] 其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
[0142] 如图9所示,图9示出了上述实施例所涉及的MED装置的一种可能的结构示意图,该MED装置包括处理器902、收发器903、存储器901以及总线904。其中,存储器901可以集成在处理器902中,也可以与处理器902分开设置。其中,收发器903、处理器902以及存储器901通过总线904相互连接;总线904可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。所述总线可以分为地址总线数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,处理器902用于对MED装置的动作进行控制管理,收发器903用于支持MED装置与其他网络实体的通信,例如与图1中示出的功能模块或网络实体的通信,存储器901用于存储MED装置的程序代码和数据。
[0143] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
[0144] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
[0145] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈