论文网首页|会计论文|管理论文|计算机论文|医药学|经济学论文|法学论文|社会学论文|文学论文|教育论文|理学论文|工学论文|艺术论文|哲学论文|文化论文|外语论文|论文格式
中国论文网

用户注册

设为首页

您现在的位置: 中国论文网 >> 计算机论文 >> 计算机理论论文 >> 正文 会员中心
 计算机应用论文   计算机理论论文   计算机网络论文   电子商务论文   软件工程论文   操作系统论文   通信技术论文
基于AES加解密系统的设计与实现
作者简介作者简介:曾炜(1987-),男,中国人民解放军国防信息学院助教,研究方向为网络安全;王科怀(1987-),男,硕士,中国人民解放军国防信息学院助教,研究方向为软件可靠性、容错计算、移动计算、服务可用性评测。0引言
  在信息时代,数据有着异常重要的地位。因此,数据在存储、传送中必须保证安全,研究和设计相关的数据加密解密系统因而显得十分必要。本文利用aes(advanced encryption standard)对称加密标准,设计和实现了一套数据加密解密系统,为数据安全提供保障。
  1高级加密标准aes
  1.1rijndael算法简介
  nist将rijndael算法作为高级加密标准[1]。rijndael的运算易于抵抗强力和时间选择攻击[2],此外,无需显著降低rijndael的性能就可提供对抗这些攻击的防护。
  rijndael算法是一个可变数据块长和可变密钥长的分组迭代加密算法,数据块长和密钥长可分别为128、192或256比特,但为了满足aes的要求,分组长度为128比特,密钥长度为128、192或256比特[3]。数据块要经过多次数据转换操作,每一次转换操作产生一个中间结果,这个中间结果被称为状态[1]。状态可表示为二维字节数组即状态矩阵,它有4行、nb列,且nb等于数据块长除以32,在标准aes里nb=4。密钥也可类似地表示为二维字节数组,它有4行、nk列,且nk等于密钥块长除以32。算法转换的轮数nr由nb和nk共同决定[1],具体数值如表1所示。wWw.11665.cOm
  表1在不同nb和nk下轮的数值nr
   nrnb=4nb=6nb=8nk=4101214nk=6121214nk=8141414rijndael算法采用替代/置换(sp)网络结构[4],每一轮由3层组成:①非线性层:进行subbyte变换(即s盒替换),起混淆作用;②线性混合层:进行shiftrow行变换运算和mixcolumn列变换运算,以确保多轮之上的高度扩散;③密钥加层:子密钥简单的异或到中间状态上。
  1.2rijndael算法加密解密流程
  rijndael算法加密和解密基本流程[4]如图1所示(以128位为例)。
  图1aes算法加解密基本流程
  2aes加解密系统设计与实现
  2.1系统设计
  aes算法要实现的功能是将数据信息按128比特分组进行加密或解密,而且要支持3种密钥长度(128、192和256比特)的输入[5]。本设计通过用vc++编程语言实现aes加解密算法,使它能够对输入数据(字符串或文件)按用户设置的密钥进行加密或解密。系统模块如图2所示。
  图2系统模块
  本系统有用户控制、密钥扩展、字符串加密、字符串解密、文件加密、文件解密等模块。各个模块功能如下:①用户控制模块:此模块用于设置密钥位数以及输入初始密钥,密钥是数字字母组合的字符串,通过此模块,用户可以设置密码位数为128、192、256位;②密钥扩展模块:此模块用于对初始密钥进行扩展,根据算法实现对输入密钥的编排;③字符串加密模块:此模块根据rijndael算法用于对所输入的字符串进行加密;④字符串解密模块:此模块用于对根据rijndael算法加密形成的密文进行解密;⑤文件加密模块:此模块用于对文件进行加密;⑥文件解密模块:此模块用于对文件进行解密。
  系统工作流程图如图3所示。
  2.2系统实现
  该系统在windows xp系统环境下运行,用vc6.0编译运行后会出现系统界面。密钥位数初始值设置为128bits,密钥初始值设置为空,字符串预设值是0123456789abcdef。用户界面如图4所示。
  如图4所示,字母标记处为各个控件位置。
  图中标记的a、b、c三个按钮是用来选择密钥位数的,默认值是128bits。点击任意一个按钮后,然后点击d处的“设置密钥位数”按钮可将密钥位数设置成相应的值。
  图中标记的d处按钮可用来设置密钥位数。
  图中标记的e处是数据加解密密钥的edit box控件,此处设置的初始值为空,我们也可以从这里输入任何想设置的密钥,然后点击f处的“设置密钥”按钮,密钥即设置成功。每次加解密时,程序都会调用此密钥进行aes加解密。
  图中标记的f处是设置密钥按钮,点击它可以手动设置密钥。
  图中标记的g处是进行字符串加密时字符串的edit box控件,此处设置的初始值是0123456789abc def,也可以任意输入字节,然后点击h处的“字符串加密”按钮,程序就会调用密钥对该字符串进行aes加密。
  图3系统工作流程
  图4用户界面
  图中标记的h处是

字符串加密按钮,当设置好密钥位数及密钥后,点击它就会对字符串进行加密。
  图中标记的i处显示的是明文字符串经aes加密后输出的密文字符串。
  图中标记的j处按钮在字符串加密后要想解密该字符串则点击它。
  图中标记的k处显示的是要选择加密文件的存储路径。
  图中标记的l处是文件读取按钮,点击它就会出现文件选择框,然后则可选择需要加密的文件。
  图中标记的m处是文件加密按钮,当浏览需要加密的文件后点击它就会对该文件进行aes加密。
  图中标记的n处是文件解密按钮。对文件加密后,点击它就会对相应的密文文件进行解密。
  图中标记的o处显示的是一个文件加解密的进度条,文件加解密时会显示出其进度。
  图中标记的p处是关闭程序按钮。
  下面举例对文件进行加密解密试验。点击想要设置的密钥位数,如256bits,并设置密钥为000,浏览一个本地文件,然后打开一个rmvb文件进行加密。加密成功后如图5所示。
  图5文件加密
  文件解密与文件加密相同,先浏览要解密的文件,但该文件必须是经过aes加密后的密文文件,否则会出现对话框“文件可能已损坏或非经aes加密过”。在设置好正确的密钥位数和密钥后,才能解密成原始的明文文件,否则会出现乱码文件。
  浏览密文文件后解密如图6所示,其中.en文件是加密后系统自动生成的密文文件。
  3结语
  本文提出的aes加解密系统是严格按照rijndael算法设计和实现的,可以手动设置密钥及其位数,并对字符串和文件进行加密解密。而当加密和解密密钥不同时,解密后不会得到正确的明文。系统采用vc++6.0运行平台、windows xp操作系统,在编写程序过程中,要求稳定、简洁明了,尽量减少由于程序跳转等问题造成的程序运行错误或漏洞。经过测试,本文所设计和实现的aes加解密系统运行稳定,具有很好的实用性。
  图6文件解密
  参考文献参考文献:
  \[1\]nist. advanced encryption standard (aes) [m].federal information processing standards publication,2001.
  [2]murphy s,robshaw m j b.essential algebraic structure within the aes[r].in:proceedings of crypto'02, santa barbara, california,usa,2002.
  [3]张超,陆浪如,楚泽甫,等.aes 算法及其实现技术[j].交通与计算机,2001,19(3).
  [4]陈鲁生,沈世镒.现代密码学[m].第1版. 北京:科学出版社,2002.
  [5]张清华,马传龙,赵继德,等.rijndael 算法及其性能分析[j].
  • 上一个计算机论文:
  • 下一个计算机论文:
  •  作者:佚名 [标签: 解密 系统 实现 ]
    姓 名: *
    E-mail:
    评 分: 1分 2分 3分 4分 5分
    评论内容:
    发表评论请遵守中国各项有关法律法规,评论内容只代表网友个人观点,与本网站立场无关。
    基于Java RMI的分布式数据库系统开发与应用
    基于安卓的掌上校园客户端设计初探
    基于Asterisk的呼叫中心弹屏模块设计与实现
    基于PLC井下主排水泵综合自动化控制的研究
    基于WSN—T的车位管理原型系统探究
    基于频段局部能量特征方法的接地网故障诊断
    基于CATIA飞机三通导管零件的逆向建模
    基于Windows构架网络数据包拦截技术的个人防
    基于MIDAS的大体积混凝土水管冷却仿真分析
    eyue基于精明增长管理的泉州中心城区空间扩
    对天津市科技型中小企业数量基于时间序列的
    云存储中基于PAXOS算法的数据一致性研究
    | 设为首页 | 加入收藏 | 联系我们 | 网站地图 | 手机版 | 论文发表

    Copyright 2006-2013 © 毕业论文网 All rights reserved 

     [中国免费论文网]  版权所有