0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

密码算法如何保护嵌入式设计

星星科技指导员 来源:Maxim 作者:Zia A. Sardar 2022-05-27 17:09 次阅读

密码学与用于实现它的算法一样强大。在现代密码学中,我们拥有基本的 XOR 函数,以及当今许多应用程序中使用的更复杂的算法。在这篇博文中,我将概述一些关键算法,包括安全哈希算法和 AES 算法。

让我们通过定义 XOR(异或)开始我们的讨论,这是一种在许多(如果不是全部)密码算法中用于各种能力的重要逻辑运算。图 1显示了此功能的工作原理。在深入研究算法之前,您需要了解此功能。

pYYBAGKQli2ASIlJAAF154Y6FVQ228.png

图 1. 该图显示了 XOR 函数的工作原理。

由于 XOR 的特性,一个输入可以用作数据进入另一个输入的键。例如,如果 A 是加密密钥的单个位,如果 A 为 1,则与来自 B 的数据位的 XOR 会翻转该位。这可以通过再次将加密结果与密钥进行按位异或来反转。

现在,让我们更详细地了解安全哈希算法或 SHA。安全散列函数获取可变大小的数据并将其压缩为固定大小的位串输出——这个概念称为散列。SHA 函数是一系列哈希算法,通过 NIST(美国国家标准与技术研究院)的监督随着时间的推移而开发。SHA-3 函数是最新的。

在接下来的部分中,我们将探讨 SHA 函数的工作原理,重点是 SHA-2 和 SHA-3。(SHA-1 正在逐步淘汰,不推荐用于任何新设计。)

SHA-2 函数根据输出位长有四种主要类型:

SHA-224 – 哈希是 224 位长。

SHA-256 – 哈希是 256 位长。

SHA-384 – 散列长度为 384 位。

SHA-512 – 哈希是 512 位长。

SHA-3 函数没有预定义的输出长度。输入和输出长度也没有最大值。但是为了与 SHA-2 进行比较,让我们根据输出位长度定义四种主要类型。这些是:

SHA3-224 – 哈希是 224 位长。

SHA3-256 – 哈希是 256 位长。

SHA3-384 – 散列长度为 384 位。

SHA3-512 – 哈希是 512 位长。

让我们以 SHA3-256 为例。SHA-3 使用 Keccak 海绵函数。就像海绵一样,第一步会吸收或吸收输入的信息。在下一阶段,输出哈希被挤出。图 2是 SHA3-256 函数的框图。

pYYBAGKQljOAIzNxAAKJlJCnUro076.png

图 2. 该图显示了用于安全散列生成的 SHA3-256 函数的框图。

图 2 中的迭代函数接收 1600 位数据,然后使用特定算法对其进行 24 轮置换,然后将其作为 1600 位块传递到下一个阶段。这一直持续到吸收阶段完成。

吸收阶段完成后,最后一个 1600 位块被传递到挤压阶段。在这种情况下,由于 SHA3-256 输出哈希长度小于 1088 位,因此压缩阶段不需要任何迭代函数。我们从最后阶段获取前 256 位,这就是输出哈希。

例如,如果所需的散列长度为 2500 位,我们将需要三个以上迭代函数实例来获得所需长度的散列。

还有一些基于加密标准的算法,例如高级加密标准算法。AES 算法根据输入密钥的值以可逆的方式对输入数据进行加扰和替换,从而产生所谓的密文。由于 AES 算法是一种固定宽度的加密算法,因此首先填充输入消息以确保它完全适合“n”个 128 位块。

每个 128 位块与加密密钥一起输入加密算法。根据加密密钥中的位数,AES 算法会执行一定轮数的模糊输入块位。这种模糊化是通过混洗数据位、获取部分数据并用查找表(如解码轮)中的值替换它们以及执行 XOR 操作以根据一组中的位值将位从 0 翻转到 1 来实现的从输入加密密钥生成的“轮密钥”。轮密钥用于其中一个模糊轮,它是通过复制位并在其他位之间插入副本来“扩展”加密密钥的一部分来创建的。

AES 解密函数使用相同的加密密钥简单地执行加密函数中的操作的相反操作,以便对原始输入块数据进行解密。

这些只是为提供设计安全性而出现的一些加密算法。通过阅读改编本博文的教程“密码学:深入了解算法”,了解有关其他人的更多信息(包括 RSA 公钥密码系统、椭圆曲线数字签名算法和椭圆曲线 Diffie-Hellman 密钥交换协议)。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AES
    AES
    +关注

    关注

    0

    文章

    103

    浏览量

    33206
  • RSA
    RSA
    +关注

    关注

    0

    文章

    59

    浏览量

    18863
收藏 人收藏

    评论

    相关推荐

    嵌入式AES算法CBC模式

    嵌入式AES算法CBC模式
    发表于 08-18 07:28

    诚聘嵌入式算法工程师

    猎头职位:嵌入式算法工程师【上海】工作职责: 1.负责传感器相关的图像处理,模式识别,信号处理方面的算法开发;2.验证算法原型,并在嵌入式
    发表于 10-21 11:14

    如何设计嵌入式系统掉电保护方案?

    嵌入式系统设计过程中,系统的掉电保护越来越受到重视。如何设计嵌入式系统掉电保护方案?这个问题急需解决。
    发表于 08-09 07:48

    嵌入式小波编码算法的原理是什么?

    Partitioned Embedded bloCK coder),可逆嵌入小波压缩算法(CREW:Compression with Reversible Embedded Wavelets)[3] 。本文对这些算法进行了原理
    发表于 08-15 08:27

    使用安全IC保护IoT嵌入式设计

    控制,因此您可以安全地启用和禁用各种基于工厂的选项安全IC继续为现有以及新的嵌入式设计提供高级保护。使用这些设备进行设计的优点之一是,您无需成为密码专家就可以利用强大的密码功能。基于软
    发表于 09-28 19:21

    嵌入式平台安全启动的相关资料下载

    嵌入式平台安全启动介绍在嵌入式中的安全启动,第一要素是需要对镜像进行保护,保证镜像的安全性,防止镜像被破解和篡改。为了保护这些镜像,需要对启动镜像做加密或者签名操作,如果镜像被第三方修
    发表于 12-17 07:09

    嵌入式系统中语音算法的基本原理是什么

    嵌入式系统中语音算法的基本原理是什么?嵌入式系统中语音算法有何功能?
    发表于 12-23 08:49

    嵌入式开发的crc算法知识精选

    CRC校验(循环冗余校验)是数据通讯中最常采用的校验方式。在嵌入式软件开发中,经常要用到CRC 算法对各种数据进行校验。因此,掌握基本的CRC算法应是嵌入式程序员的基本技能。可是,
    的头像 发表于 11-08 11:28 4412次阅读
    <b class='flag-5'>嵌入式</b>开发的crc<b class='flag-5'>算法</b>知识精选

    嵌入式系统中数字滤波的算法及软件流程

    嵌入式系统中数字滤波的算法及软件流程(嵌入式开发工具软件是什么)-嵌入式系统中数字滤波的算法及软件流程               
    发表于 07-30 12:45 15次下载
    <b class='flag-5'>嵌入式</b>系统中数字滤波的<b class='flag-5'>算法</b>及软件流程

    基于KCF的目标跟踪算法研究及嵌入式系统实现

    基于KCF的目标跟踪算法研究及嵌入式系统实现(嵌入式开发公司如何接项目)-该文档为基于KCF的目标跟踪算法研究及嵌入式系统实现总结文档,是一
    发表于 08-04 10:07 8次下载
    基于KCF的目标跟踪<b class='flag-5'>算法</b>研究及<b class='flag-5'>嵌入式</b>系统实现

    不知道嵌入式Linux系统下的root密码,修改新密码并进入系统

    今天一朋友问不知道root 密码怎么修改。他这个系统是海思平台的嵌入式Linux系统。然后尝试了修改并进入系统。嵌入式Linux中的root 密码忘记了或者想破解别人系统的
    发表于 11-01 17:59 14次下载
    不知道<b class='flag-5'>嵌入式</b>Linux系统下的root<b class='flag-5'>密码</b>,修改新<b class='flag-5'>密码</b>并进入系统

    linux嵌入式系统算法,嵌入式Linux操作系统调度算法研究

    嵌入式Linux操作系统调度算法研究嵌入式操作系统在互联网时代的今天得到广泛应用。Linux系统本身并不是严格的实时操作系统。为了提高它对实时任务的处理能力,国内外对Linux进行了不断的实时性能
    发表于 11-02 10:36 15次下载
    linux<b class='flag-5'>嵌入式</b>系统<b class='flag-5'>算法</b>,<b class='flag-5'>嵌入式</b>Linux操作系统调度<b class='flag-5'>算法</b>研究

    嵌入式的国家商用密码SM算法

    数据加密和解密涉及的算法大致可分为以下三大类:单向散列算法(杂凑算法),对称加密算法,公开密钥加密算法(非对称加密
    的头像 发表于 01-20 11:26 2760次阅读
    <b class='flag-5'>嵌入式</b>的国家商用<b class='flag-5'>密码</b>SM<b class='flag-5'>算法</b>

    加密算法如何保护嵌入式设计

    密码学与用于实现它的算法一样强大。在现代密码学中,我们拥有基本的XOR函数,以及当今许多应用程序中使用的更复杂的算法。在这篇博文中,我将概述一些关键
    的头像 发表于 06-28 10:16 485次阅读
    加密<b class='flag-5'>算法</b>如何<b class='flag-5'>保护</b><b class='flag-5'>嵌入式</b>设计

    深度学习算法嵌入式平台上的部署

    随着人工智能技术的飞速发展,深度学习算法在各个领域的应用日益广泛。然而,将深度学习算法部署到资源受限的嵌入式平台上,仍然是一个具有挑战性的任务。本文将从嵌入式平台的特点、深度学习
    的头像 发表于 07-15 10:03 1179次阅读