欢迎来到天天文库
浏览记录
ID:10345948
大小:59.50 KB
页数:5页
时间:2018-07-06
《初探java的cbc保密模式应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、初探Java的CBC保密模式应用初探Java的CBC保密模式应用以下是小编精心为大家分享的Java的CBC保密模式应用,让我们一起学习,一起进步吧!。1引言随着全球信息高速公路建设的兴起和通信的网络化数字化,个人化,智能化,宽带化进程的不断加快,用户对信息的安全存贮,安全处理和安全传输的需求愈益迫切。伴随着Inter开放性扩展,以及个人通信。多媒体通言,力公室自动化,电子邮件,电子自动转帐支付系统,自动零售业务网的建设与实现,信息的安全保护问题就更显突出,解决这一问题的有效的手段是使用现代密码技术。密码学新方向[11的发表和美国数据加密标准DES的颁
2、布实施标志着现代密码学的开端。从此揭开了商用民用密码研究的序幕。此后实用密码本制的研究基本上沿两个方向进行,即以RSA为代表的公开密钥密码体制和以DES为代表的秘密钥分组密码体制。分组密码具有高强度。高速率,便于计算机软硬件实现,易于标准化和灵活性等特点,通常是信息与网络安全中实现数据加密,数字签名,认证,密钥管理的核心体制,它在通信网络f尤其是计算机通信1和系统安全领域有着最广泛的应用。由于Java在网络编程中的适用性,以及Java安全体系结构的日益完善和目前Java开发网络安全软件的便利性,用Java来实现信息的加密、解密会具有更好的安全性和应用
3、性。2数据加密技术数据加密技术是实现信息保密性的一种重要手段,是采用数学方法对原始信息(通常称为明文)进行重新组织,使得加密后的信息f称为密文)在传输过程中,即使被非法接收者获得也无法正确识别。信息的加密能保证交易信息的秘密性。保证用户信息不被非法提取。使用加密技术实施数字签名,进行身份认证,对信息进行完整性校验,能保证信息的真实性和完整性。在所有的加密算法中。最常用的是置换表算法。在该算法中,每一个数据段对应着置换表中的一个偏移量,偏移量所对应的值就输出成为加密屙的文件。加密程序和解密程序都需要一个这样的置换表。这种加密算法比较简单,加密解密速度快
4、,但是只要获得置换表,加密方案容易被识破。一种改进的算法是字/字节循环移位和XOR操作如果把一个字或字节在一个数据流内做循环移位。使用多个或变化的方向f左移或右移),就可以迅速的产生一个加密的数据流。如果再使用XOR操作。按位做异或操作,那么破译密码就相当困难。CBC(CipherBlockChaining)使用的就是这种思想。3CBC工作模式分析与应用3.1CBC工作模式CBC和ECB、OFB、CFB是1980年NBS为DES推出的保密模式,随后,被包含在ISO的642比特的模式标准中。为了尽可能地利用以前的标准,降低成本,NIST也将这4个模式列
5、为AES的模式标准。下面是CBC保密模式的加密解密变换公式。EK(X):在密钥K作用下加密算法对明文块X的加密。E一1KfY):在密钥K作用下解密算法对密文块Y的解密。P1,?,,表示明文,每个Pi是n比特块,n是所用密码的分组长度。C1,?,Ci,表示相应的密文。加密变换:Ci=EKfPi④Ci一1)。解密变换:Pi=E一1K(Ci1①Cil,C0是初始向量。3.2对称密钥的生成要使用CBC模式【1进行加密解密,首先需要生成密钥文件。如果一个密码系统的加密密钥和解密密钥相同,即收发双方使用相同密钥的密码,即为对称密钥加密,通常称之为SessionK
6、ey。对称密钥加密技术的经典算法是DES(DataEncryptionStandard)算法。DES主要采用替换和移位的方法加密。其运算速度快,密钥生成容易,效率高,具有极高的安全性,适合加密大量的数据。Java中对称密钥的生成如下:publicvoidSkeyDES()try{∥使用DESede算法获取密钥生成器KeyGeneratorkg=KeyGenerator.getlnstance(*DESede):,/初始化密钥生成器,密钥长度为168kginit(168):∥生成密钥SecretKeyk=kg.generateKey()://以序列化方
7、式保存密钥FileOutputStreamfos=nefJ
8、key.dat):ObjectOutputStreambos:ne(fos);bos.writeObject(k);∥关闭流bos.close();)catch(Exceptione){e.printStackTraceO;}生成的密钥保存在文件key.dat中。3.3使用CBC保密模式进行加密、解密对密文分组[5,6】的不同形成了不同的加密方式,EBC(ElectronicCodeBook)加密方式对每个明文分组独立进行处理。所以,如果明文字节分组相同的话,加密后的密文也是相同的分组。CB
9、C(CipherBlockChaining)加密方式在块加密法中增加反馈机制,保证即使输入中的明文块重复出现
此文档下载收益归作者所有