【技术实现步骤摘要】
一种数据加密存储的实现方法及装置
本专利技术涉及信息安全领域,尤其涉及一种数据加密存储的实现方法及装置。
技术介绍
随着电子信息的高速发展,当前社会已经进入信息时代,电子信息技术成为当代最活跃、渗透力最强的科学技术,随着我国科学技术的迅速发展和人民生活水平的不断提高,各种信息技术的应用已经进入千家万户,成为现代家庭生活中不可缺少的重要组成部分,在电子信息技术中,各种数据应用于各行各业中。现有技术中,数据的存储至关重要,为保证数据的安全性一般使用密钥对数据进行加密然后再存储,但是由于加密使用的密钥一直不变,如非法者获悉密钥就能知道数据明文,使数据的安全性存在极大隐患;近来,公开了使用不同密钥对数据加密后再存储的技术,但是由于这些不同密钥需要预先进行存储和管理,需要较大的内存和复杂的密钥管理方法,使用非常不便,故如何进一步地提高存储数据的安全性和便捷性是亟待解决的问题。
技术实现思路
本专利技术的目的是为了克服现有技术的不足,提供一种数据加密存储的实现方法及装置。本专利技术提供了一种数据加密存储的实现方法,包 ...
【技术保护点】
1.一种数据加密存储的实现方法,其特征在于,包括:/n步骤S1:当加密设备接收到终端设备发送的写数据指令时,根据写数据指令中的扇区地址判断待写入数据的写入位置是否是起始扇区,是则执行步骤S5,否则执行步骤S2;/n步骤S2:所述加密设备根据预设算法使用第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,根据写数据指令中的扇区地址计算起始待写入数据块的编号;/n步骤S3:所述加密设备判断当前中间数据的更新次数是否与所述待写入数据块的编号匹配,是则执行步骤S6,否则执行步骤S4;/n步骤S4:所述加密设备对当 ...
【技术特征摘要】
1.一种数据加密存储的实现方法,其特征在于,包括:
步骤S1:当加密设备接收到终端设备发送的写数据指令时,根据写数据指令中的扇区地址判断待写入数据的写入位置是否是起始扇区,是则执行步骤S5,否则执行步骤S2;
步骤S2:所述加密设备根据预设算法使用第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,根据写数据指令中的扇区地址计算起始待写入数据块的编号;
步骤S3:所述加密设备判断当前中间数据的更新次数是否与所述待写入数据块的编号匹配,是则执行步骤S6,否则执行步骤S4;
步骤S4:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤S3;
步骤S5:所述加密设备根据预设算法使用保存的第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,执行步骤S6;
步骤S6:所述加密设备根据数据块的长度对所述写数据指令中的待写入数据进行分块,并将第一个数据块作为当前待写入数据块;
步骤S7:所述加密设备根据保存的第一密钥、当前待写入数据块与当前中间数据生成最终数据块并存储到扇区中;
步骤S8:所述加密设备判断所述待写入数据是否写入完成,是则写入数据完成;否则所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,将下一个数据块作为当前待写入数据块,返回步骤S7。
2.如权利要求1所述的方法,其特征在于,所述步骤S7包括:所述加密设备将当前待写入数据块与当前中间数据做异或运算得到第一异或结果,根据预设算法使用保存的第一密钥对所述第一异或结果进行加密得到第一加密结果,将所述第一加密结果与当前中间数据进行异或运算得到最终数据块。
3.如权利要求1所述的方法,其特征在于,所述对当前中间数据进行有限域乘法运算,包括:
步骤A1:所述加密设备将当前中间数据拆分成等长的第一数据和第二数据,
步骤A2:所述加密设备分别对所述第一数据和所述第二数据调转字节序得到第一转序数据和第二转序数据;
步骤A3:所述加密设备判断所述第二转序数据最低位为是否为预定值,是则执行步骤A4,否则执行步骤A6;
步骤A4:所述加密设备将所述第一转序数据右移一位,并将右移结果与第一预设值进行异或运算得到第一中间值,将所述第二转序数据右移一位并将第一转序数据的最低位赋予右移之后的第二转序数据中的最高位得到第二中间值;
步骤A5:所述加密设备分别将所述第一中间值和所述第二中间值调转字节序得到第一转序中间值和第二转序中间值,将所述第一转序中间值与所述第二转序中间值顺序拼接得到运算结果;
步骤A6:所述加密设备将所述第一转序数据右移一位得到第三中间值,将第二转序数据右移一位并将第一转序数据的最低位赋予右移之后的第二转序数据中的最高位得到第四中间值;
步骤A7:所述加密设备分别将所述第三中间值和所述第四中间值调转字节序得到第三转序中间值和第四转序中间值,将所述第三转序中间值与所述第四转序中间值顺序拼接得到运算结果。
4.如权利要求1所述的方法,其特征在于,在所述步骤S5和步骤S2之前还包括:
步骤T1:所述加密设备判断是否保存有第一密钥、第二密钥和参数值,是则继续,否则执行步骤T2;
步骤T2:所述加密设备根据保存的密码哈希值生成第一密钥、第二密钥和参数值并保存。
5.如权利要求1所述的方法,其特征在于,还包括:当所述加密设备与所述终端设备第一次建立连接时,所述加密设备提示用户设置加密硬盘的密码,当接收到用户输入的密码时,所述加密设备对用户输入的密码进行哈希运算得到密码哈希值并保存。
6.如权利要求5所述的方法,其特征在于,还包括:当所述加密设备与所述终端设备断开再次建立连接时,所述加密设备对用户身份进行验证,如验证成功则继续,如验证失败则报错。
7.如权利要求6所述的方法,其特征在于,所述加密设备对用户身份进行验证,包括:所述加密设备提示用户输入密码,当接收到用户输入的密码时,对所述密码进行哈希运算得到密码哈希结果;判断保存的密码哈希值与运算得到的密码哈希结果是否一致,是则用户身份验证成功,否则用户身份验证失败。
8.如权利要求1所述的方法,其特征在于,所述方法还包括:
步骤L1:当所述加密设备接收到所述终端设备发送的读数据指令时,根据所述读数据指令中的扇区地址判断待读取数据的位置是否是起始扇区,是则执行步骤L5,否则执行步骤L2;
步骤L2:所述加密设备根据预设算法使用保存的第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,根据所述读数据指令中的扇区地址计算起始待读取数据块的编号;
步骤L3:所述加密设备判断更新当前中间数据的次数是否与所述起始待读取数据块的编号匹配,是则执行步骤L6,否则执行步骤L4;
步骤L4:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤L3;
步骤L5:所述加密设备根据预设算法使用保存的第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,执行步骤L6;
步骤L6:所述加密设备将与所述读数据指令中扇区地址对应的扇区中的起始数据块作为当前待读取数据块;
步骤L7:所述加密设备根据保存的第一密钥、当前待读取数据块与当前中间数据生成最终数据块并进行读取;
步骤L8:所述加密设备判断是否读取到所有的数据块,是则读取数据完成,否则对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,将扇区中的下一个数据块作为当前待读取数据块,返回步骤L7。
9.如权利要求8所述的方法,其特征在于,所述加密设备根据保存的第一密钥、当前待读取数据块与当前中间数据生成最终数据块,具体为:所述加密设备将当前待读取数据块与当前中间数据做异或运算得到第一异或结果,根据预设算法使用保存的第一密钥对所述第一异或结果进行解密得到第一解密结果,将所述第一解密结果与当前中间数据进行异或运算得到最终数据块。
10.如权利要求8所述的方法,其特征在于,所述根据所述读数据指令中的扇区地址计算要待读取数据块的编号,包括:所述加密设备用所述读数据指令中的扇区地址乘以扇区的大小得到待读取数据的读取位置,用所述待读取数据的读取位置除以数据块的长度得到起始待读取数据块的编号。
11.如权利要求8所述的方法,其特征在于,所述步骤L8包括:
步骤L81:所述加密设备判断是否读取到当前扇区的所有数据块,是则执行步骤L83,否则执行步骤L82;
步骤L82:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,将当前扇区中的下一个数据块作为当前待读取数据块,返回步骤L7;
步骤L83:所述加密设备根据所述读数据指令中的待读取数据的长度判断是否读取到所有数据,是则读取数据完成,否则执行步骤L84;
步骤L84:所述加密设备将下一个扇区作为当前扇区,将当前扇区的起始数据块作为当前待读取数据块,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤L7。
12.如权利要求8所述的方法,其特征在于,在所述步骤L5和步骤L2之前还包括:
步骤T1:所述加密设备判断是否保存有第一密钥、第二密钥和参数值,是则继续,否则执行步骤T2;
步骤T2:所述加密设备根据保存的密码哈希值生成第一密钥、第二密钥和参数值并保存。
13.如权利要求1所述的方法,其特征在于,所述根据所述写数据指令中的扇区地址计算要待写入数据块的编号,包括:所述加密设备用所述写数据指令中的扇区地址乘以扇区的大小得到待写入数据的写入位置,用所述待写入数据的写入位置除以数据块的长度得到起始待写入数据块的编号。
14.如权利要求1所述的方法,其特征在于,所述步骤S1中的加密设备接收到终端设备发送的写数据指令与所述根据写数据指令中的扇区地址判断待写入数据的写入位置是否是起始扇区之间还包括:
步骤K:所述加密设备从写数据指令中获取待写入数据,并判断待写入数据的长度是否大于扇区的大小,是则根据扇区的大小对待写入数据进行分段,并将第一个数据段作为当前待写入数据段,执行步骤S1,否则将待写入数据作为当前待写入数据段,执行步骤S1;
所述步骤S6具体为:所述加密设备根据数据块的长度对所述当前待写入数据段进行分块,并将第一个数据块作为当前待写入数据块;
所述步骤S8具体为:
步骤M1:所述加密设备判断当前待写入数据段是否均写入完成,是则执行步骤M3;否则执行步骤M2;
步骤M2:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,将当前待写入数据段的下一个数据块作为当前待写入数据块,返回步骤S7;
步骤M3:所述加密设备判断待写入数据是否全部写入成功,是则写入完成,否则执行步骤M4;
步骤M4:所述加密设备将下一个数据段作为当前待写入数据段,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤S6。
15.如权利要求1所述的方法,其特征在于,所述步骤S1-步骤S5替换为:
步骤R1:当加密设备接收到终端设备发送的写数据指令时,所述加密设备从所述写数据指令中获取待写入数据,并判断所述待写入数据的长度是否大于分区的大小,是则根据所述分区的大小对所述待写入数据进行分区,并将第一个分区数据作为当前分区数据,执行步骤R2,否则将所述待写入数据作为当前分区数据,执行步骤R2;
步骤R2:所述加密设备将所述写数据指令中的扇区地址所在分区作为当前分区,将所述写数据指令中的扇区地址对应的扇区作为当前扇区,判断当前分区是否为起始分区,是则执行步骤R3,否则执行步骤R4;
步骤R3:所述加密设备将保存的第二密钥作为当前分区的第二密钥,执行步骤R5;
步骤R4:所述加密设备根据所述写数据指令中的扇区地址计算当前分区编号,对当前分区编号进行取反运算,将保存的第二密钥与当前分区编号的取反结果进行异或运算得到的结果作为当前分区的第二密钥,执行步骤R5;
步骤R5:所述加密设备根据预设算法使用当前分区的第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据;
步骤R6:所述加密设备判断当前扇区是否为当前分区的起始扇区,是则执行步骤R9,否则执行步骤R7;
步骤R7:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据;
步骤R8:所述加密设备判断更新当前中间数据的次数是否与扇区地址匹配,是则执行步骤R9,否则返回步骤R7;
步骤R9:所述加密设备根据扇区的大小对当前分区数据进行分段,并将第一个数据段作为当前待写入数据段;
所述步骤S6具体为:所述加密设备根据扇区的大小对当前待写入数据段进行分块,并将第一个数据块作为当前待写入数据块;
所述步骤S8包括:
步骤S8-1:所述加密设备判断当前待写入数据段中的数据块是否均写入完成,是则执行步骤S8-3;否则执行步骤S8-2;
步骤S8-2:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,将当前待写入数据段的下一个数据块作为当前待写入数据块,返回步骤S7;
步骤S8-3:所述加密设备判断当前扇区是否写满,是则将相邻空闲扇区作为当前扇区,将当前分区数据中的下一个数据段作为当前待写入数据段,返回步骤S6,否则执行步骤S8-4;
步骤S8-4:所述加密设备判断待当前分区数据中的数据段是否全部写入完成,是则执行步骤S8-5,否则将当前分区数据中的下一个数据段作为当前待写入数据段,返回步骤S6;
步骤S8-5:所述加密设备判断所述待写入数据是否全部写入完成,是则写入数据完成,否则执行步骤S8-6;
步骤S8-6:所述加密设备将下一个分区数据作为当前分区数据,更新当前分区编号,对当前分区的编号进行取反运算,将保存的第二密钥与当前分区编号的取反结果进行异或运算得到的结果作为当前分区的第二密钥,根据预设算法使用第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤R9。
16.如权利要求15所述的方法,其特征在于,所述步骤R4中的所述加密设备根据所述写数据指令中的扇区地址计算当前分区的编号,包括:所述加密设备用所述写数据指令中的扇区地址除以分区的大小得到商值,并将商值加1的结果作为当前分区的编号。
17.如权利要求15所述的方法,其特征在于,所述步骤R6包括:所述加密设备判断扇区地址与分区的大小进行取余运算,并判断取余结果是否为1,是则当前扇区为当前分区的起始扇区,执行步骤R9,否则当前扇区不为当前分区的起始扇区,执行步骤R7。
18.如权利要求15所述的方法,其特征在于,所述步骤R8包括:所述加密设备将扇区地址转换为十进制数得到转换数据,将转换数据与分区的大小做取余运算得到取余结果,用扇区的大小除以数据块的大小得到扇区计算中间值次数,用取余结果与扇区计算中间值次数进行乘积运算,判断更新当前中间数据的次数是否与所述乘积运算结果一致,是则匹配,执行步骤R9,否则不匹配,返回步骤R7。
19.如权利要求15所述的方法,其特征在于,在所述步骤R3和R4之前还包括:
步骤T1:所述加密设备判断是否保存有第一密钥、第二密钥和参数值,是则继续,否则执行步骤T2;
步骤T2:所述加密设备根据保存的密码哈希值生成第一密钥、第二密钥和参数值并保存。
20.如权利要求15所述的方法,其特征在于,所述方法还包括:
步骤K0:当所述加密设备接收到终端设备发送的读数据指令时,将读数据指令中的扇区地址所在分区作为当前分区,将所述读数据指令中的扇区地址对应的扇区作为当前扇区,判断当前分区是否为起始分区,是则执行步骤K1,否则执行步骤K2;
步骤K1:所述加密设备将保存的第二密钥作为当前分区的第二密钥,执行步骤K3;
步骤K2:所述加密设备根据所述读数据指令中的扇区地址计算当前分区编号,对当前分区的编号进行取反运算,将保存的第二密钥与当前分区编号的取反结果进行异或运算得到的结果作为当前分区的第二密钥,执行步骤K3;
步骤K3:所述加密设备根据预设算法使用当前分区的第二密钥对保存的参数值进行加密并将加密结果作为当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据;
步骤K4:所述加密设备判断当前扇区是否为当前分区的起始扇区,是则执行步骤K7,否则执行步骤K5;
步骤K5:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据;
步骤K6:所述加密设备判断更新当前中间数据的次数是否与扇区地址匹配,是则执行步骤K7,否则返回步骤K5;
步骤K7:所述加密设备将当前扇区中的起始数据块作为当前待读取数据块,执行步骤K8;
步骤K8:所述加密设备根据保存的第一密钥、当前待读取数据块与当前中间数据生成最终数据块并进行读取;
步骤K9:所述加密设备判断是否读取到当前扇区的所有数据块,是则执行步骤K11,否则执行步骤K10;
步骤K10:所述加密设备对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,将当前扇区中的下一个数据块作为当前待读取数据块,返回步骤K8;
步骤K11:所述加密设备根据所述读数据指令中的待读取数据的长度判断是否读取到所有数据块,是则读取数据完成,否则执行步骤K12;
步骤K12:所述加密设备判断是否读取完当前分区的扇区,是则执行步骤K13,否则执行步骤K14;
步骤K13:所述加密设备将下一个分区作为当前分区,将当前分区的起始扇区作为当前扇区,更新当前分区编号,对当前分区编号进行取反运算,将保存的第二密钥与当前分区编号的取反结果进行异或运算得到的结果作为当前分区的第二密钥,根据预设算法使用当前分区的第二密钥对保存的参数值进行加密并将加密结果作为当前分区的当前中间数据,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤K7;
步骤K14:所述加密设备将当前分区中的下一个扇区作为当前扇区,对当前中间数据进行有限域乘法运算并用运算结果更新当前中间数据,返回步骤K7。
21.如权利要求20所述的方法,其特征在于,所述步骤K2中所述加密设备根据所述读数据指令中的扇区地址计算当前分区的编号,包括:所述加密设备用所述读数据指令中的扇区地址除以分区的大小得到商值,并将商值加1的结果作为当前分区的编号。
22.如权利要求20所述的方法,其特征在于,所述步骤K4包括:所述加密设备判断所述读数据指令中的扇区地址与分区的大小进行取余运算,并判断取余结果是否为1,是则当前扇区为当前分区的起始扇区,执行步骤K7,否则当前扇区不为当前分区的起始扇区,执行步骤K5。
23.如权利要求20所述的方法,其特征在于,所述步骤K6包括:所述加密设备将扇区地址转换为十进制数得到转换数据,将转换数据与分区的大小做取余运算,用扇区的大小除以数据块的大小得到扇区计算中间值次数,用取余结果与扇区计算中间值次数进行乘积运算,判断更新当前中间数据的次数是否与乘积运算结果一致,是则匹配,执行步骤K7,否则不匹配,返回步骤K5。
24.如权利要求20所述的方法,其特征在于,在所述步骤K1和步骤K2之前还包括:
步骤T1:所述加密设备判断是否保存有第一密钥、第二密钥和参数值,是则继续,否则执行步骤T2;
步骤T2:所述加密设备根据保存的密码哈希值生成第一密钥、第二密钥和参数值并保存。
25.如权利要求4或12或19或24所述的方法,其特征在于,所述步骤...
【专利技术属性】
技术研发人员:陆舟,于华章,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。