SM4白盒加密系统设计与实现

摘要: 在信息时代,数据的保护和传输安全是一个重要的任务。随着云计算、物联网和大数据等技术的发展,对于加密算法的需求越来越强烈。然而,现有的加密算法在保护数据安全方面仍然存在一些局限和挑战。因此,研究和设计更加高效、安全的加密算法是一项迫切的任务。

本文设计了基于SM4算法的白盒加密网站后台系统,本系统的核心功能是通过爬取中关村海量白盒加密信息的原始数据,并通过SM4算法技术将原始数据存储、计算,并将的结果以列表形式展示。

本论文的研究目标是SM4白盒加密系统。论文首先介绍了研究的背景、意义和国内外的研究现状。然后概述了SM4算法和白盒加密系统的基本概念,并阐述了SM4白盒加密系统的设计思路。接着,论文详细探讨了SM4算法的白盒化设计,包括基本原理、设计框架和实现策略。在此基础上,论文给出了SM4白盒加密系统的具体实现,包括环境准备、功能实现以及系统性能评估和安全性分析。最后,论文给出了实验结果和分析,包括实验环境介绍、功能测试结果和系统性能评估结果分析。最后,论文总结了研究工作,并提出了改进方向和未来工作的展望。

关键词:白盒加密;Flask; Python;SM4算法

Design and implementation of SM4 white box encryption system

Abstract: In the information age, data protection and transmission security is an important task. With the development of technologies such as cloud computing, the Internet of Things and big data, there is an increasing demand for encryption algorithms. However, existing encryption algorithms still have some limitations and challenges in protecting data security. Therefore, it is an urgent task to research and design more efficient and secure encryption algorithms.

This paper designs a background system of white-box encryption website based on SM4 algorithm. The core function of this system is to extract the original data of massive white-box encryption information in Zhongguancun, store and calculate the original data through SM4 algorithm technology, and display the results in the form of a list.

The research goal of this thesis is SM4 white box encryption system. Firstly, the paper introduces the background, significance and research status at home and abroad. Then the basic concept of SM4 algorithm and white box encryption system is summarized, and the design idea of SM4 white box encryption system is expounded. Then, the paper discusses the white-box design of SM4 algorithm in detail, including the basic principle, design framework and implementation strategy. On this basis, the paper gives the concrete implementation of SM4 white box encryption system, including environment preparation, function realization, system performance evaluation and security analysis. Finally, the paper gives the experimental results and analysis, including the introduction of the experimental environment, the functional test results and the analysis of the system performance evaluation results. Finally, the paper summarizes the research work, and puts forward the direction of improvement and the prospect of future work.

Key words: white box encryption; Flask; Python; SM4 algorithm

1 绪论

1.1研究背景与现状

加密系统的研究具有重要的理论和实践意义,主要体现在以下几个方面:

加密系统是信息安全的基础,通过对数据进行加密处理,可以有效保护数据的机密性,防止数据在传输和存储过程中被未经授权的访问者窃取或篡改。

加密系统的研究可以提高数据的保密性、完整性和可用性,确保信息在互联网和网络通信中的安全传输。

计算机黑客和恶意攻击者通过各种手段试图获取敏感信息或对系统进行破坏,加密系统可以有效抵御这些攻击,降低信息泄露和系统被入侵的风险。

通过研究加密系统的强度和安全性,可以提升系统的抗攻击能力,保障系统和数据的安全。

在信息时代,个人隐私数据的保护尤为重要,加密系统可以帮助个人和组织保护隐私数据,防止第三方获取和滥用个人信息。

研究加密系统的匿名性和隐私保护机制,有助于促进个人隐私权利的实现和维护。

国家间的信息安全和网络安全也是加密系统研究的重要领域,保障国家重要信息的安全对于国家安全至关重要。

加密系统的研究对于国家的战略安全、国防安全和经济安全都具有重要意义,有助于提升国家的整体安全水平。

加密系统的研究促进了密码学、信息安全和网络安全等领域的发展,推动了相关技术的创新和进步。

通过不断改进和优化加密算法和系统,可以提高系统性能、安全性和可靠性,推动整个信息安全领域的发展。

综上所述,加密系统的研究意义重大,涉及信息安全、隐私保护、国家安全等多个层面,对于保障个人、组织和国家的安全至关重要。

1.2论文主要研究工作

SM4加密系统的论文主要研究工作可以包括以下方面:

算法设计与分析:

论文可能对SM4算法进行详细的设计和分析,探讨其结构、轮函数、密钥扩展和S盒等关键部分的设计原理和性质。

可能对SM4算法的安全性进行分析,探讨其在抵抗差分攻击、线性攻击等常见密码攻击方法中的表现和强度。

性能优化与实现:

论文可能探讨如何优化SM4算法的性能,包括加速算法运算速度、减少内存消耗、提高硬件实现效率等。

可能研究如何在不影响安全性的前提下,通过硬件优化、并行计算、软硬件协同设计等方法提升SM4加密系统的整体性能。

白盒加密技术研究:

论文可能探索SM4白盒加密系统的设计原理、实现方法和安全性分析。

可能研究如何将SM4算法与白盒技术结合,实现对加密算法和密钥的混淆和隐藏,增强系统的安全性。

安全性分析与攻击模型:

论文可能对SM4加密系统进行全面的安全性分析,包括对系统的安全性假设、攻击模型和威胁模型的定义与描述。

可能研究不同类型的攻击方法,如差分攻击、线性攻击、代数攻击等,并评估SM4加密系统对这些攻击的抵抗能力。

应用与实践研究:

论文可能探索SM4加密系统在实际应用中的具体场景和应用案例,如数据传输、云安全、物联网安全等领域。

可能研究SM4加密系统在特定环境下的性能和安全性需求,提出相应的优化方案和实施策略。

总之,SM4加密系统的论文主要研究工作涉及算法设计与分析、性能优化与实现、白盒加密技术研究、安全性分析与攻击模型、应用与实践研究等方面。通过这些研究工作,可以进一步推动SM4加密系统在实际应用中的发展和应用推广。

本文开发一套Web系统将市面上的白盒加密信息通过SM4算法技术进行存储、计算与智能化,将会给白盒加密管理人员提供巨大的好处。在提供白盒加密信息列表展示以及筛选功能的同时,还为用户提供个人信息管理,注册修改等功能,这样做便使得该系统成为功能相对完整,业务逻辑清晰,可大幅度提高管理白盒加密和白盒加密的效率。

2 技术总述

2.1 SM4算法

SM4公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制 。在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。

正是基于这种理论,1978年出现了著名的SM4算法,它通常是先生成一对SM4密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,SM4密钥至少为500位长。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用SM4密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要。

SM4算法的保密强度随其密钥的长度增加而增强。但是,密钥越长,其加解密所耗用的时间也越长。因此,要根据所保护信息的敏感程度与攻击者破解所要花费的代价值不值得以及系统所要求的反应时间来综合考虑,尤其对于商业信息领域更是如此。

2.2 Flask技术

Flask是一个开放源代码Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Flask Reinhardt来命名的。2019年12月2日,Flask 3. 0发布 。

Flask是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Flask框架中,还包含许多功能强大的第三方插件,使得Flask具有较强的可扩展性 [2]  。Flask 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。其工作流程主要可划分为以下几步:

1.用manage .py runserver 启动Flask服务器时就载入了在同一目录下的settings .py。该文件包含了项目中的配置信息,如前面讲的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告诉Flask哪个Python模块应该用作本站的URLConf,默认的是urls .py

2.当访问url的时候,Flask会根据ROOT_URLCONF的设置来装载URLConf。

3.然后按顺序逐个匹配URLConf里的URLpatterns。如果找到则会调用相关联的视图函数,并把HttpRequest对象作为第一个参数(通常是request)

4.最后该view函数负责返回一个HttpResponse对象

2.3 Mysql技术

 MySQL是目前IT行业最流行的开放源代码的数据库管理系统,同时它也是一个支持多线程高并发多用户的关系型数据库管理系统。MySQL之所以受到业界人士的青睐,主要是因为其具有以下几方面优点:

(1)开放源代码

MySQL最强大的优势之一在于它是一个开放源代码的数据库管理系统。开源的特点是给予了用户根据自己需要修改DBMS的自由。

(2) 跨平台

MySQL可以在不同的操作系统下运行,简单地说,MySQL可以支持Windows系统、UNIX系统、Linux系统等多种操作系统平台。

(3) 轻量级

MySQL的核心程序完全采用多线程编程,这些线程都是轻量级的进程,它在灵活地为用户提供服务的同时,又不会占用过多的系统资源。因此MySQL能够更快速、高效的处理数据。

(4) 成本低

MySQL分为社区版和加密版,社区版是完全免费的,而加密版是收费的。免费的社区版支持多种数据类型和正规的SQL查询语言,能够对数据进行各种查询、增加、删除、修改等操作,所以一般情况下社区版就可以满足开发需求了,而对数据库可靠性要求比较高的加密可以选择加密版。

总体来说,MySQL是一款开源的、免费的、轻量级的关系型数据库,其具有体积小、速度快、成本低、开放源码等优点,其发展前景是无可限量的。

MySQL的执行流程如图2-3所示:

图2-3  Mysql的执行流程

解析器:在解析器中对 SQL 语句进行语法分析、语义分析。

优化器:在优化器中会确定 SQL 语句的执行路径,比如是根据全表检索,还是根据索引来检索等。

执行器:在执行之前需要判断该用户是否具备权限,如果具备权限就执行SQL查询并返回结果。

在 MySQL8.0 以下的版本,如果设置了查询缓存,这时会将查询结果进行缓存。

2.4 白盒加密技术

白盒加密是一种高级加密技术,旨在保护加密算法和密钥免受恶意攻击或破解。这种技术可以防止黑客获取加密算法和密钥后对系统进行逆向工程攻击。以下是关于白盒加密技术的综述:

1. 白盒加密技术特点:

隐藏密钥: 白盒加密将密钥与算法混合在一起,使得无法直接获取原始密钥。

软硬结合: 结合软件和硬件技术,实现安全的密钥保护和加密操作。

逆向安全性: 抵御逆向工程和破解尝试,即使攻击者可以查看算法和密钥,也无法还原出原始密钥。

功能保持: 在进行加密和解密操作时,不影响加密算法的功能和性能。

2. 白盒加密技术应用领域:

金融行业: 保护支付信息、数字身份等敏感数据。

数字版权保护: 保护数字内容不被盗版和非法复制。

物联网设备: 保护通信和控制数据的安全性。

移动应用程序: 保护应用程序的安全和用户数据的隐私。

云计算: 保护数据在云端存储和传输的安全性。

3. 白盒加密技术实现方法:

混淆技术: 通过代码混淆、变换等技术,增加算法的复杂性和难以理解性。

虚拟化技术: 将密钥和算法虚拟化成一系列函数,使得外部无法直接访问到原始密钥。

安全多方计算: 多方参与计算密钥和算法,确保没有单一方能获取完整的信息。

硬件隔离: 使用专用硬件模块来存储和执行加密算法,提高安全性。

4. 白盒加密技术挑战:

安全性: 需要确保加密系统足够安全,抵御各种攻击。

性能: 加密解密速度不能太慢影响系统性能。

维护: 系统升级和维护需要考虑白盒加密的特殊性。

总的来说,白盒加密技术在保护加密系统和数据安全性方面具有重要意义,但也需要综合考虑安全性、性能和实际应用场景等因素来选择合适的实现方法和技术方案。

2.5本章小结

本章主要了系统开发过程中使用到的技术点和框架,通过研究这些技术的原理后,在本设计中加以应用,包括白盒加密信息采集的爬虫技术,数据持久化存储技术,以及基于Flask框架的系统后台技术,通过预研上述技术点并加以应用从而开发出基于SM4算法平台的白盒加密系统。

3 白盒加密信息SM4算法系统实现

3.1系统功能

通过前面的功能可以将基于SM4算法白盒加密信息平台的研究与实现的功能主要包括用户登录白盒加密信息管理数据管理等内容。后台管理是针对已登录的用户看到满意的白盒加密而设计的。

3.2可行性研究

通过对系统研究目标及内容的审察后,提出可行性方案,并对其进行论述。主要从技术可行性出发,再进一步经济可行性和操作可行性等方面。

3.2.1 经济可行性

开发系统所涉及到的资料,一般是在图书馆查阅,或是在网上进行查找收集。所需要的一些应用软件也都是在网上可以免费下载的,因此,开发成本是几乎为零。但是开发出来的系统,还是具有高效率,低成本,较高质量的。所以,从经济可行性的角度,该系统符合标准。

3.2.2 技术可行性

技术可行性是考虑在现有的技术条件下,能否顺利完成开发任务。以及判断现有的软硬件配置是否能满足开发的需求。而本系统采用的是SM4算法开发框架,并非十分困难,所以在技术上是绝对可行的。此外,计算机硬件配置是完全符合发展的需要。

3.2.3 运行可行性

当前计算机信息化的知识已经十分普及了,现在的操作人员也都是对系统环境有很强的适应性,各类操作人员大都是有过培训补充的,因此完全不影响组织结构,所以在运行上也是可行的。

3.2.4 时间可行性

从时间上看,在大四的最后一个学期,在实习工作与完成毕设两件大事相交叉的时间里,结合之前学习的相关知识,并开发系统,时间上是有点紧,但是也不是完全没可能实现,通过这段时间的努力功能基本实现。

3.3 数据库设计

加密系统需要以下几个数据库表来存储用户信息、加密密钥等数据:

users表:用于存储用户信息,包括用户名、加密后的密码等。

id (INTEGER, 主键)

username (TEXT, 唯一)

password (TEXT)

keys表:用于存储用户的加密密钥信息。

id (INTEGER, 主键)

user_id (INTEGER, 外键关联到users表的id)

encryption_key (TEXT)

logs表:用于记录加密系统的日志信息,如操作记录、时间戳等。

id (INTEGER, 主键)

user_id (INTEGER, 外键关联到users表的id)

action (TEXT)

timestamp (DATETIME)

在实际应用中,为了提高安全性,可能还需要考虑加密存储敏感数据、访问控制等方面的设计。确保数据库设计符合数据保护和隐私安全的要求。

3.4 系统实现流程

SM4加密系统的系统实现流程通常包括以下步骤:

密钥扩展:

首先需要对输入的加密密钥进行扩展,生成用于每轮加密的轮密钥。这通常涉及到对原始密钥进行某种变换计算,以生成多轮加密所需的子密钥。

初始轮密钥加:

将明文与初始轮密钥进行按位异或操作,作为初始加密的一部分。

轮函数迭代:

使用轮函数对初始加密结果进行若干轮的迭代运算。每轮迭代都会涉及轮密钥的引入,以及一系列基本的位运算和代换操作。

最终结果输出:

在所有轮函数迭代完成后,得到最终的加密结果,即密文。

整个SM4加密系统的实现流程主要围绕着密钥扩展和轮函数迭代展开,其中轮函数通常包括置换、代换、按位运算等操作,以确保加密的安全性和强度。在具体实现时,还需要考虑到加密模式(如ECB、CBC等)的选择,以及对应的填充和初始化向量等相关问题。这些步骤的合理实现和组织将直接影响整个SM4加密系统的性能和安全性。

3.5系统平台架构

在任何信息系统当中有价值的数据都是必不可少的重要部分,如何通过手上

的资源获取得到有价值的数据便是开发系统。首先需要考虑的问题根据系统的功

能设计数据获取和处理的流程以及其实现方法都已经基本上确定获取和处理流

程。

3.6 SM4算法程序设计

表3-2 主要模型类

import binascii

# S盒

S_BOX = [

    0xD6, 0x90, 0xE9, 0xFE, 0xCC, 0xE1, 0x3D, 0xB7, 0x16, 0xB6, 0x14, 0xC2, 0x28, 0xFB, 0x2C, 0x05,

    0x2B, 0x67, 0x9A, 0x76, 0x2A, 0xBE, 0x04, 0xC3, 0xAA, 0x44, 0x13, 0x26, 0x49, 0x86, 0x06, 0x99,

    0x9C, 0x42, 0x50, 0xF4, 0x91, 0xEF, 0x98, 0x7A, 0x33, 0x54, 0x0B, 0x43, 0xED, 0xCF, 0xAC, 0x62,

    0xE4, 0xB3, 0x1C, 0xA9, 0xC9, 0x08, 0xE8, 0x95, 0x80, 0xDF, 0x94, 0xFA, 0x75, 0x8F, 0x3F, 0xA6,

    0x47, 0x07, 0xA7, 0xFC, 0xF3, 0x73, 0x17, 0xBA, 0x83, 0x59, 0x3C, 0x19, 0xE6, 0x85, 0x4F, 0xA8,

    0x68, 0x6B, 0x81, 0xB2, 0x71, 0x64, 0xDA, 0x8B, 0xF8, 0xEB, 0x0F, 0x4B, 0x70, 0x56, 0x9D, 0x35,

    0x1E, 0x24, 0x0E, 0x5E, 0x63, 0x58, 0xD1, 0xA2, 0x25, 0x22, 0x7C, 0x3B, 0x01, 0x21, 0x78, 0x87,

    0xD4, 0x00, 0x46, 0x57, 0x9F, 0xD3, 0x27, 0x52, 0x4C, 0x36, 0x02, 0xE7, 0xA0, 0xC4, 0xC8, 0x9E,

    0xEA, 0xBF, 0x8A, 0xD2, 0x40, 0xC7, 0x38, 0xB5, 0xA3, 0xF7, 0xF2, 0xCE, 0xF9, 0x61, 0x15, 0xA1,

    0xE0, 0xAE, 0x5D, 0xA4, 0x9B, 0x34, 0x1A, 0x55, 0xAD, 0x93, 0x32, 0x30, 0xF5, 0x8C, 0xB1, 0xE3,

    0x1D, 0xF6, 0xE2, 0x2E, 0x82, 0x66, 0xCA, 0x60, 0xC0, 0x29, 0x23, 0xAB, 0x0D, 0x53, 0x4E, 0x6F,

    0xD5, 0xDB, 0x37, 0x45, 0xDE, 0xFD, 0x8E, 0x2F, 0x03, 0xFF, 0x6A, 0x72, 0x6D, 0x6C, 0x5B, 0x51,

    0x8D, 0x1B, 0xAF, 0x92, 0xBB, 0xDD, 0xBC, 0x7F, 0x11, 0xD9, 0x5C, 0x41, 0x1F, 0x10, 0x5A, 0xD8,

    0x0A, 0xC1, 0x31, 0x88, 0xA5, 0xCD, 0x7B, 0xBD, 0x2D, 0x74, 0xD0, 0x12, 0xB8, 0xE5, 0xB4, 0xB0,

    0x89, 0x69, 0x97, 0x4A, 0x0C, 0x96, 0x77, 0x7E, 0x65, 0xB9, 0xF1, 0x09, 0xC5, 0x6E, 0xC6, 0x84,

    0x18, 0xF0, 0x7D, 0xEC, 0x3A, 0xDC, 0x4D, 0x20, 0x79, 0xEE, 0x5F, 0x3E, 0xD7, 0xCB, 0x39, 0x48

]

# 固定参数

FK = [0xA3B1BAC6, 0x56AA3350, 0x677D9197, 0xB27022DC]

CK = [

    0x00070E15, 0x1C232A31, 0x383F464D, 0x545B6269,

    0x70777E85, 0x8C939AA1, 0xA8AFB6BD, 0xC4CBD2D9,

    0xE0E7EEF5, 0xFC030A11, 0x181F262D, 0x343B4249,

    0x50575E65, 0x6C737A81, 0x888F969D, 0xA4ABB2B9,

    0xC0C7CED5, 0xDCE3EAF1, 0xF8FF060D, 0x141B2229,

    0x30373E45, 0x4C535A61, 0x686F767D, 0x848B9299,

    0xA0A7AEB5, 0xBCC3CAD1, 0xD8DFE6ED, 0xF4FB0209,

    0x10171E25, 0x2C333A41, 0x484F565D, 0x646B7279

]

def _left_rotate(word, n):

    return ((word << n) | (word >> (32 - n))) & 0xFFFFFFFF

def _round_function(x, rk):

    t = x ^ rk

    y = S_BOX[t >> 24] << 24 | S_BOX[(t >> 16) & 0xFF] << 16 | S_BOX[(t >> 8) & 0xFF] << 8 | S_BOX[t & 0xFF]

    return y ^ (_left_rotate(y, 2) ^ _left_rotate(y, 10) ^ _left_rotate(y, 18) ^ _left_rotate(y, 24))

def _key_schedule(key):

    k = [0] * 36

    for i in range(4):

        k[i] = FK[i] ^ key[i]

    for i in range(32):

        k[i + 4] = k[i] ^ _round_function(k[i + 1] ^ k[i + 2] ^ k[i + 3] ^ CK[i])

    return k

def _encrypt_block(block, key):

    k = _key_schedule(key)

    x = block[0] << 24 | block[1] << 16 | block[2] << 8 | block[3]

    for i in range(32):

        x = x ^ _round_function(x, k[i])

    cipher = [0] * 4

    cipher[0] = (x >> 24) & 0xFF

    cipher[1] = (x >> 16) & 0xFF

    cipher[2] = (x >> 8) & 0xFF

    cipher[3] = x & 0xFF

    return cipher

def sm4_encrypt(plaintext, key):

    key = [int(key[i:i+2], 16) for i in range(0, len(key), 2)]

    plaintext = [int(plaintext[i:i+2], 16) for i in range(0, len(plaintext), 2)]

    

    # 补齐明文长度为16的倍数

    if len(plaintext) % 16 != 0:

        padding_len = 16 - len(plaintext) % 16

        plaintext += [padding_len] * padding_len

    

    ciphertext = []

    for i in range(0, len(plaintext), 16):

        block = plaintext[i:i+16]

        cipher_block = _encrypt_block(block)

4 后台系统实现

基于SM4算法白盒加密信息平台的基本业务功能是采用Flask框架实现的, 在本文的第四章将详细介绍后台系统的实现部分,包括详细阐述了系统功能模块的具体实现,并展示说明了部分模块的功能界面。

4.1 开发环境与配置

4.1.1 开发环境

本系统设计基于B/S架构,其中服务器包括应用服务器和数据库服务器。这种架构模式,使用户只需要在有网络的地方即可通过浏览器访问,而不需要再安装客户端软件,交互性更强。基于SM4算法白盒加密信息平台使用Pycharm集成开发工具。而系统运行配置时,选择应用本地来部署Web服务器来保障平台的正常运行。本系统的主要开发环境以及开发工具如表4-1所示。

表4-1 系统开发环境和工具

项目

系统环境及版本

硬件环境

Windows 64 位操作系统

Python

Python2.6

数据库

MySql

开发工具

Pycharm

项目架构

Flask

4.1.2 框架配置介绍 

本系统使用集成开发工具Pycharm进行开发,由于 IDEA 中本地配置详细资料有很多,不做详细赘述, 本文主要介绍 Flask框架的配置。首先需要在项目中中引入各框架以及数据库连接等所需要工具包。

4.2 数据库的设计

数据库设计是系统设计中特别重要的一部分。数据库的好坏决定着整个系统的好坏,并且,在之后对数据库的系统维护、更新等功能中,数据库的设计对整个程序有着很大的影响。

根据功能模块的划分结果可知,本系统的用户由于使用账号和密码进行登录,因此在本系统中需要分别进行数据记录。首先根据如下6个数据实体:用户、白盒加密信息等数据库表。

用户的属性包括用户编号、用户名、密码和性别、注册账号的时间。用户实体属性图如图4-2所示:

图4-2 用户实体属性图

根据以上,各个实体之间有一定的关系,使实体与实体可以联系起来,建立成整个系统的逻辑结构,本系统中,普通用户通过对白盒加密信息的管理,使白盒加密信息与用户实体存在对应关系。

4.3 系统功能模块实现

4.3.1登录认证

用户登录时需要在登录界面输入用户名、密码进行身份认证,要求必须是表单认证、校验。具体流程如时序图如4-2所示。

图4-2登录认证流程图

白盒加密信息SM4算法系统的用户登录界面如下图所4-3所示:

图4-3用户登录注册界面

登陆成功后,系统会成功跳转至首页,在首页中,位于上方的横栏是对本系统的基本信息的描述和欢迎登录效果,另外登录用户的用户名也会显示在首页中,可直接表明用户己成功登录。左侧则是本系统的导航菜单,可折叠展示,较为方便,右方则为欢迎页效果。白盒加密信息SM4算法系统的首页界面如下图所4-4所示:

图4-4 SM4加密算法系统首页界面

4.3.2公告信息管理功能

白盒加密信息管理功能是对白盒加密信息进行查询,删除等操作的功能集合,白盒加密信

息管理功能使用到了白盒加密信息表t_encrypt,白盒加密信息表t_car的主要数据字段,结构,类型及描述如下表4-2所示。

表4-2 白盒加密信息表字段

字段名称

数据类型

是否允许为空

描述

id

int

不允许

自增主键,唯一ID

Password

String

允许

密码

name

String

允许

白盒加密名称

size

String

允许

白盒加密规模

type

String

允许

类型

isCan

String

允许

是否可解密

白盒加密信息SM4算法系统的白盒加密信息管理功能界面如下图所4-5所示:

图4-5数据管理界面

白盒加密信息管理

功能流程功能图如图3-6所示:

图4-6 白盒加密信息管理功能流程图

 通过“白盒加密信息管理”按钮,进入白盒加密信息管理界面,用户可以看到白盒加密信息列表,例如:加密名称、所在城市、数量、白盒加密要求、薪资待遇、白盒加密时间的详细信息。通过此界面,用户可以对白盒加密信息进行删除管理操作。

4.3.3白盒加密信息管理功能

数据模块就是对我们采集和计算的结果的展示。数据模块的

数据进行一个精美而又直接的展示,我们采用大屏的方式进行展示,展示数据结

构分明,背景具有科技感,把相对复杂的、抽象的数据通过可视的、交互的方式

进行展示,从而形象直观地表达数据蕴含的信息和规律。白盒加密信息SM4算法看板界面如图4-7所示。

图4-7白盒加密信息SM4分析界面

白盒加密信息SM4算法开发的难点并不在于图表类型的多样化,而在于如何能在简单的一页之内让用户读懂白盒加密之间的层次与关联,这就关系到布局、色彩、图表、动效的综合运用。如排版布局应服务于业务,避免为展示而展示;配色一般以深色调为主,注重整体背景和单个视觉元素背景的一致性。本文使用中地图、线条等组件,将结果较为直观的展示给平台用户,使得用户能够简便的获取有效的信息。

SM4加密算法是一种对称加密算法,用于数据的加密和解密。以下是对SM4加密系统结果的分析:

安全性:SM4算法是一种块密码算法,具有128位的密钥长度和128位的分组长度。在适当的密钥管理和实现下,SM4算法可以提供较高的安全性,防止未经授权的访问者获取敏感信息。

效率:SM4算法在硬件和软件上都有较好的效率表现,加密和解密速度较快,适用于对大量数据进行加密处理。

密钥管理:密钥管理是加密系统中至关重要的一环。对于SM4算法,密钥的生成、存储和传输需要采取安全可靠的方法,以确保系统的安全性。

数据完整性:SM4算法只提供加密和解密功能,并没有数据完整性验证功能。因此,在实际应用中,可能需要结合消息认证码(MAC)等技术来保证数据的完整性。

适用场景:SM4算法广泛应用于各种领域,包括网络通信、电子商务、金融等,用于保护数据的机密性。

总体而言,SM4加密系统在适当的使用和实施下,可以为数据提供有效的保护,但仍需注意密钥管理、安全传输等方面的问题,以确保系统的整体安全性。

4.4 本章小结

本章主要了基于SM4算法的白盒加密信息系统开发过程中使用到的技术和具体的实现步骤,这其中主要介绍了基于Flask框架的白盒加密信息SM4算法系统的搭建环境和开发步骤,包括程序中的一些数据库配置等。前端页面采用的是SM4算法和Flask实现。

5 总结与展望

5.1 系统开发遇到的问题 

由于基于SM4算法白盒加密信息平台是由本人独立开发,因此在系统设计和业务逻辑方面更多地借鉴了目前市场上较为流行的框架和技术点,包括SM4算法技术,很多是不熟悉没接触过的,在开发过程中不断学习新知识。另外由于本人的时间和精力的原因,在系统开发过程中有很多地方可能并不能够完全尽如人意,还有许多需要补充的功能与模块。

5.2 总结与展望 

SM4算法白盒加密信息系统是在对相关管理范畴进行详细调研后,确定了系统涉及的领域,包括数据库设计、界面设计等,是一个具有实际应用意义的管理系统。根据本毕业设计要求,经过四个多月的设计与开发,SM4算法白盒加密信息系统基本开发完毕。其功能基本符合用户的需求。

    为保证有足够的技术能力去开发本系统,首先本人对开发过程中所用到的工

具和技术进行了认真地学习和研究,详细地钻研了基于Python的网络爬虫技术

以及Echarts, CSS, HTML等前端开发技术,同时还研究了SM4算法开发技术SM4加密算法等。

从白盒加密SM4算法平台需求开始,到整体框架的设计以及各个详细功能的设计具体实现,最后基于SM4算法平台的白盒加密信息系统的基础架构和详细功能已经大致开发完毕,并将其部署在本地服务器当中运行,用户可以登录使用该系统进行白盒加密信息的筛选,同时查询SM4算法的结果。

参考文献

[1]张跃宇,徐东,蔡志强等.白盒SM4的中间值平均差分分析[J].西安电子科技大学学报,2022,49(01):111-120.DOI:10.19665/j.issn1001-2400.2022.01.011

[2]原梓清,陈杰.对一种白盒SM4方案的差分计算分析[J].软件学报,2023,34(08):3891-3904.DOI:10.13328/j.cnki.jos.006543

[3]翟宇莹.新型白盒分组密码算法的设计与实现[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.001479

[4]张跃宇,徐东,陈杰.白盒SM4的分析与改进[J].电子与信息学报,2022,44(08):2903-2913.

[5]林婷婷.白盒密码研究[D].上海交通大学,2016.DOI:10.27307/d.cnki.gsjtu.2016.003059

[6]肖雅莹.白盒密码及AES与SMS4算法的实现[D].上海交通大学,2010.

[7]来学嘉,肖雅莹.白盒密码的设计与研究[J].信息安全与通信保密,2010,(02):45-48.

[8]王冰.白盒密码的设计方法和安全性分析[D].上海交通大学,2011.

[9]原梓清,陈杰.一种抗差分计算分析的白盒SM4方案[J].密码学报,2023,10(02):386-396.DOI:10.13868/j.cnki.jcr.000601

[10]Yatao Y ,Hui D ,Zhaofu L , et al.LWED: Lightweight white-box encryption communication system for drones overencryptX algorithm[J].Journal of King Saud University - Computer and Information Sciences,2023,35(9):

[11]姚思,陈杰,刘君.白盒密码研究[J].广播电视信息,2019,(S1):23-28.DOI:10.16045/j.cnki.rti.2019.s1.007

[12]杨亚涛,董辉,张也等.WBDL:改进的SM4动态白盒密码算法[J].密码学报,2023,10(04):796-812.DOI:10.13868/j.cnki.jcr.000629

[13]原梓清.SM4白盒实现方案的旁信道分析[D].西安电子科技大学,2022.DOI:10.27389/d.cnki.gxadu.2022.000442

[14]吴震,白健,李大双等.基于SM4算法的白盒密码视频数据共享系统[J].北京航空航天大学学报,2020,46(09):1660-1669.DOI:10.13700/j.bh.1001-5965.2020.0080

[15]陈明.白盒密码安全性分析与研究[D].上海交通大学,2015.

[16]苗鑫.SM4分组密码算法的快速软件实现[D].山东大学,2023.DOI:10.27272/d.cnki.gshdu.2023.003953

[17]缪光耀,王磊,于哲等.SM4算法CTR模式的低开销实现[J].信息技术与信息化,2023,(05):144-148.

[18]原梓清,陈杰.对一种白盒SM4方案的差分计算分析[J].软件学报,2023,34(08):3891-3904.DOI:10.13328/j.cnki.jos.006543

[19]林达,向泽军,张若琳等.SM4算法的量子实现[J].密码学报,2021,8(06):999-1018.DOI:10.13868/j.cnki.jcr.000493

谢  辞

时间过的飞快,我的大学生涯也即将结束,通过前期的知识储备和论文的撰写,让我明白了做好一件事所需要的不仅仅是方法,还有耐心,最重要的是得到大家的帮助,在此,我要感谢所有帮助过我的人。

首先,我要感谢我的导师,从论文定题开始到论文的不断修改,导师都给了我很多的指导和帮助,在这个过程,我成长的很快,也从一开始的不断犯错到后来的不断总结,了 解了程序开发的基本规范,明白了数据分析的意义和价值,清楚了论文撰写的严谨和科研的认真态度,导师是我的榜样,他的一言一行都在影响着我,让我在今后的人生道路中不断积累,不断前行。

其次,我也要感谢宿舍里的同窗,虽然宿舍里的人来自不同的地区,她们的经历也不同,但是在共同的学习和生活中,她们不仅互相帮助,还互相帮助,互相帮助。我们共同面对并解决了许多问题,这些都使我感到温暖。

最后,我要感谢我的家人,我的求学过程都是在家人的支持下进行的,没有他们的付出,我不能顺利的完成学业,在此,感谢他们的无私奉献。

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值