【技术实现步骤摘要】
基于双混沌哈希文件控制的安卓文件密码箱系统
[0001]本专利技术涉及计算机软件系统和信息安全
,尤其涉及一种基于双混沌哈希文件控制的安卓文件 的密码箱系统。
技术背景
[0002]安卓(Android)系统是一种基于Linux的自由开源的操作系统,主要使用在移动设备中,例如智能手 机和平板电脑等电子设备。
[0003]2003年10月,Andy Rubin等人创建Android公司,并组建Android团队。2005年8月,Google收购 并注资Android及其团队。2007年,谷歌公司为了与塞班(Symbian)系统进行竞争,抢占嵌入式操作系 统市场,正式宣布Android操作系统,并成立全球性的联盟组织,联合各大手机制造商、软件开发商、电 信运营商以及芯片制造商等加盟,公开Android的源代码,共同开发Android系统。
[0004]2008年9月,谷歌发布Android 1.0系统,Android正式诞生。2009年4月,谷歌公司推出Android 1.5, 同年9月,谷歌发布HTC Hero手机,这款手机搭载Android 1.6,成为当时全球最受欢迎的手机之一。
[0005]2011年8月,搭载Android系统的智能手机占据全球市场半壁江山,结束了塞班系统的一统江山的格 局。2013年11月,Android 4.4正式发布,伴随着全球手机市场份额的飞速扩张,出色的UI设计,以及更 加智能化,Android系统以骄人的战绩迎来5岁的生日。
[0006]随着智能 ...
【技术保护点】
【技术特征摘要】
1.一种基于双混沌哈希文件控制的安卓文件密码箱系统,其特征在于,包括:Part_1,密码箱系统的数据结构和数学函数定义,包括:文件目录表,文件头,密码箱信息,快表,混沌方程定义,哈希函数定义,转换函数;Part_2,密码箱系统的基本功能模块,包括:系统初始化模块,快速浏览模块,添加文件模块,修改文件模块,删除文件模块,加密/解密文件模块,备份模块,重建模块,退出模块;Part_3,用户通过系统初始化模块进行登录,用户成功登录密码箱系统后,读取在安卓系统的内部存储器中的文件目录表和文件头的信息,按照双混沌哈希函数生成的哈希值,建立和初始化在安卓系统的内存中的快表,实现对存储在安卓系统的外部存储器中的文件进行快速浏览、添加文件、修改文件、删除文件、备份系统和文件、重建系统的操作;在用户退出系统时,内存中快表的内容保存到文件目录表和文件头中,销毁内存中的快表,退出密码箱系统;Part_1密码箱系统的数据结构和数学函数定义,包括:(1)文件目录表FLT(File List Table),包括FID:标记当前结点所在文件目录表中的位置,取值范围是正整数,长度占8个字节;FKey:当前结点的哈希值,长度占8个字节;Order:标记当前结点在被读入到内存中的位置,取值范围是正整数,长度占8个字节;Empty:表示当前结点使用状态,长度占4个字节,如果是1表示已经占用,如果是0代表空闲;文件目录表FLT中每个结点占用28个字节;(2)文件头FH(File Header),包括FKey:当前结点的哈希值,长度占8个字节;FN(File Name):包括文件名和扩展名,长度占20个字节,文件名占16个字节,扩展名占4个字节,对超过16个字节的文件名进行截尾处理,保留文件名前16个字节的数据;CT(Create Time):文件建立的时间,长度占14个字节,“年”占用4个字节,“月”占用2个字节,“日”占用2个字节,“时”占用2个字节,“分”占用2个字节,“秒”占用2个字节;FCA(File Certificate Authority):文件使用的数字证书文件名称,长度占10个字节;FGKC(File Generate Key Code):生成数字证书的秘钥,长度占12个字节;FEN(File Encrypt Name):加密后的文件名称,长度占10个字节;FInfo(File Information):文件描述信息,长度占26个字节;文件头FH中每个结点占用100个字节;(3)密码箱信息IEB(Information of Encryption Box),包括CB_FLT:文件目录表FLT的文件名称;CB_FH:文件头FH的文件名称;CB_EFDir:外部存储器保存加密文件的目录信息;CB_NNum:密码箱结点的总数;(4)快表ICT(Index Cache Table),包括OrderID:标记当前结点在被读入到内存中的位置,取值范围是正整数,长度占8个字节;
文件目录表FLT中的Fkey,Empty项;文件头FH中的FN,CT,FCA,FGKC,FEN,FInfo项;(5)Logistic方程定义t[n+1]=cp*t[n]*(1-t[n])控制参数cp(Control Parameter),cp取值是0与4之间的实数,不包括边界值0和4;t[n]是Logistic方程迭代的时间序列,n代表时间,n取值区间是正整数,t[0]代表初始状态值,t[n]的数值是0与1之间的正实数;(6)哈希函数定义哈希函数kValue=Hkey(cp_1,t[0]_1,cp_2,t[0]_2,Init_Num,RNum)kValue是由哈希函数Hkey生成的哈希值;cp_1表示第一个Logistic方程的控制参数值;t[0]_1表示第一个Logistic方程的初始状态值;cp_2表示第二个Logistic方程的控制参数值;t[0]_2表示第二个Logistic方程的初始状态值;系统添加的Logistic方程的控制参数值数字在3.9之后的数字位,即,3.9d1d2,d1和d2是用户添加的数字位;系统添加的Logistic方程的初始状态值数字在0.5之后的数字位,即,0.5d1d2,d1和d2是用户添加的数字位;Init_Num表示Logistic方程的初始迭代数,RNum表示Logistic方程在经过初始迭代数后,获得最后结果需要迭代的数量;KValue表示为{kval_1,kval_2,...,kval_n}的数字字符串,第一个数字字符是kval_1,最后一个数字字符是kval_n,总数是n个;哈希函数Hkey的计算过程是:第一个Logistic方程t[n+1]_1=cp_1*t[n]_1*(1-t[n]_1)和第二个Logistic方程t[n+1]_2=cp_2*t[n]_2*(1-t[n]_2)在指定的控制参数和初始状态值下进行初始迭代,迭代次数是Init_Num,获得第一个Logistic方程的迭代值t[Init_Num+1]_1和第二个Logistic方程的迭代值t[Init_Num+1]_2,截取t[Init_Num+1]_1的小数点后最末位数值last[t[Init_Num+1]_1]与t[Init_Num+1]_2的小数点后最末位数值last[t[Init_Num+1]_2],KValue的第一个数字字符取值为last[t[Init_Num+1]_1],第二个数字字符取值为last[t[Init_Num+1]_2];依次迭代,获得的KValue是{last[t[Init_Num+1]_1],last[t[Init_Num+1]_2],last[t[Init_Num+2]_1],last[t[Init_Num+2]_2],...,last[t[Init_Num+RNum]_1],last[t[Init_Num+RNum]_2]};(7)转换函数strConvert(In String,Out Type Num)In代表输入变量;String代表输入的字符串;Out代表输出变量;Type代表输出变量的类型,分别是整数类型int,实数类型float,布尔类型bool;Num代表输出的具有Type类型的变量;转换函数strConvert的规则是:如果输出类型是int、float,需要把String转换为ASCII码,取每个字符的ASCII码数值的最后一位数字,组合成为int、float;如果溢出,采用
截尾的方法处理;如果输出类型是bool,当String不为空时,Num取值为真,否则,Num取值为假;Part_2,密码箱系统的功能模块,包括:(1)系统初始化模块当用户第一次登录本系统时,本系统需要设置密码才能使用,并初始化系统;用户设置的用于数字证书的哈希值长度是128*2n字节,n是正整数;用户设置的初始密码转换为128*2n字节哈希值,具体过程是:用户设置的参数通过转换函数strConvert进行转换,用户需要设置cp_1,t[0]_1,cp_2,t[0]_2,Init_Num,RNum,和设置哈希值长度128*2n字节中n的数值,Init_Num的初始值是1024,RNum的初始值是128,计算kValue=Hkey(cp_1,t[0]_1,cp_2,t[0]_2,Init_Num,RNum),kValue作为用户登录系统验证的数字证书存储在内部存储器中;对文件目录表FLT进行初始化,用户设定系统中结点的总数(NumNodes),对每一个结点进行初始化,FID按照顺序进行编号,Order的值均设置为0,Empty的值均设置为0;第一个结点的FKey计算利用用户登录验证的数字证书中的最后8个字节,转化为参数cp_1,t[0]_1,cp_2,t[0]_2,RNum=4,计算kValue=Hkey(cp_1,t[0]_1,cp_2,t[0]_2,Init_Num,RNum),把kValue赋值给FKey;由第一个结点的FKey生成第二个结点的参数cp_1,t[0]_1,cp_2,t[0]_2,RNum=4,计算kValue;如果当前kValue与第一个结点的FKey不同,把kValue赋值给第二个结点的FKey,如果当前kValue与已经生成的FKey的值相同,再次迭代Hkey生成kValue,直到生成与已经生成的FKey的值不相同;依次进行,直到每个结点的FKey初始化完成;对密码箱信息IEB文件进行初始化,设定文件目录表FLT的文件名称存储在CB_FLT中;文件头FH的文件名称存储在CB_FH中;外部存储器保存加密文件的目录信息存储在CB_EFDir中;把结点的总数NumNodes赋值给CB...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。