温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
AES
加密
嵌入式
数据库
SQLite
中的
应用
Application of AES Encryption in SQLite Embedded DatabaseZHAI Yu,WU Liming,WANG Xiang,WANG Shujuan,DONG Qining(North Automatic Control Technology Institude,Taiyuan 030006,China)Abstract:SQLite,as a lightweight embedded database,has been widely used in embedded devicesof armored vehicles,but it does not have data encryption function.In order to ensure data security,amethod of encrypting SQLite files with AES encryption algorithm is proposed.At the same time,inorder to adapt to the embedded environment,the standard AES algorithm is improved in two aspects:simplified S-box and unordered shiftrow.The test results in SQLite show that lightweight AES hasbetter performance in encryption time,storage space and avalanche effects:The lightweight AES is 8%faster than that of the standard AES,17%faster than that of 3DES,the memory occupation is 17.8%lighter than that of the standard AES,27%lighter than that of 3DES,and the avalanche effect isincreased by 1%,providing an efficient scheme for embedded device database security.Key words:AES encryption algorithm;lightweight;embedded database;SQLiteCitation format:ZHAI Y,WU L M,WANG X,et al.Application of AES encryption in SQLiteembedded database J.Fire Control&Command Control,2023,48(6):97-101.0引言随着坦克装甲车辆的信息化发展,其各个分系统及嵌入式设备产生的数据量越来越大。以火控系统为例,包括武器状态信息、发控信息、目标信息等。这些大量数据需要专门的嵌入式数据库进行管理。SQLite 作为嵌入式平台数据储存的主要方式,具有体量小、可移植性高、管理简单、状态回滚方便等特点。然而 SQLite 没有用户管理与加密功能,这意味着数据库文件对所有人开放,都可以轻松用工具查看。对于重要的军用设备,这种开放的文件存在信息安全隐患。加密一直是最受欢迎的信息安全解决方案之一,在数据安全中发挥着重要作用,加密算法研究具有重要意义。收稿日期:2022-08-15修回日期:2022-09-21作者简介:翟禹(1997),男,四川南充人,硕士研究生。研究方向:系统工程。摘要:SQLite 作为一款轻量级嵌入式数据库已广泛应用于装甲车辆各嵌入式设备中,但其不具备数据加密功能。为保证数据安全,提出了 AES 加密算法对 SQLite 文件进行加密的方法。同时,为适配嵌入式环境,对标准 AES 算法进行简化 S 盒与无序行移位两方面改进。在 SQLite 的测试结果表明,轻量化 AES 在加密时间、存储空间、雪崩效应上有更好的表现:轻量化 AES 比标准 AES 快 8%,比 3DES 快 17%,内存占用比标准 AES 轻 17.8%,比 3DES 轻27%,雪崩效应提高 1%.为嵌入式设备数据库安全提供了一个高效方案。关键词:AES 加密算法;轻量化;嵌入式数据库;SQLite中图分类号:TP309.7文献标识码:ADOI:10.3969/j.issn.1002-0640.2023.06.015引用格式:翟禹,武黎明,王祥,等.AES 加密在嵌入式数据库 SQLite 中的应用 J.火力与指挥控制,2023,48(6):97-101.AES 加密在嵌入式数据库 SQLite 中的应用翟禹,武黎明,王祥,王淑娟,董祺宁(北方自动控制技术研究所,太原030006)文章编号:1002-0640(2023)06-0097-05Vol.48,No.6Jun,2023火 力 与 指 挥 控 制Fire Control&Command Control第 48 卷第 6 期2023 年 6 月97(总第 48-)火 力 与 指 挥 控 制2023 年第 6 期DAEMEN J 和 RIJMEN V 创建了 Rijndael 算法。Rijndael 算法于 2001 年被美国国家标准与技术研究院(NIST)选为高级加密标准(advanced encryp-tion standard,AES)1。AES 方法是一种对称分组密码,使用替换-排列网络(SPN)具有速度快,安全级别高的优势2。PATIL S,PATIL R 并行应用了 AES算法3。对于计算成本高昂的数据加密,例如音频、视频和图像数据加密,AES 算法运行缓慢。因此,通过采用并行处理,能够克服处理缓慢的缺点。TAHIR A S 为图像加密开发了修改版 AES,通过更改行移位阶段,以提高安全性4。修改版 AES 更安全,并且在测试后实现了针对统计攻击的安全结果。JUREMI J 等提出了一个名为行列式旋转的新阶段,通过使用行列式矩阵计算为每轮生成不同的 S盒来实现 AES 的 S 盒位置的旋转5。通过随机性试验和雪崩试验,证明了此方法获得了高随机性和高安全性。RIYALDHIA R 等提出了一种通过修改 S 盒和行移位来改进 AES 算法的方法6。经过测试,所提出的改进 AES 算法比原来的 AES 减少了 3 滋s 的执行时间。NAZIRI 等在 S 盒架构中设计了乘法逆,限制了储存器减轻了储存占用7。何文才等在安卓平台开启多线程与计算器模式,使得 SQLite 的加密速率提升了 23.5%8。冷飞等提出融合 RSA 与 AES算法,降低了密钥的管理复杂度9。费雄伟等引入统一计算架构平台,实现 AES 并行计算,提高了加密速度10。张诗永等提出 256 位分组来构造新算法,增强了 AES 算法的计算性能11。嵌入式设备计算资源有限、存储空间狭小,若使用标准的 AES 存在处理速度慢、数据传输时间长等缺陷。基于以上分析,对 AES 算法进行了轻量化的改进策略,在保证安全性的同时,加快 AES 算法的进程。实验结果表明,本文设计的轻量化 AES 算法高效轻便,在 SQLite 文件加密中表现优秀。1标准 AESAES 是一种分组密码,使用对称密钥进行加密和解密过程。明文大小等于 128 位(相当于 16 字节),而密钥大小可以分为 128、192 或 256 位。AES算法中有轮次(迭代),总回合数由密钥的大小决定,如表 1 所示。具体由 4 个阶段组成,分别是字节代替(Sub-Byte),行移位(ShiftRow),列混淆(MixColumn)和轮密钥加(AddRoundKey)阶段。这些阶段以顺序形式执行,并在状态数组(44 字节)上作为轮次运行。明文在加密过程中作为参数通过这些轮次传递,如图 1 所示的 4 个阶段12-13。图 1AES 算法结构Fig.1Structure of AES algorithm1)字节代替:是一个非线性字节替换函数,独立地对状态数组的每个字节进行操作,并基于有限域 GF(28)中的乘法反转。即查 S 盒,替换字节,S 盒如图 2 所示。图 2S 盒Fig.2S-box2)行移位:状态中有 4 行。第 1 行不受影响(未移位),第 2 行向左移动 1 个字节,第 3 行向左移动2 个字节,第 4 行向左移动 3 个字节。3)列混淆:此阶段使用逐列操作状态,每列被视为 GF(28)上的 4 项多项式,并乘以固定多项式a(x)x4+1。列混淆使用式(1)计算:(1)表 1AES 算法规范Table 1Specification of AES algorithm名字明文分组长度/Bit 密钥长度/Bit迭代轮次AES-12812812810AES-19612819212AES-25612825614981052(总第 48-)4)轮密钥加:对 128 位的状态按位与 128 的轮密钥 XOR 操作,即按位异或14-15。2改进的轻量级 AES 算法本文所提出的轻量化 AES 算法改进了前两个阶段:字节代替和行移位阶段,从而改善了加密和解密过程。此外,回合数缩短至 4 轮。2.1轻量化字节代替改进的字节代替阶段使用替换表而不是标准AES 算法的 S 盒。替换表由两个条目组成;第 1 个条目具有以 0 值开头并以 F 值结束的升序形式的十六进制数字,第 2 个条目具有以 F 值开头并以 0值结束的降序形式的十六进制数字,如表 2 所示。表 2轻量化替换表Table 2Lightweight replacement table状态数组中的每个字节分为两位数(每个数字用十六进制表示)。在字节代替阶段,字节的每个数字取决于替换表,该替换表在第 1 个条目中搜索状态的第 1 个字节(字节由两位数组成),并从第 2 个条目中获取相应的字节。例如,假设以下状态数组,状态的第 1 个字节等于(FF),则替换为(00)。经过轻量化替代后结果如下,如图 3 所示。图 3轻量化字节代替Fig.3Replacement with lightweight byte此外,由于轻量化替换表存在线性关系,其逆操作逆字节代替也用同一张表,加密解密均节省了存储空间,替换表的大小为 16,等于 32 字节,S盒由 1616 字节组成,等于 256 字节。此外,在搜索过程中更快(仅搜索 16 个条目)。算法 1 解释了轻量化字节代替阶段的步骤。2.2轻量化行移位在标准 AES 中,行移位阶段每次移位按特定编号执行,由状态数组中的行号确定的移动编号。轻量化后的行移位阶段通过随机移位数对每一行执行循环移位。一维无序逻辑映射系统产生的随机移位数由等式(2)表示:(2)其中,X0表示起始状态,i 表示迭代次数,是系统控制参数。对于所有 i,Xi+1的值是介于 0 和 1 之间的数字,而控制参数的值在(0,3)范围内,具体取决于状态数组中的行数。由无序系统随机生成并排列在一个称为“移位数”的一维数组中,如表 3 所示。表 3行移位前状态Table 3Status before shift row状态数组中的每一行都向左移动,不同的移位值取决于随机移位数而不是标准 AES 算法中的固定移位值(行号)。轻量化行移位阶段如图 4 所示。图 4轻量化行移位Fig.4Lightweight shift row从图 4 中可以看出,移位数是变量值(不是固定值),排列由无序系统随机实现,以增加状态数组的排列。此外,在解密过程中,轻量化后的逆行移位阶段是通过使用相同的随机移位数向右移位状态数组来实现的。算法 2 解释的是修改移位行(MSR)阶段的步骤。3实验结果及分析本文在内存有限制的 Ubuntu 虚拟机上进行实验,模拟了嵌入式设备运行环境。创建了 mysqlite.db数