一种提高嵌入式系统固态硬盘存储可信性的方法及系统与流程

文档序号:11133864阅读:628来源:国知局
一种提高嵌入式系统固态硬盘存储可信性的方法及系统与制造工艺

本发明涉及固态硬盘存储可信性技术领域,具体涉及一种提高嵌入式系统固态硬盘存储可信性的方法及系统。



背景技术:

近年来,基于闪存的存储器(例如固态硬盘,SSD)逐渐取代了传统的基于磁的存储器(例如硬盘驱动器,HDD),由于其快的I/O性能、耐冲击性强、小的形式因素、重量轻等优点,固态硬盘被广泛应用到到各种移动设备,例如工作站和服务器中。然而,固态硬盘中使用的闪存技术使其数据组织与硬盘驱动器完全不同,为了保持兼容性,使主机系统访问闪存设备时和访问硬盘驱动器时一样,通常采用闪存转换层(FTL)将主机请求所使用的逻辑地址翻译成固态硬盘使用的物理地址。

但是闪存转换层是固态硬盘控制器的核心部分,对主机系统不可见。同时,闪存转换层是制造厂商的专利,并不对外公开。闪存转换层的这种不可见性对上层主机系统的可信性造成了严重的威胁。因为可能存在恶意实现闪存转换层功能的情况。恶意实现闪存转换层造成的安全威胁可能包括:数据丢失、数据篡改、使用寿命降低、性能降低和未经授权的数据拷贝。

虽然一种异构冗余架构被提出来解决这些威胁,但是由于嵌入式系统本身存在成本和空间等严格的限制,所以无法负担异构冗余架构这样的解决方案。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题,特别创新地提出了一种基于权威主体的终端设备的逆向认证方法及系统。

为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种提高嵌入式系统固态硬盘存储可信性的方法,其包括如下步骤:

S1,获取主机发出的写请求,提取需要复制的写请求;

S2,将需要复制的写请求的明文A分为m个单元A0、A1、……、Am-1,所述m为正整数;

S3,对于单元A0,利用初始向量IV和单元A0进行异或操作,将异或操作的结果利用双射函数F加密,得到复制后的单元A0’,对于单元Ap,将单元Ap-1’作为初始向量,利用初始向量和单元Ap进行异或操作,将异或操作的结果利用双射函数F加密,处理得到复制后的单元Ap’,所述p为1至(m-1)之间的正整数,得到写请求复制文件A’,将写请求的明文A和复制后的文件A’均发送给SSD;

S4,获取主机发出的读请求,提取其对应数据在写入时被复制、加密过的读请求;

S5,从SSD中获取写请求的明文A和复制后的文件A’;

S6,将复制后的文件A’中的m个单元A0’、A1’、……、Am-1’分别利用初始向量和双射函数的逆函数F-1解密,对于单元A0’,利用双射函数的逆函数F-1进行解密,用解密得到的数据和初始向量IV进行异或运算得到A0”;对于Ap’,利用双射函数的逆函数F-1进行解密,将Ap-1’作为初始向量,用解密得到的数据和初始向量进行异或运算得到Ap”,所述p为1至(m-1)之间的正整数,将写请求的明文A与复原的文件A”进行对比,如果一致,则说明SSD可信,否则SSD不可信。

本发明的提高嵌入式系统固态硬盘存储可信性的方法,提高了应用SSD的嵌入式系统的可信性,通过选择性两倍或者三倍复制,降低了系统负担,提高了系统的效率。

在本发明的一种优选实施方式中,对重要且重启会带来重大损失的写请求进行三倍复制;对重要但是能够从远程检查点服务器中恢复的写请求采用双倍复制。

通过有选择的两倍或者三倍复制,降低了嵌入式系统的负担。

在本发明的另一种优选实施方式中,当进行三倍复制时,两个复制版本采用不同的双射函数进行处理。保证了三倍复制时,两个复制版本的不同,提高了检测的准确性。

在本发明的另一种优选实施方式中,其特征在于,所述步骤S2中还包括明文填充加密步骤,具体为:

S41,填充明文:在明文尾部添加128-bit的正整型数字length,用于表明明文的实际长度,然后在明文和正整型数字length之间填充k-bit长的数据使得最终的明文长度为16比特的整数倍,填充数据以1开始,后面接(k-1)-bit的0;

S42,将填充后的明文以16bit为单位划分为多个单元,然后进行加密。

通过填充和加密,保证数据结构一致,保证后续算法的顺利进行。

为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种提高嵌入式系统固态硬盘存储可信性的系统,其包括多个嵌入式操作系统,所有嵌入式操作系统均与远程检查点服务器相连,每个嵌入式操作系统包括主机和SSD,所述主机利用本发明的方法验证SSD的可信性;嵌入式操作系统将主机发出的请求传输给远程检查点服务器,在远程检查点服务器内存储。

本发明提高了应用SSD的嵌入式系统的可信性,通过选择性两倍或者三倍复制,降低了系统负担,提高了系统的效率。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1是本发明提高嵌入式系统固态硬盘存储可信性的方法的流程图;

图2为利用双射函数F对明文进行复制的过程图;

图3为利用双射函数的逆函数F-1还原明文的过程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,除非另有规定和限定,需要说明的是,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。

本发明提供了一种基于权威主体的终端设备的逆向认证方法,如图1所示,其包括如下步骤:

S1,获取主机发出的写请求,提取需要复制的写请求。在本实施方式中,对重要且重启会带来重大损失的写请求进行三倍复制;对重要但是能够从远程检查点服务器中恢复的写请求采用双倍复制。在本实施方式中,重要性的划分在此不做硬性规定,可以由上层应用来指定。

S2,将需要复制的写请求的明文A分为m个单元A0、A1、……、Am-1,m为正整数。在本实施方式中,步骤S2中还包括明文填充加密步骤,具体为:

填充明文:在明文尾部添加128-bit的正整型数字length,用于表明明文的实际长度,然后在明文和正整型数字length之间填充k-bit长的数据使得最终的明文长度为16比特的整数倍,填充数据以1开始,后面接(k-1)-bit的0;

将填充后的明文以16bit为单位划分为多个单元,然后进行加密。

S3,如图2所示,对于单元A0,利用初始向量IV和单元A0进行异或操作,将异或操作的结果利用双射函数F加密,得到复制后的单元A0’,对于单元Ap,将单元Ap-1’作为初始向量,利用初始向量和单元Ap进行异或操作,将异或操作的结果利用双射函数F加密,处理得到复制后的单元Ap’,所述p为1至(m-1)之间的正整数,得到写请求复制文件A’,将写请求的明文A和复制后的文件A’均发送给SSD。

S4,获取主机发出的读请求,提取其对应数据在写入时被复制、加密过的读请求。

S5,从SSD中获取写请求的明文A和复制后的文件A’。

S6,如图3所示,将复制后的文件A’中的m个单元A0’、A1’、……、Am-1’分别利用初始向量和双射函数的逆函数F-1解密,对于单元A0’,利用双射函数的逆函数F-1进行解密,用解密得到的数据和初始向量IV进行异或运算得到A0”;对于Ap’,利用双射函数的逆函数F-1进行解密,将Ap-1’作为初始向量,用解密得到的数据和初始向量进行异或运算得到Ap”,所述p为1至(m-1)之间的正整数,将写请求的明文A与复原的文件A”进行对比,如果一致,则说明SSD可信,否则SSD不可信。

在本实施方式中,当进行三倍复制时,两个复制版本采用不同的双射函数进行处理。保证了三倍复制时,两个复制版本的不同,提高了检测的准确性。

在本发明的一个优选实施方式中,双射函数采用一对数组A{0,1…n},A’{0,1…n},其中,n的大小为2^16-1,即65535。数组中的元素A[i]=x(i>=0且i<n),x是[0,n]之间随机生成的一个整数,并且A[0],A[1]…A[n-1]各不相同。则A’[x]=i。

填充明文:在明文尾部添加128-bit的正整型数字length,以表明明文的实际长度(以bit为单位),然后在明文和length之间填充k-bit长的数据使得最终的明文长度为16比特的整数倍,填充数据以1开始,后面接(k-1)-bit的0。将明文以16bit即2byte为单位划分为多个单元,然后加密,例如以CBC加密模式进行加密。

在本实施方式中,以三倍复制为例说明,两倍复制只采用一对双射函数即可。三倍复制时,两对双射函数(B,B’),(C,C’),如下所示。将双射函数简化为长度为16的数组,则16-bit的数据单元简化为4-bit。

B={3,0,8,6,1,5,11,12,10,14,15,13,4,9,2,7}

B’={1,4,14,0,12,5,3,0,2,13,8,6,7,11,9,10}

C={15,2,14,3,10,11,1,13,8,12,9,0,4,5,7,6}

C’={11,6,1,3,12,13,0,14,8,10,4,5,9,7,2,0}

如果明文M为:001001010111,以4-bit为单位划分后用十进制表示为2,5,7。

复制2份明文M1=001001010111,M2=001001010111。

如图2所示,初始向量IV1取为:0101,十进制为5。IV2为:1110,十进制为14。

加密M1过程:

明文填充后为:001001010111 1000 1100,以4-bit为单位划分后用十进制表示为2,5,7,8,12。

加密2:2与IV1异或后为0111,十进制为7,7通过B变换为B[7]=12;IV1=12。

加密5:5与IV1异或后为1001,十进制为9,9通过B变换为B[9]=14;IV1=14。

加密7:7与IV1异或后为1001,十进制为9,9通过B变换为B[9]=14;IV1=14。

加密8:8与IV1异或后为0110,十进制为6,6通过B变换为B[6]=11;IV1=11。

加密12:12与IV1异或后为0111,十进制为7,7通过B变换为B[7]=12;IV1=12。

即加密后的密文为12,14,14,11,12。二进制表示为11001110111010111100。

加密M2过程:

明文填充后为:001001010111 1000 1100,以4-bit为单位划分后用十进制表示为2,5,7,8,12。

加密2:2与IV2异或后为1100,十进制为12,12通过C变换为C[12]=4;IV2=4。

加密5:5与IV2异或后为0001,十进制为1,1通过C变换为C[1]=2;IV2=2。

加密7:7与IV2异或后为0101,十进制为5,5通过C变换为C[5]=11;IV2=11。

加密8:8与IV2异或后为0011,十进制为3,3通过C变换为C[3]=3;IV2=3。

加密12:12与IV2异或后为1111,十进制为15,15通过C变换为C[15]=6;IV2=6。

即加密后的密文为4,2,11,3,6。二进制表示为01000010101100110110。

以解密M1加密后的密文为12,14,14,11,12为例进行说明。二进制表示为1100 1110 1110 1011 1100。

解密12:12通过B’变换为B’[12]=7,7与IV1异或后为0010,二进制为2。

解密第一个14:14通过B’变换为B’[14]=9,9与IV1’(12)异或后为0101,二进制为5。

解密第二个14:14通过B’变换为B’[14]=9,9与IV1’(14)异或后为0111,二进制为7。

解密11:11通过B’变换为B’[11]=6,6与IV1’(14)异或后为1000,二进制为8。

解密12:12通过B’变换为B’[12]=7,7与IV1’(11)异或后为1100,二进制为12。由此得到十进制数为2,5,7,8,12。进行解密,取出从左开始的12bit的数据,即得到明文为2,5,7,二进制数为001001010111。

在本实施方式中(只以解密001001010111为例),如果得到的数据为001001010111,则说明SSD可信,否则,SSD不可信。

本发明的提高嵌入式系统固态硬盘存储可信性的方法,提高了应用SSD的嵌入式系统的可信性,通过选择性两倍或者三倍复制,降低了系统负担,提高了系统的效率。

为了实现本发明的上述目的,根据本发明的第一个方面,本发明提供了一种提高嵌入式系统固态硬盘存储可信性的系统,其包括多个嵌入式操作系统,所有嵌入式操作系统均与远程检查点服务器相连,每个嵌入式操作系统包括主机和SSD,所述主机利用本发明的方法验证SSD的可信性;嵌入式操作系统将主机发出的请求传输给远程检查点服务器,在远程检查点服务器内存储。

本发明提高了应用SSD的嵌入式系统的可信性,通过选择性两倍或者三倍复制,降低了系统负担,提高了系统的效率。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1