报名编号:CICC2353
称团队名:不划水队
所选杯赛:芯来RISC-V杯
在AES与SM4加密算法中,密钥的安全生成非常重要,如果对数据每次加密都使用相同的密钥,再长的密钥都会有被暴力破解的时候,因此密钥的不可预测与随机性非常重要。此外对于一些加密模式(比如CBC模式)需要一个初始化向量IV作为第一个加密块的输入,这个部分也应该使用随机数。随机数由随机数生成器RNG提供。
随机数生成器分为真随机数生成器(TRNG)和伪随机数生成器(PRNG)。真随机数需要依赖于真正的随机事件或物理过程。例如,通过硬件随机数生成器(HRNG)可以基于物理过程(例如量子效应、热噪声,CPU时间等)来生成真随机数。这些真随机数是由自然界中的不确定性事件产生的,不受算法或初始种子的影响。伪随机数生成器是通过确定的算法和初始种子(seed)来生成随机数,如果使用相同的seed,生成的随机数会不断重复,导致泄露的风险。
在计算机系统、安全通信以及密码协议中广泛使用的,是确定性随机数生成器(Deterministic Random Bit Generator,DRBG)。它是一种基于确定性算法的伪随机数生成器,DRBG 使用一个种子作为起点,然后根据特定的算法和状态转换函数生成一个随机数序列。这个算法和状态转换函数通常使用密码学原语(如哈希函数、对称加密算法等)来确保生成的随机数具有高度的不可预测性和均匀分布性。为了提高生成序列的随机性,DRBG 引入了熵源(entropy source)作为初始种子。熵源可以是真随机数生成器、硬件噪声源等,用于增加生成随机数的不确定性。熵源的质量对于 DRBG 的安全性和随机性至关重要。保护好种子的保密性和熵源的质量是确保 DRBG 生成高质量随机数的关键。
下图是常见的随机数生成器结构。
【1】蜂鸟E203协处理器EAI指令及接口_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【2】加密算法的应用_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【3】国密系列算法简介及SM4算法原理介绍_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (rvmcu.com)
【4】Demo_NICE软件源码解读及应用_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)
【5】AES加密流程_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)
【6】AES和SM4算法的可重构分析_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)
【8】 AES加密流程_全国大学生集成电路创新创业大赛_RISC-V论坛讨论_RISC-V MCU中文社区 (riscv-mcu.com)