一种与加密历程相关的加密方法

文档序号:7690631阅读:288来源:国知局
专利名称:一种与加密历程相关的加密方法
技术领域
本发明涉及一种加密方法,尤其涉及一种具有高度非线性结构而降低被破解风险的加密方法。
在当今互联网发达的年代,为防止重要信息在传送时为他人所轻易截获解读,对重要文件加密保护已成为一件重要的事。应文件加密的需要,有了加密系统的发展。常见的加密系统的工作方式为给定一加密密钥码与欲加密的明文,经由该加密系统的计算,即可得到一加密后的密文。通常一个加密系统接受该加密密钥码与明文后,会依一定的方法,将明文分解为固定长度的字串,并以另一特定的方法,提供一密钥码,再以一基本的加密方法配合该密钥码,将该明文字串加密为一密文字串;最后再以一定的方式组合所有的密文字串,得到该密文。本发明即提供一种用于加解密的基本编码方法,用来将固定长度的明文字串,配合一由该加密系统供给的密钥码,加密为一加密字串。而该加密方法的特征为增加加密过程的复杂度,以降低被破解的可能性。
本发明的主要目的在于提供一种基本的加密方法,可配合一密钥码,将一固定长度的明文字串加密为一密文字串。本发明可做为一基本构成块,适用于各种不同的加密系统。且本发明具有高度的非线性,可降低密文被破解的可能。
以下,将参照附图对本发明的具体实施方式
进行详细描述,附图中

图1为本发明加密方法用于一加密系统的功能方块图;图2为起始算法的功能方块图;图3为加密算法的功能方块图;图4为功能方块22的详细结构图;图5为功能方块26的详细结构图;图6为功能方块28的详细结构图;和图7为解密迭代过程。
参照图1。图1所示为一利用本发明加密方法1的加密系统的功能方块图。功能方块9为该利用本发明的加密方法1的加密系统。该加密系统9的输入为明文2及加密密钥码8,输出则为密文6。该加密系统9利用一特定算法A(功能方块90),将该明文2分解为长度固定的明文字串,并由该加密密钥码8得到用于本发明加密方法1的密钥码7。而本发明的加密方法1的主要功能为利用加密系统9所提供的密钥码7,将该长度固定的明文字串3加密为一密文字串5。最后,该加密系统9再以一特定算法B(功能方块91),将各密文字串5组合为一密文6。而加密系统9的典型实施例为一块加密结构(block cipher),即该特定算法A(功能方块90)仅将明文2分解为长度固定的明文字串3,并直接以该加密密钥码8作为密钥码7,依序加密各明文字串,而该特定算法B(功能方块91)仅将各密文字串5依序连接成为该密文6。但本发明所提供的加密方法可作为一基本构成块,运用于更复杂的加密系统,如使用数据流加密结构(stream cipher)的加密系统。
如图1所示,在本实施例中,本发明的加密方法1以一长度为64比特的明文字串3与密钥码7为输入,并输出一密文字串5。本发明的加密方法1包含两个主要功能方块10及20。其中方块10以密钥码7为输入,以一起始算法10产生加密参考数据4为输出。而明文字串3则与加密参考数据4共同输入加密算法20,产生64比特的密文字串5。
图1中方块10中的起始算法的功能方块图示于图2。如图2所示,该起始算法以密钥码7为输入,以加密参考数据4为输出。该加密参考数据为三阵列,分别为次密钥阵列P、排序对应阵列S及脚标阵列N。其中阵列P包含18个32比特元素,阵列S为二维阵列,包含4个各含256元素的一维阵列,而阵列N包含16个32比特元素。在功能方块12中,此三阵列分别被填入预定常数。在接下来的功能方块14中,P的第一元素与密钥码的头32个比特做XOR(异或)运算,并以所得来更新P的第一元素。P的第二元素与密钥码的次32比特做XOR运算并以此更新P的第二个元素,以此类推,更新P阵列中的所有元素。若密钥码的总比特数不如P阵列的总比特数,则重复密钥码序列以完成上述步骤。
在功能方块16中,P阵列被重新计算。其中需利用一初始加密算法。该初始加密算法以两个32比特输入产生两个32比特输出。P的更新程序则如下先以各设为0的两个32比特输入,经该初始加密算法得到两个32比特输出,填入P的头两个元素。并以此二输出再经该初始加密算法所得的两个32比特结果,填入P的接下来的两个元素,并循此规则依序将P的所有元素更新。
前述过程亦被用于功能方块18中,以更新阵列S。而在功能方块16及18中皆被使用的初始加密算法将稍后予以介绍。
组成本发明加密方法核心的加密算法20示于图3。如图3所示,由64比特所组成的明文字串3首先被分解为两个分别称为X1、Xr的片段,并以此二者输入功能方块22,而在功能方块22中亦使用加密参考数据,以完成加密过程。完成功能方块22中的过程后,X1及Xr均被更新,以组成密文字串为输出。同时,功能方块22亦产生一阵列n,用来在功能方块24中更新阵列N。此阵列n长度与阵列N长度相同。在功能方块24中,则执行下列步骤对i从0到15,将N的第i个元素与N[n[i]]交换。经过如此重排过程,属于加密参考数据4的N阵列会被重新排列,以增加加密时的复杂度。
图3中功能方块22的详细结构示于图4。由图4可知,X1首先与P
进行XOR运算以更新X1,并与Xr进入第一迭代步骤27。在此步骤中,X1被输入功能方块26中,其输出结果与Xr及P[N
]进行XOR运算,以更新Xr,接下来交换X1与Xr的值,两者共同输入功能方块28,以产生n阵列的第一个元素n
。此迭代步骤27重复16次,在第i次迭代中,使用P[N[i]]为加密过程的一变量,并产生n[i]。最后Xr与P[17]进行XOR运算,更新Xr。
图4中功能方块26的详细功能方块图示于图5。如图5所示,功能方块26接收一32比特输入并产生一32比特输出。其32比特输出先被分为四个各长8比特的部分,并分别用来定义四个常数s0、s1、s2、s3。在S阵列中,第一个一维阵列以第一个8比特(由最高有效位算起)为脚标所取出的元素为s0。在S阵列中,第二个一维阵列以第二个8比特为脚标所取出的元素为s1。依此类推以得到s2及s3。而最后输出为((((s0+s1)XOR s2)+s3)。
图4中功能方块28的详细结构示于图6。如图6所示,功能方块28接收两个32比特输入,产生一个32比特输出。在功能方块28中,两个输入的最后4比特进行XOR运算后所得的4比特再填入28比特的0,形成最后的32比特输出。
由上述对本发明的详细说明可知,本发明的加密方法1在加密一明文字串后,其加密参考数据4即被重新改写,且改写方式与该明文相关。如此一来,当本发明的加密方法用于加密后接下来的另一明文字串时,其加密结果不仅与密钥码7有关,并且该已被改写的加密参考数据4与前一明文字串有关,故,本发明的加密方法1所加密的密文不仅与该密钥码7有关,还与整个加密过程相关。这样的作法,大幅地增加本发明加密方法1的非线性,使加密后的密文更难被破解。
为使本发明的特征更清楚,现以一128比特的密钥码依序加密四段内容完全相同的64-比特明文密钥码00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00四段64-比特明文字串分别为00 00 00 00 00 00 00 0000 00 00 00 00 00 00 0000 00 00 00 00 00 00 0000 00 00 00 00 00 00 00而利用本发明加密方法1依序加密该四段明文后所得的四段密文字串为98 38 97 4E 36 07 B3 D090 FD BE 62 B0 6F DD D490 FB B5 88 71 03 63 3004 B5 63 6F 87 CE 28 AE虽然该四段明文字串内容完全相同,加密该四段明文字串所用的密钥码亦完全相同,但依序加密该四段明文后所得的结果却已完全不同。正如前面所提到的,本发明加密方法1加密后的结果不仅与密钥码有关,还与加密的过程有关。
总之,本加密方法的特征在于,功能方块28所产生的阵列n重排阵列N(如功能方块24所述)。此一重排过程改写加密参考数据,使得该加密参考数据不仅与该密钥码有关,还与已加密的过程有关,以此增加加密过程的复杂度与非线性,减少被破解的机会。
本加密方法也有一相对应的解密方法。此时只要将功能方块22代以描述于图7的功能方块30,便可将原来加密的过程改为解密的过程即以密文为输入,配合原来的密钥码,输出明文。
以上所述仅为本发明的优选实施例,在本发明权利要求内所做出的等效变化与改进,皆应属于本发明的覆盖范围。
权利要求
1.一种加密方法,用于将一长度固定的明文字串,配合一给定的密钥码,得到一对应的密文字串;该加密方法包含有下列步骤给定该密钥码与该明文字串;以一起始算法,配合该密钥码,产生加密参考数据;以一加密算法,配合该加密参考数据,将该明文字串加密为该密文字串;其中,该加密算法接收一固定长度字串与该加密参考数据为输入,经过特定的步骤后,输出一加密后的固定长度字串;而该加密算法还包括一重置过程,在加密其输入字串后,重设该加密参考数据。
2.如权利要求1所述的加密方法,其中,该加密参考数据为三阵列,分别为一次密钥码阵列,一排序对应阵列及一脚标阵列。
3.如权利要求2所述的加密方法,其中,该加密算法接收一输入字串与该加密参考数据后,以下列步骤得到一输出字串(1)将输入该加密算法的字串分为一左字串与一右字串,以脚标阵列中第一元素为脚标,并取出该次密钥阵列中对应该脚标的元素,以以上三者与次密钥阵列中第一元素,以特定法则计算出一左输出、一右输出及一新脚标;(2)以前步骤的左右输出,另以该脚标阵列中第二元素为脚标取得该次密钥码阵列中的对应元素,以以上三者以特定法则,还计算出新的左右输出及一新脚标;(3)重复进行步骤(2)固定次数,每次进行中,依序以脚标阵列中第三、第四…元素为脚标取得该次密钥码阵列中的对应元素,以前述步骤的左右输出,利用以上三者以特定法则还计算出新的左右输出及一新脚标;(4)将步骤(3)的左右输出,还以脚标阵列中最后一元素为脚标取得该次密钥阵列的对应元素,以以上三者及该次密钥阵列中最后一个元素,以特定法则计算出左右输出及一新脚标,此左右输出对应于该输入字串的该输出字串;和(5)合并步骤(1)至(4)所产生的新脚标,以特定法则重新安排该加密参考数据中的该脚标阵列。
4.如权利要求3所述的加密方法,其中,该起始算法包含下列步骤以预设常数填入该三阵列中;以给定的密钥码,配合该次密钥码阵列,以一特定程序重新计算该次密钥码阵列;以一初始加密算法重新计算该次密钥阵列;和以该初始加密算法重新计算该排序对应阵列。
5.如权利要求4所述的加密算法,其中,该初始加密算法与该加密算法相同。
全文摘要
一种基本的加解密方法,可配合一给定的密钥码,将一长度固定的明文字串加密为一密文字串。在本发明的加密方法中,包含一与加密过程相关的重置过程,使加密后的密文字串不仅与该密钥码及该明文字串有关,还与该加密方法的加密过程相关。故,本发明为一具有高度非线性特性的加密法,可降低被破解的机会。
文档编号H04L9/00GK1348278SQ0012598
公开日2002年5月8日 申请日期2000年10月10日 优先权日2000年10月10日
发明者林振群 申请人:优硕资讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1