CN103095452A - 需要采用穷举法解密的随机加密方法 - Google Patents
需要采用穷举法解密的随机加密方法 Download PDFInfo
- Publication number
- CN103095452A CN103095452A CN201110355321XA CN201110355321A CN103095452A CN 103095452 A CN103095452 A CN 103095452A CN 201110355321X A CN201110355321X A CN 201110355321XA CN 201110355321 A CN201110355321 A CN 201110355321A CN 103095452 A CN103095452 A CN 103095452A
- Authority
- CN
- China
- Prior art keywords
- random
- ciphertext
- encrypted
- key
- keytext
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种需要采用穷举法解密的随机加密方法,其主要用途在于加密重要明文。加密流程如下:输入用户身份信息和加密强度;根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度,并产生该随机长度的随机密钥;利用用户身份信息和随机密钥按照预定的加密算法加密重要明文以得到密文,并用由程序确定的加密算法将用户身份信息和随机密钥锁在密码识别信息中。用这种加密方法所产生的密文,无论如何编写解密程序,即使输入正确的用户身份信息也需要使用穷举法进行解密,并且既要对用户身份信息进行比对,还要对随机密钥进行比对。这种方法不仅可应用于单机系统,还可应用到云中的密钥托管服务。
Description
技术领域
本发明涉及一种随机加密方法,用该加密方法加密生成的密文无论解密程序如何编写都需要用穷举法进行解密。
背景技术
目前普遍使用的操作系统Windows XP和Windows Vista中采用了先进的EFS(Encrypting File System,加密文件系统)。该密码系统中的证书和私钥丢失后,无法解密被EFS加密的文件。EFS导出的私钥备份的加密强度完全取决于用户导出私钥过程中所输入的密码。为了保证证书和私钥备份的安全,使用EFS的人们往往将备份保存在移动存储设备中。当操作系统中的证书和私钥丢失时,用户常常需要翻箱倒柜寻找移动存储设备,找到后将保存在移动存储设备中备份的证书和私钥导入操作系统,然后用导入的证书和私钥解密被EFS加密的文件。现有的EFS导出导入证书和私钥的方法不但不易使用,使许多人不敢使用EFS,而且导出导入证书和私钥、两次取用和两次放置移动存储设备后所花时间平均在一分钟以上,还可能因为移动存储设备丢失而无法恢复证书和私钥,使许多用户对EFS敬而远之。另一方面,已公知的加密方法利用用户身份信息对明文加密时,采用各种算法生成密码识别信息,利用该密码识别信息对用户身份信息的验证,为用户提供了方便,但也给破解者提供了捷径,并且该密码识别信息往往经不起攻击。还有,利用用户身份信息和随机数据共同对同一保护对象加密时,现有的随机加密方法在生成密码识别信息时,虽然将随机数据加密,但只将用户身份信息锁在密码识别信息中,并没有将随机数据锁在密码识别信息中,解密时只需要对用户身份信息进行比对,并不需要对随机数据进行比对。第四个方面当前云计算高速发展,云中的密钥托管服务需要本发明来增加密文的安全性。
发明内容
本发明正是针对以上四方面的问题而产生,主要用来加密保护证书和私钥的备份。
根据本发明的一个方面,提供一种加密方法,参见图1,其加密流程如下:
【I】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【II】利用用户身份信息UserID和随机密钥Random派生一个文本UR,并向文本UR中添加适量随机数,采用预定算法加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【III】利用在生成密码识别信息PassID过程中所产生的具有随机性质的文本TK加密重要明文VipT以生成密文T,
【IV】将密文T添加到密码识别信息PassID后面,以构成密文ReText。
参见图1,上述方法的解密流程如下:
【I】输入用户身份信息UserID,
【II】采用预定算法列举一个可能出现的随机密钥Random,并利用该随机密钥Random和用户身份信息UserID尝试解密密码识别信息PassID,
【III】判断密码识别信息PassID是否已解密成功,若成功,则执行【V】,否则执行【IV】,
【IV】判断是否穷举完毕,若完毕,则提示用户身份信息UserID错误,并稍候片刻,然后执行【I】,否则执行【II】,
【V】利用通过比对的随机密钥Random和用户身份信息UserID从密文ReText中解出重要明文VipT。
本文中所述文本是指任意长度的二进制信息片段。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【I】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【II】利用用户身份信息UserID、随机密钥Random和重要明文VipT派生一个文本URT,
【III】采用预定算法加密文本URT,以生成重要明文VipT的密文ReText。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【I】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【II】利用用户身份信息UserID和随机密钥Random派生一个文本UR,采用预定算法加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【III】采用预定算法加密重要明文VipT,以生成重要明文VipT的密文ReText,
【IV】将密码识别信息PassID插入密文ReText中,其中,
所述将密码识别信息PassID插入密文ReText中,是指将密码识别信息PasrID作为一个单位或拆分为多个单位添加到密文ReText中某一个或多个位置构成一个新文本的动作,并且插入位置不局限于密文ReText里的位置,也可以添加在密文ReText的首尾两端。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【I】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【II】采用预定算法加密重要明文VipT,以生成重要明文VipT的密文ReText,
【III】利用用户身份信息UserID和随机密钥Random派生一个文本UR,采用预定算法加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【IV】将密码识别信息PassID插入密文ReText中,其中,
所述将密码识别信息PassID插入密文ReText中,是指将密码识别信息PassID作为一个单位或拆分为多个单位添加到密文ReText中某一个或多个位置构成一个新文本的动作,并且插入位置不局限于密文ReText里的位置,也可以添加在密文ReText的首尾两端。
前面四个加密流程中,其中,
所述随机长度Long,是由下列之一或多个构成:随机密钥中单元的个数、随机密钥中每个单元的比特数、随机密钥中单元的变动范围,并且随机长度Long以明文或密文的形式保存在用于保存密文ReText的相关存储空间,用来给解密程序指定用穷举法探测的随机密钥的随机长度范围,所述用于保存密文Retext的相关存储空间是指以下四者之一:①保存密文Retext的空间,②保存密文Retext这个文件属性的空间,③数据库,④用于保存随机长度Long的文件或空间,
所述密文Retext,其特征是任何针对密文Retext的解密程序都需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥Random,不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比对,还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比对,只有在前述两种密钥的比对都一致后,才能确保正确解密密文ReText,以释放重要明文VipT,
所述预定算法是指利用用户身份信息UserID和随机密钥Random进行加密的加密算法,并且包括下列加密算法中的一种或多种:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密算法、非对称加密算法、统计数据加密、伪随机加密、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对重要明文VipT的密文ReText进行正确解密,以释放重要明文VipT,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从重要明文VipT的密文ReText中解出重要明文VipT的速度比解密密码识别信息PassID的速度快许多倍,甚至快成千上万倍,并且满足如果不解密密码识别信息PassID直接攻击密文ReText中的其他部分以得到重要明文VipT的计算量不小于攻击密码识别信息PassID的计算量,因此,所述加密强度也等于对重要明文VipT进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间、加密强度的等级标注(如大、中、小;又如高、中、低、再如1级、2级、3级等等,类似用形容词或用数字与量词结合的标注),文中所述从重要明文VipT的密文ReText中解出重要明文VipT的速度是指重要明文VipT的长度除以所耗费的时间,该时间是指在确认用户身份信息UserID和随机密钥Random都正确后,从重要明文VipT的密文ReText中解出重要明文VipT的时间,文中所述解密密码识别信息PassID的速度是指在输入用户身份信息UserID后,用户身份信息UserID和随机密钥Random的长度之和除以所耗费的时间,该时间是指解密程序采用穷举循环尝试计算随机密钥Random所耗费的时间,
所述随机密钥是由下列其中一种或多种信息构成:系统产生的随机信息、用户操作所产生的随机信息(如击打键盘的时刻、鼠标移动像数、点击鼠标的时刻及位置)、系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据干预后得到的信息。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【I】输入加密强度和用户身份信息UserID,根据随机密钥的长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的长度Long,产生长度为Long的随机密钥Random,
【II】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【III】利用私钥KeyText与密码识别信息PassID派生一个文本KP,
【IV】利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【V】将一个大于或等于随机密钥Random长度Long的数据和私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中。
上面加密流程中的【V】可被修改为:将一个小于随机密钥Random长度Long的数据和私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中。本文将大于或小于随机密钥Random长度Long且用来标明随机密钥Random长度Long范围的数据,当作随机密钥Random长度Long的一种密文。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【A】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,
【B】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则结束;若没找到,则执行【C】,
【C】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【D】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【E】利用私钥KeyText与密码识别信息PassID派生一个文本KP,
【F】利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【G】将随机密钥的随机长度Long和私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【H】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间中,结束。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【A】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【B】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【C】,
【B】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【H】;若没找到,则执行【C】,
【C】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【D】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【E】利用私钥KeyText与密码识别信息PassID派生一个文本KP,
【F】利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【G】将随机密钥的随机长度Long和私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【H】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间中,
【I】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,结束。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【5】,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【4】;若没找到,则执行【5】,
【4】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束本进程,
【5】增加一个加密备份私钥KeyText的进程PKey,进程PKey执行【6】,原进程执行【4】,
【6】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【7】检测用户命令,如果用户输入的命令是确认,则执行【8】,如果用户输入的命令是退出,则结束本进程,
【8】进程PKey判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【9】,若没有输入,则从系统提取用户身份信息UserID,然后执行【10】,
【9】进程PKey判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【10】,若无效,则向【6】中要显示的图形界面发送出错提示信息,并执行【6】,
【10】进程PKey将384字节的随机数据复制到数列ID的前384字节上,进程PKey产生长度为384字节的随机数列P,利用私钥KeyText产生具有384个整数的数列IS,将数列IS按照从小到大的顺序排列,并将数列IS中的数据在排序后的位置序号记录到由ir[0],ir[1],ir[2],ir[3],ir[4],...,ir[i],...构成的整数数列IR中。用一个循环计算
d[i]=d[i]^p[ir[i]] /*...0≤i<384...*/
/*...这里对随机数据进行处理,是为了破坏伪随机的周期性,以便后面将这些数据用作随机密钥,其中ir[i]表示数列IS中原位置序号为i的整数在排序后,被放在序号为ir[i]的位置,d[i]、p[i]分别表示数列ID、数列P中字节序号为i的数据,本文用“^”、“/”、“%”、分别表示:异或、整除、取模......*/
【11】从数列ID中字节位置序号为383的位置开始,向前将用户身份信息UserID覆盖到数列ID中,并将数列ID的前128个字节信息作为一个大整数x,用一个循环计算(x/K[i])%256并将计算结果添加在数列ID后面,
/*......添加后,数列ID已有512字节的数据,K[i]为大于65536的质数,0≤i<128,这是因为后面要采用排序所产生的位置序号代码来加密,用这种加密方法处理密码识别信息时,可能存在错误通过比对的情况,为了防止这种情况的出现,通过计算(x/K[i])%256并将结果保存在数列ID后面,记录大整数x的一些特征,以便在通过对用户身份信息UserID和随机密钥Randomr的验证后,用大整数x的一些特征来进一步验证,以保证密钥验证的可靠性。.........*/
根据随机密钥的长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的长度Long,在数列ID中从用户身份信息UserID之前的位置开始,向前读取Long位的数据作为随机密钥Random,
/*...这里要求用户身份信息UserID和随机密钥Random总长度不超过384×8比特,如果超过,要调整数列ID的长度...*/
【12】进程PKey从数列ID中序号为128的字节开始,向后复制128个字节到数列P中,将数列P复制到数列S,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,计算s[i]=p[r[i]]^r[i]
/*...利用排序产生的序号代码重排代码位置,并作异或运算(0≤i<128)......*/
用一个循环,计算
d[2×i]=d[2×i]^s[2×i] /*...0≤i<64...*/
d[2×i+1]=((d[2×i+1]+s[2×i+1])%256) /*...0≤i<64...*/
/*......即用数列S中数据加密数列ID首部的数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据,......*/
【13】进程PKey将数列S复制到数列P,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中。
/*...其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,计算s[i]=p[r[i]]^r[i] /*...(0≤i<128)...*/
用一个循环,计算
d[2×i]=d[2×i]^s[2×i-256] /*...128≤i<192...*/
d[2×i+1]=(d[2×i+1]-s[2×i-255]+256)%256 /*...128≤i<192...*/
/*......即用数列S中数据加密数列ID中后部的数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据,......*/
【14】进程PKey将数列ID的最后128个字节信息复制到数列P中,将数列P复制数列S,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,
计算s[i]=p[r[i]]^r[i]
计算d[i]=d[i]^s[i]
/*...即用数列S中数据加密数列ID首部数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据,0≤i<128......*/
【15】进程PKey将数列S复制到数列P,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*......其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,
计算 s[i]=p[r[i]]^r[i] /*...0≤i<128...*/
计算 d[i]=d[i]^s[i-128] /*...128≤i<256...*/
/*...即用数列S中数据加密数列ID中前部的数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据...*/
【16】进程PKey将数列ID中字节序号为奇数的数据都向前移两位,并将移出的信息添加到前一个字节序号为奇数的数据尾部,将第二个字节数据移出的信息添加在最后一个字节数据的尾部,
将数列ID中字节序号为偶数的数据都向后移一位,并将移出的信息添加到后一个字节序号为偶数的数据的首部,将倒数第二个字节数据移出的信息添加在第一个字节数据的首部,
采用某种算法利用随机密钥Random和用户身份信息UserID派生一个由384字节构成的数列,并将该数列复制到数列P,按照从大到小的顺序排列数列P中各字节数据,并将数列P中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*......字节序号从0开始......*/
用一个循环,计算,
q[4×i+2]=d[i] /*...0≤i<128...*/
q[i+(i+1)/3]=d[r[i]+128]^(r[i]%256) /*...0≤i<384...*/
/*...............即用数列R的数据加密数列ID中部及后部的信息,并将结果保存在数列Q中,前述d[i]、q[i]分别表示数列ID、数列Q中字节序号为i的数据,数列r[i]表示数列R中序号为i的整数数据,...*/
将数列Q的前256字节数据按序复制到数列ID中字节序号为偶数的字节上,将数列Q中后256字节数据复制到数列ID中字节序号为奇数的字节上,
【17】进程PKey产生一个由516个字节构成的随机数列,并将该数列复制到数列S中,采用某种算法利用私钥KeyText产生一个由516字节构成的数列,并将该数列复制到数列P,按照从大到小的顺序排列数列P中各字节数据,并将数列P中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
用一个循环计算,
p[i]=s[r[i]]^r[i]
/*...s[i]、p[i]分别表示数列S、数列P中字节序号为i的数据,0≤i<516,这一步用于破坏伪随机的周期性,其中r[i]表示数列P中原位置序号为i的数据在排序后,被放在序号为r[i]的位置。......*/
【18】进程PKey将数列P前512个字节复制到数列S,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的数据在排序后,被放在序号为r[i]的位置。.........*/
用一个循环,将d[r[i]]复制到q[i] /*...0≤i<512...*/
将p[r[i]+4]复制到s[i] /*...0≤i<512...*/
/*...,q[i]、s[i]、d[i]、p[i]分别表示数列Q、数列S、数列ID、数列P中字节序号为i的数据,......*/
【19】进程PKey设置v=0,
用一个循环加密数列ID:
v=((i+5)(p[i/2])(i+5)+(i+4)(p[i/2+1])(i+4)+(i+3)(p[i/2+2])(i+3)
+......+(i/2+1)(p[i+4])(i/2+1))%(2563)+v/256 /*...0≤i<512...*/
d[i]=q[i]^(v%256) /*...0≤i<512...*/
/*............其中v为定义的变量,取变量v最后一个字节中信息给数列ID中的信息加密,d[i]、p[i]、q[i]分别表示数列ID、数列P、数列Q中字节序号为i的数据......*/
【20】进程PKey产生一个由2048个字节构成的随机数列,并将该数列复制到数列Q前2048个字节中,将私钥KeyText转变为一个字符串KTs,从数列Q的第2048字节开始向前覆盖,将字符串KTs复制在数列Q的前2048字节内,从数列Q的第2049字节开始,向后将数列ID中前512字节中数据添加在Q的尾部,
【21】进程PKey从数列ID第一个字节开始,将数列P复制到数列ID上,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的数据在排序后,被放在序号为r[i]的位置。......*/
用一个循环计算:
d[516+i×5]=q[r[i]×5] /*...0≤i<512...*/
d[516+i×5+1]=q[r[i]×5+1] /*...0≤i<512...*/
d[516+i×5+2]=q[r[i]×5+2] /*...0≤i<512...*/
d[516+i×5+3]=q[r[i]×5+3] /*...0≤i<512...*/
d[516+i×5+4]=q[r[i]×5+4] /*...0≤i<512...*/
/*...d[i]、q[i]分别表示数列ID、数列Q中字节序号为i的数据, ......*/
【22】进程PKey将随机密钥Random在前、用户身份信息UserID在后,两者连接在一起,构成一个长为n位的二进制数列RU,将数列ID中前(n/4-11)字节中的奇数位的信息复制添加到数列RU的尾部,
从数列ID第(n/4-10)个字节开始,将数列ID中字节数据添加到数列RU的尾部,直到数列RU的长度为3080×8位,
设置v=0
用一个循环加密数列ID:
v=((i+5)(u[i/2])(i+5)+(i+4)(u[i/2+1])(i+4)+(i+3)(u[i/2+2])(i+3)
+...+(i/2+1)(u[i+4])(i/2+1)+i×(u[i%((n+7)/8)])(i%64))%(2563)
+v/256 /*...0≤i<3076...*/
d[i]=d[i]^(v%256) /*...0≤i<3076...*/
/*............d[i]、u[i]表示数列ID、数列RU中字节序号为i的数据,n>8×8,n为随机密钥Random和用户身份信息UserID的比特数之和,这里可能导致加密计算量过大,若如此,可将上式适当修改,......*/
【23】进程PKey将随机密钥Random的长度Long、私钥KeyText的识别标志KeyID插入数列ID中,然后将数列ID作为私钥KeyText的经加密的备份ReCome,保存在存储盘Disk中用于保存密文BeMF的相关存储空间,结束本进程。
其中,上面在生成密码识别信息PassID的过程中,多次用到了排序所产生的序号代码来参与运算的方法,本文将这种方法叫做利用排序所产生的序号代码加密的算法。利用排序所产生的序号代码加密的算法既可利用序号代码重排某个文本来实现加密,也可用利用序号代码与某个文本作其他运算来实现加密,这种加密可防止现有的各种密码分析方法,【19】和【22】在产生流密码的算法中都采用了增加多项式中的项数,增加多项式中的最高幂次的非线性加密的方法来加密,这种加密方法可使线性分析、差分分析法失效,又因本发明将随机密钥锁在密码识别信息中,解密时需要用穷举法来寻找,使计算量完全超出破解者的承受能力,所以唯密文攻击也失效。在实际应用中,产生流密码的方法还可利用项数随着加密进程增加,幂次随着加密进程变化的多项式来实现。即产生流密码多项式中的幂次可根据需要调整。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【5】,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【4】;若没找到,则执行【5】,
【4】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束本进程,
【5】增加一个进程,该进程和原进程两者之中的一个进程PKey执行【6】,另一个进程执行【4】,
【6】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【7】检测用户命令。如果用户输入的命令是确认,则执行【8】,如果用户输入的命令是退出,则结束本进程,
【8】进程PKey判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【9】,若没有输入,则从系统提取用户身份信息UserID,然后执行【10】,
【9】进程PKey判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【10】,若无效,则向【6】中要显示的图形界面发送出错提示信息,并执行【6】,
【10】进程PKey根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【11】进程PKey利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【12】进程PKey提取私钥KeyText,并利用提取到的私钥KeyText与密码识别信息PassID派生一个文本KP,
【13】进程PKey利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【14】进程PKey将随机密钥Random的随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【15】进程PKey将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束本进程。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则结束;若没找到,则执行【4】,
【4】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【5】检测用户命令。如果用户输入的命令是确认,则执行【6】,如果用户输入的命令是退出,则结束,
【6】判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【7】;若没有输入,则从系统提取用户身份信息UserID,然后执行【8】,
【7】判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【8】,若无效,则向【4】中要显示的图形界面发送出错提示信息,并执行【4】,
【8】根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【9】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【10】提取私钥KeyText,并将提取到的私钥KeyText与密码识别信息PassID派生一个文本KP,
【11】利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【12】将随机密钥Random的随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【13】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束。
根据本发明的一个方面,提供一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【4】,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【14】;若没找到,则执行【4】,
【4】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【5】检测用户命令。如果用户输入的命令是确认,则执行【6】,如果用户输入的命令是退出,则执行【14】,
【6】判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【7】,若没有输入,则从系统提取用户身份信息UserID,然后执行【8】,
【7】判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【8】,若无效,则向【4】中要显示的图形界面发送出错提示信息,并执行【4】,
【8】根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【9】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【10】提取私钥KeyText,并利用提取到的私钥KeyText与密码识别信息PassID派生一个文本KP,
【11】利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【12】将随机密钥Random的随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【13】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,
【14】加密明文MessFile,以得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束。
本文中从第4页第19行到第6页第21行和从第12页第22行到第16页第15行,这两部分的文字共说明了六个加密流程,根据这六个加密流程中的任何一个所述的加密方法,其特征是:其中,
所述备份ReCome,其特征是任何针对备份ReCome的解密程序都需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥,不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比对,还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比对,只有在前述两种密钥的比对都一致后,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从私钥KeyText的经加密的备份ReCome中解出私钥KeyText的速度比解密密码识别信息PassID的速度快许多倍,甚至快成千上万倍。因此,所述加密强度也等于对私钥KeyText进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间,
所述随机密钥是由下列其中一种或多种信息构成:系统产生的随机信息、用户操作所产生的随机信息(如击打键盘的时刻、鼠标移动像数、点击鼠标的时刻及位置)、系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据干预后得到的信息,并且所述系统是指密码系统或操作系统,
所述插入是指将一个文本作为一个单位或拆分为多个单位添加到另一个文本中某一个或多个位置构成一个新文本的动作,并且插入位置不局限于文本里的位置,也可以添加在文本的首尾两端。
本文中从第4页第19行到第6页第21行和从第12页第22行到第16页第15行,这两部分的文字共说明了六个加密流程,根据这六个加密流程中的任何一个所述的加密方法,其特征是:其中,
所述利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,被修改为:采用预定算法加密文本UR,并且所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,被修改为:采用预定算法加密文本KP,并且所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法。
本文中从第5页第7行到第6页第21行和从第12页第22行到第16页第15行,这两部分的文字共说明了五个加密流程,根据这五个加密流程中的任何一个所述的加密方法,其特征是:其中,
所述将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,被修改为:将随机长度Long保存在用于保存备份ReCome的相关存储空间,将私钥KeyText的识别标志KeyID备份在用于保存备份ReCome的相关存储空间,并且所述将随机长度Long保存在用于保存备份ReCome的相关存储空间,是指将随机长度Long保存在以下五者之一:①保存备份ReCome的空间,②保存备份ReCome这个文件属性的空间,③数据库,④用于保存随机长度Long的文件或空间,⑤用于保存随机长度Long和识别标志KeyID这两者的文件或空间;所述将私钥KeyText的识别标志KeyID备份在用于保存备份ReCome的相关存储空间,是指将私钥KeyText的识别标志KeyID备份在以下五者之一:①保存备份ReCome的空间,②保存备份ReCome这个文件属性的空间,③数据库,④用于保存识别标志KeyID的文件或空间,⑤用于保存随机长度Long和识别标志KeyID这两者的文件或空间,
所述将私钥KeyText的识别标志KeyID插入密文BeMF中,被修改为:将私钥KeyText的识别标志KeyID备份在用于保存密文BeMF的相关存储空间,并且所述将私钥KeyText的识别标志KeyID备份在用于保存密文BeMF的相关存储空间,是指将私钥KeyText的识别标志KeyID备份在以下四者之一:①保存密文BeMF的空间,②保存密文BeMF文件属性的空间,③数据库,④用于保存识别标志KeyID的文件或空间,
所述将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,是指将私钥KeyText的经加密的备份ReCome保存在以下四者之一:①保存密文BeMF的空间,②保存密文BeMF文件属性的空间,③数据库,④用于保存备份ReCome的文件或空间,
考虑到复杂的用户环境,上面的所述的加密方法,还可具有两个特征:①在加密过程中验证用户的合法性,只有通过验证的用户才能完成对私钥KeyText的加密。所述验证用户的合法性是指要求用户输入验证信息,并对输入的验证信息进行验证,所述验证信息是指保存在系统中的当前用户的用户身份信息如登陆密码等,②用户在带命令按钮的图形交互界面上,输入用户身份信息UserID和加密强度。
本发明中的加密方法即使利用相同的用户身份信息,对同样的信息加密,加密强度也是可变的,本发明中的加密方法可以通过调整随机密钥的随机长度而使该加密方法的加密强度随着加密机器速度的提高而提高或者使用者需求而变化。因此,本发明中的加密方法可以应对将来破解设备的发展,有效地保证被本发明中的加密方法加密的信息安全。
附图说明
图1为本发明中的加密和解密的概要流程图,
图2为本发明第二个实施例的加密流程图,
图3为本发明第三、第四个实施例的加密流程图,
图4-A和图4-B为本发明第四个实施例的解密流程图,
图5为本发明第五个实施例的加密流程图,
图6为本发明第六个实施例的加密流程图。
具体实施方式
为与普通文件和信息区别,本文将用本发明中的加密方法来加密保护的私钥、证书、重要文件等信息称为重要明文。本发明利用用户身份信息和随机密钥共同加密,将随机密钥和用户身份信息锁在密码识别信息中,并且在生成密码识别信息时采用反密码分析方法的措施。根据本发明加密的密文,无论破解者怎样编写解密程序,除了使用穷举法或采用穷举法与密码分析技术相结合的方法外,无法有效利用其它密码分析方法对密文进行破解,即使在提供的用户身份信息正确的情况下,任何针对本发明的解密程序仍需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥,才能保证成功的将密文解密。本发明中的加密方法对同样的信息,使用相同的用户身份信息,所获得的加密强度是可变的,本发明中的加密方法可以通过调整随机密钥的随机长度而使该加密方法的加密强度随着加密机器速度的提高而提高或者使用者需求而变化。因此,本发明中的加密方法可以应对将来破解设备的发展,有效地保证被本发明中的加密方法加密的信息安全。
根据本发明的加密方法的基本特征是:输入用户身份信息和加密强度,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度,并产生该随机长度的随机密钥,这是一个不能根据任何明文、用户身份信息算出的随机密钥;利用用户身份信息和随机密钥共同加密重要明文;并在加密过程中将随机密钥和用户身份信息锁在密码识别信息中。即使在提供的用户身份信息正确的情况下,任何针对本发明的解密程序仍需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥,才能保证成功的将密文解密。本文中所述随机长度是由下列参数中的一个或多个构成:随机密钥中单元的个数、随机密钥中每个单元的比特数、随机密钥中单元的变动范围。本文中所述预定解密速度取决于预定的解密机器和预定的解密程序这两者的速度,通常一个成熟的加密软件,其预定解密程序的速度比较稳定难以发生大的变化,即预定解密程序可将看作一个常量,但密文生成后,我们可以选择在速度较大的机器上解密,也可选择在速度较小的机器上解密,因此预定解密机器的速度可以有较大的选择范围,所以预定解密速度也可以有较大的选择范围。
针对本发明的解密程序,使用穷举法来解密并不指只用穷举法来解密,也可采用其它的先进的密码分析技术来排除部分不可能的随机密钥,以加快穷举法寻找随机密钥的速度。前句所述的穷举法是指在输入用户身份信息的前提下,且在随机密钥变动范围内,解密程序用某种算法逐个列出尚未被排除的随机密钥,并用某种算法将当前列出的随机密钥、用户身份信息与密码识别信息进行比对以验证当前列出的随机密钥。直至正确的随机密钥被找到或已尝试所有可能的随机密钥。
本发明这种密码系统在加密、解密时都需要用户或系统提供被加密信息的用户身份信息。本文中所说的用户身份信息是指能够由用户完全掌握的密钥,加密和解密时都可由用户输入,包括用户名、用户密码、用户指纹、DNA、兴趣爱好、社会关系、特殊经历、身份证号码、软件序列号等各种由用户、软件设定用于识别用户身份并参与加密、解密的信息。当本发明应用到云系统中的重要明文托管服务时,用户身份信息不仅包括终端用户或终端系统输入的终端用户身份信息,还包括重要明文托管服务商的云给终端用户分配的托管方密钥。托管方密钥是重要明文托管服务商所提供的服务端用户身份信息。本发明所产生的密码系统在加密过程中必须使用随机信息参与加密,为便于表述,本文将在加密系统中产生用来加密信息的随机信息分为两种。第一种随机信息属于密码识别对象中的成员,在解密时不能确保利用用户身份信息和其他信息一次性解算出该随机信息,而必须用穷举法才能找到该随机信息,本文将这种随机信息称为随机密钥。第二种随机信息并非密码识别对象中的成员,在解密时能够利用用户身份信息、随机密钥和密文一次性解算出该随机信息,本文将这种随机信息简称为随机数。
为便于表述,下面首先在所有密码分析方法都失效的条件下进行说明。为便于控制解密的平均计算量,本发明中的随机密钥采用对称密钥。这里假设加密时,用户输入的用户身份信息为含有x个字符的用户密码,并且用户密码中每个字符为含有U个元素集合中的任意一个元素。加密所用的时间为T,解密时需要用穷举法寻找的随机密钥由y个单元组成,每个单元为含有R个元素集合中的任意一个元素,且假设加密、解密过程都在速度相等的计算机上完成。在用户身份信息正确时,计算机解密被加密的信息所需的时间为t=k×T×S(式中k为修正系数且k>0,S为用穷举法尝试的次数)。通常随着S的增大,k会逐渐接近某一常数,因此下面可将k作为一个常数来考虑。在前述情况下,合法用户解密所需的最长时间为k×T×Ry,平均解密时间t1=0.5×k×T×(Ry+1),破解者因不知道用户身份信息,所以对用户身份信息和随机密钥都要进行试探,因此其平均成功破解时间:
t2=0.5×k×T×(Ux×Ry+1)
=0.5×k×T×(Ry+1)(Ux+1÷Ry)÷(1+1÷Ry)
≈t1×(Ux+0)÷(1+0)
=t1×Ux ①
破解者在h时间内成功破解的概率为:
P=h÷(k×T×Ux×Ry)
=h(Ry+1)÷(2×0.5×k×T×(Ry+1)×Ux×Ry)
=h(1+1÷Ry)÷(2×t1×Ux)
≈h÷(2×t1×Ux) ②
据此,我们可推出在平均解密时间t1为1分钟,在用户密码长度x为8,且密码中字符仅为数字与大小英文字母的情况下,此时U为62,破解者在一年之内成功破解的概率为1.20445119×10-9,即使破解计算机的速度为加密计算机速度的10000倍,破解者在一年之内成功破解的概率也只有1.20445119×10-5,这个概率对绝大多数用户来说仍足够安全,况且在实际应用中通过用户输入多种信息使用户身份信息的长度x很容易大于8,构成用户身份信息的元素个数U还可增大,需要用穷举法寻找的随机密钥长度y可进一步增加,即很容易进一步降低破解者成功破解的概率。本发明加密的信息因需要用穷举法寻找随机密钥,增加了平均解密计算量,从而引起平均解密时间增大,大大降低了单位时间内成功破解的概率,而且平均解密时间可以控制在合法用户能够接受的范围之内,但对破解者而言因没有掌握正确的用户身份信息,这个时间被用户身份信息进一步增大到Ux倍,使破解时间超出破解者的承受能力,迫使破解者放弃强行破解,从而达到保证信息安全的目的。
本发明中加密强度取决于加密用户身份信息和随机密钥后所生成的密码识别信息,解密时,只有先完成对密码识别信息的解密,才能保证对其他密文进行正确解密,以释放重要明文,并且解密时,在确认用户身份信息和随机密钥都正确后,从密文中解出重要明文的速度比解密密码识别信息的速度快许多倍,甚至快成千上万倍。因此,所述加密强度也可被认为就等于对重要明文进行加密的加密强度。用户或系统通过调节随机长度来实现设置加密强度。应用本发明的软件或机器可由用户或系统直接输入随机长度来设置加密强度。输入随机长度时,可输入下列参数之一或多个:随机密钥中单元的个数、随机密钥中每个单元的比特数、随机密钥中单元的变动范围、例如,只设置随机密钥中比特数(以比特为单元)、既设置随机密钥中单元的个数又设置随机密钥中单元的变动范围、只设置随机密钥中单元的变动范围等。实际应用中,也可通过输入以下参数来设置加密强度:解密的平均计算量、最大计算量、解密的平均计算量或最大计算量相对加密时计算量的放大倍数、解密的平均计算或最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数,在预定速度机器上解密时的平均解密时间或最长解密时间,然后由程序根据设置的参数,计算随机长度。
可在解密程序中插入计数器统计得到:解密程序枚举一个可能的随机密钥,并用该随机密钥完成一次尝试解密的计算量函数f(x,y,z),式中x为用户身份信息的长度,y为随机密钥的长度,z为密文的长度,随机密钥长度以比特为单位。在不考虑密码分析威胁的条件下,
当用户或系统输入的加密强度为:解密的平均计算量j时,可通过对方程:
j×2=f(x,y,z)×2y ③
求解,算出加密时应使用的随机密钥的长度y,需要注意的是为了简化随机长度的计算,从公式③到公式⑩中随机密钥都以比特为单元,并且每个比特的值为0或1,随机密钥的长度可根据需要调整,在这情况下随机长度完全取决于随机密钥的长度即比特数。当然对于其他类型的随机长度计算公式,使用者可根据本发明的基本原理推出,例如,以两比特为一个单元,每个单元的取值范围为00、01、10这三个值,此时公式③应为:j×2=f(x,y,z)×3y其中y表示随机密钥的单元个数。
当用户或系统输入的加密强度为:预定速度为v的计算机上解密的平均解密时间t1时,可通过对方程:v×t1×2=f(x,y,z)×2y ④
求解,算出加密时应使用的随机密钥的长度y。
可在加密程序中插入计数器统计得到:加密程序加密的计算量函数g(x,y,z),其中x为用户身份信息的长度,y为随机密钥的长度,z为密文的长度,随机密钥长度以比特为单位。在不考虑密码分析威胁的条件下,
当用户或系统输入的加密强度为:解密的平均计算量相对加密时计算量的放大倍数w时,可通过对方程:
g(x,y,z)×w×2=f(x,y,z)×2y ⑤
求解,算出加密时应使用的随机密钥的长度y。
以上都是利用计算量列方程,当用户或系统输入的加密强度为其它类型参数时也可通过与上面相似的方式,从方程中算出加密时应使用的随机密钥的长度y。
上面的方程都是在密码分析方法失效的条件下得到的,当加密时生成用于识别用户身份信息和随机密钥的密码识别信息的加密算法,能被破解者采用密码分析方法进行分析时,为防止非法用户破解,本发明在加密之前计算随机密钥长度时,根据密码系统运行的用于计算加速能力的子程序,得到系统中掌握的最新密码分析方法对解密进程的加速能力,适当加长随机密钥的长度达到阻止利用该密码分析方法破解本发明的效果,这样能确保本发明总能跟上密码分析方法的发展,并且采用本发明编写的加密程序,可以做到不更新加密方法,只要及时更新用于计算加速能力的子程序即可,有时该子程序可能也不需要更新,只需要更新与加速能力相关的参数,该子程序或参数更新后,加密程序就可自动提高加密强度,自动使当前最新破解技术立即失效。下文计算时,加速能力用旧破解方法针对某长度密文解密时的平均计算量与用新破解方法针对同样长度密文解密时的平均计算量比值来表示,当然也可其它形式来表示,当然在实际应用中,可用上述比值减1来表示,也可用上述比值的倒数来表示,还用1减这个倒数来表示,为了在自动提高加密强度后,用户对密文的平均解密时间在可以接受的范围之内,本发明的实施者应及时将当前最快的密码分析方法应用到针对本发明的解密程序中,尽量减少穷举程序的循环次数,即要在充分利用密码分析的基础上,使用穷举循环进行解密,为合法用户提供便捷。
假设依据本发明所产生的加密方法,采用某种算法对用户身份信息和随机密钥加密,以生成用于识别用户身份信息和随机密钥的密码识别信息,这个生成密码识别信息的算法在公布之前,除了用穷举法破解外,没有其它的有效破解方法,这个生成密码识别信息的算法公布后,出现了新的密码分析方法,能加速对该算法产生的密文的破解,经过统计或计算,新的密码分析方法对解密进程的加速能力可表示为函数:m(x,y,z),其中x为已知的用户身份信息的长度,y为随机密钥的长度,z为密文的长度,随机密钥长度以比特为单位,函数m(x,y,z)表示用旧破解方法针对某长度密文解密时的平均计算量与用新破解方法针对同样长度密文解密时的平均计算量比值。本发明的实施者,在知晓该破解方法后,立即将该破解方法应用到合法用户的解密方法中,以提高合法用户解密程序的工作效率,并同时将包含该方法的加速能力函数m(x,y,z)计算功能的子程序提交给加密程序。此时:
当用户或系统输入的加密强度为:预定速度为v的计算机上解密的平均解密时间t1时,合法用户已知用户身份信息,可得合法用户解密时的有关方程:
v×t1×2×m(x,y,z)=f(x,y,z)×2y ⑥
求解,算出加密时应使用的随机密钥的长度y。当用户或系统输入的加密强度为其它类型参数时,加密前计算应使用的随机密钥的长度y的过程中也要将加速能力m(x,y,z)考虑进去。
当破解者没有掌握用户身份信息时,可得破解密时的有关方程:
v×t2×2×m(0,xLog2U+y,z)=f(x,y,z)×2y×Ux ⑦
其中x为用户身份信息的长度,y为随机密钥的长度,z为密文的长度,随机密钥长度以比特为单位。由方程⑥、⑦得到:
v×t2×2×m(0,y+xLog2U,z)=v×t1×2×m(x,y,z)×Ux ⑧
由方程⑧得到破解时间t2为:
t2=t1×Ux×m(x,y,z)÷m(0,y+xLog2U,z) ⑨
由于加速能力函数:m(x,y,z)中的x为已知的用户身份信息的长度,y是未知的随机密钥长度,z为密文的长度,在被分析的加密算法为现有的非线性加密算法条件下,当z不变、x变小、y变大时,加速能力m(x,y,z)减小,据此,可知,当x>0时,
m(x,y,z)>m(0,m(0,y+xLog2U,z),z),
又因m(x,y,z)>0
所以m(x,y,z)÷m(0,m(0,y+xLog2U,z),z)>1
所以,可由⑨得到:
t2>t1×Ux ⑩
比较①式与⑩就会发现,当采用非线性加密算法依据本发明来加密保护密码识别信息时,在更新计算新密码分析方法加速能力的子程序、并利用新密码分析方法更新解密程序后,在合法用户的平均解密时间不变的情况下,破解者的平均破解时间将更长,单位时间内破解成功的概率将更低,也就是本发明所产生的加密方法将使被加密的密码识别信息变得更加安全,当然也使重要明文加密后所生成的密文也更安全。因此,本发明主张用非线性加密方法对用户身份信息和随机密钥加密,以生成密码识别信息,但不排除在加密过程中使用线性加密方法。
若本发明中的方法加密用户身份信息和随机密钥的算法已有密码分析方法,编写解密程序时,可将密码分析方法和穷举法相结合,以求在用户设置的时间内,用穷举法处理更长的随机密钥。为了保证本发明中所采用的随机密钥具有高度的随机性,随机密钥是由下列其中一种或多种信息构成:系统产生的随机信息、系统产生的伪随机信息、利用用户身份信息对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据用某种算法干预后得到的信息,并且所述系统是指密码系统或操作系统。
本发明在对信息的加密运算中可采用异或、非、与、或等逻辑运算来加密;也可采用加、减、乘、除、乘方、开方、取模及函数等算术运算来加密;还可采用数学关系运算来加密。前句所说的“数学关系”有:大小关系、集合关系等,其中大小关系包括大于、大于或等于、等于、小于或等于、小于、不等于,集合关系包括元素与集合之间的关系(属于、不属于)、集合与集合之间的包含、映射关系等,采用数学关系运算加密是指依据数学关系所建立的加密算法,例如根据加密对象的代码与某一数据的大小关系来选择密码或加密算法等、根据元素(本文中指加密对象或由加密对象等生成的代码)与某集合的关系来选择密码或加密算法等、根据映射关系(一一映射或非一一映射)建立的密码表加密等。为简便起见,本文将用逻辑运算来实现的加密简称为逻辑加密,将用算术运算来实现的加密简称为算术加密,将采用数学关系运算来实现的加密简称为数学关系加密。本发明在对信息的加密中既可采用向前移动信息代码位置(后面被移空的位置既可用前面或后面移出的代码填充,也可用随机码或非随机码填充),又可采用向后移动信息代码位置(前面被移空的位置既可用前面或后面移出的代码填充,也可用随机码或非随机码填充),也可采用交换信息代码位置,还可采用按某一规则重新排列信息代码位置,还可采用向信息代码中插入非随机代码,甚至采用向信息代码中插入随机代码(该随机代码在解密时可能不需要用穷举法寻找,也可能需要用穷举法寻找)等引起信息代码位置变化的方式加密信息,本文将这种能引起信息代码位置变化的加密算法叫做变位加密。本发明可利用排序所产生的序号代码加密的算法,所谓利用排序所产生的序号代码加密的算法是指根据排序所产生的序号代码重新排列其他信息(明文、密文、用户身份信息、密钥、随机数及其衍生信息等)的代码位置,以实现加密的方法,或指利用排序所产生的序号代码直接与其他信息(明文、密文、用户身份信息、密钥、随机数及其衍生信息等)的代码进行异或、加、乘、除等各种数学运算,以实现加密的方法。本发明既可采用流密码加密、线性加密算法、对称加密算法,又可采用分组加密算法、非线性加密算法、不对称加密算法,还可利用替代、混淆、扩散、迭代、统计数据加密,甚至使用伪随机加密和本发明之外的随机加密算法。本发明加密重要明文时,还必须对用户身份信息和随机密钥加密,并且在对重要密文、用户身份信息和随机密钥这三者加密过程中,要将多个(含两个)文本以连接或相互插入的方式组合为一个或多个(含两个)文本,甚至将某个文本以某种方式拆分为多个(含两个)文本,如果对文本的组合与拆分利用较好,也可增加加密强度,因此本文将对文本的组合与拆分也作为一种加密算法,并将这种加密算法称为组合拆分法。用组合拆分法产生的多个(含两个)文本可以分别用不同的加密算法加密,也可用相同的加密算法加密。用组合拆分法将多个(含两个)文本合并为一个新文本后,应再对新文本进行加密,当然如果被合并的文本已被加密且加密强度足够,可以不再对新文本进行加密。本发明对重要密文、用户身份信息和随机密钥这三者加密过程中,并不要求必须先对谁加密后对谁加密。
本发明应用于加密重要明文时的通用流程如下:
【I 】输入用户身份信息UserID和加密强度,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机长度Long,产生随机长度为Long的随机密钥Random,
【II】采用预定算法,利用用户身份信息UserID和随机密钥Random,加密要保密的重要明文VipT以得到密文ReText,其中,
所述随机长度Long是由下列之一或多个构成:随机密钥中单元的个数、随机密钥中每个单元的比特数、随机密钥中单元的变动范围,并且在加密完成后,随机长度Long以密文或明文的形式保存在用于保存密文Retext的相关存储空间,并且所述用于保存密文Retext的相关存储空间是指以下五者之一:①保存密文Retext的空间,②保存密文Retext这个文件属性的空间,③数据库,④用于保存随机长度Long的文件或空间,⑤用于保存随机长度Long和识别标志TextID这两者的文件或空间,
所述随机密钥Random既是对重要明文VipT加密的密钥的一部分,又是对密文Retext解密的密钥的一部分,并且是由下列其中一种或多种信息构成:系统产生的随机信息、用户操作所产生的随机信息(如击打键盘的时刻、鼠标移动像数、点击鼠标的时刻及位置)、系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据用某种算法干预后得到的信息,并且所述系统是指密码系统或操作系统,
所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述利用用户身份信息UserID和随机密钥Random,是指除了利用包含用户身份信息UserID和随机密钥Random这两者本身外,还包括利用下列信息中的一种或多种:由用户身份信息UserID衍生的信息、由随机密钥Random衍生的信息、随机数、由随机数衍生的信息、重要明文VipT、由重要明文VipT衍生的信息、由用户身份信息UserID、随机密钥Random、随机数和重要明文VipT这四者之中两者共同衍生的信息、由用户身份信息UserID、随机密钥Random、随机数和重要明文VipT这四者之中三者共同衍生的信息,由用户身份信息UserID、随机密钥Random、随机数和重要明文VipT这四者共同衍生的信息,
所述重要明文VipT是指下列信息中的一种或多种:密钥(含对称密钥、不对称密钥)、证书、个人隐私、商业机密、企事业单位机密、计算机安全信息,存在于计算机中需要加密保护的信息片段、文件、文件夹,所述加密要保密的重要明文VipT以得到密文Retext,就是对重要明文VipT、用户身份信息UserID和随机密钥Random这三者加密的过程,并且该过程多种多样,下面列出了其中十四种:(1)对重要明文VipT、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,然后将密文Re1、密文Re2、密文Re3组合为一个密文Retext,(2)对重要明文VipT、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,将密文Re1、密文Re2和密文Re3这三者之中的两者组合为一个文本S,并对文本S加密,以得到密文Re4,之后将密文Re1、密文Re2和密文Re3这三者之中没有参与构成文本S的这个密文和密文Re4组合为一个密文Retext,(3)对重要明文VipT、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,将密文Re1、密文Re2和密文Re3这三者之中的两者组合为一个文本S,并对文本S加密,以得到密文Re4,之后将密文Re1、密文Re2和密文Re3这三者之中没有参与构成文本S的这个密文和密文Re4组合为一个文本ReS,接着再对文本ReS加密,以得到密文Retext,(4)对重要明文VipT、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,然后将密文Re1、密文Re2、密文Re3组合为一个文本S,并对文本S加密,以得到密文Retext,(5)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者不参与生成密文Re1的另外两者组合为一个文本S,对文本S加密,以得到密文Re2,然后将密文Re1、密文Re2组合为一个密文,以得到密文Retext,(6)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者不参与生成密文Re1的另外两者组合为一个文本S,对文本S加密,以得到密文Re2,然后将密文Re1、密文Re2组合为一个文本ReS,再对文本ReS加密,以得到密文Retext,(7)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者之中尚没被加密的另外两者之一和密文Re1组合为一个文本S,对文本S加密,以得到密文Re2,然后将密文Re2与前述三者(即重要明文VipT、用户身份信息UserID和随机密钥Random这三者)之中尚未被加密的这一者组合为一个文本ReS,再对文本ReS加密,以得到密文Retext,(8)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,将前述三者之中不参与生成密文Re1的另外两者之一和密文Re1组合为一个文本S,对文本S加密,以得到密文Re2,并将前述三者(即重要明文VipT、用户身份信息UserID和随机密钥Random这三者)之中不参与生成密文Re2的这一者加密,以得到密文Re3,将密文Re2、密文Re3组合为密文Retext,(9)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,将前述三者之中不参与生成密文Re1的另外两者之一和密文Re1组合为一个文本S,对文本S加密,以得到密文Re2,并将前述三者(即重要明文VipT、用户身份信息UserID和随机密钥Random这三者)之中不参与生成密文Re2的这一者加密,以得到密文Re3,将密文Re2、密文Re3组合为文本ReS,再对文本ReS加密,以得到密文Retext,(10)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者之中尚没被加密的另外两者和密文Re1组合为一个文本S,对文本S加密,以得到密文Retext,(11)先将重要明文VipT、用户身份信息UserID和随机密钥Random这三者之中两者组合为一个文本S,接着对文本S加密以生成密文Re1,将前述三者之中没有参与构成文本S的这个数据和密文Re1组合为一个文本ReS,再对文本ReS加密,以得到密文Retext,(12)先将重要明文VipT、用户身份信息UserID和随机密钥Random这三者组合为一个文本S,然后对文本S加密,以得到密文Retext,(13)对重要明文VipT、用户身份信息UserID和随机密钥Random这三者之中的两者分别进行加密,以得到这三者对应的密文Re1、密文Re2,将前述三者之中尚没被加密的另外一者和密文Re1、密文Re2组合为一个文本S,对文本S加密,以得到密文Retext,(14)将重要明文VipT、用户身份信息UserID和随机密钥Random这三者中的代码相互插入,并分割为多个(含两个)新的文本S1、文本S2、......,分别用不同的加密算法加密文本S1、文本S2、......,以得到密文Re1、密文Re2、......,将密文Re1、密文Re2、......组合为一个文本SS,再对文本SS加密,以得到密文Retext。
所述密文Retext,不仅包含对重要明文VipT加密后生成的信息,也包含对用户身份信息UserID和随机密钥Random加密后生成的信息即密码识别信息PassID,并且无论如何编写解密程序,解密时在输入用户身份信息UserID的条件下,都需要用穷举法或采用密码分析和穷举攻击相结合的方法寻找随机密钥Random,才能确保正确解密密文ReText,以释放重要明文VipT,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对密文Retext进行正确解密,以释放重要明文VipT,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从密文ReText中解出重要明文VipT的速度比解密密码识别信息PassID的速度快许多倍,甚至快成千上万倍。因此,所述加密强度也等于对重要明文VipT进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间,
所述输入用户身份信息UserID和加密强度,是指按照以下八种顺序之一输入:①先输入用户身份信息UserID,后输入加密强度,②先输入加密强度,并在产生随机密钥Random之前,输入用户身份信息UserID,③先输入加密强度,并在产生随机密钥Random之后,输入用户身份信息UserID,④在输入用户身份信息UserID的过程中,输入加密强度,并在产生随机密钥Random之前,完成输入用户身份信息UserID,⑤在输入用户身份信息UserID的过程中,输入加密强度,并在产生随机密钥Random之后,完成输入用户身份信息UserID,⑥由用户决定用户身份信息UserID和加密强度这两者的先后输入顺序,⑦用两个进程输入用户身份信息UserID,并用其中一个进程输入加密强度,⑧用两个线程输入用户身份信息UserID,并用其中一个线程输入加密强度,
为了标明密文Retext的所有者等必要属性,密码系统往往给重要明文VipT赋予一个识别标志TextID,密码系统在生成密文Retext的过程中,将识别标志TextID备份在用于保存密文Retext的相关存储空间,并且其中所述识别标志TextID是由下列信息中的一种或多种构成:随机数据、版本号、重要明文VipT的建立和修改时间,所述用于保存密文Retext的相关存储空间是是指以下五者之一:①保存密文Retext的空间,②保存密文Retext这个文件属性的空间,③数据库,④用于保存识别标志TextID的文件或空间,⑤用于保存随机长度Long和识别标志TextID这两者的文件或空间,
当本发明应用于云中的重要明文托管服务时,上面所述用户身份信息UserID,不仅包括终端用户或终端系统输入的终端用户身份信息End-UserID,还包括重要明文托管服务商的云给终端用户分配的托管方密钥,并且,加密重要明文VipT的过程中,重要明文托管服务商的云产生一个托管方密钥,使用终端用户的公钥加密托管方密钥后,将这个已加密的托管方密钥发送给终端用户计算机,终端用户计算机利用私钥对收到的密文解密,以得到托管方密钥,然后使用托管方密钥参与对重要明文VipT及其密文的加密,加密完成后,终端用户计算机将密文Retext发送给重要明文托管服务商的云进行保存,解密密文Retext时,终端用户输入终端用户身份信息End-UserID后,终端用户计算机利用重要明文托管服务商的云公钥加密终端用户身份信息End-UserID,并将已加密的终端用户身份信息End-UserID发送给重要明文托管服务商的云,并发出请求解密密文Retext的信息,云验证请求信息后,利用私钥对收到的密文解密,以得到终端用户身份信息End-UserID,云提取并解密已加密的托管方密钥,以得到托管方密钥,然后,云利用托管方密钥和终端用户身份信息End-UserID,采用穷举法解密密文Retext,以得到重要明文VipT,云利用终端用户的公钥加密重要明文VipT,并将已加密的重要明文VipT发送给终端用户,终端用户用私钥对已加密的重要明文VipT解密,以得到重要明文VipT,当然解密密文Retext时,也可在重要明文托管服务商的云验证终端用户提交的请求发送密文Retext信息正确后,云将密文Retext和托管方密钥发送给终端用户计算机,由终端用户在自己的计算机上输入终端用户身份信息End-UserID,利用终端用户身份信息End-UserID和托管方密钥对密文Retext解密,以得到重要明文VipT。另外,解密密文Retext时,还可由终端用户选择在第三方计算机上完成解密。在终端用户将密文Retext发送给重要明文托管服务商的云时,可以用云公钥再次对密文Retext加密然后发送,也可不用云公钥加密直接发送,在重要明文托管服务商的云将密文Retext发送给终端用户时,可以用终端用户公钥再次对密文Retext加密然后发送,也可不用终端用户公钥加密直接发送。
本发明还可具有一些其他的特征如:①用户在带命令按钮的图形交互界面上,输入用户身份信息UserID和加密强度,②验证用户的合法性,只有通过验证的用户才能完成对重要明文VipT的加密。
为便于说明,下面将采用本发明来备份关键密码、证书的文件保密系统(包括加密系统和解密系统)简称为FKSS;采用本发明来备份和恢复的私钥KeyText就是利用本发明中加密方法来保护的重要明文;将私钥KeyText用本发明中的加密方法加密后生成私钥KeyText的经加密的备份称为ReCome(在生成ReCome后,FKSS中仍保留私钥KeyText);将除私钥KeyText以外的等待FKSS加密的文件或信息称为明文MessFile;将明文MessFile被FKSS加密后生成的密文称为BeMF。FKSS加密明文MessFile时,若采用对称加密算法,则用私钥KeyText加密明文MessFile,若采用非对称加密算法,用与私钥KeyText配对的公钥加密明文MessFile,由于对明文MessFile加密并非本发明的重点,因此后面的实施例中在涉及“FKSS加密明文MessFile得到密文BeMF”这步时,不提用何种密钥加密。为了快速识别,FKSS给私钥KeyText产生一个识别标志KeyID,备份私钥KeyText生成ReCome时FKSS将KeyID备份到用于保存密文的相关空间作为ReCome的识别标志,加密明文MessFile时FKSS从即将用于保存密文的相关空间读取备份的KeyID,并根据该KeyID与当前用户的KeyID是否一致,来判断当前用户的私钥KeyText是否已有备份ReCome。通常,FKSS备份KeyID时采用复制的方式进行,当然也可采用某种算法保存KeyID的加密副本。本文推荐KeyID由FKSS的版本号、私钥KeyText的修改时间和随机数据这三者共同组成,当然不排除KeyID由其他数据构成。
本发明第一个实施例,其加密流程如下:
【A】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,
【B】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则结束;若没找到,则执行【C】,
【C】输入加密强度和用户身份信息UserID,根据随机密钥的长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的长度Long,产生长度为Long的随机密钥Random,
【D】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序产生的序号代码重排文本UR中各代码的位置,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【E】利用私钥KeyText与密码识别信息PassID派生一个文本KP,
【F】利用排序产生的序号代码重排文本KP中各代码的位置,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【G】将随机密钥的长度Long和私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【H】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间中,结束。
参见图2,本发明第二个实施例,其加密流程如下:
【A】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【B】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【C】,
【B】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【H】;若没找到,则执行【C】,
【C】输入加密强度和用户身份信息UserID,根据随机密钥的长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的长度Long,产生长度为Long的随机密钥Random,
【D】利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序产生的序号代码重排文本UR中各代码的位置,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【E】利用私钥KeyText与密码识别信息PassID派生一个文本KP,
【F】利用排序产生的序号代码重排文本KP中各代码的位置,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【G】将随机密钥的长度Long和私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【H】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间中,
【I】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,结束。
参见图3,本发明第三个实施例,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【5】,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【4】;若没找到,则执行【5】,
【4】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束本进程,
【5】增加一个加密备份私钥KeyText的进程PKey,进程PKey执行【6】,原进程执行【4】,
【6】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【7】检测用户命令,如果用户输入的命令是确认,则执行【8】,如果用户输入的命令是退出,则结束本进程,
【8】进程PKey判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【9】,若没有输入,则从系统提取用户身份信息UserID,然后执行【10】,
【9】进程PKey判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【10】,若无效,则向【6】中要显示的图形界面发送出错提示信息,并执行【6】,
【10】进程PKey将384字节的随机数据复制到数列ID的前384字节上,进程PKey产生长度为384字节的随机数列P,利用私钥KeyText产生具有384个整数的数列IS,将数列IS按照从小到大的顺序排列,并将数列IS中的数据在排序后的位置序号记录到由ir[0],ir[1],ir[2],ir[3],ir[4],...,ir[i],...构成的整数数列IR中。用一个循环计算
d[i]=d[i]^p[ir[i]] /*...0≤i<384...*/
/*...这里对随机数据进行处理,是为了破坏伪随机的周期性,以便后面将这些数据用作随机密钥,其中ir[i]表示数列IS中原位置序号为i的整数在排序后,被放在序号为ir[i]的位置,d[i]、p[i]分别表示数列ID、数列P中字节序号为i的数据,本文用“^”、“/”、“%”、分别表示:异或、整除、取模......*/
【11】从数列ID中字节位置序号为383的位置开始,向前将用户身份信息UserID覆盖到数列ID中,并将数列ID的前128个字节信息作为一个大整数x,用一个循环计算(x/K[i])%256并将计算结果添加在数列ID后面,
/*......添加后,数列ID已有512字节的数据,K[i]为大于65536的质数,0≤i<128,这是因为后面要采用排序所产生的位置序号代码来加密,用这种加密方法处理密码识别信息时,可能存在错误通过比对的情况,为了防止这种情况的出现,通过计算(x/K[i])%256并将结果保存在数列ID后面,记录大整数x的一些特征,以便在通过对用户身份信息UserID和随机密钥Randomr的验证后,用大整数x的一些特征来进一步验证,以保证密钥验证的可靠性。.........*/
根据随机密钥的长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的长度Long,在数列ID中从用户身份信息UserID之前的位置开始,向前读取Long位的数据作为随机密钥Random,
/*...这里要求用户身份信息UserID和随机密钥Random总长度不超过384×8比特,如果超过,要调整数列ID的长度...*/
【12】进程PKey从数列ID中序号为128的字节开始,向后复制128个字节到数列P中,将数列P复制到数列S,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,计算s[i]=p[r[i]]^r[i]
/*...利用排序产生的序号代码重排代码位置,并作异或运算(0≤i<128)......*/
用一个循环,计算
d[2×i]=d[2×i]^s[2×i] /*...0≤i<64...*/
d[2×i+1]=((d[2×i+1]+s[2×i+1])%256) /*...0≤i<64...*/
/*......即用数列S中数据加密数列ID首部的数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据,......*/
【13】进程PKey将数列S复制到数列P,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中。
/*...其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,计算s[i]=p[r[i]]^r[i] /*...(0≤i<128)...*/
用一个循环,计算
d[2×i]=d[2×i]^s[2×i-256] /*...128≤i<192...*/
d[2×i+1]=(d[2×i+1]-s[2×i-255]+256)%256 /*...128≤i<192...*/
/*......即用数列S中数据加密数列ID中后部的数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据,......*/
【14】进程PKey将数列ID的最后128个字节信息复制到数列P中,将数列P复制数列S,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,
计算s[i]=p[r[i]]^r[i]
计算d[i]=d[i]^s[i]
/*...即用数列S中数据加密数列ID首部数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据,0≤i<128......*/
【15】进程PKey将数列S复制到数列P,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*......其中r[i]表示数列S中原位置序号为i的整数在排序后,被放在序号为r[i]的位置,...*/
用一个循环,
计算 s[i]=p[r[i]]^r[i] /*...0≤i<128...*/
计算 d[i]=d[i]^s[i-128] /*...128≤i<256...*/
/*...即用数列S中数据加密数列ID中前部的数据,s[i]、d[i]、p[i]分别表示数列S、数列ID、数列P中字节序号为i的数据...*/
【16】进程PKey将数列ID中字节序号为奇数的数据都向前移两位,并将移出的信息添加到前一个字节序号为奇数的数据尾部,将第二个字节数据移出的信息添加在最后一个字节数据的尾部,
将数列ID中字节序号为偶数的数据都向后移一位,并将移出的信息添加到后一个字节序号为偶数的数据的首部,将倒数第二个字节数据移出的信息添加在第一个字节数据的首部,
采用某种算法利用随机密钥Random和用户身份信息UserID派生一个由384字节构成的数列,并将该数列复制到数列P,按照从大到小的顺序排列数列P中各字节数据,并将数列P中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*......字节序号从0开始......*/
用一个循环,计算,
q[4×i+2]=d[i] /*...0≤i<128...*/
q[i+(i+1)/3]=d[r[i]+128]^(r[i]%256) /*...0≤i<384...*/
/*...............即用数列R的数据加密数列ID中部及后部的信息,并将结果保存在数列Q中,前述d[i]、q[i]分别表示数列ID、数列Q中字节序号为i的数据,数列r[i]表示数列R中序号为i的整数数据,...*/
将数列Q的前256字节数据按序复制到数列ID中字节序号为偶数的字节上,将数列Q中后256字节数据复制到数列ID中字节序号为奇数的字节上,
【17】进程PKey产生一个由516个字节构成的随机数列,并将该数列复制到数列S中,采用某种算法利用私钥KeyText产生一个由516字节构成的数列,并将该数列复制到数列P,按照从大到小的顺序排列数列P中各字节数据,并将数列P中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
用一个循环计算,
p[i]=s[r[i]]^r[i]
/*...s[i]、p[i]分别表示数列S、数列P中字节序号为i的数据,0≤i<516,这一步用于破坏伪随机的周期性,其中r[i]表示数列P中原位置序号为i的数据在排序后,被放在序号为r[i]的位置。......*/
【18】进程PKey将数列P前512个字节复制到数列S,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的数据在排序后,被放在序号为r[i]的位置。.........*/
用一个循环,将d[r[i]]复制到q[i] /*...0≤i<512...*/
将p[r[i]+4]复制到s[i] /*...0≤i<512...*/
/*...,q[i]、s[i]、d[i]、p[i]分别表示数列Q、数列S、数列ID、数列P中字节序号为i的数据,......*/
【19】进程PKey设置v=0,
用一个循环加密数列ID:
v=((i+5)(p[i/2])(i+5)+(i+4)(p[i/2+1])(i+4)+(i+3)(p[i/2+2])(i+3)
+......+(i/2+1)(p[i+4])(i/2+1))%(2563)+v/256 /*...0≤i<512...*/
d[i]=q[i]^(v%256) /*...0≤i<512...*/
/*............其中v为定义的变量,取变量v最后一个字节中信息给数列ID中的信息加密,d[i]、p[i]、q[i]分别表示数列ID、数列P、数列Q中字节序号为i的数据......*/
【20】进程PKey产生一个由2048个字节构成的随机数列,并将该数列复制到数列Q前2048个字节中,将私钥KeyText转变为一个字符串KTs,从数列Q的第2048字节开始向前覆盖,将字符串KTs复制在数列Q的前2048字节内,从数列Q的第2049字节开始,向后将数列ID中前512字节中数据添加在Q的尾部,
【21】进程PKey从数列ID第一个字节开始,将数列P复制到数列ID上,按照从大到小的顺序排列数列S中各字节数据,并将数列S中的字节数据在排序后的位置序号记录到由r[0],r[1],r[2],r[3],r[4],...,r[i],...构成的整数数列R中,
/*...其中r[i]表示数列S中原位置序号为i的数据在排序后,被放在序号为r[i]的位置。......*/
用一个循环计算:
d[516+i×5]=q[r[i]×5] /*...0≤i<512...*/
d[516+i×5+1]=q[r[i]×5+1] /*...0≤i<512...*/
d[516+i×5+2]=q[r[i]×5+2] /*...0≤i<512...*/
d[516+i×5+3]=q[r[i]×5+3] /*...0≤i<512...*/
d[516+i×5+4]=q[r[i]×5+4] /*...0≤i<512...*/
/*...d[i]、q[i]分别表示数列ID、数列Q中字节序号为i的数据, ......*/
【22】进程PKey将随机密钥Random在前、用户身份信息UserID在后,两者连接在一起,构成一个长为n位的二进制数列RU,将数列ID中前(n/4-11)字节中的奇数位的信息复制添加到数列RU的尾部,
从数列ID第(n/4-10)个字节开始,将数列ID中字节数据添加到数列RU的尾部,直到数列RU的长度为3080×8位,
设置v=0
用一个循环加密数列ID:
v=((i+5)(u[i/2])(i+5)+(i+4)(u[i/2+1])(i+4)+(i+3)(u[i/2+2])(i+3)
+...+(i/2+1)(u[i+4])(i/2+1)+i×(u[i%((n+7)/8)])(i%64))%(2563)
+v/256 /*...0≤i<3076...*/
d[i]=d[i]^(v%256) /*...0≤i<3076...*/
/*............d[i]、u[i]表示数列ID、数列RU中字节序号为i的数据,n>8×8,n为随机密钥Random和用户身份信息UserID的比特数之和,这里可能导致加密计算量过大,若如此,可将上式适当修改,......*/
【23】进程PKey将随机密钥Random的长度Long、私钥KeyText的识别标志KeyID插入数列ID中,然后将数列ID作为私钥KeyText的经加密的备份ReCome,保存在存储盘Disk中用于保存密文BeMF的相关存储空间,结束本进程。
参见图3,本发明第四个实施例,其加密流程如下:
【1】用户向FKSS请求对存储盘Disk中的文件加密,
【2】FKSS判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【5】,
【3】FKSS在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【4】;若没找到,则执行【5】,
【4】FKSS加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束本进程,
【5】FKSS增加一个进程,该进程和原进程两者之中的一个进程PKey执行【6】,另一个进程执行【4】,
【6】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用FKSS默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【7】检测用户命令。如果用户输入的命令是确认,则执行【8】,如果用户输入的命令是退出,则结束本进程,
【8】进程PKey判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【9】,若没有输入,则从系统提取用户身份信息UserID,然后执行【10】,
【9】进程PKey判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【10】,若无效,则向【6】中要显示的图形界面发送出错提示信息,并执行【6】,
【10】进程PKey根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【11】进程PKey利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序产生的序号代码重排文本UR中各代码的位置,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【12】进程PKey提取私钥KeyText,并利用提取到的私钥KeyText与密码识别信息PassID派生一个文本KP,
【13】进程PKey利用排序产生的序号代码重排文本KP中各代码的位置,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【14】进程PKey将随机密钥Random的随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【15】进程PKey将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束本进程。
参见图4-A和图4-B,本发明第四个实施例,其解密流程如下:
【1】用户向FKSS请求对存储盘Disk中的密文BeMF解密,
【2】用当前用户的私钥KeyText解密密文BeMF,以得到明文MessFile,若解密成功,则解密结束;若解密失败或当前用户的私钥KeyText不存在,则执行下一步,
【3】在电脑各存储盘中,寻找与密文BeMF具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【7】;若没找到,则执行【4】,
/*......识别标志KeyID中的版本号可以不相同.........*/
【4】显示一个带命令按钮的图形交互界面,在该界面上提示电脑中找不到解密密文BeMF的私钥KeyText及其备份,提示选择退出解密或将私钥备份移动盘连接到电脑继续解密,
【5】检测移动盘变更情况和用户命令,如果检测到有刚连接的移动盘,则执行【6】,如果系统检测到用户输入退出命令,则结束,
【6】在刚连接的移动盘中,寻找与密文BeMF具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【7】;若没找到,则执行【4】,
【7】依据私钥KeyText的经加密的备份ReCome中的识别标志KeyID中的版本号,判断FKSS能否给私钥KeyText的经加密的备份ReCome解密,若能,则执行【8】,若不能,则提示用户FKSS版本陈旧不能解密,并启动更新程序或结束,
【8】调用相应的解密私钥KeyText的经加密的备份ReCome的程序(下面的步骤参见图4-B,针对本实施例加密中所产生的私钥KeyText的经加密的备份ReCome的解密程序步骤如下),
【9】定义随机密钥变量TryPass,从备份密文ReCome中,提取随机密钥Random的随机长度Long
【10】显示一个带命令按钮的图形交互界面,提供输入用户身份信息的编辑框,提示用户输入用户身份信息;
【11】检测用户命令,如果用户输入确认,则执行【12】,如果用户输入退出,则结束,
【12】判断用户是否输入用来解密私钥KeyText的经加密的备份ReCome的用户身份信息,若输入,则将输入的用户身份信息存放在字符串ID中,然后执行【13】,若没输入,则FKSS则从系统中提取当前用户的用户身份信息,并将该信息存放在字符串ID中,然后执行【13】,
【13】将TryPass归0(即将TryPass占用空间的内容都设为0),
【14】利用随着解密进程增加项数和调整幂次的多项式产生的流密码来解密私钥KeyText的经加密的备份ReCome,以释放文本KP,利用排序产生的序号代码,将文本KP中各代码的位置复原,
【15】从文本KP提取密码识别信息PassID,
【16】利用随着解密进程增加项数和调整幂次的多项式产生的流密码来解密密码识别信息PassID,以释放文本UR,利用排序产生的序号代码,将文本UR中各代码的位置复原,
【17】从文本UR提取用户身份信息UserID和随机密钥Random,
【18】将从文本UR提取的用户身份信息UserID与字符串ID进行比对,将从文本UR提取的随机密钥Random与程序枚举的随机密钥TryPass进行比对,若用户身份信息的比对和随机密钥的比对都一致,则执行【21】,否则执行【19】。
【19】将TryPass加1,
/*......这里通过特定的程序将TryPass的前Long位数据看作一个非负整数,并用加1这种算法使TryPass更新,从而列出一个新的随机密钥。本文假设TryPass的第一位为前端,且低位在前高位在后。这个穷举循环包括【14】至【20】这七步。当然使TryPass更新的方法多种多样的,例如将TryPass减1等等............*/
【20】判断TryPass的第Long+1位是否为1,若是,则向【10】中要显示的图形界面发送用户身份信息错误的消息,并执行【10】;若不是,则执行【14】,
【21】从文本KP提取私钥KeyText,并用该私钥KeyText解密密文BeMF,以得到明文MessFile,解密结束。
参见图5,本发明第五个实施例,其加密流程如下:
【1】用户向FKSS请求对存储盘Disk中的文件加密,
【2】FKSS加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,
【3】FKSS在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则结束;若没找到,则执行【4】,
【4】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用FKSS默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【5】检测用户命令。如果用户输入的命令是确认,则执行【6】,如果用户输入的命令是退出,则结束,
【6】FKSS判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【7】;若没有输入,则从系统提取用户身份信息UserID,然后执行【8】,
【7】FKSS判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【8】,若无效,则向【4】中要显示的图形界面发送出错提示信息,并执行【4】,
【8】FKSS根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【9】FKSS利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【10】FKSS提取私钥KeyText,并将提取到的私钥KeyText与密码识别信息PassID派生一个文本KP,
【11】FKSS利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【12】FKSS将随机密钥Random的随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【13】FKSS将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束。
参见图6,本发明第六个实施例,其加密流程如下:
【1】用户向FKSS请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【4】,
【3】FKSS在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【14】;若没找到,则执行【4】,
【4】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用FKSS默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【5】检测用户命令。如果用户输入的命令是确认,则执行【6】,如果用户输入的命令是退出,则执行【14】,
【6】FKSS判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【7】,若没有输入,则从系统提取用户身份信息UserID,然后执行【8】,
【7】FKSS判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【8】,若无效,则向【4】中要显示的图形界面发送出错提示信息,并执行【4】,
【8】FKSS根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【9】FKSS利用用户身份信息UserID和随机密钥Random派生一个文本UR,利用排序所产生的序号代码加密的算法加密文本UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【10】FKSS提取私钥KeyText,并利用提取到的私钥KeyText与密码识别信息PassID派生一个文本KP,
【11】FKSS利用排序所产生的序号代码加密的算法加密文本KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密文本KP,以生成私钥KeyText的经加密的备份ReCome,
【12】FKSS将随机密钥Random的随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【13】FKSS将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,
【14】FKSS加密明文MessFile,以得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束。
在上述各实施例中ReCome里被本发明中的加密方法加密生成的信息,在正常情况下不需要解密,只有在FKSS中现有的私钥KeyText不能解密BeMF时才需要解密,用于挽救被加密的数据。实际上ReCome需要全部解密使用的频率很低,因此我们可以通过调整随机长度,使FKSS在用户身份信息正确的情况下,将ReCome全部解密的平均计算量相对加密时的计算量放大很多倍。当然FKSS在设置随机长度时,可以加密机器的速度为依据,在用户身份信息正确的情况下,将ReCome全部解密的平均解密时间设为1分钟、1小时、1天、1周甚至更长,当然不排除使用其他设置方式。
可以以多种方法来实现本发明的实施例,包括写在计算机可读记录介质上的计算机可读代码。计算机可读记录介质可以是任意类型的记录设备,在其中数据以计算机可读形式存储。计算机可读记录介质包括、但不局限于ROM、RAM、CD-ROM、磁带、软盘、硬盘、移动存储盘、光数据存储、和载波(例如,通过因特网的数据传输)。计算机可读记录介质可以分布在多个连接到网络的计算机系统上,以使得计算机可读代码能够以分布方式写到其上以及从其上执行。这种加密方法不仅可应用于单个计算机系统中,也可应用到重要明文托管服务商的云系统中。另外,实现本发明的实施例所需要的功能程序、代码或代码段可以被本领域的普通技术人员解释。
尽管已经参照本发明的给定优选实施例示出并描述了本发明,但是本领域的技术人员应当理解,在不脱离如所附权利要求所限定的本发明的精神和范围的条件下,可以在这里进行形式和细节上的各种变化。
产业上的可利用性
根据本发明的加密方法可以自动或根据需要调整加密强度。根据本发明的加密方法可用于加密私钥、证书等重要文件信息的备份生成高度安全的密文。根据本发明的加密方法生成的密文可以对付各种高性能的破解机器。
Claims (22)
1.一种加密方法,其加密流程如下:
【I】输入用户身份信息UserID和加密强度,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机长度Long,产生随机长度为Long的随机密钥Random,
【II】采用预定算法,利用用户身份信息UserID和随机密钥Random,加密要保密的重要明文Text以得到密文ReText,其中,
所述输入用户身份信息UserID和加密强度,是指下列两者之一:①用户输入用户身份信息UserID,并设置加密强度,②用户输入用户身份信息UserID,由软件系统自动设置加密强度,
所述预定解密速度取决于预定的解密机器和预定的解密程序这两者的速度,
所述随机长度Long是由下列之一或多个构成:随机密钥中单元的个数、随机密钥中每个单元的比特数、随机密钥中单元的变动范围,
所述随机密钥Random既是对重要明文Text加密的密钥的一部分,又是对密文Retext解密的密钥的一部分,
所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述利用用户身份信息UserID和随机密钥Random,是指除了利用包含用户身份信息UserID和随机密钥Random这两者本身外,还包括利用下列信息中的一种或多种:由用户身份信息UserID衍生的信息、由随机密钥Random衍生的信息、随机数、由随机数衍生的信息、重要明文Text、由重要明文Text衍生的信息、由用户身份信息UserID、随机密钥Random、随机数和重要明文Text这四者之中两者共同衍生的信息、由用户身份信息UserID、随机密钥Random、随机数和重要明文Text这四者之中三者共同衍生的信息,由用户身份信息UserID、随机密钥Random、随机数和重要明文Text这四者共同衍生的信息,
所述重要明文Text是指下列信息中的一种或多种:密钥、证书、个人隐私、商业机密、企事业单位机密、计算机安全信息,存在于计算机中需要加密保护的信息片段、文件、文件夹,
所述加密要保密的重要明文Text以得到密文Retext,就是对重要明文Text、用户身份信息UserID和随机密钥Random这三者加密的过程,
所述密文Retext,不仅包含对重要明文Text加密后生成的信息,也包含对用户身份信息UserID和随机密钥Random加密后生成的信息即密码识别信息PassID,并且无论如何编写解密程序,解密时在输入用户身份信息UserID的条件下,都需要用穷举法或采用密码分析和穷举攻击相结合的方法寻找随机密钥Random,才能确保正确解密密文ReText,以释放重要明文Text,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对密文Retext进行正确解密,以释放重要明文Text,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从重要明文Text的密文ReText中解出重要明文Text的速度比解密密码识别信息PassID的速度快许多倍,并且满足如果不解密密码识别信息PassID直接攻击密文ReText中的其他部分以得到重要明文Text的计算量不小于攻击密码识别信息PassID的计算量,因此,所述加密强度也等于对重要明文Text进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间、加密强度的等级标注。
2.根据权利要求1所述加密方法,其中,
所述输入用户身份信息UserID和加密强度,是指按照以下八种顺序之一输入:①先输入用户身份信息UserID,后输入加密强度,②先输入加密强度,并在产生随机密钥Random之前,输入用户身份信息UserID,③先输入加密强度,并在产生随机密钥Random之后,输入用户身份信息UserID,④在输入用户身份信息UserID的过程中,输入加密强度,并在产生随机密钥Random之前,完成输入用户身份信息UserID,⑤在输入用户身份信息UserID的过程中,输入加密强度,并在产生随机密钥Random之后,完成输入用户身份信息UserID,⑥由用户决定用户身份信息UserID和加密强度这两者的先后输入顺序,⑦用两个进程输入用户身份信息UserID,并用其中一个进程输入加密强度,⑧用两个线程输入用户身份信息UserID,并用其中一个线程输入加密强度,
所述随机长度Long,以密文或明文的形式保存在用于保存密文Retext的相关存储空间,并且所述用于保存密文Retext的相关存储空间是指以下五者之一:①保存密文Retext的空间,②保存密文Retext这个文件属性的空间,③数据库,④用于保存随机长度Long的文件或空间,⑤用于保存随机长度Long和识别标志TextID这两者的文件或空间,
所述随机密钥Random是由下列其中一种或多种信息构成:系统产生的随机信息、用户操作所产生的随机信息,系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据用某种算法干预后得到的信息,并且所述系统是指密码系统或操作系统,
所述对重要明文Text、用户身份信息UserID和随机密钥Random这三者加密的过程,是指下列14种过程之一:(1)对重要明文Text、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,然后将密文Re1、密文Re2、密文Re3组合为一个密文Retext,(2)对重要明文Text、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,将密文Re1、密文Re2和密文Re3这三者之中的两者组合为一个代码串S,并对代码串S加密,以得到密文Re4,之后将密文Re1、密文Re2和密文Re3这三者之中没有参与构成代码串S的这个密文和密文Re4组合为一个密文Retext,(3)对重要明文Text、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,将密文Re1、密文Re2和密文Re3这三者之中的两者组合为一个代码串S,并对代码串S加密,以得到密文Re4,之后将密文Re1、密文Re2和密文Re3这三者之中没有参与构成代码串S的这个密文和密文Re4组合为一个代码串ReS,接着再对代码串ReS加密,以得到密文Retext,(4)对重要明文Text、用户身份信息UserID和随机密钥Random分别进行加密,以得到这三者对应的密文Re1、密文Re2、密文Re3,然后将密文Re1、密文Re2、密文Re3组合为一个代码串S,并对代码串S加密,以得到密文Retext,(5)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者不参与生成密文Re1的另外两者组合为一个代码串S,对代码串S加密,以得到密文Re2,然后将密文Re1、密文Re2组合为一个密文,以得到密文Retext,(6)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者不参与生成密文Re1的另外两者组合为一个代码串S,对代码串S加密,以得到密文Re2,然后将密文Re1、密文Re2组合为一个代码串ReS,再对代码串ReS加密,以得到密文Retext,(7)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者之中尚没被加密的另外两者之一和密文Re1组合为一个代码串S,对代码串S加密,以得到密文Re2,然后将密文Re2与前述三者(即重要明文Text、用户身份信息UserID和随机密钥Random这三者)之中尚未被加密的这一者组合为一个代码串ReS,再对代码串ReS加密,以得到密文Retext,(8)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,将前述三者之中不参与生成密文Re1的另外两者之一和密文Re1组合为一个代码串S,对代码串S加密,以得到密文Re2,并将前述三者(即重要明文Text、用户身份信息UserID和随机密钥Random这三者)之中不参与生成密文Re2的这一者加密,以得到密文Re3,将密文Re2、密文Re3组合为密文Retext,(9)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,将前述三者之中不参与生成密文Re1的另外两者之一和密文Re1组合为一个代码串S,对代码串S加密,以得到密文Re2,并将前述三者(即重要明文Text、用户身份信息UserID和随机密钥Random这三者)之中不参与生成密文Re2的这一者加密,以得到密文Re3,将密文Re2、密文Re3组合为代码串ReS,再对代码串ReS加密,以得到密文Retext,(10)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之一进行加密,以得到密文Re1,并将前述三者之中尚没被加密的另外两者和密文Re1组合为一个代码串S,对代码串S加密,以得到密文Retext,(11)先将重要明文Text、用户身份信息UserID和随机密钥Random这三者之中两者组合为一个代码串S,接着对代码串S加密以生成密文Re1,将前述三者之中没有参与构成代码串S的这个数据和密文Re1组合为一个代码串ReS,再对代码串ReS加密,以得到密文Retext,(12)先将重要明文Text、用户身份信息UserID和随机密钥Random这三者组合为一个代码串S,然后对代码串S加密,以得到密文Retext,(13)对重要明文Text、用户身份信息UserID和随机密钥Random这三者之中的两者分别进行加密,以得到这三者对应的密文Re1、密文Re2,将前述三者之中尚没被加密的另外一者和密文Re1、密文Re2组合为一个代码串S,对代码串S加密,以得到密文Retext,(14)将重要明文Text、用户身份信息UserID和随机密钥Random这三者中的代码相互插入,并分割为多个(含两个)新的代码串S1、代码串S2、......,分别用不同的加密算法加密代码串S1、代码串S2、......,以得到密文Re1、密文Re2、......,将密文Re1、密文Re2、......组合为一个代码串SS,再对代码串SS加密,以得到密文Retext。
3.根据权利要求2所述加密方法,其特征是:所述用户身份信息UserID,不仅包括终端用户或终端系统输入的终端用户身份信息End-UserID,还包括重要明文托管服务商的云给终端用户分配的托管方密钥,并且,
在完成对重要明文Text加密之前,重要明文托管服务商的云产生一个托管方密钥,使用终端用户的公钥加密托管方密钥后,将这个已加密的托管方密钥发送给终端用户计算机,终端用户计算机利用私钥对收到的密文解密,以得到托管方密钥,然后使用托管方密钥参与对重要明文Text及其密文的加密,加密完成后,终端用户计算机将密文Retext发送给重要明文托管服务商的云进行保存。
4.根据权利要求3所述加密方法,其特征是:在终端用户计算机对重要明文Text加密生成密文Retext后,再利用重要明文托管服务商的云公钥加密密文Retext,然后将已被云公钥加密的密文Retext发送给重要明文托管服务商的云。
5.根据权利要求1或2或3或4所述加密方法,其特征是:将重要明文Text的识别标志TextID备份在用于保存密文Retext的相关存储空间中,并且所述将重要明文Text的识别标志TextID备份在用于保存密文Retext的相关存储空间,是指将重要明文Text的识别标志TextID备份在以下五者之一:①保存密文Retext的空间,②保存密文Retext这个文件属性的空间,③数据库,④用于保存识别标志TextID的文件或空间,⑤用于保存随机长度Long和识别标志TextID这两者的文件或空间,
所述识别标志TextID是由下列信息中的一种或多种构成:随机数据、版本号、重要明文Text的建立和修改时间。
6.根据权利要求1或2或3或4,其特征是:验证用户的合法性,只有通过验证的用户才能完成对重要明文Text的加密。
7.根据权利要求5所述加密方法,其特征是:用户在带命令按钮的图形交互界面上,输入用户身份信息UserID和加密强度。
8.一种加密方法,其加密流程如下:
【I】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【II】利用用户身份信息UserID和随机密钥Random派生一个代码串UR,利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【III】利用私钥KeyText与密码识别信息PassID派生一个代码串KP,
【IV】利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,以生成私钥KeyText的经加密的备份ReCome,
【V】将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中。
9.一种加密方法,其加密流程如下:
【A】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,
【B】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则结束;若没找到,则执行【C】,
【C】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【D】利用用户身份信息UserID和随机密钥Random派生一个代码串UR,利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【E】利用私钥KeyText与密码识别信息PassID派生一个代码串KP,
【F】利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,以生成私钥KeyText的经加密的备份ReCome,
【G】将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【H】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束。
10.一种加密方法,其加密流程如下:
【A】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【B】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【C】,
【B】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【I】;若没找到,则执行【C】,
【C】输入加密强度和用户身份信息UserID,根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,产生随机长度为Long的随机密钥Random,
【D】利用用户身份信息UserID和随机密钥Random派生一个代码串UR,利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【E】利用私钥KeyText与密码识别信息PassID派生一个代码串KP,
【F】利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,以生成私钥KeyText的经加密的备份ReCome,
【G】将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【H】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,
【I】加密明文MessFile以得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,结束。
11.根据权利要求6所述加密方法,其特征是:用户在带命令按钮的图形交互界面上,输入用户身份信息UserID和加密强度。
12.一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【5】,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【4】;若没找到,则执行【5】,
【4】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束本进程,
【5】增加一个进程,该进程和原进程两者之中的一个进程PKey执行【6】,另一个进程执行【4】,
【6】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【7】检测用户命令。如果用户输入的命令是确认,则执行【8】,如果用户输入的命令是退出,则结束本进程,
【8】进程PKey判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【9】,若没有输入,则从系统提取用户身份信息UserID,然后执行【10】,
【9】进程PKey判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【10】,若无效,则向【6】中要显示的图形界面发送出错提示信息,并执行【6】,
【10】进程PKey根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【11】进程PKey利用用户身份信息UserID和随机密钥Random派生一个代码串UR,利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【12】进程PKey提取私钥KeyText,并利用提取到的私钥KeyText与密码识别信息PassID派生一个代码串KP,
【13】进程PKey利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,以生成私钥KeyText的经加密的备份ReCome,
【14】进程PKey将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【15】进程PKey将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束本进程。
13.一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】加密明文MessFile得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则结束;若没找到,则执行【4】,
【4】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【5】检测用户命令。如果用户输入的命令是确认,则执行【6】,如果用户输入的命令是退出,则结束,
【6】判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【7】;若没有输入,则从系统提取用户身份信息UserID,然后执行【8】,
【7】判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【8】,若无效,则向【4】中要显示的图形界面发送出错提示信息,并执行【4】,
【8】根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【9】利用用户身份信息UserID和随机密钥Random派生一个代码串UR,利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【10】提取私钥KeyText,并将提取到的私钥KeyText与密码识别信息PassID派生一个代码串KP,
【11】利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,以生成私钥KeyText的经加密的备份ReCome,
【12】将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【13】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,结束。
14.一种加密方法,其加密流程如下:
【1】用户请求对存储盘Disk中的文件加密,
【2】判断私钥KeyText是否存在,若存在,则提取私钥KeyText的识别标志KeyID,然后执行【3】;若不存在,则产生私钥KeyText及其识别标志KeyID并保存,然后执行【4】,
【3】在用于保存密文BeMF的相关存储空间,寻找与当前用户私钥KeyText具有相互吻合识别标志KeyID的私钥KeyText的经加密的备份ReCome,若找到,则执行【14】;若没找到,则执行【4】,
【4】进程PKey在一个带命令按钮的图形交互界面上,提供选择加密强度类型的选项,提供输入加密强度数值的编辑框及调整该框内数值的上下箭头或其它控件,提供输入用户身份信息UserID的编辑框,提示用户输入加密强度或不输入采用默认的加密强度,提示用户输入加密私钥KeyText备份的用户身份信息UserID或不输入采用系统中当前用户的用户身份信息,
【5】检测用户命令。如果用户输入的命令是确认,则执行【6】,如果用户输入的命令是退出,则执行【14】,
【6】判断用户是否输入用来加密私钥KeyText备份的用户身份信息UserID,若输入,则执行【7】,若没有输入,则从系统提取用户身份信息UserID,然后执行【8】,
【7】判断用户输入的用户身份信息UserID是否有效,若有效则接收用户输入的用户身份信息UserID,然后执行【8】,若无效,则向【4】中要显示的图形界面发送出错提示信息,并执行【4】,
【8】根据随机密钥的随机长度、加密强度和预定解密速度三者之间的关系,计算随机密钥的随机长度Long,并产生随机长度为Long的随机密钥Random,
【9】利用用户身份信息UserID和随机密钥Random派生一个代码串UR,利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,以生成用于在解密时识别用户身份信息UserID和随机密钥Random的密码识别信息PassID,
【10】提取私钥KeyText,并利用提取到的私钥KeyText与密码识别信息PassID派生一个代码串KP,
【11】利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,以生成私钥KeyText的经加密的备份ReCome,
【12】将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,
【13】将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,
【14】加密明文MessFile,以得到密文BeMF,并将私钥KeyText的识别标志KeyID插入密文BeMF中,然后结束。
15.根据权利要求8或9或10或12或13或14所述的加密方法,其中,
所述备份ReCome,其特征是任何针对备份ReCome的解密程序都需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥,不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比对,还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比对,只有在前述两种密钥的比对都一致后,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从私钥KeyText的经加密的备份ReCome中解出私钥KeyText的计算量相对总计算量而言往往非常小。因此,所述加密强度也等于对私钥KeyText进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间,
所述随机密钥是由下列其中一种或多种信息构成:系统产生的随机信息、系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据用某种算法干预后得到的信息,并且所述系统是指密码系统或操作系统。
所述插入是指将一个代码串作为一个单位或拆分为多个单位添加到另一个代码串中某一个或多个位置构成一个新代码串的动作,并且插入位置不局限于代码串里的位置,也可以添加在代码串的首尾两端。
16.根据权利要求9或10或12或13或14所述的加密方法,其特征是:其中,
所述利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,被修改为:采用预定算法加密代码串UR,并且所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,被修改为:采用预定算法加密代码串KP,并且所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述将私钥KeyText的识别标志KeyID插入密文BeMF中,被修改为:将私钥KeyText的识别标志KeyID备份在用于保存密文BeMF的相关存储空间,并且所述将私钥KeyText的识别标志KeyID备份在用于保存密文BeMF的相关存储空间,是指将私钥KeyText的识别标志KeyID备份在以下四者之一:①保存密文BeMF的空间,②保存密文BeMF文件属性的空间,③数据库,④用于保存识别标志KeyID的文件或空间,
所述将私钥KeyText的经加密的备份ReCome保存在用于保存密文BeMF的相关存储空间,是指将私钥KeyText的经加密的备份ReCome保存在以下四者之一:①保存密文BeMF的空间,②保存密文BeMF文件属性的空间,③数据库,④用于保存备份ReCome的文件或空间,
所述将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,被修改为:将随机长度Long保存在用于保存备份ReCome的相关存储空间,将私钥KeyText的识别标志KeyID备份在用于保存备份ReCome的相关存储空间,并且所述将随机长度Long保存在用于保存备份ReCome的相关存储空间,是指将随机长度Long保存在以下五者之一:①保存备份ReCome的空间,②保存备份ReCome这个文件属性的空间,③数据库,④用于保存随机长度Long的文件或空间,⑤用于保存随机长度Long和识别标志KeyID这两者的文件或空间;所述将私钥KeyText的识别标志KeyID备份在用于保存备份ReCome的相关存储空间,是指将私钥KeyText的识别标志KeyID备份在以下五者之一:①保存备份ReCome的空间,②保存备份ReCome这个文件属性的空间,③数据库,④用于保存识别标志KeyID的文件或空间,⑤用于保存随机长度Long和识别标志KeyID这两者的文件或空间,
所述备份ReCome,其特征是任何针对备份ReCome的解密程序都需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥,不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比对,还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比对,只有在前述两种密钥的比对都一致后,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从私钥KeyText的经加密的备份ReCome中解出私钥KeyText的计算量相对总计算量而言往往非常小。因此,所述加密强度也等于对私钥KeyText进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间,
所述随机密钥是由下列其中一种或多种信息构成:系统产生的随机信息、系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据用某种算法干预后得到的信息,并且所述系统是指密码系统或操作系统。
17.根据权利要求8所述的加密方法,其特征是:其中,
所述利用排序所产生的序号代码加密的算法加密代码串UR,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串UR,被修改为:采用预定算法加密代码串UR,并且所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述利用排序所产生的序号代码加密的算法加密代码串KP,利用随着加密进程增加项数和调整幂次的多项式产生的流密码来加密代码串KP,被修改为:采用预定算法加密代码串KP,并且所述预定算法由下列加密算法中的一种或多种构成:替代、置换、混淆、扩散、迭代、组合拆分法、数学关系加密、变位加密、逻辑加密、算术加密、分组加密、流密码加密、线性加密、非线性加密、对称加密、非对称加密、统计数据加密、伪随机加密算法、利用随着加密进程增加项数和调整幂次的多项式产生的流密码加密的算法、利用排序所产生的序号代码加密的算法,
所述将随机长度Long、私钥KeyText的识别标志KeyID插入私钥KeyText的经加密的备份ReCome中,被修改为:将随机长度Long保存在用于保存备份ReCome的相关存储空间,将私钥KeyText的识别标志KeyID备份在用于保存备份ReCome的相关存储空间,并且所述将随机长度Long保存在用于保存备份ReCome的相关存储空间,是指将随机长度Long保存在以下五者之一:①保存备份ReCome的空间,②保存备份ReCome这个文件属性的空间,③数据库,④用于保存随机长度Long的文件或空间,⑤用于保存随机长度Long和识别标志KeyID这两者的文件或空间;所述将私钥KeyText的识别标志KeyID备份在用于保存备份ReCome的相关存储空间,是指将私钥KeyText的识别标志KeyID备份在以下五者之一:①保存备份ReCome的空间,②保存备份ReCome这个文件属性的空间,③数据库,④用于保存识别标志KeyID的文件或空间,⑤用于保存随机长度Long和识别标志KeyID这两者的文件或空间,
所述备份ReCome,其特征是任何针对备份ReCome的解密程序都需要采用穷举法或采用穷举法与密码分析技术相结合的方法寻找随机密钥,不仅需要对解密时输入的用户身份信息与解密过程中释放的用户身份信息进行比对,还需要对穷举循环枚举的随机密钥与解密过程中释放的随机密钥进行比对,只有在前述两种密钥的比对都一致后,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,
所述加密强度取决于加密用户身份信息UserID和随机密钥Random后所生成的密码识别信息PassID,解密时,只有先完成对密码识别信息PassID的解密,才能保证对私钥KeyText的经加密的备份ReCome进行正确解密,以释放私钥KeyText,并且解密时,在确认用户身份信息UserID和随机密钥Random都正确后,从私钥KeyText的经加密的备份ReCome中解出私钥KeyText的计算量相对总计算量而言往往非常小。因此,所述加密强度也等于对私钥KeyText进行加密的加密强度并且是下列其中之一:随机长度、解密的平均计算量、解密的最大计算量、解密的平均计算量相对加密时计算量的放大倍数、解密的最大计算量相对加密时计算量的放大倍数、解密的平均计算量相对单次解密时计算量的放大倍数、解密的最大计算量相对单次解密时计算量的放大倍数、解密的平均尝试解密次数、解密的最多尝试解密次数、在预定速度机器上的平均解密时间、在预定速度机器上的最长解密时间,
所述随机密钥是由下列其中一种或多种信息构成:系统产生的随机信息、系统产生的伪随机信息、利用用户身份信息UserID对系统产生的伪随机数据用某种算法干预后得到的信息、利用内存或外存中数据对系统产生的伪随机数据用某种算法干预后得到的信息、利用时钟数对系统产生的伪随机数据用某种算法干预后得到的信息,并且所述系统是指密码系统或操作系统。
18.根据权利要求17所述加密方法,其特征是:验证用户的合法性,只有通过验证的用户才能完成对私钥KeyText的加密。
19.根据权利要求15所述加密方法,其特征是:验证用户的合法性,只有通过验证的用户才能完成对私钥KeyText的加密。
20.根据权利要求16所述加密方法,其特征是:验证用户的合法性,只有通过验证的用户才能完成对私钥KeyText的加密。
21.根据权利要求5所述加密方法,其特征是:验证用户的合法性,只有通过验证的用户才能完成对重要明文Text的加密。
22.根据权利要求1或2或3或4或21或8或9或10或17所述加密方法,其特征是:用户在带命令按钮的图形交互界面上,输入用户身份信息UserID和加密强度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110355321XA CN103095452A (zh) | 2011-11-01 | 2011-11-01 | 需要采用穷举法解密的随机加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110355321XA CN103095452A (zh) | 2011-11-01 | 2011-11-01 | 需要采用穷举法解密的随机加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103095452A true CN103095452A (zh) | 2013-05-08 |
Family
ID=48207617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110355321XA Pending CN103095452A (zh) | 2011-11-01 | 2011-11-01 | 需要采用穷举法解密的随机加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103095452A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103944713A (zh) * | 2014-03-31 | 2014-07-23 | 中国航天时代电子公司 | 一种基于优化枚举算法的二进制密码解码器解码方法 |
CN104205117A (zh) * | 2014-04-10 | 2014-12-10 | 华为技术有限公司 | 设备文件的加解密方法及装置 |
CN104217487A (zh) * | 2013-05-30 | 2014-12-17 | 刘海云 | 可验证的计算机排位方法 |
CN104284330A (zh) * | 2014-10-24 | 2015-01-14 | 北京邮电大学 | 一种基于不可靠无线信道的物理层加密技术 |
CN104579689A (zh) * | 2015-01-20 | 2015-04-29 | 中城智慧科技有限公司 | 一种软密钥系统及实现方法 |
CN105591737A (zh) * | 2016-01-27 | 2016-05-18 | 浪潮(北京)电子信息产业有限公司 | 一种数据加密方法、解密方法、传输方法及系统 |
CN107612691A (zh) * | 2017-11-07 | 2018-01-19 | 世纪龙信息网络有限责任公司 | 认证信息传输方法和装置以及用户信息认证系统 |
WO2018138724A1 (en) * | 2017-01-24 | 2018-08-02 | Six Degrees Space Ltd | Asymmetric content protection of large datastreams |
CN108418680A (zh) * | 2017-09-05 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种基于多方安全计算技术的区块链密钥恢复方法、介质 |
CN108616533A (zh) * | 2018-04-27 | 2018-10-02 | 正方软件股份有限公司 | 敏感数据加密方法及装置 |
CN109040108A (zh) * | 2018-08-31 | 2018-12-18 | 桂林电子科技大学 | 移动手机传感任务的隐私保护数据收集方案 |
CN110659508A (zh) * | 2019-08-16 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种基于卢卡斯数列的加解密方法、设备及可读介质 |
CN113538814A (zh) * | 2021-06-22 | 2021-10-22 | 华录智达科技股份有限公司 | 一种支持数字人民币支付的智能公交车车载终端 |
CN115713339A (zh) * | 2023-01-09 | 2023-02-24 | 量子科技长三角产业创新中心 | 一种数据量子计算管控方法、装置、设备及计算机介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090019537A1 (en) * | 2005-09-16 | 2009-01-15 | The Trustees Of Columbia University In The City Of New York | Systems and methods for inhibiting attacks with a network |
CN101488858A (zh) * | 2008-02-13 | 2009-07-22 | 刘海云 | 需要采用穷举法解密的随机加密方法 |
CN102013980A (zh) * | 2009-05-06 | 2011-04-13 | 刘海云 | 需要采用穷举法解密的随机加密方法 |
-
2011
- 2011-11-01 CN CN201110355321XA patent/CN103095452A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090019537A1 (en) * | 2005-09-16 | 2009-01-15 | The Trustees Of Columbia University In The City Of New York | Systems and methods for inhibiting attacks with a network |
CN101488858A (zh) * | 2008-02-13 | 2009-07-22 | 刘海云 | 需要采用穷举法解密的随机加密方法 |
CN101488848A (zh) * | 2008-02-13 | 2009-07-22 | 刘海云 | 生成密码识别信息的加密方法 |
CN102013980A (zh) * | 2009-05-06 | 2011-04-13 | 刘海云 | 需要采用穷举法解密的随机加密方法 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104217487A (zh) * | 2013-05-30 | 2014-12-17 | 刘海云 | 可验证的计算机排位方法 |
CN104217487B (zh) * | 2013-05-30 | 2019-03-01 | 佛山市大迈信息科技有限公司 | 可验证的计算机排位方法 |
CN103944713A (zh) * | 2014-03-31 | 2014-07-23 | 中国航天时代电子公司 | 一种基于优化枚举算法的二进制密码解码器解码方法 |
CN103944713B (zh) * | 2014-03-31 | 2017-10-13 | 中国航天时代电子公司 | 一种基于优化枚举算法的二进制密码解码器解码方法 |
CN104205117A (zh) * | 2014-04-10 | 2014-12-10 | 华为技术有限公司 | 设备文件的加解密方法及装置 |
WO2015154285A1 (zh) * | 2014-04-10 | 2015-10-15 | 华为技术有限公司 | 设备文件的加解密方法及装置 |
CN104205117B (zh) * | 2014-04-10 | 2017-04-26 | 华为技术有限公司 | 设备文件的加解密方法及装置 |
CN104284330A (zh) * | 2014-10-24 | 2015-01-14 | 北京邮电大学 | 一种基于不可靠无线信道的物理层加密技术 |
CN104579689A (zh) * | 2015-01-20 | 2015-04-29 | 中城智慧科技有限公司 | 一种软密钥系统及实现方法 |
CN104579689B (zh) * | 2015-01-20 | 2018-02-13 | 中城智慧科技有限公司 | 一种软密钥系统及实现方法 |
CN105591737A (zh) * | 2016-01-27 | 2016-05-18 | 浪潮(北京)电子信息产业有限公司 | 一种数据加密方法、解密方法、传输方法及系统 |
WO2018138724A1 (en) * | 2017-01-24 | 2018-08-02 | Six Degrees Space Ltd | Asymmetric content protection of large datastreams |
CN108418680A (zh) * | 2017-09-05 | 2018-08-17 | 矩阵元技术(深圳)有限公司 | 一种基于多方安全计算技术的区块链密钥恢复方法、介质 |
CN108418680B (zh) * | 2017-09-05 | 2021-12-07 | 矩阵元技术(深圳)有限公司 | 一种基于安全多方计算技术的区块链密钥恢复方法、介质 |
CN107612691A (zh) * | 2017-11-07 | 2018-01-19 | 世纪龙信息网络有限责任公司 | 认证信息传输方法和装置以及用户信息认证系统 |
CN108616533A (zh) * | 2018-04-27 | 2018-10-02 | 正方软件股份有限公司 | 敏感数据加密方法及装置 |
CN108616533B (zh) * | 2018-04-27 | 2021-02-19 | 正方软件股份有限公司 | 敏感数据加密方法及装置 |
CN109040108A (zh) * | 2018-08-31 | 2018-12-18 | 桂林电子科技大学 | 移动手机传感任务的隐私保护数据收集方案 |
CN109040108B (zh) * | 2018-08-31 | 2020-10-30 | 桂林电子科技大学 | 移动手机传感任务的隐私保护数据收集方法 |
CN110659508A (zh) * | 2019-08-16 | 2020-01-07 | 苏州浪潮智能科技有限公司 | 一种基于卢卡斯数列的加解密方法、设备及可读介质 |
CN110659508B (zh) * | 2019-08-16 | 2021-08-31 | 苏州浪潮智能科技有限公司 | 一种基于卢卡斯数列的加解密方法、设备及可读介质 |
CN113538814A (zh) * | 2021-06-22 | 2021-10-22 | 华录智达科技股份有限公司 | 一种支持数字人民币支付的智能公交车车载终端 |
CN115713339A (zh) * | 2023-01-09 | 2023-02-24 | 量子科技长三角产业创新中心 | 一种数据量子计算管控方法、装置、设备及计算机介质 |
CN115713339B (zh) * | 2023-01-09 | 2023-05-12 | 量子科技长三角产业创新中心 | 一种数据量子计算管控方法、装置、设备及计算机介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102013980A (zh) | 需要采用穷举法解密的随机加密方法 | |
CN103095452A (zh) | 需要采用穷举法解密的随机加密方法 | |
CN101488858B (zh) | 需要采用穷举法解密的随机加密方法 | |
CN100432889C (zh) | 提供断开鉴别的系统和方法 | |
EP2361462B1 (en) | Method for generating an encryption/decryption key | |
CN109543434B (zh) | 区块链信息加密方法、解密方法、存储方法及装置 | |
US8494154B2 (en) | Cryptographic ignition key system | |
CN110519046B (zh) | 基于一次性非对称密钥对和qkd的量子通信服务站密钥协商方法和系统 | |
CN106104562A (zh) | 机密数据安全储存和恢复系统及方法 | |
JP2004534333A (ja) | コンピュータネットワークにおける分散データ処理に関する統合された保護方法及びシステム | |
CN106130716A (zh) | 基于认证信息的密钥交换系统及方法 | |
CN103560892A (zh) | 密钥生成方法和密钥生成装置 | |
CN106778292B (zh) | 一种Word加密文档的快速还原方法 | |
JP2024511236A (ja) | コンピュータファイルのセキュリティ暗号化方法、復号化方法および読み取り可能な記憶媒体 | |
CN108768636A (zh) | 一种利用多方协同恢复私钥的方法 | |
TWI476629B (zh) | Data security and security systems and methods | |
CN112787996B (zh) | 一种密码设备管理方法及系统 | |
CN111711521B (zh) | 一种区块链账号私钥重置方法及系统 | |
Abo-Alian et al. | Auditing-as-a-service for cloud storage | |
CN100566239C (zh) | 多级智能密钥装置的密钥传递方法和系统 | |
TWI430643B (zh) | Secure key recovery system and method | |
CN115412236A (zh) | 一种密钥管理和密码计算的方法、加密方法及装置 | |
CN115204876A (zh) | 一种用于移动支付的量子安全u盾设备及方法 | |
CN112019335A (zh) | 一种基于sm2算法的多方协同加解密方法及装置、系统、介质 | |
CN110138547A (zh) | 基于非对称密钥池对和序列号的量子通信服务站密钥协商方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130508 |