RENESAS RL78-G14 系列 SHA 哈希函数库

介绍
本文档介绍了依赖于 MCU 的 RL78 系列 SHA 哈希函数库(以下简称“SHA Libraly”)。
SHA Libraly 是为 RL78 系列处理 HASH 计算的软件库。 它还采用专用算法设计,并通过汇编语言进行全面调优。
该版本应用笔记中包含的库可以与 RL78/G24 FAA(灵活
应用程序加速器)以提高处理速度。 详细内容请参考2.3库函数使用方法(与RL78/G24 FAA结合使用时)。
有关 API 函数的详细信息,请参阅瑞萨微型计算机 SHA 哈希函数库:用户手册(R20UW0101)。
目标设备
RL78/G14, RL78/G23, RL78/G24
当将此应用笔记与其他瑞萨 MCU 一起使用时,建议在进行修改以符合备用 MCU 后仔细评估。
产品结构
本产品包含 file列于下表1中。
表 1. SHA 库产品 files
| 姓名 | 描述 | |||||||
| samp程序(r20an0211xx0202-rl78-sha) | ||||||||
| 工作空间 | ||||||||
| 文档(doc) | ||||||||
| 英语 (en) | ||||||||
| r20uw0101ej0201-sha.pdf | 用户手册 | |||||||
| r20an0211ej0202-rl78-sha.pdf | 简介指南(本文档) | |||||||
| 日本语(ja) | ||||||||
| r20uw0101jj0201-sha.pdf | 用户手册 | |||||||
| r20an0211jj0202-rl78-sha.pdf | 入门指南 | |||||||
| 库文件 | 库源 | |||||||
| 沙 | SHA图书馆 | |||||||
| 源代码 | SHA库源码 | |||||||
| sha1if.c | SHA-1 API 函数定义 | |||||||
| sha256if.c | SHA-256 API 函数定义 | |||||||
| sha384if.c | SHA-384 API 函数定义
(RL78 不支持) |
|||||||
| 谢夫.h | API函数核心部分 | |||||||
| sha1.c | SHA-1计算的核心部分 | |||||||
| sha256.c | SHA-256计算的核心部分 | |||||||
| sha512.c | SHA-384 / SHA-512计算的核心部分(RL78不支持) | |||||||
| r_sha_version.c | SHA-1/SHA-256 版本 file | |||||||
| 包括 | SHA 库头文件夹 | |||||||
| r_sha.h | Rev.2.02 标头 file | |||||||
| r_mw_版本.h | 版本数据头 file | |||||||
| r_stdint.h | Typedef 标头 file | |||||||
| 计算机科学+ | CS+ 项目文件夹 | |||||||
| sha_rl78_sim_samp乐 | SampRL78/G23 的项目 | |||||||
| 源代码 | 源文件夹 | |||||||
| 主文件 | Samp代码 | |||||||
| 主文件 | Samp文件头 file | |||||||
| 库文件 | 链接到 libsrc | |||||||
| smc_gen | 智能配置器自动生成文件夹 | |||||||
| 一般的 | 常用标题 file / 来源 file 存储文件夹 | |||||||
| r_bsp | 初始化代码寄存器定义存放文件夹 | |||||||
| r_config | 驱动初始化config头存放文件夹 | |||||||
| sha_rl78_sample_FAA | SampRL78/G24 FAA 项目 | |||||||
| 源代码 | 源文件夹 | |||||||
| 主文件 | Samp代码 | |||||||
| 主文件 | Samp文件头 file | |||||||
| 库文件 | 链接到 libsrc | |||||||
| smc_gen | 智能配置器自动生成文件夹 | ||||||
| 配置_FAA | FAA相关来源 file 存储文件夹 | ||||||
| 一般的 | 常用标题 file / 来源 file 存储文件夹 | ||||||
| r_bsp | 初始化代码寄存器定义存放文件夹 | ||||||
| r_config | 驱动初始化config头存放文件夹 | ||||||
| r_pincfg | 端口的符号名称设置标头存储文件夹 | ||||||
| e2工作室 | e2工作室项目文件夹 | ||||||
| 中央铁路局 | SampCCRL 项目 | ||||||
| sha_rl78_sim_samp乐
下面省略。 |
SampRL78/G23 的项目
下面省略。 |
||||||
| sha_rl78_sample_FAA
下面省略。 |
SampRL78/G24 FAA 项目
下面省略。 |
||||||
| LLVM | SampLLVM 项目 | ||||||
| sha_rl78_sim_samp乐
下面省略。 |
SampRL78/G23 的项目
下面省略。 |
||||||
| 爱尔兰 | IAR项目文件夹 | ||||||
| sha_rl78_sim_samp乐
下面省略。 |
SampRL78/G23 的项目
下面省略。 |
||||||
产品规格
接口函数
RL78 的 SHA 库支持以下功能。
表 2. SHA 库 API 函数
| API | 大纲 |
| R_Sha1_HashDigestNote | 生成 SHA-1 哈希摘要 |
| R_Sha256_HashDigest | 生成 SHA-256 哈希摘要 |
笔记: 与 RL78/G24 FAA 结合使用时,不支持此功能。
| API | File |
| R_Sha1_HashDigest | sha1if.c、sha1.c、r_sha_version.c |
| R_Sha256_HashDigest | sha256if.c、sha256.c、r_sha_version.c |
如何使用库函数
使用库函数时,需要指定 file 根据要使用的API如下构建。 与 RL78/G24 FAA 组合使用时,请参阅 2.3 如何使用库函数(与 RL78/G24 FAA 组合使用时)。
表 3. File 待建
| API | File |
| R_Sha1_HashDigest | sha1if.c、sha1.c、r_sha_version.c |
| R_Sha256_HashDigest | sha256if.c、sha256.c、r_sha_version.c |
库函数的使用方法(与RL78/G24 FAA结合使用时)
FAA(灵活应用加速器)是瑞萨电子公司开发的采用哈佛架构的应用加速器。 使用FAA进行SHA哈希运算处理可以提高SHA库注释的处理速度。
笔记: 与 RL78/G24 FAA 结合使用时,仅支持 SHA-256。
笔记: 与 RL78/G24 FAA 结合使用时,仅支持 CC-RL 编译器。
与 FAA 结合时,在智能配置器中为 FAA 生成 SHA 哈希运算处理的代码。 将生成的代码与该库包中包含的 libsrc 文件夹中的代码结合起来。 除了 FAA SHA 库代码之外,还指定下表 4 中的代码作为构建目标。
表 4. File 与 RL78/G24 FAA 结合使用时构建
| API | File |
| R_Sha256_HashDigest | sha256if.c、r_sha_version.c |
如何生成代码
FAA SHA 库使用智能配置器生成代码
有关如何操作智能配置器的更多信息,请参阅以下文档。
- RL78 智能配置器用户指南:e² studio (R20AN0579)
- RL78 智能配置器用户指南:CS+ (R20AN0580)
- 添加灵活应用程序加速器组件(以下称为 FAA 组件)。
添加组件时为配置名称指定的字符串将反映在智能配置器生成的代码名称中。 配置名称的初始值为Config_FAA。


- 下载 FAA SHA 库。
单击更新 FAA 模块按钮以显示 FAA 模块下载屏幕,然后选择要下载的 FAA SHA 库。 - 在函数中选择SHA256进行代码生成。 代码在\src\smc_gen\Config_FAA 中生成。 有关生成代码的详细信息,请参阅2.3.3,生成的代码详细信息。
构建设置
使用智能配置器生成代码后,在构建之前执行以下构建设置。
- 添加 file表 4 中的 s 为构建目标。
- 在编译器预处理器的宏定义中指定 R_CONFIG_FAA_SHA256。
生成的代码详细信息
以下是智能配置器生成的代码的详细说明。
表 5. 生成的代码详细信息
| FileNote1 | 解释 |
| “XXX”_common.c | FAA常用函数C源代码 file |
| “XXX”_common.h | FAA 通用功能标题 file |
| “XXX”_common.inc | 碘定义标头 file 美国联邦航空局 |
| “XXX”_sha256.c | SHA-256计算C源 file 美国联邦航空局 |
| “XXX”_sha256.h | SHA-256 计算标头 file 美国联邦航空局 |
| “XXX”_src.dsp | SHA-256 计算汇编器 file 美国联邦航空局 |
注:1. 函数名称中的“XXX”代表配置名称。 配置名称是在添加 FAA 组件时在智能配置器中指定的。 详细请参考2.3.1、.如何生成代码。
错误代码
在 FAA SHA 库中,R_Sha256_HashDigest 函数的返回值中添加了以下错误代码。
有关 API 函数的详细信息,请参阅瑞萨微型计算机 SHA 哈希函数库:用户手册(R20UW0101)。
表 6. 错误代码
| 象征 | 价值 | 解释 |
| R_SHA_ERROR_FAA_ALREADY_RUNNING | -4 | 该函数在未执行 SHA 哈希操作的情况下终止,因为 FAA 处理器已在运行。 |
笔记
- 以下宏规格不能与 RL78 一起使用。 __编译_EMPHASIS_SPEED__
CC-RL
开发环境
请使用下面列出的相同或更高版本的工具链:
- 集成开发环境:
- CS+ CC V8.05.00
- e2 工作室 2021-04
- C编译器:
- CC-RL V1.09.00
ROM / RAM / 堆栈大小和性能
描述了使用以下选项构建时的各种尺寸和性能,以供参考。 编译器选项
-cpu=S3 -memory_model=medium –Odefault 链接选项
-NOOP优化
表 7. ROM、RAM 大小
| API | ROM 大小 [字节] | RAM 大小 [字节] |
| R_Sha1_HashDigest | 1814 | 0 |
| R_Sha256_HashDigest | 3033 | 0 |
表 8. 堆栈大小
| API | 堆栈大小[字节] |
| R_Sha1_HashDigest | 174 |
| R_Sha256_HashDigest | 96 |
表 9. 性能
| 输入消息长度[字节] | SHA-1 [美国] | SHA-256 [美国] |
| 0 | 800 | 1,200 |
| 64 | 1,500 | 2,300 |
| 128 | 2,200 | 3,400 |
| 192 | 2,900 | 4,600 |
| 256 | 3,600 | 5,700 |
笔记: 输入消息为 1 个块,并进行填充处理。
CC-RL(与RL78/G24 FAA组合时)
开发环境
请使用下面列出的相同或更高版本的工具链:
- 集成开发环境:
- CS+ CC V8.10.00
- e2 工作室 2023-07
- C编译器:
- CC-RL V1.12.01
- DSP汇编器:
- FAA 组装器 V1.04.02
ROM / RAM / FAACODE / FAADATA / 堆栈大小和性能
描述了使用以下选项构建时的各种尺寸和性能,以供参考。 编译器选项
- cpu=S3 -memory_model=medium –Odefault 链接选项
- NOOP优化
表 10. ROM、RAM、FAACODE、FAADATA 大小
| API | ROM 大小 [字节] | RAM 大小 [字节] | FAA 代码 [字节] | FAADATA [字节] |
| R_Sha256_HashDigest | 1073 | 0 | 684 | 524 |
表 11. 堆栈大小
| API | 堆栈大小[字节] |
| R_Sha256_HashDigest | 46 |
表 12. 性能
系统时钟=32MHz
| 输入消息长度[字节] | SHA-256 [美国] |
| 0 | 6,00 |
| 64 | 1,100 |
| 128 | 1,600 |
| 192 | 2,000 |
| 256 | 2,500 |
IAR嵌入式工作台
开发环境
请使用下面列出的相同或更高版本的工具链:
- 集成开发环境:
适用于 Renesas RL78 版本 4.21.1 的 IAR 嵌入式工作台 - C编译器:
适用于瑞萨 RL78 的 IAR C/C++ 编译器:4.20.1.2260
ROM / RAM / 堆栈大小和性能
描述了使用以下选项构建时的各种尺寸和性能,以供参考。
编译器选项
–core=S3 –code_model=far –data_model=near –near_const_location=rom0 -e -Oh –calling_convention=v2
表 13. ROM、RAM 大小
| 图书馆 file 姓名 | ROM 大小 [字节] | RAM 大小 [字节] |
| R_Sha1_HashDigest | 2,009 | 0 |
| R_Sha256_HashDigest | 3,283 | 0 |
表 14. 堆栈大小
| API | 堆栈大小[字节] |
| R_Sha1_HashDigest | 184 |
| R_Sha256_HashDigest | 138 |
表 15. 性能
| 输入消息长度[字节] | SHA-1 [美国] | SHA-256 [美国] |
| 0 | 2,500 | 5,300 |
| 64 | 5,000 | 10,600 |
| 128 | 7,300 | 15,800 |
| 192 | 9,700 | 20,900 |
| 256 | 12,100 | 26,100 |
笔记: 输入消息为 1 个块,并进行填充处理。
LLVM
开发环境
请使用下面列出的相同或更高版本的工具链:
• 集成开发环境:
e2 工作室 2022-01
• C 编译器:
瑞萨 RL78 的 LLVM 10.0.0.202203
ROM / RAM / 编译器选项 / 性能
描述了使用以下选项构建时的各种尺寸和性能,以供参考。
编译器选项
中央处理器类型: S3核心
优化级别: 优化大小 (-Os)
表 16. ROM、RAM 大小
| 图书馆 file 姓名 | ROM 大小 [字节] | RAM 大小 [字节] |
| R_Sha1_HashDigest | 2,731 | 0 |
| R_Sha256_HashDigest | 4,312 | 0 |
表 17. 堆栈大小
| API | 堆栈大小[字节] |
| R_Sha1_HashDigest | 178 |
| R_Sha256_HashDigest | 104 |
表 18. 性能
| 输入消息长度[字节] | SHA-1 [美国] | SHA-256 [美国] |
| 0 | 1,900 | 3,000 |
| 64 | 3,700 | 5,800 |
| 128 | 5,500 | 8,700 |
| 192 | 7,300 | 11,500 |
| 256 | 9,100 | 14,300 |
笔记: 输入消息为 1 个块,并进行填充处理。
修订历史
| 描述 | |||
| 牧师 | 日期 | 页 | 概括 |
| 1.00 | 16 年 2012 月 XNUMX 日 | — | 第一版发行 |
| 1.01 | 30 年 2014 月 XNUMX 日 | 改进的文档。 | |
| 修复了输入指针为奇数地址时的问题。 | |||
| — | 添加了对小模型和大模型的支持。 | ||
| 1.02 | 01 年 2015 月 XNUMX 日 | — | 支持 IAR 嵌入式工作台。 |
| 1.03 | 01 年 2016 月 XNUMX 日 | — | 支持CC-RL。 |
| 支持IAR嵌入式工作台7.4(v2.21.1)。 | |||
| 2.00 | 21 年 2021 月 XNUMX 日 | — | 将库提供形式从 Lib 格式更改为 C 源代码 |
| 2.01 | 30 年 2022 月 XNUMX 日 | — | 支持LLVM。 |
| 2.02 | 01 年 2023 月 XNUMX 日 | — | 添加了 RL78/G24 FAA 的库。 |
处理微处理单元和微控制器单元产品的一般注意事项
以下使用说明适用于瑞萨电子的所有微处理单元和微控制器单元产品。 有关本文档涵盖的产品的详细使用说明,请参阅本文档的相关部分以及针对产品发布的任何技术更新。
- 静电放电 (ESD) 预防措施
当暴露于 CMOS 器件时,强电场会导致栅极氧化层损坏并最终降低器件的运行性能。 必须采取措施尽可能阻止静电的产生,并在发生时迅速将其消散。 环境控制必须充分。 干燥时,应使用加湿器。 建议避免使用容易产生静电的绝缘体。 半导体设备必须在防静电容器、静电屏蔽袋或导电材料中存储和运输。 包括工作台和地板在内的所有测试和测量工具都必须接地。 操作员还必须使用腕带接地。 不得赤手触摸半导体器件。 对于安装有半导体器件的印刷电路板,必须采取类似的预防措施。 - 开机处理
产品在通电时的状态是不确定的。 LSI 内部电路的状态是不确定的,并且在供电时寄存器设置和引脚的状态是不确定的。 在复位信号施加到外部复位引脚的成品中,从通电到复位过程完成,引脚的状态是无法保证的。 同理,通过片上上电复位功能复位的产品的引脚状态,从上电开始到电源达到规定的复位电平,均无法保证。 - 断电状态下的信号输入
设备断电时请勿输入信号或 I/O 上拉电源。 由于输入此类信号或 I/O 上拉电源而导致的电流注入可能会导致故障,此时通过设备的异常电流可能会导致内部元件的劣化。 遵循产品文档中所述的关机状态下的输入信号指南。 - 未使用引脚的处理
按照手册中未使用针脚处理下的说明处理未使用的针脚。 CMOS产品的输入引脚一般都处于高阻状态。 在未使用的引脚处于开路状态的情况下运行时,在 LSI 附近会感应出额外的电磁噪声,相关的直通电流会在内部流动,并且由于引脚状态被错误识别为输入信号而导致故障成为可能。 - 时钟信号
应用复位后,只有在工作时钟信号稳定后才释放复位线。 在程序执行过程中切换时钟信号时,请等待目标时钟信号稳定。 当时钟信号由外部谐振器或外部振荡器在复位期间产生时,请确保仅在时钟信号完全稳定后才释放复位线。 此外,在程序执行过程中切换到由外部谐振器或外部振荡器产生的时钟信号时,请等待目标时钟信号稳定。 - 卷tag输入引脚上的应用波形
由于输入噪声或反射波导致的波形失真可能会导致故障。 如果 CMOS 器件的输入由于噪声而停留在 VIL (Max.) 和 VIH (Min.) 之间的区域,例如ample,设备可能会出现故障。 当输入电平固定时,以及输入电平通过 VIL(最大值)和 VIH(最小值)之间的区域时,请注意防止颤振噪声进入设备。 - 禁止访问保留地址
禁止访问保留地址。 保留地址是为将来可能的功能扩展而提供的。 不要访问这些地址,因为不能保证 LSI 的正确操作。 - 产品之间的差异
在从一种产品更改为另一种产品之前,例如amp如果产品具有不同的部件号,请确认更改不会导致问题。
同一组但具有不同部件号的微处理单元或微控制器单元产品的特性可能在内部存储器容量、布局图案和其他因素方面有所不同,这可能会影响电气特性的范围,例如特性值、工作裕度、抗噪声能力和辐射噪声量。 当更换为具有不同部件号的产品时,对给定产品实施系统评估测试。
注意
- 本文件中关于电路、软件和其他相关信息的描述仅用于说明半导体产品的操作和应用示例。amples。您完全负责将电路、软件和信息纳入或以其他方式用于您的产品或系统的设计。瑞萨电子对于您或第三方因使用这些电路、软件或信息而遭受的任何损失和损害不承担任何责任。
- 瑞萨电子在此明确声明,对于因使用本文件中描述的瑞萨电子产品或技术信息而引起的或涉及第三方专利、版权或其他知识产权的侵权或其他索赔,包括但不限于产品数据、图纸、图表、程序、算法和应用示例,不承担任何担保和责任。amp莱斯。
- 此处不授予瑞萨电子或其他方的任何专利、版权或其他知识产权任何明示、暗示或其他形式的许可。
- 您应负责确定需要从任何第三方获得哪些许可,并在必要时获取此类许可,以便合法进口、出口、制造、销售、使用、分销或以其他方式处置任何包含瑞萨电子产品的产品。
- 您不得更改、修改、复制或逆向工程任何瑞萨电子产品,无论是全部还是部分。瑞萨电子对于您或第三方因此类更改、修改、复制或逆向工程而遭受的任何损失或损害不承担任何责任。
- 瑞萨电子产品根据以下两个质量等级进行分类:“标准”和“高质量”。 瑞萨电子每种产品的预期应用取决于产品的质量等级,如下所示。 “标准”:计算机; 办公用品; 通讯设备; 测试和测量设备; 视听设备; 家用电器; 机械工具; 个人电子设备; 工业机器人; “高品质”:交通运输设备(汽车、火车、轮船等); 交通管制(交通信号灯); 大型通讯设备; ke金融终端系统; 安全控制设备; 除非瑞萨电子数据表或其他瑞萨电子文档中明确指定为高可靠性产品或适用于恶劣环境的产品,否则瑞萨电子产品不打算或授权用于可能对人类造成直接威胁的产品或系统。生命或身体伤害(人工生命支持装置或系统;手术植入等),或可能造成严重的财产损失(空间系统;海底中继器;核电控制系统;飞机控制系统;关键工厂系统;军事设备等)。 )。 对于因使用与任何瑞萨电子数据表、用户手册或其他瑞萨电子文档不一致的任何瑞萨电子产品而导致您或任何第三方遭受的任何损害或损失,瑞萨电子不承担任何责任。
- 没有任何半导体产品是绝对安全的。 尽管瑞萨电子硬件或软件产品中可能实施了任何安全措施或功能,但瑞萨电子对因任何漏洞或安全漏洞(包括但不限于任何未经授权访问或使用瑞萨电子产品)而产生的任何责任概不负责或使用瑞萨电子产品的系统。 RENESAS ELECTRONICS 不保证或保证 RENESAS ELECTRONICS 产品或使用 RENESAS ELECTRONICS 产品创建的任何系统不会受到损害或不受腐败、攻击、病毒、干扰、黑客攻击(“漏洞安全性”、 )。 瑞萨电子不承担由任何漏洞问题引起或与之相关的任何和所有责任。 此外,在适用法律允许的范围内,瑞萨电子不对本文档和任何相关或随附的软件或硬件(包括不包括不包括一个特殊的目的。
- 使用瑞萨电子产品时,请参阅最新的产品信息(数据表、用户手册、应用说明、可靠性手册中的“处理和使用半导体设备的一般注意事项”等),并确保使用条件在瑞萨电子规定的范围内,包括最大额定值、工作电源电压tag范围、散热特性、安装等。对于因在指定范围之外使用瑞萨电子产品而引起的任何故障、失效或事故,瑞萨电子不承担任何责任。
- 尽管瑞萨电子努力提高瑞萨电子产品的质量和可靠性,但半导体产品具有特定的特性,例如以一定的速率发生故障以及在一定的使用条件下发生故障。除非在瑞萨电子数据表或其他瑞萨电子文件中指定为高可靠性产品或用于恶劣环境的产品,否则瑞萨电子产品不采用抗辐射设计。您有责任实施安全措施,以防止瑞萨电子产品发生故障或故障时造成人身伤害、火灾造成的伤害或损害和/或对公众造成危险,例如硬件和软件的安全设计,包括但不限于冗余、火灾控制和故障预防、适当的老化退化处理或任何其他适当措施。由于单独评估微机软件非常困难且不切实际,因此您有责任评估您制造的最终产品或系统的安全性。
- 有关环境问题的详细信息(例如每种瑞萨电子产品的环境兼容性),请联系瑞萨电子销售办事处。您有责任仔细充分地调查规范受控物质的添加或使用的适用法律和法规,包括但不限于欧盟 RoHS 指令,并在遵守所有这些适用法律和法规的情况下使用瑞萨电子产品。瑞萨电子对因您不遵守适用法律和法规而造成的损害或损失不承担任何责任。
- 瑞萨电子产品和技术不得用于或纳入任何适用的国内外法律或法规禁止制造、使用或销售的产品或系统。您应遵守对各方或交易具有管辖权的任何国家政府颁布和实施的任何适用的出口管制法律和法规。
- 瑞萨电子产品的购买者或分销商,或任何分销、处置或以其他方式销售或转让产品给第三方的其他方,有责任提前通知该第三方本文件中规定的内容和条件。
- 未经瑞萨电子事先书面同意,不得以任何形式全部或部分重印、复制或复印本文件。
- 如果您对本文档中包含的信息或瑞萨电子产品有任何疑问,请联系瑞萨电子销售办事处。
(注1) 本文件中使用的“瑞萨电子”是指瑞萨电子公司,还包括其直接或间接控制的子公司。
(注2) “瑞萨电子产品”是指由瑞萨电子开发或制造或为瑞萨电子开发或制造的任何产品。
公司总部
TOYOSU FORESIA, 3-2-24 丰洲,
日本东京江东区 135-0061
www.renesas.com
商标
Renesas 和 Renesas 徽标是瑞萨电子株式会社的商标。所有商标和注册商标均归其各自所有者所有。
联系信息
有关产品、技术、文档的最新版本或距离您最近的销售办事处的更多信息,请 访问: www.renesas.com/contact/.

文件/资源
![]() |
RENESAS RL78-G14 系列 SHA 哈希函数库 [pdf] 安装指南 RL78-G14、RL78-G23、RL78-G14 系列 SHA 哈希函数库、系列 SHA 哈希函数库、哈希函数库、函数库、RL78-G24 |




