CN110309083A - 一种存储器数据加扰方法 - Google Patents
一种存储器数据加扰方法 Download PDFInfo
- Publication number
- CN110309083A CN110309083A CN201910583935.XA CN201910583935A CN110309083A CN 110309083 A CN110309083 A CN 110309083A CN 201910583935 A CN201910583935 A CN 201910583935A CN 110309083 A CN110309083 A CN 110309083A
- Authority
- CN
- China
- Prior art keywords
- memory
- scrambling
- value
- data
- scrambling code
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/16—Protection against loss of memory contents
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例涉及一种存储器数据加扰方法,其特征在于,所述方法包括:获取存储器类型、读写状态字;当存储器类型为第一存储类型时获取第一扰码,根据第一扰码和读写状态字进行第一数据加扰处理;当存储器类型为第二存储类型时获取第二扰码,根据第二扰码和读写状态字进行第二数据加扰处理;当存储器类型为第三存储类型时获取第一扰码密钥和加解密块长度,根据第一扰码密钥、加解密块长度和读写状态字进行第三数据加扰处理。本发明方法根据存储器类型分别使用三种不同的数据加扰手段对存储器内的数据进行加扰保护,即使单片机受到介入式攻击,破坏方也不可能获得存储数据原文。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种存储器数据加扰方法。
背景技术
随着存储器的广泛应用,针对存储器的介入式攻击手段与设备也在快速发展。其主要攻击对象是存储器内的存储数据,通过介入式探测攻击设备可直接获取存储单元内数据原文。一旦存储器的存储数据受到介入式攻击被非法使用者盗取,则将给存储器及其上位机本身的业务流程乃至更上层应用系统造成数据泄露风险。
发明内容
本发明的目的是,针对上述技术缺陷,提供一种存储器数据加扰方法,根据本发明方法可以根据存储器类型对不同类型的存储模块提供特定的数据加扰保护方法。在本发明方法的保护下,即使存储器受到介入式攻击,第三方也不可获得存储数据文。
为实现上述目的,本发明提供了一种存储器数据加扰方法,包括:
获取存储器的存储器类型和读写状态字;
如所述存储器类型为第一存储类型时,获取第一扰码,根据所述第一扰码和所述读写状态字,对所述第一存储类型对应的第一存储器进行第一数据加扰处理;
如所述存储器类型为第二存储类型时,获取第二扰码,根据所述第二扰码和所述读写状态字,对所述第二存储类型对应的第二存储器进行第二数据加扰处理;
如所述存储器类型为第三存储类型时,获取第一扰码密钥和加解密块长度,根据所述第一扰码密钥、所述加解密块长度和所述读写状态字,对所述第三存储类型对应的第三存储器进行第三数据加扰处理;
所述第一数据加扰处理具体为,当所述读写状态字的值为写数据时,获取第一原文,根据所述第一扰码和所述第一原文,对所述第一存储器进行第一算法加扰写处理;当所述读写状态字的值为读数据时,根据所述第一扰码对所述第一存储器进行第一算法加扰读处理,生成第二原文;
所述第二数据加扰处理具体为,当所述读写状态字的值为写数据时,获取第三原文,根据所述第二扰码和所述第三原文,对所述第二存储器进行第二算法加扰写处理;当所述读写状态字的值为读数据时,根据所述第二扰码对所述第二存储器进行第二算法加扰读处理,生成第四原文;
所述第三数据加扰处理具体为,当所述读写状态字的值为写数据时,获取第五原文,根据所述第一扰码密钥、所述加解密块长度和所述第五原文,对所述第三存储器进行第三数据加扰写处理;当所述读写状态字的值为读数据时,根据所述第一扰码密钥和所述加解密块长度,对所述第三存储器进行第三数据加扰读处理,生成第六原文。
进一步的,所述根据所述第一扰码和所述第一原文,对所述第一存储器进行第一算法加扰写处理,具体包括:
根据所述第一扰码,对所述第一原文进行第一算法加扰处理,生成第一密文;
根据所述第一密文,对所述第一存储器进行数据写入处理。
优选的,所述根据所述第一扰码,对所述第一原文进行第一算法加扰处理,生成第一密文,具体包括:
步骤31,根据所述第一扰码,获取所述第一扰码的扰码字节总数,生成第一块长度;根据所述第一原文,获取所述第一原文的原文字节总数,生成第一输入长度;
步骤32,根据所述第一输入长度除以所述第一块长度的商,生成第一块总数;
步骤33,初始化第一块索引的值为1;初始化第一输出数据为空;
步骤34,根据所述第一原文,提取所述第一原文的所述第一块索引字节,生成第一输入块;
步骤35,根据所述第一扰码,对所述第一输入块进行字节异或处理,生成第一输出块;
步骤36,根据所述第一输出块,提取所述第一输出块所有字节,对所述第一输出数据进行字节顺序添加处理;
步骤37,将所述第一块索引的值加1;
步骤38,判断所述第一块索引的值是否大于所述第一块总数的值,当所述第一块索引的值大于所述第一块总数的值时,则转至步骤39;当所述第一块索引的值小于或等于所述第一块总数的值时,则转至步骤34;
步骤39,根据所述第一输出数据,提取所述第一输出数据的所有字节,生成所述第一密文。
进一步的,所述根据所述第一扰码对所述第一存储器进行第一算法加扰读处理,生成第二原文,具体包括:
对所述第一存储器进行数据读出处理,生成第二密文;
根据所述第一扰码,对所述第二密文进行第一算法解扰处理,生成所述第二原文。
优选的,所述根据所述第一扰码,对所述第二密文进行第一算法解扰处理,生成所述第二原文,具体包括:
步骤51,根据所述第一扰码,获取所述第一扰码的扰码字节总数,生成第二块长度;根据所述第二密文,获取所述第二密文的密文字节总数,生成第二输入长度;
步骤52,根据所述第二输入长度除以所述第二块长度的商,生成第二块总数;
步骤53,初始化第二块索引的值为1;初始化第二输出数据为空;
步骤54,根据所述第二密文,提取所述第二密文的所述第二块索引字节,生成第二输入块;
步骤55,根据所述第一扰码,对所述第二输入块进行字节同或处理,生成第二输出块;
步骤56,根据所述第二输出块,提取所述第二输出块所有字节,对所述第二输出数据进行字节顺序添加处理;
步骤57,将所述第二块索引的值加1;
步骤58,判断所述第二块索引的值是否大于所述第二块总数的值,当所述第二块索引的值大于所述第二块总数的值时,则转至步骤59;当所述第二块索引的值小于或等于所述第二块总数的值时,则转至步骤54;
步骤59,根据所述第二输出数据,提取所述第二输出数据的所有字节,生成所述第二原文。
进一步的,所述根据所述第一扰码密钥、所述加解密块长度和所述第五原文,对所述第三存储器进行第三数据加扰写处理,具体包括:
根据所述第一扰码密钥和所述加解密块长度,对所述第五原文进行第三算法加扰处理,生成第三密文;
根据所述第三密文,对所述第三存储器进行数据写入处理。
优选的,所述根据所述第一扰码密钥和所述加解密块长度,对所述第五原文进行第三算法加扰处理,生成第三密文,具体包括:
步骤71,初始化第三块长度的值为所述加解密块长度的值;根据所述第五原文,获取所述第五原文的原文字节总数,生成第三输入长度;
步骤72,根据所述第三输入长度除以所述第三块长度的商,生成第三块总数;
步骤73,初始化第三块索引的值为1;初始化第三输出数据为空;
步骤74,根据所述第五原文,提取所述第五原文的所述第三块索引字节,生成第三输入块;
步骤75,根据所述第一扰码密钥,对所述第三输入块进行对称算法加密处理,生成第三输出块;
步骤76,根据所述第三输出块,提取所述第三输出块所有字节,对所述第三输出数据进行字节顺序添加处理;
步骤77,将所述第三块索引的值加1;
步骤78,判断所述第三块索引的值是否大于所述第三块总数的值,当所述第三块索引的值大于所述第三块总数的值时,则转至步骤79;当所述第三块索引的值小于或等于所述第三块总数的值时,则转至步骤74;
步骤79,根据所述第三输出数据,提取所述第三输出数据的所有字节,生成所述第三密文。
进一步的,所述根据所述第一扰码密钥和所述加解密块长度,对所述第三存储器进行第三数据加扰读处理,生成第六原文,具体包括:
对所述第三存储器进行数据读出处理,生成第四密文;
根据所述第一扰码密钥和所述加解密块长度,对所述第四密文进行第三算法解扰处理,生成所述第六原文。
优选的,所述根据所述第一扰码密钥和所述加解密块长度,对所述第四密文进行第三算法解扰处理,生成所述第六原文,具体包括:
步骤91,初始化第四块长度的值为所述加解密块长度的值;根据所述第四密文,获取所述第四密文的密文字节总数,生成第四输入长度;
步骤92,根据所述第四输入长度除以所述第四块长度的商,生成第四块总数;
步骤93,初始化第四块索引的值为1;初始化第四输出数据为空;
步骤94,根据所述第四密文,提取所述第四密文的所述第四块索引字节,生成第四输入块;
步骤95,根据所述第一扰码密钥,对所述第四输入块进行对称算法解密处理,生成第四输出块;
步骤96,根据所述第四输出块,提取所述第四输出块所有字节,对所述第四输出数据进行字节顺序添加处理;
步骤97,将所述第四块索引的值加1;
步骤98,判断所述第四块索引的值是否大于所述第四块总数的值,当所述第四块索引的值大于所述第四块总数的值时,则转至步骤99;当所述第四块索引的值小于或等于所述第四块总数的值时,则转至步骤94;
步骤99,根据所述第四输出数据,提取所述第四输出数据的所有字节,生成所述第六原文。
进一步的,
所述第一扰码具体为所述存储器的上位机在每次上电复位成功之后一次性生成的随机扰码;
所述第二扰码具体为所述存储器的上位机预置的固定扰码;
所述第一扰码密钥具体为所述存储器的上位机预置的对称算法密钥;
所述第一存储类型具体为易失存储器;
所述第二存储类型具体为只读存储器;
所述第三存储类型具体为非易失存储器。
本发明实施例提供的一种存储器数据加扰方法,首先对存储器从功能上进行区分生成三种主要存储介质:第一存储类型,第二存储类型和第三存储类型。对不同存储介质类型提供不同的存储数据加扰解决方法:对第一存储介质,采用第一数据加扰方法对数据进行存储和读取;对第二存储介质,采用第二数据加扰方法对数据进行存储和读取;对第三存储介质,采用第三数据加扰方法对数据进行存储和读取。通过本发明实施例提供的三种数据加扰防护方法,实现了对存储器内存数据原文的有效防护。
附图说明
图1为本发明实施例一提供的一种存储器数据加扰方法的工作示意图;
图2为本发明实施例二提供的一种存储器数据加扰方法的工作示意图;
图3为本发明实施例三提供的一种存储器数据加扰方法的工作示意图;
图4为本发明实施例四提供的一种存储器数据加扰方法的工作示意图;
图5为本发明实施例五提供的一种存储器数据加扰方法的工作示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
存储器用于存储数据的存储器主要包括三种类型:
第一存储类型具体为易失存储器,包括但不限于随机存取存储器(Random AccessMemory,缩写为RAM)、静态随机存取存储器(Static Random Access Memory,缩写为SRAM)等,其特点是掉电后数据会丢失,一般该类存储器用于处理计算机操作系统运行时的产生的临时内存数据;
第二存储类型具体为只读存储器,包括但不限于只读存储器(Read-Only Memory,缩写为ROM)、一次性可编程存储器(0ne Time Programmable,缩写OTP)等,其特点是在生产制造过程中,存储器被一次性烧录数据之后只能读取不能二次擦写,一般该类存储器用于存储计算机操作系统的固定执行代码;
第三存储类型具体为非易失存储器,包括但不限于闪存FLASH、带电可擦可编程只读存储器EEPROM(Electrically Erasable Programmable Read-Only Memory)等,其特点是存储器可被多次读写并掉电后数据不丢失,一般该类存储器用于存储计算机操作系统的应用数据和可修改的执行代码。
鉴于上述三种存储器内存储的数据都与计算机的正常运行密切相关,一旦被攻击方采用介入式探测手段获取了存储区内的数据原文,则不仅仅会造成存储器中的应用数据泄露,还会造成存储器中的操作系统机器码泄露。攻击方根据获取的机器码原文,通过进一步的反编译,则会造成操作系统源代码泄露。
因此本发明方法,就是针对上述技术缺陷,从保护源代码与应用数据原文的安全性前提出发,提供了三种数据加扰方法。通过使用该三类方法,在数据写入前对原文进行加扰处理,使得原文不再以明文的方式进行写入存储;在数据读取之后对读出数据进行解扰处理,从而获得数据明文进行实际处理。其中第一数据加扰方法是针对第一存储类型;第二数据加扰方法是针对第二存储类型;第一数据加扰方法是针对第一存储类型。
其中,第一数据加扰方法,包括第一数据加扰写和第一数据加扰读两个处理流程。对第一存储类型的存储器进行数据写入时,通过第一数据加扰写流程,使用第一扰码对写入数据原文做字节异或计算,生成计算密文后存储到存储器;对第一存储类型的存储器进行数据读取时,通过第一数据加扰读流程,使用第一扰码对从存储器直接读出的读出数据做字节同或计算,生成计算结果后再将计算结果作为读出的原文输出。
这里,第一扰码具体为存储器的上位机在每次上电启动成功之后产生的随机扰码,该随机扰码的生命周期为当前上电周期。在当前上电周期内,该随机扰码由上位机在上电启动成功之后只生成一次;在当前上电周期内,针对第一存储类型的存储器做的所有第一数据加扰处理均以该随机扰码的值作为第一扰码的值。
第二数据加扰方法,包括第二数据加扰写和第二数据加扰读两个处理流程。对第二存储类型的存储器进行数据写入时,通过第二数据加扰写流程,使用第二扰码对写入数据原文做字节异或计算,生成计算密文后存储到存储器;对第二存储类型的存储器进行数据读取时,通过第二数据加扰读流程,使用第二扰码对从存储器直接读出的读出数据做字节同或计算,生成计算结果后再将计算结果作为读出的原文输出。
这里,第二扰码具体为存储器的上位机预置的固定扰码,该固定扰码的生命周期为存储器全生命周期。在每次上电周期内,该固定扰码值均不会发生变化。针对第二存储类型的存储器在所有上电周期内做的所有第二数据加扰处理均以该固定扰码的值作为第二扰码的值。
同时,因为第二存储类型的存储器是只读存储器,所以第二数据加扰写在存储器全生命周期内只发生在存储器初始化时。存储器通过第二数据加扰写流程完成存储器初始化之后,对存储器不能再次进行写操作。
另外,本发明实施例中提及的第二数据加扰方法,其第二算法加扰处理与第一算法加扰处理流程在算法原则上一致,都是对写入数据基于扰码做字节异或处理之后再做实际存储;第二算法解扰处理与第一算法解扰处理流程在算法原则上一致,都是对读出后的数据基于扰码做字节同或处理之后再做实际输出。第二数据加扰方法与第一数据加扰方法的区别是,第一扰码是随机扰码,第二扰码是固定扰码;第一扰码的字节长度与第二扰码的字节长度不强制要求一致。
第三数据加扰方法,包括第三数据加扰写和第三数据加扰读两个处理流程。对第三存储类型的存储器进行数据写入时,通过第三数据加扰写流程,使用第一扰码密钥对写入数据原文做对称算法加密计算,生成计算密文后存储到存储器;对第三存储类型的存储器进行数据读取时,通过第三数据加扰读流程,使用第一扰码密钥对从存储器直接读出的读出数据做对称算法解密计算,生成计算结果后再将计算结果作为读出的原文输出。
这里,第一扰码密钥具体为存储器的上位机预置的固定扰码密钥,该固定扰码密钥的生命周期为存储器全生命周期。在每次上电周期内,该固定扰码密钥值均不会发生变化。针对第三存储类型的存储器在所有上电周期内做的所有第三数据加扰处理均以该固定扰码密钥的值作为第一扰码密钥的值。
同时,在第三数据加扰方法中使用的对称算法具体为,数据加密标准DES(DataEncryption Standard)算法或高级加密标准AES(Advanced Encryption Standard)算法。
本发明实施例一,如图1为本发明实施例二提供的一种存储器数据加扰方法的工作示意图所示,方法包括以下步骤:
步骤101,获取存储器的存储器类型和读写状态字,当存储器类型为第一存储类型时,转至步骤102;当存储器类型为第二存储类型时,转至步骤103;当存储器类型为第三存储类型时,转至步骤104。
步骤102,获取第一扰码,根据第一扰码和读写状态字,对第一存储类型对应的第一存储器进行第一数据加扰处理,
具体包括:步骤1021,当读写状态字的值为写数据时,获取第一原文,根据第一扰码和第一原文,对第一存储器进行第一算法加扰写处理;
步骤1022,当读写状态字的值为读数据时,根据第一扰码对第一存储器进行第一算法加扰读处理,生成第二原文。
步骤103,获取第二扰码,根据第二扰码和读写状态字,对第二存储类型对应的第二存储器进行第二数据加扰处理,
具体包括:步骤1031,当读写状态字的值为写数据时,获取第三原文,根据第二扰码和第三原文,对第二存储器进行第二算法加扰写处理;
步骤1032,当读写状态字的值为读数据时,根据第二扰码对第二存储器进行第二算法加扰读处理,生成第四原文。
步骤104,获取第一扰码密钥和加解密块长度,根据第一扰码密钥、加解密块长度和读写状态字,对第三存储类型对应的第三存储器进行第三数据加扰处理,
具体包括:步骤1041,当读写状态字的值为写数据时,获取第五原文,根据第一扰码密钥、加解密块长度和第五原文,对第三存储器进行第三数据加扰写处理;
步骤1042当读写状态字的值为读数据时,根据第一扰码密钥和加解密块长度,对第三存储器进行第三数据加扰读处理,生成第六原文。
本发明实施例二,如图2为本发明实施例二提供的一种存储器数据加扰方法的工作示意图所示,方法包括以下步骤:
步骤21,获取存储器的存储器类型和读写状态字。
步骤22,在存储器类型为第一存储类型时,获取第一扰码。
步骤23,在读写状态字的值为写数据时,获取第一原文。
步骤24,根据第一扰码,对第一原文进行第一算法加扰处理,生成第一密文,
具体包括:步骤A1,根据第一扰码,获取第一扰码的扰码字节总数,生成第一块长度;根据第一原文,获取第一原文的原文字节总数,生成第一输入长度;
步骤A2,根据第一输入长度除以第一块长度的商,生成第一块总数;
此处,例如第一块长度为8字节,第一原文长度为24字节,则第一原文能被拆分为3块,第一块总数的值为3;
步骤A3,初始化第一块索引的值为1;初始化第一输出数据为空;
步骤A4,根据第一原文,提取第一原文的第一块索引字节,生成第一输入块;
此处,第一块索引的值为1时表示第1块,其数据为第一原文的第1到8字节,第一块索引的值为2时表示第2块,其数据为第一原文的第9到16字节,第一块索引的值为3时表示第3块,其数据为第一原文的第17到24字节;
步骤A5,根据第一扰码,对第一输入块进行字节异或处理,生成第一输出块;
步骤A6,根据第一输出块,提取所述第一输出块所有字节,对第一输出数据进行字节顺序添加处理;
此处,最终输出的第一输出数据是三块数据的顺序拼接:第1输出块+第2输出块+第3输出块;
步骤A7,将第一块索引的值加1;
步骤A8,判断第一块索引的值是否大于第一块总数的值,当第一块索引的值大于第一块总数的值时,则转至步骤A9;当第一块索引的值小于或等于第一块总数的值时,则转至步骤A4;
步骤A9,根据第一输出数据,提取第一输出数据的所有字节,生成第一密文。
步骤25,根据第一密文,对第一存储器进行数据写入处理。
本发明实施例三,如图3为本发明实施例三提供的一种存储器数据加扰方法的工作示意图所示,方法包括以下步骤:
步骤31,获取存储器的存储器类型和读写状态字。
步骤32,在存储器类型为第一存储类型时,获取第一扰码。
步骤33,在读写状态字的值为读数据时,对第一存储器进行数据读出处理,生成第二密文;
步骤34,根据第一扰码,对第二密文进行第一算法解扰处理,生成第二原文,
具体包括:步骤B1,根据第一扰码,获取第一扰码的扰码字节总数,生成第二块长度;根据第二密文,获取第二密文的密文字节总数,生成第二输入长度;
步骤B2,根据第二输入长度除以第二块长度的商,生成第二块总数;
步骤B3,初始化第二块索引的值为1;初始化第二输出数据为空;
步骤B4,根据第二密文,提取第二密文的第二块索引字节,生成第二输入块;
步骤B5,根据第一扰码,对第二输入块进行字节同或处理,生成第二输出块:
步骤B6,根据第二输出块,提取所述第二输出块所有字节,对第二输出数据进行字节顺序添加处理;
步骤B7,将第二块索引的值加1;
步骤B8,判断第二块索引的值是否大于第二块总数的值,当第二块索引的值大于第二块总数的值时,则转至步骤B9;当第二块索引的值小于或等于第二块总数的值时,则转至步骤B4;
步骤B9,根据第二输出数据,提取第二输出数据的所有字节,生成第二原文。
本发明实施例四,如图4为本发明实施例四提供的一种存储器数据加扰方法的工作示意图所示,方法包括以下步骤:
步骤41,获取存储器的存储器类型和读写状态字。
步骤42,在存储器类型为第三存储类型时,获取第一扰码密钥和加解密块长度。
步骤43,在读写状态字的值为写数据时,获取第五原文。
步骤44,根据第一扰码密钥和加解密块长度,对第五原文进行第三算法加扰处理,生成第三密文,
具体包括:步骤C1,初始化第三块长度的值为加解密块长度的值;根据第五原文,获取第五原文的原文字节总数,生成第三输入长度;
步骤C2,根据第三输入长度除以第三块长度的商,生成第三块总数;
步骤C3,初始化第三块索引的值为1;初始化第三输出数据为空;
步骤C4,根据第五原文,提取第五原文的第三块索引字节,生成第三输入块;
步骤C5,根据第一扰码密钥,对第三输入块进行对称算法加密处理,生成第三输出块;
步骤C6,根据第三输出块,对第三输出数据进行字节顺序添加处理;
步骤C7,将第三块索引的值加1;
步骤C8,判断第三块索引的值是否大于第三块总数的值,当第三块索引的值大于第三块总数的值时,则转至步骤C9;当第三块索引的值小于或等于第三块总数的值时,则转至步骤C4;
步骤C9,根据第三输出数据,提取第三输出数据的所有字节,生成第三密文。
步骤45,根据第三密文,对第三存储器进行数据写入处理。
本发明实施例五,如图5为本发明实施例五提供的一种存储器数据加扰方法的工作示意图所示,方法包括以下步骤:
步骤51,获取存储器的存储器类型和读写状态字。
步骤52,在存储器类型为第三存储类型时,获取第一扰码密钥和加解密块长度。
步骤53,在读写状态字的值为读数据时,对第三存储器进行数据读出处理,生成第四密文。
步骤54,根据第一扰码密钥和加解密块长度,对第四密文进行第三算法解扰处理,生成第六原文,
具体包括:步骤D1,初始化第四块长度的值为加解密块长度的值;根据第四密文,获取第四密文的密文字节总数,生成第四输入长度;
步骤D2,根据第四输入长度除以第四块长度的商,生成第四块总数;
步骤D3,初始化第四块索引的值为1;初始化第四输出数据为空;
步骤D4,根据第四密文,提取第四密文的第四块索引字节,生成第四输入块;
步骤D5,根据第一扰码密钥,对第四输入块进行对称算法解密处理,生成第四输出块;
步骤D6,根据第四输出块,对第四输出数据进行字节顺序添加处理;
步骤D7,将第四块索引的值加1;
步骤D8,判断第四块索引的值是否大于第四块总数的值,当第四块索引的值大于第四块总数的值时,则转至步骤D9;当第四块索引的值小于或等于第四块总数的值时,则转至步骤D4;
步骤D9,根据第四输出数据,提取第四输出数据的所有字节,生成第六原文。
本发明实施例提供的一种存储器数据加扰方法,通过提供第一数据加扰方法实现了对第一存储类型即随机存取存储器的数据存储保护,通过第二数据加扰方法实现了对第二存储类型即只读内存存储器的数据存储保护,通过第三数据加扰方法实现了对第三存储类型即掉电不丢失数据存储器的数据存储保护。由此,计算机内所有存储器即使遭到了外部的介入式探测攻击,被获取了存储器内数据,也是获取的扰乱之后的毫无实际意义的乱码。加之三种防护方法的实施细则不同,乱码成因不同,探测方也很难通过同等的逆向分析对乱码进行规则性分析。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种存储器数据加扰方法,其特征在于,所述方法包括:
获取存储器的存储器类型和读写状态字;
如所述存储器类型为第一存储类型时,获取第一扰码,根据所述第一扰码和所述读写状态字,对所述第一存储类型对应的第一存储器进行第一数据加扰处理;
如所述存储器类型为第二存储类型时,获取第二扰码,根据所述第二扰码和所述读写状态字,对所述第二存储类型对应的第二存储器进行第二数据加扰处理;
如所述存储器类型为第三存储类型时,获取第一扰码密钥和加解密块长度,根据所述第一扰码密钥、所述加解密块长度和所述读写状态字,对所述第三存储类型对应的第三存储器进行第三数据加扰处理;
所述第一数据加扰处理具体为,当所述读写状态字的值为写数据时,获取第一原文,根据所述第一扰码和所述第一原文,对所述第一存储器进行第一算法加扰写处理;当所述读写状态字的值为读数据时,根据所述第一扰码对所述第一存储器进行第一算法加扰读处理,生成第二原文;
所述第二数据加扰处理具体为,当所述读写状态字的值为写数据时,获取第三原文,根据所述第二扰码和所述第三原文,对所述第二存储器进行第二算法加扰写处理;当所述读写状态字的值为读数据时,根据所述第二扰码对所述第二存储器进行第二算法加扰读处理,生成第四原文;
所述第三数据加扰处理具体为,当所述读写状态字的值为写数据时,获取第五原文,根据所述第一扰码密钥、所述加解密块长度和所述第五原文,对所述第三存储器进行第三数据加扰写处理;当所述读写状态字的值为读数据时,根据所述第一扰码密钥和所述加解密块长度,对所述第三存储器进行第三数据加扰读处理,生成第六原文。
2.根据权利要求1所述方法,其特征在于,所述根据所述第一扰码和所述第一原文,对所述第一存储器进行第一算法加扰写处理,具体包括:
根据所述第一扰码,对所述第一原文进行第一算法加扰处理,生成第一密文;
根据所述第一密文,对所述第一存储器进行数据写入处理。
3.根据权利要求2所述方法,其特征在于,所述根据所述第一扰码,对所述第一原文进行第一算法加扰处理,生成第一密文,具体包括:
步骤31,根据所述第一扰码,获取所述第一扰码的扰码字节总数,生成第一块长度;根据所述第一原文,获取所述第一原文的原文字节总数,生成第一输入长度;
步骤32,根据所述第一输入长度除以所述第一块长度的商,生成第一块总数;
步骤33,初始化第一块索引的值为1;初始化第一输出数据为空;
步骤34,根据所述第一原文,提取所述第一原文的所述第一块索引字节,生成第一输入块;
步骤35,根据所述第一扰码,对所述第一输入块进行字节异或处理,生成第一输出块;
步骤36,根据所述第一输出块,提取所述第一输出块所有字节,对所述第一输出数据进行字节顺序添加处理;
步骤37,将所述第一块索引的值加1;
步骤38,判断所述第一块索引的值是否大于所述第一块总数的值,当所述第一块索引的值大于所述第一块总数的值时,则转至步骤39;当所述第一块索引的值小于或等于所述第一块总数的值时,则转至步骤34;
步骤39,根据所述第一输出数据,提取所述第一输出数据的所有字节,生成所述第一密文。
4.根据权利要求1所述方法,其特征在于,所述根据所述第一扰码对所述第一存储器进行第一算法加扰读处理,生成第二原文,具体包括:
对所述第一存储器进行数据读出处理,生成第二密文;
根据所述第一扰码,对所述第二密文进行第一算法解扰处理,生成所述第二原文。
5.根据权利要求4所述方法,其特征在于,所述根据所述第一扰码,对所述第二密文进行第一算法解扰处理,生成所述第二原文,具体包括:
步骤51,根据所述第一扰码,获取所述第一扰码的扰码字节总数,生成第二块长度;根据所述第二密文,获取所述第二密文的密文字节总数,生成第二输入长度;
步骤52,根据所述第二输入长度除以所述第二块长度的商,生成第二块总数;
步骤53,初始化第二块索引的值为1;初始化第二输出数据为空;
步骤54,根据所述第二密文,提取所述第二密文的所述第二块索引字节,生成第二输入块;
步骤55,根据所述第一扰码,对所述第二输入块进行字节同或处理,生成第二输出块;
步骤56,根据所述第二输出块,提取所述第二输出块所有字节,对所述第二输出数据进行字节顺序添加处理;
步骤57,将所述第二块索引的值加1;
步骤58,判断所述第二块索引的值是否大于所述第二块总数的值,当所述第二块索引的值大于所述第二块总数的值时,则转至步骤59;当所述第二块索引的值小于或等于所述第二块总数的值时,则转至步骤54;
步骤59,根据所述第二输出数据,提取所述第二输出数据的所有字节,生成所述第二原文。
6.根据权利要求1所述方法,其特征在于,所述根据所述第一扰码密钥、所述加解密块长度和所述第五原文,对所述第三存储器进行第三数据加扰写处理,具体包括:
根据所述第一扰码密钥和所述加解密块长度,对所述第五原文进行第三算法加扰处理,生成第三密文;
根据所述第三密文,对所述第三存储器进行数据写入处理。
7.根据权利要求6所述方法,其特征在于,所述根据所述第一扰码密钥和所述加解密块长度,对所述第五原文进行第三算法加扰处理,生成第三密文,具体包括:
步骤71,初始化第三块长度的值为所述加解密块长度的值;根据所述第五原文,获取所述第五原文的原文字节总数,生成第三输入长度;
步骤72,根据所述第三输入长度除以所述第三块长度的商,生成第三块总数;
步骤73,初始化第三块索引的值为1;初始化第三输出数据为空;
步骤74,根据所述第五原文,提取所述第五原文的所述第三块索引字节,生成第三输入块;
步骤75,根据所述第一扰码密钥,对所述第三输入块进行对称算法加密处理,生成第三输出块;
步骤76,根据所述第三输出块,提取所述第三输出块所有字节,对所述第三输出数据进行字节顺序添加处理;
步骤77,将所述第三块索引的值加1;
步骤78,判断所述第三块索引的值是否大于所述第三块总数的值,当所述第三块索引的值大于所述第三块总数的值时,则转至步骤79;当所述第三块索引的值小于或等于所述第三块总数的值时,则转至步骤74;
步骤79,根据所述第三输出数据,提取所述第三输出数据的所有字节,生成所述第三密文。
8.根据权利要求1所述方法,其特征在于,所述根据所述第一扰码密钥和所述加解密块长度,对所述第三存储器进行第三数据加扰读处理,生成第六原文,具体包括:
对所述第三存储器进行数据读出处理,生成第四密文;
根据所述第一扰码密钥和所述加解密块长度,对所述第四密文进行第三算法解扰处理,生成所述第六原文。
9.根据权利要求8所述方法,其特征在于,所述根据所述第一扰码密钥和所述加解密块长度,对所述第四密文进行第三算法解扰处理,生成所述第六原文,具体包括:
步骤91,初始化第四块长度的值为所述加解密块长度的值;根据所述第四密文,获取所述第四密文的密文字节总数,生成第四输入长度;
步骤92,根据所述第四输入长度除以所述第四块长度的商,生成第四块总数;
步骤93,初始化第四块索引的值为1;初始化第四输出数据为空;
步骤94,根据所述第四密文,提取所述第四密文的所述第四块索引字节,生成第四输入块;
步骤95,根据所述第一扰码密钥,对所述第四输入块进行对称算法解密处理,生成第四输出块;
步骤96,根据所述第四输出块,提取所述第四输出块所有字节,对所述第四输出数据进行字节顺序添加处理;
步骤97,将所述第四块索引的值加1;
步骤98,判断所述第四块索引的值是否大于所述第四块总数的值,当所述第四块索引的值大于所述第四块总数的值时,则转至步骤99;当所述第四块索引的值小于或等于所述第四块总数的值时,则转至步骤94;
步骤99,根据所述第四输出数据,提取所述第四输出数据的所有字节,生成所述第六原文。
10.根据权利要求1所述方法,其特征在于,
所述第一扰码具体为所述存储器的上位机在每次上电复位成功之后一次性生成的随机扰码;
所述第二扰码具体为所述存储器的上位机预置的固定扰码;
所述第一扰码密钥具体为所述存储器的上位机预置的对称算法密钥;
所述第一存储类型具体为易失存储器;
所述第二存储类型具体为只读存储器;
所述第三存储类型具体为非易失存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583935.XA CN110309083B (zh) | 2019-06-28 | 2019-06-28 | 一种存储器数据加扰方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910583935.XA CN110309083B (zh) | 2019-06-28 | 2019-06-28 | 一种存储器数据加扰方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110309083A true CN110309083A (zh) | 2019-10-08 |
CN110309083B CN110309083B (zh) | 2021-09-07 |
Family
ID=68078661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910583935.XA Active CN110309083B (zh) | 2019-06-28 | 2019-06-28 | 一种存储器数据加扰方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110309083B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897497A (zh) * | 2020-07-28 | 2020-11-06 | 深圳忆联信息系统有限公司 | Ssd内部日志的加解码方法、装置、计算机设备及存储介质 |
CN113536331A (zh) * | 2020-04-15 | 2021-10-22 | 美光科技公司 | 存储器和计算系统的数据安全 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101639887A (zh) * | 2009-08-19 | 2010-02-03 | 浪潮电子信息产业股份有限公司 | 一种嵌入式系统程序加密方法 |
CN102306262A (zh) * | 2011-08-31 | 2012-01-04 | 深圳芯智汇科技有限公司 | 数据加密方法及数据加密系统 |
US20120017097A1 (en) * | 2009-03-23 | 2012-01-19 | Walrath Craig A | System And Method For Securely Storing Data In An Electronic Device |
CN103246852A (zh) * | 2013-05-07 | 2013-08-14 | 珠海全志科技股份有限公司 | 加密数据的存取方法及装置 |
CN103688269A (zh) * | 2011-07-18 | 2014-03-26 | 惠普发展公司,有限责任合伙企业 | 与存储器区域的密码信息关联 |
CN104541281A (zh) * | 2012-08-10 | 2015-04-22 | 高通股份有限公司 | 用于选择性ram加扰的方法和设备 |
CN106155584A (zh) * | 2015-05-07 | 2016-11-23 | 三星电子株式会社 | 对数据进行加扰和解扰的方法和系统 |
CN109656840A (zh) * | 2018-12-21 | 2019-04-19 | 成都海光集成电路设计有限公司 | 一种数据加解密的装置、方法、存储介质、以及数据存储系统 |
-
2019
- 2019-06-28 CN CN201910583935.XA patent/CN110309083B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120017097A1 (en) * | 2009-03-23 | 2012-01-19 | Walrath Craig A | System And Method For Securely Storing Data In An Electronic Device |
CN101639887A (zh) * | 2009-08-19 | 2010-02-03 | 浪潮电子信息产业股份有限公司 | 一种嵌入式系统程序加密方法 |
CN103688269A (zh) * | 2011-07-18 | 2014-03-26 | 惠普发展公司,有限责任合伙企业 | 与存储器区域的密码信息关联 |
CN102306262A (zh) * | 2011-08-31 | 2012-01-04 | 深圳芯智汇科技有限公司 | 数据加密方法及数据加密系统 |
CN104541281A (zh) * | 2012-08-10 | 2015-04-22 | 高通股份有限公司 | 用于选择性ram加扰的方法和设备 |
CN103246852A (zh) * | 2013-05-07 | 2013-08-14 | 珠海全志科技股份有限公司 | 加密数据的存取方法及装置 |
CN106155584A (zh) * | 2015-05-07 | 2016-11-23 | 三星电子株式会社 | 对数据进行加扰和解扰的方法和系统 |
CN109656840A (zh) * | 2018-12-21 | 2019-04-19 | 成都海光集成电路设计有限公司 | 一种数据加解密的装置、方法、存储介质、以及数据存储系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536331A (zh) * | 2020-04-15 | 2021-10-22 | 美光科技公司 | 存储器和计算系统的数据安全 |
CN113536331B (zh) * | 2020-04-15 | 2024-05-03 | 美光科技公司 | 存储器和计算系统的数据安全 |
CN111897497A (zh) * | 2020-07-28 | 2020-11-06 | 深圳忆联信息系统有限公司 | Ssd内部日志的加解码方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110309083B (zh) | 2021-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103778374B (zh) | 可信终端、双信道卡、抗克隆芯片、芯片指纹和抗信道攻击的方法 | |
US7769165B2 (en) | Semi-public white-box cipher | |
US9798677B2 (en) | Hybrid cryptographic key derivation | |
CN110008745B (zh) | 一种加密方法、计算机设备和计算机存储介质 | |
TW519651B (en) | Embedded security device within a nonvolatile memory device | |
CN106650327A (zh) | 基于动态恢复so文件的Android应用加固方法 | |
CN106778283A (zh) | 一种系统分区关键数据的保护方法及系统 | |
CN102855161B (zh) | 用于安全微控制器的外部存储器的数据交织方案 | |
CN103136458A (zh) | 一种Linux操作系统的代码保护方法及其模块 | |
CN110309083A (zh) | 一种存储器数据加扰方法 | |
EP1830240A1 (en) | Memory information protecting system, semiconductor memory, and method for protecting memory information | |
CN111008390A (zh) | 根密钥生成保护方法、装置、固态硬盘及存储介质 | |
CN105897417A (zh) | 加密数据输入方法及装置 | |
CN108830096A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN107994989A (zh) | 一种数据加密系统、加密方法、加密芯片及存储装置 | |
US20140201720A1 (en) | Branch auditing in a computer program | |
CN103597490A (zh) | 保护小应用程序免受隐藏信道分析 | |
US20240080193A1 (en) | Counter integrity tree | |
CN105939192A (zh) | 数据加密的方法及装置 | |
CN110502909A (zh) | 一种文件加密方法及装置、一种文件解密方法及装置 | |
CN109558341A (zh) | 计算机内存数据保护方法和计算机 | |
CN110147655A (zh) | 应用程序的安全防护系统及方法 | |
CN110309678B (zh) | 一种内存加扰的方法 | |
CN110321302A (zh) | 一种嵌入式系统数据存储区管理方法 | |
CN105354462B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100080, Beijing, Suzhou Street, Haidian District No. 20, building 2, on the north side of the four floor Applicant after: Zhaoxun Hengda Technology Co., Ltd Address before: 100080, Beijing, Suzhou Street, Haidian District No. 20, building 2, on the north side of the four floor Applicant before: MEGAHUNT MICROELECTRONIC TECH. (BEIJING) Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |