混合加密技术在网络通信安全中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
混合加密技术在网络通信安全中的应用
杨丽丽
(湛江师范学院基础教育学院数计系,广东湛江524300)
摘要:针对网络通信中的窃听、重放等安全问题,本文设计了一种公钥加密方法RSA 与传统加密方法AES 相结合的混合密钥加密方案,以保证网络通信中数据的保密性,本方案已在Java 平台下进行测试和实现。
关键词:网络安全;数据加密;Java ;AES ;RSA
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2009)05-1077-02
Technique of Mixed Cryptography and its Application in Network and Communication Security
Yang Li-li
(Department of Mathematics and Computer Science,Zhanjiang 5243000,China)
Abstract:To prevetent from the attacking of listening and replaying ,and strengthen the safety in network communication.A scheme of mixed crypography is brought forward,and the principle of the scheme is that before transmitted,the data is encrypted using AES,and the Key of AES is encrypted using RSA.The scheme is tested and implemented by Java language.
Keywords:network security;data crptography;Java;AES;RSA
1引言
网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。网络安全从其本质上来讲就是网络上的信息安全。为了保证信息安全不受侵犯,可以采用多种技术,如加密技术、访问控制技术、认证技术以及安全审计技术等。但迄今为止,最重要的网络与通信自动化安全中工具是加密。广泛使用的两种加密形式是传统加密和公钥加密。本文将两种加密形式相结合,在Java 环境下使用AES 和RSA 加密算法对数据进行加密和解密。
2数据加密技术概述
加密是从明文到密文的变换过程。计算机上数据的加、解密变换是由密钥控制实现的。根据加、解密过程使用的密钥是否相同,可将现代密码技术分为对称加密算法和公钥加密算法两类。对称加密算法中,加、解密使用的密钥相同,加、解密速度快,算法简便高效,密钥简短,但其安全性完全依赖于密钥。而密钥管理是对称密码的一个严重瓶颈。在公钥加密算法中,加、解密使用不同的密钥,几乎不可能从一个密钥推导出另一个密钥,它适应于网络开放性要求,密钥管理简单,但算法复杂,加、解密效率低。
目前常用的对称加密技术有DES 、3DES 和AES 。DES 是旧的加密标准,它的密匙长度为56位,加密强度较低已被认为不是安全的加密技术。3DES 是对DES 的改进,对明文用一个不同的DES 密匙进行DES 加密、解密和再加密,这样可以提高加密强度。AES 是新的加密标准,它是DES 的替代者,它的密钥长度有128、192和256三种,目前还没有被人攻破。目前使用的非对称加密技术主要有RSA 和ECC ,其中1024位的RSA 是目前使用最为广泛的非对称加密技术。本文将在Java 平台下将AES 与RSA 相结合对网络通信中数据进行混合加密。
3Java 中的数据加密类
由于Java 一开始就是面向网络应用的,它十分重视数据的安全性,在JDK 1.1中就已支持DES 加密技术,在JDK1.5中支持DES 、3DES 、AES 等对称加密技术,在非对称加密技术方面支持RSA 技术,在Java 还可以安装其它公司的加密包,使用“SunJCF ”所不支持的其它加密算法,因此Java 在电子商务中得到了广泛的应用。Java 中的与数据加密相关的类与方法主要有:
1)KeyGenerator 类用于获得各类对称加密技术的密钥,主要方法有:
getlnstance(“加密算法字符串”),用于设置要获得的密钥的加密算法init()化对称加密的密匙对象;
generateKey(),从对称加密的密钥对象中取得密钥;
2)KeyPairGenerator 类用于获得非对称加密技术的密钥。主要方法有:
getInstance(“非对称加密算法字符串”),用于设置要获得的密钥的加密算法;
initialize(“密钥长度”),用于初始化非对称加密的密钥对象;
generateKeyPair(),返回非对称加密密钥对;
getPublic(),从非对称密钥对中取得公钥;
getPrivate(),从非对称密钥组中用于取得私钥;
3)Cipher 类是Java 加密的主要类,用于按一定的算法对数据进行加密、解密、包装和返包装。主要方法有:
getlnstance(“加密算法字符串”),用于设置要使用的加密算法;
Init(“类型”,密钥),按提供的类型和密匙初始化加密对象;
getBLockSize(),用于返回加密算法的输入分组长度;
收稿日期:2009-01-15
作者简介:杨丽丽(1983-),女,山西运城人,助教,硕士研究生,主要从事计算机网络安全研究。
ISSN 1009-3044
Computer Knowledge and Technology 电脑知识与技术
Vol.5,No.5,February 2009,pp.1077-1078,1080E-mail:info@ Tel:+86-551-56909635690964