本发明专利技术公开了一种码字表的加解密的方法,它应用于信息安全技术领域。给定一个码字表τ,即给定一个输入字母表∑↓[1],输出字母表∑↓[2]和∑↓[2]上一个语言,明文码字表τ被加密成明文四元组(∑↓[1],∑↓[2],1,x),其中l表示语言中最长的字的长度,x是被加密的正整数。反之,依据上面的正整数x及相关的四元组(∑↓[1],∑↓[2],l,x),则可唯一地恢复与之相对应的码字表τ。本发明专利技术实现了将明文码字表加密为一个正整数,则极大地提高了以“码字表”作为对称密码体制中的密钥的管理的安全性,也极大地减少了存储码字表时所占用的空间。
【技术实现步骤摘要】
该专利技术技术主要应用在“信息安全技术”和“数据存贮与管理”等领域
技术介绍
1、码字表 码字表的用途非常的广泛,为许多教学和拼词典类型的软件中所需要。本论文研究的码字表对象主要是针对应用于压缩编码和加密系统的码字表。很多软件使用大型数据库来存储码字表,这些的码字表需要庞大的管理系统。然而在压缩编码和加密系统中,码字表的应用方式比教学软件等中的简单,不希望使用复杂的管理,只希望能够在传输和存储时有足够的安全性并且只占较小的存储空间。 码字表的生成过程基本如下1)考察需要使用的字符(或字符)集;2)寻找合适的编码法(按照码字表的使用目的);3)按照使用的编码法将所选字符集编码,并加入所需信息,制成码字表。码字表的生成过程能够帮助我们了解码字表的组成要素,进而研究在它的存储过程中,需要保存那些关键信息,能够唯一表示此码字表。 不难发现,码字表需要编码字符集、字符与码字的对应关系以及码字长度来标识。缺少了这些信息,码字表的内容将被破坏。所以在本论文构造码字表的存储结构中,将会着重说明这些信息是怎样被安置进新的结构中的。 在编码表中,如果对每一待编码的字符,编码后的码字长度一定,那么我们可以用定长的空间来存储,并且查找码字时也可以直接使用现有的查找算法。而更一般的情况是用变长码,如压缩编码的压缩原理就是使经常使用的字符用短的二进制码字表示,反之用长的码字表示。变长码如果用定长的空间来存储将会浪费大量的空间,所以必须另辟蹊径。 2、顺序存储 我们首先研究这样一张码字表,设 ∑1={A,B,C}∑2={a,b,c,d,e,f} 且∑1上的一编码方案如图1所示 如果要顺序存储此张码字表(即依次存储字符、码字对),并且能够让程序在读入存储的数据后自动识别它的内容,那么要解决如下问题 1)区分被编码字母与码字 2)区别每个字母的码字 3)能够根据被编码字母找到对应码字 要达到这些目的,必须在存储的数据中加入一些特定的字符,并在程序规定这些字符的含义。我们可以加入推倒符号,分隔符。例如,规定 ,符号用来分隔各个编码 →符号前面是被编码字符,后面为码字 则表1可以表示为 A→abc,B→efcd,C→ffb 然而此码字表存储的为变长码,如果要查找任一字母的编码,无法用时间复杂度小的查找方法,因为对于每个字母的编码所需要的存储空间不相同,所以查找后面字母的编码时,必须遍历所有前面的数据,直到找到此字母开始的代换。 可以对简单顺序存储作一定的修改,即令每个字母的代换集合存储长度相同,这样就可以以字母在字母表中的位置作为索引来查找。如表1的例子,所有编码表示串的最大长度为6,则我们规定每个编码都用6个字符表示,遇到空格或“,”表示此码字结束,则它的存储表示如下 A→abc,B→efcd,C→ffb_ 其中_表示空格符。 这样的表示会占用额外的存储空间。若以lmax表示编码中最长的码字, 表示码字的平均长度,n=|∑1|为字母表元素的个数,则需要占用的额外空间为 显然,在最长的码字比平均码字长度大得多时,额外消耗的空间将随字母表大小的增长线形递增。 3、字典存储法 由论文,我们想到在文本中可以利用索引查找,即将顺序存储稍稍作些改变,把字母表的信息提取出来作为索引,而剩余的所有编码作为字典内容部分以供查找。在索引中除了存储字母表,还需要存储字母的编码在字典中的起始位置,码字的长度。仍以表4-1为例,索引和字典部分如下所示。 index=(A,1,3),(B,4,4),(C,8,3) dinctionary=abcefcadffb 那么存储的信息为index|dictionary。 使用它很简单,例如,查找B的编码时,首先在索引中查找到B对应的索引项,然后读出它的编码起始字符位置为4,长度为4,则从字典中的第四个字符开始读一个长度为4的字符串efcd,即为B的编码。 4、其他存储法 除了以上两种存储方法外,还有使用树型结构或者数据库等方法来存储码字表的。他们都是根据应用的特殊性决定的。例如霍夫曼编码的树型生成结构使得它可以使用树型结构存储。对于输入法等其他大型查找软件中使用的码字表可以存储在数据库中管理。本论文中讨论的存储法与码字表的一般形式相关,并希望不利用额外的数据库软件,所以不再对特殊的应用详细说明。
技术实现思路
本专利技术提出了一种新的码字表加解密的方法,其主要步骤包括 加密过程主要步骤包括 1)首先,对码字表τ输入字母表∑1和输出字母表∑2中的元素排序,令其为∑1={a1,a2,...,an},∑2={b1,b2,...,bi,!},其中ai,bj为字符,“!”为结束符; 2)对于值域中的每个词,先按它和字母表∑1中字母的对应关系进行排序,设为f(∑1)={w1,w2,...wn},其中ai→wi。找出值域f(∑1)中最长的字wk,其长度表示为l,使用映射函数g∑2l作用于{w1,w2,...wn),这样,依照原来的顺序的对应关系,形成一个新的集合其中,αi为ai对应的码字wi的算术编码,Г为码字对应编码的集合,Γ中每个元素都是区间_0,(|∑2|)l+1)上的一个数; 3)对Г中的数字进行处理,使这个集合对应一个数字,我们将Г变换成一个同余方程组 x≡α1(modm1) x≡α2(modm2) ... x≡αn(modmn) 其中,x为码字对应的数字,mi为模数; 4)利用中国剩余定理可以计算得到唯一的整数x 其中Mi=M/mi,si=Mimodmi。 所述加密过程步骤2)中的映射函数g∑2l定义如下 1)求出区间总长度B=(t+1)l+1,以及每个字符出现的概率n=1/(t+1),求出子区间B1=B*n,并按顺序将其分配给∑2中的bi和结束符“!”; 2)根据码字wi的第一个字符确定下一个区间范围; 3)将上一个步骤所得的区间范围再按照概率再一次平分给bi和结束符号“!”; 4)再根据码字wi的下一个字符确定下一个区间范围; 5)将上一个步骤所得的区间范围再按照概率再一次平分给bi和结束符“!”; 6)如此循环步骤4)、5),直到码字wi的所有字符都经历过,那么最后一次平分后,结束符“!”所占的区间的第一个数即为码子wi所对应的算术编码αi。 所述加密过程步骤3)中模数mi的定义如下 找出值域f(∑1)中最长的词wk,其长度表示为l,区间长度为B=(t+1)l+1,那么αk最大不会超过(t+1)l+1,并且Г所有其它元素的值也不会超过(t+1)l+1,取mi为大于(t+1)l+1的第i个最小的素数,这样就可以保证x一定存在,即mi=Pri((t+1)l+1),其中Pri(a)表示大于a的第i个最小的素数。 所述解密过程主要步骤包括 1)计算出B=(t+1)l+1,其中B为进行区间转换映射到数字时的区间长度,t为集合∑2中字符的个数(不包含结束符); 2)根据读入的当前字母a,我们首先从字母表信息中获得此字母的位置值i,计算大于B的第i个最小的素数mi; 3)求得αi=xmodmi,αi正是a对应的码字wi本文档来自技高网...
【技术保护点】
一种码字表加解密的方法,其特征在于,加密过程主要步骤包括:1)首先,对码字表τ字母表∑↓[1]和∑↓[2]中的元素排序,令其为:∑↓[1]={a↓[1],a↓[2],…,a↓[n]},∑↓[2]={b↓[1],b↓[2],…,b↓[t],!}其中a↓[i]为字符,b↓[i]为字符,“!”为结束符;2)对于值域中的每个码字w↓[i],我们也先按它和字母表∑↓[1]中字母的对应关系,对其排序为:f(∑↓[1])={w↓[1],w↓[2],…,w↓[n]}其中,a↓[i]→w↓[i]。找出值域f(∑↓[1])中最长的码字w↓[k],其长度表示为l,使用映射函数g↓[∑2]↑[l]作用于{w↓[1],w↓[2],…,w↓[n]},这样,依照原来的顺序的对应关系,形成一个新的集合:Γ={α↓[1],α↓[2],…α↓[n]}=g↓[∑2]↑[l]{w↓[1],w↓[2],…w↓[n]}其中,α↓[i]为a对应的码字w↓[i]的算术编码,Γ为码字对应编码的集合,Γ中每个元素都是区间「0,(|∑↓[2]|)↑[l+1])上的一个数;3)对Γ中的数字进行处理,使这个集合对应一个数字,我们将Γ变换成一个同余方程组:x≡α↓[1](modm↓[1])x≡α↓[2](modm↓[2])…x≡α↓[n](modm↓[n])其中,x为码字对应的数字,m↓[i]为模数;4)利用中国剩余定理可以计算得到唯一的xx=∑↓[i=1]↑[n]s↓[i]M↓[i]α↓[i](modM)其中,M=∏↓[i=1]↑[n]m↓[i],M↓[i]=M/m↓[i],s↓[i]=M↓[i]modm↓[i];所述解密过程主要步骤包括:1)计算出B=(t+1)↑[l+1],其中B为进行区间转换映射到数字时的区间长度,t为集合∑↓[2]中字符的个数(不包含结束符);2)根据读入的当前字母a,我们首先从字母表信息中获得此字母的位置值i,计算大于B的第i个最小的素数m↓[i];3)求得α↓[i]=xmodm↓[i],α↓[i]正是a对应的码字w↓[i]的算术编码;4)根据映射函数g↓[∑2]↑[l],对α↓[i]这些进行区间转换的逆运算后得到的字符串就是码字w↓[i],用公式表示,由a↓[i]获得它的编码的函数为:F↓[x](a↓[i])=g↓[∑2]↑[l]↑[-1](xmodm↓[i])也即F↓[x](a↓[i])=g↓[∑2]↑[l]↑[-1](xmodPr↓[i...
【技术特征摘要】
【专利技术属性】
技术研发人员:龙冬阳,
申请(专利权)人:龙冬阳,
类型:发明
国别省市:81[中国|广州]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。