本发明涉及存储器数据处理技术领域,具体涉及一种存储器的数据写入、读出方法及装置。
背景技术:
目前,智能卡内总线数据的存储及传输过程容易受到干扰或攻击。为了提高智能卡的抗干扰或抗攻击能力,通常在向智能卡的存储器写入的数据中增加校验数据,进而可以通过所述校验数据来检查相应数据的存储及传输是否发生错误。
然而,上述抗干扰攻击方法中,通过所述校验数据仅能检查写入至存储器中的数据本身是否发生错误,而无法检查所读出的数据是否为用户输入的目标地址的数据,导致所述存储器的安全性较低。
技术实现要素:
本发明解决的技术问题是如何进一步提高存储器的安全性。
为解决上述技术问题,本发明实施例提供一种存储器的数据写入方法,所述方法包括:
当接收到待写入的数据D及所述待写入的数据D的目标地址数据A时,对所述待写入的数据D进行加密处理,获得加密数据T;
分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1,并根据压缩后的加密数据T1及目标地址数据A1获得校验数据S;
将所述加密数据T及校验数据S作为码字写入至所述存储器。
可选地,所述分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1,并根据压缩后的T1及目标地址A1数据获得校验数据S,包括:
调用所述第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1;
调用第二压缩函数按照所述预设位长对所述目标地址数据A进行压缩处理,获得压缩后的目标地址数据A1;
对所述压缩后的加密数据T1及目标地址数据A1执行第一运算,获得校验数据S。
可选地,所述预设位长与所述存储器的校验能力、所述待写入的数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
可选地,所述第一运算为异或运算。
本发明实施例还提供了一种存储器的数据读出方法,所述方法包括:
接收待读取数据D的目标地址数据A;
根据所述目标地址数据A读取所述存储器中相应位置处的码字;
按照预设位长将所述码字拆分为加密数据T及校验数据S;
分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1;
根据所述压缩后的加密数据T1、目标地址数据A1及校验数据S,对所述加密数据T进行校验,并根据校验结果确定所述存储器的输出。
可选地,所述分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1,包括:
调用第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1;
调用第二压缩函数按照所述预设位长对所述目标地址数据A进行压缩处理,获得压缩后的目标地址数据A1。
可选地,所述根据所述压缩后的加密数据T1、目标地址数据A1及校验数据S,对所述加密数据T进行校验,并根据校验结果确定所述存储器的输 出,包括:
对所述压缩后的加密数据T1与校验数据S执行第一运算;
判断所述第一运算后的结果与所述压缩后的目标地址数据A1是否相等;
当所述第一运算后的结果与所述压缩后的目标地址数据A1相等时,判定所述加密数据T为正确数据,对所述加密数据T进行解密后输出。
可选地,所述根据所述压缩后的加密数据T1、目标地址数据A1及校验数据S,对所述加密后的数据T进行校验,并根据校验结果确定所述存储器的输出,还包括:
当所述第一运算后的结果与所述压缩后的目标地址数据A1不相等时,判定所述加密数据T为错误数据,输出相应的提示信号,以调用相应的防护策略。
可选地,所述第一运算为异或运算。
可选地,所述预设位长与所述存储器的校验能力、所述待读取数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
本发明实施例还提供了一种存储器的数据写入装置,所述装置包括:
加密单元,适于当接收到待写入的数据D及所述待写入的数据D的目标地址数据A时,对所述待写入的数据D进行加密处理,获得加密数据T;
第一处理单元,适于分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1,并根据压缩后的加密数据T1及目标地址数据A1获得校验数据S;
写入单元,适于将所述加密数据T及校验数据S作为码字写入至所述存储器。
可选地,所述第一处理单元包括:
第一处理子单元,适于调用所述第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1;
第二处理子单元,适于调用第二压缩函数按照所述预设位长对所述目标 地址数据A进行压缩处理,获得压缩后的目标地址数据A1;
第一运算子单元,适于对所述压缩后的加密数据T1及目标地址数据A1执行第一运算,获得校验数据S。
可选地,所述预设位长与所述存储器的校验能力、所述待写入的数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
可选地,所述第一运算子单元适于对所述压缩后的加密数据T1及目标地址数据A1执行异或运算,获得校验数据S。
本发明实施例还提供了一种存储器的数据读出装置,所述装置包括:
接收单元,适于接收待读取数据D的目标地址数据A;
读取单元,适于根据所述目标地址数据A读取所述存储器中相应位置处的码字;
拆分单元,适于按照预设位长将所述码字拆分为加密数据T及校验数据S;
第二处理单元,适于分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1;
第三处理单元,适于根据所述压缩后的加密数据T1、目标地址数据A1及校验数据S,对所述加密后的数据T进行校验,并根据校验结果确定所述存储器的输出。
可选地,所述第二处理单元包括:
第三处理子单元,适于调用第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1;
第四处理子单元,适于调用第二压缩函数按照所述预设位长对所述目标地址数据A进行压缩处理,获得压缩后的目标地址数据A1。
可选地,所述第三处理单元包括:
第二运算子单元,适于对所述压缩后的加密数据T1与校验数据S执行第 一运算;
判断子单元,适于判断所述第一运算后的结果与所述压缩后的目标地址数据A1是否相等;
解密子单元,适于当所述第一运算后的结果与所述压缩后的目标地址数据A1相等时,判定所述加密数据T通过校验,对所述加密数据T进行解密后输出。
可选地,所述第三处理单元还包括:
提示子单元,适于当所述第一运算后的结果与所述压缩后的目标地址数据A1不相等时,判定所述加密数据T未通过校验,输出相应的提示信号,以调用相应的防护策略。
可选地,所述第二运算子单元适于对所述压缩后的加密数据T1及校验数据S执行异或运算。
可选地,所述预设位长与所述存储器的校验能力、所述待读取数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
与现有技术相比,本发明实施例的技术方案具有以下有益效果:
在向存储器中写入数据时,通过对加密数据T及所述目标地址数据A进行压缩处理,进而可以根据压缩后的数据获得校验数据S。由于所述校验数据中S与加密数据T相关,还与目标地址数据A相关,因此可以在从存储器中读出数据时,无论是所述加密数据T本身受到干扰或攻击,还是所述加密数据T非所述目标地址数据A对应的加密数据,均可以通过校验数据S的验证而发现数据异常,从而可以进一步提高存储器的安全性。
附图说明
图1是本发明实施例中一种存储器的数据写入方法流程图;
图2是本发明实施例中一种存储器的数据写入装置结构示意图;
图3是本发明实施例中一种存储器的数据读出方法流程图;
图4是本发明实施例中一种存储器的数据读出装置结构示意图。
具体实施方式
目前,在向存储器中写入数据时,通常仅根据所写入的数据生成校验数据,进而在从存储器中读取数据时,根据所述校验数据来验证所述存储器是否受到干扰或攻击。然而,在上述方法中,通过所述校验数据,仅能在写入存储器中的数据本身发生错误时,检测出所述存储器受到干扰或攻击,而无法在所读出的数据非用户输入的目标地址的数据时,检测出所述存储器受到干扰或攻击,导致所述存储器的安全性较低。
针对上述问题,本发明实施例提供了一种存储器的写入方法,应用所述方法,在向存储器中写入数据时,通过对加密数据T及所述目标地址数据A进行压缩处理,进而可以根据压缩后的数据获得校验数据S。由于所述校验数据中S不仅与加密数据T相关,还与目标地址数据A相关,因此可以在从存储器中读出数据时,无论是所述加密数据T本身受到干扰或攻击,还是所述加密数据T非所述目标地址数据A对应的加密数据,均可以通过校验数据S的验证而发现数据异常,进一步提高存储器的安全性。
为使本发明的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。
如图1所示,本发明实施例提供了一种存储器的数据写入方法,所述方法可以包括如下步骤:
步骤11,当接收到待写入的数据D及所述待写入的数据D的目标地址数据A时,对所述待写入的数据D进行加密处理,获得加密数据T。
在具体实施中,向存储器中写入数据D时,可以采用对称加密算法对所述待写入的数据D进行加密处理,也可以采用非对称加密算法对所述待写入的数据D进行加密处理。其中,所述对称加密算法可以包括DES算法、RC2算法、RC4算法、RC5算法和Blowfish算法等。所述非对称加密算法可以包括RSA算法、ECC算法和Knapsack算法等。具体无论采用何种加密算法对所述待写入的数据D进行加密处理,均不构成对本发明的限制,且均在本发明的保护范围之内。
采用加密算法对所述待写入的数据D进行加密处理,获得加密数据T后, 接着执行步骤12。
步骤12,分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1,并根据压缩后的加密数据T1及目标地址数据A1获得校验数据S。
在具体实施中,获得加密数据T后,可以调用第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1。接收到所述待写入的数据D的目标地址数据A时,调用第二压缩函数按照预设位长对所述目标地址数据A进行压缩处理,获得压缩后的目标地址数据A1。接着,根据所述压缩后的加密数据T1及目标地址数据A1执行第一运算,获得校验数据S。
其中,所述第一压缩函数和第二压缩函数可以相同,也可以不同,例如,所述第一压缩函数和第二压缩函数可以为CRC(循环冗余码校验)算法。当然,所述第一压缩函数和第二压缩函数还可以为其他算法,具体不作限制,但无论第一压缩函数和第二压缩函数具体为何算法,均在本发明的保护范围之内。
在具体实施中,所述第一运算可以为异或运算,也可以为其他运算。
具体地,以所述加密数据T的位长为m比特,所述目标地址数据A的位长为n比特,所述预设位长为r比特,所述第一运算为异或运算为例,调用所述第一压缩函数将m比特的加密数据T压缩为r比特的加密数据T1,调用所述第二压缩函数将n比特目标地址数据A压缩为r比特的目标地址数据A1。对所述压缩后的加密数据T1及目标地址数据A1执行异或运算,获得校验数据S。
需要说明的是,所述预设位长与校验数据S的位长相同,具体可以根据所述存储器的校验能力、所述待写入的数据D位长、所述目标地址数据A位长及所选取的第一压缩函数和第二压缩函数进行设置。可以理解的是,所述预设位长越长,所述存储器的检错能力也就越强,相应的成本也就越大。例如,当所述第一压缩函数和第二压缩函数均为CRC算法时,若m≤11,r=4,对于所述加密数据T中任意2比特出现错误时,所述存储器的检错能力为 100%。
步骤13,将所述加密数据T及校验数据S作为码字写入至所述存储器。
在具体实施中,获得校验数据S后,将所述加密数据T与所述校验数据S进行拼接形成码字,并将所述码字存入所述存储器。
为了使本领域技术人员更好地理解和实现本发明,以下对上述存储器的数据写入方法对应的装置进行详细描述。
如图2所示,本发明实施例提供了一种存储器的写入装置。所述写入装置可以包括:加密单元21,第一处理单元22以及写入单元23。其中:
所述加密单元21适于当接收到待写入的数据D及所述待写入的数据D的目标地址数据A时,对所述待写入的数据D进行加密处理,获得加密数据T。所述第一处理单元22适于分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1,并根据压缩后的加密数据T1及目标地址数据A1获得校验数据S。所述写入单元23适于将所述加密数据T及校验数据S作为码字写入至所述存储器。
在具体实施中,所述第一处理单元22包括:第一处理子单元220,第二处理子单元221以及第一运算子单元222。其中,所述第一处理子单元220适于调用所述第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1。所述第二处理子单元221适于调用第二压缩函数按照所述预设位长对所述目标地址数据进行压缩处理,获得压缩后的目标地址数据A1。所述第一运算子单元222适于对所述压缩后的加密数据T1及目标地址数据A1执行第一运算,获得校验数据S。
在具体实施中,所述预设位长与所述存储器的校验能力、所述待写入的数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
在具体实施中,所述第一运算子单元222适于对所述压缩后的加密数据T1及目标地址数据A1执行异或运算,获得校验数据S。
如图3所示,本发明实施例还提供了一种存储器的数据读出方法,所述 方法包括如下步骤:
步骤31,接收待读取数据D的目标地址数据A。
步骤32,根据所述目标地址数据A读取所述存储器中相应位置处的码字。
步骤33,按照预设位长将所述码字拆分为加密数据T及校验数据S。
在具体实施步骤31-33时,根据所述目标地址数据A,在存储器中搜索相应的码字。读取所述码字后,由于所述预设位长即所述校验数据的位长,因此可以按照所述预设位长将所读取的码字拆分为加密数据T及校验数据S。例如,当所述预设位长为r比特,所述码字的位长为m+r比特时,读取所述码字后,将所述码字的后r比特作为校验数据S,剩余m比特为加密后的数据T。
其中,所述预设位长与所述存储器的校验能力、所述待读取数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
步骤34,分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1。
在具体实施中,获得加密数据T后,可以调用第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1。接收到所述目标地址数据A时,调用第二压缩函数按照预设位长对所述目标地址数据A进行压缩处理,获得压缩后的目标地址数据A1。
其中,所述第一压缩函数和第二压缩函数可以相同,也可以不同,例如,所述第一压缩函数和第二压缩函数可以为CRC算法,也可以为其他算法。所述第一运算可以为异或运算,也可以为其他运算。
具体地,以所述加密数据T的位长为m比特,所述目标地址数据A的位长为n比特,所述预设位长为r比特,所述第一运算为异或运算为例,调用所述第一压缩函数将m比特的加密数据T压缩为r比特的加密数据T1,调用所述第二压缩函数将n比特目标地址数据A压缩为r比特的目标地址数据A1。
步骤35,根据所述压缩后的加密数据T1、目标地址数据A1及校验数据S,对所述加密数据T进行校验,并根据校验结果确定所述存储器的输出。
在具体实施中,可以先对所述压缩后的加密数据T1与校验数据S执行第一运算,再通过判断第一运算的结果与所述压缩后的目标地址数据A1是否相等,来对所述加密数据T进行校验。其中,所述第一运算可以为异或运算。
当第一运算的结果与所述压缩后的目标地址数据A1相等时,所述加密数据T为正确的数据。所谓加密数据T为正确的数据,即所述加密数据T本身没有受到干扰或攻击,且所述加密数据为所述存储器中与所述目标地址数据A对应的数据。当所述加密数据T为正确的数据时,对所述加密数据T进行解密,获得解密后的数据D,输出所述解密后的数据D。
当第一运算的结果与所述压缩后的目标地址数据A1不相等时,所述加密数据T为错误的数据。所谓加密数据T为错误的数据,即所述加密数据T本身受到干扰或攻击,或者述加密数据非所述存储器中与所述目标地址数据A对应的数据,或者所述加密数据T本身受到干扰或攻击且非所述存储器中与所述目标地址数据A对应的数据。当所述加密数据T为错误的数据时,可以输出相应的提示信号,比如产生相应的报警信号,以通知用户所述存储器受到干扰或攻击,方便用户调用相应的防护策略,比如,输出预设的数据。
由上述内容可知,应用本发明实施例中所述存储器的数据写入方法,在向存储器中写入数据时,通过对加密数据T及所述目标地址数据A进行压缩处理,进而可以根据压缩后的数据获得校验数据S。由于所述校验数据中S不仅与加密数据T相关,还与目标地址数据A相关,因此可以在从存储器中读出数据时,无论是所述加密数据T本身受到干扰或攻击,还是所述加密数据T非所述目标地址数据A对应的加密数据,均可以通过校验数据S的验证而发现数据异常,从而可以进一步提高存储器的安全性。
为了使本领域技术人员更好地理解和实现本发明,以下对上述存储器的数据读出方法对应的装置进行详细描述。
如图4所示,本发明实施例提供了一种存储器的数据读出装置。所述装置可以包括:接收单元41,读取单元42,拆分单元43,第二处理单元44以及第三处理单元45。其中:
所述接收单元41适于接收待读取数据D的目标地址数据A。所述读取单 元42适于根据所述目标地址数据A读取所述存储器中相应位置处的码字。所述拆分单元43适于按照预设位长将所述码字拆分为加密数据T及校验数据S。所述第二处理单元44适于分别对所述加密数据T及所述目标地址数据A进行压缩处理,获得压缩后的加密数据T1及目标地址数据A1。所述第三处理单元45适于根据所述压缩后的加密数据T1、目标地址数据A1及校验数据S,对所述加密后的数据T进行校验,并根据校验结果确定所述存储器的输出。
进一步地,所述第二处理单元44可以包括:第三处理子单元441及第四处理子单元442。其中,所述第三处理子单元441,适于调用第一压缩函数按照预设位长对所述加密数据T进行压缩处理,获得压缩后的加密数据T1。第四处理子单元442,适于调用第二压缩函数按照所述预设位长对所述目标地址数据进行压缩处理,获得压缩后的目标地址数据A1。
在具体实施中,所述第三处理单元45可以包括:第二运算子单元、判断子单元及解密子单元(未示出)。所述第二运算子单元,适于对所述压缩后的加密数据T1与校验数据S执行第一运算。所述判断子单元,适于判断所述第一运算后的结果与所述压缩后的目标地址数据A1是否相等。所述解密子单元,适于当所述第一运算后的结果与所述压缩后的目标地址数据A1相等时,判定所述加密数据T通过校验,对所述加密数据T进行解密后输出。
其中,所述第一运算可以为异或运算。所述预设位长与所述存储器的校验能力、所述待读取数据D的位长、所述目标地址数据A的位长及所述第一压缩函数和第二压缩函数相关。
进一步地,所述第三处理单元45还可以包括:提示子单元(未示出)。所述提示子单元适于当所述第一运算后的结果与所述压缩后的目标地址数据A1不相等时,判定所述加密数据T未通过校验,输出相应的提示信号,以调用相应的防护策略。
由上述内容可知,在向存储器中写入数据时,通过对加密数据T及所述目标地址数据A进行压缩处理,进而可以根据压缩后的数据获得校验数据S。由于所述校验数据中S不仅与加密数据T相关,还与目标地址数据A相关,因此可以在从存储器中读出数据时,无论是所述加密数据T本身受到干扰或 攻击,还是所述加密数据T非所述目标地址数据A对应的加密数据,均可以通过校验数据S来验证。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、EEPROM、FLASH、磁盘或光盘等。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。