一站式电子元器件采购平台

华强商城公众号

一站式电子元器件采购平台

元器件移动商城,随时随地采购

华强商城M站

元器件移动商城,随时随地采购

半导体行业观察第一站!

芯八哥公众号

半导体行业观察第一站!

专注电子产业链,坚持深度原创

华强微电子公众号

专注电子产业链,
坚持深度原创

电子元器件原材料采购信息平台

华强电子网公众号

电子元器件原材料采购
信息平台

Dallas Semiconductor/Maxim的SHA iButtons和1-Wire设备如何与小型微控制器一起使用

来源:analog 发布时间:2023-11-29

摘要: 本文档展示了Maxim的DS1963S SHA我按钮 可以与小型微控制器一起使用,以提供控制和状态消息,遥测或敏感过程控制信息的强加密和认证。

本文档展示了Maxim的DS1963S SHA按钮 可以与小型微控制器一起使用,以提供控制和状态消息,遥测或敏感过程控制信息的强加密和认证。为了实现低成本和低开销,它提供了非易失性内存、安全的秘密存储、秘密共享和旋转、快速SHA-1 pad生成和全局唯一序列号。一个简单的微控制器只需要提供一个端口引脚和几十行代码就可以获得高质量的加密安全性。

介绍

当系统在对等体之间通信遥测或控制信息时,通信数据的安全性和真实性可能很重要。如果媒体是公共的或可能受到威胁,那么保护通信路径就成了一个问题。但是,加密在网络、电话线或射频信道上的子系统之间传递的控制和状态消息通常需要大量的微控制器资源,而秘密(密钥)的维护通常是系统中的弱点。在基于rom的设备中,更改或定制关键系统机密通常是不可能的,这进一步降低了系统的安全性。

Maxim制造低成本产品机的包含快速、强大的加密引擎的存储设备。其中一些设备能够非常快速地执行SHA-1散列,并安全地存储、保护和旋转秘密。这些设备可以与小型微控制器和有限的资源一起使用,以在子系统之间提供强大的小消息加密和点对点身份验证。

弱微控制器的强密码学

当子系统组件的处理能力和内存有限时,高级加密通常是不可能的。安全的数据交换和对等认证需要保密,而微控制器在保护秘密免遭聪明的硬件和软件攻击方面做得并不好。解决方案是将加密任务转移到专门为执行这些任务而设计的设备上。本文将讨论机的执行SHA-1哈希函数的设备,为小消息加密和身份验证提供低成本、低开销的加密解决方案。

为了将微控制器代码空间保持在最小,我们将使用一个简单的基本加密概念,称为一次性填充。给定一个包含消息的字节数组,可以说该字节数组对随机字节数组的逐字节异或(Exclusive-OR)结果产生一个同样随机的字节数组。换句话说,结果数组中没有关于消息的任何信息。换句话说,当一个字节与一个随机字节进行异或运算时,会得到一个同样随机的字节。

如果要生成一个真正随机字节的数组(称为pad),那么可以将该数组与任何有效消息进行XOR,结果将是一条加密消息,该消息通过任何加密手段都无法破解(只要pad是保密的,并且只有对话中的有效参与者知道)。当对同一pad再次进行xor时,该结果将恢复为原始消息。这是密码学的一个基本原则——功能很简单(异或),能力完全取决于密码的质量和安全性,而不在于将其应用于消息的算法。

这似乎是一种非常简单,非常强大的执行消息加密的方法,但有一些注意事项:

  1. 密码必须以一种不能被破坏的方式从发送方传递给接收方。对话的双方必须共享同一个pad。

  2. 如果在多个消息上使用该垫,则其强度会大大降低-如果不是完全受损的话。必须为每条消息创建一个新的pad。


需要的是能够随意生成一个字节数组(一个pad),然后传递一些带有消息的密钥,接收方可以使用这些密钥来重新生成相同的pad。这意味着对话中的每个合法参与者都必须持有一些秘密,以便在给定密钥的情况下重新生成密钥,并且必须不惜一切代价保护该秘密。

在密码学领域中,我们描述的pad生成器是一个称为单向散列的函数。该函数接受输入数据并从中生成摘要。这个摘要完全受输入数据的每一个比特的影响,但是它的派生方式使得在给定算法和摘要的情况下无法发现输入数据。最著名和最安全的单向散列函数是SHA-1 (年代ecureh一个lgorithm)。

Maxim DS1963S SHA按钮执行所有必要的任务,作为专门的加密协处理器:

  1. 便宜的

  2. 使用一个I/O引脚轻松连接到微控制器

  3. 能否在非易失性存储中保存秘密并保护它免受攻击

  4. 是否可以轻松地轮换(迭代)秘密并具有完全的安全性

  5. 可以使用SHA-1快速生成加密声音垫吗

硬件配置

SHA设备只需要一个微控制器端口引脚和一个上拉电阻。微控制器中的代码生成适当的波形,以14kbps或140kbps的数据速率与设备进行双向通信。每个设备都包含一个全球唯一的序列号。该设备具有保存和保护秘密的能力,并能够非常快速地执行SHA-1哈希算法。

该方法

为了使用SHA设备进行点对点小消息加密,使用如下简单算法:

  1. 微控制器生成一个随机数并将其发送到设备。

  2. 微控制器指示设备使用随机数和密钥生成SHA-1摘要。

  3. 微控制器从设备读取160位摘要。

  4. 微控制器用一个字节的摘要(pad) xor每个字节的消息来获得加密的消息。

  5. 微控制器将随机数和加密的消息连接起来,并将结果发送给对等端。



图1所示

当加密消息到达时,采用以下算法:

  1. 消息的随机数部分被发送到设备。

  2. 微控制器指示设备使用随机数和密钥生成SHA-1摘要。

  3. 微控制器从设备读取160位摘要。

  4. 微控制器将每个字节的消息与一个字节的摘要(pad)进行XORs处理,以获得原始消息。

  5. 微控制器处理解密后的消息。



图2所示

尽管这个算法的外观很简单,但它是相当安全的。微控制器只需要执行基本操作机的与设备通信,然后将SHA-1摘要逐个字节地与消息数据进行异或。SHA-1功能的强度保证了安全性。因为SHA-1哈希函数是不可逆的,所以不能从消息流量中导出秘密。没有这个秘密,就没有办法破译或伪造消息。每条消息使用的随机种子值使每条消息都是唯一的,并且使破译消息几乎不可能。

长消息

SHA-1哈希函数提供160位(20字节)的结果。当要加密的消息超过这个长度时,系统可以简单地执行另一个SHA操作(以获得另外20字节的pad数据)。

重播攻击

此加密方案提供了对每个消息源的身份验证(因为只有有效的系统参与者才能生成有效的消息)以及消息数据安全性。然而,重放攻击(捕获先前的有效消息并在稍后的时间再次发送)仍然是可能的。有几个简单的方法可以防止这种情况。一种方法是在每条消息中包含一个计数器,该计数器在消息发送时递增,然后对收件人进行编程以拒绝重复的消息。另一种方法是让接收方发送一个随机数(称为挑战),然后发送方将其包含在加密消息中。因为任意两条消息的随机挑战很可能不相同,所以重播的消息将被拒绝。

随机数

本文描述的系统依赖于由微控制器生成的随机数的加密质量。有关更多信息,请参阅应用程序说明152,“SHA”按键秘密和挑战。”

1线串行通信

与设备的通信使用单个端口引脚和定义良好的通信协议完成。生成机的波形需要简单的子程序,通常可以在最简单的微控制器中的几十行汇编代码中实现。见申请说明126,"机的通过软件进行交流。”

加密或解密小型(<在慢通信速度下,通常可以在不到10ms的时间内完成160位)的消息,在高通信速度下,通常可以在不到2ms的时间内完成。

SHA设备

可用的SHA设备有两种形式,每种形式都具有不同的特性。DS1963S是一种非易失性存储器,带有SHA-1引擎和锂电源,装在一个名为an的不锈钢容器内按钮。这个设备有16个32字节的内存页和8个独立的SHA-1秘密。DS1963S在协处理器模式下用于执行小消息加密所需的SHA-1功能。

秘密的旋转

SHA设备还提供了执行秘密旋转的内部机制。系统可以向设备发送轮换消息,并要求将该消息与旧秘密进行散列以生成新秘密。设备微控制器不需要知道旧的秘密来生成新的秘密,并且新的秘密永远不会泄露——永远不会在设备外部可见。通过这种方式,可以很容易地更改(轮换)系统范围的秘密。攻击者必须能够访问原始密钥和轮换消息,才能计算出新的密钥。这允许系统不时地轮换秘密,以确保秘密的安全性。

这种机制还允许不同的各方以多个部分安装系统秘密,这样就没有一方知道生成系统秘密所需的所有信息。这种秘密共享方式进一步提高了系统的安全性。

结论

DS1963S SHA按钮可以与小型微控制器一起使用,为控制和状态消息、遥测或敏感的过程控制信息提供强大的加密和认证。为了实现低成本和低开销,它提供了非易失性内存、安全的秘密存储、秘密共享和旋转、快速SHA-1 pad生成和全局唯一序列号。一个简单的微控制器只需要提供一个端口引脚和几十行代码就可以获得高质量的加密安全性。



声明:本文观点仅代表作者本人,不代表华强商城的观点和立场。如有侵权或者其他问题,请联系本站修改或删除。

社群二维码

关注“华强商城“微信公众号

调查问卷

请问您是:

您希望看到什么内容: