CN108197478A - 一种采用随机盐值的NandFlash加密文件系统 - Google Patents

一种采用随机盐值的NandFlash加密文件系统 Download PDF

Info

Publication number
CN108197478A
CN108197478A CN201710668546.8A CN201710668546A CN108197478A CN 108197478 A CN108197478 A CN 108197478A CN 201710668546 A CN201710668546 A CN 201710668546A CN 108197478 A CN108197478 A CN 108197478A
Authority
CN
China
Prior art keywords
key
nandflash
file
jffs2
encrypted
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.)
Pending
Application number
CN201710668546.8A
Other languages
English (en)
Inventor
周洋
杨建利
蔡震
张涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hung Qin (beijing) Technology Co Ltd
Original Assignee
Hung Qin (beijing) Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hung Qin (beijing) Technology Co Ltd filed Critical Hung Qin (beijing) Technology Co Ltd
Priority to CN201710668546.8A priority Critical patent/CN108197478A/zh
Publication of CN108197478A publication Critical patent/CN108197478A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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
    • G06F21/80Protecting 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 in storage media based on magnetic or optical technology, e.g. disks with sectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Abstract

本发明提供一种采用随机盐值的NandFlash加密文件系统,针对NandFlash不同于普通磁盘存储设备的物理特性,将JFFS2文件系统移植到NandFlash中,并作为其底层存储系统,解决了NandFlash直接应用于嵌入式设备的不适应性,在文件加密算法上采用了国密SM4算法和SM3算法,然后在生成用户密钥过程中,采用组合用户口令和随机盐值生成128比特位的用户密钥,避免了原有算法将用户口令和经过哈希处理后的结果直接存放的安全隐患,进一步提升了系统给用户密钥的安全性。

Description

一种采用随机盐值的NandFlash加密文件系统
技术领域
本发明属于存储技术领域,主要涉及NandFlash加密文件系统的设计,提出一种采用随机盐值的NandFlash加密文件系统,这种文件系统能够作用于NandFlash的存储设备,可对存储的文件内容进行加密,进一步提高内容的安全性。
背景技术
以下分别对现有的基于YAFF2和JAFFS2的NandFlash加密文件系统进行分析。
Nand-flash内存是flash内存的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储,因而在业界得到了越来越广泛的应用,如嵌入式产品中包括数码相机、MP3随身听记忆卡、体积小巧的U盘等。
由于NAND Flash的物理特性与普通磁盘存储设备的物理特性有很大的差别,因此Linux现有的各种文件系统都不能直接工作在NANDFlash上,必须采用内存转换层,将底层NANDFlash模拟成类似硬盘的块设备,或者使用专门用于NandFlash设备的日志结构文件系统,从而避免使用内存转换层时所带来的问题。目前较为流行的日志结构文件系统主要有YAFF2和JAFFS2。
同时NandFlash大量应用在嵌入式系统时,相应的信息安全问题也相当突出,急需采用数据内容加密的方式,以满足NandFlash数据安全的要求。原有的加密文件系统存在随机生成的文件加密密钥和加密文件加密密钥的用户密钥,其中前者是用于加密存储的数据内容,对应于不同的加密文件产生不同的随机密钥,而后者则是用户在加载文件系统时提供的用户口令经过相应的哈希算法计算后得到,主要用于加密文件加密密钥。对于用户密钥,如果用户每次输入的口令相同,则经过哈希算法计算生成的密钥也相同,因此存在遭受字典攻击的可能性,存在一定的安全隐患,为此,本发明提出加入随机盐值的方法,以避免系统遭受字典攻击,进一步提高系统的安全性。
发明内容
本发明提供了一种采用随机盐值的NandFlash加密文件系统,解决了以下存在的问题:
1.解决Linux现有的各种文件系统不能直接工作在NandFlash上的问题。由于磁盘文件系统一般是以块为单位进行数据存取的,因此底层存储设备相应的被划分成多个块,一个块大小通常为1024字节。每个块组都保存了与具体挂载的文件系统相关的信息以及相应的文件内容。Ext3块组中与文件系统相关的信息主要是超级块结构和索引节点结构。Ext3的超级块是用来反映文件系统的整体信息,但另外新增了几个字段用于支持日志功能。而NandFlash设备则是以页为单位进行数据存取的,而磁盘是以块为单位进行数据存取的,因此当在嵌入式系统中使用像Ext3这样的磁盘文件系统时,需要在物理文件系统层和MTD层之间加入一个FTL层。如图1所示,FTL(Flash Translation Layer),即闪存转换层,主要是用来模拟Flash设备使之像磁盘一样以块设备的方式进行工作。这样通过FTL层,Ext3等传统磁盘文件系统就可以直接工作在Flash设备上了。
其中,MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统。MTD的主要目的是为了使新的memory设备的驱动更加简单,为此它在硬件和上层之间提供了一个抽象的接口。MTD的所有源代码在/drivers/mtd子目录下。CFI接口的MTD设备分为四层(从设备节点直到底层硬件驱动),这四层从上到下依次是:设备节点、MTD设备层、MTD原始设备层和硬件驱动层。
2.解决现有加密文件系统在NandFlash设备中数据保护的不适用性。现有的加密文件系统,如CFS、EFS、TCFS等,都是工作在Linux或Windows平台上,不是针对嵌入式系统设计的,都没有针对NandFlash的物理特性进行优化,不能适用于NandFlash设备中的数据保护。
3.解决用户密钥生成算法存在遭受字典攻击的问题。现有的NandFlash加密文件系统的用户密钥是在加密文件系统挂载过程中创建的,通过将用户输入的口令进行哈希算法计算后,获取128位或256位密钥,将其用于加密文件加密密钥。原有的用户密钥生成方式过于简单,对于同样输入的用户口令会生成相同的用户密钥,导致存在遭受字典攻击的可能性。
其技术方案如下所述:
一种采用随机盐值的NandFlash加密文件系统,包括JFFS2文件系统模块、内核加密模块和密钥管理模块,其中,
(1)所述JFFS2文件系统模块,用于数据存储功能,将JFFS2文件系统移植到NandFlash中,并作为其底层存储系统,通过调用JFFS2文件系统模块中的相关函数,实现对NandFlash设备上的文件数据的存取;
(2)所述内核加密模块,用于加解密功能,包括两个子模块,即加密模块和解密模块,加密模块负责对NandFlash加密文件系统中各种需要加密的数据进行加密,解密模块负责对NandFlash加密文件系统中各种加密的数据进行解密,以得到相应的明文;
(3)密钥管理模块,用于密钥管理,包括两个子模块,即密钥生成模块和密钥存储模块,密钥生成模块负责生成NandFlash加密文件系统中所需要的各种密钥,密钥存储模块负责存储NandFlash加密文件系统所生成的各种密钥。
JFFS2文件系统在挂载的时候,将会扫描Flash上的所有分区,在这过程中,JFFS2将会为Flash上每个表示数据实体的jffs2_raw_dirent和jffs2_raw_inode结构创建jffs2_raw_node_ref结构,同时,JFFS2将会为每一个文件或目录创建一个jffs2_inode_cache结构。
在JFFS2文件系统挂载时,首先调用jffs2_read_super函数,进行一些必要检查和关键字段的设置;然后jffs2_read_super函数调用jffs2_do_fill_super函数为Flash上所有的数据实体创建相应的数据结构,并且调用jffs2_do_mount_fs函数初始化上层VFS超级块super_block结构的相关字段;最后由jffs2_build_filesystem函数完成JFFS2挂载工作,该函数首先会扫描整个Flash区域,在这过程中会为Flash上每一个数据节点建立jffs2_raw_node_ref结构,并为每个目录项创建jffs2_full_dirent结构。
VFS(virtual File System)的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。
加密模块采用SM4分组密码算法作为文件加密算法,生成文件加密密钥;解密模块采用的解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
文件加密算法在实现过程中,通过调用ANSI X9.17伪随机数生成器生成,设置好生成的长度为128比特,并判断是否为数字和字母,避免字符中含有特殊符号。
密钥生成模块采用用户密钥对加密模块生成的文件加密密钥进行加密并存储到密钥存储模块,用户密钥是在加密文件系统挂载过程中创建的,在文件系统挂载的时候,提示用户输入用户口令Password,并生成随机盐值Salt,长度为64比特,然后将用户输入的口令Password+Salt组合后,运用SM3哈希算法得到256比特的哈希值。
SM3算法对长度为l(l<264)比特的消息m经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特,对用户口令的处理过程的操作步骤有填充和迭代压缩:
(1)填充
假设消息m的长度为l比特,首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足l+1+k=448 mod 512的最小的正整数,然后再添加一个64位比特串,该比特串是长度l的二进制表示,填充后的消息m’的比特长度为512的倍数;
(2)迭代压缩
迭代压缩具体分为迭代过程、消息扩展,其中涉及压缩函数的处理过程,最终计算出杂凑值:
ABCDEFGH=V(n),输出256比特的杂凑值y=ABCDEFGH。
加密模块中采用的SM4分组密码算法的密钥长度为128比特,因此将SM3算法生成的256比特的哈希值进行前后拆分为前128比特和后128比特,将其两个进行异或求值,结果为128比特的输出值,作为生成的用户密钥。
所述系统存在文件加密密钥和用户密钥两种密钥,文件加密密钥与被加密文件是一一对应的,一个加密文件对应一个自己的文件加密密钥,并使用该密钥文件对文件数据进行加密,用户密钥是由用户在加载文件系统时提供的用户口令经过相应的SM3算法后得到,以防止弱密钥的存在。
文件加密密钥经由用户密钥采用SM4加密算法对其进行加密后保存在加密文件的头部;而用户密钥则是仅仅将随机生成的盐值存储在文件系统的超级块上,并在NandFlash加密文件系统的整个生命周期中存在。
所述发明具有以下优点:
1.针对NandFlash不同于普通磁盘存储设备的物理特性,将JFFS2文件系统移植到NandFlash中,并作为其底层存储系统,解决了NandFlash直接应用于嵌入式设备的不适应性。
2.在文件加密算法上采用了国密SM4算法和SM3算法,符合当前信息安全形势下的要求。
3.在生成用户密钥过程中,采用组合用户口令和随机盐值生成128比特位的用户密钥,避免了原有算法将用户口令和经过哈希处理后的结果直接存放的安全隐患,进一步提升了系统给用户密钥的安全性。
附图说明
图1是目前NandFlash的总体存储访问结构;
图2是本发明中JFFS2挂载流程图;
图3是本发明中设计的NandFlash加密文件系统体系结构图;
图4是本发明中基于随机盐值运用SM3算法生成用户密钥的过程。
具体实施方式
1.采用JFFS2文件系统的NandFlash
结合嵌入式设备的物理特性,采用Nand Flash闪存存储器替代常规的存储设备,直接使用日志结构文件系统,取代常规的磁盘文件系统作为嵌入式文件系统。在用户程序与物理文件系统之间,存在一个虚拟文件系统(VFS)层,主要用于抽象下层物理文件系统,并为其上的用户程序访问下层物理文件系统提供统一的抽象接口。在物理文件系统与底层存储设备之间,还存在一个MTD层,主要是用来抽象底层存储设备的,并为其上的物理文件系统访问底层存储设备提供统一的抽象接口。这样无论底层存储设备是NAND Flash还是其他类型的闪存,上层物理文件系统都能使用同一个接口进行访问。嵌入式系统的总体存储访问结构如图1所示。其中传统的磁盘文件系统,如Ext2、Ext3等;日志结构文件系统,如JFFS2、YAFFS等。
2.JFFS2文件系统挂载过程
JFFS2文件系统在挂载的时候,将会扫描Flash上的所有分区。如图2所示,在这过程中,JFFS2将会为Flash上每个表示数据实体的jffs2_raw_dirent和jffs2_raw_inode结构创建jffs2_raw_node_ref结构。同时,JFFS2将会为每一个文件或目录创建一个jffs2_inode_cache结构。挂载过程中,主要功能函数的调用流程如图2所示。
在JFFS2文件系统挂载时,首先调用jffs2_read_super函数,进行一些必要检查和关键字段的设置。接着,jffs2_read_super函数调用jffs2_do_fill_super函数为Flash上所有的数据实体创建相应的数据结构,并且调用jffs2_do_mount_fs函数初始化上层VFS超级块super_block结构的相关字段。jffs2_build_filesystem函数是完成JFFS2挂载工作的具体函数。该函数首先会扫描整个Flash区域,在这过程中会为Flash上每一个数据节点建立jffs2_raw_node_ref结构,并为每个目录项创建jffs2_full_dirent结构。
其中,VFS(virtual File System)的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统,即为各类文件系统提供了一个统一的操作界面和应用编程接口。VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层。
3.现有Linux中加密文件系统分析
借鉴Linux中的加密文件系统CFS和eCryptfs。其中CFS通过建立一个与用户提供密钥相关联的的加密文件夹(通常是/crypto),并对该文件夹中的内容自动进行加密以及解密。如果使用的密钥不正确,将无法获取加密文件夹中的明文数据,从而保护磁盘数据免受物理攻击。但是CFS工作在用户空间,安全性比工作在内核态要求要低,同时它对文件的元数据并不进行加密,而直接使用明文的方式存储文件大小、文件修改时间以及文件目录结构等各种消息,这些都可能导致文件相关消息的泄露;eCryptfs是一种堆栈式加密文件系统,只处理数据的加解密,由文件系统处理数据的存储,故其实现比较简单。另外,eCrypfts是介于虚拟文件系统和底层文件系统(如ext2,ext3)之间,通过调用内核API对数据进行加密以及解密。对于eCrypfts使用的密钥,是由内核密钥存储组件和用户层的守护进程一起维护的。
通过分析,界面eCryptfs加密文件系统,运用国密算法,如SM3、SM4算法,设计发明一种适用于嵌入式系统的NandFlash加密文件系统。
4.采用随机盐值的加密文件系统
4.1 NandFlash加密文件系统的设计
根据嵌入式系统对存储要求的特点,设计的NandFlash加密文件系统主要包括3个部分,JFFS2文件系统模块、内核加密模块和密钥管理模块,重点对密钥管理模块进行设计创新,三个模块组成的局结构如图3所示。
所述应用层通过VFS层连接到NandFlash加密文件系统,NandFlash加密文件系统通过MTD层移植在NandFlash物理空间内。
其中(1)JFFS2文件系统模块,主要是与加密文件系统的数据存储功能相关的,通过调用JFFS2文件系统模块中的相关函数,实现对NAND Flash设备上的文件数据的存取;
(2)内核加密模块,主要是与加密文件系统的加解密功能相关的。内核加密模块,包括两个子模块,即加密模块和解密模块。加密模块,负责对NandFlash加密文件系统中各种需要加密的数据进行加密。解密模块,则是负责对NandFlash加密文件系统中各种加密的数据进行解密,以得到相应的明文;
(3)密钥管理模块,主要是与加密文件系统的密钥管理功能相关的。密钥管理模块,包括两个子模块,即密钥生成模块和密钥存储模块。密钥生成模块,负责生成NandFlash加密文件系统中所需要的各种密钥。密钥存储模块,则是负责存储NandFlash加密文件系统所生成的各种密钥。
4.2NandFlash文件加密密钥的生成
NandFlash文件加密密钥是用来加密文件内容的,在第一次打开文件的时候,生成文件加密密钥。本发明采用SM4分组密码算法作为文件加密算法。该密码算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
在实现过程中,通过调用ANSI X9.17伪随机数生成器生成的,设置好生成的长度为128比特,并判断是否为数字和字母,避免字符中含有特殊符号。
4.3采用随机盐值的NandFlash用户密钥生成
对于系统生成的文件加密密钥,为保证其安全性,本发明提出采用用户密钥对其进行加密并存储的方式。用户密钥是在加密文件系统挂载过程中创建的。在文件系统挂载的时候,提示用户输入用户口令Password(长度不限,一般为了便于记忆和安全性,长度控制在6-8位),并生成随机盐值Salt,长度为64比特(可根据需要自行设置),然后将用户输入的口令Password+Salt组合后,运用SM3哈希算法得到256比特的哈希值。
SM3算法适用于国家密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。具体算法实现可参照国家密码局颁布的SM3算法标准。
SM3算法对用户口令的具体处理过程如图4所示。
对长度为l(l<264)比特的消息m,SM3杂凑算法经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特。主要操作步骤有填充和迭代压缩。
(1)填充
假设消息m的长度为l比特。首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足l+1+k=448 mod 512的最小的正整数。然后再添加一个64位比特串,该比特串是长度l的二进制表示。填充后的消息m’的比特长度为512的倍数。
(2)迭代压缩
迭代压缩可具体分为迭代过程、消息扩展,其中涉及压缩函数的处理过程,具体描述参照标准文档。
最终计算出杂凑值:
ABCDEFGH=V(n),输出256比特的杂凑值y=ABCDEFGH。
由于SM4分组密码算法的密钥长度为128比特,因此本发明将SM3算法生成的256比特的哈希值进行前后拆分为前128比特和后128比特,将其两个进行异或求值,结果为128比特的输出值,作为生成的用户密钥。
4.4两类系统密钥的存储
设计的NandFlash加密文件系统存在两种密钥,即文件加密密钥(FEK)和用户密钥(UEK)。文件加密密钥与被加密文件是一一对应的,一个加密文件对应一个自己的文件加密密钥,并使用该密钥文件对文件数据进行加密。用户密钥是由用户在加载文件系统时提供的用户口令经过相应的SM3算法后得到,以防止弱密钥的存在。
文件加密密钥经由用户密钥采用SM4加密算法对其进行加密后保存在加密文件的头部;而用户密钥则是仅仅将随机生成的盐值存储在文件系统的超级块上,并在NandFlash加密文件系统的整个生命周期中存在。与原有其它设计方案不同,本发明没有将用户输入的口令和经过哈希算法处理得到的用户密钥存储在超级块上,而仅仅是存储毫无意义的随机盐值,进一步提升了系统的安全性。

Claims (10)

1.一种采用随机盐值的NandFlash加密文件系统,其特征在于:包括JFFS2文件系统模块、内核加密模块和密钥管理模块,其中,
(1)所述JFFS2文件系统模块,用于数据存储功能,将JFFS2文件系统移植到NandFlash中,并作为其底层存储系统,通过调用JFFS2文件系统模块中的相关函数,实现对NandFlash设备上的文件数据的存取;
(2)所述内核加密模块,用于加解密功能,包括两个子模块,即加密模块和解密模块,加密模块负责对NandFlash加密文件系统中各种需要加密的数据进行加密,解密模块负责对NandFlash加密文件系统中各种加密的数据进行解密,以得到相应的明文;
(3)密钥管理模块,用于密钥管理,包括两个子模块,即密钥生成模块和密钥存储模块,密钥生成模块负责生成NandFlash加密文件系统中所需要的各种密钥,密钥存储模块负责存储NandFlash加密文件系统所生成的各种密钥。
2.根据权利要求1所述的采用随机盐值的NandFlash加密文件系统,其特征在于:JFFS2文件系统在挂载的时候,将会扫描Flash上的所有分区,在这过程中,JFFS2将会为Flash上每个表示数据实体的jffs2_raw_dirent和jffs2_raw_inode结构创建jffs2_raw_node_ref结构,同时,JFFS2将会为每一个文件或目录创建一个jffs2_inode_cache结构。
3.根据权利要求2所述的采用随机盐值的NandFlash加密文件系统,其特征在于:在JFFS2文件系统挂载时,首先调用jffs2_read_super函数,进行一些必要检查和关键字段的设置;然后jffs2_read_super函数调用jffs2_do_fill_super函数为Flash上所有的数据实体创建相应的数据结构,并且调用jffs2_do_mount_fs函数初始化上层VFS超级块super_block结构的相关字段;最后由jffs2_build_filesystem函数完成JFFS2挂载工作,该函数首先会扫描整个Flash区域,在这过程中会为Flash上每一个数据节点建立jffs2_raw_node_ref结构,并为每个目录项创建jffs2_full_dirent结构。
4.根据权利要求1所述的采用随机盐值的NandFlash加密文件系统,其特征在于:加密模块采用SM4分组密码算法作为文件加密算法,生成文件加密密钥;解密模块采用的解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
5.根据权利要求4所述的采用随机盐值的NandFlash加密文件系统,其特征在于:文件加密算法在实现过程中,通过调用ANSI X9.17伪随机数生成器生成,设置好生成的长度为128比特,并判断是否为数字和字母,避免字符中含有特殊符号。
6.根据权利要求1所述的采用随机盐值的NandFlash加密文件系统,其特征在于:密钥生成模块采用用户密钥对加密模块生成的文件加密密钥进行加密并存储到密钥存储模块,用户密钥是在加密文件系统挂载过程中创建的,在文件系统挂载的时候,提示用户输入用户口令Password,并生成随机盐值Salt,长度为64比特,然后将用户输入的口令Password+Salt组合后,运用SM3哈希算法得到256比特的哈希值。
7.根据权利要求6所述的采用随机盐值的NandFlash加密文件系统,其特征在于:SM3算法对长度为l(l<264)比特的消息m经过填充和迭代压缩,生成杂凑值,杂凑值长度为256比特,对用户口令的处理过程的操作步骤有填充和迭代压缩:
(1)填充
假设消息m的长度为l比特,首先将比特“1”添加到消息的末尾,再添加k个“0”,k是满足l+1+k=448mod 512的最小的正整数,然后再添加一个64位比特串,该比特串是长度l的二进制表示,填充后的消息m’的比特长度为512的倍数;
(2)迭代压缩
迭代压缩具体分为迭代过程、消息扩展,其中涉及压缩函数的处理过程,最终计算出杂凑值:
ABCDEFGH=V(n),输出256比特的杂凑值y=ABCDEFGH。
8.根据权利要求7所述的采用随机盐值的NandFlash加密文件系统,其特征在于:加密模块中采用的SM4分组密码算法的密钥长度为128比特,因此将SM3算法生成的256比特的哈希值进行前后拆分为前128比特和后128比特,将其两个进行异或求值,结果为128比特的输出值,作为生成的用户密钥。
9.根据权利要求1所述的采用随机盐值的NandFlash加密文件系统,其特征在于:所述系统存在文件加密密钥和用户密钥两种密钥,文件加密密钥与被加密文件是一一对应的,一个加密文件对应一个自己的文件加密密钥,并使用该密钥文件对文件数据进行加密,用户密钥是由用户在加载文件系统时提供的用户口令经过相应的SM3算法后得到,以防止弱密钥的存在。
10.根据权利要求9所述的采用随机盐值的NandFlash加密文件系统,其特征在于:文件加密密钥经由用户密钥采用SM4加密算法对其进行加密后保存在加密文件的头部;而用户密钥则是仅仅将随机生成的盐值存储在文件系统的超级块上,并在NandFlash加密文件系统的整个生命周期中存在。
CN201710668546.8A 2017-08-08 2017-08-08 一种采用随机盐值的NandFlash加密文件系统 Pending CN108197478A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710668546.8A CN108197478A (zh) 2017-08-08 2017-08-08 一种采用随机盐值的NandFlash加密文件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710668546.8A CN108197478A (zh) 2017-08-08 2017-08-08 一种采用随机盐值的NandFlash加密文件系统

Publications (1)

Publication Number Publication Date
CN108197478A true CN108197478A (zh) 2018-06-22

Family

ID=62572726

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710668546.8A Pending CN108197478A (zh) 2017-08-08 2017-08-08 一种采用随机盐值的NandFlash加密文件系统

Country Status (1)

Country Link
CN (1) CN108197478A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378139A (zh) * 2019-07-25 2019-10-25 江苏芯盛智能科技有限公司 一种数据密钥保护方法、系统及电子设备和存储介质
CN111124940A (zh) * 2018-10-31 2020-05-08 深信服科技股份有限公司 一种基于全闪存阵列的空间回收方法及系统
CN111984978A (zh) * 2020-08-13 2020-11-24 成都安恒信息技术有限公司 一种高扩展性密码加密存储方法
CN112035827A (zh) * 2020-11-03 2020-12-04 腾讯科技(深圳)有限公司 密码数据处理方法、装置、设备以及可读存储介质
CN115955307A (zh) * 2023-03-10 2023-04-11 江西曼荼罗软件有限公司 用户密码加盐保护方法、装置、可读存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016743A1 (en) * 2005-07-14 2007-01-18 Ironkey, Inc. Secure storage device with offline code entry
CN101383707A (zh) * 2007-09-03 2009-03-11 郑建德 一种轻量级认证系统及其关键算法
CN101694662A (zh) * 2009-09-25 2010-04-14 上海华为技术有限公司 对NAND Flash的文件保密方法、装置及系统
CN101706822A (zh) * 2009-12-18 2010-05-12 杭州迪普科技有限公司 提高挂载日志式文件系统速度的方法及设备
CN104517061A (zh) * 2015-01-16 2015-04-15 中怡(苏州)科技有限公司 加密文件系统的方法及挂载加密文件系统的方法
CN104836669A (zh) * 2015-05-08 2015-08-12 东南大学 一种基于sram puf的安全认证方法及一种终端、认证系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016743A1 (en) * 2005-07-14 2007-01-18 Ironkey, Inc. Secure storage device with offline code entry
CN101383707A (zh) * 2007-09-03 2009-03-11 郑建德 一种轻量级认证系统及其关键算法
CN101694662A (zh) * 2009-09-25 2010-04-14 上海华为技术有限公司 对NAND Flash的文件保密方法、装置及系统
CN101706822A (zh) * 2009-12-18 2010-05-12 杭州迪普科技有限公司 提高挂载日志式文件系统速度的方法及设备
CN104517061A (zh) * 2015-01-16 2015-04-15 中怡(苏州)科技有限公司 加密文件系统的方法及挂载加密文件系统的方法
CN104836669A (zh) * 2015-05-08 2015-08-12 东南大学 一种基于sram puf的安全认证方法及一种终端、认证系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
代勇: "基于JFFS2的NAND Flash加密文件系统的设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124940A (zh) * 2018-10-31 2020-05-08 深信服科技股份有限公司 一种基于全闪存阵列的空间回收方法及系统
CN110378139A (zh) * 2019-07-25 2019-10-25 江苏芯盛智能科技有限公司 一种数据密钥保护方法、系统及电子设备和存储介质
CN111984978A (zh) * 2020-08-13 2020-11-24 成都安恒信息技术有限公司 一种高扩展性密码加密存储方法
CN112035827A (zh) * 2020-11-03 2020-12-04 腾讯科技(深圳)有限公司 密码数据处理方法、装置、设备以及可读存储介质
CN112035827B (zh) * 2020-11-03 2022-02-08 腾讯科技(深圳)有限公司 密码数据处理方法、装置、设备以及可读存储介质
CN115955307A (zh) * 2023-03-10 2023-04-11 江西曼荼罗软件有限公司 用户密码加盐保护方法、装置、可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
CN108197478A (zh) 一种采用随机盐值的NandFlash加密文件系统
EP2965254B1 (en) Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
US9992014B2 (en) Methods for cryptographic delegation and enforcement of dynamic access to stored data
CN103106372B (zh) 用于Android系统的轻量级隐私数据加密方法及系统
Diesburg et al. A survey of confidential data storage and deletion methods
CN105117635B (zh) 一种本地数据的安全保护系统和方法
CN102567688B (zh) 一种安卓操作系统上的文件保密系统及其保密方法
EP2513901A1 (en) Content control method using certificate revocation lists
Lee et al. Secure Data Deletion for USB Flash Memory.
CN102693399B (zh) 一种电子文档在线分离与还原的系统及方法
CN103955654A (zh) 基于虚拟文件系统的u盘安全存储方法
EP1836643A2 (en) System for creating control structure for versatile content control
WO2006069311A2 (en) Control structure for versatile content control and method using structure
KR20020016701A (ko) 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
Liu et al. A lossless polynomial-based secret image sharing scheme utilizing the filtering operation
JP2009516961A (ja) キー及び/又は権利オブジェクトを管理する方法及びシステム
Yang et al. Vacuum: Efficient and Assured Deletion Scheme for User Sensitive Data on Mobile Devices
CN114430321A (zh) 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置
JP2014098923A (ja) デジタル情報の保護方法、装置およびコンピュータによるアクセス可能な記録媒体
CN1373424A (zh) 在Windows环境下虚拟磁盘的方法
CN113347189B (zh) 可更新及数据所有权可转移的消息自锁加密系统及方法
CN117521149B (zh) 基于量子密码设备的文件系统流加解密方法及系统
Xu et al. Research on file filtering driven encryption method for 3D geographic information data
Kim et al. The design and implementation of flash cryptographic file system based on YAFFS
ANITHA et al. An Efficient Blowfish Ciphering Based Provable Multicopy Dynamic Data Possession in Cloud Computing Systems

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180622

RJ01 Rejection of invention patent application after publication