HSM: Hardware Security Module,硬件安全模块,如下图深色模块所示。 该模块提供了逻辑攻击保护,依赖于在主机中实现的以下特性: 1. 给HSM足够保护和锁定闪存区域 2. 在Flash配置区有OTP(One time programmable)页 3. 配置区中留有HSM内存区域 3.1 该区域对修改的锁定(OTP) 3.2 在启动过程结束后,可以关闭配置区的HSM区域 4. 复位后HSM模块配置MBIST,配置MBIST后HSM启动。 HSM不包含针对物理攻击的硬件对抗措施。针对侧通道攻击和故障攻击的对策必须由软件实现。 1.1 CPU 基于Cortex-M3,集成24位系统定时器(SysTick Timer),NVIC控制器,支持MPU和安全特性。 部分异常事件如下图所示: 1.2 TRNG、通用定时器和缓存 4Kbytes统一数据和指令缓存,真随机数发生器(TRNG),2个16位通用定时器。其中TRNG:为加密算法(密钥)、协议(挑战、盲值、填充字节)等提供随机数据。 1.3 AES模块和防火墙 AES(Advanced Encryption Standard,高级加密标准)模块带有8个128位(其中2个是不可更改的)本地密钥和5个(包括1个用于伪RNG)上下文存储防火墙功能:HSM内部保护免受其他主机的访问。
1.4 Boot ROM (4KB)
1.5 本地RAM
1.6 看门狗定时器、Hash模块和PKC模块 看门狗定时器:一个16位向上计数Hash模块:SHA224/256硬件加速器,用于签名生成、验证和通用数据完整性检查 PKC模块:ECC-256硬件加速模器,支持快速签名生成和ECDSA验证 这3个模块只适用于A2G 1.7 A1G 对于A1G,PFx中的HSM Flash专用扇区。TC23x/TC27x/TC29系列S6 16KB,S16和S17共128KB。 TC27x/TC29x系列也可以用Dflash 8×8KB=64KB 1.8 A2G 对于A2G,PFx中的HSM Flash专用扇区。共40×16KB=640KB。配置选项:如果需要并行TP和HSM操作,那么PF0 S0到S39可以配置为TP和HSM PCODE,如下所示:
TP,HSM PCODE和CPU地址范围应该是连续的 对于A2G,DFlash Bank1中的HSM Flash专用扇区 1.9 其他模块 其他可选模块,实现安全相关应用
2.真随机数发生器TRNG TRNG:True Random Numbers Generator,用于生成随机数:
需要高“熵” (High “entropy”)
质量(最小熵要求)由德国BSI发布的AIS-31定义 2.1 TRNG熵(TRNG Entropy)
注意:BSI文件AIS 20/31取代了AIS-31,旧的“P2 high”现在被称为“PTG.2”。但这对TRNG来说没有任何改变。 2.2 TRNG 吞吐量 生成随机数所需的时间不是常数,取决于源的“熵”水平吞吐量R以千比特每秒(kb/s)为单位,如下公式所示 对于100MHz的时钟频率,典型的吞吐量大约是Rtyp = 360kb/s 如果在生成由TRNGCTRL.DBS指定的大小的数据块之前经过了最大时钟周期数。则TRNGSTAT.WARN提示警告 2.3 TRNG操作步骤
2.4 伪随机数发生器PRNG PRNG:Pseudo Random Numbers Generator,可以使用TRNG + AES CBC(密码块链模式)来实现。在数字硬件中构建PRNG比TRNG容易得多。一旦PRNG被正确地播种,它可以非常快地产生不可预测的输出 3.AES 128 加密/解密模块 AES:Advanced Encryption Standard,高级加密标准,模块如下所示: 3.1 AES 128 模块特性 AES模块是一种快速硬件设备,通过128位密钥支持加密和解密AES 它可以对单个128位数据(即纯文本或密文)块进行纯/简单加密和解密,以及对每个128位的大量数据块进行加密或解密。对于这些,实现了几种操作模式
这也支持其他模式
3.2 AES 128 模块寄存器 HSM包含SFR寄存器和内部寄存器 SFR寄存器由CPU直接访问
注意:输出寄存器AESOUT在加/解密操作期间不能被CPU访问 内部寄存器只能通过SFR寄存器间接访问
3.2.1 控制寄存器AESCTRL AES模块的以下操作完全由AESCTRL寄存器来控制:
3.3 加密/解密操作步骤 通常加密/解密操作是这样完成的:
3.4 AES 128 性能 对于128位数据块的加密/解密AES 128 CBC算法需要14个时钟周期 AES 128在系统级别上的性能不易获得,依赖于SW实现,并且可能由于以下原因而有所不同:
3.5 CBC CBC:Cipher Block Chaining Mode,密码块链接模式。128-bit块使用128-bit关键字+IV(Initial Value,初始值)进行加密/解密 3.6 ECB ECB:Electronic Code Book mode,电子码本模式。128-bit块使用128-bit关键字进行加密/解密 4.公钥加密(PKC)模块 PKC:Pubilc Key Cryptography,公钥加密 4.1 PKC模块特性 PKC模块支持ECDSA快速生成签名和验证的硬件模块。支持对长度为256位的整数和二进制多项式进行模块化和非模块化操作:
支持在比特长度为256的所有公共椭圆曲线上执行复杂算法:
支持曲线在比特长度为256位的Fp和
此外,PKC模块支持以下特性:
4.2 椭圆曲线(Elliptic Curves) 4.2.1 表示变量(Representation Variants) 用代数符号表示椭圆曲线的解存在不同的可能性: Weierstrass-Notation: Montgomery-Notation: (twisted,扭曲) Edwards-Notation: 4.2.2 对比 不同的代数符号支持不同的性质:
NIST:
-Brainpool:
Curve ED25519: 由D. Bernstein(来自芝加哥大学)和T. Lange创建的。被几个安全联盟(也在汽车社区)大力宣传(例如,今天在苹果iOS >V9.0等商业产品中使用。存在于Montgomery和Edwards符号中
4.2.3 英飞凌Aurix TC3x HSM中的Curve ED25519 之前AURIX TC3x的TIER1 RfQs指定并要求使用ECC256 HSM HW加速器IP时,ED25519曲线既没有被提及,也没有被要求。最近,我们看到对ED25519曲线的兴趣即将出现(例如,来自AUTOSAR或OEM方的安全工作组),因此IFX进行了内部可行性研究,得出了以下结论:
5.SHA256-HASH 模块 Hash模块架构如下图所示: 5.1 SHA256特性 哈希模块能够使用一个通用的内部引擎执行MD-5、SHA-1或SHA224/SHA-256函数。该模块旨在用于签名生成、验证和通用数据完整性检查。
5.2 HASH模块 HASH SHA256示例代码,该算法选择用HASH顺序先出MSW 6.性能数据 6.1 ECC256 SW vs HW性能图 ECC256的性能约为3-6sig/s INVIA声称,在他们的SW解决方案中,可以使用ARM M3 100MHz处理器进行多达4次ECDSA256验证操作 支持所有ANSI标准曲线
6.2 RSA1024/RAS2048 SW vs HW性能表 一些背景信息见:http:///products/sharkssl/Cortex−M3/RSA1024 @ 100MHz,汇编优化代码:
RSA1024加密(验证)可以通过使用更小的公钥进行验证过程来简化(例如Exp≤216+1,而不是1024位)
6.3 OEM SW基准测试结果ARM M3 - 80MHz RSA3072,Exp 16 + 1 ^{16+1}
ECC256:NIST曲线
ED25519: (Edwards符号表示Bernstein曲线)
7.看门狗定时器 看门狗定时器,Watchdog Timer。如下图所示: 7.1 看门狗定时器模块特性 定时器模块具有看门狗定时器监控系统操作可能的超时,并检查正确的操作顺序:
功能描述
7.2 运行与服务 看门狗定时器的关键元素是计数器寄存器WDTVAL和重载寄存器WDTRELOAD
当计数器值从0xFFFF切换到0x0000时,发生溢出。看门狗的超时会导致中断。WDT定时器是通过写入服务寄存器WDTSRV来实现的。根据控制位WDTCRTL.INC_SRV区分两种模式;
7.3 编程模式 看门狗定时器主要支持两种模式:
这两种操作相互独立,可以生成不同的模式: 7.3.1 看门狗模式(Watchdog mode)
7.3.2 检查点模式(Checkpoint mode)
7.3.3 分辨率和周期 假设输入时钟频率稳定,则定时器的分辨率为: 看门狗在时钟周期内的超时时间为: 或者 8.桥接模块 8.1 桥接模块通信HSM-Host 8.2 桥接模块通信单元中断
8.3 HSM与TriCore数据共享 桥接模块(Bridge Module )用于连接HSM和主机,实现两者之间的通信。通信单元(Bridge Module )可以被HSM和主机访问:
要在HSM和主机之间共享小信息(32位)
为了共享更大的信息,可以使用共享内存(主机端): 缓存必须以正确的方式管理 缓存可以使用用户定义的64KB内存窗口进行旁路传输 如果缓存可以使用
HSM侧代码 如果没有缓存
Helper对主机地址室进行HSM非缓存读写访问的功能 此文转自:CSDN CinzWS https://blog.csdn.net/qq_37619128/article/details/129735181 |
|
来自: 新用户0118F7lQ > 《文件夹1》