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

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

3天内不再提示

使用DS28S60加密协处理器的基础知识

星星科技指导员 来源:ADI 作者:ADI 2023-01-13 15:55 次阅读

本应用笔记详细介绍了如何将DS28S60加密处理器与ChipDNA™配合使用。它描述了DS28S60所需的设置。然后,它描述了使用非对称密钥交换在主机和客户端之间安全地生成共享对称密钥的分步方法。接下来,它将介绍如何使用对称密钥在主机和客户端之间交换加密数据。最后,本文介绍了DS28S60使用ECDSA进行双向认证过程的示例。

术语定义

让我们看一下本应用笔记中使用的术语:

设备或客户端——包含DS28S60的设备。它需要与主机通信。例如,传感器节点。

主机或远程对等体 - 需要与设备通信的实体。例如,应用程序服务器。

颁发机构 - 使用颁发机构密钥对创建证书的受信任方,设备和远程对等方可以使用该证书作为系统的一部分相互验证。

图 1 和图 2 显示了设备、客户端和机构如何在系统中的高级级别相互交互。

poYBAGPBDnWAfdr4AAB0XyA6v9M016.jpg?imgver=1

图1.加密通道系统概述。

pYYBAGPBDniAVvzNAADS0JBDVpU366.jpg?imgver=1

图2.相互身份验证系统概述。

基本命令和设备出厂设置

在现场使用DS28S60之前,请先设置器件,以满足安全需求。这涉及安装和/或生成设备密钥对、机密和证书。这是在工厂等安全位置完成的。

poYBAGPBDnqAZwpGAABtzxEac7U694.jpg?imgver=1

图3.生成设备证书的颁发机构。

DS28S60 设置步骤:

生成并安装设备公钥对:

首先,使用生成 ECC-256 密钥对命令为设备生成 ECDSA 密钥对并将其安装到密钥对 A 内存块。注意,与其让DS28S60生成自己的密钥对,不如使用写存储器命令将其他地方创建的密钥对写入DS28S60。

接下来,使用 set 块保护命令对密钥对块 A 进行写保护,以便无法修改此密钥对。

让授权机构为公钥创建证书:

安装器件密钥对后,将公钥连同DS28S60的ROM ID和MAN ID发送给机构,以便颁发机构为密钥对生成证书(图3)。请注意,ROM ID和MAN ID是在Maxim制造过程中编程到器件中的数据元素。

将证书写入DS28S60:

收到生成的证书后,将证书写入用户内存页。

将颁发机构公钥和特性数据写入DS28S60:

将颁发机构公钥写入颁发机构密钥 A 块。请参考DS28S60用户指南,了解器件存储器图和更多信息。写入密钥后,对颁发机构密钥 A 块进行写保护以防止其被修改。

接下来,将任何特性数据写入DS28S60。特征数据可以是应用所需的任何数据,例如测试信息、序列号、设备调整信息、制造日期等。根据需要使用尽可能多的页面。

对已安装的密钥、机密和证书设置适当的保护:

写入功能数据后,对设备证书和功能数据进行写保护 (WP)。如果要素数据需要不同的保护,请将它们放在不同的内存块中。使用设置块保护命令设置 WP 保护。

锁定未使用的密钥对块和机密块。

最后,将随机生成的数据写入每个未使用的密钥和密钥页,并对它们进行写保护以防止它们被使用。

使用非对称密钥交换的加密通信

主机和设备各自生成一个 ECDSA 密钥对,称为临时密钥对,用于设置加密通道。必须为每个通信会话生成新的临时密钥对。生成密钥后,主机和设备使用 ECDHE 密钥交换安全地计算共享密钥,以便在后续 AES-GCM 会话中进行加密和解密。

加密通道创建步骤

pYYBAGPBDn2AWRaFAACAjbRu4SU103.jpg?imgver=1

图4.主机和设备使用 ECDHE 算法计算共享密钥。

主机生成其临时密钥对。

设备生成其临时密钥对:

设备使用生成 ECC-256 密钥对命令生成临时密钥对。

指定临时密钥 0 作为存储位置。注意:如果DS28S60断电,临时密钥存储页将丢失密钥对。

主机请求并接收设备的临时公钥。

设备请求并接收主机的临时公钥。

主机使用 ECDHE 计算共享密钥(图 4)。

设备使用 ECDHE 计算共享密钥(图 4)。

向DS28S60发出密钥交换命令以计算共享密钥。

主机和设备现在可以使用 AES-GCM 发送加密数据并解密接收到的数据(图 5)。

双向身份验证

双向身份验证有两个阶段。主机和设备使用颁发机构创建的证书和颁发机构的公钥,在第一阶段验证彼此的公钥是否是系统的一部分(图 6)。验证公钥后,主机和设备将在第二阶段验证它们是否各自拥有与已验证的公钥相对应的私钥。这是通过交换使用其各自的私钥生成的签名并使用经过验证的公钥来验证签名来实现的。图 7 和图 8 显示了私钥验证过程。

第 1 阶段。公钥验证

poYBAGPBDoKATLRcAAC5dRn3e9M284.jpg?imgver=1

图6.使用证书进行公钥验证的高级图。

主机请求并接收设备的公钥:

当主机请求器件的公钥时,器件使用读存储器命令从DS28S60读取公钥两次,读取公钥A x和y元件,然后将公钥发送给主机。

主机请求并接收设备的证书和证书消息数据:

当器件收到对其证书的请求时,它使用读存储器命令从DS28S60的用户页面读取其证书,然后将其传输到主机。

设备请求并接收主机的公钥:

当设备请求并接收主机的公钥时,它会使用写入内存命令将其写入公钥 SA 块。

设备请求并接收主机的证书和证书消息数据。

主机通过将证书、证书消息数据的 SHA-256 哈希和颁发机构公钥传递给 ECDSA 验证算法来验证设备的证书。

设备通过将证书、证书消息数据的 SHA-256 哈希和颁发机构公钥传递给 ECDSA 验证算法来验证主机的证书。

设备使用身份验证 ECDSA 证书命令指定密钥的PUBKEY_SA,设置 ECDH = 0 和 WPE = 0,并将证书与证书数据一起传递以验证主机的证书。有关该命令的详细信息,请参阅用户指南。

第 2 阶段。私钥验证

pYYBAGPBDoaAYvV0AACl4oYsxgs591.jpg?imgver=1

图7.私钥验证步骤一:生成签名。

主持人生成 32 字节质询,并请求设备使用质询和一些页面数据生成签名。

设备使用用于生成签名的签名和数据进行响应:

设备收到质询后,将使用计算和读取页面命令通过特征数据页面生成签名。一旦生成签名,器件将签名与用于生成签名的消息数据一起发送,即DS28S60的Rom ID、特征数据、特征数据页码和Man ID,命令字节(0xA5)。

设备生成 32 字节质询,并请求主机使用质询和一些数据生成签名:

器件使用DS28S60上的读取RNG命令产生32字节质询。生成质询后,设备会将质询发送给主机,请求主机生成证书。

主机使用用于生成签名的签名和数据进行响应:

主持人使用以下格式使用质询和一些数据生成签名:质询||数据。主持人将质询以及用于生成签名的数据发送到设备。

poYBAGPBDomAUO8-AAC6fI08qWk270.jpg?imgver=1

图8.私钥验证第二步:主机和设备验证彼此的签名。

主机使用 ECDSA 验证算法验证设备的签名,方法是向设备提供设备的公钥、带有质询和签名的数据的 SHA-256 哈希。

设备使用 ECDSA 验证算法验证主机的签名,方法是向主机提供主机的公钥、带有质询和签名的数据的 SHA-256 哈希:

一旦设备收到签名和数据,它将数据附加到发送到主机的质询中,使用DS28S60验证签名命令指定公钥SA,并将消息用作ECDSA输入参数

推荐的内场流量

现在,构建块已经介绍完毕,让我们讨论如何将它们组合在一起。设置步骤在安全的受信任位置(如工厂)中完成。设置完成后,设备在现场,主机已启动并运行,设备和主机首先使用上述步骤建立加密通道。建立加密通道后,设备和主机将相互进行身份验证,以确保它们是同一系统的一部分。一旦他们成功地相互验证,他们就开始相互通信。

总结

本应用笔记介绍了DS28S60作为需要相互认证和安全加密通信通道的系统的一部分设置和使用所需的命令和步骤。

审核编辑:郭婷

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

    关注

    68

    文章

    18293

    浏览量

    222203
  • 主机
    +关注

    关注

    0

    文章

    897

    浏览量

    34609
收藏 人收藏

    评论

    相关推荐

    FPGA处理器的优势

      传统的、基于通用DSP处理器并运行由C语言开发的算法的高性能DSP平台,正在朝着使用FPGA预处理器和/或处理器的方向发展。这一最新发展能够为产品提供巨大的性能、功耗和成本优势。
    发表于 09-29 16:28

    微机原理--数学处理器

    `微机原理--数学处理器[hide][/hide]`
    发表于 04-30 21:19

    s3c2410处理器指令的意思是什么?

    呵呵,s3c2410...在vivi中的s3c2410.h文件中设置时钟时 有这么一段mrc p15,0,r1,c1,c0,0orr r1,r1,#0xc0000000;mcr p15,0,r1,c1,c0,0这段的每句 的意思是什么?为什么要用到些
    发表于 02-25 12:34

    基于ATAES132A加密处理器的MIKROE-2760,安全2 CLICK板

    MIKROE-2760,安全2 CLICK板带有ATAES132A,这是一种加密处理器,具有基于硬件的安全密钥存储。咔嗒声设计为在3.3V或5V电源下运行。安全2点击通过SPI和I2C接口与目标
    发表于 04-10 09:46

    PSoC® 模拟处理器资料手册分享!

    赛普拉斯的 PSoC® 模拟处理器是可编程模拟处理器的可扩展和可重配置的平台架构;它能够简化带有多个传感的嵌入式系统的设计。 PSo
    发表于 09-01 16:50

    飞思卡尔C29x加密处理器

    飞思卡尔C29x加密处理器:网络数据安全的“门神”
    发表于 02-02 06:11

    为什么FPGA处理器可以实现算法加速?

    代码加速和代码转换到硬件处理器的方法如何采用FPGA处理器实现算法加速?
    发表于 04-13 06:39

    带有EEPROM的SHA1处理器DS2460电子资料

    概述:带EEPROM的SHA-1处理器DS2460是ISO/IEC 10118-3安全散列算法(SHA-1)的硬件实施方案,无需开发执行复杂SHA计算的软件,即可鉴别SHA器件以及验证数字签名服务数据的有效性。
    发表于 04-20 07:18

    小白求助怎样去使用ARM处理器

    ARM通过增加硬件处理器来支持对其指令集的通用扩展,通过未定义指令陷阱支持这些处理器的软件仿真。简单的ARM核提供板级
    发表于 04-24 09:36

    处理器基础知识(pdf教程)

    处理器基础知识-天津大学:微处理器基础知识微处理器的选取原则单片机概述典型单片机系列概述&
    发表于 08-05 23:28 36次下载

    浅谈ARM处理器基础知识

    浅谈ARM处理器基础知识
    发表于 01-14 12:31 16次下载

    比较DS28S60、MAXQ1061和MAXQ1065功能

    本应用笔记讨论了DS28S60、MAXQ1061和MAXQ1065的主要特性。它比较设备之间的功能,然后为用户提供有关如何以及何时部署每个设备的一些相关建议。附录提供了一些特定的设备功能和性能比较。
    的头像 发表于 02-17 11:28 444次阅读
    比较<b class='flag-5'>DS28S60</b>、MAXQ1061和MAXQ1065功能

    基于DS28S60的双向身份验证示例

    本应用笔记详细介绍了DS28S60与Jupyter笔记本配合使用进行双向认证的基本应用。它使用分步方法来演练设置设备和所有相关软件,创建用于通过 ECDHE 密钥交换加密数据的共享密钥,使用 AES-GCM 加密和解密数据,以及
    的头像 发表于 02-17 11:32 434次阅读

    基于DS28S60的双向身份验证示例,使用Jupyter笔记本

    本应用笔记详细介绍了DS28S60与Jupyter笔记本配合使用进行双向认证的基本应用。它使用分步方法来演练设置设备和所有相关软件,创建用于通过 ECDHE 密钥交换加密数据的共享密钥,使用 AES-GCM 加密和解密数据,以及
    的头像 发表于 06-16 11:39 488次阅读
    基于<b class='flag-5'>DS28S60</b>的双向身份验证示例,使用Jupyter笔记本

    比较DS28S60、MAXQ1061和MAXQ1065功能

    DS28S60是一款深盖™采用 ChipDNA 的加密处理器™.在物联网 (IoT) 安全方面,它为用户提供了最实惠、最简单的解决方案。它部署了简单的个性化、强大的相互身份验证、密钥交换和端到端数据
    的头像 发表于 06-16 11:50 649次阅读
    比较<b class='flag-5'>DS28S60</b>、MAXQ1061和MAXQ1065功能