当前位置:首页 > 工业控制 > 电子设计自动化
[导读]摘要:随着国际空间任务的交叉合作以及互联网在空间任务中的应用,空间数据安全性受到威胁,空间数据的加密日益受到设计人员的重视。CCSDS于2004年推荐AES算法作为空间数据系统的加密标准。本文根据高速数据处理的实际

摘要:随着国际空间任务的交叉合作以及互联网在空间任务中的应用,空间数据安全性受到威胁,空间数据的加密日益受到设计人员的重视。CCSDS于2004年推荐AES算法作为空间数据系统的加密标准。本文根据高速数据处理的实际需求,采用了在FPGA上实现AES算法的数据加密方案,仿真结果表明,AES是一种优选的加密算法,能够满足高保密性、加密速率快、硬件资源占用少等任务要求。

1. 引言

随着国际空间任务交叉合作增加,应用地面公共数据网络进行空间任务控制和数据监 测越来越多,空间飞行器迫切需要数据安全保护机制[1]。随着计算机技术的迅速发展,原 来卫星(如SPOT 卫星)上使用的DES 加密算法已能够被穷举法破译。为此,美国国家标准 和技术协会(NIST)于2000 年10 月2 日宣布采用Rijndael 作为下一代先进加密标准(AES) 的正式算法[2]。2004 年,CCSDS(国际空间数据系统咨询委员会)建议将AES 作为空间 数据加密算法标准[3][4]。目前,AES 加密算法已在NASA、FBI、CCSDS 等机构得到广泛 应用。

随着我国空间技术的快速发展,未来需要考虑空间数据安全性设计。传统的星上加密 需要一个专门的装置,占用的体积、功耗等资源均较大。AES 算法适用于软硬件资源有限 的应用中,同时与软件加密相比,采用FPGA 进行物理加密具有很好的防攻击性,实时性好, 可实现高速数据处理,资源占用非常小,是空间数据加密的重要发展方向。

本文对AES 算法进行了研究,并在一片FPGA 上进行了仿真分析,确定了适合空间应 用的AES 算法。

2. AES 加密算法及优化实现

2.1. AES 加密算法

AES 是一种可变密钥长度的迭代分组加密算法,明文被分成以128bit 为一块进行加密, 密钥长度可分别为128bit、192bit、256bit。

AES 加密算法包括密钥扩展过程和加密过程。加密过程又包括一个作为初始轮的初始密钥加法(AddRoundKey),接着进行若干次轮变换(Round),最后再使用一个轮变换(FinalRound),如图2.1.1 所示。


明文可以表示为4*4B 的状态矩阵,加密的每一轮是对状态矩阵进行操作,得到中间结 果状态矩阵。初始变换指的是状态矩阵中每一列与初始密钥进行加运算。轮变换的每一轮 包括字节替换(SubBytes)、行移位(Shiftrows)、列混合(Mixcolumns)、轮密钥加 (AddRoundKey)。最后一轮变换不包括列混合(Mixcolumns)。经过最后一轮变换,中间状 态矩阵将输出4*4B 的密文。

密钥扩展是对给定初始密钥进行运算,得到每个轮变换的轮密钥。主要包括三步:字 替换(Subword)、周期置换(Rotword)、圈常数字序列加运算[2]。AES-128 与AES-192 密 钥扩展的每一轮都包括三个步骤,对于AES-256,并不是每一轮都包括三个步骤,当密钥 替换循环次数小于Nb*(Nr+1)(Nb 数据块长度、Nr 圈数),同时循环次数对Nk(密钥长度) 取模的结果为4 时,只进行字替换(Subword)。

表 2.1.1 给出了三种AES 加密的明文块长度,密钥长度,加密轮变换次数之间的关系。


2.2. AES 算法优化实现

2.2.1. 字节替换(SubBytes)

SubBytes 主要通过两步来完成,一步是在GF(28)中取乘法逆,另外一步是通过特别 定义的GF(2)上的仿射作用。为了避免复杂的乘法运算,在FPGA 上具体实现时,构造了 16*16B 的置换表,通过查表完成了字节替换,节省了运算时间。

2.2.2. 行移变换(shiftrows)

ShiftRows 与列混合运算相互影响,在多轮变换后,使密码信息达到充分的混乱。行变 换是在状态的每个行间进行的,是状态中的行按不同的偏移量进行循环左移运算[10]。通过 对每个字节的行移位实现该变换。

2.2.3. 列混合(MixColumns)

假设列混合运算输入为a,输出为b,加密的列混合运算可做如下表示:


式2.1 所示的矩阵运算是伽罗华域上常数乘法运算。伽罗华域上乘以任何常数的乘法 都可以通过反复的乘以02 和异或运算来实现[5]。将GF(28)域中的每一个元素与02 的乘积 存储在一张16*16 B 查找表中,通过异或运算和查表即可实现列混合运算。

2.2.4. 密钥加法(AddRoundKey)

AddRoundKey 是将轮密钥中的各个字节与状态中的各个字节进行逐位异或运算,实现 密码和密钥的混合[10]。轮密钥是由初始密钥通过密钥扩展得到的。

2.2.5. 密钥扩展(KeyExpansion)

初始密钥和扩展后的整个密钥表可以看作是一个字(word)序列。密钥扩展是针对字进 行的,为此又引入了两个对字进行处理的函数:字替代(Subword)和字旋转(RotWord)。字 旋转将字的4 个字节循环右移一个单位。密钥扩展还包括引入轮常数Rcon。字替换和引入 轮常数均可使用查表法完成。字旋转可以用简单的交换字的顺序实现。

在FPGA 的实现过程中,若不进行上述诸如查表法的优化,将会造成资源占用过度,运 行速率低下的情况。 3. AES 算法实现与仿真

3.1. AES 算法实现方案

图3.1 为AES 加密算法实现框图,其中明文有效标志和密钥有效标志输入给控制模块, 初始密钥送给密钥扩展模块,明文输入到初始变换模块。控制模块输出加密完成标志,最 终变换模块输出密文[7]。其中粗箭头为数据线,细箭头为控制线。为满足加密过程的时序 要求,控制模块对输入的明文有效信号及密钥有效信号进行控制。密钥扩展模块在不同轮 数下产生的扩展密钥分别送给初始变换模块,轮变换模块以及最终变换模块。初始变换模 块对明文加了初始轮密钥;轮变换模块进行了四个变换步骤。最终变换模块与轮变换模块 不同在于没有进行混合列操作。


3.2. 仿真结果

本设计采用VHDL 语言,在Xilinx 公司的一款FPGA 上实现了AES 算法。分别对AES-128、 AES-192、AES-256 加密算法实现进行仿真,在FPGA 资源占用率、数据处理速率等方面进 行了对比分析。

(1) 仿真结果

图3.2.1、3.2.2、3.2.3 分别是AES-256、AES-192、AES-128 的FPGA 实现仿真结果, 从图中可以看出AES-256 可以在15 个时钟周期内完成,AES-192 可以在13 个周期实现加 密算法,AES-128 可以在12 个时钟周期内实现加密算法。




(2) 性能分析

在Xilinx 公司的一款X2V 系列FPGA 上所占用的资源情况对比如表3.1.1。


根据密码学理论,密钥长度越长,其安全性能越好。AES-256 占用硬件资源较AES-128、 AES-192 多,但AES-256 可以提供最好的安全性。三种加密算法占用的资源数相当,数据 吞吐率随着密钥长度加长而变小。

4. 结论

本文对AES 算法进行了研究,提出了面向空间应用的AES 算法的FPGA 实现方案。通过 仿真分析,表明利用FPGA 进行AES 进行数据加密具有占用硬件资源较少,数据吞吐率高, 安全性好的特点,门数在10 万左右的小型FPGA 即可实现该算法。考虑到安全性,在实际 应用中,AES-256 算法是最适合的。



来源:xinxin0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

随着科技的飞速进步,人工智能(AI)已经逐渐成为了引领新一轮科技革命和产业变革的核心驱动力。AI不仅在改变着我们的日常生活,还在推动各行各业的创新发展。展望未来,人工智能的发展将呈现出哪些趋势呢?本文将从技术、应用、伦理...

关键字: 人工智能 算法 AI技术

机器学习算法不会要求一个问题被 100%求解,取而代之的是把问题转化为最优化的问题,用不同的算法优化问题,从而比较得到尽量好的结果。

关键字: 机器学习 算法 最优化

据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。

关键字: 机器学习 人工智能 算法

NVIDIA 量子模拟平台将通过各大云提供商提供,帮助科学家推进量子计算和算法研究

关键字: 量子计算 算法 量子云

随着科技的飞速发展,人工智能(AI)已经成为当今科技研究的热点和前沿。AI的快速发展不仅带来了许多新的应用场景和商业模式,也在推动科技进步的同时,引发了一系列关于其未来发展方向和潜在影响的深入讨论。本文将对人工智能的科技...

关键字: 人工智能 AI技术 算法

机器学习算法:机器学习是一种让计算机通过学习数据和模式来改进自身算法的技术。这些算法包括监督学习、无监督学习和强化学习。

关键字: 人工智能 机器学习 算法

随着信息技术的快速发展,机器学习作为人工智能的核心技术之一,正逐渐渗透到各个领域,引领着一场前所未有的科技变革。在机器学习的实际应用中,有三大重点至关重要,它们分别是数据质量、算法选择与模型评估。本文将深入探讨这三大重点...

关键字: 机器学习 数据质量 算法

在人工智能的浪潮中,机器学习已逐渐成为推动科技进步的核心动力。机器学习技术的广泛应用,从图像识别到自然语言处理,从智能推荐到自动驾驶,都离不开其三个基本要素:数据、算法和模型。本文将深入探讨这三个基本要素在机器学习中的作...

关键字: 机器学习 算法 人工智能

随着信息技术的迅猛发展,机器学习作为人工智能的核心技术之一,已经深入到了各个领域,为我们的生活和工作带来了翻天覆地的变化。无论是智能语音助手、自动驾驶汽车,还是个性化推荐、疾病预测,这些令人惊叹的应用背后,都离不开机器学...

关键字: 机器学习 人工智能 算法

机器学习的方法是指利用统计学方法和算法让计算机自动学习模式和规律,并通过数据进行预测和决策的一门学科。机器学习的主要目标是让计算机能够从数据中自我学习,通过训练模型来提高自身的性能。机器学习的方法可以从高层次上分为监督学...

关键字: 机器学习 算法
关闭
关闭