1.本发明涉及计算机数据安全保护技术领域,具体涉及基于多级
密钥动态验证的芯片数据安全保护方法。
背景技术:
2.主控芯片作为计算机中数据处理的大脑,其提供数据处理、数据存储与数据读写等功能,在这个过程中计算机的主控芯片可能存在未授权的数据存储与数据读写等行为,导致计算机数据泄露。为了保护计算机数据的安全,一般会在主控芯片中写入用于保护数据的数据加密程序和安装数据安全装置,用于确保计算机数据的安全。
3.现有用于保护数据的数据加密程序,利用密钥对计算机数据进行加密,将加密后的计算机数据进行安全存储,给允许接入的外部芯片分配密钥,外部芯片直接根据密钥读取并解密计算机中存储的加密数据;但是这个加密过程中使用的密钥单一,导致有些重要性和敏感性不够高的数据也需要花费主控芯片的大量计算资源进行数据加密,同时,主控芯片没有对尝试接入的外部芯片进行安全验证,直接授权外部芯片访问所有数据,导致计算机数据安全面临非授权访问、冒充合法用户、破坏数据完整性、干扰系统正常运行等威胁,使得计算机数据的安全性不高。
4.本发明结合计算机数据的重要性和敏感性,对计算机数据进行不同
等级的划分,设计一种对外部芯片进行多级密钥动态验证的加密方法,保证任意等级的外部芯片都能够根据验证明文
序列获得对应的等级验证明文序列,完成多级密钥动态验证,只允许不同等级的外部芯片获取相应等级数据的访问权限,实现对计算机数据的安全保护。
技术实现要素:
5.本发明提供基于多级密钥动态验证的芯片数据安全保护方法,以解决现有的问题。
6.本发明的基于多级密钥动态验证的芯片数据安全保护方法采用如下技术方案:本发明一个实施例提供了基于多级密钥动态验证的芯片数据安全保护方法,该方法包括以下步骤:将计算机数据划分为三个等级;根据所有基元获得所有第一基元、所有第二基元和所有第三基元;根据所有第一基元、所有第二基元和所有第三基元构建三个等级密钥编码表;根据所有第一基元、所有第二基元和所有第三基元构建三个等级密钥
矩阵;将三个等级密钥编码表和三个等级密钥矩阵存储在主控芯片的独立存储器中,所述独立存储器无法被加密解密程序以外的任何程序访问,给外部芯片划分等级并分配相应的等级密钥编码表和等级密钥矩阵;根据第一基元、第二基元和第三基元随机构建验证明文序列,将尝试接入计算机的外部芯片记为待验证外部芯片,主控芯片将验证明文序列发送给待验证外部芯片,获得
待验证外部芯片的待验证明文序列,将待验证明文序列作为待验证外部芯片的等级验证明文序列;根据待验证外部芯片的等级密钥编码表和等级密钥矩阵对待验证外部芯片的进行加密,获得等级验证密文序列,包括:根据等级密钥编码表对等级验证明文序列进行编码,获得等级明文矩阵,根据扫描模式将等级明文矩阵转换为等级路径图,根据等级路径图获得最短路径,根据最短路径和等级密钥矩阵获得等级验证密文序列;将获得的等级验证密文序列记为待验证外部芯片的验证序列;根据验证明文序列获得三个等级验证明文序列,根据三个等级密钥编码表和三个等级密钥矩阵分别对三个等级验证明文序列进行加密,将获得的等级验证密文序列分别记为三个认证序列;根据验证序列和三个认证序列获得待验证外部芯片的多级密钥动态验证结果,根据通过验证的外部芯片的等级,分配相应等级数据的访问权限。
7.进一步地,所述根据所有基元获得所有第一基元、所有第二基元和所有第三基元,包括的具体步骤如下:从所有基元中随机不重复地选择第一数量个基元记为第一基元;从所有基元中随机不重复地选择第二数量个基元记为第二基元,要求第二基元包括所有第一基元;从所有基元中随机不重复地选择第三数量个基元记为第三基元,要求第三基元包括所有第二基元;第一数量为,第二数量为,第三数量为,为预设值。
8.进一步地,所述构建三个等级密钥编码表,包括的具体步骤如下:三个等级密钥编码表分别为一级密钥编码表、二级密钥编码表和三级密钥编码表;将位二进制数作为第一码字,将位二进制数作为第二码字,随机给每个第一基元不重复地分配一个第一码字或者一个第二码字,将所有第一基元与所有第一码字和所有第二码字的对应关系记为一级密钥编码表,为预设值;将位二进制数作为第三码字,将位二进制数作为第四码字;随机给每个第二基元不重复地分配一个第三码字或者一个第四码字,将所有第二基元与所有第三码字和所有第四码字的对应关系记为二级密钥编码表;将位二进制数作为第五码字,将位二进制数作为第六码字;随机给每个第三基元不重复地分配一个第五码字或者一个第六码字,将所有第三基元与所有第五码字和所有第六码字的对应关系记为三级密钥编码表。
9.进一步地,所述构建三个等级密钥矩阵,包括的具体步骤如下:三个等级密钥矩阵分别为一级密钥矩阵、二级密钥矩阵和三级密钥矩阵;将所有第一基元随机排列组成的序列记为第一序列,每个第一基元在第一序列中有且仅有1个,将第一序列转换为一个大小为的矩阵,将该矩阵记为一级密钥矩阵,为预设值;将所有第二基元随机排列组成的序列记为第二序列,每个第二基元在第二序列中有且仅有1个,将第二序列转换为一个大小为的矩阵,将该矩阵记为二级密
钥矩阵;将所有第三基元随机排列组成的序列记为第三序列,每个第三基元在第三序列中有且仅有1个,将第三序列转换为一个大小为的矩阵,将矩阵记为三级密钥矩阵。
10.进一步地,所述根据等级密钥编码表对等级验证明文序列进行编码,获得等级明文矩阵,包括的具体步骤如下:对于等级验证明文序列中每个元素,获取等级密钥编码表中与该元素相同的基元,将该基元对应的码字作为该元素的编码结果;获得等级验证明文序列中所有元素的编码结果按照顺序组成的序列,将该序列转换后的矩阵记为等级转换矩阵;将等级转换矩阵划分为大小为2
×
2的子矩阵,对于每个子矩阵,按照顺时针方向将子矩阵中的4个元素分别记为,将记为子矩阵的转换值;获得所有子矩阵的转换值,获得所有子矩阵的转换值按照顺序组成的序列,将该序列转换后的矩阵记为等级明文矩阵;分别将等级明文矩阵中左上角的元素和右下角的元素记为起始元素和终止元素。
11.进一步地,所述根据扫描模式将等级明文矩阵转换为等级路径图,包括的具体步骤如下:将大小为2
×
2的窗口记为目标滑窗,将等级明文矩阵的左上角作为初始位置,获得目标滑窗在等级明文矩阵上对应的区域,获得该区域的扫描模式,目标滑窗按照s型扫描的方式在等级明文矩阵上进行滑动,滑动的步长为1,获得目标滑窗在等级明文矩阵上滑动过程中对应的所有区域的扫描模式;将等级明文矩阵中的所有元素作为节点;将所有元素之间的有向线段替换为无向线段,将所有元素之间的无向线段作为节点之间的边,当两个节点之间存在两条边时,只保留一条;将所有节点和边组成的图记为等级路径图;其中,对于等级路径图中的任意一条边,计算该条边的边权值的具体方法为:获得该条边所连接的节点和节点,将在节点的8邻域内且与节点相连的所有节点的数量作为节点的重要度,将在节点的8邻域内且与节点相连的所有节点的数量作为节点的重要度,将两个节点的重要度的倒数的和记为该条边的边权值。
12.进一步地,所述根据等级路径图获得最短路径,根据最短路径和等级密钥矩阵获得等级验证密文序列,包括的具体步骤如下:分别将等级明文矩阵的起始元素和终止元素在等级路径图中对应的节点记为起始节点和终止节点,根据dijkstra算法获得在等级路径图上起始节点到终止节点的最短路径,将最短路径在等级密钥矩阵上对应的所有元素按照顺序组成的序列记为等级验证密文序列。
13.进一步地,所述根据第一基元、第二基元和第三基元随机构建验证明文序列,包括的具体步骤如下:在一级密钥编码表中,将第一码字对应的第一基元记为一类第一基元,将第二码字对应的第一基元记为二类第一基元;在二级密钥编码表中,将第三码字对应的第二基元
记为一类第二基元,将第四码字对应的第二基元记为二类第二基元;在三级密钥编码表中,将第五码字对应的第三基元记为一类第三基元,将第六码字对应的第三基元记为二类第三基元;根据第一基元、第二基元和第三基元随机构建一个长度为z的序列,要求序列中第一基元、第二基元和第三基元的数量满足以下条件:其中,表示序列中一类第一基元的数量,表示序列中二类第一基元的数量,表示序列中只属于第二基元不属于第一基元的所有基元中属于一类第二基元的数量,表示序列中只属于第二基元不属于第一基元的所有基元中属于二类第二基元的数量,表示序列中只属于第三基元不属于第二基元的所有基元中属于一类第三基元的数量,表示序列中只属于第三基元不属于第二基元的所有基元中属于二类第三基元的数量;表示第一数量,表示第二数量,表示第三数量,表示序列中一类第二基元的数量,表示序列中二类第二基元的数量,表示序列中一类第三基元的数量,表示序列中二类第三基元的数量;表示第一码字对应二进制数的位数,中的表示第二码字对应二进制数的位数,表示第三码字对应二进制数的位数,表示第四码字对应二进制数的位数,中的表示第五码字对应二进制数的位数,表示第六码字对应二进制数的位数;将满足条件的长度为z的序列记为验证明文序列,为预设值。
14.进一步地,所述获得待验证外部芯片的待验证明文序列,包括的具体步骤如下:将待验证外部芯片的密钥矩阵中的所有元素记为待验证外部芯片的目标基元,获得验证明文序列中的与目标基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为待验证外部芯片的待验证明文序列。
15.进一步地,所述根据验证明文序列获得三个等级验证明文序列,包括的具体步骤如下:三个等级验证明文序列分别为一级验证明文序列、二级验证明文序列和三级验证明文序列;将验证明文序列作为三级验证明文序列,获得验证明文序列中的与第二基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为二级验证明文序列;获得验证明文序列中的与第一基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为一级验证明文序列。
16.本发明的技术方案的有益效果是:本发明结合重要性和敏感性将计算机数据划分为三个不同等级,给外部芯片划分等级并分配等级密钥编码表和等级密钥矩阵,根据待验证外部芯片的等级密钥编码表和等级密钥矩阵对待验证外部芯片的进行加密获得待验证外部芯片的验证序列,根据三个等级密钥编码表和三个等级密钥矩阵分别对三个等级验证明文序列进行加密,获得三个认证序列,根据验证序列和三个认证序列获得待验证外部芯
片的多级密钥动态验证结果,进而根据待验证外部芯片的多级密钥动态验证结果保证不同等级的外部芯片只能访问对应等级的数据,保护计算机数据的安全性。在构建验证明文序列时,对验证明文序列中第一基元、第二基元和第三基元的数量进行限制,保证任意等级的外部芯片接收到验证明文序列后,都能够根据验证明文序列获得对应的等级验证明文序列,进而完成多级密钥动态验证。
附图说明
17.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为本发明的基于多级密钥动态验证的芯片数据安全保护方法的步骤流程图;图2为本发明提供的等级转换矩阵的子矩阵中的4个元素。
具体实施方式
19.为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的基于多级密钥动态验证的芯片数据安全保护方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
20.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
21.下面结合附图具体的说明本发明所提供的基于多级密钥动态验证的芯片数据安全保护方法的具体方案。
22.请参阅图1,其示出了本发明一个实施例提供的基于多级密钥动态验证的芯片数据安全保护方法的步骤流程图。
23.同时,本发明使用的主控芯片中,运行的用于保护数据的数据加密程序执行的方法即是该实施例提供的基于多级密钥动态验证的芯片数据安全保护方法。
24.具体该方法包括以下步骤:s001.给计算机数据划分等级。
25.需要说明的是,为了避免未授权的数据存储与数据读写等行为导致计算机数据泄露,需要在主控芯片中写入用于保护数据的数据加密程序和安装数据安全装置,现有用于保护数据的数据加密程序的加密过程中使用的密钥单一,导致有些重要性和敏感性不够高的数据也需要花费主控芯片的大量计算资源进行数据加密,同时,主控芯片没有对尝试接入的外部芯片进行安全验证,直接授权外部芯片访问所有数据,导致计算机数据安全面临非授权访问、冒充合法用户、破坏数据完整性、干扰系统正常运行等威胁,使得计算机数据的安全性不高。因此,本发明结合计算机数据的重要性和敏感性,对计算机数据进行不同等级的划分,设计一种对外部芯片进行多级密钥动态验证的加密方法,只允许不同等级的外部芯片获取相应等级数据的访问权限。
26.按照数据的重要性和敏感性将计算机中的数据划分为三个等级,分别为一级数据、二级数据和三级数据,等级越高,数据的重要性和敏感性越高,其中,数据的重要性和敏感性是用户主观给定的,此处不再进行进一步说明。
27.s002.获得所有基元,根据所有基元构建三个等级密钥编码表和三个等级密钥矩阵。
28.需要说明的是,为了保障计算机数据的安全,防止未经授权的外部芯片读取计算机数据,本实施例提供一种对外部芯片进行多级密钥动态验证的加密方法,加密方法中涉及到的等级密钥编码表和等级密钥矩阵需要根据所有基元进行设置,具体步骤如下:1. 获得所有基元。
29.本实施例将26个大写英文字母、26个小写英文字母、阿拉伯数字中的10个计数符号以及21个小写希腊字母记为基元,共有83个基元,其中,阿拉伯数字中的十个计数符号分别为0,1,2,3,4,5,6,7,8以及9;在其他实施例中,实施人员可根据情况设置基元。
30.2. 根据所有基元构建三个等级密钥编码表。
31.需要说明的是,本实施例按照数据的重要性和敏感性将计算机中的数据划分为三个等级,因此,需要构建三个等级密钥编码表,具体为:(1)获得所有第一基元、所有第二基元和所有第三基元。
32.从所有基元中随机不重复地选择第一数量个基元记为第一基元;从所有基元中随机不重复地选择第二数量个基元记为第二基元,要求第二基元包括所有第一基元;从所有基元中随机不重复地选择第三数量个基元记为第三基元,要求第三基元包括所有第二基元。
33.在本实施例中,第一数量为,第二数量为,第三数量为,为整数,将记为预设值;由于本实施例中共有83个基元,要求第三数量不能大于基元的总数量,因此,在本实施例中,预设值=2,在其他实施例中,实施人员可根据基元的总数量设置预设值,进而确定第一数量、第二数量和第三数量。
34.(2)根据所有第一基元构建一级密钥编码表。
35.本实施例中,将位二进制数作为第一码字,将位二进制数作为第二码字,随机给每个第一基元不重复地分配一个第一码字或者一个第二码字,将所有第一基元与所有第一码字和所有第二码字的对应关系记为一级密钥编码表。
36.在一级密钥编码表中,将第一码字对应的第一基元记为一类第一基元,将第二码字对应的第一基元记为二类第一基元。
37.例如,在一级密钥编码表中,第一基元“k”对应的码字为第一码字“01”,因此,第一基元“k”为一类第一基元;第一基元“6”对应的码字为第二码字“1100”,因此,第一基元“6”为二类第一基元。
38.(3)根据所有第一基元和所有第二基元构建二级密钥编码表。
39.本实施例中,将位二进制数作为第三码字,将位二进制数作为第四码字;随机给每个第二基元不重复地分配一个第三码字或者一个第四码字,将所有第二基元与所有第三码字和所有第四码字的对应关系记为二级密钥编码表。
40.在二级密钥编码表中,将第三码字对应的第二基元记为一类第二基元,将第四码
字对应的第二基元记为二类第二基元。
41.例如,在二级密钥编码表中,第二基元“k”对应的码字为第三码字“110”,因此,第二基元“k”为一类第二基元;第二基元“6”对应的码字为第四码字“11111”,因此,第二基元“6”为二类第二基元。
42.(4)根据所有第一基元、所有第二基元和所有第三基元构建三级密钥编码表。
43.本实施例中,将位二进制数作为第五码字,将位二进制数作为第六码字;随机给每个第三基元不重复地分配一个第五码字或者一个第六码字,将所有第三基元与所有第五码字和所有第六码字的对应关系记为三级密钥编码表。
44.在三级密钥编码表中,将第五码字对应的第三基元记为一类第三基元,将第六码字对应的第三基元记为二类第三基元。
45.例如,在三级密钥编码表中,第三基元“k”对应的码字为第五码字“0101”,因此,第三基元“k”为一类第三基元;第三基元“6”对应的码字为第六码字“011100”,因此,第三基元“6”为二类第三基元。
46.3. 根据所有基元构建三个等级密钥矩阵。
47.需要说明的是,本实施例按照数据的重要性和敏感性将计算机中的数据划分为三个等级,因此,需要构建三个等级密钥矩阵,具体为:(1)根据所有第一基元构建一级密钥矩阵。
48.将所有第一基元随机排列组成的序列记为第一序列,每个第一基元在第一序列中有且仅有1个,将第一序列转换为一个大小为第一尺寸的矩阵,将该矩阵记为一级密钥矩阵,第一尺寸为。
49.(2)根据所有第二基元构建二级密钥矩阵。
50.将所有第二基元随机排列组成的序列记为第二序列,每个第二基元在第二序列中有且仅有1个,将第二序列转换为一个大小为第二尺寸的矩阵,将该矩阵记为二级密钥矩阵,第二尺寸为。
51.(3)根据所有第三基元构建三级密钥矩阵。
52.将所有第三基元随机排列组成的序列记为第三序列,每个第三基元在第三序列中有且仅有1个,要求第三序列中所有属于第二序列的元素按照顺序组成的序列与第二序列完全相同,将第三序列转换为一个大小为第三尺寸的矩阵,将矩阵记为三级密钥矩阵,第三尺寸为。
53.将三个等级密钥编码表和三个等级密钥矩阵存储在主控芯片的独立存储器中,该存储器无法被加密解密程序以外的任何程序访问。
54.s003.根据等级密钥编码表和等级密钥矩阵对等级验证明文序列进行加密,获得等级验证密文序列。
55.需要说明的是,本实施例在s003只是给出根据等级密钥编码表和等级密钥矩阵对等级验证明文序列进行加密获得等级验证密文序列的具体方法,方法中涉及到的等级验证明文序列会在后续使用该方法时给出。
56.1.根据等级密钥编码表对等级验证明文序列进行编码,获得等级明文矩阵。
57.对于等级验证明文序列中每个元素,获取等级密钥编码表中与该元素相同的基
元,将该基元对应的码字作为该元素的编码结果;获得等级验证明文序列中所有元素的编码结果按照顺序组成的序列,将该序列转换后的矩阵记为等级转换矩阵,其中,如果等级密钥编码表为一级密钥编码表,则等级转换矩阵的大小为第四尺寸,如果等级密钥编码表为二级密钥编码表,则等级转换矩阵的大小为第五尺寸,如果等级密钥编码表为三级密钥编码表,则等级转换矩阵的大小为第六尺寸,其中,第四尺寸为,第五尺寸为,第六尺寸为。
58.将等级转换矩阵划分为大小为2
×
2的子矩阵;对于每个子矩阵,按照顺时针方向将子矩阵中的4个元素分别记为,如图2所示,将记为子矩阵的转换值;获得所有子矩阵的转换值,获得所有子矩阵的转换值按照顺序组成的序列,将该序列转换后的矩阵,记为等级明文矩阵,其中,如果等级密钥编码表为一级密钥编码表,则等级明文矩阵的大小为第一尺寸,如果等级密钥编码表为二级密钥编码表,则等级明文矩阵的大小为第二尺寸,如果等级密钥编码表为三级密钥编码表,则等级明文矩阵的大小为第三尺寸。
59.分别将等级明文矩阵中左上角的元素和右下角的元素记为起始元素和终止元素。
60.2.根据扫描模式将等级明文矩阵转换为等级路径图。
61.对于大小为2
×
2的矩阵,从最小的元素出发,对矩阵进行扫描,当存在多个最小的元素时,选择多个最小的元素中优先度最大的元素,用3个有向线段不重复地连接矩阵中的4个元素,所形成的图案即为扫描模式,其中,有向线段是指按照两个元素的差异最小的方向,从指向元素指向被指向元素的线段,且指向元素小于或等于被指向元素,当存在多个被指向元素时,选择优先度最大的被指向元素,最终会形成24种扫描模式,其中,矩阵的左上角的元素的优选度最大,按照顺时针方向,矩阵中的其他元素的优选度依次减小。
62.将大小为2
×
2的窗口记为目标滑窗,将等级明文矩阵的左上角作为初始位置,获得目标滑窗在等级明文矩阵上对应的区域,该区域本质上是一个大小为的矩阵,获得该区域的扫描模式,目标滑窗按照s型扫描的方式在等级明文矩阵上进行滑动,滑动的步长为1,获得目标滑窗在等级明文矩阵上滑动过程中对应的所有区域的扫描模式。
63.将等级明文矩阵中的所有元素作为节点;将所有元素之间的有向线段替换为无向线段,将所有元素之间的无向线段作为节点之间的边,当两个节点之间存在两条边时,只保留一条;将所有节点和边组成的图记为等级路径图。
64.其中,对于等级路径图中的任意一条边,计算该条边的边权值的具体方法为:获得该条边所连接的节点和节点,将在节点的8邻域内且与节点相连的所有节点的数量作为节点的重要度,将在节点的8邻域内且与节点相连的所有节点的数量作为节点的重要度,将两个节点的重要度的倒数的和记为该条边的边权值。
65.3.根据等级路径图获得最短路径,根据最短路径和等级密钥矩阵获得等级验证密文序列。
66.分别将等级明文矩阵的起始元素和终止元素在等级路径图中对应的节点记为起始节点和终止节点,根据dijkstra算法获得在等级路径图上起始节点到终止节点的最短路径,其中,dijkstra算法为现有技术,此处不再进行进一步说明。
67.将最短路径在等级密钥矩阵上对应的所有元素按照顺序组成的序列记为等级验
证密文序列。
68.s004.给外部芯片划分等级并分配等级密钥编码表和等级密钥矩阵。
69.对于准许接入计算机的所有外部芯片,将所有外部芯片划分为一级外部芯片、二级外部芯片和三级外部芯片;将一级密钥编码表、一级密钥矩阵以及加密算法(s003的加密算法)设置在所有一级外部芯片中;将二级密钥编码表、二级密钥矩阵以及加密算法(s003的加密算法)设置在所有二级外部芯片中;将三级密钥编码表、三级密钥矩阵以及加密算法(s003的加密算法)设置在所有三级外部芯片中;将不同等级的外部芯片分配给不同等级的工作人员。
70.s005.根据第一基元、第二基元和第三基元随机构建验证明文序列,根据验证明文序列获得待验证外部芯片的待验证明文序列,根据待验证明文序列对待验证外部芯片进行多级密钥动态验证。
71.1、根据第一基元、第二基元和第三基元随机构建验证明文序列。
72.需要说明的是,为了保证任意等级的外部芯片接收到验证明文序列后,都能够根据验证明文序列获得对应的等级验证明文序列,需要在构建验证明文序列时,对第一基元、第二基元和第三基元的数量进行限制。
73.根据第一基元、第二基元和第三基元随机构建一个长度为z的序列,要求序列中第一基元、第二基元和第三基元的数量满足以下条件:其中,表示序列中一类第一基元的数量,表示序列中二类第一基元的数量,表示序列中只属于第二基元不属于第一基元的所有基元中属于一类第二基元的数量,表示序列中只属于第二基元不属于第一基元的所有基元中属于二类第二基元的数量,表示序列中只属于第三基元不属于第二基元的所有基元中属于一类第三基元的数量,表示序列中只属于第三基元不属于第二基元的所有基元中属于二类第三基元的数量;表示第一数量,表示第二数量,表示第三数量,表示序列中一类第二基元的数量,表示序列中二类第二基元的数量,表示序列中一类第三基元的数量,表示序列中二类第三基元的数量;表示第一码字对应二进制数的位数,中的表示第二码字对应二进制数的位数,表示第三码字对应二进制数的位数,表示第四码字对应二进制数的位数,中的表示第五码字对应二进制数的位数,表示第六码字对应二进制数的位数。
74.将满足条件的长度为z的序列记为验证明文序列。
75.2、根据验证明文序列获得待验证外部芯片的待验证明文序列,根据待验证明文序列对待验证外部芯片进行多级密钥动态验证。
76.当工作人员尝试将外部芯片接入计算机时,将外部芯片作为待验证外部芯片,主控芯片控制计算机对外部芯片进行多级密钥动态验证,具体为:
(1)将验证明文序列发送给待验证外部芯片;将待验证外部芯片的密钥矩阵中的所有元素记为待验证外部芯片的目标基元,获得验证明文序列中的与目标基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为待验证外部芯片的待验证明文序列。
77.将待验证明文序列作为待验证外部芯片的等级验证明文序列,根据待验证外部芯片的等级密钥编码表和等级密钥矩阵对待验证外部芯片的进行加密,将获得的等级验证密文序列记为待验证外部芯片的验证序列。
78.待验证外部芯片将获得的验证序列返回给主控芯片。
79.(2)三个等级验证明文序列分别为一级验证明文序列、二级验证明文序列和三级验证明文序列,将验证明文序列作为三级验证明文序列,获得验证明文序列中的与第二基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为二级验证明文序列;获得验证明文序列中的与第一基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为一级验证明文序列。
80.三个等级认证序列分别为一级认证序列、二级认证序列和三级认证序列,根据一级密钥编码表和一级密钥矩阵分别对一级验证明文序列进行加密,获得一级认证序列;根据二级密钥编码表和二级密钥矩阵分别对二级验证明文序列进行加密,获得二级认证序列;根据三级密钥编码表和三级密钥矩阵分别对三级验证明文序列进行加密,获得三级认证序列。
81.(3)主控芯片将接收到的验证序列与所有等级认证序列进行比较:如果验证序列与三级认证序列一致,则待验证外部芯片通过认证且授权外部芯片访问一级数据、二级数据和三级数据;如果验证序列与二级认证序列一致,则待验证外部芯片通过认证且授权外部芯片访问一级数据和二级数据;如果验证序列与一级认证序列一致,则待验证外部芯片通过认证且授权外部芯片访问一级数据;否则,待验证外部芯片没有通过认证,对计算机执行关机操作。
82.本发明实施例结合重要性和敏感性将计算机数据划分为三个不同等级,给外部芯片划分等级并分配等级密钥编码表和等级密钥矩阵,根据待验证外部芯片的等级密钥编码表和等级密钥矩阵对待验证外部芯片的进行加密获得待验证外部芯片的验证序列,根据三个等级密钥编码表和三个等级密钥矩阵分别对三个等级验证明文序列进行加密,获得三个认证序列,根据验证序列和三个认证序列获得待验证外部芯片的多级密钥动态验证结果,进而根据待验证外部芯片的多级密钥动态验证结果保证不同等级的外部芯片只能访问对应等级的数据,保护计算机数据的安全性。在构建验证明文序列时,对验证明文序列中第一基元、第二基元和第三基元的数量进行限制,保证任意等级的外部芯片接收到验证明文序列后,都能够根据验证明文序列获得对应的等级验证明文序列,进而完成多级密钥动态验证。
83.需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
84.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
技术特征:
1.基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,该方法包括以下步骤:将计算机数据划分为三个等级;根据所有基元获得所有第一基元、所有第二基元和所有第三基元;根据所有第一基元、所有第二基元和所有第三基元构建三个等级密钥编码表;根据所有第一基元、所有第二基元和所有第三基元构建三个等级密钥矩阵;将三个等级密钥编码表和三个等级密钥矩阵存储在主控芯片的独立存储器中,所述独立存储器无法被加密解密程序以外的任何程序访问,给外部芯片划分等级并分配相应的等级密钥编码表和等级密钥矩阵;根据第一基元、第二基元和第三基元随机构建验证明文序列,将尝试接入计算机的外部芯片记为待验证外部芯片,主控芯片将验证明文序列发送给待验证外部芯片,获得待验证外部芯片的待验证明文序列,将待验证明文序列作为待验证外部芯片的等级验证明文序列;根据待验证外部芯片的等级密钥编码表和等级密钥矩阵对待验证外部芯片的进行加密,获得等级验证密文序列,包括:根据等级密钥编码表对等级验证明文序列进行编码,获得等级明文矩阵,根据扫描模式将等级明文矩阵转换为等级路径图,根据等级路径图获得最短路径,根据最短路径和等级密钥矩阵获得等级验证密文序列;将获得的等级验证密文序列记为待验证外部芯片的验证序列;根据验证明文序列获得三个等级验证明文序列,根据三个等级密钥编码表和三个等级密钥矩阵分别对三个等级验证明文序列进行加密,将获得的等级验证密文序列分别记为三个认证序列;根据验证序列和三个认证序列获得待验证外部芯片的多级密钥动态验证结果,根据通过验证的外部芯片的等级,分配相应等级数据的访问权限。2.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述根据所有基元获得所有第一基元、所有第二基元和所有第三基元,包括的具体步骤如下:从所有基元中随机不重复地选择第一数量个基元记为第一基元;从所有基元中随机不重复地选择第二数量个基元记为第二基元,要求第二基元包括所有第一基元;从所有基元中随机不重复地选择第三数量个基元记为第三基元,要求第三基元包括所有第二基元;第一数量为,第二数量为,第三数量为,为预设值。3.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述构建三个等级密钥编码表,包括的具体步骤如下:三个等级密钥编码表分别为一级密钥编码表、二级密钥编码表和三级密钥编码表;将位二进制数作为第一码字,将位二进制数作为第二码字,随机给每个第一基元不重复地分配一个第一码字或者一个第二码字,将所有第一基元与所有第一码字和所有第二码字的对应关系记为一级密钥编码表,为预设值;将位二进制数作为第三码字,将位二进制数作为第四码字;随机给每个第二基元不重复地分配一个第三码字或者一个第四码字,将所有第二基元与所有第三码字和所有第四码字的对应关系记为二级密钥编码表;
将位二进制数作为第五码字,将位二进制数作为第六码字;随机给每个第三基元不重复地分配一个第五码字或者一个第六码字,将所有第三基元与所有第五码字和所有第六码字的对应关系记为三级密钥编码表。4.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述构建三个等级密钥矩阵,包括的具体步骤如下:三个等级密钥矩阵分别为一级密钥矩阵、二级密钥矩阵和三级密钥矩阵;将所有第一基元随机排列组成的序列记为第一序列,每个第一基元在第一序列中有且仅有1个,将第一序列转换为一个大小为的矩阵,将该矩阵记为一级密钥矩阵,为预设值;将所有第二基元随机排列组成的序列记为第二序列,每个第二基元在第二序列中有且仅有1个,将第二序列转换为一个大小为的矩阵,将该矩阵记为二级密钥矩阵;将所有第三基元随机排列组成的序列记为第三序列,每个第三基元在第三序列中有且仅有1个,将第三序列转换为一个大小为的矩阵,将矩阵记为三级密钥矩阵。5.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述根据等级密钥编码表对等级验证明文序列进行编码,获得等级明文矩阵,包括的具体步骤如下:对于等级验证明文序列中每个元素,获取等级密钥编码表中与该元素相同的基元,将该基元对应的码字作为该元素的编码结果;获得等级验证明文序列中所有元素的编码结果按照顺序组成的序列,将该序列转换后的矩阵记为等级转换矩阵;将等级转换矩阵划分为大小为2
×
2的子矩阵,对于每个子矩阵,按照顺时针方向将子矩阵中的4个元素分别记为,将记为子矩阵的转换值;获得所有子矩阵的转换值,获得所有子矩阵的转换值按照顺序组成的序列,将该序列转换后的矩阵记为等级明文矩阵;分别将等级明文矩阵中左上角的元素和右下角的元素记为起始元素和终止元素。6.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述根据扫描模式将等级明文矩阵转换为等级路径图,包括的具体步骤如下:将大小为2
×
2的窗口记为目标滑窗,将等级明文矩阵的左上角作为初始位置,获得目标滑窗在等级明文矩阵上对应的区域,获得该区域的扫描模式,目标滑窗按照s型扫描的方式在等级明文矩阵上进行滑动,滑动的步长为1,获得目标滑窗在等级明文矩阵上滑动过程中对应的所有区域的扫描模式;将等级明文矩阵中的所有元素作为节点;将所有元素之间的有向线段替换为无向线段,将所有元素之间的无向线段作为节点之间的边,当两个节点之间存在两条边时,只保留一条;将所有节点和边组成的图记为等级路径图;其中,对于等级路径图中的任意一条边,计算该条边的边权值的具体方法为:获得该条边所连接的节点和节点,将在节点的8邻域内且与节点相连的所有节点的数量作为
节点的重要度,将在节点的8邻域内且与节点相连的所有节点的数量作为节点的重要度,将两个节点的重要度的倒数的和记为该条边的边权值。7.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述根据等级路径图获得最短路径,根据最短路径和等级密钥矩阵获得等级验证密文序列,包括的具体步骤如下:分别将等级明文矩阵的起始元素和终止元素在等级路径图中对应的节点记为起始节点和终止节点,根据dijkstra算法获得在等级路径图上起始节点到终止节点的最短路径,将最短路径在等级密钥矩阵上对应的所有元素按照顺序组成的序列记为等级验证密文序列。8.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述根据第一基元、第二基元和第三基元随机构建验证明文序列,包括的具体步骤如下:在一级密钥编码表中,将第一码字对应的第一基元记为一类第一基元,将第二码字对应的第一基元记为二类第一基元;在二级密钥编码表中,将第三码字对应的第二基元记为一类第二基元,将第四码字对应的第二基元记为二类第二基元;在三级密钥编码表中,将第五码字对应的第三基元记为一类第三基元,将第六码字对应的第三基元记为二类第三基元;根据第一基元、第二基元和第三基元随机构建一个长度为z的序列,要求序列中第一基元、第二基元和第三基元的数量满足以下条件:其中,表示序列中一类第一基元的数量,表示序列中二类第一基元的数量,表示序列中只属于第二基元不属于第一基元的所有基元中属于一类第二基元的数量,表示序列中只属于第二基元不属于第一基元的所有基元中属于二类第二基元的数量,表示序列中只属于第三基元不属于第二基元的所有基元中属于一类第三基元的数量,表示序列中只属于第三基元不属于第二基元的所有基元中属于二类第三基元的数量;表示第一数量,表示第二数量,表示第三数量,表示序列中一类第二基元的数量,表示序列中二类第二基元的数量,表示序列中一类第三基元的数量,表示序列中二类第三基元的数量;表示第一码字对应二进制数的位数,中的表示第二码字对应二进制数的位数,表示第三码字对应二进制数的位数,表示第四码字对应二进制数的位数,中的表示第五码字对应二进制数的位数,表示第六码字对应二进制数的位数;将满足条件的长度为z的序列记为验证明文序列,为预设值。9.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述获得待验证外部芯片的待验证明文序列,包括的具体步骤如下:
将待验证外部芯片的密钥矩阵中的所有元素记为待验证外部芯片的目标基元,获得验证明文序列中的与目标基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为待验证外部芯片的待验证明文序列。10.根据权利要求1所述的基于多级密钥动态验证的芯片数据安全保护方法,其特征在于,所述根据验证明文序列获得三个等级验证明文序列,包括的具体步骤如下:三个等级验证明文序列分别为一级验证明文序列、二级验证明文序列和三级验证明文序列;将验证明文序列作为三级验证明文序列,获得验证明文序列中的与第二基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为二级验证明文序列;获得验证明文序列中的与第一基元相同的所有基元,将所有基元按照顺序进行排列组成的序列记为一级验证明文序列。
技术总结
本发明涉及计算机数据安全保护技术领域,具体涉及基于多级密钥动态验证的芯片数据安全保护方法,包括:给计算机数据划分等级,根据所有基元构建三个等级密钥编码表和三个等级密钥矩阵;根据等级密钥编码表和等级密钥矩阵对等级验证明文序列加密获得等级验证密文序列;给外部芯片划分等级并分配等级密钥编码表和等级密钥矩阵;根据验证明文序列获得待验证外部芯片的待验证明文序列,根据待验证明文序列对待验证外部芯片进行多级密钥动态验证,根据通过验证的外部芯片的等级,分配相应等级数据的访问权限。本发明保证任意等级的外部芯片都能够根据验证明文序列获得对应的等级验证明文序列,完成多级密钥动态验证,实现对计算机数据的安全保护。机数据的安全保护。机数据的安全保护。
技术研发人员:
贾树栋 何炳辰
受保护的技术使用者:
毛茸茸(西安)智能科技有限公司
技术研发日:
2023.02.15
技术公布日:
2023/3/27