1、简介
RNG随机数字生成器,一些MCU会内置此类硬件外设用于生成长度为4个字节的随机数,在加密算法中,随机数用于生成加密密钥、初始化向量(IV)等。高质量的随机数对于保证加密系统的安全性至关重要,如果随机数的质量不高,攻击者可能通过分析随机数的规律来破解加密信息。以下使用STM32L4主控芯片,介绍RNG硬件外设使用的操作步骤:
2、cubemx配置
勾选RNG外设,默认无cubemx设置参数,不使用RNG的NVIC配置
3、程序设计
/* USER CODE BEGIN 2 */ uint32_t num=0; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ if(HAL_RNG_GenerateRandomNumber(&hrng,&num)==HAL_OK){//调用随机数生成器,生成32字节随机数 printf("random_num = %d\n",num); } else{ printf("RNG Error!\n"); } HAL_Delay(800); printf("Hello.\n"); HAL_GPIO_TogglePin(USER_LED1_GPIO_Port, USER_LED1_Pin); } /* USER CODE END 3 */
4、实验效果
32字节随机数计算输出