AES算法演示平台的设计与实现
2019-10-15何芷芯万武南蔡科森
◆何芷芯 万武南 蔡科森
AES算法演示平台的设计与实现
◆何芷芯 万武南 蔡科森
(成都信息工程大学网络空间安全学院 四川 610225)
密码学作为信息安全专业的核心课程,具有过程复杂、原理抽象的特点。由于课程难度较大,密码学的教学过程较为抽象,学生的学习过程存在困难。通过对密码算法与web技术的分析研究,本文提出了密码算法演示平台的设计与实现,以AES算法为例,实现了密码算法的动态可视化与直观化,提供了算法演示、算法简介、算法练习等功能,有效解决了密码算法教师教学困难、学生难以理解的问题。在实际应用中,该平台可作为教学辅助和自主学习的工具。
密码学;演示平台;AES;可视化
密码学作为信息安全的核心技术和基石,在保障信息安全的应用中具有重要作用,是信息安全专业的主要课程之一[1]。密码学是一门抽象复杂的课程,易造成教师教学困难、学生难以理解的问题。密码算法具有原理抽象、计算量大的特点,一个密码算法的加密解密操作由多种不同的运算步骤组成,通常需要执行r轮的操作才能得到运算结果符合实际的。在学习过程中,若仅限于课本,学生很难完整连贯的理解算法的执行过程以及数据的动态变化。算法演示是解决以上难题的途径之一,以图形化界面展示具体的算法过程、数据变换,能够使学生更加直观易懂的理解密码算法[2-5]。
AES算法在密码学中占据重要地位,具有安全性、高效率、可实现和使用灵活等特点,是信息安全专业学生必须重点掌握的密码算法之一。基于此,本文以AES算法为例,具体阐述了密码学算法演示平台的设计与实现。通过Web技术,平台实现了密码算法的直观化和动态化的交互演示,提供了演示功能、练习功能、演示功能,可作为教学辅助和自主学习平台。
1 系统功能框架
本平台采用Web技术进行设计与开发,采用Mysql数据库进行数据存储。通过对AES算法的研究,实现一个计算效率高、界面简洁美观的AES算法演示平台。平台功能完整,内容丰富,共有4个主要功能模块:算法演示模块、算法简介模块、算法练习模块、数据管理模块。图1为系统功能图。
2 功能模块设计
2.1 算法演示模块
演示模块实现了AES-128、AES-192、AES-256 三个AES版本的加密解密运算功能。并且还演示了AES算法中每一过程的状态矩阵变化,具体到每个状态矩阵的每个字节的变换过程。直观的动态变化过程使用户能够更加清晰的理解置换过程。
算法演示分为加密、解密两个模块。加密模块分为5个子模块(表1):字节代替、行移位、列混合、密钥扩展、轮密钥加。解密模块分为5个子模块:逆字节代替、逆行移位、逆列混合、密钥扩展[6-8]。
图1 系统功能框架
表1 加密模块功能
2.2 算法简介模块
简介模块如表2分为两个子模块:算法结构图简介、文字说明简介。该模块采用了数据与理论相结合的方式,使用户更加直观清晰的理解运算过程;能够加深用户对密码算法的理解,清晰连贯的梳理用户的知识体系。
表2 算法简介模块功能
2.3 算法练习模块
练习模块提供了AES算法练习功能,其中包含AES运算过程中的基本变换,例如轮密钥加、字节代替。用户输入数据进行在线计算,平台展示出每一字节的置换过程及计算结果。该模块能够提高用户的计算能力并巩固用户的AES知识。通过练习,用户可以及时反馈知识点,进行更有针对性的练习。
2.4 数据管理模块
管理模块使用Mysql数据库作为数据保存的容器,对系统生成和用户存档的数据进行管理,分为4个子模块:用户基本信息管理、练习记录管理、论坛内容管理、信息存储管理。模块功能如表3所示:
表3 数据管理模块功能
3 平台功能演示
3.1 算法演示
算法演示为整个系统的核心功能,平台使用十六进制进行数据展示。在该模块中,用户通过测试数据、随机生成、手动输入三种方式生成十六进制的初始数据。选择加密解密操作后,进入完整的AES算法演示界面。菜单栏可以自由切换所演示的操作,翻页切换所执行的轮数。图2为数据输入界面:
图2 数据输入界面
3.2 算法简介
算法简介模块实现了数据变换、文字说明、结构图说明的有效结合,目的在于加深用户对AES算法的理解。通过简单易懂的介绍,使用户对AES算法能够有着更加清晰直观的认识。图3为结构图介绍界面:
图3 算法简介界面
3.3 算法练习
算法练习模块可以进行AES加密解密在线计算、多个子过程在线计算功能。子过程页面涵盖了以下内容:概念理解、计算演示、练习检验。用户以十六进制形式输入数据,根据平台展示的计算过程与结果,用户能够及时检测练习结果。通过该模块的学习,用户能够在实践中提高计算能力,巩固算法基础。图4为轮密钥加在线计算界面:
图4 轮密钥加在线计算界面
3.4 数据管理
数据模块对系统生成的数据与用户存档的数据进行管理。该模块提供了论坛、收藏等功能,为用户提供了一个界面友好的交流平台。图5为登录界面:
图5 数据管理界面
4 平台实际应用
4.1 教学应用
对于教师而言,该平台可作为教学辅助工具。
平台通过算法演示的形式,增强了抽象算法的直观性;将传统教学方式与数字化教学方式相结合,不仅提高了课堂授课效率,并且丰富了密码学课程的教学资源。
在数据管理模块中,教师能够获取学生的练习数据,掌握学生的学习动态,更有针对性地进行教学工作。平台实现了数据变换、文字说明、结构图说明的有效结合,解决了密码算法教学过程中原理抽象、难以理解的问题。
4.2 学习应用
对于学生而言,该平台可作为自主学习工具。
首先,平台实现了抽象算法的直观化和动态化的交互演示,减小了密码学算法的学习难度。
其次,平台的论坛功能提供了一个良好的交流讨论的环境。学生通过论坛相互交流,共享信息,解决自己的学习问题,能够提高学习效率并且减轻学习压力。
再次,平台提供的数据存储功能在算法复习中起到重要作用,用户能够及时查看收藏的知识点来加深巩固。
最后,平台提供的练习功能有助于培养学生实践与理论相结合的能力,使学生在学习算法原理的同时进行实践演算,对知识及时检验。练习中的错题及时的反馈了学生的知识薄弱点,使学生能够更有针对性的复习。
5 结束语
本文详细论述了AES算法演示平台的设计与实现。平台实现了密码算法直观化和动态化的交互演示,有效解决了教师教学困难、学生难以理解的问题。平台具有界面简洁、布局清晰、操作简单、功能完整、原理直观等特点。在实际应用中,平台可作为教学辅助工具、自主学习工具。下一步打算对平台的算法进行丰富和完善,拓展多种密码学算法,将平台发展成全面综合的密码学算法演示平台。
[1]张金全,万武南,张仕斌.应用密码学[M].西安电子科技大学出版社,2017.
[2]郭璠,杨路明,段桂华.基于组件技术的密码学实验平台的架构设计及其实现[J].计算机应用与软件,2009.
[3]余启航,李斌勇,杨雄凯,姚瑶.DES加密算法的过程分析研究[J].网络安全技术与应用,2018.
[4]段晓华.密码学虚拟实验室的设计与实现[J].电子技术,2007.
[5]张新景,王勇,史颖刚.基于MATLAB GUI的图像处理演示系统[J].信息技术与信息化,2019.
[6]朱辉,刘北水,李晖,刘乃安.基于虚拟化技术的信息安全实验平台开发与应用[N].武汉大学学报(理学版),2012.
[7]黄新平.密码学课程交互式算法演示系统的开发与应用[J].软件杂志,2013.
[8]孙国梓,林清秀,陈丹伟.密钥加密实验平台的研究与实现[J].计算机技术与发展,2009.
成都信息工程大学2019-2021年第一阶段本科教学工程项目(BKJX2019129、BKJX2019033),成都信息工程大学2019年大学生创新创业项目(201910621293),四川省科技厅重点研发(2017GZ0314),成都市科技惠民项目(2016-HM01-00217-SF),四川省教育厅重点项目(16ZA0212)。