质询和响应身份验证要求 MAC 发起方和 MAC 接收方根据隐藏的机密和公共数据计算消息认证代码。发起方通常是 SHA-1 身份验证器或具有 SHA-1 引擎的受保护内存。MAC 接收方是应用程序的主机处理器。本应用笔记介绍了DSSHA1可合成SHA-1协处理器,该协处理器可在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中实现,作为DS2460 SHA-1协处理器或基于微处理器的替代方案。
介绍
质询和响应身份验证基于消息身份验证代码 (MAC) 的计算。该方法涉及两个实体,即 MAC 发起方和 MAC 接收方,它们共享一个隐藏的机密。为了证明 MAC 发起方的真实性,MAC 接收方会生成一个随机数,并将其作为质询发送给发起方。然后,MAC 发起方必须根据机密、消息和质询计算新的 MAC,并将其发送回接收方。如果发起方证明能够为任何质询生成有效的MAC,则非常确定它知道该机密,因此可以被认为是真实的。计算消息身份验证代码的彻底审查和国际认证的算法是SHA-1,它由美国国家标准与技术研究院(NIST)开发。
ADI公司生产一系列采用SHA-1算法的认证器件。教程3675“通过安全认证保护研发投资”以安全存储器和DS2460 SHA-1协处理器的形式解释了ADI公司的认证解决方案。DSSHA1存储器映射SHA-1协处理器允许DS2460的计算能力在专用集成电路(ASIC)或现场可编程门阵列(FPGA)中实现,无需开发软件即可执行复杂的SHA-1计算。DSSHA1或DS2460计算的MAC仅适用于ADI公司的SHA-1器件。
描述
DSSHA1 是一款可合成的内存映射 SHA-1 协处理器,包括一个存储 64 字节消息的 64 字节通用 RAM。输入消息用于计算 SHA-1 MAC。DSSHA1 输入和输出端口信号设计用于内部连接到 32 位总线。通过积极的比较结果,在主机系统和从属附件之间实现了身份验证安全性。
图 1 显示了 DSSHA1 框图。表 1 描述了将 DSSHA1 连接到主机系统的信号。使用数据总线输入、地址和控制信号,将 64 字节 SHA-1 消息插入 RAM。将输入信号RUN_SHA触发至逻辑高电平将启动SHA-1计算。输出 BUSY 信号指示正在发生的计算。完成 BUSY 信号后,结果寄存器包含 20 字节消息摘要以供读取。
图1.方框图。
名字 | 类型* | 功能 |
CLK | I | 时钟。在正边,信号 DATAI[31:0] 和 DATAO[31:0] 上的数据被输入和输出。 |
RSTZ | I | /有效复位。RSTZ信号在CLK信号的正边沿的每个间隔处进行评估。有必要在每次加载 512 位消息和 MAC 计算之前进行重置。 |
CSZ | I | /有效芯片选择。对于寄存器和存储器的所有访问,此信号必须为低电平。 |
WRZ | I | 低电平有效写使能。在所有写入操作期间,此信号必须为低电平。 |
ADDR[4:0] | I | 地址 [4:0]。这五个信号就是地址信号。 |
DATAI[31:0] | I | 数据总线输入。这32个信号是输入数据总线。 |
DATAO[31:0] | O | 数据总线输出。这32个信号是输出数据总线。 |
BUSY | O | 忙。当信号为高电平时,此信号表示SHA-1协处理器正忙于执行计算。当此信号为高电平时,不应有数据访问。 |
RUN_SHA | I | 运行 SHA-1。该信号必须只有一个时钟周期宽,并在CLK信号的正边沿启动SHA-1计算。 |
*I = 输入,O = 输出。 |
详细寄存器说明
DSSHA1 存储器由 32 个 2 位字组成,从输入缓冲器开始,以寄存器结束,用于读取 MAC 结果(表 <>)。
地址(十六进制) | 类型 | 访问 | 功能 |
00h 至 0Fh | RAM | 读/写 | 64字节缓冲器输入。这是 512 位输入块,通常包括 64 位从设备密钥和由随机质询和各种数据组成的 448 位输入消息。 |
10小时至14小时 | 寄存 器 | 读 | 20 字节结果。这是用于与 SHA-1 从设备接收到的 MAC 进行比较的 MAC。 |
输入缓冲器(00h 至 0Fh)
SHA-1 引擎通过 64 字节输入缓冲区接收要处理的数据。此缓冲区保存 SHA-512 引擎处理以生成 MAC 的 1 位消息。机密和其他消息数据包含在输入缓冲区中。密钥的安全性是留给设计人员的任务。数据的格式由每个ADI公司的SHA-1从器件定义。
MAC 结果(10 小时至 14 小时)
SHA-20 计算的 1 字节 MAC 驻留在 MAC 结果地址空间中。
设备操作
DSSHA1在应用中的典型用途包括写入、读取和运行SHA-1引擎,并使用MAC结果将该模块与1-Wire SHA-1器件的MAC进行外部比较。所有这些活动都通过具有独立数据输入和输出线的 32 位接口进行控制,以便轻松连接到 ASIC 或 FPGA 内部总线。下面的 SHA-1 引擎控制部分介绍了数据输入和输出格式以及如何指示 SHA-1 引擎执行 MAC 计算。
SHA-1 发动机控制
DSSHA1执行SHA-1发动机的工作。输入缓冲区接受消息。MAC 输出缓冲区接收生成的 SHA-1 计算。图 2 说明了流入和流出 SHA-1 引擎的数据流。
应用电源复位启动使用 SHA-1 引擎的第一步。接下来,以表 3 的格式将消息加载到输入缓冲区中。消息加载完成后,用户向RUN_SHA输入信号发送脉冲。在 SHA-1 计算期间,BUSY 信号变为并保持逻辑高电平。当SHA-1计算完成时,忙信号再次变为逻辑低电平。所有五个MRR寄存器(见表4)都包含用于读取的MAC结果。
图2.数据流图。
M0[31:24] = (IB + 0) | M0[23:16] = (IB + 1) | M0[15:8] = (IB + 2) | M0[7:0] = (IB + 3) |
M1[31:24] = (IB + 4) | M1[23:16] = (IB + 5) | M1[15:8] = (IB + 6) | M1[7:0] = (IB + 7) |
M2[31:24] = (IB + 8) | M2[23:16] = (IB + 9) | M2[15:8] = (IB + 10) | M2[7:0] = (IB + 11) |
M3[31:24] = (IB + 12) | M3[23:16] = (IB + 13) | M3[15:8] = (IB + 14) | M3[7:0] = (IB + 15) |
M4[31:24] = (IB + 16) | M4[23:16] = (IB + 17) | M4[15:8] = (IB + 18) | M4[7:0] = (IB + 19) |
M5[31:24] = (IB + 20) | M5[23:16] = (IB + 21) | M5[15:8] = (IB + 22) | M5[7:0] = (IB + 23) |
M6[31:24] = (IB + 24) | M6[23:16] = (IB + 25) | M6[15:8] = (IB + 26) | M6[7:0] = (IB + 27) |
M7[31:24] = (IB + 28) | M7[23:16] = (IB + 29) | M7[15:8] = (IB + 30) | M7[7:0] = (IB + 31) |
M8[31:24] = (IB + 32) | M8[23:16] = (IB + 33) | M8[15:8] = (IB + 34) | M8[7:0] = (IB + 35) |
M9[31:24] = (IB + 36) | M9[23:16] = (IB + 37) | M9[15:8] = (IB + 38) | M9[7:0] = (IB + 39) |
M10[31:24] = (IB + 40) | M10[23:16] = (IB + 41) | M10[15:8] = (IB + 42) | M10[7:0] = (IB + 43) |
M11[31:24] = (IB + 44) | M11[23:16] = (IB + 45) | M11[15:8] = (IB + 46) | M11[7:0] = (IB + 47) |
M12[31:24] = (IB + 48) | M12[23:16] = (IB + 49) | M12[15:8] = (IB + 50) | M12[7:0] = (IB + 51) |
M13[31:24] = (IB + 52) | M13[23:16] = (IB + 53) | M13[15:8] = (IB + 54) | M13[7:0] = (IB + 55) |
M14[31:24] = (IB + 56) | M14[23:16] = (IB + 57) | M14[15:8] = (IB + 58) | M14[7:0] = (IB + 59) |
M15[31:24] = (IB + 60) | M15[23:16] = (IB + 61) | M15[15:8] = (IB + 62) | M15[7:0] = (IB + 63) |
Mt = SHA-1 发动机的输入缓冲区;0 ≤ t ≤ 15;32 位字,起始地址为 00h,结束地址为 0Fh。 IB = 输入缓冲区。 |
表 4 显示了保存 MAC 的五个 32 位变量 A 到 E 如何映射到各自的位置。
Address (Hex) | MAC Result Registers (MRR) |
10h | MRR[31:0] = A[31:0] (least significant) |
11h | MRR[31:0] = B[31:0] |
12h | MRR[31:0] = C[31:0] |
13h | MRR[31:0] = D[31:0] |
14h | MRR[31:0] = E[31:0] (most significant) |
MAC 比较
主站需要针对 DSSHA1 MAC 测试从属 MAC。如果从属 MAC 和 DSSHA1 MAC 的值相等,则验证真实性。如果从属 MAC 和 DSSHA1 MAC 不同,则会验证欺诈行为。
功能验证
要测试 DSSHA1,测试消息“abc”可以验证功能。此具有适当填充的测试消息可以转换为以下输入块:
W[0] = 61626380 | W[8] = 00000000 |
W[1] = 00000000 | W[9] = 00000000 |
W[2] = 00000000 | W[10] = 00000000 |
W[3] = 00000000 | W[11] = 00000000 |
W[4] = 00000000 | W[12] = 00000000 |
W[5] = 00000000 | W[13] = 00000000 |
W[6] = 00000000 | W[14] = 00000000 |
W[7] = 00000000 | W[15] = 00000018 |
使用表 3 的格式,此测试消息的输入块将是表 5 中的值。
M0[31:24] = 61h | M0[23:16] = 62h | M0[15:8] = 63h | M0[7:0] = 80h |
M1[31:24] = 00h | M1[23:16] = 00h | M1[15:8] = 00h | M1[7:0] = 00h |
M2[31:24] = 00h | M2[23:16] = 00h | M2[15:8] = 00h | M2[7:0] = 00h |
M3[31:24] = 00h | M3[23:16] = 00h | M3[15:8] = 00h | M3[7:0] = 00h |
M4[31:24] = 00h | M4[23:16] = 00h | M4[15:8] = 00h | M4[7:0] = 00h |
M5[31:24] = 00h | M5[23:16] = 00h | M5[15:8] = 00h | M5[7:0] = 00h |
M6[31:24] = 00h | M6[23:16] = 00h | M6[15:8] = 00h | M6[7:0] = 00h |
M7[31:24] = 00h | M7[23:16] = 00h | M7[15:8] = 00h | M7[7:0] = 00h |
M8[31:24] = 00h | M8[23:16] = 00h | M8[15:8] = 00h | M8[7:0] = 00h |
M9[31:24] = 00h | M9[23:16] = 00h | M9[15:8] = 00h | M9[7:0] = 00h |
M10[31:24] = 00h | M10[23:16] = 00h | M10[15:8] = 00h | M10[7:0] = 00h |
M11[31:24] = 00h | M11[23:16] = 00h | M11[15:8] = 00h | M11[7:0] = 00h |
M12[31:24] = 00h | M12[23:16] = 00h | M12[15:8] = 00h | M12[7:0] = 00h |
M13[31:24] = 00h | M13[23:16] = 00h | M13[15:8] = 00h | M13[7:0] = 00h |
M14[31:24] = 00h | M14[23:16] = 00h | M14[15:8] = 00h | M14[7:0] = 00h |
M15[31:24] = 00h | M15[23:16] = 00h | M15[15:8] = 00h | M15[7:0] = 18h |
Mt = SHA-1 发动机的输入缓冲区;0 ≤ t ≤ 15;32 位字,起始地址为 00h,结束地址为 0Fh。 |
此块的计算输出为:
A[31:0] = 42541B35
B[31:0] = 5738D5E1
C[31:0] = 21834873
D[31:0] = 681E6DF6
E[31:0] = D8FDF6AD
ADI公司器件首先将这些字作为最高有效字,将独立字节作为最低有效字节(LSB)。因此,MAC 的字节级传输序列将是:
AD F6 FD D8 | F6 6D 1E 68 | 73 48 83 21 | E1 D5 38 57 | 35 1B 54 42 |
(E) | (D) | (C) | (B) | (A) |
时序规格
图 3 和图 4 显示了写入和读取 DSSHA1 的时序图。表6显示了使用ARM TSMC CL50G(50.018μm通用工艺)0.18V SAGE-X标准电池库(版本1q8v2004)在+3°C下从1%电源到25%电源测量的延迟值。 输出信号未加载。输入信号以 0.200ns 的标准压摆驱动,电源的 10% 至 90%。
参数 | 象征 | 最小值 | 麦克斯 | 单位 | ||
CLK循环(注1) | tCYC | 12.500 | ns | |||
CLK上升沿前的芯片选择设置(注1) | tCSS | 0.229 | ns | |||
CLK上升沿后芯片选择保持(注1) | tCSH | 0.000 | ns | |||
CLK上升沿前的地址和数据设置(注1) | tAS | 0.229 | ns | |||
CLK上升沿后的地址和数据保持(注1) | tAH | 0.000 | ns | |||
有效输出时间至DATAO有效(注释1、2) | tAO | 0.984 | ns | |||
停用数据[31:0] (注1) | tD | 0.984 | ns | |||
注1:这些值取决于用于实现电路的过程。显示的值仅用于示例目的,并使用 ARM 台积电 CL018G(0.18μm 通用工艺)1.8V SAGE-X 标准细胞库 2004q3v1 进行建模。ARM 部件号为 A0082。 注2:此时间定义为典型拐角的有效输出的最长可能延迟。 |
图3.写入周期。
图4.读取周期。
应用信息
FPGA 或 ASIC 集成了设计的 DSSHA1。使用多个模块,可实现的身份验证方法使设计安全。在图5中,带有微处理器的设计模块可以将SHA-1计算卸载到DSSHA1。在图5中,设计人员首先制作一个随机生成的质询,并将DSSHA1的结果与DS28E01-100的响应进行比较。如果结果和响应匹配,则设计已经过身份验证,可以启用产品的功能。通常需要在软件和硬件的身份验证过程中进行更改。这使得成功攻击的可能性降低。更多信息请参考应用笔记1098:“白皮书3:为什么1-Wire SHA-1器件安全?
图5.典型的 FPGA 或 ASIC 应用。
物理估计
门数 6,423(NAND 2x1 用于计算)。
面积为85,470μm²,无布线。
面积为102,256μm²,布线估计值。
用于估算的库:
ARM 台积电 CL018G (0.18μm 通用工艺) 1.8V SAGE-X 标准电池库,版本 2004Q3V1。ARM 部件号为 A0082。
验证
业界通常使用以下约定来表示 IP 块的验证级别:
黄金IP一直是针对硅的。
银牌IP一直是FPGA中的硅目标。
铜牌 IP 已在具有逻辑时序收敛功能的硅模型中得到验证。
开发中的 IP 尚未得到验证。
注意:DSSHA1已获得银牌地位。
交付
DSSHA1 软件包随附:
Verilog HDL
威瑞格测试台
有关安装程序和脚本的自述文件
总结
DSSHA1可合成SHA-1协处理器是DS2460或基于微处理器的替代方案。它可以嵌入到FPGA或ASIC中,在那里它显示为存储器映射器件。对于操作,首先在 16 字输入缓冲区中填充用于 MAC 计算的数据。激活RUN_SHA信号将启动计算过程,从而将 BUSY 信号从低电平更改为高电平。在 BUSY 信号恢复为低电平后,MAC 准备就绪,可以从 5 字结果寄存器读取。主机处理器将 DSSHA1 计算的 MAC 与安全内存提供的 MAC 进行比较。如果两个 MAC 值相同,则确认真实性。
审核编辑:郭婷
-
处理器
+关注
关注
68文章
19767浏览量
233096 -
集成电路
+关注
关注
5416文章
11894浏览量
366572 -
微处理器
+关注
关注
11文章
2360浏览量
83703
发布评论请先 登录
DS2465 SHA-256协处理器与1-Wire主机功能

如何通过使用FPGA高速实现SHA-1消息认证算法?
带有EEPROM的SHA1协处理器DS2460电子资料
基于SHA-1的邮件去重算法
为什么1-Wire SHA-1器件是安全的?
DSSHA1数据资料(英文)

Understanding the DSSHA1 Synthesizable SHA-1 Coprocessor

dssha1综合SHA-1协处理器

基于SHA-1算法的硬件设计及实现(FPGA实现)

安全协处理器/1-Wire® 主控器实现SHA-256认证


有几种电平转换电路,适用于不同的场景
一.起因一般在消费电路的元器件之间,不同的器件IO的电压是不同的,常规的有5V,3.3V,1.8V等。当器件的IO电压一样的时候,比如都是5V,都是3.3V,那么其之间可以直接通讯,比如拉中断,I2Cdata/clk脚双方直接通讯等。当器件的IO电压不一样的时候,就需要进行电平转换,不然无法实现高低电平的变化。二.电平转换电路常见的有几种电平转换电路,适用于

瑞萨RA8系列教程 | 基于 RASC 生成 Keil 工程
对于不习惯用 e2 studio 进行开发的同学,可以借助 RASC 生成 Keil 工程,然后在 Keil 环境下愉快的完成开发任务。

共赴之约 | 第二十七届中国北京国际科技产业博览会圆满落幕
作为第二十七届北京科博会的参展方,芯佰微有幸与800余家全球科技同仁共赴「科技引领创享未来」之约!文章来源:北京贸促5月11日下午,第二十七届中国北京国际科技产业博览会圆满落幕。本届北京科博会主题为“科技引领创享未来”,由北京市人民政府主办,北京市贸促会,北京市科委、中关村管委会,北京市经济和信息化局,北京市知识产权局和北辰集团共同承办。5万平方米的展览云集

道生物联与巍泰技术联合发布 RTK 无线定位系统:TurMass™ 技术与厘米级高精度定位的深度融合
道生物联与巍泰技术联合推出全新一代 RTK 无线定位系统——WTS-100(V3.0 RTK)。该系统以巍泰技术自主研发的 RTK(实时动态载波相位差分)高精度定位技术为核心,深度融合道生物联国产新兴窄带高并发 TurMass™ 无线通信技术,为室外大规模定位场景提供厘米级高精度、广覆盖、高并发、低功耗、低成本的一站式解决方案,助力行业智能化升级。

智能家居中的清凉“智”选,310V无刷吊扇驱动方案--其利天下
炎炎夏日,如何营造出清凉、舒适且节能的室内环境成为了大众关注的焦点。吊扇作为一种经典的家用电器,以其大风量、长寿命、低能耗等优势,依然是众多家庭的首选。而随着智能控制技术与无刷电机技术的不断进步,吊扇正朝着智能化、高效化、低噪化的方向发展。那么接下来小编将结合目前市面上的指标,详细为大家讲解其利天下有限公司推出的无刷吊扇驱动方案。▲其利天下无刷吊扇驱动方案一

电源入口处防反接电路-汽车电子硬件电路设计
一、为什么要设计防反接电路电源入口处接线及线束制作一般人为操作,有正极和负极接反的可能性,可能会损坏电源和负载电路;汽车电子产品电性能测试标准ISO16750-2的4.7节包含了电压极性反接测试,汽车电子产品须通过该项测试。二、防反接电路设计1.基础版:二极管串联二极管是最简单的防反接电路,因为电源有电源路径(即正极)和返回路径(即负极,GND),那么用二极

半导体芯片需要做哪些测试
首先我们需要了解芯片制造环节做⼀款芯片最基本的环节是设计->流片->封装->测试,芯片成本构成⼀般为人力成本20%,流片40%,封装35%,测试5%(对于先进工艺,流片成本可能超过60%)。测试其实是芯片各个环节中最“便宜”的一步,在这个每家公司都喊着“CostDown”的激烈市场中,人力成本逐年攀升,晶圆厂和封装厂都在乙方市场中“叱咤风云”,唯独只有测试显

解决方案 | 芯佰微赋能示波器:高速ADC、USB控制器和RS232芯片——高性能示波器的秘密武器!
示波器解决方案总述:示波器是电子技术领域中不可或缺的精密测量仪器,通过直观的波形显示,将电信号随时间的变化转化为可视化图形,使复杂的电子现象变得清晰易懂。无论是在科研探索、工业检测还是通信领域,示波器都发挥着不可替代的作用,帮助工程师和技术人员深入剖析电信号的细节,精准定位问题所在,为创新与发展提供坚实的技术支撑。一、技术瓶颈亟待突破性能指标受限:受模拟前端

硬件设计基础----运算放大器
1什么是运算放大器运算放大器(运放)用于调节和放大模拟信号,运放是一个内含多级放大电路的集成器件,如图所示:左图为同相位,Vn端接地或稳定的电平,Vp端电平上升,则输出端Vo电平上升,Vp端电平下降,则输出端Vo电平下降;右图为反相位,Vp端接地或稳定的电平,Vn端电平上升,则输出端Vo电平下降,Vn端电平下降,则输出端Vo电平上升2运算放大器的性质理想运算

ElfBoard技术贴|如何调整eMMC存储分区
ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频高达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。

米尔基于MYD-YG2LX系统启动时间优化应用笔记
1.概述MYD-YG2LX采用瑞萨RZ/G2L作为核心处理器,该处理器搭载双核Cortex-A55@1.2GHz+Cortex-M33@200MHz处理器,其内部集成高性能3D加速引擎Mail-G31GPU(500MHz)和视频处理单元(支持H.264硬件编解码),16位的DDR4-1600/DDR3L-1333内存控制器、千兆以太网控制器、USB、CAN、

运放技术——基本电路分析
虚短和虚断的概念由于运放的电压放大倍数很大,一般通用型运算放大器的开环电压放大倍数都在80dB以上。而运放的输出电压是有限的,一般在10V~14V。因此运放的差模输入电压不足1mV,两输入端近似等电位,相当于“短路”。开环电压放大倍数越大,两输入端的电位越接近相等。“虚短”是指在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称

飞凌嵌入式携手中移物联,谱写全国产化方案新生态
4月22日,飞凌嵌入式“2025嵌入式及边缘AI技术论坛”在深圳成功举办。中移物联网有限公司(以下简称“中移物联”)携OneOS操作系统与飞凌嵌入式共同推出的工业级核心板亮相会议展区,操作系统产品部高级专家严镭受邀作《OneOS工业操作系统——助力国产化智能制造》主题演讲。

ATA-2022B高压放大器在螺栓松动检测中的应用
实验名称:ATA-2022B高压放大器在螺栓松动检测中的应用实验方向:超声检测实验设备:ATA-2022B高压放大器、函数信号发生器,压电陶瓷片,数据采集卡,示波器,PC等实验内容:本研究基于振动声调制的螺栓松动检测方法,其中低频泵浦波采用单频信号,而高频探测波采用扫频信号,利用泵浦波和探测波在接触面的振动声调制响应对螺栓的松动程度进行检测。通过螺栓松动检测

MOS管驱动电路——电机干扰与防护处理
此电路分主电路(完成功能)和保护功能电路。MOS管驱动相关知识:1、跟双极性晶体管相比,一般认为使MOS管导通不需要电流,只要GS电压(Vbe类似)高于一定的值,就可以了。MOS管和晶体管向比较c,b,e—–>d(漏),g(栅),s(源)。2、NMOS的特性,Vgs大于一定的值就会导通,适合用于源极接地时的情况(低端驱动),只要栅极电压达到4V或10V就可以
评论