CN109150534A - 终端设备及数据处理方法 - Google Patents
终端设备及数据处理方法 Download PDFInfo
- Publication number
- CN109150534A CN109150534A CN201710464774.3A CN201710464774A CN109150534A CN 109150534 A CN109150534 A CN 109150534A CN 201710464774 A CN201710464774 A CN 201710464774A CN 109150534 A CN109150534 A CN 109150534A
- Authority
- CN
- China
- Prior art keywords
- data block
- count value
- block
- data
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/725—Cordless telephones
Abstract
本申请提供一种终端设备及数据处理方法。设备包括安全芯片和第一存储器,安全芯片包括处理器、第二存储器和计数器。第一存储器用于存储M个第一数据块,第一数据块是通过对明文数据块以及与该明文数据块的第一MAC进行加密运算得到的。计数器用于对M个第一数据块的更新次数进行计数得到计数值,计数器的计数值不可回退。处理器利用计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到M个第一数值;对M个第一数值和对应的第二MAC进行加密运算得到第二数据块,将第二数据块存储至第一存储器。根据第二数据块以及计数器的第二计数值判断目标数据块是否发生回退。该终端设备可以降低成本以及布板复杂度。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种终端设备及数据处理方法。
背景技术
随着终端技术的不断发展,用户对终端设备的移动支付、移动金融、汽车钥匙等承载百万级财产的安全应用也逐步有了需求。未来终端设备可能具备银行卡,公交卡,钥匙,身份证的功能。实现这些功能不能只依赖软件应用(Application,App),还需要终端设备的芯片提供硬件级的支持。
图1为现有技术提供的终端设备的芯片的结构示意图,如图1所示,应用处理器(Application Processor,AP)片上系统(System on Chip,SOC)中集成安全(Secure,SE)芯片。SE芯片包括一次性可编程(One Time Programmable,OTP)、(Read-Only Memory,ROM)以及随机存取存储器(Random Access Memory,RAM),对于系统程序、应用程序和应用数据存储在外部嵌入式的多媒体存储卡(Embedded Multi Media Card,eMMC)/通用闪存存储(Universal Flash Storage,简称UFS)的防重放保护存储块(Replay Protect MemoryBlock,简称RPMB)中。当系统运行时需要将系统程序、应用程序和应用数据从RPMB中读取到内部RAM中运行。由于RPMB是外部UFS/eMMC存储器件厂商提供的分区,其虽然有防回退的能力,但是由于成本问题,片外RPMB的数据防回退(Anti-rollback)能力暂没有哪个eMMC/UFS存储器件厂商实际能做到EAL4+安全防护等级以上。
目前存在一种EAL5+安全防护的专用安全闪存(Secure Flash)器件。SE芯片通过自定义的接口与专用Secure Flash连接。但是如果在终端设备上增加该专用SecureFlash,势必造成终端设备成本的增加,并且造成终端设备的布板复杂度较高。
发明内容
本申请提供一种终端设备及数据处理方法。从而可以降低终端设备的成本以及布板复杂度。
第一方面,本申请提供一种终端设备,包括:安全芯片和耦合至安全芯片的第一存储器,其中,安全芯片包括:处理器、第二存储器和计数器;第一存储器,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与明文数据块对应的第一消息认证码MAC进行加密运算得到的,M为大于等于1的整数;计数器,用于对M个第一数据块的更新次数进行计数,得到计数值,计数器的计数值不可回退;处理器用于:分别利用计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值;其中,第一计数值为处理器进行逻辑运算时,M个第一数据块对应的计数值;对M个第一数值和与M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将第二数据块存储至第一存储器;根据第二数据块以及计数器的第二计数值,判断目标数据块是否发生回退;其中,目标数据块是M个第一数据块的任一个;第二计数值为处理器判断目标数据块是否发生回退时,M个第一数据块对应的计数值。
综上,当该计数器是OTP时,即本申请在保持现有芯片架构不变的情况下,具有数据防回退能力。相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。当该计数器是SE芯片中的NVM或者其他计数器时,相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器,因此,相对于现有技术增加专用SecureFlash。本申请提供的终端设备可以降低成本以及布板复杂度。
可选地,处理器具体用于:对第二计数值和目标数据块对应的第一MAC,采用与计算目标数据块的第一数值相同的算法计算目标数据块的第二数值;根据目标数据块的第一数值和目标数据块的第二数值判断目标数据块是否发生回退。
可选地,该终端设备还包括:发送器;处理器具体用于:当目标数据块的第一数值和目标数据块的第二数值相同时,确定目标数据块未发生回退;当目标数据块的第一数值和目标数据块的第二数值不相同时,更新一次第二计数值得到第三计数值,对第三计数值和目标数据块对应的第一MAC,采用与计算目标数据块的第一数值相同的算法计算目标数据块的第三数值;当目标数据块的第一数值和目标数据块的第三数值不相同时,确定目标数据块发生回退,并触发发送器发送提示消息,提示消息用于提示目标数据块发生回退。
本申请中在保持现有芯片架构不变的情况下,或者相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器时,可以有效的判断目标数据块是否发生回退。
可选地,处理器还用于:当目标数据块的第一数值和目标数据块的第三数值相同时,确定安全芯片发生掉电。
即终端设备可以根据目标数据块的第一数值和目标数据块的第三数值判断安全芯片是否发生掉电,进而提高终端设备的可靠性。
可选地,处理器具体用于:根据目标数据块的第一数值和目标数据块对应的第一MAC,得到第一计数值;根据第一计数值和第二计数值判断目标数据块是否发生回退。
可选地,终端设备还包括:发送器;处理器具体用于:当第一计数值和第二计数值相同时,确定目标数据块未发生回退;当第一计数值和第二计数值不相同时,更新一次第二计数值得到第三计数值;当第一计数值和第三计数值不相同时,确定目标数据块发生回退,并触发发送器发送提示消息,提示消息用于提示目标数据块发生回退。
本申请中在保持现有芯片架构不变的情况下,或者相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器时,可以有效的判断目标数据块是否发生回退。
可选地,处理器还用于:当第一计数值和第三计数值相同时,确定安全芯片发生掉电。
即终端设备可以根据第一计数值和第三计数值判断安全芯片是否发生掉电,进而提高终端设备的可靠性。
可选地,处理器还用于:将第三数据块更新为新的第一数据块,并更新一次第一计数值得到新的第一计数值;其中,第三数据块是M个第一数据块的任一个;分别对新的第一计数值和第二数据块对应的每个第一数据块对应的第一MAC,采用与计算第一数值相同的算法计算每个第一数据块的新的第一数值,并将每个第一数据块的第一数值更新为新的第一数值;对第二数据块对应的M个新的第一数值和M个新的第一数值对应的新的第二MAC加密,得到新的第二数据块;并将第二数据块更新为新的第二数据块;计数器,还用于将第一计数值更新为新的第一计数值。
本申请中,由于第一存储器采用二级存储方式,因此,在终端设备更新完第三数据块之后,需要将第二数据块对应的每个第一数据块的第一数值更新为新的第一数值,并根据该新的第一数值更新第二数据块。从而提高终端设备中数据的准确性。
可选地,处理器还用于:将第四数据块的第一数值读取至第二存储器,第四数据块为第二数据块对应的除新的第一数据块的任一第一数据块;根据第四数据块的第一数值和第一计数值确定第四数据块对应的第一MAC;将第四数据块对应的第一MAC存储至第二存储器。
通过该方法可以有效获得第四数据块的第一MAC。
可选地,处理器还用于:当安全芯片发生掉电,则在安全芯片上电之后,读取第五数据块对应的每个第一数据块的第五数值,其中,第五数据块为新的第二数据块对应的实际数据块,第五数值为新的第一数值对应的实际数值;根据第五数据块对应的每个第一数据块的第五数值和第五数据块对应的每个第一数据块的第一MAC确定用于计算第五数值的第四计数值;判断第五数据块对应的每个第一数据块的第四计数值是否相同;当确定第五数据块对应的每个第一数据块的第四计数值不完全相同时,对从第六数据块开始的每个第一数据块的第四计数值更新一次,得到新的第一计数值,其中第六数据块为第五数据块对应的一个第一数据块,且满足条件:从第六数据块开始的每个第一数据块的第四计数值与第六数据块之前的每个第一数据块的第四计数值不同;对新的第一计数值和从第六数据块开始的每个第一数据块对应的第一MAC,采用与计算第一数值相同的算法计算从第六数据块开始的每个第一数据块的新的第一数值,并将从第六数据块开始的每个第一数据块的第四数值更新为新的第一数值;将第五数据块对应的第二MAC更新为新的第二MAC;对第五数据块对应的M个新的第一数值和M个新的第一数值对应的新的第二MAC加密,得到新的第二数据块,并将第五数据块更新为新的第二数据块;计数器,还用于将第一计数值更新为新的第一计数值。
当安全芯片发生掉电,则在安全芯片上电之后,通过该方法可以保证数据的准确性,从而提高终端设备的可靠性。
可选地,计数器为一次性编程芯片OTP或者非易失性存储器NVM。
第二方面,本申请提供一种处理器,该处理器为第一方面或者第一方面的可选方式中的处理器。对应内容和效果在此不再赘述。
第三方面,本申请提供一种芯片,包括如第一方面或者第一方面的可选方式中的计数器和如第一方面或者第一方面的可选方式中的处理器。对应内容和效果在此不再赘述。
第四方面,本申请提供一种数据处理方法,该方法应用于处理器,处理器包含于安全芯片,安全芯片还包括:第二存储器和计数器;安全芯片与第一存储器耦合连接;第一存储器,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与明文数据块对应的第一消息认证码MAC进行加密运算得到的,M为大于等于1的整数;计数器,用于对M个第一数据块的更新次数进行计数,得到计数值,计数器的计数值不可回退;方法包括:
分别利用计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值;其中,第一计数值为处理器进行逻辑运算时,M个第一数据块对应的计数值;对M个第一数值和与M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将第二数据块存储至第一存储器;根据第二数据块以及计数器的第二计数值,判断目标数据块是否发生回退;其中,目标数据块是M个第一数据块的任一个;第二计数值为处理器判断目标数据块是否发生回退时,M个第一数据块对应的计数值。
上述的终端设备可以用于执行该数据处理方法,对应内容和效果相同,在此不再赘述。
第五方面,本申请提供一种终端设备,包括:安全芯片和耦合至安全芯片的第一存储器,其中,安全芯片包括:处理器、第二存储器和非易失性存储器NVM;NVM,用于对加密数据块的更新次数进行计数,得到计数值,NVM的计数值不可回退;处理器用于:利用明文数据块的消息认证码MAC和NVM的第一计数值,得到明文数据块对应的第一数值;第一计数值是处理器计算第一数值时,明文数据块对应的计数值;对第一数值和明文数据块加密,得到加密数据块,并将加密数据块存储至第一存储器;处理器,还用于根据加密数据块和NVM的第二计数值,判断加密数据块是否发生回退;其中,第二计数值与加密数据块对应;第二计数值为处理器判断加密数据块是否发生回退时,加密数据块对应的计数值。
本申请中,相当于在现有的SE芯片中增加了一个小容量(只用于计数)的NVM,因此,相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。
可选地,处理器具体用于:对第二计数值和明文数据块的MAC,采用与计算第一数值相同的算法计算明文数据块的第二数值;根据第一数值和第二数值判断明文数据块是否发生回退。
可选地,该终端设备还包括:发送器;处理器具体用于:当第一数值和第二数值相同时,确定明文数据块未发生回退;当第一数值和第二数值不相同时,更新一次第二计数值,得到第三计数值,对第三计数值和MAC,采用与计算第一数值相同的算法计算明文数据块的第三数值;当第一数值和第三数值不相同时,确定明文数据块发生回退,并触发发送器发送提示消息,提示消息用于提示明文数据块发生回退。
本申请中在保持现有芯片架构不变的情况下,或者相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器时,可以有效的判断目标数据块是否发生回退。
可选地,处理器还用于:当第一数值和第三数值相同时,确定安全芯片发生掉电。
即终端设备可以根据第一数值和目标数据块的第三数值判断安全芯片是否发生掉电,进而提高终端设备的可靠性。
可选地,处理器具体用于:解密第一数值,得到明文数据块的MAC和NVM的第一计数值;根据第一计数值和第二计数值判断明文数据块是否发生回退。
可选地,还包括:发送器;相应的,处理器具体用于:当第一计数值和第二计数值相同时,确定明文数据块未发生回退;当第一计数值和第二计数值不相同时,更次一次第二计数值得到第三计数值;当第一计数值和第三计数值不相同时,确定明文数据块发生回退,并触发发送器发送提示消息,提示消息用于提示明文数据块发生回退。
本申请中在保持现有芯片架构不变的情况下,或者相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器时,可以有效的判断目标数据块是否发生回退。
可选地,处理器还用于:当第一计数值和第三计数值相同时,确定安全芯片发生掉电。
即终端设备可以根据第一计数值和第三计数值判断安全芯片是否发生掉电,进而提高终端设备的可靠性。
第六方面,本申请提供一种处理器,该处理器为第五方面或者第五方面的可选方式中的处理器。对应内容和效果在此不再赘述。
第七方面,本申请提供一种芯片,包括如第五方面或者第五方面的可选方式中的非易失性存储器NVM和如第五方面或者第五方面的可选方式中的处理器。对应内容和效果在此不再赘述。
第八方面,本申请提供一种数据处理方法,方法应用于处理器,处理器包含于安全芯片,安全芯片还包括:第二存储器和非易失性存储器NVM;安全芯片与第一存储器耦合连接;NVM,用于对加密数据块的更新次数进行计数,得到计数值,NVM的计数值不可回退;方法包括:
利用明文数据块的消息认证码MAC和NVM的第一计数值,得到明文数据块对应的第一数值;第一计数值是处理器计算第一数值时,明文数据块对应的计数值;对第一数值和明文数据块加密,得到加密数据块,并将加密数据块存储至第一存储器;根据加密数据块和NVM的第二计数值,判断加密数据块是否发生回退;其中,第二计数值与加密数据块对应;第二计数值为处理器判断加密数据块是否发生回退时,加密数据块对应的计数值。
上述第五方面或者第五方面的可选方式中的终端设备可以用于执行该数据处理方法,对应内容和效果相同,在此不再赘述。
第九方面,本申请提供一种计算机存储介质,用于储存为上述终端设备所用的计算机软件指令,其包含用于执行上述第四方面所涉及的程序。
第十方面,本申请提供一种计算机程序产品,其包含指令,当所述计算机程序被计算机所执行时,该指令使得计算机执行上述第四方面及可选方法中终端设备所执行的功能。
第十一方面,本申请实施例提供一种计算机存储介质,用于储存为上述终端设备所用的计算机软件指令,其包含用于执行上述第八方面所设计的程序。
第十二方面,本申请提供一种计算机程序产品,其包含指令,当所述计算机程序被计算机所执行时,该指令使得计算机执行上述第八方面及可选方法中终端设备所执行的功能。
本申请提供一种终端设备及数据处理方法。安全芯片和耦合至安全芯片的第一存储器,其中,该安全芯片包括:处理器、第二存储器和计数器。第一存储器,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与该明文数据块对应的第一MAC进行加密运算得到的。计数器,用于对M个第一数据块的更新次数进行计数,得到计数值,计数器的计数值不可回退。处理器用于:分别利用计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值;其中,第一计数值为处理器进行逻辑运算时,M个第一数据块对应的计数值。对M个第一数值和与M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将第二数据块存储至第一存储器。根据第二数据块以及计数器的第二计数值,判断目标数据块是否发生回退;其中,目标数据块是M个第一数据块的任一个;第二计数值为处理器判断目标数据块是否发生回退时,M个第一数据块对应的计数值。其中该计数器可以是OTP或者是SE芯片中的NVM等计数器。当该计数器是OTP时,即本申请在保持现有芯片架构不变的情况下,具有数据防回退能力。相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。当该计数器是SE芯片中的NVM或者其他计数器时,相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器,因此,相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。
附图说明
图1为现有技术提供的终端设备的芯片的结构示意图;
图2为本申请一实施例提供的终端设备的结构示意图;
图3A为本申请一实施例提供的第一存储器的二级存储示意图;
图3B为本申请另一实施例提供的第一存储器的二级存储示意图;
图4为本申请一实施例提供的第一存储器的存储区域示意图;
图5为本申请一实施例提供的一种数据处理方法的流程图;
图6为本申请一实施例提供的一种终端设备的示意图;
图7为本申请一实施例提供的第一存储器的一级存储示意图;
图8为本申请另一实施例提供的一种数据处理方法的流程图。
具体实施方式
随着终端技术的不断发展,用户对终端设备的移动支付、移动金融、汽车钥匙等承载百万级财产的安全应用也逐步有了需求。未来终端设备可能具备银行卡,公交卡,钥匙,身份证的功能。实现这些功能不能只依赖软件应用(Application,App),还需要终端设备的芯片提供硬件级的支持。
现有技术中,在终端设备的AP SOC中集成SE芯片,实现移动支付和多业务公用平台。如图1所示,SE芯片包括OTP、ROM以及RAM,对于系统程序、应用程序和应用数据存储在eMMC/UFS(非易失存储器(Non-Volatile Memory,NVM))的RPMB中。当系统运行时需要将系统程序、应用程序和应用数据从RPMB中读取到内部RAM中运行。SE的安全级别是非常高的,对于NVM的数据要求,主要有以下几个:
具有抵抗非易失存储的数据泄露的保护能力(confidentiality)。
具有抵抗非易失存储的抗干扰的保护能力(integrity)。
具有抵抗非易失存储的抗修改能力或者具有防回退能力(integrity&anti-rollback)。
现有技术中,在抵抗非易失存储的数据泄露的保护能力、以及抵抗非易失存储的抗干扰的保护能力方面,已经很成功了。现有技术中使用片外RPMB机制进行数据防回退。
由于片外RPMB是外部UFS/eMMC存储器件厂商提供的分区,其防回退的能力虽有,但安全等级没有经过检查认证;而且由于成本,片外RPMB的防回退能力暂没有哪个eMMC/UFS存储器件厂商实际能做到EAL4+安全防护等级以上;故直接依赖RPMB区域的防回退是无法达到EAL4+安全防护等级。
目前存在一种EAL5+安全防护的专用安全闪存(Secure Flash)器件。SE芯片通过自定义的接口与专用Secure Flash连接。但是如果在终端设备上增加该专用SecureFlash,势必造成终端设备成本的增加,并且造成终端设备的布板复杂度较高。
因此,为了解决现有技术中由于增加专用Secure Flash,而造成终端设备成本增加以及布板复杂度较高的问题。本申请提供一种终端设备及数据处理方法。
一种情况,本申请可以基于如图1所示的芯片架构,无需增加专用Secure Flash,也无需要eMMC/UFS存储器件厂商增加安全防护RPMB达到EAL5+认证需求。即基于当前如图1所示的芯片架构,SE芯片就可以满足EAL5+在NVM的安全要求和认证。
目前,NVM的访问基本单元是数据块,SE芯片中的处理器需要对明文数据块和该明文数据块对应的MAC采用加密算法得到加密数据块。并将该加密数据块存入RPMB中。其中加密算法可以采用现有技术中的高级加密标准(Advanced Encryption Standard,AES)256等。处理器针对每个明文数据块采用的加密密钥都不相同,例如加密密钥和明文数据块的存储地址关联。处理器可以采用SHA256-hMAC,AES-CMAC等MAC算法计算明文数据块对应的MAC。
本申请的实现原理是:利用SE芯片中的OTP实现数据防回退功能。OTP的比特位是一次性逐1比特进行编程的,初始每比特为0,通过编程可以写为1,故通过编程为1的比特数会越来越多,且无法回退。具体地,如果要实现数据防回退的功能,可以将OTP的计数值与明文数据块对应的MAC进行逻辑运算。如果明文数据块1发生了回退,则处理器读取到的是回退的明文数据块(明文数据块2)对应的MAC以及该明文数据块2对应的OTP的计数值进行逻辑运算得到的结果。因此,当处理器对OTP当前的计数值与明文数据块2对应的MAC进行逻辑运算得到的结果,一定与明文数据块2对应的MAC以及该明文数据块2对应的OTP的计数值进行逻辑运算得到的结果不同。也就是说,由于明文数据块2对应的结果是利用之前的OTP计数计算的,当明文数据块2更新为明文数据块1时,当前的OTP的计数值一定增加了,基于此。处理器可以确定明文数据块1发生了数据回退。
由于OTP总的比特位或者容量有限,因此需要多个明文数据块共用一个计数值。但是,当多个明文数据块共用一个计数值时,当更新其中任一个明文数据块时,该计数值就要更新一次,就要对更新后的计数值与各个明文数据块对应的MAC进行一次逻辑运算。这样势必导致运算量的增加,从而造成对硬件资源的消耗。
由于通常数据块的长度远远大于MAC的长度(MAC的长度通常为16字节或32字节,而数据块可以设置到几百字节,甚至更大)。因此,基于上述分析,在本申请中第一存储器可以采用二级存储的方式。下面将结合该二级存储介绍本申请提供的一种终端设备及数据处理方法。
需要说明的是,为了满足业务要求,上述的OTP的计数功能还可以通过NVM来代替。该NVM设置在SE芯片内部。该NVM仅仅用于计数,因此它的存储容量比较小。比如:该NVM的容量可以是4字节,4字节可以是实现40亿次的计数。
基于上述内容,本申请提供一种终端设备。具体地,图2为本申请一实施例提供的终端设备的结构示意图。如图2所示,该终端设备包括:安全芯片21和耦合至安全芯片21的第一存储器22,其中,该安全芯片21包括:处理器211、第二存储器212和计数器213。
第一存储器22,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与该明文数据块对应的第一消息认证码(Message Authentication Code,MAC)进行加密运算得到的,M为大于等于1的整数。
计数器213,用于对M个第一数据块的更新次数进行计数,得到计数值,计数器213的计数值不可回退。
处理器211用于:分别利用计数器213的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值;其中,第一计数值为处理器211进行逻辑运算时,M个第一数据块对应的计数值。对M个第一数值和与M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将第二数据块存储至第一存储器22。根据第二数据块以及计数器213的第二计数值,判断目标数据块是否发生回退;其中,目标数据块是M个第一数据块的任一个;第二计数值为处理器211判断目标数据块是否发生回退时,M个第一数据块对应的计数值。
具体地,上述M个第一数据块与上述第二数据块对应。第一存储器用于存储M个第一数据块和对应的第二数据块。即第一数据块采用二级存储方式。图3A为本申请一实施例提供的第一存储器的二级存储示意图。如图3A所示,第一存储器存储了M个第一数据块。M个第一数据块分别是第一数据块1,第一数据块2……第一数据块M。第一存储器还存储了M个第一数据块对应的第二数据块,该第二数据块是处理器211对第一数据块1的第一数值、第一数据块2的第一数值……第一数据块M的第一数值,以及M个第一数值的第二MAC加密得到的。
本申请中,处理器计算明文数据块的第一MAC可以采用现有技术中的SHA256-hMAC,AES-CMAC等MAC算法。本申请对此不做限制。本申请计算M个第一数值的第二MAC也可以采用现有技术中的SHA256-hMAC,AES-CMAC等MAC算法。其中这M个第一数值可以看作一个整体,可以被理解为一个数据块,对该数据块可以采用现有的MAC算法。本申请对此不做限制。
进一步地,本申请中处理器对明文数据块以及与该明文数据块对应的第一MAC进行加密运算,具体采用的加密算法可以是现有的AES 256等算法。同样的,本申请中处理器也可以对M个第一数值和M个第一数值对应的第二MAC采用现有的AES 256等算法。本申请对此不做限制。
更进一步地,处理器利用计数器213的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值。该逻辑运算可以是加法运算、减法运算、乘法运算、除法运算或者是计算机领域中的“与”运算、“或”运算、“异或”运算以及一些高级算法等。只要计数器213的第一计数值可以参与运算即可,本申请对此不做限制。
需要说明的是,由于计数器213,用于对M个第一数据块的更新次数进行计数,得到计数值。因此,M个第一数据块中的任意一个第一数据块发生更新后,M个第一数据块对应的计数值都会更新,例如:M个第一数据块中一个第一数据块发生更新,则对应的计数值加1。因此,第一计数值为处理器211进行逻辑运算时,M个第一数据块对应的计数值。这里的第一计数值一定是进行最近一次逻辑运算时,得到的最新的第一计数值。假设存在两个第一数据块。它们分别是第一数据块1和第一数据块2。当更新第一数据块1时,该第一数据块1对应的第一计数值更新一次得到新的第一计数值。通过新的第一计数值以及更新后的第一数据块1的第一MAC计算新的第一数值。同样的,由于第一数据块2的第一数据块1对应相同的计数值。因此,需要通过新的第一计数值以及更新后的第一数据块2的第一MAC计算第一数据块2对应的新的第一数值。这种情况下,之前的第一计数值被更新为最新的第一计数值。
值得一提的是,本申请中涉及的更新第一数据块,表示存储新的第一数据块,并删除该新的第一数据块对应的历史第一数据块。
假设目标数据块A发生回退,且假设目标数据块回退后的数据块是第一数据块B,则处理器211读取到的第一数值实际上是第一数据块B的第一MAC和该第一数据块B对应的第一计数值计算得到。假设其他第一数据块没有更新,则第二计数值应该是该第一数据块B对应的第一计数值更新一次后得到的计数值。这种情况下,处理器211通过第二计数值和第一数据块B的第一MAC计算第二数值。由于第一数值和第二数值不相同,表示目标数据块A有可能发生回退。考虑到有可能是SE芯片发生掉电造成第一数值和第二数值不同,例如:当SE芯片发生掉电时,第二计数值有可能还是前一次的第一计数值。因此,即使目标数据块A未发生回退,这种情况下,处理器211读取到的第一数值是目标数据块A的第一MAC和该目标数据块A对应的第一计数值(该第一计数值已经是最新的第一计数值)计算得到。而处理器211通过第二计数值(前一次的第一计数值)和目标数据块A的第一MAC计算第二数值。因此这种情况下,第一数值和第二数值也有可能不同,造成第一数值和第二数值不同的原因,并不是目标数据块A发生了回退。而是SE芯片发生了掉电。
考虑到上述原因,进一步地,处理器211判断目标数据块是否发生回退具体可以采用如下方式:
处理器211具体用于:对第二计数值和目标数据块对应的第一MAC,采用与计算目标数据块的第一数值相同的算法计算目标数据块的第二数值;根据目标数据块的第一数值和目标数据块的第二数值判断目标数据块是否发生回退。可选地,终端设备还包括:发送器;相应的,处理器211具体用于:当目标数据块的第一数值和目标数据块的第二数值相同时,确定目标数据块未发生回退;当目标数据块的第一数值和目标数据块的第二数值不相同时,更新一次第二计数值得到第三计数值,对第三计数值和目标数据块对应的第一MAC,采用与计算目标数据块的第一数值相同的算法计算目标数据块的第三数值;当目标数据块的第一数值和目标数据块的第三数值不相同时,确定目标数据块发生回退,并触发发送器发送提示消息,提示消息用于提示目标数据块发生回退。
可选地,处理器211还用于:当目标数据块的第一数值和目标数据块的第三数值相同时,确定安全芯片发生掉电。
具体地,当计算第一数值使用的加法算法,则计算第二数值也需要采用加法算法,计算第三数值也需要采用加法算法。同样的,当计算第一数值使用的“异或”运算,则计算第二数值也需要采用“异或”运算,则计算第三数值也需要采用“异或”运算。
进一步地,考虑到判断目标数据块是否发生回退通常应用在“黑客”入侵的场景下,因此,上述处理器211在判断目标数据块是否发生回退之前,通常,处理器211会获取到读取请求,处理器211根据该读取请求读取目标数据块。然后,处理器211判断目标数据块是否发生回退,发送器发送读取响应。当目标数据块未发生回退,则该读取响应用于指示读取成功。当目标数据块发生回退,则该读取响应即为上述的提示消息,该提示消息用于提示目标数据块发生回退。
并且基于上述场景,所述对第二计数值和目标数据块对应的第一MAC,采用与计算目标数据块的第一数值相同的算法计算目标数据块的第二数值之前,处理器211将目标数据块读取至第二存储器,并解密目标数据块,得到该目标数据块的明文数据块和该目标数据块的第一MAC,且校验该第一MAC是否正确;当校验该第一MAC正确时,将目标数据块对应的第二数据块读取至第二存储器,并解密该第二数据块,得到该第二数据块的第二MAC,且校验第二MAC是否正确;当校验该第二MAC正确时,处理器211对第二计数值和目标数据块对应的第一MAC,采用与计算目标数据块的第一数值相同的算法计算目标数据块的第二数值。
处理器211判断目标数据块是否发生回退具体还可以采用比较计数值的方式:
可选地,处理器211具体用于:根据目标数据块的第一数值和目标数据块对应的第一MAC,得到第一计数值;根据第一计数值和所述第二计数值判断目标数据块是否发生回退。可选地,终端设备还包括:发送器。处理器211具体用于:当第一计数值和第二计数值相同时,确定目标数据块未发生回退;当第一计数值和第二计数值不相同时,更新一次第二计数值得到第三计数值;当第一计数值和第三计数值不相同时,确定目标数据块发生回退,并触发发送器发送提示消息,提示消息用于提示目标数据块发生回退。
可选地,处理器211还用于:当第一计数值和第三计数值相同时,确定安全芯片发生掉电。
具体地,假设计算第一数值采用的是加法运算,则处理器211根据目标数据块的第一数值和目标数据块对应的第一MAC得到第一计数值,所采用的算法为加法算法的逆运算,即采用减法算法计算第一计数值。同样的,假设计算第一数值采用的是乘法运算,则处理器211根据目标数据块的第一数值和目标数据块对应的第一MAC得到第一计数值,所采用的算法为乘法运算的逆运算,即采用除法运算计算第一计数值。
进一步地,考虑到判断目标数据块是否发生回退通常应用在“黑客”入侵的场景下,因此,上述处理器211在判断目标数据块是否发生回退之前,通常,处理器211会获取到读取请求,处理器211根据该读取请求读取目标数据块。然后,处理器211判断目标数据块是否发生回退,发送器发送读取响应。当目标数据块未发生回退,则该读取响应用于指示读取成功。当目标数据块发生回退,则该读取响应即为上述的提示消息,该提示消息用于提示目标数据块发生回退。
并且基于上述场景,所述根据目标数据块的第一数值和目标数据块对应的第一MAC,得到第一计数值之前,处理器211将目标数据块读取至第二存储器,并解密该目标数据块,得到该目标数据块对应的明文数据块和该目标数据块的第一MAC,且校验第一MAC是否正确;当校验该第一MAC正确时,将该目标数据块对应的第二数据块读取至第二存储器,并解密该第二数据块,得到该第二数据块的第二MAC和目标数据块对应的第一数值,且校验该第二MAC是否正确;当校验该第二MAC正确时,处理器211根据目标数据块的第一数值和目标数据块对应的第一MAC,得到第一计数值。
可选地,上述的计数器可以是OTP或者NVM。其中该计数器的比特位可以被划分为多个位段,每个位段构成一个计数值,即该计数器在同一时刻可以包括多个计数值。每个计数值可以与至少一个第一数据块对应。或者说,该计数器的计数值与第二数据块一一对应。具体地,图3B为本申请另一实施例提供的第一存储器的二级存储示意图。如图3B所示,计时器的比特位被划分为3个位段,每个位段构成一个计算值。第一存储器存储了M1个第一数据块以及M1个第一数据块对应的第二数据块。第一存储器存储了M2个第一数据块以及M2个第一数据块对应的第二数据块。第一存储器存储了M3个第一数据块以及M3个第一数据块对应的第二数据块。
需要说明的是,计数器总的比特位是有限的。每个分区对应的位段可以根据应用写入次数要求设定。例如位段1用来存储应用程序,而应用程序的更新频率比较低,故可以将位段1的比特数设定的少一些。假设位段2用于存储应用数据,而应用数据的更新频率非常高。即应用数据的更新次数较多,因此可以将位段2的比特数设定多一些,例如:位段2可以达到几万比特,但存储空间可以小一点。同样的,还可以设定位段3的比特数。
针对计数器的多位段,处理器可以采用第一存储器到多位段的的多个应用程序编程接口(Application Programming Interface,API)实现应用应用调用,也可以是直接指定。
通过这种多分区,多位段的存储方式,使得不同分区之间的计数值不受影响,从而可以降低终端设备的复杂度。
综上,本申请提供一种终端设备,包括:安全芯片和耦合至安全芯片的第一存储器,其中,该安全芯片包括:处理器、第二存储器和计数器。第一存储器,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与该明文数据块对应的第一MAC进行加密运算得到的。计数器,用于对M个第一数据块的更新次数进行计数,得到计数值,计数器的计数值不可回退。处理器用于:分别利用计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值;其中,第一计数值为处理器进行逻辑运算时,M个第一数据块对应的计数值。对M个第一数值和与M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将第二数据块存储至第一存储器。根据第二数据块以及计数器的第二计数值,判断目标数据块是否发生回退;其中,目标数据块是M个第一数据块的任一个;第二计数值为处理器判断目标数据块是否发生回退时,M个第一数据块对应的计数值。其中该计数器可以是OTP或者是SE芯片中的NVM等计数器。当该计数器是OTP时,即本申请在保持现有芯片架构不变的情况下,具有数据防回退能力。相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。当该计数器是SE芯片中的NVM或者其他计数器时,相当于在现有的SE芯片中增加了一个小容量(只用于计数)的计数器,因此,相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。
可选地,处理器211还用于:将第三数据块更新为新的第一数据块,并更新一次第一计数值得到新的第一计数值;其中,第三数据块是M个第一数据块的任一个;分别对新的第一计数值和第二数据块对应的每个第一数据块对应的第一MAC,采用与计算第一数值相同的算法计算所述每个第一数据块的新的第一数值,并将每个第一数据块的第一数值更新为新的第一数值;对第二数据块对应的M个新的第一数值和M个新的第一数值对应的新的第二MAC加密,得到新的第二数据块;并将第二数据块更新为新的第二数据块;计数器,还用于将第一计数值更新为新的第一计数值。
其中,这里假设第三数据块是上述M个第一数据块中第一个更新的第一数据块。后续更新第一数据块的方式与上述处理器211所采用的方法类似,在此不再赘述。
例如:M个第一数据块分别是第一数据块1,第一数据块2……第一数据块M。假设第一个更新的第一数据块是第一数据块1,该第一数据块1即为所述第三数据块。处理器将该第一数据块1更新为新的第一数据块1后,需要更新一次第一计数值得到新的第一计数值。由于第一计数值发生了变化,因此,新的第一数据块1、第一数据块2……第一数据块M的第一数值都需要更新为新的第一数值。当然,计算新的第一数值用的是新的第一计数值。对第二数据块对应的M个新的第一数值和M个新的第一数值对应的新的第二MAC加密,得到新的第二数据块;并将第二数据块更新为新的第二数据块;计数器,还用于将第一计数值更新为新的第一计数值。
进一步地,处理器211还用于:将第四数据块的第一数值读取至第二存储器212,第四数据块为第二数据块对应的除所述新的第一数据块的任一第一数据块;根据第四数据块的第一数值和第一计数值确定第四数据块对应的第一MAC;将第四数据块对应的第一MAC存储至第二存储器。
即处理器211在利用第四数据块的第一MAC计算新的第一数值之前,需要通过上述方式获取第一MAC。其中处理器211根据第四数据块的第一数值和第一计数值确定第四数据块对应的第一MAC,所采用的算法为计算第一数值的逆运算。假设计算第一数值采用的是加法运算,则处理器211可以采用减法运算获取第一MAC。
上述处理器211在计算第二数据块对应的每个第一数据块的新的第一数值的过程中,或者在将第二数据块更新为新的第二数据块之后,计数器将第一计数值更新为新的第一计数值之前,SE芯片有可能发生掉电,本申请提供一种SE芯片掉电保护策略。
可选地,处理器211还用于:当SE芯片发生掉电,则在SE芯片上电之后,读取第五数据块对应的每个第一数据块的第五数值,其中,第五数据块为新的第二数据块对应的实际数据块,第五数值为新的第一数值对应的实际数值;根据第五数据块对应的每个第一数据块的第五数值和第五数据块对应的每个第一数据块的第一MAC确定用于计算第五数值的第四计数值;判断第五数据块对应的每个第一数据块的第四计数值是否相同;当确定第五数据块对应的每个第一数据块的第四计数值不完全相同时,对从第六数据块开始的每个第一数据块的第四计数值更新一次,得到新的第一计数值,其中第六数据块为第五数据块对应的一个第一数据块,且满足条件:从第六数据块开始的每个第一数据块的第四计数值与第六数据块之前的每个第一数据块的第四计数值不同;对新的第一计数值和从第六数据块开始的每个第一数据块对应的第一MAC,采用与计算第一数值相同的算法计算从第六数据块开始的每个第一数据块的新的第一数值,并将从第六数据块开始的每个第一数据块的第四数值更新为新的第一数值;将第五数据块对应的第二MAC更新为新的第二MAC;对第五数据块对应的M个新的第一数值和M个新的第一数值对应的新的第二MAC加密,得到新的第二数据块,并将第五数据块更新为新的第二数据块;计数器,还用于将第一计数值更新为新的第一计数值。
即本申请提供的终端设备,当SE芯片发生掉电后,可以保证第一数据块、第二数据块以及计数器的第一计数值准确无误。
进一步地,图4为本申请一实施例提供的第一存储器的存储区域示意图,如图4所示,第一存储器的存储区域可以包括三部分:普通安全存储区域、利用计数值的认证安全存储区域以及程序区域。其中普通安全存储区域与利用计数值的认证安全存储区域主要区别就是防回退功能是否能达到EAL5+认证。普通安全存储区域可以用来保存对数据防回退没有严格要求的数据块。利用计数值的认证安全存储区域即为本申请提供的采用二级存储的区域,该区域用于存储上述的第一数据块和第二数据块。
对于上述三个不同的区域,本申请提供不同的API。
方案一:为利用计数值的认证安全存储区域提供新的API。如Secure_antirollback_NVM_Malloc和Secure_antirollback_NVM_Free;为普通安全存储区域提供普通的Malloc和Free。
方案二:静态配置指定使用普通安全存储区域和利用计数值的认证安全存储区域。
本申请还提供一种处理器,该处理器为上述SE芯片中的处理器,该处理器的功能如上所述,本申请在此不再赘述。
本申请还提供一种芯片,包括上述计数器和所述处理器。该计数器的功能和处理器的功能如上所述,本申请在此不再赘述。其中该芯片可以是上述的SE芯片,也可以是APSOC,该AP SOC包括该SE芯片。
图5为本申请一实施例提供的一种数据处理方法的流程图。结合图2和图5所示,该方法应用于处理器211,所述处理器211包含于安全芯片21,所述安全芯片还包括:第二存储器212和计数器213;所述安全芯片21与第一存储器22耦合连接;所述第一存储器22,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与所述明文数据块对应的第一消息认证码MAC进行加密运算得到的,M为大于等于1的整数;所述计数器213,用于对所述M个第一数据块的更新次数进行计数,得到计数值,所述计数器213的计数值不可回退;所述方法包括:
步骤S501:分别利用计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与M个第一数据块一一对应的M个第一数值;其中,第一计数值为处理器进行逻辑运算时,M个第一数据块对应的计数值。
步骤S502:对M个第一数值和与M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将第二数据块存储至第一存储器。
步骤S503:根据第二数据块以及计数器的第二计数值,判断目标数据块是否发生回退;其中,目标数据块是M个第一数据块的任一个;第二计数值为处理器判断目标数据块是否发生回退时,M个第一数据块对应的计数值。
本申请提供的数据处理方法,由上述的处理器执行,对应内容和效果相同,在此不再赘述。
当上述的计数器是NVM时,由于NVM的存储容量比上述OTP的存储容量可以大一些,因此,针对计数器是NVM的情况,上述第一存储器可以采用一级存储的方式。
具体地,图6为本申请一实施例提供的一种终端设备的示意图,如图6所示,该终端设备包括:安全芯片61和耦合至所述安全芯片的第一存储器62,其中,所述安全芯片61包括:处理器611、第二存储器612和非易失性存储器NVM613;所述NVM613,用于对加密数据块的更新次数进行计数,得到计数值,所述NVM613的计数值不可回退;处理器611用于:利用明文数据块的消息认证码MAC和所述NVM的第一计数值,得到所述明文数据块对应的第一数值;所述第一计数值是所述处理器计算所述第一数值时,所述明文数据块对应的计数值;对所述第一数值和所述明文数据块加密,得到所述加密数据块,并将所述加密数据块存储至所述第一存储器;所述处理器611,还用于根据所述加密数据块和所述NVM的第二计数值,判断所述加密数据块是否发生回退;其中,所述第二计数值与所述加密数据块对应;所述第二计数值为所述处理器判断所述加密数据块是否发生回退时,所述加密数据块对应的计数值。
图7为本申请一实施例提供的第一存储器的一级存储示意图。如图7所示,该第一存储器包括M个加密数据块,每个加密数据块是对明文数据块和该明文数据块的第一数值加密得到的,其中第一数值是利用明文数据块的消息认证码MAC和NVM的第一计数值得到的。例如:加密数据块1是对明文数据块1和该明文数据块1的第一数值1加密得到的。加密数据块2是对明文数据块2和该明文数据块2的第一数值2加密得到的。加密数据块M是对明文数据块M和该明文数据块M的第一数值M加密得到的。
具体地,计算该第一数值的方法可以采用加法运算、减法运算、乘法运算、除法运算或者是计算机领域中的“与”运算、“或”运算、“异或”运算以及一些高级算法等。只要NVM的第一计数值可以参与运算即可,本申请对此不做限制。
当然,该第一存储器还可以存储多个加密数据块,可以将NVM的比特位分为多个位段,每个位段构成一个计数值,每个计数值可以与至少一个加密数据块对应。
进一步地,处理器611判断加密数据块是否发生回退的方法可以是:
一种可选方式:处理器611具体用于:对第二计数值和明文数据块的MAC,采用与计算第一数值相同的算法计算明文数据块的第二数值;根据第一数值和第二数值判断明文数据块是否发生回退。该终端设备还包括:发送器;处理器611具体用于:当所述第一数值和所述第二数值相同时,确定所述明文数据块未发生回退;当所述第一数值和所述第二数值不相同时,更新一次所述第二计数值,得到第三计数值,对所述第三计数值和所述MAC,采用与计算所述第一数值相同的算法计算所述明文数据块的第三数值;当所述第一数值和所述第三数值不相同时,确定所述明文数据块发生回退,并触发所述发送器发送提示消息,所述提示消息用于提示所述明文数据块发生回退。
进一步地,处理器611还用于:当所述第一数值和所述第三数值相同时,确定所述安全芯片发生掉电。
另一种可选方式:处理器611具体用于:解密所述第一数值,得到所述明文数据块的MAC和所述NVM的第一计数值;根据所述第一计数值和所述第二计数值判断所述明文数据块是否发生回退。终端设备还包括:发送器;所述处理器611具体用于:当所述第一计数值和所述第二计数值相同时,确定所述明文数据块未发生回退;当所述第一计数值和所述第二计数值不相同时,更次一次所述第二计数值得到第三计数值;当所述第一计数值和所述第三计数值不相同时,确定所述明文数据块发生回退,并触发所述发送器发送提示消息,所述提示消息用于提示所述明文数据块发生回退。
可选地,所述处理器611还用于:当所述第一计数值和所述第三计数值相同时,确定所述安全芯片发生掉电。
其中,一级存储和上述的二级存储判断数据回退的方式类似,本申请在此不再赘述。
综上,本申请提供一种终端设备,该终端设备包括:安全芯片和耦合至所述安全芯片的第一存储器,其中,所述安全芯片包括:处理器、第二存储器和非易失性存储器NVM;所述NVM,用于对加密数据块的更新次数进行计数,得到计数值,所述NVM的计数值不可回退;处理器用于:利用明文数据块的消息认证码MAC和所述NVM的第一计数值,得到所述明文数据块对应的第一数值;所述第一计数值是所述处理器计算所述第一数值时,所述明文数据块对应的计数值;对所述第一数值和所述明文数据块加密,得到所述加密数据块,并将所述加密数据块存储至所述第一存储器;所述处理器,还用于根据所述加密数据块和所述NVM的第二计数值,判断所述加密数据块是否发生回退;其中,所述第二计数值与所述加密数据块对应;所述第二计数值为所述处理器判断所述加密数据块是否发生回退时,所述加密数据块对应的计数值。相当于在现有的SE芯片中增加了一个小容量(只用于计数)的NVM,因此,相对于现有技术增加专用Secure Flash。本申请提供的终端设备可以降低成本以及布板复杂度。
本申请还提供一种处理器,该处理器为图6所示的处理器,该处理器的功能如上所述,本申请在此不再赘述。
本申请还提供一种芯片,包括上述NVM和所述处理器。该NVM的功能和处理器的功能如上所述,本申请在此不再赘述。其中该芯片可以是上述的SE芯片,也可以是AP SOC,该AP SOC包括该SE芯片。
图8为本申请另一实施例提供的一种数据处理方法的流程图。结合图6和图8所示,所述方法应用于处理器611,所述处理器611包含于安全芯片61,所述安全芯片61还包括:第二存储器612和非易失性存储器NVM613;所述安全芯片61与第一存储器62耦合连接;所述NVM613,用于对加密数据块的更新次数进行计数,得到计数值,所述NVM613的计数值不可回退;
所述方法包括:
步骤S801:利用明文数据块的消息认证码MAC和NVM的第一计数值,得到明文数据块对应的第一数值;第一计数值是所述处理器计算第一数值时,明文数据块对应的计数值。
步骤S802:对第一数值和明文数据块加密,得到加密数据块,并将加密数据块存储至第一存储器;
步骤S803:根据加密数据块和NVM的第二计数值,判断加密数据块是否发生回退;其中,第二计数值与加密数据块对应;第二计数值为处理器判断加密数据块是否发生回退时,加密数据块对应的计数值。
本申请提供的数据处理方法,由图6所示的处理器执行,对应内容和效果相同,在此不再赘述。
Claims (24)
1.一种终端设备,其特征在于,包括:安全芯片和耦合至所述安全芯片的第一存储器,其中,所述安全芯片包括:处理器、第二存储器和计数器;
所述第一存储器,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与所述明文数据块对应的第一消息认证码MAC进行加密运算得到的,M为大于等于1的整数;
所述计数器,用于对所述M个第一数据块的更新次数进行计数,得到计数值,所述计数器的计数值不可回退;
所述处理器用于:
分别利用所述计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与所述M个第一数据块一一对应的M个第一数值;其中,所述第一计数值为所述处理器进行所述逻辑运算时,所述M个第一数据块对应的计数值;
对所述M个第一数值和与所述M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将所述第二数据块存储至所述第一存储器;
根据所述第二数据块以及所述计数器的第二计数值,判断目标数据块是否发生回退;其中,所述目标数据块是所述M个第一数据块的任一个;所述第二计数值为所述处理器判断所述目标数据块是否发生回退时,所述M个第一数据块对应的计数值。
2.根据权利要求1所述的终端设备,其特征在于,所述处理器具体用于:
对所述第二计数值和所述目标数据块对应的第一MAC,采用与计算所述目标数据块的第一数值相同的算法计算所述目标数据块的第二数值;
根据所述目标数据块的第一数值和所述目标数据块的第二数值判断所述目标数据块是否发生回退。
3.根据权利要求1所述的终端设备,其特征在于,还包括:发送器;
所述处理器具体用于:
当所述目标数据块的第一数值和所述目标数据块的第二数值相同时,确定所述目标数据块未发生回退;
当所述目标数据块的第一数值和所述目标数据块的第二数值不相同时,更新一次所述第二计数值得到第三计数值,对所述第三计数值和所述目标数据块对应的第一MAC,采用与计算所述目标数据块的第一数值相同的算法计算所述目标数据块的第三数值;
当所述目标数据块的第一数值和所述目标数据块的第三数值不相同时,确定所述目标数据块发生回退,并触发所述发送器发送提示消息,所述提示消息用于提示所述目标数据块发生回退。
4.根据权利要求3所述的终端设备,其特征在于,所述处理器还用于:
当所述目标数据块的第一数值和所述目标数据块的第三数值相同时,确定所述安全芯片发生掉电。
5.根据权利要求1所述的终端设备,其特征在于,所述处理器具体用于:
根据所述目标数据块的第一数值和所述目标数据块对应的第一MAC,得到所述第一计数值;
根据所述第一计数值和所述第二计数值判断所述目标数据块是否发生回退。
6.根据权利要求5所述的终端设备,其特征在于,还包括:发送器;
所述处理器具体用于:
当所述第一计数值和所述第二计数值相同时,确定所述目标数据块未发生回退;
当所述第一计数值和所述第二计数值不相同时,更新一次所述第二计数值得到第三计数值;
当所述第一计数值和所述第三计数值不相同时,确定所述目标数据块发生回退,并触发所述发送器发送提示消息,所述提示消息用于提示所述目标数据块发生回退。
7.根据权利要求6所述的终端设备,其特征在于,所述处理器还用于:
当所述第一计数值和所述第三计数值相同时,确定所述安全芯片发生掉电。
8.根据权利要求1-7任一项所述的终端设备,其特征在于,所述处理器还用于:
将第三数据块更新为新的第一数据块,并更新一次所述第一计数值得到新的第一计数值;其中,所述第三数据块是所述M个第一数据块的任一个;
分别对所述新的第一计数值和所述第二数据块对应的每个第一数据块对应的第一MAC,采用与计算所述第一数值相同的算法计算所述每个第一数据块的新的第一数值,并将所述每个第一数据块的第一数值更新为新的第一数值;
对所述第二数据块对应的M个新的第一数值和所述M个新的第一数值对应的新的第二MAC加密,得到新的第二数据块;并将第二数据块更新为所述新的第二数据块;
所述计数器,还用于将第一计数值更新为新的第一计数值。
9.根据权利要求8所述的终端设备,其特征在于,所述处理器还用于:
将第四数据块的第一数值读取至所述第二存储器,所述第四数据块为第二数据块对应的除所述新的第一数据块的任一第一数据块;
根据所述第四数据块的第一数值和第一计数值确定所述第四数据块对应的第一MAC;
将所述第四数据块对应的第一MAC存储至所述第二存储器。
10.根据权利要求8或9所述的终端设备,其特征在于,所述处理器还用于:
当所述安全芯片发生掉电,则在所述安全芯片上电之后,读取第五数据块对应的每个第一数据块的第五数值,其中,所述第五数据块为所述新的第二数据块对应的实际数据块,所述第五数值为所述新的第一数值对应的实际数值;
根据所述第五数据块对应的每个第一数据块的第五数值和所述第五数据块对应的每个第一数据块的第一MAC确定用于计算所述第五数值的第四计数值;
判断所述第五数据块对应的每个第一数据块的第四计数值是否相同;
当确定所述第五数据块对应的每个第一数据块的第四计数值不完全相同时,对从第六数据块开始的每个第一数据块的第四计数值更新一次,得到所述新的第一计数值,其中所述第六数据块为所述第五数据块对应的一个第一数据块,且满足条件:从所述第六数据块开始的每个第一数据块的第四计数值与所述第六数据块之前的每个第一数据块的第四计数值不同;
对所述新的第一计数值和从所述第六数据块开始的每个第一数据块对应的第一MAC,采用与计算所述第一数值相同的算法计算从所述第六数据块开始的每个第一数据块的新的第一数值,并将从所述第六数据块开始的每个第一数据块的第四数值更新为新的第一数值;
将所述第五数据块对应的第二MAC更新为所述新的第二MAC;
对所述第五数据块对应的M个新的第一数值和所述M个新的第一数值对应的新的第二MAC加密,得到所述新的第二数据块,并将所述第五数据块更新为所述新的第二数据块;
所述计数器,还用于将第一计数值更新为所述新的第一计数值。
11.根据权利要求1-10任一项所述的终端设备,其特征在于,所述计数器为一次性编程芯片OTP或者非易失性存储器NVM。
12.一种处理器,其特征在于,所述处理器为权利要求1-11任一项所述的处理器。
13.一种芯片,其特征在于,包括如权利要求1-11任一项所述的计数器和如权利要求1-11任一项所述的处理器。
14.一种数据处理方法,其特征在于,所述方法应用于处理器,所述处理器包含于安全芯片,所述安全芯片还包括:第二存储器和计数器;所述安全芯片与第一存储器耦合连接;所述第一存储器,用于存储M个第一数据块,其中,每个第一数据块是通过对明文数据块以及与所述明文数据块对应的第一消息认证码MAC进行加密运算得到的,M为大于等于1的整数;所述计数器,用于对所述M个第一数据块的更新次数进行计数,得到计数值,所述计数器的计数值不可回退;所述方法包括:
分别利用所述计数器的第一计数值以及每个第一数据块对应的第一MAC进行逻辑运算,得到与所述M个第一数据块一一对应的M个第一数值;其中,所述第一计数值为所述处理器进行逻辑运算时,所述M个第一数据块对应的计数值;
对所述M个第一数值和与所述M个第一数值对应的第二MAC进行加密运算,得到第二数据块,并将所述第二数据块存储至所述第一存储器;
根据所述第二数据块以及所述计数器的第二计数值,判断目标数据块是否发生回退;其中,所述目标数据块是所述M个第一数据块的任一个;所述第二计数值为所述处理器判断所述目标数据块是否发生回退时,所述M个第一数据块对应的计数值。
15.一种终端设备,其特征在于,包括:安全芯片和耦合至所述安全芯片的第一存储器,其中,所述安全芯片包括:处理器、第二存储器和非易失性存储器NVM;
所述NVM,用于对加密数据块的更新次数进行计数,得到计数值,所述NVM的计数值不可回退;
所述处理器用于:
利用明文数据块的消息认证码MAC和所述NVM的第一计数值,得到所述明文数据块对应的第一数值;所述第一计数值是所述处理器计算所述第一数值时,所述明文数据块对应的计数值;
对所述第一数值和所述明文数据块加密,得到所述加密数据块,并将所述加密数据块存储至所述第一存储器;
所述处理器,还用于根据所述加密数据块和所述NVM的第二计数值,判断所述加密数据块是否发生回退;其中,所述第二计数值与所述加密数据块对应;所述第二计数值为所述处理器判断所述加密数据块是否发生回退时,所述加密数据块对应的计数值。
16.根据权利要求15所述的终端设备,其特征在于,所述处理器具体用于:
对所述第二计数值和所述明文数据块的MAC,采用与计算所述第一数值相同的算法计算所述明文数据块的第二数值;
根据所述第一数值和所述第二数值判断所述明文数据块是否发生回退。
17.根据权利要求16所述的终端设备,其特征在于,还包括:发送器;
所述处理器具体用于:
当所述第一数值和所述第二数值相同时,确定所述明文数据块未发生回退;
当所述第一数值和所述第二数值不相同时,更新一次所述第二计数值,得到第三计数值,对所述第三计数值和所述MAC,采用与计算所述第一数值相同的算法计算所述明文数据块的第三数值;
当所述第一数值和所述第三数值不相同时,确定所述明文数据块发生回退,并触发所述发送器发送提示消息,所述提示消息用于提示所述明文数据块发生回退。
18.根据权利要求17所述的终端设备,其特征在于,所述处理器还用于:
当所述第一数值和所述第三数值相同时,确定所述安全芯片发生掉电。
19.根据权利要求15所述的终端设备,其特征在于,所述处理器具体用于:
解密所述第一数值,得到所述明文数据块的MAC和所述NVM的第一计数值;
根据所述第一计数值和所述第二计数值判断所述明文数据块是否发生回退。
20.根据权利要求19所述的终端设备,其特征在于,还包括:发送器;
所述处理器具体用于:
当所述第一计数值和所述第二计数值相同时,确定所述明文数据块未发生回退;
当所述第一计数值和所述第二计数值不相同时,更次一次所述第二计数值得到第三计数值;
当所述第一计数值和所述第三计数值不相同时,确定所述明文数据块发生回退,并触发所述发送器发送提示消息,所述提示消息用于提示所述明文数据块发生回退。
21.根据权利要求20所述的终端设备,其特征在于,所述处理器还用于:
当所述第一计数值和所述第三计数值相同时,确定所述安全芯片发生掉电。
22.一种处理器,其特征在于,所述处理器为权利要求15-21任一项所述的处理器。
23.一种芯片,其特征在于,包括如权利要求15-21任一项所述的非易失性存储器NVM和如权利要求15-21任一项所述的处理器。
24.一种数据处理方法,其特征在于,所述方法应用于处理器,所述处理器包含于安全芯片,所述安全芯片还包括:第二存储器和非易失性存储器NVM;所述安全芯片与第一存储器耦合连接;所述NVM,用于对加密数据块的更新次数进行计数,得到计数值,所述NVM的计数值不可回退;
所述方法包括:
利用明文数据块的消息认证码MAC和所述NVM的第一计数值,得到所述明文数据块对应的第一数值;所述第一计数值是所述处理器计算所述第一数值时,所述明文数据块对应的计数值;
对所述第一数值和所述明文数据块加密,得到所述加密数据块,并将所述加密数据块存储至所述第一存储器;
根据所述加密数据块和所述NVM的第二计数值,判断所述加密数据块是否发生回退;其中,所述第二计数值与所述加密数据块对应;所述第二计数值为所述处理器判断所述加密数据块是否发生回退时,所述加密数据块对应的计数值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710464774.3A CN109150534B (zh) | 2017-06-19 | 2017-06-19 | 终端设备及数据处理方法 |
PCT/CN2018/091749 WO2018233583A1 (zh) | 2017-06-19 | 2018-06-19 | 终端设备及数据处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710464774.3A CN109150534B (zh) | 2017-06-19 | 2017-06-19 | 终端设备及数据处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109150534A true CN109150534A (zh) | 2019-01-04 |
CN109150534B CN109150534B (zh) | 2021-10-01 |
Family
ID=64735898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710464774.3A Active CN109150534B (zh) | 2017-06-19 | 2017-06-19 | 终端设备及数据处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109150534B (zh) |
WO (1) | WO2018233583A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885442A (zh) * | 2019-02-13 | 2019-06-14 | 上海燧原智能科技有限公司 | 性能分析方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104956374A (zh) * | 2013-03-01 | 2015-09-30 | 意法爱立信有限公司 | 用于软件防回滚恢复的方法 |
US20160285892A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Protecting a memory |
CN106127483A (zh) * | 2016-06-30 | 2016-11-16 | 华为技术有限公司 | 移动支付方法、片上系统及终端 |
CN106372540A (zh) * | 2016-08-29 | 2017-02-01 | 北京中电华大电子设计有限责任公司 | 一种芯片安全信息的安全传输方法及电路 |
CN106406939A (zh) * | 2016-09-05 | 2017-02-15 | 惠州Tcl移动通信有限公司 | 一种基于emmc芯片的移动终端防回滚方法及系统 |
US20170147331A1 (en) * | 2015-01-05 | 2017-05-25 | Irdeto B.V. | Updating software components |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19539700C1 (de) * | 1995-10-25 | 1996-11-28 | Siemens Ag | Sicherheitschip |
JP2006079181A (ja) * | 2004-09-07 | 2006-03-23 | Sony Corp | 生体照合装置 |
CN100447776C (zh) * | 2005-03-17 | 2008-12-31 | 联想(北京)有限公司 | 内嵌实时时钟的安全芯片以及校准其实时时钟方法 |
CN103839012A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | Flash加密存储装置 |
-
2017
- 2017-06-19 CN CN201710464774.3A patent/CN109150534B/zh active Active
-
2018
- 2018-06-19 WO PCT/CN2018/091749 patent/WO2018233583A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104956374A (zh) * | 2013-03-01 | 2015-09-30 | 意法爱立信有限公司 | 用于软件防回滚恢复的方法 |
US20170147331A1 (en) * | 2015-01-05 | 2017-05-25 | Irdeto B.V. | Updating software components |
US20160285892A1 (en) * | 2015-03-27 | 2016-09-29 | Intel Corporation | Protecting a memory |
CN106127483A (zh) * | 2016-06-30 | 2016-11-16 | 华为技术有限公司 | 移动支付方法、片上系统及终端 |
CN106372540A (zh) * | 2016-08-29 | 2017-02-01 | 北京中电华大电子设计有限责任公司 | 一种芯片安全信息的安全传输方法及电路 |
CN106406939A (zh) * | 2016-09-05 | 2017-02-15 | 惠州Tcl移动通信有限公司 | 一种基于emmc芯片的移动终端防回滚方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109885442A (zh) * | 2019-02-13 | 2019-06-14 | 上海燧原智能科技有限公司 | 性能分析方法、装置、设备及存储介质 |
CN109885442B (zh) * | 2019-02-13 | 2020-03-27 | 上海燧原智能科技有限公司 | 性能分析方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2018233583A1 (zh) | 2018-12-27 |
CN109150534B (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4956292B2 (ja) | 情報セキュリティ装置およびカウンタ制御方法 | |
WO2020192406A1 (zh) | 数据存储、验证方法及装置 | |
TWI407745B (zh) | 安全與重播受保護之記憶儲存 | |
US11100011B2 (en) | Flash translation layer with hierarchical security | |
US10733313B2 (en) | Counter integrity tree for memory security | |
EP3949257A1 (en) | Generating an identity for a computing device using a physical unclonable function | |
CN108781210A (zh) | 具有可信执行环境的移动设备 | |
CN103210396A (zh) | 包括用于保护敏感代码和数据的架构的方法和装置 | |
KR20210131438A (ko) | 비밀 키를 이용한 아이덴티티 검증 | |
JP2005260676A (ja) | セキュリティ装置、情報処理装置、セキュリティ装置の制御方法、情報処理装置の制御方法、該制御方法を実行させるための装置実行可能なプログラムおよびチケット・システム | |
US11228421B1 (en) | Secure secrets to mitigate against attacks on cryptographic systems | |
WO2019025762A1 (en) | COUNTER INTEGRITY TREE FOR MEMORY SECURITY | |
TW201633152A (zh) | 用於減少從記憶體資訊洩漏之系統及方法 | |
CN105678173B (zh) | 基于硬件事务内存的vTPM安全保护方法 | |
CN103607279A (zh) | 基于多核处理器的密钥保护方法及系统 | |
CN108108631A (zh) | 一种根密钥处理方法及相关装置 | |
TW201514992A (zh) | 非揮發記憶體裝置以及用於非揮發記憶體裝置的方法 | |
KR101910826B1 (ko) | 사물인터넷 디바이스의 보안 방법 및 장치 | |
CN107294710A (zh) | 一种vTPM2.0的密钥迁移方法及装置 | |
Buhren et al. | Fault attacks on encrypted general purpose compute platforms | |
CN105893837A (zh) | 应用程序安装方法、安全加密芯片及终端 | |
CN113632084A (zh) | 运行时代码执行验证 | |
CN112100696A (zh) | 存储器装置及其安全读取方法 | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
CN107563226B (zh) | 一种存储器控制器、处理器模块及密钥更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |