选择中心

嵌入式培训
美国上市教育机构

400-111-8989

嵌入式培训

嵌入式培训 > 嵌入式资讯 

嵌入式 系统的安全性如何保证?

  • 发布:
  • 来源:嵌入式资讯精选
  • 时间:2018-07-23 18:43

随着计算机技术、微电子 技术的不断融合,嵌入式 系统应用得到了迅猛发展。近年来 嵌入式技术广泛用于解决保密信息的传输、存储和 管理方面的问题,那么嵌 入式系统的安全性要如何保证呢?当然是 需要嵌入式系统集成有可靠的加密模块了,但是现 有一些应用中的加密模块还不尽如人意。本文针 对此应用需求设计一种适用于嵌入式系统的加密IP核进行探讨。

1 AES算法

1.1 AES算法描述

密钥密 码体制分为流密码和分组密码两种。分组密 码是信息与网络安全中实现数据加密、数字签名、认证及 密钥管理的核心体制,具有速度快、易于标 准化和便于软硬件实现等特点。AES采用分 组密码的加密方式,其分组长度分为128 bit、192 bit、256 bit三种,AES密码在 相同的轮函数作用下,迭代运 算次数的不同可达到不同级别的安全强度。128 bit分组长度的情况下,循环轮数指定为11次,目前还 没有可行的算法可以对该模型进行有效攻击。每一轮 处理均为作用在中间结果上的一批运算,该中间结果称为状态,用4&TImes;4字节矩阵表示,其中,数据矩阵称为State、密钥矩阵称为Key。AES加密涉及5种运算,分别是字节代换 (SubBytes)、行移变换(ShiftRows)、列混合变换(MixColumns)、密钥加法(AddRoundKey)和密钥扩展 (ExpandedKey)。

字节代换是对State每个字 节进行独立非线性变换,由字节在GF(28)域中求 其乘法逆并外加一个仿射变换完成。具体实 现中广泛使用查表方式完成该步变换(实现该 功能单元被称为Sbox),以避免 复杂的乘法运算。

行移变换是对State进行按行移位操作,第0行不移位,第1行循环左移一位,第2行循环左移两位,第3行循环左移三位。

AES算法描述

密钥加法是将轮密钥Key和状态State中对应字节按位“异或”。

密钥扩 展提供轮变换对应密钥加法用到的各轮密钥。各轮运 算中使用到的轮密钥都不相同,密钥扩 展运算通过控制迭代运算次数计算出对应轮所需轮密钥。

加密过程由11轮运算组成,其中首 轮只进行密钥加法,接着进行9次轮变换,轮变换由字节代换、行移变换、列混合 变换及密钥加法4个步骤构成,再进行末轮变换,在末轮 中跳过列混合变换。末轮完 成后输出密文数据。AES加密过程如图1所示。

1.2 常用AES优化实现

AES算法的 轮操作特点看似更适合于在通用CPU平台下编程实现,而实际上,此种实 现方式在性能方面存在加密速度慢等先天局限性。AES加密处 理单元一般处于数据主干道上,其处理 数据能力直接影响整个应用系统的外在性能表现,因此,研究数 据处理能力强的硬件加密实现方式具有重要的意义。如何实 现高性价比的硬件AES加密一 直是加密算法应用领域研究的热点问题。

常见的 硬件优化实现有如下几种方式:(1)串行方式。将轮函数展平,每轮对 应一级组合逻辑,11轮迭代过程直接相连,前一级 输出作为次一级的输入,每一个 时钟周期均可完成一个分组处理;(2)迭代方式。各轮迭 代只用一个对应轮函数功能的组合逻辑实体实现,每11个时钟 周期完成一个分组处理;(3)流水线方式。用于提 高系统工作时钟周期的流水线技术,一般仅在局部使用,或是与串行方式并用,可提高工作时钟频率,使其满 足极大带宽的应用要求;(4)轮内实现流水线。在轮函 数对应实体中插入寄存器,将一轮 运算分至多个逻辑段完成,每个时 钟周期仍能完成一个数据分组处理。

以上AES算法实 现方式各有优缺点,但总体 来说缺乏灵活性。当前应 用于嵌入式系统的AES加密模块在灵活性、资源占 用上还不是很理想。在对常 用优化方法进行研究后,本文针 对嵌入式系统设计一种AES加密IP核、实现低资源占用、高性能要求、32位数据位宽、且能方 便进行并行连接,实现数据位宽扩展。

2 IP核设计

2.1 系统架构设计

IP系统分为时序控制、密钥处理、数据处 理三个主要单元,系统的 工作模式分为闲置模式、密钥输入模式、单轮加 密模式及连续加密模式。复位后 系统处于闲置模式,单轮加 密模式可以直接切换为连续加密模式,而连续 加密模式需进入到闲置模式至少一个时钟周期后才可切换到单轮加密工作模式。

密钥处 理单元在系统进 入密钥输入模式后的连续4个时钟 周期从数据输入端口读入总共128位密钥数据,在第5个时钟 周期到来时完成第一轮密钥的计算,然后系 统返回闲置模式。在加密 模式中密钥处理单元按算法需求实时计算各轮密钥,并按32位为一组输出,与数据通道中32位数据进行“异或”运算。在系统 模式由加密模式转为闲置模式时,完成密 钥处理单元的归位动作,使得单 元状态与密钥输入后的状态相同,为下一次加密做准备。

数据处 理单元在加密模式下对明文数据进行迭代运算。该单元 检测到当前是最末轮数据处理时自动跳过列混合运算。在系统 进入加密模式后,数据处 理单元从输入端口分4次读入128位明文数据,经过接下来的40个时钟 周期数据运算过程后,得到密文中的第一个32位数据段。

时序控 制单元负责整个系统关键控制信号的生成,控制信 号集中由一个单元负责产生,不仅利 于软件综合出较高的时钟频率,而且输 出的时钟相位也有较优的一致性。

系统正 常工作状态为先进行一次密钥载入操作,然后触 发进入加密模式进行多次的数据加密。在需要 时可以在闲置状态下再次进行密钥模式对密钥进行更新。

在系统闲置状态下,密钥加 载信号被检测为有效时,系统进 入密钥输入模式,对密钥数据进行读入、保存及 生成第一轮密钥待用,而忽略 密钥处理单元中是否先前已存在密钥数据。数据加 载引脚指示系统由闲置模式输入单轮加密模式,因为128位数据要在4个时钟周期完成读入,加密后数据也需要4个时钟 周期时间才能完成输出。因此,从明文 数据输入到密文数据输出共需要等待40个时钟周期。如果此 时检测到数据加载引脚信号有效则在输出密文的同时进行下一轮明文的读入,系统进 入到连续加密模式,否则在接下来的4个时钟 周期将密文输出后系统由单轮加密模式切换到闲置模式。连续加 密模式适合用于进行批量数据加密处理,系统每40 个时钟 周期会从输入端口读入128位明文数据,同时在这40个时钟 周期中将提供密文数据。在进行 大量数据处理时,载入密 钥及载入第一组加密数据的几个时钟周期均可忽略,系统性能为每40个时钟周期处理128位数据。在读入明文时,若检测 到载入数据信号无效,则退出连续加密模式,系统回复到闲置状态。

感谢您的阅读,以上就 是对嵌入式系统的安全性问题进行的一个探讨,针对此 应用需求设计一种适用于嵌入式系统的加密IP核,你对此 还有别的什么见解吗?更多嵌 入式相关的知识尽在,敬请关注!

免责声明:内容和图片源自网络,版权归原作者所有,如有侵 犯您的原创版权请告知,我们将 尽快删除相关内容。

预约申请免费试听课

填写下 面表单即可预约申请免费试听!怕钱不够?可就业 挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:学编程,你选嵌入式还是Java?
下一篇:什么是嵌入式?为什么 要进行嵌入式培训学习?嵌入式 就业前景怎么样?

有人说 做嵌入式没有前途了,这是真的吗?

我来分享51单片机的DIY历程,你来回答我软件、硬件方向的问题!

入门嵌入式,你一定 会问的几个问题!

零基础 学习嵌入式难吗?零基础 多长时间才能学会嵌入式?

选择城市和中心
黑龙江省

吉林省

河北省

河南省

湖南省

贵州省

云南省

广西省

海南省

友情链接:    鎺屽績妫嬬墝-棣栭〉       鐪熶汉妫嬬墝鍦ㄧ嚎娓告垙骞冲彴-瀹樼綉骞冲彴鎵嬫満app