本发明属于图像信息安全和数字图像信号处理交叉领域,涉及一种无载体试题伪装与恢复方法,特别涉及一种合法区间双认证全密钥依赖的无载体试题伪装和恢复方法。
背景技术:
当前伴随着深度学习的不断深入和人工智能的继续发展,基于大数据的机器学习以及量子计算机初现端倪,使得传统以图像音频为主要传输介质的多媒体信息安全的形势变得更为严峻。而与此同时,伴随着压缩技术的不断发展,也使得传统基于修改式嵌入的信息隐藏可供利用的冗余空间越来越小,而另一方面,基于机器学习的隐写分类器维数不断提高,甚至出现了34761维的空域富特征模型,导致传统信息隐藏的隐匿信息而不被发现的可能性越来越小,而所有这些也使得传统基于修改式嵌入的信息隐藏技术发展陷入了瓶颈。
如何有效地进行下一代信息隐藏技术研究,来自北京和上海的专家于2014年5月召开的全国信息隐藏与多媒体安全专家研讨会首次提出了“无载体信息隐藏”。2015年3月在武汉召开的第12届全国信息隐藏大会上,北京电子技术应用研究所所长郭云彪研究员在大会特邀报告:信息隐藏之我见,将无载体信息隐藏技术列入了未来信息隐藏的前沿阵地。2016年10月在合肥召开的第13届全国信息隐藏大会将无载体信息隐藏正式定位为第2代信息隐藏技术,2个会议主题报告都与无载体信息隐藏直接相关。
相对于传统修改嵌入式信息隐藏,无载体信息隐藏强调的是不需要额外的嵌入载体,直接由秘密信息驱动产生和获取含密载体。针对文本无载体信息隐藏,分别给出了:chenxy,2017.(chenxy,chens,wu,yl.coverlessinformationhidingmethodbasedonthechinesecharacterencoding[j].journalofinternettechnology,2017,18(2):313-320.)基于中文字符编码、chenxy,2015.(chenxy,sunhy,tobey,zhouzl,sunxm.coverlessinformationhidingmethodbasedonthechinesemathematicalexpression[c]//internationalconferenceoncloudcomputingandsecurity.springerinternationalpublishing,2015:133-143.)中文数学表达式和zhouzl,2016.(zhouzl,muy,yang,cn,zhao,ns.coverlessmulti-keywordsinformationhidingmethodbasedontext[j].internationaljournalofsecurityanditsapplications,2016,10(9):309-320.)多关键字隐藏的无嵌入无载体文本信息隐藏;针对图像无载体信息隐藏,有:zhouzl,2015.(zhouzl,sunhy,haritrh,chenxy,sunxm.coverlessimagesteganographywithoutembedding[c]//internationalconferenceoncloudcomputingandsecurity.springerinternationalpublishing,2015:123-132.)基于块均值比较、yuancs,2017.(yuancs,xiazh,sunxm.coverlessimagesteganographybasedonsiftandbof[j].journalofinternettechnology,2017,18(2):435-442.)基于sift(scaleinvariantfeaturetransform)和bof(bagoffeatures)鲁棒哈希特征以及周志立,2016.(周志立,曹燚,孙星明.基于图像bag-of-words模型的无载体信息隐藏[j].应用科学学报,2016,34(5):527-536.)基于图像视觉词汇bow(bagofwords)局部分词匹配和全局有序的无嵌入无载体图像信息隐藏。这些方法的基本思想是将秘密信息划分为小段,将小段经变换后附带特定的用户标识信息,然后在海量大文本或图像数据库中借助预先建立好的倒排索引来寻找匹配的文本或图像集合,由于整个秘密信息的隐藏过程不涉及到对分发文本或图像的任何修改,而只借助海量数据库穷尽搜索,因此对于任意一张分发的文本或图像,都是正常无法检测出异常的自然文本或自然图像,因此可以抵抗密写分析,而与此同时,只有掌握正确用户标识信息的合法用户才能获取隐藏的秘密信息。
但这类方法存在的问题是:
①正常文本和图像对与之不相关的秘密信息的表现能力十分有限,若需要数据库中文本和图像具有足够的表达能力,则需收集足够多的样本,例如:对于文本无嵌入无载体信息隐藏,chenxy,2017、chenxy,2015和zhouzl,2016的无嵌入无载体文本信息隐藏方法的平均嵌入容量仅为2.07、1和1.57个中文字符/文本,为了使所构建的数据具有充分地表现能力,chenxy,2017构造的文本数据库大小约为10个gb,平均每个文档的尺寸大约为2kb;zhouzl,2016构造的文本数据库为10.2个gb,平均每个文档的尺寸大约为1kb;对于图像无载体信息隐藏,zhouzl,2015和yuancs,2017的嵌入容量是8比特/图像,周志立,2016直接建立起图像视觉词汇与中文关键词的一一对应关系,但每张图像仅能利用1个局部分块存储1个视觉词汇,因此该方法对应的嵌入容量为1个中文关键词/图像,若该方法不存在分词字典,则只能按单汉字进行编码,因此该方法的嵌入容量为8比特/图像,若该方法中存在汉字分词字典,则当平均汉字长度为2和3时,分词字典数量为100时,根据周志立,2016给出的实验数据,该方法的嵌入容量仅为1.57和1.86中文字符/图像。
②随着数据库文本和图像信息表达能力的增强,需要搜索的数据量也呈几何级数增加,即使借助倒排索引,对于大数据量的搜索、存储和维护也将是一个沉重的负担,例如:chenxy,2017所构建的文本数据库包含2n个提取标识,而每个标识符后面应出现所有的关键词,即使为每个标识符建立该标识符全部关键词所在文档访问路径的倒排索引,以n=4,5,…,10时,该方法每个标识符所对应倒排索引文件约为8.4mb~9.5mb。chenxy,2015和zhouzl,2016尽管通过选择汉字中最常出现的50个偏旁部首来将提取标识符的数量降低为50个,但依然要借助倒排索引来提高检索速度,zhouzl,2016建立的倒排索引包含出现频度最高的前50个标识,每个标识对应的全部关键字,以及出现该标识符和关键字组合所在的文档集合。针对图像,zhouzl,2015和yuancs,2017将数据库中的每张图像分别映射为8bit信息作为对秘密信息1个字节的表达,不同的是,zhouzl,2015是通过图像划分的9个分块块均值比较的方法来产生8比特信息,yuancs,2017则依据图像的sift特征并结合图像数据集的k均指聚类以及bof特征来产生100维特征向量并将其映射为8比特信息,由于8比特信息对应为256种组合,因此这两种方法实际上是通过最终映射的8比特信息将图像集划分为256个类别,同时秘密信息中不可避免的存在相同的比特,为防止1个固定的图像对应1个特定的秘密比特,则每个图像类别中都要有多张可供随机选择的图像,由此这两种方法均涉及大量的图像集合进行管理。周志立,2016则相对于zhouzl,2015和yuancs,2017所构建的数据库更为庞大,该方法需建立图像局部分块和10000个视觉词汇之间的对应关系,而局部分块在每个图像上的出现位置都被用来作为特定用户的提取标识,因此为具备充分地表达能力,则每个局部分块的可能出现位置都要能和10000个视觉词汇相互匹配,同时每个对应位置应有多张可供随机选择的分发图像以应对秘密信息中可能出现的重复信息。而为了使大量图像在信道传输中不产生顺序错乱,周志立,2016还建立起图像分发顺序和最高频视觉词汇之间的严格增序对应关系,由此使得所构建的数据库中还需要进一步添加更多的图像以提高其充分表现能力。周志立,2016所构建的倒排索引包括3级,所有可能出现的视觉词汇,以及每个视觉词汇可能出现的局部位置,以及每个局部位置所对应的最高频视觉词汇及其可供选择的图像集合,因此管理和维护这样一个倒排索引,其代价依然十分高昂。同时zhouzl,2015和yuancs,2017以及周志立,2016若进一步拓展,例如选取多个局部分块或提高单图像所映射的比特数,则需要管理和维护更为庞大的数据库,建立更为复杂的倒排索引,因此会付出更大的管理、搜索和维护代价。
③chenxy,2017、chenxy,2015和zhouzl,2016的平均嵌入容量仅为2.07、1和1.57个中文字符/文本;zhouzl,2015和yuancs,2017的嵌入容量仅有8比特/图像,而结合特定的分词算法,周志立,2016在平均汉字长度为2和3时,其嵌入容量仅为1.57和1.86中文字符/图像,隐藏容量非常小。尽管这类方法孤立文本或图像都是正常文本或图像,因未修改而无法检测出异常,但大量文本和图像集合密集传输也必然会引起怀疑。上述文献chenxy,2017、chenxy,2015、zhouzl,2016、zhouzl,2015、yuancs,2017和周志立,2016仅验证了对孤立文本或图像的抵抗密写分析或孤立图像改变分辨率、亮度、加噪和jpeg压缩等攻击的抗攻击能力,周志立,2016还进一步设置了解密时效,使得文本和图像只能在有限时间段内进行传输才能被解密,从而容易诱发信道潜在攻击者的主动和被动攻击。另外chenxy,2017、chenxy,2015、zhouzl,2016、zhouzl,2015、yuancs,2017和周志立,2016仅验证了对孤立文本或图像的抵抗密写分析或孤立图像改变分辨率、亮度、加噪和jpeg压缩等攻击的抗攻击能力,另外所述策略对参与秘密信息重构的分发文本或图像的来源和归属缺少有效的鉴别能力,从而信道潜在攻击者可恶意删除或增添之前截取的正常文本或图像来对信道传输过程中所涉及的文本或图像的先后接收顺序或文本集合图像集合的文本图像相互关联性产生破坏来阻碍秘密信息的正确提取。
技术实现要素:
本发明目的在于提出一种合法区间双认证全密钥依赖的无载体试题伪装方法,同现有方法相比,所提方法避免了额外载体修改和传统方法信息隐藏容量小、数据库创建和检索代价高、缺乏对信息的辨别能力和信道大量传输数据等问题而仅需正确密钥对秘密信息进行恢复。
为实现上述目的,本发明采用以下技术方案:
一种合法区间双认证全密钥依赖的无载体试题伪装方法,包括以下步骤:
第1步:输入秘密字节序列ps=(pk)l,pk∈(0,1,…255)、用户初始密钥
第2步:由
第3步:分别初始化随机序列x=φ、索引位置序列pid=φ和码本序列m=(0,1,…,255),置索引位置k=0,i=0;
第4步:由
第5步:反复执行第4步,直至k=l;
第6步:将pid转化为2进制比特位串
第7步:初始化24通道试题序列fk=φ,其中索引位置k=0,1,…,23;
第8步:对于正整数op0,op1,op0,op1=0,1,…,99,若k=(op0+op1)mod24,则在fk中添加题干f="op0+op1=";
第9步:反复执行第8步,直至所有op0,op1都处理完,将
第10步:初始化选择题序列l1=φ,置索引位置i=0;
第11步:由
第12步:反复执行第11步,直至i=l1;
第13步:初始化填空题序列l2=φ,置索引位置i=0;
第14步:由
第15步:反复执行第14步,直至i=l1,由
优选地,第2步中,由
第4步中,由
式(3)中,rcode()是随机编码函数,其中,
其中,rcode()的具体执行过程如第4.1步~第4.3步所示:
第4.1步:通过式(4)生成随机数xi,yi,并将xi保存至x中,令i=i+1;
式(4)中,dlogistic()是双logistic互扰的随机数生成函数,其中
dlogistic()的具体执行过程为:
记xi,yi为将
x=μx(1-x)(5)
第4.2步:若x包含256个元素,通过式(6)将x降序为x′,并根据x和x′之间的映射关系将m置乱为随机码本m′,通过式(7)将pk映射为
x′=dec(x)(6)
式(6)和式(7)中,dec()为降序排列函数,index(m′,pk)为索引函数,执行的功能是返回pk在m′中的索引位置;
第4.3步:令m=m′,x=φ。
优选地,第6步中,将
式(8)中,permute()是置乱函数,
permute()的具体执行过程如第6.1~第6.3步所示:
第6.1步:初始化x=φ,令i=0;
第6.2步:将
第6.3步:若x包含l1个元素,则通过式(6)将x降序为x′并根据x和x′之间的映射关系将
优选地,第11步中,由
将
式(9)中,cgen()是选择题生成函数,用于在数据库中选择一道随机试题题干并生成指定排列顺序的选项组合,其中xi,yi是两个随机数,
cgen()的具体执行过程如第11.1~第11.4步所示:
第11.1步:按式(10)计算选择题试题通道k以及通道k的第j道试题;
第11.2步:若
第11.3步:反复执行第11.2步,直至
第11.4步:通过式(11)生成id,根据id对4个答案选项ansi-1,ansi,ansi+1,ansi+2按字典序对应的第id个排列进行重排作为实际输出4个选项ai,bi,ci,di,输出sti=(ti,ai,bi,ci,di);
优选地第14步中,由
将
式(12)中,bgen()是填空题生成函数,用于在数据库中选择一道随机试题题干作为填空题,其中xi,yi是两个随机数,
bgen()的具体执行过程如第14.1~第14.3步所示:
第14.1步:根据式(13)计算选择试题通道k以及通道k的第j道试题;
第14.2步:若
第14.3步:反复执行第14.2步,直至
第15步由
一种合法区间双认证全密钥依赖的无载体试题恢复方法,包括以下步骤:
第1步:输入试题l=(l1,l′2)、用户初始密钥
第2步:由
第3步:由
第4步:初始化认证信息序列u=φ,令索引位置i=0;
第5步:由
第6步:反复执行第5步,直至i=l1;
第7步:初始化待认证序列v=φ,置索引位置i=0;
第8步:由
第9步:反复执行第8步,直至i=l1;
第10步:由待认证序列v和认证信息序列u采用区间扩展的方法生成16进制数序列
第11步:由
第12步:分别初始化随机序列x=φ、秘密信息序列ps=φ和码本序列m=(0,1,…,255),置索引位置k=0,i=0;
第13步:由
第14步:反复执行第13步,直至k=l,将ps=(pk)l和
优选地,第2步中,由
第3步:由
式(14)中,permute-1()是permute()的逆函数,
permute-1()的具体执行过程在与以下步骤:
第3.1步:初始化x=φ,令i=0;
第3.2步:将
第3.3步:若x中包含l1个元素,则通过式(6)将x降序为x′并根据x′和x之间的映射关系将l′2恢复为
优选地,第5步中,由
由ansi和xi,yi计算认证信息
第8步中,由
第8步中,由id和xi,yi计算出待认证信息
优选地,第10步中,由待认证序列v和认证信息序列u采用区间扩展的方法生成16进制数序列
式(17)中,authenticate()是对信息的认证以及恢复函数,v是待认证的序列,u为认证信息序列,w′是错误标记序列;
authenticate()的具体执行过程,包括以下步骤:
第10.1步:置i=0,初始化
第10.2步:根据下列5种情况,利用
①若
②若
③若
④若
⑤若
式(18)中,mean()是求均值的函数,
第10.3步:反复执行第10.2步,直至i=l1。
优选地,第11步中,由
第13步中,由
式(19)中,rcode-1()是rcode()的逆函数,其中
rcode-1()的具体执行过程,包括以下步骤:
第13.1步:将
第13.2步:若x中含有256个元素,则将x按式(6)降序排列为x′,并按照x与x′之间的关系将m置乱为m′,通过式(20)将
式(20)中,get()是获取对应索引元素的函数,用于将pi映射为m′中索引值为
第13.3步:令m=m′,x=φ。
与现有技术相比,本发明有益效果是:
①传统基于搜索的无嵌入无载体信息隐藏使用不经修改的正常文本或图像作为含密载体对秘密信息进行表达以抵抗密写分析,但正常文本和图像对与之不相关的秘密信息表现能力十分有限,导致秘密信息嵌入率极低,而基于用户标识的秘密信息提取方式也进一步消耗了可供利用的隐藏空间,因此为传输秘密信息,需借助大量文本和图像集合在信道中传输,不仅增加了信道传输负载,同时也易引起攻击者的怀疑。为使数据库中的文本或图像具有足够的表达能力且适用于不同用户对应的不同提取标识,需收集足够多的样本并建立庞大的数据库与复杂的倒排索引,由此需付出高昂的搜索代价,这对于数据库搜索、存储、维护和管理都将是一个沉重的负担。同传统方法不同,本发明所提的方法是选取试题作为特殊嵌密载体,以改变选择题选项的排列顺序重组来对秘密信息进行表达,并建立选择题和填空题之间的随机映射关系和引入合法区间对秘密信息进行充分有效的认证。由于改变选择题选项的排列顺序不改变也不影响选择题的答案,且改变选项排列顺序以及改变试题排列顺序是随机组卷防止作弊所采用的惯常手段,属于正常行为,因此可抵抗密写分析检测,本文所生成的试题数据库,所有试题均为0~198以内的加法题,相比于传统基于搜索的无载体信息隐藏方法通过文本和图像构建数据库,试题数据库建立、存储和维护代价均较小。
②传统基于搜索的无嵌入无载体信息隐藏方法通常借助用户标识来提取未修改自然文本或图像中紧跟标识的秘密信息分段及其变换形式,这样将导致秘密信息直接蕴含在自然图像和自然文本中,在提取时,对密钥的依赖程度较低。同传统方法不同,本发明所提的方法是将秘密信息转换为与用户密钥完全依赖的索引位置序列,然后由索引位置序列生成试题从而使得秘密信息完全依赖于用户密钥,阻碍秘密信息在信道中直接传输,同时索引位置序列与选择题的对应关系,每道选择题选项的排列顺序,选择题与填空题的对应关系均于用户密钥息息相关并且对用户密钥参数具有极强的敏感性,从而提供错误的用户密钥参数和用户密钥参数发生微小变化时均无法对秘密信息进行准确提取。
③传统的基于搜索的无嵌入无载体的信息隐藏方法的单个载体的嵌密容量极低,由于嵌密容量极低,对秘密信息需借助海量文本或图像集合在信道中密集传输,传输的载体文本或图像必须按照顺序进行发送,若施加主动攻击,从中删除或添加若干个自然图像或文本,将会极大地影响秘密信息的正确恢复,然而传统无嵌入无载体的信息隐藏方法对主动攻击缺乏鉴别能力,从而不能对重构的秘密信息的真实性加以鉴别。同传统方法不同,本发明所提的方法是建立选择题和填空题之间的随机映射关系和引入合法区间对秘密信息进行充分有效的认证并通过盲恢复策略来对秘密信息进行恢复,并对秘密信息的可靠性进行标注。其具体做法为:在试题伪装阶段,对秘密信息序列施加随机扰动从而将秘密信息序列中的元素值映射至[0,23]区间内,之后将其同时伪装为选择题与填空题,并打乱选择题与填空题之间的映射关系;在试题恢复阶段,恢复选择题与填空题之间的映射关系并提取试卷中蕴含在选择题和填空题中的信息并分别作为待认证信息序列和认证信息序列,首先通过判断两个序列中的元素值所属区间是否合法来对序列中的元素进行模糊的认证,之后利用认证信息序列对待认证信息序列进行认证并输出错误标记序列,最后利用盲恢复策略对秘密信息进行恢复。
④传统基于搜索的无嵌入无载体信息隐藏方法单个载体的嵌密容量极低,对于单文本,chenxy,2017、chenxy,2015和zhouzl,2016的平均嵌入容量仅为2.07、1和1.57个中文字符/文本,对于单图像载体,zhouzl,2015和yuancs,2017的嵌入容量仅有8比特/图像,而结合特定的分词算法,周志立,2016在平均汉字长度为2和3时,其嵌入容量仅为1.57和1.86中文字符/图像。同传统方法不同,本文所提方法选取试题作为特殊嵌密载体,每道选择题可提供16比特的嵌入容量,所提方法尽管是以加法题为例进行描述,但可容易地扩展到其他试题载体上,从而具有较高的普适性。
附图说明
图1是秘密信息伪装流程;
图2是秘密信息恢复流程;
图3是实施例:秘密信息,包含20个中文字符的古诗《竹里馆》;
图4是实施例:图3经图1秘密信息伪装流程产生的随机试题中的部分单选题,其中所用的用户密钥参数为
图5是实施例:图3经图1秘密信息伪装流程产生的随机试题中的部分填空题,其中所用的用户密钥参数为
图6是实施例:由图3经过伪装后产生的随机试题按图2秘密信息恢复流程恢复出的秘密信息,其中所用的系统参数为
图7是实施例:由图3经过伪装后产生的随机试题按图2秘密信息恢复流程认证出的认证图,其中所用的用户密钥参数为
图8是实施例:秘密信息,包含20个中文字符的古诗《静夜思》;
图9是实施例:图8经图1秘密信息伪装流程产生的随机试题中的部分单选题,其中所用的用户密钥参数为
图10是实施例:图8经图1秘密信息伪装流程产生的随机试题中的部分填空题,其中所用的用户密钥参数为
图11是实施例:由图8经过伪装后产生的随机试题按图2秘密信息恢复流程恢复出的秘密信息,其中所用的系统参数为
图12是实施例:由图8经过伪装后产生的随机试题按图2秘密信息恢复流程认证出的认证图,其中所用的系统参数为
图13是实施例:秘密信息,包含20个中文字符的古诗《竹里馆》;
图14是实施例:图13经图1秘密信息伪装流程产生的随机试题中的部分单选题,其中所用的用户密钥参数为
图15是实施例:图13经图1秘密信息伪装流程产生的随机试题中的部分填空题,其中所用的用户密钥参数为
图16是实施例:修改后的由图13经过伪装后产生的随机试题中的部分单选题,其中修改方式为修改随机试题中部分选择题的选项排列顺序,攻击占比为0.05;
图17是实施例:修改后的由图13经过伪装后产生的随机试题中的部分填空题,其中修改方式为修改随机试题中部分选择题的选项排列顺序,攻击占比为0.05;
图18是实施例:由修改后的图13经过伪装后产生的随机试题按图2秘密信息恢复流程恢复出的秘密信息,其中所用的系统参数为
图19是实施例:由修改后的图13经过伪装后产生的随机试题按图2秘密信息恢复流程认证出的认证图,认证成功率为100%,其中所用的系统参数为
图20是实施例:秘密信息,包含20个中文字符的古诗《鹿柴》;
图21是实施例:图20经图1秘密信息伪装流程产生的随机试题中的部分单选题,其中所用的用户密钥参数为
图22是实施例:图20经图1秘密信息伪装流程产生的随机试题中的部分填空题,其中所用的用户密钥参数为
图23是实施例:修改后的由图20经过伪装后产生的随机试题中的部分单选题,其中,修改方式为删除随机试题中部分试题并添加对应数量的试题,攻击占比为0.1;
图24是实施例:修改后的由图20经过伪装后产生的随机试题中的部分填空题,其中,修改方式为删除随机试题中部分试题并添加对应数量的试题,攻击占比为0.1;
图25是实施例:由修改后的图20经过伪装后产生的随机试题按图2秘密信息恢复流程恢复出的秘密信息,其中所用的系统参数为
图26是实施例:由修改后的图20经过伪装后产生的随机试题按图2秘密信息恢复流程认证出的认证图,认证成功率为100%,其中所用的系统参数为
具体实施方式
以javajdk1.8.0_20作为案例实施环境,结合附图对本发明实施方式进行详细说明,但不局限于本实施案例,其中图1是秘密信息伪装流程图,图2是秘密信息恢复流程图。其中,合法区间双认证全密钥依赖的无载体试题伪装方法,包括以下步骤:
第1步:输入秘密字节序列ps=(pk)l,pk∈(0,1,…255),用户初始密钥
第2步:将
例如,针对
同理,
第3步:初始化随机序列x=φ、索引位置序列pid=φ和码本序列m=(0,1,…,255),置索引位置k=0,i=0;
第4步:由
式(3)中,rcode()是随机编码函数,其中
第4.1步:通过式(4)生成随机数xi,yi,并将xi保存至x中,令i=i+1;
式(4)中,dlogistic()是双logistic互扰的随机数生成函数,其中
x=μx(1-x)(5)
第4.2步:若x包含256个元素,通过式(6)将x降序为x′并根据x和x′之间的映射关系将m置乱为随机码本m′,通过式(7)将pk映射为
x′=dec(x)(6)
式(6)和式(7)中,dec()为降序排列函数,index(m′,pk)为索引函数,执行的功能是返回pk在m′中的索引位置;
第4.3步:令m=m′,x=φ。
以p0=96为例,将
将
x0=3.7×0.3×(1-0.3)=0.777,y0=3.823677696×0.1100000000000001×(1-0.1100000000000001)=0.37433804643840024
由于|0.777-0.37433804643840024|>0.1,所以x0,y0为符合条件,不需要继续迭代,将x0=0.777添加至x中;同理,将
将x按式(6)重新排列为x′=(0.9249963192087112,0.9249699866005412,…,0.25669907603847497),之后根据x和x′之间的映射关系将m=(0,1,…,255)置乱为随机码本m′=(219,196,…,220),最后,通过式(7)将p0=96映射为
第5步:反复执行第4步,直至k=l;
例如:重复第4步直至k=l=4,可将ps=(96,79,125,89)编码为pid=(27,85,181,137)。
第6步:将pid转化为2进制比特位串
式(8)中,permute()是置乱函数,
第6.1步:初始化x=φ,置i=0;
第6.2步:将
第6.3步:若x包含l1个元素,则通过式(6)将x降序为x′并根据x和x′之间的映射关系将
例如,将pid转化为2进制比特位串
将
第7步:初始化24通道试题序列fk=φ,其中k=0,1,…,23;
第8步:对于正整数op0,op1,op0,op1=0,1,…,99,若k=(op0+op1)mod24,则在fk中添加题干f="op0+op1=";
第9步:反复执行第8步,直至所有op0,op1都处理完,将
以op0=12,op1=3为例,k=(op0+op1)mod24=15,则将f="12+3="添加至f15中;
第10步:初始化选择题序列l1=φ,置索引位置i=0;
第11步:将
式(9)中,cgen()是选择题生成函数,用于在数据库中选择一道随机试题题干并生成指定排列顺序的选项组合,其中xi,yi是两个随机数,
第11.1步:按式(10)计算选择题试题通道k以及通道k的第j道试题;
第11.2步:若
第11.3步:反复执行第11.2步,直至
第11.4步:通过式(11)生成id,根据id对4个答案选项ansi-1,ansi,ansi+1,ansi+2按字典序对应的第id个排列进行重排作为实际输出4个选项ai,bi,ci,di,输出sti=(ti,ai,bi,ci,di);
第12步:反复执行第11步,直至i=l1;
以
因为
根据式(11)将
对4个答案选项174,175,176,177按字典序排列,得到24种排列情况,如下所示:
((174,175,176,177),(174,175,177,176),(174,176,175,177),(174,176,177,175),
(174,177,175,176),(174,177,176,175),(175,174,176,177),(175,174,177,176),
(175,176,174,177),(175,176,177,174),(175,177,174,176),(175,177,176,174),
(176,174,175,177),(176,174,177,175),(176,175,174,177),(176,175,177,174),
(176,177,174,175),(176,177,175,174),(177,174,175,176),(177,174,176,175),
(177,175,174,176),(177,175,176,174),(177,176,174,175),(177,176,175,174))
选择索引为id=20的排列进行重排并作为实际输出4个选项a0=177,b0=175,c0=174,d0=176,以此生成第0道试题st0=("83+92=",177,175,174,176);
同理,按上述步骤生成之后的选择题sti,i=1,2…,7,组成选择题序列l1,l1中所包含的试题如下所示:
第13步:初始化填空题序列l2=φ,置索引位置i=0;
第14步:将
式(12)中,bgen()是填空题生成函数,用于在数据库中选择一道随机试题题干作为填空题,其中xi,yi是随机数,
第14.1步:根据式(13)计算选择试题通道k以及通道k的第j道试题;
第14.2步:若
第14.3步:反复执行第14.2步,直至
第15步:反复执行第14步,直至i=l1,由
以
由于
同理,按上述步骤生成之后的选择题sti,i=1,2,…,7,组成选择题序列l2,l2中所包含的试题为:l2=(("18+0="),("63+51="),("36+99="),("74+82="),("5+55="),("99+33="),("12+92="),("70+66="))
之后,由
合法区间双认证全密钥依赖的无载体试题伪装方法,包括以下步骤:
第1步:输入试题l=(l1,l′2),用户初始密钥
例如,输入用户初始密钥参数为
l1=(("83+92=",177,175,174,176),("8+28=",35,37,36,38),("22+81=",105,104,102,103),
("35+68=",104,105,102,103),("27+59=",88,87,85,86),("0+92=",94,92,91,93),
("33+46=",81,78,80,79),("16+87=",104,102,103,105))
l′2=(("18+0="),("12+92="),("5+55="),("74+82="),("99+33="),("36+99="),("70+66="),("63+51="))第2步:将
例如,同合法区间双认证全密钥依赖的无载体试题伪装方法的第2步相同,将
第3步:初始化i=0,将
式(14)中,permute-1()是permute()的逆函数,
第3.1步:初始化x=φ,置i=0;
第3.2步:将
第3.3步:若x中包含l1个元素,则通过式(6)将x降序为x′并根据x′和x之间的映射关系将l′2恢复为
例如,由
首先将
第4步:初始化认证信息序列u=φ,令索引位置i=0;
第5步:将
第6步:反复执行第5步,直至i=l1;
以st0=("18+0=")为例,
反复执行第5步,得到认证信息序列u=(11,11,8,5,5,5,1,9);
第7步:初始化待认证序列v=φ,置索引位置i=0;
第8步:将
第9步:反复执行第8步,直至i=l1;
以st0=("83+92=",177,175,174,176)为例,
反复执行第8步,得到待认证序列v=(11,11,8,5,5,5,1,9);
第10步:利用认证信息序列u按式(19)对待认证序列v进行认证,得到乱序16进制序列
式(17)中,authenticate()是对信息的认证以及恢复函数,v是待认证的序列,u为认证信息序列,w′是错误标记序列,其中w′i=0和w′i=1分别用于标记恢复出的
第10.1步:置i=0,初始化
第10.2步:根据下列5种情况,利用
①若
②若
③若
④若
⑤若
式(18)中,mean()是求均值的函数,
第10.3步:反复执行第10.2步,直至i=l1。
以i=0为例,其计算过程为:
经上述步骤,可得:
第11步:将
例如,首先将
第12步:初始化随机序列x=φ、秘密信息序列ps=φ、码本序列m=(0,1,…,255)和索引位置k=0,i=0;
第13步:将
式(19)中,rcode-1()是rcode()的逆函数,其中
第13.1步:将
第13.2步:若x中含有256个元素,则将x按式(6)降序排列为x′,并按照x与x′之间的关系将m置乱为m′,通过式(20)将
式(20)中,get()是获取对应索引元素的函数,用于将pi映射为m′中索引值为
第13.3步:令m=m′,x=φ;
第14步:反复执行第13步,直至k=l,将ps=(pk)l和
以
图3是秘密信息《竹里馆》;图4是图3经图1伪装流程产生的随机单选题,对应的密钥为