当前位置: 首页 > news >正文

黄石网站制作忘记网站后台用户名

黄石网站制作,忘记网站后台用户名,网站制作合同注意事项,廊坊首页霸屏排名优化YTM32的HSM模块在信息安全场景中的应用 文章目录 YTM32的HSM模块在信息安全场景中的应用引言应用场景#xff1a;一点点密码学基础硬件#xff1a;YTM32的信息安全子系统HCU外设模块硬件特性基本的应用操作流程#xff0c;以计算AES-ECB为例硬件上对处理多块数据上的一些设计…YTM32的HSM模块在信息安全场景中的应用 文章目录 YTM32的HSM模块在信息安全场景中的应用引言应用场景一点点密码学基础硬件YTM32的信息安全子系统HCU外设模块硬件特性基本的应用操作流程以计算AES-ECB为例硬件上对处理多块数据上的一些设计细节处理多块消息 for AES / SHA存储上下文数据使用CR[CS]寄存器操作流步骤 存放密钥Key关于FIFO 软件资源Performance小节 引言 随着汽车上通信系统越来越复杂云端、远程通信的场景越来越多信息安全变得越来越重要在通信领域常用的AES、SHA、RSA等加密算法被越来越多地应用到汽车电子系统中。通常这类加解密算法都需要大量的数学运算需要消耗相当多的CPU时间但同时汽车应用场景对ECU有比较高的实时性要求为了节省主CPU的资源专用于执行加解密算法的硬件HSM模块应运而生。 广义上的HSMHardware Security Module是MCU上专门用于实现加解密算法的外设模块它一般会有一个独立的CPU专门用来进行加解密运算还有一些针对特定算法的硬件加速器如AES-128、SHA-256等。有了HSM模块程序中就可以把加解密运算交给HSM来执行同时主CPU就可以去做其他工作一段时间后来查询结果或等待HSM计算完成后通过中断等方式通知主CPU计算结果即可。HSM通常还拥有单独的存储区包括RAM和NVMFlash存储器HSM的存储区在正常运行状态下应只允许HSM读写主CPU不能读写。这样就可以把算法秘钥等重要数据存储在HSM存储区与主CPU进行隔离进一步加强安全性。此外HSM模块还会集成或者共存真随机数生成器等加密算法常用外设。 应用场景一点点密码学基础 常用的加密方法比较耳熟能详的是摘要算法哈希算法HASH、对称加密、非对称加密等。 摘要算法是不可逆的主要作用是对信息的完整性和一致性进行校验。对称加密算法是可逆的主要作用是保证私密信息不被泄露。不同于摘要算法HASH是真正意义上的加密算法。相对于对称加密在加解密过程中使用同一个密钥非对称加密在加密和解密过程中使用的密钥也是不同的公钥和私钥。 假设有发送方向接收方发送消息。如果没有任何加密算法接收方发送的是一条明文消息我是小灰。 如果中间人截获到消息即使中间人无法篡改消息也可以窥探到消息的内容从而暴露了通信双方的私密。 因此我们不再直接传送明文而改用对称加密的方式传输密文画风就变成了下面这样 具体工作的步骤如下 发送方利用密钥123456加密明文我是小灰加密结果为TNYRvxSNjZwEKZXFEcDw。发送方把加密后的内容TNYRvxSNjZwEKZXFEcDw传输给接收方。接收方收到密文TNYRvxSNjZwEKZXFEcDw利用密钥123456还原为明文我是小灰。使用相同密钥的对称加密方法 硬件YTM32的信息安全子系统 HCU外设模块 YTM32的HCUHardware Cryptography Unit是HSM的一种典型实现使用硬件计算引擎可以实现对用户数据的加解密计算其中包括AES、SM4、SHA等算法并配合真随机数发生器TRNG和HCU_NVR存储区完成了对加解密系统的硬件支持。如图x所示。 图x YTM32的HCU外设系统框图 从HCU外设的系统框图中可以看到HCU的核心是一个复用成多种模式的计算引擎用户可以通过FIFO向计算引擎送数参与计算并在计算结束后通过FIFO读出计算结果。HCU的用户操作接口寄存器并不复杂主要的配置选项都在选择计算引擎的工作模式上HCU_CR寄存器DMA和中断以及标志位的设置都是面向FIFO的常规功能。 需要特别关注的是HCU外设模块从FlashEFM模块存储器中导入Key到HCU_KEY寄存器的机制以及众多面向具体加解密算法需要通过专用的寄存器传入专用的参数例如通过HCU_MSGINFO寄存器和HCU_MSGADL寄存器指定输入数据“消息”Message的长度通过HCU_ASECV寄存器为计算ASE-CTR算法时传入Counter参数通过HCU_ASEIV寄存器为计算ASE-CBC算法时传入Initial Vector参数通过HCU_ASEMAC寄存器为计算ASE-CMAC算法时传入或传出MAC值。 硬件特性 支持使用128-bit、192-bit、256-bit等不同长度的密钥。可以实现加密和解密运算。可以使用安全的硬件密钥存放在以Flash为存储介质的HCU_NVR和灵活的软件密钥可软件写入HCU_KEY寄存器。实现了多种硬件加密算法的计算引擎 AES ECB, CBC, CTR, CCM, CMAC SM4 ECBSHA SHA-256, SHA-384 以大端方式保存输入数据和输出数据但支持按位、按字节和按16位字逆序。使用输入FIFO和输出FIFO缓存数据最大缓存深度可达128 Byte。支持DMA和中断可以从MCU的内存空间中取数和送数。 基本的应用操作流程以计算AES-ECB为例 使用HCU计算引擎的流程大体相似先准备密钥Key、配置引擎到准备数据、执行计算最后等待计算完成读取计算结果。这里以AES-ECB为例具体说明使用HCU计算引擎的操作过程 导入计算过程的密钥可以使用预先烧录至Flash存储区的HCU_NVR也可以人工向HCU_KEY寄存器中写数。配置计算引擎设置HCU_CR[ENGSEL]1, HCU_CR[ALGSEL]0指定即将以AES-ECB模式进行计算。指定实际使用密钥的长度设置HCU_CR[KEYLEN]例如可指定长度为128。向HCU的数据FIFO中写入即将要参与计算的数据向HCU_IFDAT寄存器中写数。指定即将要参与计算的数据长度向HCU_MSGADL[MSGLEN]寄存器中写数。[可选的步骤] 根据不同计算模式的需要需要额外写入计算参数 对于AES-CBC计算需要在这个阶段写入HCU_IV寄存器。对于AES-CTR计算需要在这个阶段写入HCU_CTR寄存器。 指定即将要进行的是加密计算还是解密计算设置HCU_CR[ENC]寄存器。启动计算设置HCU_GO[GO]1。等待计算完成。当硬件计算完成后将有标志位HCU_SR[OD]1。从HCU的数据FIFO中读出计算的结果从HCU_OFDAT寄存器中读数。 其他计算模式的过程大体相同在软件应用上可以直接调用SDK软件包中的API或者阅读参考手册对照具体的操作。 硬件上对处理多块数据上的一些设计细节 处理多块消息 for AES / SHA 一般应用中AES / SHA计算引擎处理一个消息块的长度小于 32768 / 65536 字节对应在HCU外设的寄存器字段HCU_CR[MSGLEN]中配置。但当用户需要处理加密或解密长度大于 32768 / 65536 字节的消息块就需要使用处理多块消息的机制需要指定寄存器HCU_CR[MSGB]和HCU_CR[MSGE]表示即将要进行处理的数据块是开始块Begin Message、中间块Middle Message或是结束块End Message并且需要配置HCU_CR[CS]1指定即将处理完成数据块后需要为下次计算保留种子在AES-CBC和AES-CTR两种计算模式下除了Key之外还需要配合IV和CTR值才能启动数据块的计算。 存储上下文数据使用CR[CS]寄存器 大部分计算过程都是对于一段不长的数据进行计算经过一次计算就可以得到最终的结果。 但对于AES-CBC和AES-CTR这两种计算过程可能会计算一组比较长的数据。在开始计算数据前还需要预先设定IV寄存器Initial Vector和CTR寄存器参与计算。当设置HCU_CR[CS]1处理完数据块后产生的IV和CTR值将被载入到硬件的HCU_IV寄存器和HCU_CTR寄存器供下一个数据块的处理过程使用并以此类推。 操作流步骤 通过HCU_MSGINFO和HCU_MSGADL分别指定完整数据块的长度和每次参与计算的数据子块的长度。设置HCU_CR[CS]1启用保存计算上下文。设置[HCU_CR[MSGB]:HCU_CR[MSGE]]的值为0b10、0b00、0b01指定即将处理最开始的子数据块、若干个中间子数据块和最后一个字数据块。 配置准备开始执行分多块的计算 配置HCU_MSGINFO寄存器设定真个长消息的数据长度如果是AES-CCM则不包含额外的数据长度。设置HCU_CR[CS]1启用保存计算上下文。 配置计算第一个数据块 设置HCU_CR[MSGB]1, HCU_CR[MSGE]0指定即将处理长消息的第一个子数据块。设置HCU_MSGADL[MSGLEN]指定即将处理的一个子数据块的长度。配置执行加解密引擎。设置HCU_GO[GO]1启动计算引擎。等待计算完成。当硬件计算完成后将有标志位HCU_SR[OD]1。 配置计算中间的数据块 设置HCU_CR[MSGB]0, HCU_CR[MSGE]0指定即将处理长消息的中间子数据块。其余操作同上述计算过程相同。 配置计算最后的数据块 设置HCU_CR[MSGB]0, HCU_CR[MSGE]1指定即将处理长消息的中间子数据块。其余操作同上述计算过程相同。 注意 分多块计算的功能仅适用于AESCCM / CMAC和 SHA 引擎。设置各分块的大小在计算SHA-256时应为64字节的倍数在计算SHA-384时应为128字节的倍数。 存放密钥Key 根据手册中存储空间Memory Map和EFM模块Embedded Flash Module章节中的介绍YTM32微控制器片内的Flash中还划分了一块区域HCU_NVR专门用于存放同HCU相关的密钥数据。如图x所示。 图x YTM32B1ME微控制器的存储映射 HCU_NVR中可以存放32组 AES-256的Key。用户可通过配置EFM_CTRL[AES_KEY_SEL]寄存器指定AES-256的Key序号然后在EFM_CMD寄存器中写入Load AES Key命令如图x所示就可以将对应的Key从Flash中的HCU_NVR载入到HCU_KEY寄存器中参与AES算法的计算。这就是使用硬件密钥的方法。 图x EFM中的CMD寄存器可以识别的命令 当然在调试阶段或者需要使用灵活密钥的情况下用户软件也可以不使用预先存放在硬件Flash中的密钥而直接向HCU_KEY寄存器中写入Key值参与计算。 出于安全的考虑用户软件通过CPU不能直接读取HCU_NVR存储区和HCU_KEY寄存器中的数据。用户可以通过写Flash的方式带有KEY向HCU_NVR中写数但除了最初写数的人别人是无法再读出正确的数。 关于FIFO Input FIFO入口寄存器的位宽是32b但手册上明确说明要求每次向FIFO中写数必须为128b这也就意味着对Input FIFO的操作每次都要加倍再加倍连续4次写入才算完成一次操作。 图x Input FIFO每次必须以128b写入 Input FIFO可以通过Watermark触发中断但Watermark的值是以字1 Word为单位的这也就意味着Watermark的实际设定值必须是4的倍数4个Word对应128b。 至于Input FIFO Watermark的中断这里有一个逻辑。在Operation Done事件到来之前Input FIFO Watermark的事件都是按需触发的即只要当前FIFO中的数据量Word数量小于Watermark的设定值就可以触发对应的中断。但若Operation Done事件到来此时Input FIFO的检测逻辑就停了哪怕Input FIFO中的数据已经耗尽库存低于Watermark值刚消耗掉最后一组128b数据后也不会再产生Input FIFO Watermark的中断。因此在YTMicro SDK的样例代码中停用Input FIFO Watermark中断的操作并不是等着一个空的Input FIFO触发而是同Operation Done事件放在一起停用的。 void HCU_IRQHandler(void) {/* Operate done handler */if ((HCU_GetStatusFlag(OPERATION_DONE_FLAG)) (HCU_GetIntMode(OPERATION_DONE_FLAG))){/* clear flags. */HCU_ClearStatusFlag(OPERATION_DONE_FLAG); /* Clear operate done flag *//* disable interrupts. */HCU_SetIntMode(OPERATION_DONE_FLAG, false);HCU_SetIntMode(INPUT_FIFO_WATERMARK_FLAG, false); /* Disable input watermark interrupt */... }软件资源 YTMicro SDK中提供了HCU外设模块的驱动程序以及一个基本的样例工程hcu_ecb。 从笔者的经验看来目前设计这个样例工程更多是为验证HCU驱动代码并简单演示HCU模块的应用流程。从用户角度看如果需要更充分有效地利用好HCU外设原厂的开发团队应该在后续会设计和发布专门的功能安全软件组件将这些硬件细节隐藏在将来会逐渐统一的通用HSM软件接口之下例如集成到AutoSAR软件体系中因为HSM的开发者大多是算法专家相对于某个具体的外设模块的实现他们更多关注的是软件的应用场景以及实际计算的速率。 所以这里还是期待原厂的软件开发团队继续为开发者带来一些惊喜。 Performance HCU模块在YTM的M系列中都有集成但每个子系列中的HCU功能略有不同如表x所示。 以 YTM32B1ME0 为例在系统时钟为 120MHz PLL 下测量各个算法处理 1KB 明文与 4KB 明文所需的时间。如下表所示。 小节 本文简要介绍了密码学在汽车电子系统中的应用场景详细介绍了YTM32信息安全子系统中的核心模块HCU外设模块以及基本用法在文末汇总了HCU在YTM32微控制器中的分布情况以及执行速度的参考指标。 本文尚未深入探究HCU以及信息安全的应用期待后续HSM技术的应用规范逐渐形成标准开发团队可依据规范开发和发布专用信息安全软件包。
http://www.hkea.cn/news/14340368/

相关文章:

  • 做网站盈利方式蛋糕烘焙wordpress主题
  • 网站开发价格明细内蒙古建设工程交易服务中心网站
  • 网站建设与管理基础中国互联网协会先后制定并发布了
  • 给公司网站设计天津市建设工程定额管理站网站
  • 旅游网网站建设目的自助wap建站
  • 怎样做免费网站会员wordpress如何变成中文版
  • 公司网站建设的好处什么叫网络架构
  • wordpress 宽屏河南新站关键词排名优化外包
  • 中企动力做网站的优势网页设计师职责
  • 广州自助企业建站模板跨国购物网站建设费用
  • 网站建设入门解读网站怎么改域名
  • 长兴网站建设公司手机编程软件python
  • 织梦技校招生网网站模板整站源码要制作自己的网站需要什么
  • 莱芜 做网站 公司网站开发怎么使用sharepoint
  • 基于j2ee的网站开发设计开题报告建小公司网站要多少钱
  • 自己的电脑做网站当服务器使用wordpress 文章不显示
  • 滨州的网站开发大连图文设计有限公司
  • 广告文化网站建设网站页面设计与制作实践
  • 弹幕网站是怎么做的宿州房地产网站建设
  • 中企动力是私企还是国企昆明网站seo诊断
  • 住房与城乡建设网站wordpress首页不同列表样式
  • 惠州网站搭建怎么做模板网站建设流程
  • 网站置顶代码有没有网站专门做cnc招聘
  • 网站建设培训个人塘沽网红书店
  • 网站内容营销产品软文范例100字
  • 网站年费海南省住房公积金管理局网站
  • 连云港网站优化重庆做网站 熊掌号
  • 怎样申请免费网站空间搜索引擎seo排名优化
  • 网站改版html泰安肥城建设局网站
  • 北京市专业网站制作企业WordPress文章添加灯箱