信息处理64bit分组密码算法的工作方式_第1页
信息处理64bit分组密码算法的工作方式_第2页
信息处理64bit分组密码算法的工作方式_第3页
信息处理64bit分组密码算法的工作方式_第4页
信息处理64bit分组密码算法的工作方式_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信息处理64bit分组密码算法的工作方式一主题内容与适用范围 本标准描述了采用秘密密钥的任意一种64bit分组密码算法的四种工作方式。 注:附录a(参考件)包含了对每一种工作方式性质的简要评述。 本标准规定了四种确定的工作方式,以便在64bit分组密码的任何应用(例如数据传输,数据存储,鉴别)中,对诸如工作方式的详细说明、启动变量的生成以及参数值的选定提供一个有用的参照。 注:对密文反馈(cfb)工作方式(见第6章),要确定两个参数j和k;对输出反馈(ofb)工作方式(见第7章),要确定一个参数j。在使用其中一种工作方式时,相应参数要由通信的所有各方选定和使用。 二 术语 2.1明文 plai

2、ntext 未加密的信息。 2.2密文ciphertext 已加密的信息。 2.3分组链接block chaining 一种信息加密方法,每一个密文分组在密码上依赖于前一个密文分组。 2.4初始化值 (iv) initializing value (iv) 用来确定加密过程的启动点的值。 2.5启动变量(sv)starting variable (sv) 由初始化值导出的且用来确定工作方式启动点的变量。 注:本标准没有规定由初始化值导出启动变量的方法。这需要在应用这些工作方式时另行描述。 2.6密码同步cryptographic synchronization 加密与解密过程的协调一致。 三记

3、法 本标准中,由分组密码算法定义的函数关系记为: c=ek(p) 式中: p-明文分组; c-密文分组; k-密钥。 ek表示使用密钥k的加密运算。 对应的解密函数记为: p=dk(c) 用大写字母表示的变量,如上述p和c,表示一维比特阵列,例如: a=a1,a2,a m b=b1,b2,b m 便是两个m比特阵列,其比特从1至m编号。 模2加法运算,也称作异或函数,用符号? 来表示。a,b两个阵列的模2加运算定义为: a? ba1? b1, a2? b2, a m ? bm 选取阵列a的最左边j个比特以产生一个j比特阵列的运算记为: aj=a1,a2, a j 这种运算只有当jm(m是阵列a

4、中的比特数)时才有定义。 “移位函数”s k定义如下: 已知一个m比特变量x和一个k比特变量f,这里km,移位函数s k(xf)的作用就是产生如下m比特的变量: sk(xf)(x k+1,x k+2,x m,f1,f2,fk) 它的作用乃是将阵列x中的比特向左移动k个位置,舍弃x1,x k,并将阵列f放到x的最右边的k个位置上。 本标准中使用这个函数的一种特殊情况,x为k比特全“1”的变量,记作i(k),f为j比特变最c,此处jk。上述作用为: sj(i(k)c)1,1,1,c1,c2, ,cj 此阵列的最左边为k-j个“1”。 四 电子密本(ecb)方式 已知一个64比特的明文分组p,加密算

5、法产生一个64bit密文分组c,即: cek(p) 解密算法产生: pdk(c) 这种使用加密算法的方式称作“电子密本”方式。 五 密码分组链接(cbc)方式 用于cbc加密方式的变量为: a.n个明文分组p1,p2, pn组成的序列,每个分组都是64bit; b.密钥k; c.64bit启动变量sv; d.n个密文分组c1,c2,c n组成的结果序列,每个分组都是64bit。 注:本标准没有描述生成sv的方法。 cbc加密方式描述如下。 加密第一个明文分组: c1ek(p1? sv) (1) 接着: ciek(pi? c i-1)i=2,3, ,n (2) 这一过程如图1的上半部分所示。启动

6、变量sv用于产生第一个密文输出分组。 随后,将密文分组与下一个明文分组进行模2加后再加密。 cbc解密方式描述如下。 解密第一个密文分组。 p1dk(c1)? sv (3) 接着: pidk(ci)? c i-1 i=2,3, ,n (4) 这一过程如图1的下半部分所示。 图1密码分组链接(cbc)工作方式 六 密文反馈(cfb)方式 6.1两个参数定义一种cfb工作方式: a.反馈变量的大小k,1k64; b.明文变量的大小j,1jk。 用于cfb工作方式的变量为: c.输入变量: n个明文变量p1,p2, ,pn组成的序列,每个变量都是j比特。 密钥k; 64bit的启动变量sv。 d.中

7、间结果: n个算法输入变量x1,x2,x n组成的序列,每个变量都是64bit; n个算法输出变量y1,y2,y n组成的序列,每个变量都是64bit; n个变量e1,e2,e n组成的序列,每个变量都是j比特; n个反馈变量f1,f2,f n组成的序列,每个变量都是k比特。 c输出变量,即n个密文变量c1,c2,c n组成的序列,每个变量都是j比特。 注:本标准没有描述生成sv的方法。 变量x的初始值置为: x1sv (5) 6.2对每个明文分组的加密运算采用下列五个步骤: a.使用加密算法: yi=ek(x i) (6) b.选取最左边j比特: ei=yij (7) c.产生密文分组: c

8、i=pi? ei (8) d.产生反馈分组: fisj(i(k)ci) (9) e.对x移位: x i1sk(x ifi) (10) 对i为1、2、n,重复上述步骤,但最后一轮时,作完(8)式就结束。这一过程如图2的左半部分所示。加密算法输出y的最左边j比特用来和j比特明文分组按模2加进行加密,y的其余比特舍弃不用。明文和密文分组中比特从1至j编号。 在密文公组最左边添加k-j个“1”,将其扩展成一个k比特阵列f,然后将x阵列中的比特左移k位并将阵列f插到它的最右边k位,以产生新的x。在此移位操作中,舍弃x的最左边k个比特。阵列x的初始值就是启动变量(sv)。 6.3用于解密的变量和加密所用的

9、相同,变量x的初始值x1置为sv。 图2 密文反馈(cfb)工作方式 对每个密文分组的解密运算采用下列五个步骤: a.使用加密算法: yi=ek(x i) (11) b.选取最左边j比特: ei=yij (12) c.产生明文分组: pi=ci? ei (13) d.产生反馈分组: fisj(i(k)ci) (14) e.对x移位: x i1sk(x ifi) (15) 对i为1、2、n,重复上述步骤,但最后一轮时,作完(13)式就结束。这一过程如图2右半部分所示。加密算法输出y的最左边j比特用来和j比特的密文分组按模2加进行解密,y的其余比特舍弃不用。明文和密文分组中的比特从1至j编号。 在

10、密文分组最左边添加k-j个“1”,将其扩展成一个k比特阵列f,然后将阵列x中的比特左移k位,并将阵列f插到它的最右边k位,以产生新的x。在此移位操作中,舍弃x的最左边k个比特。阵列x的初始值就是启动变量(sv)。 6.4建议采用j与k相等的cfb方式。 此时,(9)式和(14)式可写成: fici(j=k时) 七 输出反馈(ofb)方式 7.1一个参数,即明文变量的大小j,定义一种ofb工作方式,这里1j64。 用于ofb工作方式的变量为: a.输入变量: n个明文分组p1,p2,p n组成的序列,每个分组都是j 比特; 密钥k; 64bit的启动变量sv。 b.中间结果: 1n个算法输入变量

11、x1,x2,x n组成的序列,每个变量都是64bit; 2n个算法输出变量y1,y2,y n组成的序列,每个变量都是64bit; 3n个变量e1,e2,e n组成的序列,每个变量都是j比特; c输出变量,即n个密文分组c1,c2,c n组成的序列,每个变量都是j比特。 注:本标准没有描述生成sv的方法。 变量x的初始值置为: x1sv (16) 7.2对每个明文分组的加密运算采用下列四个步骤: a.使用加密算法: yi=ek(x i) (17) b.选取最左边j比特: ei=yij (18) c.产生密文分组: ci=pi? ei (19) d.反馈运算: xi1yi (20) 对i为1、2、

12、n,重复上述步骤,但最后一轮时,作完(19)式就结束。这一过程如图3左半部分所示。加密算法的每次输出yi被用于反馈,成为x的新值x i1。yi的最左边j比特用来对输入分组加密。 7.3用于解密的变量与加密所用的相同。变量x的初始值x1置为sv。 对每个明文分组的解密运算采用下列四个步骤: a.使用加密算法: yi=ek(x i) (21) b.选取最左边j比特: ei=yij (22) c.产生明文分组: pi=ci? ei (23) d.反馈运算: xi1yi (24) 对i为1、2、n,重复上述步骤,但最后一轮,作完(23)式就结束。这一过程如图3右半部分所示。变量xi和yi的值与加密时所

13、用的值相同,只有(23)式与(19)式不同。 图3输出反馈(ofb)工作方式 附录a 工作方式的性质 (参考件) 一 电子密本(ecb)工作方式的性质 在计算机之间或人与人之间,传送信息的报文可能有重复,或者是常用序列。在ecb方式中,对于相同的密钥,相同的明文产生相同的密文,这一特性使ecb方式不适于一般使用,在今后那些可以接受这种重复特性的应用标准中会规定ecb方式的使用方法。 如果加密和解密之间的分组边界不匹配(例如某种比特错位),则在正确的边界重新确立前,加密和解密运算一直失步,此时所有的解密结果都是不正确的。 二 密码分组链接(cbc)工作方式的性质 凡是使用同一个密钥和同一个初始化

14、值加密相同的明文,cbc方式便得到相同的密文。计较该特性的用户,应设计某种方法来改变明文的起点、密钥或启动变量。一种可能是在每份cbc报文的开头加上一个唯一的标识符(例如一个增1计数器);当加密那些大小不增加的记录时,可以用的另一种方法是用某个值作为初始化值,这个值可以在不知道该记录的内容的情况下,就从它计算出来(例如,在随机存取存储器中包含该记录的组号)。 由于cbc方式是逐个分组加密的,它需要对完整的64bit数据分组进行运算,不足64bit的分组需要特殊处理。 在cbc方式中,单个密文分组内一比特或多个比特的错误将影响两个分组的解密(错误所在的分组及下一个分组)。如果错误出现在第i个密文

15、分组,则在第i个明文分组中,每个比特都将有50的平均错误率,而第i+1个明文分组中,只在直接对应于错误的密文比特的位置上是错的。 如果加密和解密间的分组边界不匹配(例如某种比特错位),则在正确的边界重新确立之前,加密与解密运算一直失步,此时所有的解密结果都是不正确的。 三 密文反馈(cfb)工作方式的性质 在cfb方式中。任一j比特密文单元中的错误将影响已出错的那个密文分组的解密以及后面的密文的解密,直到这些错误比特被移出cfb的输入分组为止。第一个受影响的j比特明文单元,恰好在密文发生错误的那些位置上被破坏,随后解密的明文都将有50的平均错误率,直至所有的错误被移出输入分组。假定在这段时间里

16、没有发生别的错误,接着就可得到正确的明文。这种特性被称作“有限错误扩散”。 如果在解密过程中,j比特边界不匹配,则密码同步也将失去,这种情况将持续到重新进行密码初始化或在j比特边界重新匹配后的64bit为止。 在cfb方式中,加密和解密过程两者都使用算法的加密运算。 四 输出反馈(ofb)工作方式的性质 ofb工作方式不会把密文错误在解得的明文输出中扩散,密文中的一比特错误只造成解密后的明文分组中相应位置上的一比特错误。此工作方式不是自同步的,如果加密和解密运算两者出现失步,则系统必须重新初始化。这种失步可能是由于j比特分组边界失去匹配(例如某种比特错位)或者可能是在一端或另一端变量x的值发生错误,从而造成两端的x值不同,直到进行重新初始化后为止。 每次重新初始化,应当使用和先前同一密钥时用过的sv值不同的新的sv值。 附录b 本标准与国际标准is

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论